X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fbackends%2Fopengl%2Ftexture_backend.cpp;h=ba6486778ac04b67504360e136f4774353b50ff3;hp=88e1c2b33877cc1349b93375b8201f4de318047c;hb=8e58fc4da8443cb67fe4cd70d6f68de2be73011d;hpb=66cf095b3eeb3f5a37cc16231680a18d67b292fb diff --git a/source/backends/opengl/texture_backend.cpp b/source/backends/opengl/texture_backend.cpp index 88e1c2b3..ba648677 100644 --- a/source/backends/opengl/texture_backend.cpp +++ b/source/backends/opengl/texture_backend.cpp @@ -12,14 +12,6 @@ using namespace std; namespace Msp { namespace GL { -int OpenGLTexture::swizzle_orders[] = -{ - GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, - GL_RED, GL_RED, GL_RED, GL_ONE, - GL_RED, GL_RED, GL_RED, GL_GREEN, - GL_BLUE, GL_GREEN, GL_RED, GL_ALPHA -}; - OpenGLTexture *OpenGLTexture::scratch_binding = 0; OpenGLTexture::OpenGLTexture(unsigned t): @@ -63,23 +55,24 @@ void OpenGLTexture::require_swizzle() void OpenGLTexture::apply_swizzle() { - Texture::FormatSwizzle swizzle = static_cast(this)->swizzle; - if(swizzle==Texture::NO_SWIZZLE) + ComponentSwizzle swizzle = static_cast(this)->swizzle; + if(swizzle==NO_SWIZZLE) return; + const int *swizzle_order = get_gl_swizzle(swizzle); if(get_backend_api()==OPENGL_ES) { - set_parameter_i(GL_TEXTURE_SWIZZLE_R, swizzle_orders[swizzle*4]); - set_parameter_i(GL_TEXTURE_SWIZZLE_G, swizzle_orders[swizzle*4+1]); - set_parameter_i(GL_TEXTURE_SWIZZLE_B, swizzle_orders[swizzle*4+2]); - set_parameter_i(GL_TEXTURE_SWIZZLE_A, swizzle_orders[swizzle*4+3]); + set_parameter_i(GL_TEXTURE_SWIZZLE_R, swizzle_order[0]); + set_parameter_i(GL_TEXTURE_SWIZZLE_G, swizzle_order[1]); + set_parameter_i(GL_TEXTURE_SWIZZLE_B, swizzle_order[2]); + set_parameter_i(GL_TEXTURE_SWIZZLE_A, swizzle_order[3]); } else { if(ARB_direct_state_access) - glTextureParameteriv(id, GL_TEXTURE_SWIZZLE_RGBA, swizzle_orders+swizzle*4); + glTextureParameteriv(id, GL_TEXTURE_SWIZZLE_RGBA, swizzle_order); else - glTexParameteriv(target, GL_TEXTURE_SWIZZLE_RGBA, swizzle_orders+swizzle*4); + glTexParameteriv(target, GL_TEXTURE_SWIZZLE_RGBA, swizzle_order); } }