[osg-users] wrapping an opengl texture to an osg texture

Robert Osfield robert.osfield at gmail.com
Fri Sep 25 08:18:20 PDT 2015


Hi Qingjie,

I haven't experiment with CUDA so can't comment on the specifics.  The best
route is probably to see anyone has published an OSG/CUDA integration
example.

Robert.

On 25 September 2015 at 13:04, Qingjie Zhang <305479421 at qq.com> wrote:

> Hi Robert,
>
> I'm trying to do something with the "m_frontTex" in CUDA, so I get the
> GLuint and write some values in it according to a CUDA_Opengl_interp
> example.
>
> But I found there's no change in the texture after CUDA processing. So I'm
> confused if the texture will update automatically when the "GLuint"
> changes, if true, there must be something wrong in my CUDA processing.
>
> Thank you!
>
> Qingjie.
>
> robertosfield wrote:
> > HI Qingjie,
> >
> >
> > If you are getting the GL texture handle id from an OSG TextureObject
> it'll already be associated with a osg::Texture i.e. m_frontTex why not
> just reuse this?
> >
> >
> > Robert.
> >
> >
> > On 25 September 2015 at 07:27, Qingjie Zhang < ()> wrote:
> >
> > > Hi,
> > > I have an opengl texture(GLuint), I'd like to wrap it to an
> osg::Texture2D. Is there some way to do this?
> > >
> > > Actually, I got the GLuint in this way:
> > >
> > > Code:
> > >
> > > struct MyCameraPostDrawCallback : public osg::Camera::DrawCallback
> > > {
> > >     virtual void operator()(osg::RenderInfo &renderInfo) const
> > >         {
> > >                 int contextID = renderInfo.getContextID();
> > >                 GLuint handle=
> m_frontTex->getTextureObject(contextID)->id();
> > >
> > >         }
> > > }
> > >
> > >
> > >
> > >
> > > I've googled and searched in this forum, finding maybe a way to do
> this by:
> > >
> > > Code:
> > >
> > > osg::Texture2D *_texture = new osg::Texture2D;
> > > osg::Texture::TextureObject *textureObject = new
> osg::Texture::TextureObject(_texture, handle, GL_TEXTURE_2D);
> > >                 textureObject->setAllocated();
> > >                 _texture->setTextureObject(renderInfo.getContextID(),
> textureObject);
> > >                 osg::State *state = renderInfo.getState();
> > >                 unsigned int _textureStage = 0;
> > >
> > >                 state->setActiveTextureUnit(_textureStage);
> > >                 _texture->apply(*state);
> > >                 state->haveAppliedTextureAttribute(_textureStage,
> _texture);
> > >
> > >
> > >
> > > But I don't know what the "_textureStage" should be, I tried "0", but
> "state->setActiveTextureUnit(_textureStage);" returns false.
> > >
> > > Is this the right way to achieve my goal? If not, how should I do?
> > > ...
> > >
> > > Thank you!
> > >
> > > Cheers,
> > > Qingjie
> > >
> > > ------------------
> > > Read this topic online here:
> > > http://forum.openscenegraph.org/viewtopic.php?p=65205#65205 (
> http://forum.openscenegraph.org/viewtopic.php?p=65205#65205)
> > >
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > osg-users mailing list
> > >  ()
> > >
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> (http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> )
> > >
> >
> >
> >  ------------------
> > Post generated by Mail2Forum
>
>
> ------------------
> Read this topic online here:
> http://forum.openscenegraph.org/viewtopic.php?p=65215#65215
>
>
>
>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20150925/a1bcac9f/attachment-0002.htm>


More information about the osg-users mailing list