From Wojciech Lewandowski, "I did few tests to see whether adding PreDraw callback would help us with SPI problems when using Viewer. Results were positive so I decided to give it a try and ask you to verify and maybe merge with existing codebase.

I added _preDrawCallback member and neccessary access methods plus modified osgUtil RenderStage.cpp to invoke it before all drawInner calls are made. I tried to maintain symmetry with postDrawCallback but you know better where is a proper place for this call ;-)
"
This commit is contained in:
Robert Osfield
2007-06-01 19:45:24 +00:00
parent 01c1bd28ef
commit 053ba0c543
3 changed files with 19 additions and 1 deletions

View File

@@ -384,7 +384,17 @@ class OSG_EXPORT Camera : public Transform, public CullSettings
virtual void operator () (const osg::Camera& /*camera*/) const {}
};
/** Set the post draw callback for custom operations to do done after the drawing of the camera's subgraph has been completed.*/
/** Set the pre draw callback for custom operations to be done before the drawing of the camera's subgraph has been completed.*/
void setPreDrawCallback(DrawCallback* cb) { _preDrawCallback = cb; }
/** Get the pre draw callback.*/
DrawCallback* getPreDrawCallback() { return _preDrawCallback.get(); }
/** Get the const pre draw callback.*/
const DrawCallback* getPreDrawCallback() const { return _preDrawCallback.get(); }
/** Set the post draw callback for custom operations to be done after the drawing of the camera's subgraph has been completed.*/
void setPostDrawCallback(DrawCallback* cb) { _postDrawCallback = cb; }
/** Get the post draw callback.*/
@@ -451,6 +461,7 @@ class OSG_EXPORT Camera : public Transform, public CullSettings
buffered_object< ref_ptr<Object> > _renderingCache;
ref_ptr<DrawCallback> _preDrawCallback;
ref_ptr<DrawCallback> _postDrawCallback;
};