Chromium Code Reviews| Index: Source/modules/webgl/WebGLRenderingContextBase.cpp |
| diff --git a/Source/modules/webgl/WebGLRenderingContextBase.cpp b/Source/modules/webgl/WebGLRenderingContextBase.cpp |
| index a327383d1089b158ac715709dbd589efbd5e0af5..b71d9ecad2f9d0139f6c6abaf0cb80e20ac74465 100644 |
| --- a/Source/modules/webgl/WebGLRenderingContextBase.cpp |
| +++ b/Source/modules/webgl/WebGLRenderingContextBase.cpp |
| @@ -61,6 +61,7 @@ |
| #include "modules/webgl/OESVertexArrayObject.h" |
| #include "modules/webgl/WebGLActiveInfo.h" |
| #include "modules/webgl/WebGLBuffer.h" |
| +#include "modules/webgl/WebGLCompressedTextureASTC.h" |
| #include "modules/webgl/WebGLCompressedTextureATC.h" |
| #include "modules/webgl/WebGLCompressedTextureETC1.h" |
| #include "modules/webgl/WebGLCompressedTexturePVRTC.h" |
| @@ -5665,6 +5666,47 @@ bool WebGLRenderingContextBase::validateCompressedTexFuncData(const char* functi |
| unsigned bytesRequired = 0; |
| switch (format) { |
| + case GL_COMPRESSED_RGBA_ASTC_4x4_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_5x4_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_5x5_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_6x5_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_6x6_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_8x5_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_8x6_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_8x8_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_10x5_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_10x6_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_10x8_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_10x10_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_12x10_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_12x12_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR: |
| + { |
| + const int index = (format < GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR) ? |
| + (int)format - GL_COMPRESSED_RGBA_ASTC_4x4_KHR : (int)format - GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR; |
|
bajones
2015/08/07 22:01:09
This has the same basic issue as I described in ht
|
| + |
| + const int kBlockWidth = WebGLCompressedTextureASTC::kBlockSizeCompressASTC[index].blockWidth; |
| + const int kBlockHeight = WebGLCompressedTextureASTC::kBlockSizeCompressASTC[index].blockHeight; |
| + |
| + int kBlockX = (max(width, kBlockWidth) + kBlockWidth - 1) / kBlockWidth; |
| + int kBlockY = (max(height, kBlockHeight) + kBlockHeight - 1) / kBlockHeight; |
| + |
| + bytesRequired = (kBlockX * kBlockY) << 4; |
| + } |
| + break; |
| case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: |
| case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: |
| { |
| @@ -5735,6 +5777,38 @@ bool WebGLRenderingContextBase::validateCompressedTexDimensions(const char* func |
| bool heightValid = false; |
| switch (format) { |
| + case GL_COMPRESSED_RGBA_ASTC_4x4_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_5x4_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_5x5_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_6x5_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_6x6_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_8x5_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_8x6_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_8x8_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_10x5_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_10x6_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_10x8_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_10x10_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_12x10_KHR: |
| + case GL_COMPRESSED_RGBA_ASTC_12x12_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR: |
| + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR: { |
| + widthValid = true; |
| + heightValid = true; |
| + break; |
| + } |
| case GC3D_COMPRESSED_ATC_RGB_AMD: |
| case GC3D_COMPRESSED_ATC_RGBA_EXPLICIT_ALPHA_AMD: |
| case GC3D_COMPRESSED_ATC_RGBA_INTERPOLATED_ALPHA_AMD: |