上一章节:
十一、OSG学习笔记-操作系统接口-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/145891502
本章节代码:
OsgStudy/Controls · CuiQingCheng/OsgStudy - 码云 - 开源中国https://gitee.com/cuiqingcheng/osg-study/tree/master/OsgStudy/Controls
一、Viewer介绍
osg::Referenced: 负责内存安全策略,智能指针ref_ptr;
osg::Object:负责对象的安全策略,数据IO的写入写出;
1、osgViewer::ViewerBase类中成员变量的介绍:
ViewerBase实例代码:
#include <windows.h>
#include <iostream>#include <osgViewer/Viewer>
#include <osgDB/ReadFile>
#include <osgGA/TrackballManipulator>
#include <osgGA/GUIEventAdapter>int main() {osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer;viewer->setSceneData(osgDB::readNodeFile("glider.osg"));// 设置默认操作器viewer->setCameraManipulator(new osgGA::TrackballManipulator);viewer->realize();viewer->setKeyEventSetsDone(osgGA::GUIEventAdapter::KEY_KP_Space);// 线程渲染模式std::cout << "Threading model: " << viewer->getThreadingModel() << std::endl;viewer->run();/* 替代 run()的作用int frameNum = 300;while (!(viewer->done())){if (frameNum){viewer->setDone(true);std::cout << "No need to Continue " << frameNum << std::endl;// 300帧渲染完了,就推出渲染}frameNum--;viewer->frame();}*/return 0;
}
2、Osg::View的用法: