本文介绍: OSG线程相关问题;

做如下一段代码;

#include <Windows.h>
#include <osgViewer/Viewer>

#include <osg/Node>
#include <osg/Geode>
#include <osg/Group>

#include <osgDB/ReadFile>
#include <osgDB/WriteFile>

#include <osgUtil/Optimizer>

int a;

int main()
{
	osgViewer::Viewer* viewer = new osgViewer::Viewer();
	osg::Group* root = new osg::Group();
	osg::Node* node = new osg::Node();
	node = osgDB::readNodeFile("tree.osg");
	root->addChild(node);

	osgUtil::Optimizer optimizer;
	optimizer.optimize(root);

	viewer->setSceneData(root);
	viewer->realize();
	viewer->run();

	std::cin >> a;
	if (a == 1)
	{
		root->removeChild(node);
		osg::Node* node2 = new osg::Node();
		node2 = osgDB::readNodeFile("boxman.osg");
		root->addChild(node2);
	}

	return 0;
}

模型窗口显示以后,不会执行 viewer->run() 后面的语句;只有在关闭模型窗口后,才会执行 viewer->run() 后面的语

原文地址:https://blog.csdn.net/bcbobo21cn/article/details/135420729

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_53734.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注