2012-04-21 10 views
0

私はippのためのゲームを作るためにcpp/marmaladeを使っていますが、テクスチャが壊れることがあります。 curruptedテクスチャのレンダリング時にOpenGL ESがテクスチャを破損することがあります。なぜそれが起こることができますか?

http://files.moonmana.com/forums/source-rune.png

例:ここでは は、ソーステクスチャファイルです

VGTexture2D* VGTextureLoader::loadImage(std::string imagefile) 
{ 


CIwImage img; 
img.LoadFromFile(imagefile.c_str()); 

// Convert to an OpenGL ES native format 
CIwImage nativeImg; 
nativeImg.SetFormat(CIwImage::ABGR_8888); 
img.ConvertToImage(&nativeImg); 

// Generate texture object 
GLuint texture; 
glGenTextures(1, &texture); 
glBindTexture(GL_TEXTURE_2D, texture); 

// Upload 
uint32 width = img.GetWidth(); 
uint32 height = img.GetHeight(); 
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, nativeImg.GetTexels()); 


glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 

// Create and return texture 
VGTexture2D* tex = new VGTexture2D(texture, (float)width, (float)height); 

return tex; 
} 

答えて

3

あなたのテクスチャ:私はこのコードでテクスチャをロードしています

enter image description here

壊れていないが、チャンネルが反転しているように見える。画像をABGR_8888に変換していますが、GL_RGBAとしてアップロードしている可能性がありますか?

+0

ありがとう、素敵なアイデア、私はそれをチェックします –

関連する問題