我一直在使用旧的Qt OpenGl方法,但它是时候切换到新的。从原始数据(freeimage)QOpenGLTexture(Qt)
是位图一个FIBITMAP *正确初始化
glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA8,宽度,高度,0, GL_BGRA,GL_UNSIGNED_BYTE,(无效*)FreeImage_GetBits(pImage));
对我来说就像一个魅力。
但是现在在新的方法中,最好使用QOpenGLTexture
不幸的是我的尝试是不成功的,即。
QOpenGLTexture * qtexture =新 QOpenGLTexture(QOpenGLTexture :: Target2D); (QOpenGLTexture :: PixelFormat :: RGBA, QOpenGLTexture :: PixelType :: Int8,FreeImage_GetBits(bitmap));
代码返回一个1x1纹理而且如果我迫使大小等使用
qtexture->的setSize(宽度,高度,4);
qtexture具有适当的大小,但它完全是黑色的,我也试过在QT/FreeImage的论坛等进行搜索,但没有相关的不幸的是每个人都使用的QImage养活QOpenGLTexture,但不幸的是我需要支持的一些“奇怪”像.hdr或.exr这样的文件格式,Qt本身不支持。
预先感谢您的时间!
是的,这也是在班级文件中提到的。 – peppe
使用QOpenGLTexture对象而不是纯OpenGL的优点是什么? – Pietrko
这是Qt包装器,更易于与Qt OpenGL小部件一起使用 –