From 6f647c2d73bfdc579cdaba9e2f75dc1cced13c7f Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Wed, 30 Oct 2019 21:39:20 -0500 Subject: [PATCH] getChanelValueAt 'correction' when feeding a u8 value from a 16 bit format, best to look up the red chanel for minimal artifacting --- Engine/source/gfx/bitmap/gBitmap.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Engine/source/gfx/bitmap/gBitmap.cpp b/Engine/source/gfx/bitmap/gBitmap.cpp index effc5f258c..1ae980427e 100644 --- a/Engine/source/gfx/bitmap/gBitmap.cpp +++ b/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;