Implement GL_EXT_texture_norm16 extension
BUG=angleproject:1365
Change-Id: I972b156ecb41ff44bc1f6365373ab386bacc85f1
Reviewed-on: https://chromium-review.googlesource.com/346530
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/validationES3.cpp b/src/libANGLE/validationES3.cpp
index c097059..2efebcd 100644
--- a/src/libANGLE/validationES3.cpp
+++ b/src/libANGLE/validationES3.cpp
@@ -197,6 +197,16 @@
// From GL_ANGLE_depth_texture
InsertES3FormatCombo(&set, GL_DEPTH_COMPONENT32_OES, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT_24_8_OES );
+ // From GL_EXT_texture_norm16
+ InsertES3FormatCombo(&set, GL_R16_EXT, GL_RED, GL_UNSIGNED_SHORT);
+ InsertES3FormatCombo(&set, GL_RG16_EXT, GL_RG, GL_UNSIGNED_SHORT);
+ InsertES3FormatCombo(&set, GL_RGB16_EXT, GL_RGB, GL_UNSIGNED_SHORT);
+ InsertES3FormatCombo(&set, GL_RGBA16_EXT, GL_RGBA, GL_UNSIGNED_SHORT);
+ InsertES3FormatCombo(&set, GL_R16_SNORM_EXT, GL_RED, GL_SHORT);
+ InsertES3FormatCombo(&set, GL_RG16_SNORM_EXT, GL_RG, GL_SHORT);
+ InsertES3FormatCombo(&set, GL_RGB16_SNORM_EXT, GL_RGB, GL_SHORT);
+ InsertES3FormatCombo(&set, GL_RGBA16_SNORM_EXT, GL_RGBA, GL_SHORT);
+
return set;
}
@@ -1257,6 +1267,13 @@
{
case GL_UNSIGNED_BYTE:
break;
+ case GL_UNSIGNED_SHORT:
+ if (internalFormatInfo.componentType != GL_UNSIGNED_NORMALIZED &&
+ internalFormatInfo.type != GL_UNSIGNED_SHORT)
+ {
+ return false;
+ }
+ break;
case GL_UNSIGNED_INT_2_10_10_10_REV:
if (internalFormat != GL_RGB10_A2)
{
@@ -1313,6 +1330,13 @@
{
case GL_UNSIGNED_BYTE:
break;
+ case GL_UNSIGNED_SHORT:
+ if (internalFormatInfo.componentType != GL_UNSIGNED_NORMALIZED &&
+ internalFormatInfo.type != GL_UNSIGNED_SHORT)
+ {
+ return false;
+ }
+ break;
default:
return false;
}