Hello, recently (developer version 2.9.5) i noticed that the implementation of checkNeedToDoFrame in both Viewer and CompositeViewer have different conditions. Viewer checks if the camera has an UpdateCallback or if any node has an UpdateCallback, while CompositeViewer doesn't. Is there a rationale behind that?
I'm asking about it because we use rendering on demand and all went ok until we needed to render based upon the manipulator behavior, i.e. upon the flag _requestRedraw. We didn't use checkNeedToDoFrame, instead we check for events and databasepager request (like checkNeedToDoFrame). But now we need to check _requestRedraw, but it is protected and there isn't any getter to get its value, so we change the code to call checkNeedToDoFrame. But this method return true if there is any UpdateCallback. Unluckily, we have many UpdateCallbacks and the end result is a continuous render (not what we want, and this problem is aggravated due to the high cpu consumption of the render, perhaps related to NVIDIA's active waiting). I'm searching for a way to implement a method similar to checkNeedToDoFrame out of the Viewer, - is there an alternate way to test if requestRedraw is set? How about adding a getRequestRedraw method to ViewerBase ? Will it have any implications or side effects? - do we need to check for UpdateCallbacks? In our case, we use Updatecallbacks to check an external condition, they do nothing 90% of the time. - does the implementation of checkNeedToDoFrame need to be different between Viewer and CompositeViewer or is this a bug? Thanks in advance and best regards, Himar.
_______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org