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