Choose renderer from /sim/rendering/rembrandt property
This commit is contained in:
parent
1a3f69723b
commit
94e3ae4c67
2 changed files with 49 additions and 1 deletions
|
@ -439,6 +439,7 @@ FGRenderer::splashinit( void ) {
|
||||||
void
|
void
|
||||||
FGRenderer::init( void )
|
FGRenderer::init( void )
|
||||||
{
|
{
|
||||||
|
_classicalRenderer = !fgGetBool("/sim/rendering/rembrandt", false);
|
||||||
_scenery_loaded = fgGetNode("/sim/sceneryloaded", true);
|
_scenery_loaded = fgGetNode("/sim/sceneryloaded", true);
|
||||||
_scenery_override = fgGetNode("/sim/sceneryloaded-override", true);
|
_scenery_override = fgGetNode("/sim/sceneryloaded-override", true);
|
||||||
_panel_hotspots = fgGetNode("/sim/panel-hotspots", true);
|
_panel_hotspots = fgGetNode("/sim/panel-hotspots", true);
|
||||||
|
@ -527,10 +528,23 @@ void installCullVisitor(Camera* camera)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
flightgear::CameraInfo* FGRenderer::buildRenderingPipeline(flightgear::CameraGroup* cgroup, unsigned flags, Camera* camera,
|
flightgear::CameraInfo*
|
||||||
|
FGRenderer::buildRenderingPipeline(flightgear::CameraGroup* cgroup, unsigned flags, Camera* camera,
|
||||||
const Matrix& view,
|
const Matrix& view,
|
||||||
const Matrix& projection,
|
const Matrix& projection,
|
||||||
bool useMasterSceneData)
|
bool useMasterSceneData)
|
||||||
|
{
|
||||||
|
if (_classicalRenderer || (flags & (CameraGroup::GUI | CameraGroup::ORTHO)))
|
||||||
|
return buildClassicalPipeline( cgroup, flags, camera, view, projection, useMasterSceneData );
|
||||||
|
else
|
||||||
|
return buildDeferredPipeline( cgroup, flags, camera, view, projection );
|
||||||
|
}
|
||||||
|
|
||||||
|
flightgear::CameraInfo*
|
||||||
|
FGRenderer::buildClassicalPipeline(flightgear::CameraGroup* cgroup, unsigned flags, osg::Camera* camera,
|
||||||
|
const osg::Matrix& view,
|
||||||
|
const osg::Matrix& projection,
|
||||||
|
bool useMasterSceneData)
|
||||||
{
|
{
|
||||||
CameraInfo* info = new CameraInfo(flags);
|
CameraInfo* info = new CameraInfo(flags);
|
||||||
// The camera group will always update the camera
|
// The camera group will always update the camera
|
||||||
|
@ -576,6 +590,26 @@ flightgear::CameraInfo* FGRenderer::buildRenderingPipeline(flightgear::CameraGro
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
flightgear::CameraInfo*
|
||||||
|
FGRenderer::buildDeferredPipeline(flightgear::CameraGroup* cgroup, unsigned flags, osg::Camera* camera,
|
||||||
|
const osg::Matrix& view,
|
||||||
|
const osg::Matrix& projection)
|
||||||
|
{
|
||||||
|
CameraInfo* info = new CameraInfo(flags);
|
||||||
|
// The camera group will always update the camera
|
||||||
|
camera->setReferenceFrame(Transform::ABSOLUTE_RF);
|
||||||
|
|
||||||
|
Camera* farCamera = 0;
|
||||||
|
cgroup->getViewer()->addSlave(camera, projection, view, false);
|
||||||
|
installCullVisitor(camera);
|
||||||
|
info->camera = camera;
|
||||||
|
info->slaveIndex = cgroup->getViewer()->getNumSlaves() - 1;
|
||||||
|
camera->setRenderOrder(Camera::POST_RENDER, info->slaveIndex);
|
||||||
|
cgroup->addCamera(info);
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
FGRenderer::setupView( void )
|
FGRenderer::setupView( void )
|
||||||
{
|
{
|
||||||
|
|
|
@ -89,6 +89,19 @@ public:
|
||||||
const osg::Matrix& projection,
|
const osg::Matrix& projection,
|
||||||
bool useMasterSceneData);
|
bool useMasterSceneData);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
flightgear::CameraInfo* buildClassicalPipeline(flightgear::CameraGroup* cgroup, unsigned flags, osg::Camera* camera,
|
||||||
|
const osg::Matrix& view,
|
||||||
|
const osg::Matrix& projection,
|
||||||
|
bool useMasterSceneData);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
flightgear::CameraInfo* buildDeferredPipeline(flightgear::CameraGroup* cgroup, unsigned flags, osg::Camera* camera,
|
||||||
|
const osg::Matrix& view,
|
||||||
|
const osg::Matrix& projection);
|
||||||
|
|
||||||
SGSky* getSky() const { return _sky; }
|
SGSky* getSky() const { return _sky; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -108,6 +121,7 @@ protected:
|
||||||
SGPropertyNode_ptr _virtual_cockpit;
|
SGPropertyNode_ptr _virtual_cockpit;
|
||||||
SGTimeStamp _splash_time;
|
SGTimeStamp _splash_time;
|
||||||
SGSky* _sky;
|
SGSky* _sky;
|
||||||
|
bool _classicalRenderer;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool fgDumpSceneGraphToFile(const char* filename);
|
bool fgDumpSceneGraphToFile(const char* filename);
|
||||||
|
|
Loading…
Reference in a new issue