|
在调试双显示器多通道显示时,遇到问题:
配置:
显卡: NV 8500GT
显示器:ViewSonic 1916w *2 分辨率 1440*900
1)显示器配置为:独立显示,互不相关
代码:
int main(int argc, char* argv[])
{
osg::ref_ptr<osg::Node> node= osgDB::readNodeFile("cow.osg");
osgViewer::Viewer viewer;
//viewer.setThreadingModel(osgViewer::Viewer::SingleThreaded );//此语句加上后可正常显示双屏
viewer.setSceneData(node.get());
return viewer.run();
}
a:注销viewer.setThreadingModel(osgViewer::Viewer::SingleThreaded );
显示效果为:
b:加上viewer.setThreadingModel(osgViewer::Viewer::SingleThreaded );
显示效果为:
如果为MFC程序(OSG自带osgviewerMFC例子),无论是否设置viewer.setThreadingModel(osgViewer::Viewer::SingleThreaded );,显示结果都不正常
2)显示器设置为:作为一个大水平桌面
无论在Console或MFC下,是否加载viewer.setThreadingModel(osgViewer::Viewer::SingleThreaded );,显示结果都很正常。
最终疑问:
可以看出来,只要设置为一个大水平桌面(跨越模式),程序都可以正常显示,但要设置为相互独立,就必须对相关代码修改,但怎样修改才能正常显示,我不清楚,希望哪位大侠告知! |
|