| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // This file is here so other GLES2 related files can have a common set of | 5 // This file is here so other GLES2 related files can have a common set of |
| 6 // includes where appropriate. | 6 // includes where appropriate. |
| 7 | 7 |
| 8 #include <sstream> | 8 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
| 9 |
| 9 #include <GLES2/gl2.h> | 10 #include <GLES2/gl2.h> |
| 10 #include <GLES2/gl2ext.h> | 11 #include <GLES2/gl2ext.h> |
| 11 #include <GLES2/gl2extchromium.h> | 12 #include <GLES2/gl2extchromium.h> |
| 12 #include <GLES3/gl3.h> | 13 #include <GLES3/gl3.h> |
| 13 | 14 |
| 15 #include <sstream> |
| 16 |
| 14 #include "base/numerics/safe_math.h" | 17 #include "base/numerics/safe_math.h" |
| 15 #include "gpu/command_buffer/common/gles2_cmd_utils.h" | |
| 16 | 18 |
| 17 namespace gpu { | 19 namespace gpu { |
| 18 namespace gles2 { | 20 namespace gles2 { |
| 19 | 21 |
| 20 namespace gl_error_bit { | 22 namespace gl_error_bit { |
| 21 enum GLErrorBit { | 23 enum GLErrorBit { |
| 22 kNoError = 0, | 24 kNoError = 0, |
| 23 kInvalidEnum = (1 << 0), | 25 kInvalidEnum = (1 << 0), |
| 24 kInvalidValue = (1 << 1), | 26 kInvalidValue = (1 << 1), |
| 25 kInvalidOperation = (1 << 2), | 27 kInvalidOperation = (1 << 2), |
| 26 kOutOfMemory = (1 << 3), | 28 kOutOfMemory = (1 << 3), |
| 27 kInvalidFrameBufferOperation = (1 << 4), | 29 kInvalidFrameBufferOperation = (1 << 4), |
| 28 kContextLost = (1 << 5) | 30 kContextLost = (1 << 5) |
| 29 }; | 31 }; |
| 30 } | 32 } // namespace gl_error_bit |
| 31 | 33 |
| 32 int GLES2Util::GLGetNumValuesReturned(int id) const { | 34 int GLES2Util::GLGetNumValuesReturned(int id) const { |
| 33 switch (id) { | 35 switch (id) { |
| 34 // -- glGetBooleanv, glGetFloatv, glGetIntergerv | 36 // -- glGetBooleanv, glGetFloatv, glGetIntergerv |
| 35 case GL_ACTIVE_TEXTURE: | 37 case GL_ACTIVE_TEXTURE: |
| 36 return 1; | 38 return 1; |
| 37 case GL_ALIASED_LINE_WIDTH_RANGE: | 39 case GL_ALIASED_LINE_WIDTH_RANGE: |
| 38 return 2; | 40 return 2; |
| 39 case GL_ALIASED_POINT_SIZE_RANGE: | 41 case GL_ALIASED_POINT_SIZE_RANGE: |
| 40 return 2; | 42 return 2; |
| (...skipping 1406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1447 GL_COLOR_ATTACHMENT0 + max_color_attachments)) { | 1449 GL_COLOR_ATTACHMENT0 + max_color_attachments)) { |
| 1448 return kRGBA; | 1450 return kRGBA; |
| 1449 } | 1451 } |
| 1450 return 0x0000; | 1452 return 0x0000; |
| 1451 } | 1453 } |
| 1452 } | 1454 } |
| 1453 | 1455 |
| 1454 std::string GLES2Util::GetStringEnum(uint32_t value) { | 1456 std::string GLES2Util::GetStringEnum(uint32_t value) { |
| 1455 const EnumToString* entry = enum_to_string_table_; | 1457 const EnumToString* entry = enum_to_string_table_; |
| 1456 const EnumToString* end = entry + enum_to_string_table_len_; | 1458 const EnumToString* end = entry + enum_to_string_table_len_; |
| 1457 for (;entry < end; ++entry) { | 1459 for (; entry < end; ++entry) { |
| 1458 if (value == entry->value) { | 1460 if (value == entry->value) |
| 1459 return entry->name; | 1461 return entry->name; |
| 1460 } | |
| 1461 } | 1462 } |
| 1462 std::stringstream ss; | 1463 std::stringstream ss; |
| 1463 ss.fill('0'); | 1464 ss.fill('0'); |
| 1464 ss.width(value < 0x10000 ? 4 : 8); | 1465 ss.width(value < 0x10000 ? 4 : 8); |
| 1465 ss << std::hex << value; | 1466 ss << std::hex << value; |
| 1466 return "0x" + ss.str(); | 1467 return "0x" + ss.str(); |
| 1467 } | 1468 } |
| 1468 | 1469 |
| 1469 std::string GLES2Util::GetStringError(uint32_t value) { | 1470 std::string GLES2Util::GetStringError(uint32_t value) { |
| 1470 static EnumToString string_table[] = { | 1471 static EnumToString string_table[] = { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1485 if (table->value == value) { | 1486 if (table->value == value) { |
| 1486 return table->name; | 1487 return table->name; |
| 1487 } | 1488 } |
| 1488 } | 1489 } |
| 1489 return GetStringEnum(value); | 1490 return GetStringEnum(value); |
| 1490 } | 1491 } |
| 1491 | 1492 |
| 1492 GLSLArrayName::GLSLArrayName(const std::string& name) : element_index_(-1) { | 1493 GLSLArrayName::GLSLArrayName(const std::string& name) : element_index_(-1) { |
| 1493 if (name.size() < 4) | 1494 if (name.size() < 4) |
| 1494 return; | 1495 return; |
| 1495 if (name[name.size() - 1] != ']') | 1496 if (name.back() != ']') |
| 1496 return; | 1497 return; |
| 1497 | 1498 |
| 1498 size_t open_pos = name.find_last_of('['); | 1499 size_t open_pos = name.find_last_of('['); |
| 1499 if (open_pos >= name.size() - 2) | 1500 if (open_pos >= name.size() - 2) |
| 1500 return; | 1501 return; |
| 1501 | 1502 |
| 1502 base::CheckedNumeric<int> index = 0; | 1503 base::CheckedNumeric<int> index = 0; |
| 1503 size_t last = name.size() - 1; | 1504 size_t last = name.size() - 1; |
| 1504 for (size_t pos = open_pos + 1; pos < last; ++pos) { | 1505 for (size_t pos = open_pos + 1; pos < last; ++pos) { |
| 1505 int8_t digit = name[pos] - '0'; | 1506 int8_t digit = name[pos] - '0'; |
| (...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1875 } | 1876 } |
| 1876 | 1877 |
| 1877 return true; | 1878 return true; |
| 1878 } | 1879 } |
| 1879 | 1880 |
| 1880 #include "gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h" | 1881 #include "gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h" |
| 1881 | 1882 |
| 1882 } // namespace gles2 | 1883 } // namespace gles2 |
| 1883 } // namespace gpu | 1884 } // namespace gpu |
| 1884 | 1885 |
| OLD | NEW |