For those who are implementing a realtime viewport mode using RhinoCommon (
RealtimeDisplayMode) will notice for the next Rhino WIP release that their
RealtimeDisplayModeClassInfo implementation breaks compiling.
These changes were merged today (an hour ago from this writing), so any Rhino WIP release build after this moment will have the change. RhinoCommon realtime viewport plug-ins that haven’t the property overriden will fail to load.
I have added a new abstract
bool DrawOpenGl property that each
RealtimeDisplayModeClassInfo implementation must override. To continue using your integration as it used to just return
false for the property. This should have your viewport mode integration continue working as it used to.
Why does this new property exist, and what good is it for? Good question, I’ll say.
The realtime display mode pipeline has been changed to allow integrations handle the drawing of render results into the viewport themselves. Once you return
true from the DrawOpenGl property you can override the
bool DrawOpenGl() function in
RealtimeDisplayMode, as this is now being called. You don’t get a valid RenderWindow anymore, so you shouldn’t use that anymore when opting to draw render results manually.
Raytraced mode see
Digging deeper in the code you’ll find where I set up OpenGL drawing before I let Cycles draw its result
and actual drawing