Hi Paul,

The contextID is stored in the osg::State, SceneView has a State and
therefore the ContextID.  The osg::Camera without any graphics context
doesn't though as its through the GraphicsContext that it gets its
State.

Workarounds for you would be to create a dummy GraphicsContext for
each window that the apps opens and make this GraphicsContext share
the SceneView's State.  Alternatively you could have a hack where you
register a callback to get the contextID given a Camera, then an
application specific custom callback could implement a mapping between
the Camera and the appropriate SceneView and then finally to the
ContextID.

Robert.

On Dec 11, 2007 7:18 PM, Paul Martz <[EMAIL PROTECTED]> wrote:
>
>
> Hi Robert -- I'm working with an older app that deals directly with
> SceneView. It effectively creates its own window and manages its own
> graphics contexts.
>
> I've found this app doesn't work with osgOQ. osgOQ uses a Camera post draw
> callback to retrieve the query results, and therefore needs the abstract
> unsigned int contextID. To get this, it uses the following code:
>     camera.getGraphicsContext()->getState()->getContextID().
>
> The only problem is that the app never set up a GraphicsContext on the
> SceneView's Camera. SceneView doesn't do this itself (of course -- it's
> ignorant of contexts).
>
> Note that osgOQ can get the contextID just fine in other parts of the code,
> such as in a CullVisitor traverse() call, or in a draw callback or
> drawImplementation(). The contextID is readily available from
> RenderInfo::getState(). It's just the Camera post draw callback that is the
> problem, because I must go through the Camera's (non-existent)
> GraphicsContext to get State.
>
> It seems like, somewhere, there should be a mapping of actual platform
> rendering context IDs to OSG's abstract unsigned int contextID, such that,
> if a context is actually current, code should be able to look up the
> abstract unsigned int contextID in a map somewhere. I've been unable to
> locate any such construct in OSG.
>
> I'm certain you'll recommend porting to osgViewer, but telling my client
> that the previously-supported OSG interface they coded to is incompatible
> with osgOQ isn't really an option. So, if there's no way for me to get a
> contextID from a Camera that doesn't have a GraphicsContext, then I'll have
> to look into alternate implementations for osgOQ.
>
> Paul Martz
> Skew Matrix Software LLC
> http://www.skew-matrix.com
> 303 859 9466
>
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to