Ver código fonte

[OpenGL] Fixed BGR/RGB mismatch. Fixed CPalettedBitmap issue.

Michał W. Urbańczyk 12 anos atrás
pai
commit
672cf5bcb5
2 arquivos alterados com 3 adições e 3 exclusões
  1. 1 1
      client/Gfx/Images.cpp
  2. 2 2
      client/Gfx/ImgMakers.cpp

+ 1 - 1
client/Gfx/Images.cpp

@@ -307,7 +307,7 @@ CPalettedBitmap::~CPalettedBitmap()
 
 void CPalettedBitmap::textureTransfer()
 {
-	glTexImage2D(GL_TEXTURE_RECTANGLE, 0, GL_R8UI, width, height, 0, GL_RED, GL_UNSIGNED_BYTE, buffer);
+	glTexImage2D(GL_TEXTURE_RECTANGLE, 0, GL_R8UI, width, height, 0, GL_RED_INTEGER, GL_UNSIGNED_BYTE, buffer);
 	palette.loadToVideoRAM();
 }
 

+ 2 - 2
client/Gfx/ImgMakers.cpp

@@ -31,11 +31,11 @@ CImage * CImage::makeBySDL(void* data, size_t fileSize, const char* fileExt)
 		}
 		else if (ret->format->BytesPerPixel == 3)
 		{
-			img = new CBitmap32(ret->w, ret->h, (ColorRGB*)ret->pixels);
+			img = new CBitmap32(ret->w, ret->h, (ColorRGB*)ret->pixels, ret->format->Rmask == 0x00FF0000);
 		}
 		else if (ret->format->BytesPerPixel == 4)
 		{
-			img = new CBitmap32(ret->w, ret->h, (ColorRGBA*)ret->pixels);
+			img = new CBitmap32(ret->w, ret->h, (ColorRGBA*)ret->pixels, ret->format->Rmask == 0x00FF0000);
 		}
 
 		SDL_FreeSurface(ret);