-namespace
-{
-// Create a slave camera that will be used to render a fixed GUI-like
-// element.
-osg::Camera*
-makeSlaveCamera(osg::Camera::RenderOrder renderOrder, int orderNum)
-{
- using namespace osg;
- Camera* camera = new osg::Camera;
- GraphicsContext *gc = fgOSGetMainContext();
-
- camera->setRenderOrder(renderOrder, orderNum);
- camera->setClearMask(0);
- camera->setInheritanceMask(CullSettings::ALL_VARIABLES
- & ~(CullSettings::COMPUTE_NEAR_FAR_MODE
- | CullSettings::CULLING_MODE));
- camera->setComputeNearFarMode(osg::CullSettings::DO_NOT_COMPUTE_NEAR_FAR);
- camera->setCullingMode(osg::CullSettings::NO_CULLING);
- camera->setGraphicsContext(gc);
- // Establish an initial viewport. This may be altered,
- // particularly when drawing a 2d panel.
- const GraphicsContext::Traits *traits = gc->getTraits();
- camera->setViewport(new Viewport(0, 0, traits->width, traits->height));
- camera->setProjectionResizePolicy(Camera::FIXED);
- camera->setReferenceFrame(Transform::ABSOLUTE_RF);
- camera->setAllowEventFocus(false);
- globals->get_renderer()->getViewer()->addSlave(camera, false);
- return camera;
-}
-
-}
-