osgViewer.GraphicsHandleCarbon
类是一个用于管理 Carbon(Mac OS X)平台下图形绘制的类。它提供了创建和维护 OpenGL 视口(viewport)的功能,并将视口与 Carbon 窗口(WindowRef
)相关联。同时,它也负责处理 Carbon 事件(如窗口大小变化)。
要使用 osgViewer.GraphicsHandleCarbon
类,您需要:
osgViewer::GraphicsWindowCarbon
类型的图形窗口。osgViewer.GraphicsHandleCarbon
类型的图形句柄,并将窗口和视口与之相关联。osgViewer.GraphicsHandleCarbon::frame()
方法以完成渲染。以下是示例代码:
// 创建 Carbon 窗口
WindowRef carbon_window = // ...
// 创建 GraphicsWindowCarbon 对象
osg::ref_ptr<osgViewer::GraphicsWindowCarbon> gw =
new osgViewer::GraphicsWindowCarbon(
carbon_window);
// 创建 GraphicsHandleCarbon 对象
osg::ref_ptr<osgViewer::GraphicsHandleCarbon> gh =
new osgViewer::GraphicsHandleCarbon();
gh->setWindow(gw.get());
gh->setViewport(new osg::Viewport(0, 0, 800, 600));
gh->setWindowRectangle(0, 0, 800, 600);
// 主循环
while(1)
{
// 处理 Carbon 事件
EventRef event = 0;
if(GetNextEvent(0, &event) == noErr)
{
if(event)
{
if(gh->handleEvent(event))
continue;
}
}
// 渲染
gh->frame();
}