浏览代码

Corrected issue on compressed textures data size

raysan5 6 年之前
父节点
当前提交
c629b16ebc
共有 1 个文件被更改,包括 8 次插入0 次删除
  1. 8 0
      src/rlgl.h

+ 8 - 0
src/rlgl.h

@@ -4623,6 +4623,14 @@ int GetPixelDataSize(int width, int height, int format)
     }
 
     dataSize = width*height*bpp/8;  // Total data size in bytes
+    
+    // Most compressed formats works on 4x4 blocks, 
+    // if texture is smaller, minimum dataSize is 8 or 16
+    if ((width < 4) && (height < 4))
+    {
+        if ((format >= COMPRESSED_DXT1_RGB) && (format < COMPRESSED_DXT3_RGBA)) dataSize = 8;
+        else if ((format >= COMPRESSED_DXT3_RGBA) && (format < COMPRESSED_ASTC_8x8_RGBA)) dataSize = 16;
+    }
 
     return dataSize;
 }