Hello Dardo!

Glad to see that there is someone sharing the pain :). Thank you for the
very detailed response.

I don't like the "one manipulator per render node" solution that much. It
requires both forwarding all the events to every render node and also
communicating the changes to camera position/orientation back to the head
node so that those get pushed to all the render nodes again for the actual
rendering. It basically breaks the clean separation between application
logic and application view that EQ has.

The second solution that you and Stephan described seems more appropriate.
Also, you bring up a very valid point of osgEarth requiring the existence of
an OpenGL context. I fought that issue when putting my current integration
together. Basically the reason why osgEarth requires (and actually tries to
spawn) an OpenGL context is so that it can query for OpenGL capabilities. It
is also not particularly clean when it does so I think (it doesn't restore
the previously bound context) and it offers no direct way to "disable" the
capability querying. The way I worked around it in my software (which uses
osgViewer with a graphicsWindowEmbedded on each eq::Window) is by actually
overriding the default OSG GraphicsContext with a stub implementation that
basically does nothing. This way, when osgEarth tries to query for
capabilities, it does so within the existing OpenGL context that has been
graciously provided by Equalizer. Other than this point, the rest of my
implementation is pretty standard (single distributed object for the camera
state + other rendering parameters, all interactions are handled at the app
node) but as I mentioned, this doesn't work that well with osgEarth since I
can't directly use it with EarthManipulator. 

I'd love to see how you tackled this issue (accessing the render thread's gl
context from within the Config main loop in a safe way, I would be happy
with that solution since I always run the app node in head-full mode). I can
share my implementation with you as well (with the same caveat of it being
very dirty code at the moment :P), but as I mentioned, it is not
particularly complex.



--
View this message in context: 
http://software.1713.n2.nabble.com/Communicating-information-FROM-the-rendering-code-to-the-application-logic-tp7585385p7585391.html
Sent from the Equalizer - Parallel Rendering mailing list archive at Nabble.com.

_______________________________________________
eq-dev mailing list
[email protected]
http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev
http://www.equalizergraphics.com

Reply via email to