Subclass
AbstractGLScene
and implement the constructor to match the one from AbstractGLScene
. Add a method to store a QImage
object in the scene that will contain texture data for the cube. Add a QOpenGLTexture
pointer member as well, which will contain the texture, initialize it to 0 in the constructor, and delete it in the destructor. Let's call the image object m_tex
and the texture m_texture
. Now add a protected initializeTexture()
method and fill it with the following code:
void initializeTexture() { m_texture = new QOpenGLTexture(m_tex.mirrored()); m_texture->setMinificationFilter(QOpenGLTexture::LinearMipMapLinear); m_texture->setMagnificationFilter(QOpenGLTexture::Linear); }
The function first mirrors the image vertically. This is because OpenGL expects the texture to be "upside down". Then we create a QOpenGLTexture
object, passing it our image. Then we set minification and magnification filters so that the texture looks better...