| OLD | NEW | 
|---|
| 1 #!/usr/bin/python | 1 #!/usr/bin/python | 
| 2 # | 2 # | 
| 3 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 3 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 
| 4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be | 
| 5 # found in the LICENSE file. | 5 # found in the LICENSE file. | 
| 6 | 6 | 
| 7 """code generator for GLES2 command buffers.""" | 7 """code generator for GLES2 command buffers.""" | 
| 8 | 8 | 
| 9 import os | 9 import os | 
| 10 import os.path | 10 import os.path | 
| (...skipping 5700 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5711 | 5711 | 
| 5712     file.Close() | 5712     file.Close() | 
| 5713 | 5713 | 
| 5714   def WritePepperGLES2Implementation(self, filename): | 5714   def WritePepperGLES2Implementation(self, filename): | 
| 5715     """Writes the Pepper OpenGLES interface implementation.""" | 5715     """Writes the Pepper OpenGLES interface implementation.""" | 
| 5716 | 5716 | 
| 5717     file = CWriter(filename) | 5717     file = CWriter(filename) | 
| 5718     file.Write(_LICENSE) | 5718     file.Write(_LICENSE) | 
| 5719     file.Write(_DO_NOT_EDIT_WARNING) | 5719     file.Write(_DO_NOT_EDIT_WARNING) | 
| 5720 | 5720 | 
| 5721     file.Write("#include \"webkit/plugins/ppapi/ppb_opengles_impl.h\"\n\n") | 5721     file.Write("#include \"ppapi/shared_impl/opengles2_impl.h\"\n\n") | 
|  | 5722     file.Write("#include \"base/logging.h\"\n") | 
|  | 5723     file.Write("#include \"gpu/command_buffer/client/gles2_implementation.h\"\n"
      ) | 
|  | 5724     file.Write("#include \"ppapi/shared_impl/graphics_3d_impl.h\"\n") | 
|  | 5725     file.Write("#include \"ppapi/thunk/enter.h\"\n") | 
|  | 5726     file.Write("#include \"ppapi/thunk/ppb_context_3d_api.h\"\n\n") | 
| 5722 | 5727 | 
| 5723     file.Write("#include \"gpu/command_buffer/client/gles2_implementation.h\"\n"
      ) |  | 
| 5724     file.Write("#include \"ppapi/c/dev/ppb_opengles_dev.h\"\n") |  | 
| 5725     file.Write("#include \"ppapi/shared_impl/resource_object_base.h\"\n") |  | 
| 5726     file.Write("#include \"ppapi/shared_impl/tracker_base.h\"\n") |  | 
| 5727     file.Write("#include \"webkit/plugins/ppapi/ppb_context_3d_impl.h\"\n\n") |  | 
| 5728 |  | 
| 5729     file.Write("using ppapi::ResourceObjectBase;\n") |  | 
| 5730     file.Write("using ppapi::TrackerBase;\n\n") |  | 
| 5731     file.Write("namespace webkit {\n") |  | 
| 5732     file.Write("namespace ppapi {\n\n") | 5728     file.Write("namespace ppapi {\n\n") | 
| 5733     file.Write("namespace {\n\n") | 5729     file.Write("namespace {\n\n") | 
| 5734 | 5730 | 
| 5735     file.Write("gpu::gles2::GLES2Implementation* GetGLES(PP_Resource context) {\
      n") | 5731     file.Write("gpu::gles2::GLES2Implementation* GetGLES(PP_Resource context) {\
      n") | 
| 5736     file.Write("  ResourceObjectBase* base = TrackerBase::Get()->GetResourceAPI(
      context);\n") | 5732     file.Write("  thunk::EnterResource<thunk::PPB_Graphics3D_API> enter_g3d(cont
      ext, false);\n") | 
| 5737     file.Write("  DCHECK(base->AsPPB_Context3D_API());\n") | 5733     file.Write("  if (enter_g3d.succeeded()) {\n") | 
| 5738     file.Write("  return static_cast<PPB_Context3D_Impl*>(base)->gles2_impl();\n
      ") | 5734     file.Write("    return static_cast<Graphics3DImpl*>(enter_g3d.object())->gle
      s2_impl();\n") | 
|  | 5735     file.Write("  } else {\n") | 
|  | 5736     file.Write("    thunk::EnterResource<thunk::PPB_Context3D_API> enter_c3d(con
      text, true);\n") | 
|  | 5737     file.Write("    DCHECK(enter_c3d.succeeded());\n") | 
|  | 5738     file.Write("    return enter_c3d.object()->GetGLES2Impl();\n") | 
|  | 5739     file.Write("  }\n") | 
| 5739     file.Write("}\n\n") | 5740     file.Write("}\n\n") | 
| 5740 | 5741 | 
| 5741     for func in self.original_functions: | 5742     for func in self.original_functions: | 
| 5742       if not func.IsCoreGLFunction(): | 5743       if not func.IsCoreGLFunction(): | 
| 5743         continue | 5744         continue | 
| 5744 | 5745 | 
| 5745       original_arg = func.MakeTypedOriginalArgString("") | 5746       original_arg = func.MakeTypedOriginalArgString("") | 
| 5746       context_arg = "PP_Resource context_id" | 5747       context_arg = "PP_Resource context_id" | 
| 5747       if len(original_arg): | 5748       if len(original_arg): | 
| 5748         arg = context_arg + ", " + original_arg | 5749         arg = context_arg + ", " + original_arg | 
| (...skipping 10 matching lines...) Expand all  Loading... | 
| 5759     file.Write("\nconst struct PPB_OpenGLES2_Dev ppb_opengles2 = {\n") | 5760     file.Write("\nconst struct PPB_OpenGLES2_Dev ppb_opengles2 = {\n") | 
| 5760     file.Write("  &") | 5761     file.Write("  &") | 
| 5761     file.Write(",\n  &".join( | 5762     file.Write(",\n  &".join( | 
| 5762       f.name for f in self.original_functions if f.IsCoreGLFunction())) | 5763       f.name for f in self.original_functions if f.IsCoreGLFunction())) | 
| 5763     file.Write("\n") | 5764     file.Write("\n") | 
| 5764     file.Write("};\n\n") | 5765     file.Write("};\n\n") | 
| 5765 | 5766 | 
| 5766     file.Write("}  // namespace\n") | 5767     file.Write("}  // namespace\n") | 
| 5767 | 5768 | 
| 5768     file.Write(""" | 5769     file.Write(""" | 
| 5769 const PPB_OpenGLES2_Dev* PPB_OpenGLES_Impl::GetInterface() { | 5770 const PPB_OpenGLES2_Dev* OpenGLES2Impl::GetInterface() { | 
| 5770   return &ppb_opengles2; | 5771   return &ppb_opengles2; | 
| 5771 } | 5772 } | 
| 5772 | 5773 | 
| 5773 """) | 5774 """) | 
| 5774     file.Write("}  // namespace ppapi\n") | 5775     file.Write("}  // namespace ppapi\n") | 
| 5775     file.Write("}  // namespace webkit\n\n") |  | 
| 5776 |  | 
| 5777     file.Close() |  | 
| 5778 |  | 
| 5779   def WritePepperGLES2ProxyImplementation(self, filename): |  | 
| 5780     """Writes the Pepper OpenGLES interface implementation.""" |  | 
| 5781 |  | 
| 5782     file = CWriter(filename) |  | 
| 5783     file.Write(_LICENSE) |  | 
| 5784     file.Write(_DO_NOT_EDIT_WARNING) |  | 
| 5785 |  | 
| 5786     file.Write("#include \"ppapi/proxy/ppb_opengles2_proxy.h\"\n\n") |  | 
| 5787 |  | 
| 5788     file.Write("#include \"gpu/command_buffer/client/gles2_implementation.h\"\n"
      ) |  | 
| 5789     file.Write("#include \"ppapi/c/pp_errors.h\"\n") |  | 
| 5790     file.Write("#include \"ppapi/c/pp_resource.h\"\n") |  | 
| 5791     file.Write("#include \"ppapi/c/dev/ppb_opengles_dev.h\"\n") |  | 
| 5792     file.Write("#include \"ppapi/proxy/plugin_dispatcher.h\"\n") |  | 
| 5793     file.Write("#include \"ppapi/proxy/plugin_resource.h\"\n") |  | 
| 5794     file.Write("#include \"ppapi/proxy/ppb_context_3d_proxy.h\"\n") |  | 
| 5795     file.Write("#include \"ppapi/shared_impl/resource_object_base.h\"\n") |  | 
| 5796     file.Write("#include \"ppapi/shared_impl/tracker_base.h\"\n\n") |  | 
| 5797 |  | 
| 5798     file.Write("namespace pp {\n") |  | 
| 5799     file.Write("namespace proxy {\n\n") |  | 
| 5800     file.Write("namespace {\n\n") |  | 
| 5801     file.Write("gpu::gles2::GLES2Implementation* GetGLES(PP_Resource context) {\
      n") |  | 
| 5802     file.Write("  ppapi::ResourceObjectBase* base =\n") |  | 
| 5803     file.Write("  ppapi::TrackerBase::Get()->GetResourceAPI(context);\n") |  | 
| 5804     file.Write("  DCHECK(base->AsPPB_Context3D_API());\n") |  | 
| 5805     file.Write("  return static_cast<Context3D*>(base)->gles2_impl();\n") |  | 
| 5806     file.Write("}\n\n") |  | 
| 5807 |  | 
| 5808     for func in self.original_functions: |  | 
| 5809       if not func.IsCoreGLFunction(): |  | 
| 5810         continue |  | 
| 5811 |  | 
| 5812       original_arg = func.MakeTypedOriginalArgString("") |  | 
| 5813       context_arg = "PP_Resource context_id" |  | 
| 5814       if len(original_arg): |  | 
| 5815         arg = context_arg + ", " + original_arg |  | 
| 5816       else: |  | 
| 5817         arg = context_arg |  | 
| 5818       file.Write("%s %s(%s) {\n" % (func.return_type, func.name, arg)) |  | 
| 5819 |  | 
| 5820       return_str = "" if func.return_type == "void" else "return " |  | 
| 5821       file.Write("  %sGetGLES(context_id)->%s(%s);\n" % |  | 
| 5822                  (return_str, func.original_name, |  | 
| 5823                   func.MakeOriginalArgString(""))) |  | 
| 5824       file.Write("}\n\n") |  | 
| 5825 |  | 
| 5826     file.Write("const struct PPB_OpenGLES2_Dev opengles2_interface = {\n") |  | 
| 5827     file.Write("  &") |  | 
| 5828     file.Write(",\n  &".join( |  | 
| 5829       f.name for f in self.original_functions if f.IsCoreGLFunction())) |  | 
| 5830     file.Write("\n") |  | 
| 5831     file.Write("};\n\n") |  | 
| 5832 |  | 
| 5833     file.Write(""" |  | 
| 5834 InterfaceProxy* CreateOpenGLES2Proxy(Dispatcher* dispatcher, |  | 
| 5835                                      const void* target_interface) { |  | 
| 5836   return new PPB_OpenGLES2_Proxy(dispatcher, target_interface); |  | 
| 5837 } |  | 
| 5838 |  | 
| 5839 }  // namespace |  | 
| 5840 |  | 
| 5841 PPB_OpenGLES2_Proxy::PPB_OpenGLES2_Proxy(Dispatcher* dispatcher, |  | 
| 5842                                          const void* target_interface) |  | 
| 5843     : InterfaceProxy(dispatcher, target_interface) { |  | 
| 5844 } |  | 
| 5845 |  | 
| 5846 PPB_OpenGLES2_Proxy::~PPB_OpenGLES2_Proxy() { |  | 
| 5847 } |  | 
| 5848 |  | 
| 5849 // static |  | 
| 5850 const InterfaceProxy::Info* PPB_OpenGLES2_Proxy::GetInfo() { |  | 
| 5851   static const Info info = { |  | 
| 5852     &opengles2_interface, |  | 
| 5853     PPB_OPENGLES2_DEV_INTERFACE, |  | 
| 5854     INTERFACE_ID_PPB_OPENGLES2, |  | 
| 5855     false, |  | 
| 5856     &CreateOpenGLES2Proxy, |  | 
| 5857   }; |  | 
| 5858   return &info; |  | 
| 5859 } |  | 
| 5860 |  | 
| 5861 bool PPB_OpenGLES2_Proxy::OnMessageReceived(const IPC::Message& msg) { |  | 
| 5862   return false; |  | 
| 5863 } |  | 
| 5864 |  | 
| 5865 """) |  | 
| 5866     file.Write("}  // namespace proxy\n") |  | 
| 5867     file.Write("}  // namespace pp\n") |  | 
| 5868 |  | 
| 5869     file.Close() | 5776     file.Close() | 
| 5870 | 5777 | 
| 5871   def WriteGLES2ToPPAPIBridge(self, filename): | 5778   def WriteGLES2ToPPAPIBridge(self, filename): | 
| 5872     """Connects GLES2 helper library to PPB_OpenGLES2 interface""" | 5779     """Connects GLES2 helper library to PPB_OpenGLES2 interface""" | 
| 5873 | 5780 | 
| 5874     file = CWriter(filename) | 5781     file = CWriter(filename) | 
| 5875     file.Write(_LICENSE) | 5782     file.Write(_LICENSE) | 
| 5876     file.Write(_DO_NOT_EDIT_WARNING) | 5783     file.Write(_DO_NOT_EDIT_WARNING) | 
| 5877 | 5784 | 
| 5878     file.Write("#include <GLES2/gl2.h>\n") | 5785     file.Write("#include <GLES2/gl2.h>\n") | 
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5988     os.chdir(options.output_dir) | 5895     os.chdir(options.output_dir) | 
| 5989 | 5896 | 
| 5990   if options.alternate_mode == "ppapi": | 5897   if options.alternate_mode == "ppapi": | 
| 5991     # To trigger this action, do "make ppapi_gles_bindings" | 5898     # To trigger this action, do "make ppapi_gles_bindings" | 
| 5992     os.chdir("ppapi"); | 5899     os.chdir("ppapi"); | 
| 5993     gen.WritePepperGLES2Interface("c/dev/ppb_opengles_dev.h") | 5900     gen.WritePepperGLES2Interface("c/dev/ppb_opengles_dev.h") | 
| 5994     gen.WriteGLES2ToPPAPIBridge("lib/gl/gles2/gles2.c") | 5901     gen.WriteGLES2ToPPAPIBridge("lib/gl/gles2/gles2.c") | 
| 5995 | 5902 | 
| 5996   elif options.alternate_mode == "chrome_ppapi": | 5903   elif options.alternate_mode == "chrome_ppapi": | 
| 5997     # To trigger this action, do "make ppapi_gles_implementation" | 5904     # To trigger this action, do "make ppapi_gles_implementation" | 
| 5998     gen.WritePepperGLES2Implementation( | 5905     gen.WritePepperGLES2Implementation("ppapi/shared_impl/opengles2_impl.cc") | 
| 5999         "webkit/plugins/ppapi/ppb_opengles_impl.cc") |  | 
| 6000 |  | 
| 6001   elif options.alternate_mode == "chrome_ppapi_proxy": |  | 
| 6002     gen.WritePepperGLES2ProxyImplementation( |  | 
| 6003         "ppapi/proxy/ppb_opengles2_proxy.cc") |  | 
| 6004 | 5906 | 
| 6005   elif options.alternate_mode == "nacl_ppapi": | 5907   elif options.alternate_mode == "nacl_ppapi": | 
| 6006     gen.WritePepperGLES2NaClProxy( | 5908     gen.WritePepperGLES2NaClProxy( | 
| 6007         "native_client/src/shared/ppapi_proxy/plugin_opengles.cc") | 5909         "native_client/src/shared/ppapi_proxy/plugin_opengles.cc") | 
| 6008 | 5910 | 
| 6009   else: | 5911   else: | 
| 6010     os.chdir("gpu/command_buffer") | 5912     os.chdir("gpu/command_buffer") | 
| 6011     gen.WriteCommandIds("common/gles2_cmd_ids_autogen.h") | 5913     gen.WriteCommandIds("common/gles2_cmd_ids_autogen.h") | 
| 6012     gen.WriteFormat("common/gles2_cmd_format_autogen.h") | 5914     gen.WriteFormat("common/gles2_cmd_format_autogen.h") | 
| 6013     gen.WriteFormatTest("common/gles2_cmd_format_test_autogen.h") | 5915     gen.WriteFormatTest("common/gles2_cmd_format_test_autogen.h") | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
| 6027 | 5929 | 
| 6028     if options.generate_docs: | 5930     if options.generate_docs: | 
| 6029       gen.WriteDocs("docs/gles2_cmd_format_docs_autogen.h") | 5931       gen.WriteDocs("docs/gles2_cmd_format_docs_autogen.h") | 
| 6030 | 5932 | 
| 6031   if gen.errors > 0: | 5933   if gen.errors > 0: | 
| 6032     print "%d errors" % gen.errors | 5934     print "%d errors" % gen.errors | 
| 6033     sys.exit(1) | 5935     sys.exit(1) | 
| 6034 | 5936 | 
| 6035 if __name__ == '__main__': | 5937 if __name__ == '__main__': | 
| 6036   main(sys.argv[1:]) | 5938   main(sys.argv[1:]) | 
| OLD | NEW | 
|---|