确定。我正在使用Qt和OpenGL。我的目标是将纹理复制到另一个对象中。我有一个自定义类对象的向量。每个对象都包含一个
class MyCustomClass {
GLuint texture_id;
//
Other data members;
}
它维护MyCustomClass
个对象的队列。因此,每次我创建MyCustomClass的对象时,我都会尝试将纹理复制到其中。我正在使用QOpenGLFramebufferObject::takeTexture
来创建纹理和副本的副本。将其所有权归入MyCustomClass
。像这样,
MyCustomClass ObjectMyCustomClass;
QOpenGLFramebufferObject currently_rendered_texture;
ObjectMyCustomClass.texture_id = currently_rendered_texture.takeTexture();
但似乎takeTexture并没有按照它在我的业余OpenGL实现中所声称的那样做。
我只想在ObjectMyCustomClass
中创建纹理的副本,稍后我可以使用它来渲染我所拥有的特殊用例。 我正在做什么有什么问题?我注意到,当我稍后尝试访问纹理的副本时,我会获得使用takeTexture
复制的最后一个纹理的ID。这里出了什么问题?
还是有一种在Qt OpenGL中复制纹理的首选方法吗?
以下博客明确指出我可以复制&通过调用takeTexture
获取纹理的所有权