Forráskód Böngészése

getChanelValueAt 'correction'
when feeding a u8 value from a 16 bit format, best to look up the red chanel for minimal artifacting

AzaezelX 5 éve
szülő
commit
047a45c82d
1 módosított fájl, 5 hozzáadás és 2 törlés
  1. 5 2
      Engine/source/gfx/bitmap/gBitmap.cpp

+ 5 - 2
Engine/source/gfx/bitmap/gBitmap.cpp

@@ -862,7 +862,10 @@ U8 GBitmap::getChanelValueAt(U32 x, U32 y, U32 chan)
 {
    ColorI pixelColor = ColorI(255,255,255,255);
    getColor(x, y, pixelColor);
-
+   if (mInternalFormat == GFXFormatL16)
+   {
+      chan = 0;
+   }
    switch (chan) {
    case 0: return pixelColor.red;
    case 1: return pixelColor.green;
@@ -1323,7 +1326,7 @@ U32 GBitmap::getSurfaceSize(const U32 mipLevel) const
    if (mInternalFormat >= GFXFormatBC1 && mInternalFormat <= GFXFormatBC3)
    {
       // From the directX docs:
-      // max(1, width ÷ 4) x max(1, height ÷ 4) x 8(DXT1) or 16(DXT2-5)
+      // max(1, width ÷ 4) x max(1, height ÷ 4) x 8(DXT1) or 16(DXT2-5)
 
       U32 sizeMultiple = 0;