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
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org