Update checks for floating point renderability.
* Expose GL_CHROMIUM_color_buffer_float_rgb and
GL_CHROMIUM_color_buffer_float_rgba
* Fix many texture formats that were incorrectly checking the wrong
extension for support or renderability.
* Make all floating point texture extensions dynamically enableable.
BUG=angleproject:1958
BUG=angleproject:1715
Change-Id: Iefccc8b5ae5edd97623affa9de05b1d9af5c9598
Reviewed-on: https://chromium-review.googlesource.com/468450
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/validationES2.cpp b/src/libANGLE/validationES2.cpp
index 417502a..b4fdb1e 100644
--- a/src/libANGLE/validationES2.cpp
+++ b/src/libANGLE/validationES2.cpp
@@ -1290,11 +1290,23 @@
break;
case GL_R8_EXT:
case GL_RG8_EXT:
+ if (!context->getExtensions().textureRG)
+ {
+ context->handleError(Error(GL_INVALID_ENUM));
+ return false;
+ }
+ break;
case GL_R16F_EXT:
case GL_RG16F_EXT:
+ if (!context->getExtensions().textureRG || !context->getExtensions().textureHalfFloat)
+ {
+ context->handleError(Error(GL_INVALID_ENUM));
+ return false;
+ }
+ break;
case GL_R32F_EXT:
case GL_RG32F_EXT:
- if (!context->getExtensions().textureRG)
+ if (!context->getExtensions().textureRG || !context->getExtensions().textureFloat)
{
context->handleError(Error(GL_INVALID_ENUM));
return false;