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 51f032e281b4632911f471c584ae1c0bc0593e19..d3c63f8af410e3b52435d32238014e4aca2ffe10 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" |
@@ -80,8 +82,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; |
} |