DisplaySettings是osg的全局单实例变量,类似osg的Registry。主要记录窗口的一些显示设置,比如窗口尺寸、多重纹理采样数、着色器设置等,osg在创建窗口时会从该变量中读取信息,这个变量中的信息可以通过命令行输入也可以通过环境变量输入,但是不支持通过代码修改(也可以通过如下方式设置)。这个设置最终会体现在窗体的像素格式上(
osg学习(四十一)win32窗体像素格式PixelFormat)
osg::ref_ptr< osg::DisplaySettings > displaySettings = new osg::DisplaySettings;
displaySettings->setNumMultiSamples(16);
this->setDisplaySettings( displaySettings.get());
1、创建时机
osg/DisplaySettomgs.cpp
OSG_INIT_SINGLETON_PROXY(ProxyInitDisplaySettings, DisplaySettings::instance())
osg/Object
#define OSG_INIT_SINGLETON_PROXY(ProxyName, Func) static struct ProxyName{ ProxyName() { Func; } } s_##ProxyName;
2、使用方法
osg::DisplaySettings::instance().get();