OSG显示模型的线程问题

发布时间:2024年01月06日

做如下一段代码;

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