diff options
author | Piotr Dziwinski <piotrdz@gmail.com> | 2012-07-16 19:17:26 +0200 |
---|---|---|
committer | Piotr Dziwinski <piotrdz@gmail.com> | 2012-07-16 19:17:26 +0200 |
commit | 68a7bafe37adef0e5ef12c2d0e8461a21e05363b (patch) | |
tree | f0185e459ea0c5638fca7bada5f2e440fd9eda51 /src/graphics/opengl/gldevice.cpp | |
parent | 54f4da87923465a5387e2e854b58616647deb7af (diff) | |
download | colobot-68a7bafe37adef0e5ef12c2d0e8461a21e05363b.tar.gz colobot-68a7bafe37adef0e5ef12c2d0e8461a21e05363b.tar.bz2 colobot-68a7bafe37adef0e5ef12c2d0e8461a21e05363b.zip |
Fixes in texture loading
- added other texture formats: BGR and BGRA
- fixed texture loading in model viewer
- moved code from texture.cpp module to texture.h
Diffstat (limited to 'src/graphics/opengl/gldevice.cpp')
-rw-r--r-- | src/graphics/opengl/gldevice.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/graphics/opengl/gldevice.cpp b/src/graphics/opengl/gldevice.cpp index eb4eb31..e329ff4 100644 --- a/src/graphics/opengl/gldevice.cpp +++ b/src/graphics/opengl/gldevice.cpp @@ -393,10 +393,16 @@ Gfx::Texture* Gfx::CGLDevice::CreateTexture(CImage *image, const Gfx::TextureCre glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_FALSE); GLenum sourceFormat = 0; - if (params.alpha) + if (params.format == Gfx::TEX_IMG_RGB) + sourceFormat = GL_RGB; + else if (params.format == Gfx::TEX_IMG_BGR) + sourceFormat = GL_BGR; + else if (params.format == Gfx::TEX_IMG_RGBA) sourceFormat = GL_RGBA; + else if (params.format == Gfx::TEX_IMG_BGRA) + sourceFormat = GL_BGRA; else - sourceFormat = GL_RGB; + assert(false); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, data->surface->w, data->surface->h, 0, sourceFormat, GL_UNSIGNED_BYTE, data->surface->pixels); |