using namespace std;
+namespace {
+
+int 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,
+ GL_RED, GL_GREEN, GL_BLUE, GL_ONE
+};
+
+}
+
namespace Msp {
namespace GL {
+ComponentSwizzle get_required_swizzle(PixelComponents comp)
+{
+ switch(comp)
+ {
+ case BGR: return RGB_TO_BGR;
+ case BGRA: return RGB_TO_BGR;
+ case LUMINANCE: return R_TO_LUMINANCE;
+ case LUMINANCE_ALPHA: return RG_TO_LUMINANCE_ALPHA;
+ default: return NO_SWIZZLE;
+ }
+}
+
void require_pixelformat(PixelFormat pf)
{
/* TODO These checks are only accurate for textures. On OpenGL ES some
}
}
+const int *get_gl_swizzle(ComponentSwizzle swiz)
+{
+ return swizzle_orders+4*swiz;
+}
+
} // namespace GL
} // namespace Msp