【发布时间】:2015-09-19 09:57:03
【问题描述】:
我一直在使用旧的 Qt OpenGl 方法,但现在是时候切换到新的方法了。
作为位图正确初始化的 FIBITMAP*
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, 宽度, 高度,0, GL_BGRA,GL_UNSIGNED_BYTE, (void*)FreeImage_GetBits(pImage));
对我来说就像一个魅力。
但现在在较新的方法中,最好使用 QOpenGLTexture
不幸的是,我的尝试没有成功,即。
QOpenGLTexture*qtexture = 新 QOpenGLTexture(QOpenGLTexture::Target2D);
texture->setData(QOpenGLTexture::PixelFormat::RGBA, QOpenGLTexture::PixelType::Int8,FreeImage_GetBits(bitmap));
该代码返回一个 1x1 纹理,但如果我像使用
一样强制大小qtexture->setSize(width,height,4);
qtexture 有合适的大小,但它是全黑的,我也尝试在 Qt/Freeimage 论坛等中搜索,但没有任何相关的,不幸的是每个人都使用 QImage 来提供 QOpenGLTexture 但不幸的是我需要支持一些“奇怪”的文件格式,比如 . Qt 本身不支持的 hdr 或 .exr。
提前感谢您的宝贵时间!
【问题讨论】: