0
我想创建一个gl :: Texture对象使用图像数据作为BYTE *与下面的参数。转换为Cinder gl ::纹理
FreeGLUT - 我用它来创建一个2D纹理并将其绑定到一个四:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, textureWidth, textureHeight, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, data);
glBindTexture(GL_TEXTURE_2D, 0); etc etc
这工作得很好,但是我无法找到一个方法来创建一个煤渣GL :: Texture对象。
text = gl::Texture(loadImage(loadAsset("text.jpg"))); // works with images files
text = gl::Texture(data, GL_RGBA8, 640, 480); // BTYE * data This gives me a grey screen -
这似乎是最有可能的,但我不知道如何处理格式format = format();
Texture (const unsigned char *data, int dataFormat, int aWidth, int aHeight, Format format=Format())
我真的不知道这是如何工作的,无法在网上找到更好的教程。谢谢。
非常感谢。你的回答是有道理的,但当我调用gl :: draw(text,getWindowBounds());我仍然有一个灰色的背景。它使用gl :: Texture(loadImage从一个文件中工作,还有什么我需要做不同的工作吗?在freeGLUT中,我将纹理映射到四边形,但我的理解是纹理应该适用于gl :: draw(as我的纹理从文件加载正确显示) – user1546650 2014-10-05 22:33:45
@ user1546650我想确保'数据'实际上指向图像数据是相当重要的,使用您的调试器,看看这里的值是否有意义。 – PeterT 2014-10-05 22:39:07
谢谢,它看起来像剩下的问题是我的主代码中的一个错误(我试图检查调试器,但并不是所有的确定我在找什么:P) – user1546650 2014-10-05 23:04:35