Graphics scenegraph rendering for web applications using native code modules
AssigneeGoogle Inc.
InventorsAntoine Labour, Matthew Papakipos
Life of this patent
Estimating the term…
Abstract
One embodiment provides a system that facilitates the execution of a web application. During operation, the system loads a native code module that includes a scenegraph renderer into a secure runtime environment. Next, the system uses the scenegraph renderer to create a scenegraph from a graphics model associated with the web application and generate a set of rendering commands from the scenegraph. The system then writes the rendering commands to a command buffer and reads the rendering commands from the command buffer. Finally, the system uses the rendering commands to render, for the web application, an image corresponding to the graphics model by executing the rendering commands using a graphics-processing unit (GPU).
Claims28
A computer implemented method for facilitating the execution of a web application on a computer system, comprising:
- loading a native code module comprising a scenegraph renderer into a secure runtime environment provided by a plugin in a web browser;
- using the scenegraph renderer to:
- create a scenegraph from a graphics model associated with the web application;
- and
- generate a set of rendering commands from the scenegraph;
- writing the rendering commands to a command buffer;
- reading, using a trusted code module outside the secure runtime environment provided by the plugin in the web browser, the rendering commands from the command buffer;
- sending, outside the secure runtime environment provided by the plugin in the web browser, the read rendering commands from the trusted code module to a hardware graphics-processing unit (GPU);
- and
- executing the sent rendering commands to render, for the web application, an image corresponding to the graphics model by executing the rendering commands using the GPU which is separate from a processor in the computer system.
A system for facilitating the execution of a web application, comprising:
- a plugin in a web browser, the plugin implementing a secure runtime environment configured to execute a native code module, wherein the native code module comprises a scenegraph renderer;
- wherein the native code module is configured to:
- create a scenegraph from a graphics model associated with the web application;
- generate a set of rendering commands from the scenegraph;
- and
- write the rendering commands to a command buffer;
- and
- a trusted code module outside the secure runtime environment configured to:
- read the rendering commands from the command buffer;
- and
- a hardware graphics-processing unit (GPU) that communicates with the trusted code module outside the secure runtime environment provided by the plugin in the web browser and is configured to execute rendering commands received from the trusted code module to render, for the web application, an image corresponding to the graphics model, wherein the read rendering commands are sent from the trusted code module to the hardware GPU outside the secure runtime environment provided by the plugin in the web browser.
A non-transitory computer-readable storage medium storing instructions that when executed by a computer system cause the computer system to perform a method for facilitating the execution of a web application, the method comprising:
- loading a native code module comprising a scenegraph renderer into a secure runtime environment provided by a plugin in a web browser;
- using the scenegraph renderer to:
- create a scenegraph from a graphics model associated with the web application, and
- generate a set of rendering commands from the scenegraph;
- writing the rendering commands to a command buffer;
- reading, using a trusted code module outside the secure runtime environment provided by the plugin in the web browser, the rendering commands from the command buffer;
- sending, outside the secure runtime environment provided by the plugin in the web browser, the read rendering commands from the trusted code module to a hardware graphics-processing unit (GPU);
- and
- executing the sent rendering commands to render, for the web application, an image corresponding to the graphics model by executing the rendering commands using the GPU which is separate from a processor in the computer system.
Dependencies are inferred from the claim text.