WO2014058902A1 - Graphic rendering - Google Patents
Graphic rendering Download PDFInfo
- Publication number
- WO2014058902A1 WO2014058902A1 PCT/US2013/063916 US2013063916W WO2014058902A1 WO 2014058902 A1 WO2014058902 A1 WO 2014058902A1 US 2013063916 W US2013063916 W US 2013063916W WO 2014058902 A1 WO2014058902 A1 WO 2014058902A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- rendering
- function
- opengl
- api
- graphic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
Definitions
- the present disclosure relates to the field of graphic rendering, and more particularly, to a method and an apparatus of graphic rendering at a mobile device.
- the applications use graphic rendering when displaying graphics.
- a graphic displaying of a web game at the mobile device requires graphic rendering.
- the graphic rendering converts a high level description of an object into graphics displayed on a displaying device.
- graphic rendering occurs in a process that converts a mathematical model of a three-dimensional object, e.g., a 3D object or scene, into bitmap graphics.
- Another example of graphic rendering is to convert a Hypertext Markup Language (HTML) file into graphics displayed on a monitor screen.
- HTML Hypertext Markup Language
- a first application is at a web browser.
- HTML5 is a new and popular technology. It has also become popular to use Canvas standard of HTML5 to process graphic rendering at the web browser.
- HTML5 Canvas standard as a node controlling component of HTML so that operations such as a layout logic, an event, or a redrawing require using the node tree of HTML.
- a CPU is forced to process many operations due to such complicated logics.
- the graphic application or game that uses the above technology often has a pitfall of slow graphic rendering.
- a second application is at a game client.
- a client of a game application is developed by using C++ or Java codes and a process of graphic rendering is executed by a GPU.
- the client of the game application needs downloading and installing.
- its updating is also troublesome.
- a person skilled in the art often tries to improve a speed of the graphic rendering at the mobile device.
- the present disclosure provides an apparatus and a method of graphic rendering at a mobile device to improve a speed of the graphic rendering at the mobile device.
- the present disclosure provides an example method of graphic rendering at the mobile device.
- JavaScript codes of a graphic application are obtained.
- the JavaScript codes include an API corresponding to a rendering function based on OPENGL.
- the API has a format complying with a standard of HTML 5 Canvas.
- JavaScript codes are executed at a parsing engine.
- JavaScript codes is executed, the parsing engine parses the API to obtain a corresponding rendering function based on OPENGL.
- the rendering function is called to conduct graphic rendering to a rendering target.
- the example method may also include operations of encapsulating the rendering function based on OPENGL into or with the API.
- the rendering function based on OPENGL is encapsulated into or with the corresponding API according to an expansibility of the parsing engine.
- the API is exposed to a JavaScript developer, and the API has a format complying with the standard of HTML 5 Canvas.
- the rendering function is an interface function which is obtained based on an encapsulation of a function based on an OPENGL format.
- the operations of calling the rendering function to conduct graphic rendering to a rendering target may include the following.
- the parsed rendering function conducts a second parsing to obtain a function with a corresponding OPENGL format.
- the parsed function with the corresponding OPENGL format is called to conduct graphic rendering to the rendering target.
- the rendering function includes an initialization rendering function that initializes a low level rendering environment.
- the example method may further include the following. Based on a platform attribute of the mobile device, the initialization rendering function is called to obtain corresponding rendering data.
- the rendering data may contain device hardware information.
- a hardware capability of the mobile device is evaluated according to the device hardware information.
- An optimization strategy of a rendering process is adjusted according to the hardware capability of the mobile device.
- the operations of calling the rendering function to conduct graphic rendering to the rendering target may further include the following. Based on the adjusted optimization strategy of the rendering process, the rendering function is called to conduct graphic rendering.
- the present disclosure also provides an example apparatus of graphic rendering at the mobile device.
- the example apparatus may include a code retrieving module, a code execution module, and a function calling module.
- the code retrieving module obtains JavaScript codes of a graphic application.
- JavaScript codes include an API corresponding to a rendering function based on OPENGL.
- the API has a format complying with a standard of HTML 5 Canvas.
- the code executing module executes the JavaScript codes at a parsing engine.
- the parsing engine parses the API to obtain a corresponding rendering function based on OPENGL.
- the function calling module calls the parsed rendering function to conduct graphic rendering to a rendering target.
- the example apparatus may further include an encapsulating module that encapsulates the rendering function based on OPENGL into or with the API.
- the encapsulating module according to an expansibility of the parsing engine, encapsulates the rendering function based on OPENGL into or with the corresponding API.
- the API is exposed to a JavaScript developer, and the API has a format complying with the standard of HTML 5 Canvas.
- the rendering function is an interface function which is obtained based on an encapsulation of a function based on an OPENGL format.
- the function calling module may further include a second parsing sub- module and a calling sub-module.
- the second parsing sub-module conducts a second parsing to the parsed rendering function to obtain a function with a corresponding OPENGL format.
- the calling sub-module calls the parsed function with the OPENGL format to conduct graphic rendering to the rendering target.
- the rendering function includes an initialization rendering function that initializes a low level rendering environment.
- the example apparatus may further include an environment initializing module, an evaluating module, and a rendering process optimization strategy adjusting module.
- the environment initializing module based on a platform attribute of the mobile device, calls the initialization rendering function to obtain corresponding rendering data.
- the rendering data may contain device hardware information.
- the evaluating module evaluates a hardware capability of the mobile device according to the device hardware information.
- the rendering process optimization strategy adjusting module adjusts an optimization strategy of a rendering process according to the hardware capability of the mobile device.
- the calling module based on the adjusted optimization strategy of the rendering process, calls the rendering function to conduct graphic rendering.
- the present techniques have at least the following advantage.
- the conventional web browsers basically support an API of HTML5 Canvas standard.
- the web browsers use the HTML5 Canvas standard as a node controlling component of HTML so that operations such as layout logic, an event, or a redrawing require using the node tree of HTML.
- a CPU is forced to process a lot of operations due to such complicated logics, thereby causing a low speed of graphic rendering.
- the present techniques also implement the API of HTML5 Canvas standard in HTML5.
- the parsing engine in the executing process parses the API to obtain a corresponding rendering function based on OPENGL.
- the rendering function based on OPENGL may fully take advantage of GPU rendering graphic interface at the mobile device and more reasonably use a video card for graphic rendering.
- the present techniques may further improve performance of graphic rendering at the mobile device with a compatible web browser and operating system.
- a client of a game application under the conventional techniques is developed by using C++ or Java codes for the graphic application and needs graphic rendering by the GPU.
- the C++ or Java codes are codes that need compiling and installation prior to execution.
- game applications under the conventional techniques need downloading and then installing.
- updating a game application is also troublesome.
- JavaScript codes used by the present techniques are directly downloadable and can be executed while parsed.
- the JavaScript codes have advantages that cannot be found in C++ and Java codes. It is not necessary for installation and it is possible to update at any time.
- the graphic applications developed by the present techniques do not necessary require installation and have easy updating and operating.
- FIGs To better illustrate the embodiments of the present disclosure, the following is a brief introduction of the FIGs to be used in the description of the embodiments. It is apparent that the following FIGs only relate to some embodiments of the present disclosure. A person of ordinary skill in the art can obtain other FIGs according to the FIGs in the present disclosure without creative efforts.
- FIG. 1 is a flow chart of an example method of graphics rendering at a mobile device according to an example embodiment of the present disclosure.
- FIG. 2 is a flowchart of an example method of graphics rendering in a browser at the mobile device according to another example embodiment of the present disclosure.
- FIG. 3 is a flowchart of an example method of running a game application at the mobile device according to another example embodiment of the present disclosure.
- FIG. 4 is a block diagram of an example apparatus of graphics rendering at the mobile device according to another example embodiment of the present disclosure.
- the present techniques design an API of JavaScript codes, and call a low level rendering function based on OPENGL to conduct graphic rendering to a rendering target when the API of the JavaScript codes is executed.
- the present techniques avoid a lot of logic operations that happen under the conventional techniques that treat the HTML5 Canvas standard as a HTML node controlling component in a browser, the present techniques may directly conduct rendering operations to the rendering target, thereby avoiding many unnecessary operations and improving a rendering speed.
- the present techniques when the present techniques conduct graphic rendering to the rendering target, the present techniques call the rendering function based on OPENGL.
- the rendering function based on OPENGL may efficiently use a graphic rendering interface at the mobile device, the present techniques may more reasonably use a video card for rendering.
- the present techniques may enhance graphic rendering performance at the mobile device with a compatible browser and operating system. Table 1 lists explanations of some technical terms as follows:
- V8 engine An open source JavaScript engine developed by Danish
- GoogleTM which is used in browsers, such as GoogleTM
- OPENGL Open Graphics Library defines specifications of a cross- language, multi-platform application programming interface, which is used to render 2D and 3D images.
- OPENGL ES 2.0 OPENGL for Embedded Systems 2.0 is a subset of
- OpenGL 3D graphic API which is designed for embedded devices such as a mobile phone, a PDA, and a video game console. 2.0 is a version number. OPENGL ES 2.0 is defined based on the specification of OpenGL
- CloudApp A cloud graphic application
- Canvas A graphic canvas in a program, which refers to a Canvas component in HTML 5 that obtains 2D/3D rendering context.
- WebGL A 3D standard based on a browser.
- FIG. 1 shows a flowchart illustrating an example method of graphic rendering at a mobile device according to an example embodiment of the present disclosure.
- JavaScript codes of a graphic application are retrieved.
- the JavaScript codes include an API corresponding to a rendering function based on OPENGL.
- the API has a format complying with a standard of HTML 5 Canvas.
- the JavaScript codes are executed at a parsing engine.
- the parsing engine parses the API to obtain a corresponding rendering function based on OPENGL.
- the rendering function is called to conduct graphic rendering to a rendering target.
- the rendering function based on OPENGL may fully leverage a graphic rendering interface of the GPU at the mobile device.
- the parsing engine provides a flexible extension function interface to enhance a flexibility of JavaScript codes and provide a capability to the JavaScript codes of calling OPENGL library at a low level C++.
- the present disclosure based on the above advantages of JavaScript and OPENGL, provides a solution of graphic rendering complying with an API of HTML5 Canvas at the mobile device, and thus the present techniques increase a speed of the graphic rendering at the mobile device and enhance an effect of graphic rendering at the mobile device.
- the parsing engine provides an extensible operating environment for the JavaScript codes. Specifically, the parsing engine parses and executes the JavaScript codes. Furthermore, the parsing engine has flexibility and may provide various flexible interfaces to extension functions.
- the parsing engine may include: Nitro of AppleTM Safari, V8 of GoogleTM Chrome, TraceMonkey of MozillaTM Firefox 3.5, SpiderMonkey of MozillaTM, etc.
- the present disclosure does not impose restriction into any specific parsing engine.
- the JavaScript codes of the present disclosure may include Canvas program of HTML5 developed by JavaScript developers, which may be applied in various scenarios.
- an example apparatus or system of the present techniques may be embedded in a browser or act as a plug of the browser.
- the JavaScript codes are JavaScript codes of the browser.
- the present disclosure may be applied in the development of graphic rendering portion in the graphic applications.
- the graphic applications may include the browser, a game application, a chatting program, or any other program that requires graphic expressions.
- the OPENGL ES 2.0 may be utilized to effectively execute graphic rendering as it reasonably uses the GPU equipment, which brings good performance experiences for the game application.
- the JavaScript developer can directly call an API of HTML5 to implement the powerful graphic capabilities of OPENGL.
- the developer may easily develop various graphic applications with graphic rendering performance similar to those of OPENGLE, if the developer learns JavaScript language and a development method of 2D/3D HTML5 Canvas.
- the present techniques may be applicable in executing graphic rendering portion of graphic applications.
- the present techniques may implement the graphic rendering at a high speed with high performance.
- the JavaScript codes used in the present techniques may be codes that are directly downloadable so that the codes are parsed while they are executed. Therefore, the use of JavaScript codes has advantages not found in C++ and Java codes, which do not require installation and may update and operate at any time.
- graphic applications developed by the present techniques do not necessarily require installation, update easily, and operate conveniently.
- the example method may also include operations of encapsulating the rendering function based on OPENGL into or with the API.
- the rendering function based on OPENGL is encapsulated into the corresponding API according to an expansibility of the parsing engine.
- the API is exposed to a JavaScript developer, and the API has a format complying with the standard of HTML 5 Canvas.
- the present techniques may preserve an interface of the parsing engine while the API is encapsulated.
- the encapsulated API as a result of the encapsulation may have a mapping relationship with the rendering function based on OPENGL.
- the mapping relationship may be a one-to-one, one-to-many, or many-to-many mapping relationship.
- the present techniques encapsulate the rendering function based on OPENGL to the corresponding API according to extensibility of the parsing engine and provide the API to the JavaScript developer. The present disclosure does not impose any restrictions on the detailed extensibility and the corresponding mapping relationship.
- a class _proto object is encapsulated into an API called drawlmage.
- a rendering function that the API corresponds and finally implements is V8GraphicsContext: : Drawlmage function in C++.
- the class jproto is a low level object template corresponding to a ctx object. Accordingly, ctx.drawlmage() interface is extended and exposed to the JavaScript codes.
- a parsing operation is processed to find the VSGraphicsContext: :DrawImage function that is to be finally executed, which is the rendering function based on OPENGL that efficiently uses the graphic rendering interface of GPU at the mobile device to reasonably use a video card for rendering.
- Many other APIs such as ctx.drawlmage, ctx.fillRect, ctx.fillText, and ctx.strokeText may be extended and exposed to the JavaScript codes.
- a set of graphic engines based on OPENGL ES 2.0 may be integrated to implement the rendering functions based on OPENGL, which may be in C++ language and rely on OPENGL such as OPEN GL ES 2.0 class libraries.
- OPENGL ES 2.0 is a conventional technology, the present disclosure does not impose any restrictions to the detailed integration method of the graphic engine.
- the graphic rendering should be processed based on the condition that the graphics engine has been successfully operated. If the OPENGL graphics standard library is successfully operated, it may also ensure a successful start of the graphics engine.
- the OPENGL graphics standard libraries may also be operated in various operating systems, such as AndroidTM, SymbianTM, LinuxTM, and WindowsTM.
- the graphic engine may also be successfully started in various operating system environments.
- the embodiments of the present disclosure may be applied to various operating systems, such as AndroidTM, SymbianTM, LinuxTM, and WindowsTM.
- the present techniques mainly combine advantages of both JavaScript and OPENGL to use the parsing engine to encapsulate the rendering function based on OPENGL into or with the API complying with the HTML5 Canvas 2D/3D standard.
- the present techniques not only increase the speed of graphic rendering at the mobile device but also improve the effect of graphic rendering at the mobile device.
- the rendering function may be an interface function which is obtained by an encapsulation of function based on an OPENGL format.
- the operations of calling the rendering function to conduct graphic rendering to the rendering target may include the following.
- the parsed rendering function conducts a second parsing to obtain a function with a corresponding OPENGL format.
- the parsed function with the corresponding OPENGL format is called to conduct graphic rendering to the rendering target.
- the function with OPENGL format may be encapsulated to obtain an interface function with a format similar to HTML5 Canvas standard format to improve a convenience of implementation of the API and the parsing engine.
- the above VSGraphicsContext: :DrawImage function in C++ is an interface function that has been encapsulated.
- the function with OPENGL format before the encapsulation is glDrawElements.
- the rendering function may include an initialization rendering function that initializes a low level rendering environment.
- the low level rendering environment may include a brush, a canvas, etc.
- the brush is an initiator of a drawing command and the canvas is a mapping of memory.
- the rendering target is obtained when the API of the JavaScript code is initially executed.
- the corresponding extension interfaces may be parsed to obtain drawing tools, such as a canvas and a brush, to initialize the low level rendering environment.
- the rendering target may be an OPENGL surface provided by a system, such as a buffer within a video card.
- the rendering target may be an android surfaceview (game development framework) or a low level structure corresponding to the canvas in the browser.
- the canvas and brush may be obtained by using JavaScript codes as follows:
- the example method may further include the following. Based on a platform attribute of the mobile device, the initialization rendering function is called to obtain corresponding rendering data.
- the rendering data may contain device hardware information.
- a hardware capability of the mobile device is evaluated according to the device hardware information.
- An optimization strategy of a rendering process is adjusted according to the hardware capability of the mobile device.
- the operations of calling the rendering function to conduct graphic rendering to the rendering target may further include the following. Based on the adjusted optimization strategy of the rendering process, the rendering function is called to conduct graphic rendering.
- the operations of calling the parsed rendering function to conduct graphic rendering to the rendering target may further include the following.
- the parsed rendering function is called to conduct graphic rendering to the rendering target according to the adjusted optimization strategy of the rendering process.
- the present techniques may adjust the optimization strategy of the rendering process according to the hardware capability of the mobile device and optimize the rendering process according to the adjusted optimization strategy of the rendering process to enhance the performance of graphic rendering.
- the optimization strategy of the rendering process may be related to various strategy parameters.
- vertices number which is a number of pixel points rendered to a screen
- a number of vertices in one rendering may be initially configured. In default, there may be at most 2000 vertices in one rendering.
- the number of vertices parameter is changeable. For example, a high quality video card may process 2000 vertices in one rendering while a low quality video card may only process 600 vertices at one rendering.
- the above 2000 and 600 are strategy parameters that comply with hardware capability.
- a general rendering process may be as follows.
- the calling command such as V8GraphicsContext::DrawImage
- the rendering is not immediately applied to the rendering target. Instead, data is pushed into flexible data queues, such as a vertex queue and an indexing queue.
- a strategy parameter such as 2000, the graphic rendering starts.
- the optimization strategy of the rendering process may further include other strategies, such as a color format of a video card, an anti- aliasing capability, a capability of opening z buffer zone, a capability of supporting the template buffer zone, etc.
- strategies such as a color format of a video card, an anti- aliasing capability, a capability of opening z buffer zone, a capability of supporting the template buffer zone, etc.
- a person skilled in the art may use various optimization strategies of the rendering process according to the actual demands. The present disclosure does not impose any restriction herein.
- the following describes a first example scenario.
- FIG. 2 shows a flowchart illustrating an example method of graphic rendering in a browser of the mobile device according to an example embodiment of the present disclosure.
- the browser loads a uniform resource locator (URL) or a universally unique identifier (UUID). Thereafter, HTML and JavaScript codes are obtained.
- the JavaScript codes include an API encapsulated according to the present disclosure.
- a kernel of the browser has a requesting module complying with hypertext transport protocol (HTTP) that requests codes.
- HTTP hypertext transport protocol
- the browser visits a website by using an URL, the browser obtains a homepage such as index.html through the URL and executes the webpage and loads required resources and JavaScript codes.
- the present techniques may directly execute the JavaScript codes obtained by the browser.
- the rendering target may be presented in a form of Canvas window, embedded Surface, or any other form.
- the API encapsulated according to the present techniques is rendered to the rendering target.
- the parsing engine is used to parse the API into the corresponding initialization rendering function based on OPENGL, and the parsed initialization rendering function is called to initialize a low level rendering environment.
- the low level rendering environment may include a brush, a canvas, etc.
- the parsing engine parses the API to obtain another corresponding rendering function based on OPENGL.
- the another rendering function is called to conduct graphic rendering to the rendering target.
- var canvas cloudapp.createCanvas(480, 800) / ⁇ obtain a 480*800 canvas*/
- var context canvas. getContext() / ⁇ obtain a Canvas brush*/
- the conventional browser such as a browser with webkit kernel, basically supports an API complying with the HTML5 Canvas standard.
- the web browsers use the HTML5 Canvas standard as a node controlling component of HTML so that operations such as layout logic, an event, or a redrawing require using the node tree of HTML.
- a CPU needs to process a lot of operations due to such complicated logics, thereby causing a low speed of graphic rendering.
- the present techniques also implement the API of HTML5 Canvas standard in HTML5.
- the present techniques use the parsing engine to parse the API to obtain a corresponding rendering function based on OPENGL and directly call the rendering function to conduct rendering operations to the rendering target.
- the present techniques may avoid many unnecessary operations such as layout logic, event, or redrawing, thereby improving the speed of rendering.
- the present techniques call the rendering function based on OPENGL.
- the rendering function based on OPENGL may fully use the graphic rendering interface of GPU at the mobile device and more reasonably use the video card for rendering.
- the present techniques may further improve a graphic rendering performance at the mobile device with a compatible browser and operating system.
- a client of a game application under the conventional techniques is developed by using C++ or Java codes for the graphic application and needs graphic rendering by the GPU.
- the C++ or Java codes are codes that need compiling and installation prior to execution.
- the game application under the conventional techniques needs downloading and then installing.
- its updating is also troublesome.
- JavaScript codes used by the present techniques are directly downloadable and can be executed while parsed.
- the JavaScript codes have advantages that cannot be found in C++ and Java codes. It is not necessary for installation and it is possible to update at any time.
- the graphic applications developed by the present techniques do not necessary require installation and have easy updating and operating.
- FIG. 3 shows a flowchart of an example method of running a game application at a mobile device according to another example embodiment of the present disclosure.
- a user opens a game application market at the mobile device. That is, the mobile device starts an independent application.
- the user views the game application market to find an interesting application and clicks a corresponding icon.
- the game application market finds a game ID corresponding to the icon clicked by the user.
- the game application market finds an entry code or an entry file such as main.js corresponding to game application ID from a server of a corresponding game application manufacturer.
- the entry file such as main.js is an entry code portion of the game application that is developed by the game application manufacturer or a freelance game application developer who is in cooperation with the game application manufacturer.
- the file of main.js may include APIs of initialization rendering functions, such as createCanvas, getContext, etc., to initialize a low level rendering environment.
- the file of main.js may also include an import calling operation. The import calling operation may be used to load other JS files for an automatic execution. Then the game application starts. The user may operate contents in the game. That is, the user starts to play game.
- the logic of the game application is controlled by the JS codes of the game application. However, the low level rendering is still supported by the present techniques.
- the entry file such as the main.js code is executed.
- the execution process may include the following.
- the API of the initialization rendering functions in the main.js code is initially executed, the rendering target may be presented in Canvas window, embedded Surface, or any other forms.
- the parsing engine parses the API to obtain a corresponding initialization rendering function based on OPENGL and the parsed initialization rendering function is called to initialize the low level rendering environment.
- the entry file such as the main.js code is executed.
- the execution process may further include the following.
- Other JS files corresponding to the game application ID are loaded according to the import calling.
- the other JS files may be a file dependent of the entry file such as main.js code.
- the other JS files may be acquired by a require mechanism through methods such as a command require (xxx.js) or a command import (xxx.js), etc. to achieve the goal of loading other JS files.
- the other JS files are executed.
- the execution process may include the following.
- the parsing engine is used to parse the API into other corresponding rendering functions based on OPENGL.
- the other rendering functions are called to conduct graphic rendering to the rendering target.
- the developer of the game application client uses C++ or Java codes to develop graphic rendering applications and the GPU is used for graphic rendering.
- C++ or Java codes need compiling and require installation prior to execution.
- the graphic application under the conventional techniques needs installation after downloading and its updating is also troublesome.
- the present techniques may use the JavaScript codes which are directly downloadable that may be parsed while executed.
- the JavaScript codes has advantages not found in C++ and Java codes, which do not require installation and may update and run at any time.
- the graphic applications developed by the present techniques do not necessarily require installation and update and operate easily.
- FIG. 4 is a block diagram of an example apparatus 400 of graphics rendering at the mobile device according to another example embodiment of the present disclosure.
- the apparatus 400 may include one or more processor(s) 402 and memory 404.
- the memory 404 is an example of computer-readable media.
- “computer-readable media” includes computer storage media and communication media.
- Computer storage media includes volatile and non-volatile, removable and nonremovable media implemented in any method or technology for storage of information such as computer-executed instructions, data structures, program modules, or other data.
- communication media may embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave.
- computer storage media does not include communication media.
- the memory 404 may store therein program units or modules and program data.
- the memory 404 may store therein a code retrieving module 406, a code execution module 408, and a function calling module 410.
- the code retrieving module 406 retrieves JavaScript codes of a graphic application.
- the JavaScript codes include an API corresponding to a rendering function based on OPENGL.
- the API has a format complying with a standard of HTML 5 Canvas.
- the code executing module 408 executes the JavaScript codes at a parsing engine.
- the parsing engine parses the API to obtain a corresponding rendering function based on OPENGL.
- the function calling module 410 calls the parsed rendering function to conduct graphic rendering to a rendering target.
- the apparatus 400 may further include an encapsulating module that encapsulates the rendering function based on OPENGL into or with the API.
- the encapsulating module according to an expansibility of the parsing engine, encapsulates the rendering function based on OPENGL into the corresponding API.
- the API is exposed to a JavaScript developer, and the API has a format complying with the standard of HTML 5 Canvas.
- the rendering function is an interface function which is obtained based on an encapsulation of a function based on an OPENGL format.
- the function calling module 410 may further include a second parsing sub-module and a calling sub-module.
- the second parsing sub-module conducts a second parsing to the parsed rendering function to obtain a function with a corresponding OPENGL format.
- the calling sub-module calls the parsed function with the OPENGL format to conduct graphic rendering to the rendering target.
- the rendering function may include an initialization rendering function that initializes a low level rendering environment.
- the apparatus 400 may further include an environment initializing module, an evaluating module, and a rendering process optimization strategy adjusting module.
- the environment initializing module based on a platform attribute of the mobile device, calls the initialization rendering function to obtain corresponding rendering data.
- the rendering data may contain device hardware information.
- the evaluating module evaluates a hardware capability of the mobile device according to the device hardware information.
- the rendering process optimization strategy adjusting module adjusts an optimization strategy of a rendering process according to the hardware capability of the mobile device.
- the calling module based on the adjusted optimization strategy of the rendering process, calls the rendering function to conduct graphic rendering.
- the description of the example apparatus embodiment of the present disclosure is relatively brief as the techniques in the example apparatus embodiment are similar to those of the example method embodiments.
- the related techniques in the example apparatus embodiments may be referred to those in the example method embodiments of the present disclosure.
- the embodiments of the present disclosure can be methods, systems, apparatuses (devices), or the programming products of computers. Therefore, the present disclosure can be implemented by hardware, software, or in combination of both. In addition, the present disclosure can be in a form of one or more computer programs containing the computer-executable codes or instructions which can be included or stored in the computer storage medium (including but not limited to disks, CD- ROM, optical disks, etc.).
- each flow and/or block and the combination of the flow and/or block of the flowchart and/or block diagram can be implemented by computer-executable instructions.
- These computer-executable instructions may be provided to the general computers, specific computers, embedded processor or any other programmable data devices including one or more processors to generate a machine, so that a device of implementing one or more flows of the flow chart and/or one or more blocks of the block diagram can be generated through the instructions operated by a computer or other programmable data processors.
- the computer-executable instructions may also be stored in one or more computers or any other programmable data processing devices that cause the computers or any other programmable data processing devices to work in a specific way so that the computer- executable instruction stored in the computer storage media may implement functionalities designated by one or more flows and/or blocks of the flowcharts and/or block diagrams.
- the computer-executed instructions may also be loaded into the computer or any other programmable data processing devices to cause the computer or any other programmable data processing devices to perform a series of operations to implement computer processing.
- the computer-executed instruction performed at the computer or any other programmable data processing devices implements implement functionalities designated by one or more flows and/or blocks of the flowcharts and/or block diagrams.
- the present disclosure provides the example methods and apparatuses of graphic rendering at the mobile device.
- the present disclosure uses the example embodiments to illustrate the principles and implementations of the present techniques.
- the example embodiments are only used to help understand the methods and concepts of the present disclosure. It should be understood that various modifications, changes or equivalent replacements may be made by one of ordinary skill in the art in accordance with the principles of the present disclosure. Thus, the specification shall not be used as a limitation to the present disclosure.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Stored Programmes (AREA)
- Image Generation (AREA)
- Information Transfer Between Computers (AREA)
- Devices For Executing Special Programs (AREA)
- Human Computer Interaction (AREA)
- Controls And Circuits For Display Device (AREA)
Description
Graphic Rendering
CROSS REFERENCE TO RELATED PATENT APPLICATIONS
This application claims foreign priority to Chinese Patent Application No. 201210379921.4 filed on 9 October 2012, entitled "Method and Apparatus of Graphic Rendering at Mobile Device," which is hereby incorporated by reference in its entirety.
TECHNICAL FIELD
The present disclosure relates to the field of graphic rendering, and more particularly, to a method and an apparatus of graphic rendering at a mobile device.
BACKGROUND
There have been more and more applications on mobile devices, and these applications are getting more and more complicated. The applications use graphic rendering when displaying graphics. For example, a graphic displaying of a web game at the mobile device requires graphic rendering. The graphic rendering converts a high level description of an object into graphics displayed on a displaying device. For example, graphic rendering occurs in a process that converts a mathematical model of a three-dimensional object, e.g., a 3D object or scene, into bitmap graphics. Another example of graphic rendering is to convert a Hypertext Markup Language (HTML) file into graphics displayed on a monitor screen.
There are two major applications of the graphic rendering.
A first application is at a web browser. Among internet technologies, HTML5 is a new and popular technology. It has also become popular to use Canvas standard of HTML5 to process graphic rendering at the web browser. However, at most mobile devices, web browsers use the HTML5 Canvas standard as a node controlling component of HTML so that
operations such as a layout logic, an event, or a redrawing require using the node tree of HTML. A CPU is forced to process many operations due to such complicated logics. The graphic application or game that uses the above technology often has a pitfall of slow graphic rendering.
A second application is at a game client. In the conventional technologies, a client of a game application is developed by using C++ or Java codes and a process of graphic rendering is executed by a GPU. However, the client of the game application needs downloading and installing. In addition, its updating is also troublesome. As a result, a person skilled in the art often tries to improve a speed of the graphic rendering at the mobile device.
SUMMARY
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify all key features or essential features of the claimed subject matter, nor is it intended to be used alone as an aid in determining the scope of the claimed subject matter. The term "techniques," for instance, may refer to apparatus(s), system(s), method(s) and/or computer- readable instructions as permitted by the context above and throughout the present disclosure.
The present disclosure provides an apparatus and a method of graphic rendering at a mobile device to improve a speed of the graphic rendering at the mobile device.
The present disclosure provides an example method of graphic rendering at the mobile device.
JavaScript codes of a graphic application are obtained. The JavaScript codes include an API corresponding to a rendering function based on OPENGL. The API has a format complying with a standard of HTML 5 Canvas.
The JavaScript codes are executed at a parsing engine. When the API of the
JavaScript codes is executed, the parsing engine parses the API to obtain a corresponding rendering function based on OPENGL.
The rendering function is called to conduct graphic rendering to a rendering target. For example, the example method may also include operations of encapsulating the rendering function based on OPENGL into or with the API. For instance, the rendering function based on OPENGL is encapsulated into or with the corresponding API according to an expansibility of the parsing engine. The API is exposed to a JavaScript developer, and the API has a format complying with the standard of HTML 5 Canvas.
For example, the rendering function is an interface function which is obtained based on an encapsulation of a function based on an OPENGL format.
For example, the operations of calling the rendering function to conduct graphic rendering to a rendering target may include the following. The parsed rendering function conducts a second parsing to obtain a function with a corresponding OPENGL format. The parsed function with the corresponding OPENGL format is called to conduct graphic rendering to the rendering target.
For example, the rendering function includes an initialization rendering function that initializes a low level rendering environment.
For example, the example method may further include the following. Based on a platform attribute of the mobile device, the initialization rendering function is called to obtain corresponding rendering data. The rendering data may contain device hardware information.
A hardware capability of the mobile device is evaluated according to the device hardware information. An optimization strategy of a rendering process is adjusted according to the hardware capability of the mobile device. The operations of calling the rendering function to conduct graphic rendering to the rendering target may further include the following. Based on the adjusted optimization strategy of the rendering process, the rendering function is called to conduct graphic rendering.
The present disclosure also provides an example apparatus of graphic rendering at the mobile device. The example apparatus may include a code retrieving module, a code execution module, and a function calling module.
The code retrieving module obtains JavaScript codes of a graphic application. The
JavaScript codes include an API corresponding to a rendering function based on OPENGL. The API has a format complying with a standard of HTML 5 Canvas.
The code executing module executes the JavaScript codes at a parsing engine. When the API of the JavaScript codes is executed, the parsing engine parses the API to obtain a corresponding rendering function based on OPENGL.
The function calling module calls the parsed rendering function to conduct graphic rendering to a rendering target.
For example, the example apparatus may further include an encapsulating module that encapsulates the rendering function based on OPENGL into or with the API. For instance, the encapsulating module, according to an expansibility of the parsing engine, encapsulates the rendering function based on OPENGL into or with the corresponding API. The API is exposed to a JavaScript developer, and the API has a format complying with the standard of HTML 5 Canvas.
For example, the rendering function is an interface function which is obtained based on an encapsulation of a function based on an OPENGL format.
For example, the function calling module may further include a second parsing sub- module and a calling sub-module. The second parsing sub-module conducts a second parsing to the parsed rendering function to obtain a function with a corresponding OPENGL format. The calling sub-module calls the parsed function with the OPENGL format to conduct graphic rendering to the rendering target.
For example, the rendering function includes an initialization rendering function that initializes a low level rendering environment.
For example, the example apparatus may further include an environment initializing module, an evaluating module, and a rendering process optimization strategy adjusting module. The environment initializing module, based on a platform attribute of the mobile device, calls the initialization rendering function to obtain corresponding rendering data. The rendering data may contain device hardware information.
The evaluating module evaluates a hardware capability of the mobile device according to the device hardware information. The rendering process optimization strategy adjusting module adjusts an optimization strategy of a rendering process according to the
hardware capability of the mobile device. The calling module, based on the adjusted optimization strategy of the rendering process, calls the rendering function to conduct graphic rendering.
Compared with the conventional techniques, the present techniques have at least the following advantage.
The conventional web browsers basically support an API of HTML5 Canvas standard. However, the web browsers use the HTML5 Canvas standard as a node controlling component of HTML so that operations such as layout logic, an event, or a redrawing require using the node tree of HTML. A CPU is forced to process a lot of operations due to such complicated logics, thereby causing a low speed of graphic rendering.
The present techniques also implement the API of HTML5 Canvas standard in HTML5. However, according to the present techniques, the parsing engine in the executing process parses the API to obtain a corresponding rendering function based on OPENGL. The rendering function based on OPENGL may fully take advantage of GPU rendering graphic interface at the mobile device and more reasonably use a video card for graphic rendering. Thus, the present techniques may further improve performance of graphic rendering at the mobile device with a compatible web browser and operating system.
In addition, a developer is familiar with HTML 5 and the HTML 5 Canvas API. Thus, there is no learning cost for the developer to develop graphic application by using the familiar API. Compared with the conventional WebGL technique that requires higher learning costs, the present disclosure reduces the learning cost of the graphic application, thereby achieving an efficient development of graphic applications.
Furthermore, a client of a game application under the conventional techniques is developed by using C++ or Java codes for the graphic application and needs graphic rendering by the GPU. However, the C++ or Java codes are codes that need compiling and
installation prior to execution. Thus, game applications under the conventional techniques need downloading and then installing. In addition, updating a game application is also troublesome. However, JavaScript codes used by the present techniques are directly downloadable and can be executed while parsed. Thus, the JavaScript codes have advantages that cannot be found in C++ and Java codes. It is not necessary for installation and it is possible to update at any time. Thus, the graphic applications developed by the present techniques do not necessary require installation and have easy updating and operating.
BRIEF DESCRIPTION OF THE DRAWINGS
To better illustrate the embodiments of the present disclosure, the following is a brief introduction of the FIGs to be used in the description of the embodiments. It is apparent that the following FIGs only relate to some embodiments of the present disclosure. A person of ordinary skill in the art can obtain other FIGs according to the FIGs in the present disclosure without creative efforts.
FIG. 1 is a flow chart of an example method of graphics rendering at a mobile device according to an example embodiment of the present disclosure.
FIG. 2 is a flowchart of an example method of graphics rendering in a browser at the mobile device according to another example embodiment of the present disclosure.
FIG. 3 is a flowchart of an example method of running a game application at the mobile device according to another example embodiment of the present disclosure.
FIG. 4 is a block diagram of an example apparatus of graphics rendering at the mobile device according to another example embodiment of the present disclosure.
DETAILED DESCRIPTION
In order to easily illustrate the purposes, features, and advantages of the present techniques, the following description is described by reference to the FIGs and example embodiments.
The present techniques design an API of JavaScript codes, and call a low level rendering function based on OPENGL to conduct graphic rendering to a rendering target when the API of the JavaScript codes is executed. As the present techniques avoid a lot of logic operations that happen under the conventional techniques that treat the HTML5 Canvas standard as a HTML node controlling component in a browser, the present techniques may directly conduct rendering operations to the rendering target, thereby avoiding many unnecessary operations and improving a rendering speed.
In addition, when the present techniques conduct graphic rendering to the rendering target, the present techniques call the rendering function based on OPENGL. As the rendering function based on OPENGL may efficiently use a graphic rendering interface at the mobile device, the present techniques may more reasonably use a video card for rendering. Thus, the present techniques may enhance graphic rendering performance at the mobile device with a compatible browser and operating system. Table 1 lists explanations of some technical terms as follows:
Table 1
V8 engine An open source JavaScript engine developed by Danish
Google™, which is used in browsers, such as Google™
Chrome.
OPENGL Open Graphics Library defines specifications of a cross- language, multi-platform application programming interface, which is used to render 2D and 3D images.
OPENGL ES 2.0 OPENGL for Embedded Systems 2.0 is a subset of
OpenGL 3D graphic API, which is designed for embedded devices such as a mobile phone, a PDA, and a video game console. 2.0 is a version number. OPENGL ES 2.0 is defined based on the specification of OpenGL
2.0.
2D/3D Two-dimensional rendering technology and three- dimensional rendering technology or 2D/3D graphic technology.
CloudApp A cloud graphic application
Canvas A graphic canvas in a program, which refers to a Canvas component in HTML 5 that obtains 2D/3D rendering context.
WebGL A 3D standard based on a browser.
FIG. 1 shows a flowchart illustrating an example method of graphic rendering at a mobile device according to an example embodiment of the present disclosure.
At 102, JavaScript codes of a graphic application are retrieved. The JavaScript codes
include an API corresponding to a rendering function based on OPENGL. The API has a format complying with a standard of HTML 5 Canvas.
At 104, the JavaScript codes are executed at a parsing engine. When the API of the JavaScript codes is executed, the parsing engine parses the API to obtain a corresponding rendering function based on OPENGL.
At 106, the rendering function is called to conduct graphic rendering to a rendering target.
For example, the rendering function based on OPENGL, such as OPENGL ES 2.0, may fully leverage a graphic rendering interface of the GPU at the mobile device. The parsing engine provides a flexible extension function interface to enhance a flexibility of JavaScript codes and provide a capability to the JavaScript codes of calling OPENGL library at a low level C++. The present disclosure, based on the above advantages of JavaScript and OPENGL, provides a solution of graphic rendering complying with an API of HTML5 Canvas at the mobile device, and thus the present techniques increase a speed of the graphic rendering at the mobile device and enhance an effect of graphic rendering at the mobile device.
In an example embodiment of the present disclosure, the parsing engine provides an extensible operating environment for the JavaScript codes. Specifically, the parsing engine parses and executes the JavaScript codes. Furthermore, the parsing engine has flexibility and may provide various flexible interfaces to extension functions.
For example, the parsing engine may include: Nitro of Apple™ Safari, V8 of Google™ Chrome, TraceMonkey of Mozilla™ Firefox 3.5, SpiderMonkey of Mozilla™, etc. The present disclosure does not impose restriction into any specific parsing engine.
For example, the JavaScript codes of the present disclosure may include Canvas program of HTML5 developed by JavaScript developers, which may be applied in various
scenarios.
For example, an example apparatus or system of the present techniques may be embedded in a browser or act as a plug of the browser. In this example, the JavaScript codes are JavaScript codes of the browser.
As another example, the present disclosure may be applied in the development of graphic rendering portion in the graphic applications. The graphic applications, for example, may include the browser, a game application, a chatting program, or any other program that requires graphic expressions. With respect to graphic interface and gaming illustration expression techniques at the mobile device, the OPENGL ES 2.0 may be utilized to effectively execute graphic rendering as it reasonably uses the GPU equipment, which brings good performance experiences for the game application.
However, it is difficult for the developer and may cost a long developing period to directly call an interface of OPENGLLes2.0 for development. According to the present techniques, the JavaScript developer can directly call an API of HTML5 to implement the powerful graphic capabilities of OPENGL. The developer may easily develop various graphic applications with graphic rendering performance similar to those of OPENGLE, if the developer learns JavaScript language and a development method of 2D/3D HTML5 Canvas.
Furthermore, the present techniques may be applicable in executing graphic rendering portion of graphic applications. In an operating process of the graphic application, the present techniques may implement the graphic rendering at a high speed with high performance. In addition, the JavaScript codes used in the present techniques may be codes that are directly downloadable so that the codes are parsed while they are executed. Therefore, the use of JavaScript codes has advantages not found in C++ and Java codes, which do not require installation and may update and operate at any time. Thus, compared
with the conventional techniques, graphic applications developed by the present techniques do not necessarily require installation, update easily, and operate conveniently.
For another example, the example method may also include operations of encapsulating the rendering function based on OPENGL into or with the API. The rendering function based on OPENGL is encapsulated into the corresponding API according to an expansibility of the parsing engine. The API is exposed to a JavaScript developer, and the API has a format complying with the standard of HTML 5 Canvas.
In detailed implementations, for instance, the present techniques may preserve an interface of the parsing engine while the API is encapsulated. Thus, when the API of the JavaScript codes is executed, the API is parsed according to the preserved interface of the parsing engine. The encapsulated API as a result of the encapsulation may have a mapping relationship with the rendering function based on OPENGL. The mapping relationship may be a one-to-one, one-to-many, or many-to-many mapping relationship. The present techniques encapsulate the rendering function based on OPENGL to the corresponding API according to extensibility of the parsing engine and provide the API to the JavaScript developer. The present disclosure does not impose any restrictions on the detailed extensibility and the corresponding mapping relationship.
Codes of an example encapsulated API ctx.drawlmage are illustrated as follows: class jproto- > Set(v8 :: String: :New("drawImage"),FunctionTemplate: :New(V8GraphicsCo ntext: :DrawImage) )
In the example, a class _proto object is encapsulated into an API called drawlmage. A rendering function that the API corresponds and finally implements is V8GraphicsContext: : Drawlmage function in C++. The class jproto is a low level object template corresponding to a ctx object. Accordingly, ctx.drawlmage() interface is extended and exposed to the JavaScript codes. When the API of the JavaScript codes is executed, a
parsing operation is processed to find the VSGraphicsContext: :DrawImage function that is to be finally executed, which is the rendering function based on OPENGL that efficiently uses the graphic rendering interface of GPU at the mobile device to reasonably use a video card for rendering. Many other APIs such as ctx.drawlmage, ctx.fillRect, ctx.fillText, and ctx.strokeText may be extended and exposed to the JavaScript codes. Some code examples are illustrated as follows.
Class jproto-
> Set(v8 :: String: :New("fillRect"),FunctionTemplate: :New(V8GraphicsContext r.FillRect));
class jproto-
> Set(v8 :: String: :New("fillText"),FunctionTemplate: :New(V8GraphicsContext ::FillText));
class jproto- > Set(v8 :: String: :New("strokeText"),FunctionTemplate: :New(V8GraphicsCont ext: .'Stroke Text) )
In an example embodiment, a set of graphic engines based on OPENGL ES 2.0 may be integrated to implement the rendering functions based on OPENGL, which may be in C++ language and rely on OPENGL such as OPEN GL ES 2.0 class libraries. Thus, the graphic engine of the present disclosure stores a lot of rendering functions in C++ to be called by the parsing engine. As OPENGL ES 2.0 is a conventional technology, the present disclosure does not impose any restrictions to the detailed integration method of the graphic engine. In a practical implementation, the graphic rendering should be processed based on the condition that the graphics engine has been successfully operated. If the OPENGL graphics standard library is successfully operated, it may also ensure a successful start of the graphics engine.
Moreover, the OPENGL graphics standard libraries may also be operated in various operating systems, such as Android™, Symbian™, Linux™, and Windows™. Thus, the
graphic engine may also be successfully started in various operating system environments. As a result, the embodiments of the present disclosure may be applied to various operating systems, such as Android™, Symbian™, Linux™, and Windows™.
As a whole, the present techniques mainly combine advantages of both JavaScript and OPENGL to use the parsing engine to encapsulate the rendering function based on OPENGL into or with the API complying with the HTML5 Canvas 2D/3D standard. Thus the present techniques not only increase the speed of graphic rendering at the mobile device but also improve the effect of graphic rendering at the mobile device.
For example, the rendering function may be an interface function which is obtained by an encapsulation of function based on an OPENGL format. The operations of calling the rendering function to conduct graphic rendering to the rendering target may include the following. The parsed rendering function conducts a second parsing to obtain a function with a corresponding OPENGL format. The parsed function with the corresponding OPENGL format is called to conduct graphic rendering to the rendering target.
In an example implementation, the function with OPENGL format may be encapsulated to obtain an interface function with a format similar to HTML5 Canvas standard format to improve a convenience of implementation of the API and the parsing engine. For example, the above VSGraphicsContext: :DrawImage function in C++ is an interface function that has been encapsulated. In fact, the function with OPENGL format before the encapsulation is glDrawElements.
For another example, the rendering function may include an initialization rendering function that initializes a low level rendering environment. For instance, the low level rendering environment may include a brush, a canvas, etc. The brush is an initiator of a drawing command and the canvas is a mapping of memory.
In an example implementation, the rendering target is obtained when the API of the
JavaScript code is initially executed. The corresponding extension interfaces may be parsed to obtain drawing tools, such as a canvas and a brush, to initialize the low level rendering environment. The rendering target may be an OPENGL surface provided by a system, such as a buffer within a video card. For instance, in the Android™ system, the rendering target may be an android surfaceview (game development framework) or a low level structure corresponding to the canvas in the browser.
In an example implementation, the canvas and brush may be obtained by using JavaScript codes as follows:
var canvas = cloudapp.createCanvas(480, 800) /^obtain a 480*800 canvas*/ var context = canvas. getContext() /^obtain a brush*/
For another example, the example method may further include the following. Based on a platform attribute of the mobile device, the initialization rendering function is called to obtain corresponding rendering data. The rendering data may contain device hardware information.
A hardware capability of the mobile device is evaluated according to the device hardware information. An optimization strategy of a rendering process is adjusted according to the hardware capability of the mobile device. The operations of calling the rendering function to conduct graphic rendering to the rendering target may further include the following. Based on the adjusted optimization strategy of the rendering process, the rendering function is called to conduct graphic rendering.
The operations of calling the parsed rendering function to conduct graphic rendering to the rendering target may further include the following. The parsed rendering function is called to conduct graphic rendering to the rendering target according to the adjusted optimization strategy of the rendering process.
In the example embodiment, the present techniques may adjust the optimization
strategy of the rendering process according to the hardware capability of the mobile device and optimize the rendering process according to the adjusted optimization strategy of the rendering process to enhance the performance of graphic rendering.
In an example implementation, the optimization strategy of the rendering process may be related to various strategy parameters. Using vertices number (which is a number of pixel points rendered to a screen) as an example parameter, a number of vertices in one rendering may be initially configured. In default, there may be at most 2000 vertices in one rendering. In the rendering process, according to the hardware capability, the number of vertices parameter is changeable. For example, a high quality video card may process 2000 vertices in one rendering while a low quality video card may only process 600 vertices at one rendering. The above 2000 and 600 are strategy parameters that comply with hardware capability.
Therefore, a general rendering process may be as follows. When the calling command, such as V8GraphicsContext::DrawImage, is received, the rendering is not immediately applied to the rendering target. Instead, data is pushed into flexible data queues, such as a vertex queue and an indexing queue. When a length of data queue reaches a strategy parameter, such as 2000, the graphic rendering starts.
In addition to the strategy parameter, the optimization strategy of the rendering process may further include other strategies, such as a color format of a video card, an anti- aliasing capability, a capability of opening z buffer zone, a capability of supporting the template buffer zone, etc. A person skilled in the art may use various optimization strategies of the rendering process according to the actual demands. The present disclosure does not impose any restriction herein.
It should be understood that a person skilled in the art may choose a set of configuration parameters most appropriate to the current hardware environment, such as a
screen adaptation parameter, a pixel format parameter (ARGB 8888, etc.), and other parameters related to the video card.
In order to enable a person skilled in the art to better understand the present disclosure, the following is described by reference to actual implementation.
The following describes a first example scenario.
FIG. 2 shows a flowchart illustrating an example method of graphic rendering in a browser of the mobile device according to an example embodiment of the present disclosure.
At 202, the browser loads a uniform resource locator (URL) or a universally unique identifier (UUID). Thereafter, HTML and JavaScript codes are obtained. The JavaScript codes include an API encapsulated according to the present disclosure.
A kernel of the browser has a requesting module complying with hypertext transport protocol (HTTP) that requests codes. For example, when the browser visits a website by using an URL, the browser obtains a homepage such as index.html through the URL and executes the webpage and loads required resources and JavaScript codes. For instance, the present techniques may directly execute the JavaScript codes obtained by the browser.
At 204, the browser executes codes such as var img = new cloudapp.Image() in the JavaScript codes to initialize a picture in memory, executes codes such as img.src = "http://somewhere/url.png" to asynchronously load the picture, and then executes a callback function such as img.onload = function(){} after the picture finishes loading.
At 206, when the API encapsulated according to the present techniques is initially executed, the rendering target may be presented in a form of Canvas window, embedded Surface, or any other form. The API encapsulated according to the present techniques is rendered to the rendering target.
At 208, when the API of the JavaScript codes is initially executed, the parsing engine is used to parse the API into the corresponding initialization rendering function based on
OPENGL, and the parsed initialization rendering function is called to initialize a low level rendering environment. The low level rendering environment may include a brush, a canvas, etc.
At 210, when the API of the JavaScript codes is executed afterwards, the parsing engine parses the API to obtain another corresponding rendering function based on OPENGL. The another rendering function is called to conduct graphic rendering to the rendering target.
The following is an example of API of the JavaScript codes. var canvas = cloudapp.createCanvas(480, 800) /^obtain a 480*800 canvas*/ var context = canvas. getContext() /^obtain a Canvas brush*/
context.drawImage(img, 100, 100, 50, 50) /*draw a loaded picture at a coordinate (100,100), where its width and height are defined as 50,50*/
The conventional browser, such as a browser with webkit kernel, basically supports an API complying with the HTML5 Canvas standard. However, the web browsers use the HTML5 Canvas standard as a node controlling component of HTML so that operations such as layout logic, an event, or a redrawing require using the node tree of HTML. A CPU needs to process a lot of operations due to such complicated logics, thereby causing a low speed of graphic rendering.
The present techniques also implement the API of HTML5 Canvas standard in HTML5. However, the present techniques use the parsing engine to parse the API to obtain a corresponding rendering function based on OPENGL and directly call the rendering function to conduct rendering operations to the rendering target. Thus, the present techniques may avoid many unnecessary operations such as layout logic, event, or redrawing, thereby improving the speed of rendering.
In addition, during the process of conducting graphic rendering to the rendering target, the present techniques call the rendering function based on OPENGL. The rendering
function based on OPENGL may fully use the graphic rendering interface of GPU at the mobile device and more reasonably use the video card for rendering. Thus, the present techniques may further improve a graphic rendering performance at the mobile device with a compatible browser and operating system.
In addition, a developer is familiar with HTML 5 and the HTML 5 Canvas API. Thus, there is no or little training cost for the developer to develop graphic application by using the familiar API. Compared with the conventional WebGL technique that requires higher learning costs, the present disclosure reduces the learning cost of the graphic application, thereby achieving an efficient development of graphic applications.
Furthermore, a client of a game application under the conventional techniques is developed by using C++ or Java codes for the graphic application and needs graphic rendering by the GPU. However, the C++ or Java codes are codes that need compiling and installation prior to execution. Thus the game application under the conventional techniques needs downloading and then installing. In addition, its updating is also troublesome. However, JavaScript codes used by the present techniques are directly downloadable and can be executed while parsed. Thus, the JavaScript codes have advantages that cannot be found in C++ and Java codes. It is not necessary for installation and it is possible to update at any time. Thus, the graphic applications developed by the present techniques do not necessary require installation and have easy updating and operating.
The following describes a second example scenario.
FIG. 3 shows a flowchart of an example method of running a game application at a mobile device according to another example embodiment of the present disclosure.
At 302, a user opens a game application market at the mobile device. That is, the mobile device starts an independent application.
At 304, the user views the game application market to find an interesting application
and clicks a corresponding icon.
At 306, the game application market finds a game ID corresponding to the icon clicked by the user.
At 308, the game application market, through a HTTP or another request, finds an entry code or an entry file such as main.js corresponding to game application ID from a server of a corresponding game application manufacturer.
The entry file such as main.js is an entry code portion of the game application that is developed by the game application manufacturer or a freelance game application developer who is in cooperation with the game application manufacturer. The file of main.js may include APIs of initialization rendering functions, such as createCanvas, getContext, etc., to initialize a low level rendering environment. The file of main.js may also include an import calling operation. The import calling operation may be used to load other JS files for an automatic execution. Then the game application starts. The user may operate contents in the game. That is, the user starts to play game. The logic of the game application is controlled by the JS codes of the game application. However, the low level rendering is still supported by the present techniques.
At 310, the entry file such as the main.js code is executed. The execution process may include the following. When the API of the initialization rendering functions in the main.js code is initially executed, the rendering target may be presented in Canvas window, embedded Surface, or any other forms. The parsing engine parses the API to obtain a corresponding initialization rendering function based on OPENGL and the parsed initialization rendering function is called to initialize the low level rendering environment.
At 312, the entry file such as the main.js code is executed. The execution process may further include the following. Other JS files corresponding to the game application ID are loaded according to the import calling.
For example, the other JS files may be a file dependent of the entry file such as main.js code. In an example implementation, the other JS files may be acquired by a require mechanism through methods such as a command require (xxx.js) or a command import (xxx.js), etc. to achieve the goal of loading other JS files.
At 314, the other JS files are executed. The execution process may include the following. When the API of the other JS file is executed, the parsing engine is used to parse the API into other corresponding rendering functions based on OPENGL. The other rendering functions are called to conduct graphic rendering to the rendering target.
In the conventional techniques, the developer of the game application client uses C++ or Java codes to develop graphic rendering applications and the GPU is used for graphic rendering. However, C++ or Java codes need compiling and require installation prior to execution. Thus, the graphic application under the conventional techniques needs installation after downloading and its updating is also troublesome.
The present techniques may use the JavaScript codes which are directly downloadable that may be parsed while executed. Thus, the JavaScript codes has advantages not found in C++ and Java codes, which do not require installation and may update and run at any time. Thus, the graphic applications developed by the present techniques do not necessarily require installation and update and operate easily.
Corresponding to the above example method or system embodiment, the present disclosure also provides an example apparatus of graphic rendering at the mobile device. FIG. 4 is a block diagram of an example apparatus 400 of graphics rendering at the mobile device according to another example embodiment of the present disclosure.
The apparatus 400 may include one or more processor(s) 402 and memory 404. The memory 404 is an example of computer-readable media. As used herein, "computer-readable media" includes computer storage media and communication media.
Computer storage media includes volatile and non-volatile, removable and nonremovable media implemented in any method or technology for storage of information such as computer-executed instructions, data structures, program modules, or other data. In contrast, communication media may embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave. As defined herein, computer storage media does not include communication media. The memory 404 may store therein program units or modules and program data.
In the example of FIG. 4, the memory 404 may store therein a code retrieving module 406, a code execution module 408, and a function calling module 410.
The code retrieving module 406 retrieves JavaScript codes of a graphic application.
The JavaScript codes include an API corresponding to a rendering function based on OPENGL. The API has a format complying with a standard of HTML 5 Canvas.
The code executing module 408 executes the JavaScript codes at a parsing engine. When the API of the JavaScript codes is executed, the parsing engine parses the API to obtain a corresponding rendering function based on OPENGL.
The function calling module 410 calls the parsed rendering function to conduct graphic rendering to a rendering target.
For example, the apparatus 400 may further include an encapsulating module that encapsulates the rendering function based on OPENGL into or with the API. For instance, the encapsulating module, according to an expansibility of the parsing engine, encapsulates the rendering function based on OPENGL into the corresponding API. The API is exposed to a JavaScript developer, and the API has a format complying with the standard of HTML 5 Canvas.
For example, the rendering function is an interface function which is obtained based on an encapsulation of a function based on an OPENGL format.
For example, the function calling module 410 may further include a second parsing sub-module and a calling sub-module. The second parsing sub-module conducts a second parsing to the parsed rendering function to obtain a function with a corresponding OPENGL format. The calling sub-module calls the parsed function with the OPENGL format to conduct graphic rendering to the rendering target.
For another example, the rendering function may include an initialization rendering function that initializes a low level rendering environment.
For another example, the apparatus 400 may further include an environment initializing module, an evaluating module, and a rendering process optimization strategy adjusting module. The environment initializing module, based on a platform attribute of the mobile device, calls the initialization rendering function to obtain corresponding rendering data. The rendering data may contain device hardware information.
The evaluating module evaluates a hardware capability of the mobile device according to the device hardware information. The rendering process optimization strategy adjusting module adjusts an optimization strategy of a rendering process according to the hardware capability of the mobile device. The calling module, based on the adjusted optimization strategy of the rendering process, calls the rendering function to conduct graphic rendering.
The description of the example apparatus embodiment of the present disclosure is relatively brief as the techniques in the example apparatus embodiment are similar to those of the example method embodiments. The related techniques in the example apparatus embodiments may be referred to those in the example method embodiments of the present disclosure.
One of ordinary skill in the art should understand that the embodiments of the present disclosure can be methods, systems, apparatuses (devices), or the programming products of
computers. Therefore, the present disclosure can be implemented by hardware, software, or in combination of both. In addition, the present disclosure can be in a form of one or more computer programs containing the computer-executable codes or instructions which can be included or stored in the computer storage medium (including but not limited to disks, CD- ROM, optical disks, etc.).
The present disclosure is described by referring to the flow charts and/or block diagrams of the method, device (system) and computer program of the embodiments of the present disclosure. It should be understood that each flow and/or block and the combination of the flow and/or block of the flowchart and/or block diagram can be implemented by computer-executable instructions. These computer-executable instructions may be provided to the general computers, specific computers, embedded processor or any other programmable data devices including one or more processors to generate a machine, so that a device of implementing one or more flows of the flow chart and/or one or more blocks of the block diagram can be generated through the instructions operated by a computer or other programmable data processors.
The computer-executable instructions may also be stored in one or more computers or any other programmable data processing devices that cause the computers or any other programmable data processing devices to work in a specific way so that the computer- executable instruction stored in the computer storage media may implement functionalities designated by one or more flows and/or blocks of the flowcharts and/or block diagrams.
The computer-executed instructions may also be loaded into the computer or any other programmable data processing devices to cause the computer or any other programmable data processing devices to perform a series of operations to implement computer processing. Thus, the computer-executed instruction performed at the computer or any other programmable data processing devices implements implement functionalities
designated by one or more flows and/or blocks of the flowcharts and/or block diagrams.
Although the present disclosure describes some example embodiments, one of ordinary skill in the art may make variations or modifications after he/she obtains basic creative concept of the present disclosure. Thus, the claims should be interpreted to protect the example embodiments and any other variation or modification fallen into the present disclosure.
The example embodiments of the present disclosure are described progressively. Each example embodiments focuses on differences from the other example embodiments. The same and similar portions among the various example embodiments may be referred to each other.
The present disclosure provides the example methods and apparatuses of graphic rendering at the mobile device. The present disclosure uses the example embodiments to illustrate the principles and implementations of the present techniques. The example embodiments are only used to help understand the methods and concepts of the present disclosure. It should be understood that various modifications, changes or equivalent replacements may be made by one of ordinary skill in the art in accordance with the principles of the present disclosure. Thus, the specification shall not be used as a limitation to the present disclosure.
Claims
1. A method comprising :
obtaining JavaScript codes of a graphic application, the JavaScript codes including an application programming interface (API) corresponding to a rendering function based on open graphic library (OPENGL);
executing the JavaScript codes at a parsing engine to obtain the rendering function based on OPENGL; and
calling the rendering function to conduct graphic rendering to a rendering target.
2. The method as recited in claim 1, wherein a format of the API complies with a standard of HTML5 Canvas.
3. The method as recited in claim 1, wherein the executing comprises when the API of the JavaScript codes is executed, using the parsing engine to parse the API to obtain the rendering function based on OPENGL.
4. The method as recited in claim 1, further comprising encapsulating the rendering function based on OPENGL into or with the API.
5. The method as recited in claim 4, wherein the encapsulating comprises, based on an extensibility of the parsing engine, encapsulating the rendering function based on OPENGL into or with the API.
6. The method as recited in claim 1, wherein the rendering function is an
interface function that is obtained based on an encapsulation of a function based on a format of OPENGL.
7. The method as recited in claim 6, wherein the calling comprises:
conducting a second parsing of the rendering function;
obtaining the function based on the format of OPENGL; and
calling the function based on the format of OPENGL to conduct graphic rendering to the rendering target.
8. The method as recited in claim 1, wherein the rendering function includes an initialization rendering function to initialize a low level rendering environment.
9. The method as recited in claim 8, further comprising:
based on a platform attribute of a mobile device, calling the initialization rendering function to obtain rendering data, the rendering data including device hardware information of the mobile device;
evaluating a hardware capability of the mobile device according to the device hardware information; and
adjusting an optimization strategy of a rendering process according to the hardware capability of the mobile device.
10. The method as recited in claim 9, wherein the calling the rendering function comprises based on the adjusted optimization strategy of the rendering process, calling the rendering function to conduct graphic rendering to the rendering target.
11. An apparatus comprising:
a code retrieving module that obtains JavaScript codes of a graphic application, the JavaScript codes including an application programming interface (API) corresponding to a rendering function based on open graphic library (OPENGL), a format of the API complying with a standard of HTML5 Canvas;
a code execution module that executes the JavaScript codes at a parsing engine to parse the API to obtain the rendering function based on OPENGL; and
a function calling module that calls the rendering function to conduct graphic rendering to a rendering target.
12. The apparatus as recited in claim 11, further comprising an encapsulating module that encapsulates the rendering function based on OPENGL into or with the API.
13 The apparatus as recited in claim 12, wherein the encapsulating module based on an extensibility of the parsing engine, encapsulates the rendering function based on OPENGL with the API.
14. The apparatus as recited in claim 11, wherein the rendering function is an interface function that is obtained based on an encapsulation of a function based on a format of OPENGL.
15. The apparatus as recited in claim 11, wherein the function calling module comprises:
a second parsing sub-module that conducts a second parsing of the rendering function to obtain the function based on the format of OPENGL; and
a calling sub-module that calls the function based on the format of OPENGL to conduct graphic rendering to the rendering target.
16. The apparatus as recited in claim 11, wherein the rendering function includes an initialization rendering function to initialize a low level rendering environment.
17. The apparatus as recited in claim 16, further comprising:
an environment initializing sub-module that, based on a platform attribute of a mobile device, calls the initialization rendering function to obtain rendering data, the rendering data including device hardware information of the mobile device;
an evaluating module that evaluates a hardware capability of the mobile device according to the device hardware information; and
a rendering process optimization strategy adjusting module that adjusts an optimization strategy of a rendering process according to the hardware capability of the mobile device.
18. One or more computer storage media stored therein computer-executable instructions that are executable by one or more process to perform operations comprising: obtaining JavaScript codes of a graphic application, the JavaScript codes including an application programming interface (API) corresponding to a rendering function based on open graphic library (OPENGL), a format of the API complying with a standard of HTML5 Canvas;
when the API is initially executed, using a parsing engine to parse the API to obtain an initialization rendering function based on OPENGL;
calling the initialization rendering function to initialize a low level rendering
environment;
when the API is executed afterwards, using the parsing engine to parse the API to obtain another rendering function based on OPENGL; and
calling the another rendering function to conduct graphic rendering to the rendering target.
19. The one or more computer storage media as recited in claim 18, wherein the calling comprises:
based on a platform attribute of a mobile device, calling the initialization rendering function to obtain rendering data, the rendering data including device hardware information of the mobile device;
evaluating a hardware capability of the mobile device according to the device hardware information; and
adjusting an optimization strategy of a rendering process according to the hardware capability of the mobile device;
20. The one or more computer storage media as recited in claim 19, wherein calling the another rendering function comprises based on the adjusted optimization strategy of the rendering process, calling the another rendering function to conduct graphic rendering to the rendering target
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020157008416A KR102115057B1 (en) | 2012-10-09 | 2013-10-08 | Graphic rendering |
| IN2756DEN2015 IN2015DN02756A (en) | 2012-10-09 | 2013-10-08 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201210379921.4 | 2012-10-09 | ||
| CN201210379921.4A CN103713891B (en) | 2012-10-09 | 2012-10-09 | It is a kind of to carry out the method and apparatus that figure renders on the mobile apparatus |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2014058902A1 true WO2014058902A1 (en) | 2014-04-17 |
Family
ID=49510515
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2013/063916 Ceased WO2014058902A1 (en) | 2012-10-09 | 2013-10-08 | Graphic rendering |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US9646357B2 (en) |
| KR (1) | KR102115057B1 (en) |
| CN (1) | CN103713891B (en) |
| IN (1) | IN2015DN02756A (en) |
| TW (1) | TWI595442B (en) |
| WO (1) | WO2014058902A1 (en) |
Families Citing this family (65)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9360339B2 (en) | 2013-01-14 | 2016-06-07 | Sap Se | Rendering maps with canvas elements |
| US9361319B2 (en) | 2013-09-30 | 2016-06-07 | Duelight Llc | Systems, methods, and computer program products for digital photography |
| US9448771B2 (en) | 2014-10-17 | 2016-09-20 | Duelight Llc | System, computer program product, and method for generating a lightweight source code for implementing an image processing pipeline |
| US9460118B2 (en) * | 2014-09-30 | 2016-10-04 | Duelight Llc | System, method, and computer program product for exchanging images |
| US9508133B2 (en) | 2014-11-18 | 2016-11-29 | Duelight Llc | System and method for generating an image result based on availability of a network resource |
| US9804900B2 (en) * | 2014-05-30 | 2017-10-31 | Apple Inc. | Manipulating shaders with object-oriented programming |
| KR101577012B1 (en) * | 2014-06-24 | 2015-12-11 | (주)에듀필미디어 | Method of composing multimedia data and video player for playing moving pictures in an android operating system |
| US10068370B2 (en) * | 2014-09-12 | 2018-09-04 | Microsoft Technology Licensing, Llc | Render-time linking of shaders |
| US12401911B2 (en) | 2014-11-07 | 2025-08-26 | Duelight Llc | Systems and methods for generating a high-dynamic range (HDR) pixel stream |
| US12401912B2 (en) | 2014-11-17 | 2025-08-26 | Duelight Llc | System and method for generating a digital image |
| US10013735B2 (en) * | 2015-01-28 | 2018-07-03 | Qualcomm Incorporated | Graphics processing unit with bayer mapping |
| CN104573110B (en) * | 2015-02-02 | 2018-08-21 | 北京恒华伟业科技股份有限公司 | The Dynamic Display method and device of figure in a kind of browser |
| CN104866340A (en) * | 2015-04-29 | 2015-08-26 | 小米科技有限责任公司 | Method and apparatus for updating terminal device software |
| US12445736B2 (en) | 2015-05-01 | 2025-10-14 | Duelight Llc | Systems and methods for generating a digital image |
| CN105373427B (en) * | 2015-11-11 | 2019-12-03 | 麒麟合盛网络技术股份有限公司 | A kind of method and device of display application and functional switch |
| CN107368291A (en) * | 2016-05-13 | 2017-11-21 | 北京搜狗科技发展有限公司 | A kind of Web page rendering device, method and electronic equipment |
| CN105930535A (en) * | 2016-06-20 | 2016-09-07 | 微景天下(北京)科技有限公司 | Adaptive image display system and adaptive image display method |
| CN106168869B (en) * | 2016-06-24 | 2019-06-21 | 北京奇虎科技有限公司 | Desktop view processing method, device and terminal based on floating window |
| US10416836B2 (en) * | 2016-07-11 | 2019-09-17 | The Boeing Company | Viewpoint navigation control for three-dimensional visualization using two-dimensional layouts |
| CN106327563B (en) * | 2016-08-24 | 2019-04-05 | 武汉斗鱼网络科技有限公司 | A kind of Directx texture resource inter-operation system and method |
| CN107832108B (en) * | 2016-09-14 | 2021-05-07 | 阿里巴巴集团控股有限公司 | Rendering method and device of 3D canvas webpage elements and electronic equipment |
| CN106547845A (en) * | 2016-10-17 | 2017-03-29 | 搜游网络科技(北京)有限公司 | For simulating the method and its equipment of canvas interfaces |
| CN106569816B (en) * | 2016-10-26 | 2020-03-31 | 搜游网络科技(北京)有限公司 | Rendering method and device |
| CN106886404A (en) * | 2017-01-17 | 2017-06-23 | 武汉卓尔云市集团有限公司 | A kind of 3D rendering devices of android |
| CN106897066B (en) | 2017-02-24 | 2019-10-29 | 百富计算机技术(深圳)有限公司 | Network application operation method and device based on POS payment terminal |
| CN108572818B (en) * | 2017-03-08 | 2021-07-23 | 斑马智行网络(香港)有限公司 | User interface rendering method and device |
| CN106990961B (en) * | 2017-03-28 | 2023-10-27 | 北京航天联智科技有限公司 | Method for establishing WebGL graphic rendering engine |
| CN107066430B (en) * | 2017-04-21 | 2021-02-26 | 阿里巴巴(中国)有限公司 | Picture processing method and device, server and client |
| US11062497B2 (en) | 2017-07-17 | 2021-07-13 | At&T Intellectual Property I, L.P. | Structuralized creation and transmission of personalized audiovisual data |
| CN107562861A (en) * | 2017-08-29 | 2018-01-09 | 武汉智丽丰信息科技有限公司 | A kind of WebGIS 3D modelling systems based on WebGL |
| WO2019075702A1 (en) * | 2017-10-19 | 2019-04-25 | Tencent Technology (Shenzhen) Company Limited | Methods and systems for processing graphics |
| CN108021356B (en) * | 2017-11-06 | 2021-08-03 | 江苏省测绘研究所 | Cross-screen and cross-platform measurable live-action map organization method |
| CN110262798B (en) * | 2018-03-12 | 2023-11-10 | 北京蓝亚盒子科技有限公司 | WebGL-based graphic drawing method, device, operator and readable storage medium |
| WO2020055779A1 (en) * | 2018-09-10 | 2020-03-19 | Aveva Software, Llc | Integration of 3rd party geometry for visualization of large data sets system and method |
| CN109271155A (en) * | 2018-09-11 | 2019-01-25 | Oppo广东移动通信有限公司 | The capacity calling method and Related product of gaming platform |
| CN109395384A (en) | 2018-09-12 | 2019-03-01 | Oppo广东移动通信有限公司 | Game rendering method and Related product |
| CN109316751B (en) * | 2018-09-20 | 2021-08-10 | Oppo广东移动通信有限公司 | Game adaptation method, related device and computer-readable storage medium |
| CN109271156B (en) * | 2018-09-25 | 2022-02-18 | Oppo广东移动通信有限公司 | Bottom layer calling method of game platform and related product |
| CN111210496B (en) * | 2018-11-19 | 2022-11-25 | 腾讯科技(深圳)有限公司 | Picture decoding method, device and equipment |
| CN109542567A (en) * | 2018-11-20 | 2019-03-29 | 四川长虹电器股份有限公司 | The rendering method and browser of browser based on Linux platform |
| CN111402349B (en) * | 2019-01-03 | 2023-09-08 | 百度在线网络技术(北京)有限公司 | Rendering method, rendering device and rendering engine |
| CN111400024B (en) * | 2019-01-03 | 2023-10-10 | 百度在线网络技术(北京)有限公司 | Resource calling method and device in rendering process and rendering engine |
| CN111408138B (en) * | 2019-01-04 | 2023-07-07 | 厦门雅基软件有限公司 | Rendering method and device based on game engine and electronic equipment |
| CN109885302A (en) * | 2019-01-29 | 2019-06-14 | 维沃移动通信有限公司 | A display method and terminal device for a quick application |
| CN109918598B (en) * | 2019-03-07 | 2022-10-18 | 四川长虹电器股份有限公司 | Web page rendering method based on Android television browser |
| CN110413914A (en) * | 2019-07-25 | 2019-11-05 | 中南民族大学 | Rendering method, device, equipment and storage medium based on WebGL |
| CN110727481A (en) * | 2019-09-06 | 2020-01-24 | 平安国际智慧城市科技股份有限公司 | Picture editing method and device, computer equipment and storage medium |
| CN110764757B (en) * | 2019-10-22 | 2023-06-09 | 成都九洲电子信息系统股份有限公司 | Interactive graphic drawing engine based on HTML5 |
| CN113076152B (en) * | 2020-01-03 | 2024-10-01 | 腾讯科技(深圳)有限公司 | Rendering method and device, electronic equipment and computer readable storage medium |
| CN111275782B (en) * | 2020-01-17 | 2023-09-08 | 广州图匠数据科技有限公司 | Graph drawing method and device, terminal equipment and storage medium |
| CN111381920B (en) * | 2020-02-17 | 2022-10-04 | 网易(杭州)网络有限公司 | Display method and device of pop-up window assembly and electronic terminal |
| CN113360200A (en) * | 2020-03-05 | 2021-09-07 | 北京沃东天骏信息技术有限公司 | Method and device for running target program embedded page |
| CN111562962B (en) * | 2020-04-29 | 2023-07-04 | 百度在线网络技术(北京)有限公司 | Picture rendering method and device, electronic equipment and storage medium |
| CN111580809A (en) * | 2020-05-07 | 2020-08-25 | 讯飞幻境(北京)科技有限公司 | A visual webgl framework construction method, device and computer equipment |
| CN112288840B (en) * | 2020-10-26 | 2021-08-24 | 北京优锘科技有限公司 | Method for realizing running by combining three-dimensional rendering engine with JavaScript engine |
| CN113313804B (en) * | 2021-06-23 | 2024-03-12 | 深圳Tcl新技术有限公司 | An image rendering method, device, electronic device and storage medium |
| CN113515396B (en) * | 2021-07-09 | 2024-01-30 | 北京字节跳动网络技术有限公司 | Graphics rendering method, graphics rendering device, electronic equipment and storage medium |
| CN113570733B (en) * | 2021-08-05 | 2024-08-30 | 稿定(厦门)科技有限公司 | A graphics rendering method, device and system based on WebGL |
| CN113694523B (en) * | 2021-08-30 | 2024-07-12 | 上海哔哩哔哩科技有限公司 | Mobile terminal APP-based H5 game display method and device and computer equipment |
| CN114090918A (en) * | 2021-10-25 | 2022-02-25 | 青岛海尔科技有限公司 | Parameter adjusting method, device, storage medium and electronic device |
| CN114444003A (en) * | 2022-02-08 | 2022-05-06 | 腾讯音乐娱乐科技(深圳)有限公司 | Webpage content processing method, electronic equipment and storage medium |
| CN114821001B (en) * | 2022-04-12 | 2024-04-19 | 支付宝(杭州)信息技术有限公司 | AR-based interaction method and device and electronic equipment |
| CN114546578A (en) * | 2022-04-26 | 2022-05-27 | 阿里巴巴(中国)有限公司 | Map visualization method, device, system and computer program product |
| CN115131470B (en) * | 2022-05-17 | 2025-07-04 | 腾讯科技(深圳)有限公司 | A method, device, electronic device and storage medium for synthesizing graphic materials |
| CN115311122A (en) * | 2022-08-10 | 2022-11-08 | 上海欣电软件有限公司 | Method for establishing two-dimensional drawing engine based on GPU and CPU graphics processing technology |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120117145A1 (en) * | 2010-11-08 | 2012-05-10 | Sony Corporation | Methods and systems for use in providing a remote user interface |
Family Cites Families (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6289299B1 (en) | 1999-02-17 | 2001-09-11 | Westinghouse Savannah River Company | Systems and methods for interactive virtual reality process control and simulation |
| US6874150B2 (en) * | 2001-03-01 | 2005-03-29 | Microsoft Corporation | Method and system for maintaining connections between surfaces and objects in a graphics display system |
| US8239749B2 (en) | 2004-06-25 | 2012-08-07 | Apple Inc. | Procedurally expressing graphic objects for web pages |
| JP2006195979A (en) * | 2005-01-04 | 2006-07-27 | Microsoft Corp | Web application architecture |
| KR20060108069A (en) * | 2005-04-12 | 2006-10-17 | 한국문화콘텐츠진흥원 | Mobile 3D Graphics Engine for Java Platform Using Seed-based Graphic Renderer of Embedded System and 3D Graphics Implementation Method Using the Same |
| US20070171222A1 (en) * | 2006-01-23 | 2007-07-26 | Autodesk, Inc. | Application-independent method for capturing three-dimensional model data and structure for viewing and manipulation |
| US20080201695A1 (en) * | 2007-02-16 | 2008-08-21 | Qing Zhou | Computer graphics rendering |
| EP2321730B1 (en) * | 2008-07-25 | 2018-04-11 | Qualcomm Incorporated | Performance analysis during visual creation of graphics images |
| US8675000B2 (en) | 2008-11-07 | 2014-03-18 | Google, Inc. | Command buffers for web-based graphics rendering |
| WO2011080776A1 (en) | 2009-12-30 | 2011-07-07 | Telecom Italia S.P.A. . | Method for the calculation of the bounding box of vectorial graphic shapes |
| US8561038B1 (en) * | 2009-12-31 | 2013-10-15 | Google Inc. | High performance execution environment |
| US20120166953A1 (en) * | 2010-12-23 | 2012-06-28 | Microsoft Corporation | Techniques for electronic aggregation of information |
| US20120169754A1 (en) | 2010-12-30 | 2012-07-05 | Nokia Corporation | Method and apparatus for providing synthesizable graphics for user terminals |
| CN102087598A (en) * | 2011-02-22 | 2011-06-08 | 深圳市同洲电子股份有限公司 | Method, device and browsing device for displaying 3D interface |
| US8872861B2 (en) * | 2011-05-13 | 2014-10-28 | Samsung Display Co., Ltd. | Apparatus for selecting backlight color values |
| US8400453B2 (en) | 2011-06-30 | 2013-03-19 | Google Inc. | Rendering a text image following a line |
| US8760451B2 (en) | 2011-06-30 | 2014-06-24 | Google Inc. | Rendering a text image using texture map character center encoding with character reference encoding |
| CN102323880A (en) * | 2011-06-30 | 2012-01-18 | 中兴通讯股份有限公司 | Mobile phone application interface development method and terminal based on browser parsing mode |
| CN102316161B (en) * | 2011-08-31 | 2014-05-14 | 北京华电万通科技有限公司 | Data transmission device applied to Web3D (Three-dimensional) and method |
| CN102323882B (en) * | 2011-08-31 | 2014-03-12 | 北京华电万通科技有限公司 | Data processing device and method applied to Web3D |
| US9202309B2 (en) * | 2011-09-01 | 2015-12-01 | Adobe Systems Incorporated | Methods and apparatus for digital stereo drawing |
| WO2013074568A1 (en) * | 2011-11-15 | 2013-05-23 | Trimble Navigation Limited | Browser-based collaborative development of a 3d model |
| US9123084B2 (en) | 2012-04-12 | 2015-09-01 | Activevideo Networks, Inc. | Graphical application integration with MPEG objects |
-
2012
- 2012-10-09 CN CN201210379921.4A patent/CN103713891B/en not_active Expired - Fee Related
-
2013
- 2013-03-12 TW TW102108645A patent/TWI595442B/en not_active IP Right Cessation
- 2013-10-08 IN IN2756DEN2015 patent/IN2015DN02756A/en unknown
- 2013-10-08 WO PCT/US2013/063916 patent/WO2014058902A1/en not_active Ceased
- 2013-10-08 KR KR1020157008416A patent/KR102115057B1/en active Active
- 2013-10-08 US US14/049,038 patent/US9646357B2/en active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120117145A1 (en) * | 2010-11-08 | 2012-05-10 | Sony Corporation | Methods and systems for use in providing a remote user interface |
Non-Patent Citations (1)
| Title |
|---|
| HAIM LEVKOWITZ ET AL: "Cloud and Mobile Web-Based Graphics and Visualization", GRAPHICS, PATTERNS AND IMAGES TUTORIALS (SIBGRAPI-T), 2012 25TH SIBGRAPI CONFERENCE ON, IEEE, 22 August 2012 (2012-08-22), pages 21 - 35, XP032283170, ISBN: 978-1-4673-5091-4, DOI: 10.1109/SIBGRAPI-T.2012.12 * |
Also Published As
| Publication number | Publication date |
|---|---|
| TW201415411A (en) | 2014-04-16 |
| IN2015DN02756A (en) | 2015-08-28 |
| US9646357B2 (en) | 2017-05-09 |
| US20140098118A1 (en) | 2014-04-10 |
| TWI595442B (en) | 2017-08-11 |
| CN103713891A (en) | 2014-04-09 |
| CN103713891B (en) | 2017-11-24 |
| KR102115057B1 (en) | 2020-05-26 |
| KR20150067165A (en) | 2015-06-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9646357B2 (en) | Graphic rendering | |
| US10650166B1 (en) | Application remoting using network vector rendering | |
| EP3465467B1 (en) | Web page accelerations for web application hosted in native mobile application | |
| US11811853B2 (en) | Systems and methods for content delivery acceleration of virtual reality and augmented reality web pages | |
| CN113282360B (en) | Rendering method and device of 2D canvas webpage element and electronic equipment | |
| CN110032614B (en) | Map vector rendering method and device based on wasm | |
| US11726800B2 (en) | Remote component loader | |
| CN108416021B (en) | Browser webpage content processing method and device, electronic equipment and readable medium | |
| CN112307403B (en) | Page rendering method and device, storage medium and terminal | |
| US11176223B1 (en) | Page rendering by an intermediary system that uses a truncated library | |
| JP6140904B2 (en) | Terminal marking method, terminal marking device, program, and recording medium | |
| CN104156213A (en) | Android application running method and device | |
| JP2014522517A (en) | Notification of data splitting in markup-based documents | |
| US9645983B1 (en) | Modifying a document at a script processing server using a client device's state information | |
| CN110764805A (en) | Method, device, terminal and storage medium for noninductive upgrade of client | |
| CN114003225A (en) | Window display method and device, computer equipment and storage medium | |
| CN113094612A (en) | Method and device for loading webpage at client, electronic equipment and medium | |
| US9830307B1 (en) | Ahead of time compilation of content pages | |
| US8396920B1 (en) | Clean URLs in web applications | |
| CN116644252A (en) | Page loading method, device, electronic device and storage medium | |
| CN108376090A (en) | Method, device, terminal and storage medium for operating web page pictures | |
| CN108363742B (en) | Image data processing method and device and electronic terminal | |
| JP5842029B2 (en) | Information processing support apparatus, information processing apparatus, and information processing support program for caching image data | |
| HK40087283A (en) | Data processing method, apparatus, computer device, and storage medium | |
| CN120335806A (en) | A desktop client integration method and system for Unreal Engine web page projects |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13783736 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 20157008416 Country of ref document: KR Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 13783736 Country of ref document: EP Kind code of ref document: A1 |
