简述OSG窗口在Win32下形成的过程
原理简述
Main函数创建全局变量,创建系统接口,识别平台(Win32,Linux,Apple),可获取系统的一些属性(如分辨率等);系统接口创建后,在run的时候会绘制当前帧Frame,如果没有图形上下文则创建上下文,在创建上下文的时候会创建窗口,获取创建窗口句柄即可对窗口属性设置。
有两种方法可在OSG窗口形成时设置窗口参数:
1.继承osgGA::GUIEventHandler,给viewer添加事件句柄
2.通过osg::GraphicsContext接口,直接操作
实例代码
#include <osgViewer/Viewer>
#include <osgViewer/ViewerEventHandlers>
#include <osg/GraphicsContext>
#include <osgDB/ReadFile>
#include <osgGA/GUIEventHandler>
#include <osgGA/GUIActionAdapter>
#include <iostream>
class ChangeWindow : public osgGA::GUIEventHandler
{
public:
ChangeWindow() {
first = false; }
bool handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa)
{
if (!first)
{
osgViewer::Viewer* viewer = dynamic_cast<osgViewer::Viewer*