Make sure we render the CameraGroup cameras one after another
This commit is contained in:
parent
1852e3c7fc
commit
da53e8fb1b
@ -45,6 +45,8 @@ public:
|
|||||||
namespace simgear {
|
namespace simgear {
|
||||||
namespace compositor {
|
namespace compositor {
|
||||||
|
|
||||||
|
int Compositor::_order_offset = 0;
|
||||||
|
|
||||||
Compositor *
|
Compositor *
|
||||||
Compositor::create(osg::View *view,
|
Compositor::create(osg::View *view,
|
||||||
osg::GraphicsContext *gc,
|
osg::GraphicsContext *gc,
|
||||||
@ -85,6 +87,8 @@ Compositor::create(osg::View *view,
|
|||||||
compositor->addPass(pass);
|
compositor->addPass(pass);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
++_order_offset;
|
||||||
|
|
||||||
return compositor.release();
|
return compositor.release();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,6 +127,7 @@ public:
|
|||||||
Pass * getPass(size_t index) const { return _passes[index]; }
|
Pass * getPass(size_t index) const { return _passes[index]; }
|
||||||
Pass * getPass(const std::string &name) const;
|
Pass * getPass(const std::string &name) const;
|
||||||
|
|
||||||
|
int getOrderOffset() const { return _order_offset; }
|
||||||
protected:
|
protected:
|
||||||
osg::View *_view;
|
osg::View *_view;
|
||||||
osg::GraphicsContext *_gc;
|
osg::GraphicsContext *_gc;
|
||||||
@ -135,6 +136,7 @@ protected:
|
|||||||
BufferMap _buffers;
|
BufferMap _buffers;
|
||||||
PassList _passes;
|
PassList _passes;
|
||||||
BuiltinUniforms _uniforms;
|
BuiltinUniforms _uniforms;
|
||||||
|
static int _order_offset;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace compositor
|
} // namespace compositor
|
||||||
|
@ -85,7 +85,8 @@ PassBuilder::build(Compositor *compositor, const SGPropertyNode *root,
|
|||||||
// that doesn't involve the rendering pipeline itself. NESTED_RENDER is also
|
// that doesn't involve the rendering pipeline itself. NESTED_RENDER is also
|
||||||
// not a possibility since we don't want to share RenderStage with the View
|
// not a possibility since we don't want to share RenderStage with the View
|
||||||
// master camera.
|
// master camera.
|
||||||
camera->setRenderOrder(osg::Camera::POST_RENDER, pass->render_order * 10);
|
camera->setRenderOrder(osg::Camera::POST_RENDER,
|
||||||
|
pass->render_order + compositor->getOrderOffset() * 100);
|
||||||
camera->setComputeNearFarMode(osg::CullSettings::DO_NOT_COMPUTE_NEAR_FAR);
|
camera->setComputeNearFarMode(osg::CullSettings::DO_NOT_COMPUTE_NEAR_FAR);
|
||||||
|
|
||||||
// XXX: Should we make this configurable?
|
// XXX: Should we make this configurable?
|
||||||
|
Loading…
Reference in New Issue
Block a user