Index: third_party/WebKit/Source/platform/graphics/gpu/Extensions3DUtil.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/gpu/Extensions3DUtil.cpp b/third_party/WebKit/Source/platform/graphics/gpu/Extensions3DUtil.cpp |
index f83ab75087237c20b849a7fa9a1a9379da8aaea2..a35277046369c178a05d6fbf99b5113d7fa0705d 100644 |
--- a/third_party/WebKit/Source/platform/graphics/gpu/Extensions3DUtil.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/gpu/Extensions3DUtil.cpp |
@@ -5,6 +5,8 @@ |
#include "platform/graphics/gpu/Extensions3DUtil.h" |
#include "gpu/command_buffer/client/gles2_interface.h" |
+#include "third_party/khronos/GLES2/gl2ext.h" |
+#include "third_party/khronos/GLES3/gl3.h" |
#include "wtf/PtrUtil.h" |
#include "wtf/text/CString.h" |
#include "wtf/text/StringHash.h" |
@@ -79,8 +81,14 @@ bool Extensions3DUtil::canUseCopyTextureCHROMIUM(GLenum destTarget, |
// TODO(zmo): restriction of (RGB || RGBA)/UNSIGNED_BYTE/(Level 0) should be lifted when |
// GLES2Interface::CopyTextureCHROMIUM(...) are fully functional. |
if (destTarget == GL_TEXTURE_2D && |
- (destFormat == GL_RGB || destFormat == GL_RGBA) && |
- destType == GL_UNSIGNED_BYTE && !level) |
+ ((destType == GL_UNSIGNED_BYTE && |
+ (destFormat == GL_RGB || destFormat == GL_RGBA)) || |
+ (destType == GL_FLOAT && |
+ ((destFormat == GL_RGBA && |
+ supportsExtension("GL_CHROMIUM_color_buffer_float_rgba")) || |
+ (destFormat == GL_RGB && |
+ supportsExtension("GL_CHROMIUM_color_buffer_float_rgb"))))) && |
+ !level) |
return true; |
return false; |
} |