]> git.tdb.fi Git - libs/gl.git/commitdiff
Allow RED and RG pixel formats in RenderTargetFormat
authorMikko Rasa <tdb@tdb.fi>
Wed, 4 Jul 2018 20:49:06 +0000 (23:49 +0300)
committerMikko Rasa <tdb@tdb.fi>
Wed, 4 Jul 2018 20:49:06 +0000 (23:49 +0300)
source/rendertarget.cpp

index c651e665fc46064ea2870e7034da0ab93ce081c5..239180f5e52b9032807a6a9943ecf468e736bc18 100644 (file)
@@ -46,7 +46,7 @@ RenderTargetFormat RenderTargetFormat::operator,(PixelFormat f) const
        }
        else
        {
-               if(unsized!=RGB && unsized!=RGBA)
+               if(unsized!=RED && unsized!=RG && unsized!=RGB && unsized!=RGBA)
                        throw invalid_argument("RenderTargetformat::operator,");
                if(size>3)
                        --size;
@@ -72,7 +72,6 @@ int RenderTargetFormat::index(RenderOutput o) const
 
 PixelFormat get_output_pixelformat(unsigned char o)
 {
-       unsigned ncomp = (o&3)+1;
        unsigned size = ((o>>2)&3);
        PixelFormat base;
        if(get_output_type(o)>=get_output_type(RENDER_DEPTH))
@@ -83,7 +82,8 @@ PixelFormat get_output_pixelformat(unsigned char o)
        }
        else
        {
-               base = (ncomp==4 ? RGBA : RGB);
+               static PixelFormat base_formats[4] = { RED, RG, RGB, RGBA };
+               base = base_formats[o&3];
                if(size==3)
                        ++size;
        }