osgViewer.ScreenCaptureHandler
是一个 OpenSceneGraph (OSG)的屏幕截图处理程序类。
class ScreenCaptureHandler : public osgGA::GUIEventHandler
osgGA::GUIEventHandler
#include <osgViewer/ScreenCaptureHandler>
ScreenCaptureHandler(const std::string& format = "png", const std::string& filename = "capture")
构造一个图像格式和文件名的屏幕截图处理程序实例。
format
:图像格式,默认为 "png"filename
:文件名,默认为 "capture"bool handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa)
处理事件。
ea
:事件适配器,包含事件的信息。aa
:事件执行适配器,可以访问事件的目标场景图。void startCapture(osgViewer::ViewerBase& viewer)
开始截图。
viewer
:视图器,用于获取场景图。void captureNextFrame()
捕获下一帧。
void stopCapture()
停止截图。
void setCaptureOperation(osgViewer::ScreenCapture::CaptureOperation* co)
设置捕捉操作对象。
co
:捕捉操作对象实例。void setCaptureOperation(osgViewer::ScreenCapture::CaptureOperation::Type type, const std::string& filename = "", const std::string& extension = "", bool overrideExistingFile = false, unsigned int numFramesToCapture = 1, unsigned int startFrameNumber = 0, int validExtentX = 0, int validExtentY = 0, int validExtentWidth = 0, int validExtentHeight = 0)
设置捕捉操作。
type
:捕捉操作类型,参见 CaptureOperation::Type。filename
:文件名。extension
:文件扩展名。overrideExistingFile
:是否覆盖现有文件。numFramesToCapture
:捕捉的帧数。startFrameNumber
:起始帧数。validExtentX
、validExtentY
、validExtentWidth
、validExtentHeight
:有效区域的的坐标和宽度、高度。void setFileName(const std::string& filename)
设置文件名。
filename
:文件名。void setFormat(const std::string& format)
设置图像格式。
format
:图像格式。void setCaptureOperationType(osgViewer::ScreenCapture::CaptureOperation::Type type)
设置捕捉操作类型。
type
:捕捉操作类型,参见 CaptureOperation::Type。#include <osgViewer/Viewer>
#include <osgViewer/ScreenCaptureHandler>
int main(int argc, char** argv)
{
osgViewer::Viewer viewer;
viewer.setSceneData(...);
osgViewer::ScreenCaptureHandler* capHandler =
new osgViewer::ScreenCaptureHandler();
viewer.addEventHandler(capHandler);
while (!viewer.done())
{
viewer.frame();
}
capHandler->startCapture(viewer);
capHandler->captureNextFrame();
capHandler->stopCapture();
return 0;
}
osgViewer::ScreenCapture
osgViewer::ScreenCaptureHandlerHelper
宋健源(Jianyuan Song)
OpenSceneGraph 3.4.1
OSGPL (OpenSceneGraph Public License)