Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(482)

Side by Side Diff: gpu/command_buffer/build_gles2_cmd_buffer.py

Issue 169403005: command_buffer: Implement path rendering functions for CHROMIUM_path_rendering (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@nv-pr-02-texgen
Patch Set: improve parameter validation and write up the extension .txt file Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """code generator for GLES2 command buffers.""" 6 """code generator for GLES2 command buffers."""
7 7
8 import itertools 8 import itertools
9 import os 9 import os
10 import os.path 10 import os.path
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 'default': [ 502 'default': [
503 '1.0f', '0.0f','0.0f','0.0f', 503 '1.0f', '0.0f','0.0f','0.0f',
504 '0.0f', '1.0f','0.0f','0.0f', 504 '0.0f', '1.0f','0.0f','0.0f',
505 '0.0f', '0.0f','1.0f','0.0f', 505 '0.0f', '0.0f','1.0f','0.0f',
506 '0.0f', '0.0f','0.0f','1.0f', 506 '0.0f', '0.0f','0.0f','1.0f',
507 ], 507 ],
508 'extension_flag': 'chromium_path_rendering', 508 'extension_flag': 'chromium_path_rendering',
509 }, 509 },
510 ], 510 ],
511 }, 511 },
512 'PathStencilFuncCHROMIUM': {
513 'type': 'Normal',
514 'func': 'PathStencilFuncNV',
515 'extension_flag': 'chromium_path_rendering',
516 'states': [
517 {
518 'name': 'stencil_path_func',
519 'type': 'GLenum',
520 'enum': 'GL_PATH_STENCIL_FUNC_CHROMIUM',
521 'default': 'GL_ALWAYS',
522 },
523 {
524 'name': 'stencil_path_ref',
525 'type': 'GLint',
526 'enum': 'GL_PATH_STENCIL_REF_CHROMIUM',
527 'default': '0',
528 },
529 {
530 'name': 'stencil_path_mask',
531 'type': 'GLuint',
532 'enum': 'GL_PATH_STENCIL_VALUE_MASK_CHROMIUM',
533 'default': '0xFFFFFFFFU',
534 },
535 ],
536 },
512 } 537 }
513 538
514 # This is a list of enum names and their valid values. It is used to map 539 # This is a list of enum names and their valid values. It is used to map
515 # GLenum arguments to a specific set of valid values. 540 # GLenum arguments to a specific set of valid values.
516 _ENUM_LISTS = { 541 _ENUM_LISTS = {
517 'BlitFilter': { 542 'BlitFilter': {
518 'type': 'GLenum', 543 'type': 'GLenum',
519 'valid': [ 544 'valid': [
520 'GL_NEAREST', 545 'GL_NEAREST',
521 'GL_LINEAR', 546 'GL_LINEAR',
(...skipping 536 matching lines...) Expand 10 before | Expand all | Expand 10 after
1058 'GL_UNSIGNED_BYTE', 1083 'GL_UNSIGNED_BYTE',
1059 'GL_UNSIGNED_SHORT_5_6_5', 1084 'GL_UNSIGNED_SHORT_5_6_5',
1060 'GL_UNSIGNED_SHORT_4_4_4_4', 1085 'GL_UNSIGNED_SHORT_4_4_4_4',
1061 'GL_UNSIGNED_SHORT_5_5_5_1', 1086 'GL_UNSIGNED_SHORT_5_5_5_1',
1062 ], 1087 ],
1063 'invalid': [ 1088 'invalid': [
1064 'GL_SHORT', 1089 'GL_SHORT',
1065 'GL_INT', 1090 'GL_INT',
1066 ], 1091 ],
1067 }, 1092 },
1093 'PathCoordType': {
1094 'type': 'GLenum',
1095 'valid': [
1096 'GL_FLOAT',
1097 ],
1098 },
1099 'PathCoverMode': {
1100 'type': 'GLenum',
1101 'valid': [
1102 'GL_BOUNDING_BOX_CHROMIUM',
1103 ],
1104 },
1105 'PathCoverModeInstanced': {
1106 'type': 'GLenum',
1107 'valid': [
1108 'GL_BOUNDING_BOX_OF_BOUNDING_BOXES_CHROMIUM',
1109 ],
1110 },
1111 'PathFillMode': {
1112 'type': 'GLenum',
1113 'valid': [
1114 'GL_INVERT',
1115 'GL_COUNT_UP_CHROMIUM',
1116 'GL_COUNT_DOWN_CHROMIUM',
1117 ],
1118 },
1119 'PathGenMode': {
1120 'type': 'GLenum',
1121 'valid': [
1122 'GL_OBJECT_LINEAR_CHROMIUM',
1123 'GL_EYE_LINEAR_CHROMIUM',
1124 ],
1125 },
1126 'PathNameType': {
1127 'type': 'GLenum',
1128 'valid': [
1129 'GL_UNSIGNED_INT'
1130 ],
1131 },
1132 'PathParameter': {
1133 'type': 'GLenum',
1134 'valid': [
1135 'GL_PATH_STROKE_WIDTH_CHROMIUM',
1136 'GL_PATH_INITIAL_END_CAP_CHROMIUM',
1137 'GL_PATH_TERMINAL_END_CAP_CHROMIUM',
1138 'GL_PATH_JOIN_STYLE_CHROMIUM',
1139 'GL_PATH_MITER_LIMIT_CHROMIUM',
1140 ]
1141 },
1142 'PathTransformType': {
1143 'type': 'GLenum',
1144 'valid': [
1145 'GL_NONE',
1146 'GL_TRANSLATE_X_CHROMIUM',
1147 'GL_TRANSLATE_Y_CHROMIUM',
1148 'GL_TRANSLATE_2D_CHROMIUM',
1149 'GL_TRANSLATE_3D_CHROMIUM',
1150 'GL_AFFINE_2D_CHROMIUM',
1151 'GL_AFFINE_3D_CHROMIUM',
1152 'GL_TRANSPOSE_AFFINE_2D_CHROMIUM',
1153 'GL_TRANSPOSE_AFFINE_3D_CHROMIUM',
1154 ],
1155 },
1068 'ReadPixelType': { 1156 'ReadPixelType': {
1069 'type': 'GLenum', 1157 'type': 'GLenum',
1070 'valid': [ 1158 'valid': [
1071 'GL_UNSIGNED_BYTE', 1159 'GL_UNSIGNED_BYTE',
1072 'GL_UNSIGNED_SHORT_5_6_5', 1160 'GL_UNSIGNED_SHORT_5_6_5',
1073 'GL_UNSIGNED_SHORT_4_4_4_4', 1161 'GL_UNSIGNED_SHORT_4_4_4_4',
1074 'GL_UNSIGNED_SHORT_5_5_5_1', 1162 'GL_UNSIGNED_SHORT_5_5_5_1',
1075 ], 1163 ],
1076 'invalid': [ 1164 'invalid': [
1077 'GL_SHORT', 1165 'GL_SHORT',
(...skipping 1514 matching lines...) Expand 10 before | Expand all | Expand 10 after
2592 'unit_test': False, 2680 'unit_test': False,
2593 'chromium': True, 2681 'chromium': True,
2594 'extension': True, 2682 'extension': True,
2595 }, 2683 },
2596 'MatrixLoadIdentityCHROMIUM': { 2684 'MatrixLoadIdentityCHROMIUM': {
2597 'decoder_func': 'DoMatrixLoadIdentityCHROMIUM', 2685 'decoder_func': 'DoMatrixLoadIdentityCHROMIUM',
2598 'unit_test': False, 2686 'unit_test': False,
2599 'chromium': True, 2687 'chromium': True,
2600 'extension': True, 2688 'extension': True,
2601 }, 2689 },
2690 'GenPathsCHROMIUM': {
2691 'type': 'Custom',
2692 'cmd_args':
2693 'GLsizei range, GLuint* client_ids',
2694 'immediate': False, # FIXME: cannot create immediate command
piman 2014/04/24 22:26:36 nit: in chromium code, we use TODO rather than FIX
2695 # because it will use original args instead of
2696 # cmd_args
2697 'unit_test': False, # FIXME: see above
2698 'chromium': True,
2699 'extension': True,
2700 },
2701 'DeletePathsCHROMIUM': {
2702 'decoder_func': 'DeletePathsCHROMIUMHelper',
2703 'unit_test': False, # FIXME: see above
2704 'chromium': True,
2705 'extension': True,
2706 },
2707 'PathCommandsCHROMIUM': {
2708 'type': 'Manual',
2709 'immediate': False,
2710 'chromium': True,
2711 'extension': True,
2712 },
2713 'PathParameterfCHROMIUM': {
2714 'type': 'Custom',
2715 'chromium': True,
2716 'extension': True,
2717 },
2718 'PathParameteriCHROMIUM': {
2719 'type': 'Custom',
2720 'chromium': True,
2721 'extension': True,
2722 },
2723 'PathStencilFuncCHROMIUM': {
2724 'type': 'StateSet',
2725 'state': 'PathStencilFuncCHROMIUM',
2726 'decoder_func': 'glPathStencilFuncNV',
2727 'chromium': True,
2728 'extension': True,
2729 },
2730 'StencilFillPathCHROMIUM': {
2731 'type': 'Custom',
2732 'chromium': True,
2733 'extension': True,
2734 },
2735 'StencilFillPathInstancedCHROMIUM': {
2736 'type': 'Custom',
2737 'chromium': True,
2738 'extension': True,
2739 },
2740 'StencilStrokePathCHROMIUM': {
2741 'type': 'Custom',
2742 'chromium': True,
2743 'extension': True,
2744 },
2745 'StencilStrokePathInstancedCHROMIUM': {
2746 'type': 'Custom',
2747 'chromium': True,
2748 'extension': True,
2749 },
2750 'PathTexGenCHROMIUM': {
2751 'type': 'Manual',
2752 'immediate': False,
2753 'chromium': True,
2754 'extension': True,
2755 },
2756 'CoverFillPathCHROMIUM': {
2757 'type': 'Custom',
2758 'chromium': True,
2759 'extension': True,
2760 },
2761 'CoverFillPathInstancedCHROMIUM': {
2762 'type': 'Custom',
2763 'chromium': True,
2764 'extension': True,
2765 },
2766 'CoverStrokePathCHROMIUM': {
2767 'type': 'Custom',
2768 'chromium': True,
2769 'extension': True,
2770 },
2771 'CoverStrokePathInstancedCHROMIUM': {
2772 'type': 'Custom',
2773 'chromium': True,
2774 'extension': True,
2775 },
2602 } 2776 }
2603 2777
2604 def Grouper(n, iterable, fillvalue=None): 2778 def Grouper(n, iterable, fillvalue=None):
2605 """Collect data into fixed-length chunks or blocks""" 2779 """Collect data into fixed-length chunks or blocks"""
2606 args = [iter(iterable)] * n 2780 args = [iter(iterable)] * n
2607 return itertools.izip_longest(fillvalue=fillvalue, *args) 2781 return itertools.izip_longest(fillvalue=fillvalue, *args)
2608 2782
2609 2783
2610 def SplitWords(input_string): 2784 def SplitWords(input_string):
2611 """Transforms a input_string into a list of lower-case components. 2785 """Transforms a input_string into a list of lower-case components.
(...skipping 5457 matching lines...) Expand 10 before | Expand all | Expand 10 after
8069 "ppapi/shared_impl/ppb_opengles2_shared.cc"]) 8243 "ppapi/shared_impl/ppb_opengles2_shared.cc"])
8070 8244
8071 if gen.errors > 0: 8245 if gen.errors > 0:
8072 print "%d errors" % gen.errors 8246 print "%d errors" % gen.errors
8073 return 1 8247 return 1
8074 return 0 8248 return 0
8075 8249
8076 8250
8077 if __name__ == '__main__': 8251 if __name__ == '__main__':
8078 sys.exit(main(sys.argv[1:])) 8252 sys.exit(main(sys.argv[1:]))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698