X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fpixelformat.cpp;h=027ae88c7fe1bb7c5e11290ef5133e3c143b8d05;hb=5a93cc603eef43617a10b76bc9c19a3272ac1d49;hp=26600b33661fca3c7e73729702278f0aa4664feb;hpb=033de13fa0a81be466666ed0d0080b1c2221baec;p=libs%2Fgl.git diff --git a/source/pixelformat.cpp b/source/pixelformat.cpp index 26600b33..027ae88c 100644 --- a/source/pixelformat.cpp +++ b/source/pixelformat.cpp @@ -32,10 +32,18 @@ void operator>>(const LexicalConverter &conv, PixelFormat &fmt) fmt = BGR; else if(conv.get()=="BGRA") fmt = BGRA; + else if(conv.get()=="SRGB") + fmt = SRGB; + else if(conv.get()=="SRGB_ALPHA") + fmt = SRGB_ALPHA; else if(conv.get()=="LUMINANCE") fmt = LUMINANCE; else if(conv.get()=="LUMINANCE_ALPHA") fmt = LUMINANCE_ALPHA; + else if(conv.get()=="SLUMINANCE") + fmt = SLUMINANCE; + else if(conv.get()=="SLUMINANCE_ALPHA") + fmt = SLUMINANCE_ALPHA; else throw lexical_error(format("conversion of '%s' to PixelFormat", conv.get())); } @@ -75,16 +83,24 @@ PixelFormat get_base_pixelformat(PixelFormat pf) { case RGB8: case RGB16F: - case RGB32F: return RGB; + case RGB32F: + case SRGB: + case SRGB8: return RGB; case RGBA8: case RGBA16F: - case RGBA32F: return RGBA; + case RGBA32F: + case SRGB_ALPHA: + case SRGB8_ALPHA8: return RGBA; case LUMINANCE8: case LUMINANCE16F: - case LUMINANCE32F: return LUMINANCE; + case LUMINANCE32F: + case SLUMINANCE: + case SLUMINANCE8: return LUMINANCE; case LUMINANCE_ALPHA8: case LUMINANCE_ALPHA16F: - case LUMINANCE_ALPHA32F: return LUMINANCE_ALPHA; + case LUMINANCE_ALPHA32F: + case SLUMINANCE_ALPHA: + case SLUMINANCE8_ALPHA8: return LUMINANCE_ALPHA; default: return pf; } } @@ -100,8 +116,10 @@ unsigned get_component_count(PixelFormat pf) case GREEN: case BLUE: case LUMINANCE: + case SLUMINANCE: return 1; case LUMINANCE_ALPHA: + case SLUMINANCE_ALPHA: return 2; case RGB: case BGR: @@ -128,6 +146,16 @@ void require_pixelformat(PixelFormat pf) case LUMINANCE_ALPHA32F: { static Require _req(ARB_texture_float); } break; + case SRGB: + case SRGB8: + case SRGB_ALPHA: + case SRGB8_ALPHA8: + case SLUMINANCE: + case SLUMINANCE8: + case SLUMINANCE_ALPHA: + case SLUMINANCE8_ALPHA8: + { static Require _req(EXT_texture_sRGB); } + break; case BGR: case BGRA: { static Require _req(EXT_bgra); }