OLD | NEW |
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 2183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2194 'trace_level': 2, | 2194 'trace_level': 2, |
2195 }, | 2195 }, |
2196 'BindTransformFeedback': { | 2196 'BindTransformFeedback': { |
2197 'type': 'Bind', | 2197 'type': 'Bind', |
2198 'id_mapping': [ 'TransformFeedback' ], | 2198 'id_mapping': [ 'TransformFeedback' ], |
2199 'unsafe': True, | 2199 'unsafe': True, |
2200 }, | 2200 }, |
2201 'BlitFramebufferCHROMIUM': { | 2201 'BlitFramebufferCHROMIUM': { |
2202 'decoder_func': 'DoBlitFramebufferCHROMIUM', | 2202 'decoder_func': 'DoBlitFramebufferCHROMIUM', |
2203 'unit_test': False, | 2203 'unit_test': False, |
| 2204 'extension': 'chromium_framebuffer_multisample', |
2204 'extension_flag': 'chromium_framebuffer_multisample', | 2205 'extension_flag': 'chromium_framebuffer_multisample', |
2205 'pepper_interface': 'FramebufferBlit', | 2206 'pepper_interface': 'FramebufferBlit', |
2206 'pepper_name': 'BlitFramebufferEXT', | 2207 'pepper_name': 'BlitFramebufferEXT', |
2207 'defer_reads': True, | 2208 'defer_reads': True, |
2208 'defer_draws': True, | 2209 'defer_draws': True, |
2209 'trace_level': 1, | 2210 'trace_level': 1, |
2210 }, | 2211 }, |
2211 'BufferData': { | 2212 'BufferData': { |
2212 'type': 'Manual', | 2213 'type': 'Manual', |
2213 'data_transfer_methods': ['shm'], | 2214 'data_transfer_methods': ['shm'], |
(...skipping 1046 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3260 'expectation': False, | 3261 'expectation': False, |
3261 'trace_level': 1, | 3262 'trace_level': 1, |
3262 }, | 3263 }, |
3263 'RenderbufferStorageMultisampleCHROMIUM': { | 3264 'RenderbufferStorageMultisampleCHROMIUM': { |
3264 'cmd_comment': | 3265 'cmd_comment': |
3265 '// GL_CHROMIUM_framebuffer_multisample\n', | 3266 '// GL_CHROMIUM_framebuffer_multisample\n', |
3266 'decoder_func': 'DoRenderbufferStorageMultisampleCHROMIUM', | 3267 'decoder_func': 'DoRenderbufferStorageMultisampleCHROMIUM', |
3267 'gl_test_func': 'glRenderbufferStorageMultisampleCHROMIUM', | 3268 'gl_test_func': 'glRenderbufferStorageMultisampleCHROMIUM', |
3268 'expectation': False, | 3269 'expectation': False, |
3269 'unit_test': False, | 3270 'unit_test': False, |
| 3271 'extension': 'chromium_framebuffer_multisample', |
3270 'extension_flag': 'chromium_framebuffer_multisample', | 3272 'extension_flag': 'chromium_framebuffer_multisample', |
3271 'pepper_interface': 'FramebufferMultisample', | 3273 'pepper_interface': 'FramebufferMultisample', |
3272 'pepper_name': 'RenderbufferStorageMultisampleEXT', | 3274 'pepper_name': 'RenderbufferStorageMultisampleEXT', |
3273 'trace_level': 1, | 3275 'trace_level': 1, |
3274 }, | 3276 }, |
3275 'RenderbufferStorageMultisampleEXT': { | 3277 'RenderbufferStorageMultisampleEXT': { |
3276 'cmd_comment': | 3278 'cmd_comment': |
3277 '// GL_EXT_multisampled_render_to_texture\n', | 3279 '// GL_EXT_multisampled_render_to_texture\n', |
3278 'decoder_func': 'DoRenderbufferStorageMultisampleEXT', | 3280 'decoder_func': 'DoRenderbufferStorageMultisampleEXT', |
3279 'gl_test_func': 'glRenderbufferStorageMultisampleEXT', | 3281 'gl_test_func': 'glRenderbufferStorageMultisampleEXT', |
(...skipping 1581 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4861 | 4863 |
4862 def WriteMojoGLES2Impl(self, func, f): | 4864 def WriteMojoGLES2Impl(self, func, f): |
4863 """Writes the Mojo GLES2 implementation.""" | 4865 """Writes the Mojo GLES2 implementation.""" |
4864 f.write("%s MojoGLES2Impl::%s(%s) {\n" % | 4866 f.write("%s MojoGLES2Impl::%s(%s) {\n" % |
4865 (func.return_type, func.original_name, | 4867 (func.return_type, func.original_name, |
4866 func.MakeTypedOriginalArgString(""))) | 4868 func.MakeTypedOriginalArgString(""))) |
4867 extensions = ["CHROMIUM_sync_point", "CHROMIUM_texture_mailbox", | 4869 extensions = ["CHROMIUM_sync_point", "CHROMIUM_texture_mailbox", |
4868 "CHROMIUM_sub_image", "CHROMIUM_miscellaneous", | 4870 "CHROMIUM_sub_image", "CHROMIUM_miscellaneous", |
4869 "occlusion_query_EXT", "CHROMIUM_image", | 4871 "occlusion_query_EXT", "CHROMIUM_image", |
4870 "CHROMIUM_copy_texture", | 4872 "CHROMIUM_copy_texture", |
4871 "CHROMIUM_pixel_transfer_buffer_object"] | 4873 "CHROMIUM_pixel_transfer_buffer_object", |
| 4874 "chromium_framebuffer_multisample"] |
4872 if func.IsCoreGLFunction() or func.GetInfo("extension") in extensions: | 4875 if func.IsCoreGLFunction() or func.GetInfo("extension") in extensions: |
4873 f.write("MojoGLES2MakeCurrent(context_);"); | 4876 f.write("MojoGLES2MakeCurrent(context_);"); |
4874 func_return = "gl" + func.original_name + "(" + \ | 4877 func_return = "gl" + func.original_name + "(" + \ |
4875 func.MakeOriginalArgString("") + ");" | 4878 func.MakeOriginalArgString("") + ");" |
4876 if func.return_type == "void": | 4879 if func.return_type == "void": |
4877 f.write(func_return); | 4880 f.write(func_return); |
4878 else: | 4881 else: |
4879 f.write("return " + func_return); | 4882 f.write("return " + func_return); |
4880 else: | 4883 else: |
4881 f.write("NOTREACHED() << \"Unimplemented %s.\";\n" % | 4884 f.write("NOTREACHED() << \"Unimplemented %s.\";\n" % |
(...skipping 5561 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10443 f.write(code); | 10446 f.write(code); |
10444 self.generated_cpp_filenames.append(filename) | 10447 self.generated_cpp_filenames.append(filename) |
10445 | 10448 |
10446 def WriteMojoGLES2Impl(self, filename): | 10449 def WriteMojoGLES2Impl(self, filename): |
10447 """Writes the Mojo GLES2 implementation.""" | 10450 """Writes the Mojo GLES2 implementation.""" |
10448 code = """ | 10451 code = """ |
10449 #include "mojo/gpu/mojo_gles2_impl_autogen.h" | 10452 #include "mojo/gpu/mojo_gles2_impl_autogen.h" |
10450 | 10453 |
10451 #include "base/logging.h" | 10454 #include "base/logging.h" |
10452 #include "third_party/mojo/src/mojo/public/c/gles2/chromium_copy_texture.h" | 10455 #include "third_party/mojo/src/mojo/public/c/gles2/chromium_copy_texture.h" |
| 10456 #include "third_party/mojo/src/mojo/public/c/gles2/chromium_framebuffer_multisam
ple.h" |
10453 #include "third_party/mojo/src/mojo/public/c/gles2/chromium_image.h" | 10457 #include "third_party/mojo/src/mojo/public/c/gles2/chromium_image.h" |
10454 #include "third_party/mojo/src/mojo/public/c/gles2/chromium_miscellaneous.h" | 10458 #include "third_party/mojo/src/mojo/public/c/gles2/chromium_miscellaneous.h" |
10455 #include "third_party/mojo/src/mojo/public/c/gles2/chromium_pixel_transfer_buffe
r_object.h" | 10459 #include "third_party/mojo/src/mojo/public/c/gles2/chromium_pixel_transfer_buffe
r_object.h" |
10456 #include "third_party/mojo/src/mojo/public/c/gles2/chromium_sub_image.h" | 10460 #include "third_party/mojo/src/mojo/public/c/gles2/chromium_sub_image.h" |
10457 #include "third_party/mojo/src/mojo/public/c/gles2/chromium_sync_point.h" | 10461 #include "third_party/mojo/src/mojo/public/c/gles2/chromium_sync_point.h" |
10458 #include "third_party/mojo/src/mojo/public/c/gles2/chromium_texture_mailbox.h" | 10462 #include "third_party/mojo/src/mojo/public/c/gles2/chromium_texture_mailbox.h" |
10459 #include "third_party/mojo/src/mojo/public/c/gles2/gles2.h" | 10463 #include "third_party/mojo/src/mojo/public/c/gles2/gles2.h" |
10460 #include "third_party/mojo/src/mojo/public/c/gles2/occlusion_query_ext.h" | 10464 #include "third_party/mojo/src/mojo/public/c/gles2/occlusion_query_ext.h" |
10461 | 10465 |
10462 namespace mojo { | 10466 namespace mojo { |
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11017 "occlusion_query_EXT") | 11021 "occlusion_query_EXT") |
11018 gen.WriteMojoGLCallVisitorForExtension( | 11022 gen.WriteMojoGLCallVisitorForExtension( |
11019 mojo_gles2_prefix + "_chromium_image_autogen.h", | 11023 mojo_gles2_prefix + "_chromium_image_autogen.h", |
11020 "CHROMIUM_image") | 11024 "CHROMIUM_image") |
11021 gen.WriteMojoGLCallVisitorForExtension( | 11025 gen.WriteMojoGLCallVisitorForExtension( |
11022 mojo_gles2_prefix + "_chromium_copy_texture_autogen.h", | 11026 mojo_gles2_prefix + "_chromium_copy_texture_autogen.h", |
11023 "CHROMIUM_copy_texture") | 11027 "CHROMIUM_copy_texture") |
11024 gen.WriteMojoGLCallVisitorForExtension( | 11028 gen.WriteMojoGLCallVisitorForExtension( |
11025 mojo_gles2_prefix + "_chromium_pixel_transfer_buffer_object_autogen.h", | 11029 mojo_gles2_prefix + "_chromium_pixel_transfer_buffer_object_autogen.h", |
11026 "CHROMIUM_pixel_transfer_buffer_object") | 11030 "CHROMIUM_pixel_transfer_buffer_object") |
| 11031 gen.WriteMojoGLCallVisitorForExtension( |
| 11032 mojo_gles2_prefix + "_chromium_framebuffer_multisample_autogen.h", |
| 11033 "chromium_framebuffer_multisample") |
11027 | 11034 |
11028 Format(gen.generated_cpp_filenames) | 11035 Format(gen.generated_cpp_filenames) |
11029 | 11036 |
11030 if gen.errors > 0: | 11037 if gen.errors > 0: |
11031 print "%d errors" % gen.errors | 11038 print "%d errors" % gen.errors |
11032 return 1 | 11039 return 1 |
11033 return 0 | 11040 return 0 |
11034 | 11041 |
11035 | 11042 |
11036 if __name__ == '__main__': | 11043 if __name__ == '__main__': |
11037 sys.exit(main(sys.argv[1:])) | 11044 sys.exit(main(sys.argv[1:])) |
OLD | NEW |