osgWidget.Canvas是OpenSceneGraph中的一个可重复使用的小部件,用于将一个OpenGL窗口(帧缓冲区)嵌入到一个osgWidget窗口中。这个窗口可以用于Image图像的渲染,视频处理等等。
typedef osgWidget::Canvas
Canvas()
创建一个空的Canvas对象。要使用此构造函数,请调用setGraphicsContext()
和setViewport()
方法。
Canvas(osg::GraphicsContext* gc, const osg::Vec4& viewport)
创建一个Canvas对象并为其配置GraphicsContext和视口。
参数说明:
gc
:GraphicsContext(渲染环境)。viewport
:视口,一个Vec4对象,分别表示视口的左下角和右上角的坐标。void setGraphicsContext(osg::GraphicsContext* gc)
设置GraphicsContext,即渲染环境。
参数说明:
gc
:GraphicsContext(渲染环境)。osg::GraphicsContext* getGraphicsContext() const
获取GraphicsContext,即渲染环境。
返回值:
gc
:GraphicsContext(渲染环境)。void setViewport(const osg::Vec4& viewport)
设置视口参数,一个Vec4对象,分别表示视口的左下角和右上角的坐标。
参数说明:
viewport
:视口参数,一个Vec4对象,分别表示视口的左下角和右上角的坐标。const osg::Vec4& getViewport() const
获取视口参数,一个Vec4对象,分别表示视口的左下角和右上角的坐标。
返回值:
viewport
:视口参数,一个Vec4对象,分别表示视口的左下角和右上角的坐标。virtual bool render(const osg::Camera& camera)
渲染OSG场景。
参数说明:
camera
:Camera对象,包含场景图的渲染信息。返回值:
true
:渲染成功。false
:渲染失败。virtual void clear()
清空帧缓冲区。
virtual bool handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa)
处理事件,例如键盘输入,鼠标移动等。
参数说明:
ea
:GUIEventAdapter对象aa
:GUIActionAdapter对象返回值:
true
:事件处理成功。false
:事件处理失败。void setTwoPassHint(bool twoPassHint)
设置模式为two-pass hint。
参数说明:
twoPassHint
:是否开启two-pass hint模式。bool getTwoPassHint() const
获取two-pass hint模式是否开启。
返回值:
true
:two-pass hint模式已开启。false
:two-pass hint模式未开启。