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 "gpu/command_buffer/common/gles2_cmd_utils.h" | 8 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
9 | 9 |
10 #include <GLES2/gl2.h> | 10 #include <GLES2/gl2.h> |
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
476 return 1; | 476 return 1; |
477 | 477 |
478 // bad enum | 478 // bad enum |
479 default: | 479 default: |
480 return 0; | 480 return 0; |
481 } | 481 } |
482 } | 482 } |
483 | 483 |
484 namespace { | 484 namespace { |
485 | 485 |
486 // Return the number of bytes per element, based on the element type. | |
487 int BytesPerElement(int type) { | |
488 switch (type) { | |
489 case GL_FLOAT_32_UNSIGNED_INT_24_8_REV: | |
490 return 8; | |
491 case GL_FLOAT: | |
492 case GL_UNSIGNED_INT_24_8_OES: | |
493 case GL_UNSIGNED_INT: | |
494 case GL_INT: | |
495 case GL_UNSIGNED_INT_2_10_10_10_REV: | |
496 case GL_UNSIGNED_INT_10F_11F_11F_REV: | |
497 case GL_UNSIGNED_INT_5_9_9_9_REV: | |
498 return 4; | |
499 case GL_HALF_FLOAT: | |
500 case GL_HALF_FLOAT_OES: | |
501 case GL_UNSIGNED_SHORT: | |
502 case GL_SHORT: | |
503 case GL_UNSIGNED_SHORT_5_6_5: | |
504 case GL_UNSIGNED_SHORT_4_4_4_4: | |
505 case GL_UNSIGNED_SHORT_5_5_5_1: | |
506 return 2; | |
507 case GL_UNSIGNED_BYTE: | |
508 case GL_BYTE: | |
509 return 1; | |
510 default: | |
511 return 0; | |
512 } | |
513 } | |
514 | |
515 } // anonymous namespace | |
516 | |
517 // Return the number of elements per group of a specified format. | 486 // Return the number of elements per group of a specified format. |
518 int GLES2Util::ElementsPerGroup(int format, int type) { | 487 int ElementsPerGroup(int format, int type) { |
519 switch (type) { | 488 switch (type) { |
520 case GL_UNSIGNED_SHORT_5_6_5: | 489 case GL_UNSIGNED_SHORT_5_6_5: |
521 case GL_UNSIGNED_SHORT_4_4_4_4: | 490 case GL_UNSIGNED_SHORT_4_4_4_4: |
522 case GL_UNSIGNED_SHORT_5_5_5_1: | 491 case GL_UNSIGNED_SHORT_5_5_5_1: |
523 case GL_UNSIGNED_INT_24_8_OES: | 492 case GL_UNSIGNED_INT_24_8_OES: |
524 case GL_UNSIGNED_INT_2_10_10_10_REV: | 493 case GL_UNSIGNED_INT_2_10_10_10_REV: |
525 case GL_UNSIGNED_INT_10F_11F_11F_REV: | 494 case GL_UNSIGNED_INT_10F_11F_11F_REV: |
526 case GL_UNSIGNED_INT_5_9_9_9_REV: | 495 case GL_UNSIGNED_INT_5_9_9_9_REV: |
527 case GL_FLOAT_32_UNSIGNED_INT_24_8_REV: | 496 case GL_FLOAT_32_UNSIGNED_INT_24_8_REV: |
528 return 1; | 497 return 1; |
(...skipping 24 matching lines...) Expand all Loading... |
553 case GL_DEPTH24_STENCIL8_OES: | 522 case GL_DEPTH24_STENCIL8_OES: |
554 case GL_DEPTH_STENCIL_OES: | 523 case GL_DEPTH_STENCIL_OES: |
555 case GL_RED_EXT: | 524 case GL_RED_EXT: |
556 case GL_RED_INTEGER: | 525 case GL_RED_INTEGER: |
557 return 1; | 526 return 1; |
558 default: | 527 default: |
559 return 0; | 528 return 0; |
560 } | 529 } |
561 } | 530 } |
562 | 531 |
| 532 // Return the number of bytes per element, based on the element type. |
| 533 int BytesPerElement(int type) { |
| 534 switch (type) { |
| 535 case GL_FLOAT_32_UNSIGNED_INT_24_8_REV: |
| 536 return 8; |
| 537 case GL_FLOAT: |
| 538 case GL_UNSIGNED_INT_24_8_OES: |
| 539 case GL_UNSIGNED_INT: |
| 540 case GL_INT: |
| 541 case GL_UNSIGNED_INT_2_10_10_10_REV: |
| 542 case GL_UNSIGNED_INT_10F_11F_11F_REV: |
| 543 case GL_UNSIGNED_INT_5_9_9_9_REV: |
| 544 return 4; |
| 545 case GL_HALF_FLOAT: |
| 546 case GL_HALF_FLOAT_OES: |
| 547 case GL_UNSIGNED_SHORT: |
| 548 case GL_SHORT: |
| 549 case GL_UNSIGNED_SHORT_5_6_5: |
| 550 case GL_UNSIGNED_SHORT_4_4_4_4: |
| 551 case GL_UNSIGNED_SHORT_5_5_5_1: |
| 552 return 2; |
| 553 case GL_UNSIGNED_BYTE: |
| 554 case GL_BYTE: |
| 555 return 1; |
| 556 default: |
| 557 return 0; |
| 558 } |
| 559 } |
| 560 |
| 561 } // anonymous namespace |
| 562 |
563 uint32_t GLES2Util::ComputeImageGroupSize(int format, int type) { | 563 uint32_t GLES2Util::ComputeImageGroupSize(int format, int type) { |
564 int bytes_per_element = BytesPerElement(type); | 564 int bytes_per_element = BytesPerElement(type); |
565 DCHECK_GE(8, bytes_per_element); | 565 DCHECK_GE(8, bytes_per_element); |
566 int elements_per_group = ElementsPerGroup(format, type); | 566 int elements_per_group = ElementsPerGroup(format, type); |
567 DCHECK_GE(4, elements_per_group); | 567 DCHECK_GE(4, elements_per_group); |
568 return bytes_per_element * elements_per_group; | 568 return bytes_per_element * elements_per_group; |
569 } | 569 } |
570 | 570 |
571 bool GLES2Util::ComputeImageRowSizeHelper(int width, | 571 bool GLES2Util::ComputeImageRowSizeHelper(int width, |
572 uint32_t bytes_per_group, | 572 uint32_t bytes_per_group, |
(...skipping 1379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1952 } | 1952 } |
1953 } | 1953 } |
1954 | 1954 |
1955 return true; | 1955 return true; |
1956 } | 1956 } |
1957 | 1957 |
1958 #include "gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h" | 1958 #include "gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h" |
1959 | 1959 |
1960 } // namespace gles2 | 1960 } // namespace gles2 |
1961 } // namespace gpu | 1961 } // namespace gpu |
OLD | NEW |