Added floating point formats to glCopyTexImage2D
Added floating point formats to validateColorBufferFormat,
which is used by glCopyTexImage2D, since it was a missing
part of the previously added floating point extensions.
From the extension spec:
https://www.khronos.org/registry/gles/extensions/EXT/EXT_color_buffer_half_float.txt
"9. Should CopyTex[Sub]Image be supported for floating-point formats? [...] Yes."
Change-Id: Ie14d8afd352b004e8a2400cfef16facdeab94e33
Reviewed-on: https://swiftshader-review.googlesource.com/5110
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/libGLESv2/libGLESv2.cpp b/src/OpenGL/libGLESv2/libGLESv2.cpp
index 19db3b2..ec8a2fa 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv2.cpp
@@ -73,7 +73,9 @@
colorbufferFormat != GL_RGBA &&
colorbufferFormat != GL_RGBA4 &&
colorbufferFormat != GL_RGB5_A1 &&
- colorbufferFormat != GL_RGBA8_OES)
+ colorbufferFormat != GL_RGBA8_OES &&
+ colorbufferFormat != GL_RGBA16F_EXT &&
+ colorbufferFormat != GL_RGBA32F_EXT)
{
return error(GL_INVALID_OPERATION, false);
}
@@ -86,7 +88,11 @@
colorbufferFormat != GL_RGBA &&
colorbufferFormat != GL_RGBA4 &&
colorbufferFormat != GL_RGB5_A1 &&
- colorbufferFormat != GL_RGBA8_OES)
+ colorbufferFormat != GL_RGBA8_OES &&
+ colorbufferFormat != GL_RGB16F_EXT &&
+ colorbufferFormat != GL_RGB32F_EXT &&
+ colorbufferFormat != GL_RGBA16F_EXT &&
+ colorbufferFormat != GL_RGBA32F_EXT)
{
return error(GL_INVALID_OPERATION, false);
}
@@ -96,7 +102,9 @@
if(colorbufferFormat != GL_RGBA &&
colorbufferFormat != GL_RGBA4 &&
colorbufferFormat != GL_RGB5_A1 &&
- colorbufferFormat != GL_RGBA8_OES)
+ colorbufferFormat != GL_RGBA8_OES &&
+ colorbufferFormat != GL_RGBA16F_EXT &&
+ colorbufferFormat != GL_RGBA32F_EXT)
{
return error(GL_INVALID_OPERATION, false);
}