Index: gpu/command_buffer/common/gles2_cmd_utils.cc |
diff --git a/gpu/command_buffer/common/gles2_cmd_utils.cc b/gpu/command_buffer/common/gles2_cmd_utils.cc |
index e0ca1ecc650ab81fa3746dde630b9dbb7297c856..94692c10b63a1cf7c5683d4e2b4b8b29b02b0035 100644 |
--- a/gpu/command_buffer/common/gles2_cmd_utils.cc |
+++ b/gpu/command_buffer/common/gles2_cmd_utils.cc |
@@ -453,6 +453,7 @@ int BytesPerElement(int type) { |
case GL_FLOAT: |
case GL_UNSIGNED_INT_24_8_OES: |
case GL_UNSIGNED_INT: |
+ case GL_INT: |
case GL_UNSIGNED_INT_2_10_10_10_REV: |
case GL_UNSIGNED_INT_10F_11F_11F_REV: |
case GL_UNSIGNED_INT_5_9_9_9_REV: |
@@ -1085,6 +1086,49 @@ uint32_t GLES2Util::MapBufferTargetToBindingEnum(uint32_t target) { |
} |
} |
+// static |
+bool GLES2Util::IsUnsignedIntegerFormat(uint32_t internal_format) { |
+ switch (internal_format) { |
+ case GL_R8UI: |
+ case GL_R16UI: |
+ case GL_R32UI: |
+ case GL_RG8UI: |
+ case GL_RG16UI: |
+ case GL_RG32UI: |
+ case GL_RGBA8UI: |
+ case GL_RGB10_A2UI: |
+ case GL_RGBA16UI: |
+ case GL_RGBA32UI: |
+ return true; |
+ default: |
+ return false; |
+ } |
+} |
+ |
+// static |
+bool GLES2Util::IsSignedIntegerFormat(uint32_t internal_format) { |
+ switch (internal_format) { |
+ case GL_R8I: |
+ case GL_R16I: |
+ case GL_R32I: |
+ case GL_RG8I: |
+ case GL_RG16I: |
+ case GL_RG32I: |
+ case GL_RGBA8I: |
+ case GL_RGBA16I: |
+ case GL_RGBA32I: |
+ return true; |
+ default: |
+ return false; |
+ } |
+} |
+ |
+// static |
+bool GLES2Util::IsIntegerFormat(uint32_t internal_format) { |
+ return (IsUnsignedIntegerFormat(internal_format) || |
+ IsSignedIntegerFormat(internal_format)); |
+} |
+ |
namespace { |