WO2017167127A1 - 一种图形合成方法、窗口设置方法及系统 - Google Patents

一种图形合成方法、窗口设置方法及系统 Download PDF

Info

Publication number
WO2017167127A1
WO2017167127A1 PCT/CN2017/078041 CN2017078041W WO2017167127A1 WO 2017167127 A1 WO2017167127 A1 WO 2017167127A1 CN 2017078041 W CN2017078041 W CN 2017078041W WO 2017167127 A1 WO2017167127 A1 WO 2017167127A1
Authority
WO
WIPO (PCT)
Prior art keywords
graphics
synthesizer
subsystem
buffer object
layer
Prior art date
Application number
PCT/CN2017/078041
Other languages
English (en)
French (fr)
Inventor
金卓军
Original Assignee
阿里巴巴集团控股有限公司
金卓军
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 阿里巴巴集团控股有限公司, 金卓军 filed Critical 阿里巴巴集团控股有限公司
Publication of WO2017167127A1 publication Critical patent/WO2017167127A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation

Definitions

  • the present application relates to the field of communications technologies, and in particular, to a graphics synthesis method, a window setting, and a system.
  • the cloud operating system also known as cloud OS, is an operating system supported by cloud computing and cloud storage technologies.
  • the cloud operating system will be widely used in the future because it can integrate massive computing power and provide powerful resource allocation capabilities.
  • Cloud operating systems can be used for both traditional desktop systems (such as PCs) and mobile devices.
  • Applications or services based on cloud operating systems, as well as applications or services based on traditional operating systems, will operate within the framework of the cloud operating system, which requires the cloud operating system framework to integrate applications or services based on different operating systems.
  • the embodiment of the present application provides a graphics synthesis method and system for implementing compatibility between different operating systems in graphics processing.
  • the second graphics synthesizer sends a graphics buffer object identifier to the first graphics synthesizer; wherein the first graphics synthesizer is a graphics synthesizer in the first subsystem, and the second graphics synthesizer is in the second subsystem Graphic synthesizer
  • the first graphics synthesizer performs graphics synthesis according to the graphics data stored in the graphics data storage unit pointed to by the graphics buffer object identifier.
  • the second graphics synthesizer sends the graphics buffer object identifier to the first graphics synthesizer, including:
  • the second graphics synthesizer extracts the first graphics buffer object from the graphics buffer object queue, and creates a second graphics buffer object corresponding to the first graphics buffer object; wherein the second graphics buffer object is the first graphics synthesizer a proxy of the third graphics buffer object in the second graphics synthesizer;
  • the second graphics synthesizer transmits the identifier of the first graphics buffer object to the third graphics buffer object in the first graphics synthesizer through the second graphics buffer object.
  • the second graphics synthesizer sends the identifier of the first graphics buffer object to the first graphics synthesizer by using the second graphics buffer object, including:
  • the second graphics synthesizer transmits the identification of the second graphics buffer object to the first subsystem graphics synthesizer.
  • the method further includes: the first graphics synthesizer creates a third graphics buffer object corresponding to the first graphics buffer object.
  • the method further comprises:
  • the second graphics synthesizer returns the first graphics buffer object corresponding to the second graphics buffer object to the graphics buffer object queue according to the returned identifier of the second graphics buffer object.
  • the graphics data stored in the graphics data storage unit is processed by an application of the second subsystem.
  • the first subsystem is a Host subsystem
  • the second subsystem is a Guest subsystem.
  • the first graphics synthesizer receives the graphics buffer object identifier sent by the second graphics synthesizer; wherein the first graphics synthesizer is a graphics synthesizer in the first subsystem, and the second graphics synthesizer is a second subsystem Graphic synthesizer
  • the first graphics synthesizer performs graphics synthesis according to the graphics data stored in the graphics data storage unit pointed to by the graphics buffer object identifier.
  • the first graphics synthesizer receives the graphics buffer object identifier sent by the second graphics synthesizer, including:
  • the first graphics synthesizer receives, by the second graphics buffer object, an identifier of the first graphics buffer object sent by the second graphics synthesizer; wherein the second graphics buffer object is a second graphics synthesizer from the graphics buffer object queue When the first graphics buffer object is fetched, the second graphics buffer object corresponds to the first graphics buffer object, and the second graphics buffer object is the third graphics buffer object in the first graphics synthesizer.
  • the proxy in the graphics synthesizer is not limited to the graphics synthesizer.
  • the method further includes: the first graphics synthesizer creates a third graphics buffer object corresponding to the first graphics buffer object.
  • the method further includes: after the first graphics synthesizer completes the synthesizing, returning, to the second graphics synthesizer, the identifier of the second graphics buffer object, so that the second graphics synthesizer buffers according to the returned second graphics buffer An identifier of the object, the first graphics buffer object corresponding to the second graphics buffer object is placed back into the graphics buffer object queue.
  • the graphics data stored in the graphics data storage unit is processed by an application of the second subsystem.
  • the first subsystem is a Host subsystem
  • the second subsystem is a Guest subsystem.
  • a graphics synthesis system includes: a first graphics synthesizer and a second graphics synthesizer, wherein the first graphics synthesizer is a graphics synthesizer of the first subsystem, the The second graphics synthesizer is a graphics synthesizer of the second subsystem;
  • the second graphics synthesizer is configured to send a graphics buffer object identifier to the first graphics synthesizer
  • the first graphics synthesizer is configured to perform graphics synthesis according to the graphics data stored in the graphics data storage unit pointed to by the graphics buffer object identifier.
  • the second graphics synthesizer is specifically configured to: take out a first graphics buffer object from a graphics buffer object queue, and create a second graphics buffer object corresponding to the first graphics buffer object, where the second The graphics buffer object is a proxy of the third graphics buffer object in the first graphics synthesizer in the second graphics synthesizer;
  • the second graphic synthesizer is specifically used for:
  • the first graphics synthesizer is further configured to: create a third graphics buffer object corresponding to the first graphics buffer object.
  • the first graphics synthesizer is further configured to: after completing the synthesizing, return an identifier of the second graphics buffer object to the second graphics synthesizer;
  • the second graphics synthesizer is further configured to: put the first graphics buffer object corresponding to the second graphics buffer object back into the graphics buffer object queue according to the returned identifier of the second graphics buffer object.
  • the graphics data stored in the graphics data storage unit is processed by an application of the second subsystem.
  • the first subsystem is a Host subsystem
  • the second subsystem is a Guest system.
  • the first graphics synthesizer of the first subsystem receives the graphics buffer object identifier sent by the second graphics synthesizer of the second subsystem, and the graphics buffer object identifier points to the graphics for storing graphics data. a data storage unit, so that the first graphics synthesizer can synthesize the graphics data pointed by the graphics buffer object identifier according to the received graphics buffer object identifier during graphics synthesis, thereby achieving different levels of graphics synthesis. Compatibility between subsystems.
  • the embodiment of the present application further provides a window setting method and system for implementing compatibility between different operating systems in graphics processing.
  • the second graphics synthesizer sends window attribute information to the first graphics synthesizer; wherein the first graphics synthesizer is a graphics synthesizer in the first subsystem, and the second graphics synthesizer is in the second subsystem Graphic synthesizer
  • the first graphic synthesizer sets a corresponding window according to the window attribute information.
  • the second graphics synthesizer sends the window attribute information to the first graphics synthesizer, including:
  • the second graphics synthesizer determines a corresponding first layer object according to the to-be-set window
  • the second graphics synthesizer sends the window attribute information of the to-be-set window to the third layer object in the first graphics synthesizer through the second layer object corresponding to the first layer object; wherein, the The two layer object is a proxy of the third layer object in the second graphics synthesizer.
  • the second graphics synthesizer sends the window attribute information of the to-be-set window to the third layer object in the first graphics synthesizer through the second layer object corresponding to the first layer object, and further includes :
  • the second graphics synthesizer creates a first layer object and a second layer object according to the received first event
  • a first graphics synthesizer creates, according to the first event, the first layer object or the The third layer object corresponding to the second layer object.
  • the first event includes one or more of the following events:
  • the second graphics synthesizer creates a layer event for the application of the second subsystem.
  • the window attribute information is window attribute information corresponding to an application of the second subsystem.
  • the first subsystem is a Host subsystem
  • the second subsystem is a Guest subsystem.
  • the first graphics synthesizer receives the window attribute information sent by the second graphics synthesizer; wherein the first graphics synthesizer is a graphics synthesizer in the first subsystem, and the second graphics synthesizer is a second subsystem Graphic synthesizer
  • the first graphic synthesizer sets a corresponding window according to the window attribute information.
  • the first graphics synthesizer receives the window attribute information sent by the second graphics synthesizer, including:
  • the first graphics synthesizer receives the window attribute information sent by the second graphics synthesizer through the second layer object corresponding to the first layer object, where the second layer object corresponds to the first layer object, where The second layer object is a proxy of the third layer object in the second graphics synthesizer, and the first layer object is determined by the second graphics synthesizer according to the window to be set.
  • the first graphics synthesizer receives the window attribute information sent by the second graphics synthesizer by the second layer object corresponding to the first layer object, the first graphics synthesizer further includes:
  • the first graphics synthesizer creates a third layer object corresponding to the first layer object or the second layer object according to the first event.
  • the first event includes one or more of the following events:
  • the second graphics synthesizer creates a layer event for the application of the second subsystem.
  • the window attribute information is window attribute information corresponding to an application of the second subsystem.
  • the first subsystem is a Host subsystem
  • the second subsystem is a Guest subsystem.
  • Another window setting system includes: a first graphics synthesizer and a second graphics synthesizer, the first graphics synthesizer is a graphics synthesizer of the first subsystem, and the second graphics synthesis The device is a graphics synthesizer of the second subsystem;
  • a second graphics synthesizer for transmitting window attribute information to the first graphics synthesizer
  • the first graphic synthesizer is configured to set a corresponding window according to the window attribute information.
  • the second graphic synthesizer is specifically configured to:
  • the window attribute information of the to-be-set window is sent to the third layer object in the first graphics synthesizer by the second layer object corresponding to the first layer object; wherein the second layer object A proxy for the third layer object in the second graphics synthesizer.
  • the second graphics synthesizer is further configured to: create a first layer object and a second layer object according to the received first event;
  • the first graphics synthesizer is further configured to: create, according to the first event, a third layer object corresponding to the first layer object or the second layer object.
  • the first event includes one or more of the following events:
  • the second graphics synthesizer creates a layer event for the application of the second subsystem.
  • the window attribute information is window attribute information corresponding to an application of the second subsystem.
  • the first subsystem is a Host subsystem
  • the second subsystem is a Guest system.
  • the second graphics synthesizer sends the window attribute information to the first graphics synthesizer, and the first graphics synthesizer sets the corresponding window according to the window attribute information, thereby realizing the window display level. Compatibility between different subsystems.
  • FIG. 1 is a schematic diagram of an operating system framework applicable to an embodiment of the present application
  • FIG. 2 is a schematic diagram of a graphics composition process according to an embodiment of the present application.
  • FIG. 3 is a schematic flowchart of a window setting process according to an embodiment of the present application.
  • FIG. 4 is a schematic diagram of an Android graphic object and a YunOS graphic object in an embodiment of the present application
  • FIG. 5 is a schematic diagram of a graphics processing architecture provided by an embodiment of the present application.
  • FIG. 6 is a schematic diagram of window attribute transfer in the embodiment of the present application.
  • FIG. 7 is a schematic structural diagram of a graphic synthesizing system according to an embodiment of the present application.
  • FIG. 8 is a schematic structural diagram of a window update system according to an embodiment of the present application.
  • the embodiment of the present application provides a graphics rendering layer in the framework of the new mobile operating system. Convergence and unification enable new mobile operating systems to be better compatible with applications developed for traditional mobile operating systems, providing users with a seamless two-system user experience.
  • FIG. 1 is a schematic diagram of an operating system framework applicable to an embodiment of the present application. Taking YunOS as the first operating system and Android as the second operating system as an example, FIG. 1 shows a dual system compatible architecture within the YunOS framework.
  • the YunOS framework includes two subsystems: Host and Guest. Among them, YunOS is the Host subsystem, Android is the Guest subsystem, and the two subsystems are isolated by the container technology.
  • the Hardware Abstraction Layer (HAL) within the framework provides interfaces and driver services for graphical display and other aspects.
  • Glibc in the Host subsystem is the lowest API (Application Programming Interface) in Linux.
  • Bioric in the Guest subsystem is the Linux kernel library for Android.
  • Libhybris is a compatibility layer that enables Glibc-based operating systems to reuse existing Android driver services; in graphics processing, libhybris also implements the EGL platform.
  • EGL platform This is a backend-independent graphical platform that follows the EGL interface and multiple backend implementations.
  • the Gralloc module is located in the hardware abstraction layer and encapsulates all access operations to the framebuffer.
  • the InputManageerService (input management module) in the Guest subsystem is mainly used to monitor and manage input events.
  • Wayland Compositor (or Weston) is the graphics synthesizer of the Host subsystem, where Weston is the reference implementation of the Wayland Compositor.
  • the Wayland protocol can be used for communication between the graphics synthesizer of the Guest subsystem and the graphics synthesizer of the Host subsystem.
  • the Wayland protocol defines how to communicate with the kernel and how to communicate with the client; Wayland reuses the graphics, input and output technologies of all Linux kernels.
  • the Wayland protocol can be communicated between the graphic synthesizer of Andriod and the graphic synthesizer of YunOS, so that The graphics system in Android is overhead and bridged to the graphics system of YunOS, which realizes unified synthesis rendering of dual systems, thus providing better dual system compatibility and achieving a seamless user experience of dual systems.
  • FIG. 2 is a schematic diagram of a graphics composition process provided by an embodiment of the present application.
  • the process can be performed on a device employing a mobile operating system, which can be an electronic device such as a mobile terminal.
  • the first subsystem and the second subsystem refer to subsystems of two different operating system frameworks.
  • the first subsystem can be the Host subsystem and the second subsystem can be the Guest subsystem.
  • the first subsystem may be YunOS, and the second subsystem may refer to a conventional operating system such as Andriod.
  • the first subsystem graphics synthesizer is referred to as a first graphics synthesizer and the second subsystem system graphics synthesizer is referred to as a second synthesizer.
  • the application based on the first operating system is an application developed for the first operating system; the application based on the second operating system is an application developed for the second operating system.
  • the flow shown in Figure 2 depicts the process of performing graphics synthesis by the first subsystem synthesizer at the graphics synthesis level.
  • the operating system framework includes a first subsystem and a second subsystem, the first subsystem may be a Host subsystem, and the second subsystem may be a Guest subsystem. Taking the first subsystem or the Host subsystem as the YunOS, the second subsystem or the Guest subsystem as the Android, the flow can be implemented based on the framework shown in FIG. 1.
  • the graphics synthesis process provided by the embodiment of the present application may include the following steps:
  • Step 201 The second graphics synthesizer sends a graphics buffer object identifier to the first graphics synthesizer. among them.
  • the graphics buffer object here is a GraphicBuffer
  • the identifier of the graphics buffer object may be a handle of the GraphicBuffer.
  • a handle is an identifier, usually an integer value, that uniquely identifies an object or instance.
  • a handle to a graphics buffer object is used to uniquely identify the graphics buffer object.
  • the identifier of the graphics buffer object points to a data storage unit in the graphics buffer, and the data storage unit is configured to store graphics data, which is processed by an application of the second subsystem, such as application rendering of the second subsystem. of.
  • the second graphics synthesizer when acquiring the first graphics buffer object in the second graphics synthesizer, is not synthesized by the second graphics synthesizer as in the prior art, but is created and currently acquired.
  • a second graphics buffer object corresponding to the first graphics buffer object and capable of being recognized by the first graphics synthesizer, the second graphics buffer object being a third graphics buffer object in the first graphics synthesizer in the second graphics synthesizer Agent in.
  • the second graphics synthesizer transmits the identifier of the first graphics buffer object to the third graphics buffer object in the first graphics synthesizer through the second graphics buffer object.
  • the second graphics synthesizer sends the identifier of the first graphics buffer object to the first graphics synthesizer by using the second graphics buffer object, mapping the identifier of the currently acquired first graphics buffer object to the The second graphics buffers the identifier of the object and sends the identifier of the second graphics buffer object to the first graphics synthesizer to cause the first graphics synthesizer to perform the synthesizing operation.
  • the second graphics buffer object created by the second graphics synthesizer is a proxy of the third graphics buffer object in the first graphics synthesizer in the second graphics synthesizer, and is directed to the currently acquired by the second graphics synthesizer.
  • a graphic data storage unit that stores graphic data.
  • the second graphics synthesizer when the first graphics synthesizer fetches the first graphics buffer object, the second graphics synthesizer creates a second graphics buffer object corresponding to the first graphics buffer object, and the first graphics synthesizer creates a corresponding third Graphics buffer object.
  • the second figure buffer object is the third picture The proxy of the shape buffer object in the second graphics synthesizer.
  • the second graphics buffer object can be identified by the first graphics synthesizer.
  • Step 202 The first graphics synthesizer performs graphics synthesis according to the graphics data stored in the graphics data storage unit pointed to by the graphics buffer object identifier.
  • the second graphics synthesizer sends a scheme of the identifier of the second graphics buffer object to the first graphics synthesizer, in which the first graphics synthesizer receives the second graphics buffer sent by the second graphics synthesizer.
  • the graphic data storage unit may be used for graphic synthesis according to the graphic data storage unit for storing the graphic data pointed by the identifier of the second graphic buffer object.
  • the first graphics synthesizer may determine a z-order after receiving the identifier of the second graphics buffer object, and send the second graphics buffer object identifier and the determined synthesis sequence information to the hardware.
  • the compatibility layer, the hardware compatibility layer acquires corresponding graphic data according to the identifier, and processes according to the synthesis sequence, and displays through the display.
  • the application of the second subsystem as a producer may take out a graphics buffer object (such as a buffer) from a graphics buffer object queue (such as a buffer queue) corresponding to the application. Render and put the rendered graphics buffer object back into the queue.
  • the second graphics synthesizer as a consumer, can fetch the graphics buffer object from the queue according to the set period.
  • the identifier of the second graphics buffer object may be returned to the second graphics synthesizer, and the second graphics synthesis
  • the first graphics buffer object (or the first graphics buffer object pointed to by the second graphics buffer object identifier) corresponding to the second graphics buffer object is returned to the queue according to the identifier.
  • the second subsystem (Guest sub-system responsible for the graphics rendering of the application, in the aspect of graphics synthesis, the second graphics synthesizer and the first graphics synthesizer through the interaction of the graphics buffer object identification, so that the graphics synthesis operation by the first subsystem (Host subsystem)
  • the first graphics synthesizer is implemented to achieve multi-system compatibility at the graphics rendering synthesis level.
  • the first graphics synthesizer of the first subsystem receives the identifier of the graphics buffer object sent by the second graphics synthesizer of the second subsystem, and the identifier of the graphics buffer object points to the second The graphics data corresponding to the application of the subsystem, so the first graphics synthesizer can synthesize the graphics data pointed to by the identifier according to the identifier of the received graphics buffer object during the synthesis, thereby implementing the framework of the cloud operating system.
  • the compatibility of the application facing the second subsystem in the graphics composition layer is implemented, and for the application of the second subsystem, the user interface can be synthesized in the framework of the first subsystem.
  • a window update process provided by an embodiment of the present application is provided.
  • the second graphics synthesizer may acquire an event that the application A is started, based on the Event, the second graphics synthesizer creates a first layer object of the application A in the second subsystem (ie, the Guest subsystem) and a corresponding second layer object, the first graphics synthesizer is in the first graphics according to the event A third layer object corresponding to the first layer object or the second layer object is created in the synthesizer.
  • the second layer object is a proxy of the third layer object in the second graphics synthesizer, and the second layer object can be recognized by the first graphics synthesizer.
  • the second graphics synthesizer can obtain an event that creates a layer for application A, and can be based on the event for application A.
  • a second layer object is created in the second graphics synthesizer, and a corresponding second layer object is created, and the first graphics synthesizer can create a third layer object in the first graphics synthesizer according to the event, the second layer The object is the proxy of the third layer object in the second graphics synthesizer.
  • the second graphics synthesizer can delete the corresponding second layer object.
  • the window update process provided by the embodiment of the present application may include the following steps:
  • Step 301 The second graphics synthesizer sends the window attribute information to the first graphics synthesizer.
  • the window attribute information is window attribute information corresponding to the application of the second subsystem.
  • the second graphics synthesizer determines a window to be set, and a layer corresponding to the window, and obtains a corresponding first layer object according to the layer corresponding to the window, and passes the first layer
  • the second layer object corresponding to the object sends the window attribute information of the window to be set to the third layer object in the first graphics synthesizer.
  • Step 302 The first graphic synthesizer sets a corresponding window according to the window attribute information.
  • the first graphics synthesizer may receive the window attribute information according to the second layer object, and the second layer object corresponds to the third layer object in the first graphics synthesizer, so the first graphics synthesizer
  • the layer corresponding to the window attribute information may be determined, and then the corresponding window is determined, and the window is set according to the window attribute information.
  • the second graphics synthesizer sends window attribute information to the first graphics synthesizer, and the first graphics synthesizer sets the corresponding window according to the window attribute information, thereby It achieves compatibility between different subsystems at the window display level.
  • the application A is described as an example.
  • the application A is an Android-based application installed on a terminal of a cloud operating system using the YunOS framework shown in FIG. 1.
  • the Guest subsystem loads the Gralloc module at the hardware abstraction layer to obtain the Gralloc device and the fb device.
  • the application A applies for a graphics buffer, in which the buffer queue corresponding to the application can be stored, the buffer queue is a first-in first-out queue, and the graphics buffer is mapped to the address space of the application A so that the buffer can be written. Into the drawn graphic data.
  • the Guest Synthesizer creates a Layer and SurfaceFlingerConsumer for Application A.
  • SurfaceFlingerConsumer represents the drawing surface corresponding to the window, used to manage the buffer; the layer encapsulates the buffer handle, which is used to pass the window property.
  • the data structure of layer and SurfaceFlingerConsumer is shown in Figure 4. Wherein layer and SurfaceFlingerConsumer correspond to the first layer object of the foregoing embodiment.
  • Wl_shell_surface is the proxy for shell_surface in SurfaceFlinger in Wayland compositor
  • wl_surface is the proxy for surface in SurfaceFlinger in Wayland compositor.
  • Wl_shell_surface and wl_surface can be recognized by Wayland composer, Wayland composer can determine the corresponding Layer by wl_shell_surface, and determine the corresponding SurfaceFlingerConsumer by wl_surface.
  • Wayland composer can determine the corresponding Layer by wl_shell_surface, and determine the corresponding SurfaceFlingerConsumer by wl_surface.
  • the wl_shell_surface and the wl_surface correspond to the second layer object in the foregoing embodiment, and the shell_surface and the surface correspond to the third layer object in the foregoing embodiment.
  • SurfaceFlinger can create wl_shell_surface and wl_surface by calling the interface provided by YunOS composer.
  • application A acts as the producer of the buffer queue, takes the buffer from the application's buffer queue for rendering, and puts the rendered buffer back into the queue. Should The SurfaceFlingerConsumer corresponding to the program A is used as the consumer of the buffer queue, and the buffer is taken out from the queue according to the set period (VSync).
  • the length of the set period is generally 16.66 ms, which guarantees 60 frames per second).
  • the SurfaceFlingerConsumer corresponding to the application A takes a buffer from the buffer queue, it generates a corresponding wl_buffer according to it.
  • SurfaceFlingerConsumer creates wl_buffer by calling the interface provided by the YunOS composer.
  • Wl_buffer is the proxy for the wayland compositor buffer in SurfaceFlinger in Wayland compositor.
  • wl_buffer can be recognized by Wayland composer. Wayland composer can determine the corresponding Graphic buffer and wayland compositor buffer through wl_buffer.
  • the SurfaceFlingerConsumer corresponding to the application A maps the handle of the buffer to the handle of the wl_buffer created above (ie, wl_buffer handle), and sends the handle of the wl_buffer to the Wayland composer, more specifically, sends Give the wayland compositor buffer corresponding to wl_buffer in the Host subsystem synthesizer.
  • Wayland composer synthesizes based on the received wl_buffer handle.
  • the wl_buffer handle points to the buffer currently taken by the SurfaceFlingerConsumer in the buffer queue corresponding to the application A. Therefore, the Wayland composer performs the composition according to the wl_buffer handle, which is equivalent to synthesizing the buffer in the buffer queue of the application A corresponding to the wl_buffer handle.
  • the Wayland composer After the Wayland composer is finished, return the wl_buffer handle to the SurfaceFlingerConsumer. Based on the returned wl_buffer handle, the SurfaceFlingerConsumer puts the corresponding currently taken buffer back into the queue. At this point, the synthesis process is completed.
  • the fb device can render the graphics buffer to the frame buffer, thereby drawing the UI to the display. Displayed in the display.
  • Fig. 6 exemplarily shows a transfer diagram of the Graphic buffer and window attributes.
  • the SurfaceComposerClient in the WindowManageService sends the window property information to the Layer in the SurfaceFlinger, and the Layer sends the window property information to the shell_surface in Weston, and passes through the weston_surface to finally implement The window properties are reset.
  • the application's graphics renderer renders the buffer.
  • the surfaceFlingerConsumer in SurfaceFlinger takes the buffer from the buffer queue according to the set period, and sends the handle of the extracted buffer to Weston.
  • the Weston performs the graphics synthesis on the corresponding buffer according to the buffer handle.
  • the object in the Guest subsystem is associated with the object in the Host subsystem, that is, the buffer (or GraphicBuffer) in the Guest subsystem corresponds to the wl_buffer in the Host subsystem, and the Layer in the Guest subsystem corresponds to the Host.
  • the wl_shell_surface in the subsystem, and wl_buffer and wl_shell_surface can be recognized by Wayland composer, so there is a correspondence between objects in SurfaceFlinger and Wayland composer, that is, wl_buffer and wl_shell_surface in Wayland composer process It can be mapped to GraphicBuffer and Layer in the SurfaceFlinger process, enabling Wayland composer to be compatible with Android applications at the graphics processing level.
  • YunOS isolates the new system from Android as the host subsystem and the guest subsystem through the container technology, thereby reducing the dependency of the host subsystem on the Guest subsystem and ensuring the stripability of the Guest subsystem.
  • the graphics system in the Guest subsystem is overhead and bridged to the graphics system in the host subsystem, which realizes the unified synthesis rendering of the dual system and realizes the seamless user experience of the dual system.
  • the embodiment of the present application provides a graphic synthesis system.
  • a graphics synthesis system according to an embodiment of the present disclosure, which can implement the graphics synthesis method described in the foregoing embodiment.
  • the system can include a first graphics synthesizer 701 and a second graphics synthesizer 702, the first graphics synthesizer being a graphics synthesizer of the first subsystem, and the second graphics synthesizer being a graphics of the second subsystem Synthesizer
  • the second graphics synthesizer 702 is configured to send a graphics buffer object identifier to the first graphics synthesizer
  • the first graphics synthesizer 701 is configured to perform graphics synthesis according to the graphics data stored in the graphics data storage unit pointed to by the graphics buffer object identifier.
  • the second graphics synthesizer 702 is specifically configured to: take out a first graphics buffer object from a graphics buffer object queue, and create a second graphics buffer object corresponding to the first graphics buffer object, where The second graphics buffer object is a proxy of the third graphics buffer object in the first graphics synthesizer 701 in the second graphics synthesizer; and the identifier of the first graphics buffer object is sent by the second graphics buffer object A third graphics buffer object in the first graphics synthesizer 701.
  • the second graphics synthesizer 702 is specifically configured to:
  • the identifier of the second graphics buffer object is sent to the first subsystem graphics synthesizer 701.
  • the first graphics synthesizer 701 is further configured to: create a third graphics buffer object corresponding to the first graphics buffer object.
  • the first graphics synthesizer 701 is further configured to: after completing the synthesizing, return an identifier of the second graphics buffer object to the second graphics synthesizer;
  • the second graphics synthesizer 702 is further configured to: return the first graphics buffer object corresponding to the second graphics buffer object to the graphics buffer object queue according to the returned identifier of the second graphics buffer object.
  • the graphics data stored in the graphics data storage unit is processed by an application of the second subsystem.
  • the first subsystem is a Host subsystem
  • the second subsystem is a Guest subsystem.
  • the embodiment of the present application provides a window setting system.
  • a window setting system according to an embodiment of the present disclosure is provided, and the system can implement the window setting method provided by the foregoing embodiment.
  • the system can include a first graphics synthesizer 801 and a second graphics synthesizer 802, the first graphics synthesizer being a graphics synthesizer of the first subsystem, and the second graphics synthesizer being a graphics of the second subsystem Synthesizer
  • a second graphics synthesizer 802 configured to send window attribute information to the first graphics synthesizer
  • the first graphic synthesizer 801 is configured to set a corresponding window according to the window attribute information.
  • the second graphics synthesizer 802 is specifically configured to:
  • the second graphics synthesizer 802 is further configured to: create a first event according to the received event Constructing a first layer object and a second layer object;
  • the first graphics synthesizer 801 is further configured to: create a third layer object corresponding to the first layer object or the second layer object according to the first event.
  • the first event includes one or more of the following events:
  • the second graphics synthesizer creates a layer event for the application of the second subsystem.
  • the window attribute information is window attribute information corresponding to an application of the second subsystem.
  • the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
  • the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
  • the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Digital Computer Display Output (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

本申请公开了一种图形合成方法、窗口设置及系统。一方面,第一子系统的第一图形合成器接收第二子系统的第二图形合成器发送的图形缓冲对象标识,由于该图形缓冲对象标识指向用于存储图形数据的图形数据存储单元,因此第一图形合成器在进行图形合成时,能够根据接收到的图形缓冲对象标识,对所述图形缓冲对象标识所指的图形数据进行合成,从而实现了在图形合成层面上不同子系统间的兼容。另一方面,第二图形合成器向第一图形合成器发送窗口属性信息,第一图形合成器根据所述窗口属性信息,对相应窗口进行设置,从而实现了在窗口显示层面上不同子系统间的兼容。

Description

一种图形合成方法、窗口设置方法及系统 技术领域
本申请涉及通信技术领域,尤其涉及一种图形合成方法、窗口设置及系统。
背景技术
云操作系统又称云OS,是以云计算、云存储技术作为支撑的操作系统。云操作系统因其能够整合海量的计算能力并能够提供强大的资源调配能力,未来将得到更广泛的应用。
云操作系统既可以用于传统的桌面系统设备(如PC)又适用于移动设备。基于云操作系统的应用或服务,以及基于传统操作系统的应用或服务,将会在云操作系统框架内运行,这就要求云操作系统框架能够将基于不同操作系统的应用或服务进行融合。
目前,针对在一种操作系统框架内,基于不同操作系统的应用或服务如何在图形合成层面融合,目前尚未有相应的解决方案。
申请内容
本申请实施例提供了一种图形合成方法及系统,用以在图形处理方面实现不同操作系统间的兼容。
本申请实施例提供的一种图形合成方法,包括:
第二图形合成器向第一图形合成器发送图形缓冲对象标识;其中,所述第一图形合成器为第一子系统中的图形合成器,所述第二图形合成器为第二子系统中的图形合成器;
第一图形合成器根据所述图形缓冲对象标识所指向的图形数据存储单元中存储的图形数据进行图形合成。
优选地,第二图形合成器向第一图形合成器发送图形缓冲对象标识,包括:
第二图形合成器从图形缓冲对象队列中取出第一图形缓冲对象,创建与所述第一图形缓冲对象对应的第二图形缓冲对象;其中,所述第二图形缓冲对象为第一图形合成器中的第三图形缓冲对象在第二图形合成器中的代理;
第二图形合成器通过所述第二图形缓冲对象将所述第一图形缓冲对象的标识发送给第一图形合成器中的第三图形缓冲对象。
其中,第二图形合成器通过所述第二图形缓冲对象将所述第一图形缓冲对象的标识发送给第一图形合成器,包括:
第二图形合成器将所述第一图形缓冲对象的标识映射为所述第二图形缓冲对象的标识;
第二图形合成器将所述第二图形缓冲对象的标识发送给第一子系统图形合成器。
优选地,还包括:第一图形合成器创建与所述第一图形缓冲对象对应的第三图形缓冲对象。
优选地,还包括:
第一图形合成器完成所述合成后,向第二图形合成器返回所述第二图形缓冲对象的标识;
第二图形合成器根据返回的所述第二图形缓冲对象的标识,将所述第二图形缓冲对象对应的第一图形缓冲对象放回所述图形缓冲对象队列。
优选地,图形数据存储单元中存储的图形数据是第二子系统的应用程序处理得到的。
优选地,所述第一子系统为Host子系统,所述第二子系统为Guest子系统。
本申请实施例提供的另一种图形合成方法,包括:
第一图形合成器接收第二图形合成器发送的图形缓冲对象标识;其中,所述第一图形合成器为第一子系统中的图形合成器,所述第二图形合成器为第二子系统中的图形合成器;
第一图形合成器根据所述图形缓冲对象标识所指向的图形数据存储单元中存储的图形数据进行图形合成。
优选地,第一图形合成器接收第二图形合成器发送的图形缓冲对象标识,包括:
所述第一图形合成器通过第二图形缓冲对象接收第二图形合成器发送的第一图形缓冲对象的标识;其中,所述第二图形缓冲对象是第二图形合成器从图形缓冲对象队列中取出第一图形缓冲对象时创建的,所述第二图形缓冲对象与所述第一图形缓冲对象对应,所述第二图形缓冲对象为第一图形合成器中的第三图形缓冲对象在第二图形合成器中的代理。
进一步地,还包括:第一图形合成器创建与所述第一图形缓冲对象对应的第三图形缓冲对象。
进一步地,还包括:第一图形合成器完成所述合成后,向第二图形合成器返回所述第二图形缓冲对象的标识,以使第二图形合成器根据返回的所述第二图形缓冲对象的标识,将所述第二图形缓冲对象对应的第一图形缓冲对象放回所述图形缓冲对象队列。
优选地,图形数据存储单元中存储的图形数据是第二子系统的应用程序处理得到的。
优选地,所述第一子系统为Host子系统,所述第二子系统为Guest子系统。
本申请实施例提供的一种图形合成系统,包括:第一图形合成器和第二图形合成器,所述第一图形合成器为第一子系统的图形合成器,所述第 二图形合成器为第二子系统的图形合成器;
所述第二图形合成器,用于向第一图形合成器发送图形缓冲对象标识;
所述第一图形合成器,用于根据所述图形缓冲对象标识所指向的图形数据存储单元中存储的图形数据进行图形合成。
优选地,所述第二图形合成器具体用于:从图形缓冲对象队列中取出第一图形缓冲对象,创建与所述第一图形缓冲对象对应的第二图形缓冲对象,其中,所述第二图形缓冲对象为第一图形合成器中的第三图形缓冲对象在第二图形合成器中的代理;以及
通过所述第二图形缓冲对象将所述第一图形缓冲对象的标识发送给第一图形合成器中的第三图形缓冲对象。
其中,第二图形合成器具体用于:
将所述第一图形缓冲对象的标识映射为所述第二图形缓冲对象的标识;
将所述第二图形缓冲对象的标识发送给第一子系统图形合成器。
优选地,第一图形合成器还用用于:创建与所述第一图形缓冲对象对应的第三图形缓冲对象。
优选地,第一图形合成器还用于:完成所述合成后,向第二图形合成器返回所述第二图形缓冲对象的标识;
第二图形合成器还用于:根据返回的所述第二图形缓冲对象的标识,将所述第二图形缓冲对象对应的第一图形缓冲对象放回所述图形缓冲对象队列。
优选地,图形数据存储单元中存储的图形数据是第二子系统的应用程序处理得到的。
优选地,所述第一子系统为Host子系统,所述第二子系统为Guest子 系统。
本申请的上述实施例中,第一子系统的第一图形合成器接收第二子系统的第二图形合成器发送的图形缓冲对象标识,由于该图形缓冲对象标识指向用于存储图形数据的图形数据存储单元,因此第一图形合成器在进行图形合成时,能够根据接收到的图形缓冲对象标识,对所述图形缓冲对象标识所指的图形数据进行合成,从而实现了在图形合成层面上不同子系统间的兼容。
本申请实施例还提供了一种窗口设置方法及系统,用以在图形处理方面实现不同操作系统间的兼容。
本申请实施例提供的一种窗口设置方法,包括:
第二图形合成器向第一图形合成器发送窗口属性信息;其中,所述第一图形合成器为第一子系统中的图形合成器,所述第二图形合成器为第二子系统中的图形合成器;
第一图形合成器根据所述窗口属性信息,设置相应窗口。
优选地,第二图形合成器向第一图形合成器发送窗口属性信息,包括:
第二图形合成器根据待设置窗口确定对应的第一图层对象;
第二图形合成器通过与所述第一图层对象对应的第二图层对象将所述待设置窗口的窗口属性信息发送给第一图形合成器中第三图层对象;其中,所述第二图层对象为所述第三图层对象在第二图形合成器中的代理。
其中,第二图形合成器通过与所述第一图层对象对应的第二图层对象将所述待设置窗口的窗口属性信息发送给第一图形合成器中第三图层对象之前,还包括:
第二图形合成器根据接收到的第一事件,创建第一图层对象和第二图层对象;
第一图形合成器根据所述第一事件,创建与所述第一图层对象或所述 第二图层对象对应的第三图层对象。
其中,所述第一事件包括以下事件中的一种或多种:
第二子系统的应用程序被启动的事件;
第二图形合成器为第二子系统的应用程序创建图层的事件。
优选地,所述窗口属性信息为第二子系统的应用程序所对应的窗口属性信息。
优选地,所述第一子系统为Host子系统,所述第二子系统为Guest子系统。
本申请实施例提供的另一种窗口设置方法,包括:
第一图形合成器接收第二图形合成器向发送的窗口属性信息;其中,所述第一图形合成器为第一子系统中的图形合成器,所述第二图形合成器为第二子系统中的图形合成器;
第一图形合成器根据所述窗口属性信息,设置相应窗口。
优选地,第一图形合成器接收第二图形合成器向发送的窗口属性信息,包括:
第一图形合成器通过与第一图层对象对应的第二图层对象接收第二图形合成器向发送的窗口属性信息,其中,所述第二图层对象与第一图层对象对应,所述第二图层对象为所述第三图层对象在第二图形合成器中的代理,所述第一图层对象是第二图形合成器根据待设置窗口确定的。
进一步地,第一图形合成器通过与第一图层对象对应的第二图层对象接收第二图形合成器向发送的窗口属性信息之前,还包括:
第一图形合成器根据第一事件,创建与所述第一图层对象或所述第二图层对象对应的第三图层对象。
其中,所述第一事件包括以下事件中的一种或多种:
第二子系统的应用程序被启动的事件;
第二图形合成器为第二子系统的应用程序创建图层的事件。
优选地,所述窗口属性信息为第二子系统的应用程序所对应的窗口属性信息。
优选地,所述第一子系统为Host子系统,所述第二子系统为Guest子系统。
本申请实施例提供的另一种窗口设置系统,包括:第一图形合成器和第二图形合成器,所述第一图形合成器为第一子系统的图形合成器,所述第二图形合成器为第二子系统的图形合成器;
第二图形合成器,用于向第一图形合成器发送窗口属性信息;
第一图形合成器,用于根据所述窗口属性信息,设置相应窗口。
优选地,所述第二图形合成器具体用于:
根据待设置窗口确定对应的第一图层对象;
器通过与所述第一图层对象对应的第二图层对象将所述待设置窗口的窗口属性信息发送给第一图形合成器中第三图层对象;其中,所述第二图层对象为所述第三图层对象在第二图形合成器中的代理。
进一步地,第二图形合成器还用于:根据接收到的第一事件,创建第一图层对象和第二图层对象;
第一图形合成器还用于:根据所述第一事件,创建与所述第一图层对象或所述第二图层对象对应的第三图层对象。
其中,所述第一事件包括以下事件中的一种或多种:
第二子系统的应用程序被启动的事件;
第二图形合成器为第二子系统的应用程序创建图层的事件。
优选地,所述窗口属性信息为第二子系统的应用程序所对应的窗口属性信息。
优选地,所述第一子系统为Host子系统,所述第二子系统为Guest子 系统。
本申请的上述实施例中,第二图形合成器向第一图形合成器发送窗口属性信息,第一图形合成器根据所述窗口属性信息,对相应窗口进行设置,从而实现了在窗口显示层面上不同子系统间的兼容。
附图说明
图1为本申请实施例所适用的操作系统框架示意图;
图2为本申请实施例提供的图形合成流程示意图;
图3为本申请实施例提供的窗口设置流程示意图;
图4为本申请实施例中的Android图形对象与YunOS图形对象示意图;
图5为本申请实施例提供的图形处理架构示意图;
图6为本申请实施例中的窗口属性传递示意图;
图7为本申请实施例提供的图形合成系统结构示意图;
图8为本申请实施例提供的窗口更新系统结构示意图。
具体实施方式
为了在新的移动操作系统框架内更好地兼容传统的移动操作系统,为用户提供更加自然平滑的体验过渡,本申请实施例提供了在新的移动操作系统框架内,在图形渲染层面上的融合和统一,能够使新的移动操作系统更好地兼容面向传统移动操作系统开发的应用程序,为用户提供无缝的双系统用户体验。
下面结合附图对本申请实施例进行详细描述。
参见图1,为本申请实施例适用的操作系统框架示意图。以YunOS作为第一操作系统,Android为第二操作系统为例,图1示出了在YunOS框架内的双系统兼容架构。
如图1所示,YunOS框架中包括Host与Guest两个子系统,其中,YunOS即为Host子系统,Android即为Guest子系统,两个子系统通过container(容器)技术隔离。该框架内的硬件抽象层(Hardware Abstraction Layer,HAL)提供了图形显示等方面的接口和驱动服务。
Host子系统中的Glibc,即C运行库,是linux中最底层的API(Application Programming Interface,应用程序编程接口)。Guest子系统中的Bioric,是Android的linux内核库。
Libhybris为兼容层,能够使基于Glibc的操作系统重用现有的Android的驱动(driver)服务;在图形(Graphics)处理方面,libhybris还实现了EGL platform。EGL platform这是一套后台(backend)无关的遵循EGL接口的图形平台,以及多个后台(backend)实现。
Gralloc模块位于硬件抽象层中,封装了对帧缓冲区的所有访问操作。
Guest子系统中的InputManageerService(输入管理模块)主要用于对输入事件进行监控和管理。
SurfaceFlinger是Guest子系统的图形合成器;Wayland Compositor(或Weston)是Host子系统的图形合成器,其中,Weston是Wayland Compositor的参考实现。
本申请实施例中,Guest子系统的图形合成器与Host子系统的图形合成器之间可采用Wayland协议进行通信。Wayland协议定义了如何与内核通信,如何与客户端(client)通信;Wayland复用了所有Linux内核的图形、输入输出技术。
上述架构中,由于YunOS与Android分别作为Host子系统与Guest子系统通过container技术隔离,从而减小了YunOS对Android的依赖,并保证Android的可剥离性。另一方面,本申请实施例中Andriod的图形合成器与YunOS的图形合成器之间可采用Wayland协议进行通信,使得 Android中的图形系统架空,并桥接到YunOS的图形系统,实现了双系统的统一合成渲染,从而提供了较好地双系统兼容性,又实现了双系统的无缝用户体验。
需要说明的是,上述系统架构仅以YunOS和Andriod为例进行说明,对于其他类型的操作系统,也可基于上述原理实现双系统在图形合成层面的兼容以及有效融合。
下面结合图2,对本申请实施例提供的图形合成流程进行详细描述。
参见图2,为本申请实施例提供的图形合成流程示意图。该流程可在采用移动操作系统的设备上执行,该设备可以是移动终端等电子设备。
在描述图2所示的流程之前,首先对该流程中所使用的一些术语进行说明。
基于上述图1所示的架构,第一子系统和第二子系统是指两种不同的操作系统框架的子系统。第一子系统可以是Host子系统,第二子系统可以是Guest子系统。具体地,第一子系统可以是YunOS,第二子系统可以是指传统操作系统,比如Andriod。第一子系统图形合成器称为第一图形合成器,第二子系统系统图形合成器称为第二合成器。
基于第一操作系统的应用程序,是面向第一操作系统开发的应用程序;基于第二操作系统的应用程序,是面向第二操作系统开发的应用程序。
图2所示的流程描述了在图形合成层面由第一子系统合成器执行图形合成的过程。其中,该操作系统框架内包含第一子系统和第二子系统,第一子系统可以是Host子系统,第二子系统可以是Guest子系统。以第一子系统或Host子系统为YunOS,第二子系统或Guest子系统为Android作为例子,该流程可基于图1所示的框架实现。
如图2所示,本申请实施例提供的图形合成流程可包括如下步骤:
步骤201:第二图形合成器向第一图形合成器发送图形缓冲对象标识; 其中。
其中,基于图1所示的架构,这里的图形缓冲对象为GraphicBuffer,图形缓冲对象的标识可以是GraphicBuffer的句柄(handle)。句柄是一个标识符,通常为一个整数值,用来唯一标识一个对象或实例等。一个图形缓冲对象的句柄用来唯一标识该图形缓冲对象。
图形缓冲对象的标识指向图形缓冲区中的数据存储单元,该数据存储单元用于存储图形数据,该图形数据是第二子系统的应用程序处理得到的,比如是第二子系统的应用程序渲染的。
在一些实施例中,第二图形合成器在获取到第二图形合成器中的第一图形缓冲对象时,不是像现有技术一样由该第二图形合成器进行合成,而是创建与当前获取的第一图形缓冲对象对应的且能够被第一图形合成器识别的第二图形缓冲对象,所述第二图形缓冲对象为第一图形合成器中的第三图形缓冲对象在第二图形合成器中的代理。第二图形合成器通过第二图形缓冲对象将所述第一图形缓冲对象的标识发送给第一图形合成器中的第三图形缓冲对象。
更具体地,第二图形合成器通过所述第二图形缓冲对象将所述第一图形缓冲对象的标识发送给第一图形合成器时,将当前获取的第一图形缓冲对象的标识映射为该第二图形缓冲对象的标识,并将该第二图形缓冲对象的标识发送给第一图形合成器,以使第一图形合成器执行合成操作。其中,第二图形合成器创建的第二图形缓冲对象是第一图形合成器中的第三图形缓冲对象在第二图形合成器中的代理,其指向该第二图形合成器当前获取的用于存储图形数据的图形数据存储单元。
在一些实施例中,当第一图形合成器取出第一图形缓冲对象时,第二图形合成器创建与第一图形缓冲对象对应的第二图形缓冲对象,第一图形合成器创建对应的第三图形缓冲对象。其中,第二图形缓冲对象时第三图 形缓冲对象在第二图形合成器中的代理。
需要说明的是,上述流程中使用的“第一”、“第二”和“第三”并不特征某个或某些对象,只是为了便于理解而进行区分。,
其中,第二图形缓冲对象可以被第一图形合成器识别。
步骤202:第一图形合成器根据所述图形缓冲对象标识所指向的图形数据存储单元中存储的图形数据进行图形合成。
基于上述步骤201中,第二图形合成器向第一图形合成器发送第二图形缓冲对象的标识的方案,该步骤中,第一图形合成器接收到第二图形合成器发送的第二图形缓冲对象的标识后,可根据该第二图形缓冲对象的标识所指向的用于存储图形数据的图形数据存储单元,使用对图形数据存储单元进行图形合成。
具体实施时,第一图形合成器可在接收到第二图形缓冲对象的标识后,确定合成顺序(z-order),并将该第二图形缓冲对象标识以及确定出的合成顺序信息发送给硬件兼容层,硬件兼容层根据该标识获取对应的图形数据,并按照合成顺序进行处理,并通过显示器进行显示。
根据以上流程,本申请实施例在具体实施时,第二子系统的应用程序作为生产者,可从该应用程序对应的图形缓冲对象队列(如buffer队列)中取出图形缓冲对象(如buffer)进行渲染,并将渲染后的图形缓冲对象放回该队列。在上述流程的步骤201中,第二图形合成器作为消费者,可按照设定周期,从该队列中取出图形缓冲对象。在上述流程的步骤202之后,即第一图形合成器根据第二图形缓冲对象标识完成所述合成后,进一步地,可向第二图形合成器返回第二图形缓冲对象的标识,第二图形合成器根据该标识,将与该第二图形缓冲对象对应的第一图形缓冲对象(或者说第二图形缓冲对象标识所指向的第一图形缓冲对象)放回上述队列。
可以看出,当运行第二子系统应用程序时,第二子系统(Guest子系 统)负责该应用程序的图形渲染,在图形合成方面,第二图形合成器与第一图形合成器之间通过交互图形缓冲对象的标识,使图形合成操作由第一子系统(Host子系统)的第一图形合成器执行,实现了在图形渲染合成层面上的多系统兼容。
综上所述,本申请实施例中,第一子系统的第一图形合成器接收第二子系统的第二图形合成器发送的图形缓冲对象的标识,由于该图形缓冲对象的标识指向第二子系统的应用程序所对应的图形数据,因此第一图形合成器在进行合成时,能够根据接收到的图形缓冲对象的标识,对该标识所指的图形数据进行合成,从而在云操作系统框架内实现了在图形合成层面对第二子系统的应用程序的兼容,对于第二子系统的应用程序,可以使得其用户界面在第一子系统框架内进行合成处理。
参见图3,为本申请实施例提供的窗口更新流程。
本申请实施例中,当第二子系统的应用程序(以下为描述方便将该应用程序称为应用程序A)被启动时,第二图形合成器可获取应用程序A被启动的事件,基于该事件,第二图形合成器创建应用程序A在第二子系统(即Guest子系统)中的第一图层对象以及对应的第二图层对象,第一图形合成器根据该事件在第一图形合成器中创建与第一图层对象或第二图层对象对应的第三图层对象。其中,第二图层对象是第三图层对象在第二图形合成器中的代理,第二图层对象能够被第一图形合成器识别。
在另外一些场景下,比如,在需要为应用程序A创建图层的情况下,第二图形合成器可获取到为应用程序A创建图层的事件,并可基于该事件为应用程序A在第二图形合成器中创建第一图层对象,并创建对应的第二图层对象,第一图形合成器可根据该事件在第一图形合成器中创建第三图层对象,该第二图层对象是第三图层对象在第二图形合成器中的代理。
进一步地,当应用程序A被关闭或者应用程序A的第一图层对象被删 除时,第二图形合成器可删除相应的第二图层对象。
如图3所示,本申请实施例提供的窗口更新流程可包括如下步骤:
步骤301:第二图形合成器向第一图形合成器发送窗口属性信息。
其中,该窗口属性信息为第二子系统的应用程序所对应的窗口属性信息。
该步骤中,第二图形合成器确定待设置的窗口,以及该窗口对应的图层,并可根据该窗口所对应的图层,获取对应的第一图层对象,并通过与第一图层对象对应的第二图层对象将所述待设置窗口的窗口属性信息发送给第一图形合成器中第三图层对象。
步骤302:第一图形合成器根据该窗口属性信息,设置相应窗口。
在步骤302中,第一图形合成器可根据通过第二图层对象接收窗口属性信息,由于第二图层对象与第一图形合成器中的第三图层对象对应,因此第一图形合成器可确定该窗口属性信息所对应的图层,进而确定出对应的窗口,并根据该窗口属性信息对该窗口进行设置。
通过以上描述可以看出,本申请的上述实施例中,第二图形合成器向第一图形合成器发送窗口属性信息,第一图形合成器根据所述窗口属性信息,对相应窗口进行设置,从而实现了在窗口显示层面上不同子系统间的兼容。
为了更清楚地理解本申请上述实施例,下面以在YunOS框架内,针对基于Android的应用程序,描述在图形处理层面实现兼容的方案。
以下实施例所描述的方案基于图1所示的YunOS框架实现,图形合成流程以及窗口设置流程可分别按照图2和图3所示的流程执行。
下面以应用程序A为例进行描述,应用程序A为基于Android的应用程序,该应用程序安装在采用图1所示的YunOS框架的云操作系统的终端上。
当应用程序A启动时,Guest子系统在硬件抽象层加载Gralloc模块,获得Gralloc设备、fb设备。应用程序A申请图形缓冲区,该图形缓冲区区中可存储该应用程序对应的buffer队列,该buffer队列为先入先出队列,该图形缓冲区被映射到该应用程序A的地址空间,以便可以写入绘制的图形数据。
如图4所示,Guest子系统(Android)的图形合成器(SurfaceFlinger)为应用程序A创建Layer和SurfaceFlingerConsumer。其中,SurfaceFlingerConsumer代表窗口对应的绘制表面(surface),用于管理buffer;layer中封装了buffer handle,用于传递窗口属性。layer与SurfaceFlingerConsumer的数据结构如图4所示。其中,layer和SurfaceFlingerConsumer对应于前述实施例的第一图层对象。
SurfaceFlinger根据该Layer和SurfaceFlingerConsumer创建对应的wl_shell_surface和wl_surface,YunOS图形合成器Wayland composer中创建对应的shell_surface和surface。wl_shell_surface是Wayland compositor中shell_surface在SurfaceFlinger中的代理(proxy),wl_surface是Wayland compositor中的surface在SurfaceFlinger中的代理(proxy)。。
wl_shell_surface以及wl_surface可被Wayland composer识别,Wayland composer可通过wl_shell_surface确定对应的Layer,通过wl_surface确定对应的SurfaceFlingerConsumer。其中,wl_shell_surface和wl_surface对应于前述实施例中的第二图层对象,shell_surface和surface对应于前述实施例中的第三图层对象。
其中,SurfaceFlinger可通过调用YunOS图形合成器(Wayland composer)提供的接口创建wl_shell_surface和wl_surface。
如图5所示,应用程序A作为buffer队列的生产者,从该应用程序的buffer队列中取出buffer进行渲染,并将渲染后的buffer放回该队列。应 用程序A对应的SurfaceFlingerConsumer作为buffer队列的消费者,按照设定周期(VSync)从队列中取出buffer。所述设定周期的长度一般是16.66ms,这样保证一秒有60帧)。
当应用程序A对应的SurfaceFlingerConsumer从buffer队列中取出一个buffer后,会根据它来生成对应的wl_buffer。SurfaceFlingerConsumer可通过调用YunOS图形合成器(Wayland composer)提供的接口创建wl_buffer。wl_buffer是Wayland compositor中的wayland compositor buffer在SurfaceFlinger中的代理(proxy),wl_buffer可被Wayland composer识别,Wayland composer可通过wl_buffer确定对应的Graphic buffer以及wayland compositor buffer。
对于当前取出的buffer,应用程序A对应的SurfaceFlingerConsumer将该buffer的handle(句柄)映射为上述创建的wl_buffer的handle(即wl_buffer handle),并将wl_buffer的handle发送给Wayland composer,更具体地,是发送给Host子系统合成器中与wl_buffer对应的wayland compositor buffer。
Wayland composer根据接收到的wl_buffer handle进行合成。其中,由于wl_buffer handle指向应用程序A对应的buffer队列中被SurfaceFlingerConsumer当前取出的buffer,因此Wayland composer根据wl_buffer handle进行合成,相当于对该wl_buffer handle对应的应用程序A的buffer队列中的buffer进行合成。
Wayland composer合成完成后,将该wl_buffer handle返回给SurfaceFlingerConsumer。SurfaceFlingerConsumer根据该返回的wl_buffer handle,将对应的当前取出的buffer放回队列。至此,本次合成处理过程完成。
此后,fb设备可将图形缓冲区渲染到帧缓冲区,从而将UI绘制到显 示屏中进行显示。
应用程序A需要改变其窗口属性时,比如改变窗口位置,改变窗口透明度等,应用程序A通过SurfaceComposerClient(Android图形合成器客户端)通知SurfaceFlinger中的Layer。Layer中取出对应的wl_shell_surface,由于wl_shell_surface是Wayland composer中shell_surface的proxy,因此可以通过wl_shell_surface来指示Wayland composer需要改哪个窗口的属性。SurfaceFlinger中的Layer通过wl_shell_surface将窗口属性发给wayland composer。wayland composer根据接收到的窗口属性更新相应窗口的属性。其中,shell_surface中有指向surface的指针,因此第二合成器通过wl_shell_surface可指示Wayland composer更改哪个窗口及传递窗口属性。
图6示例性地示出了Graphic buffer和窗口属性的传递示意图。如图所示,对于窗口属性传递过程,WindowManageService(窗口管理模块)中的SurfaceComposerClient将窗口属性信息发送给SurfaceFlinger中的Layer,由Layer将窗口属性信息发送给Weston中的shell_surface,并经过weston_surface,最终实现窗口属性重新设置。
对于buffer handle传递过程:应用程序的图形渲染器对buffer进行渲染。SurfaceFlinger中的surfaceFlingerConsumer按照设定周期从buffer队列中取buffer,并将取出的buffer的handle发送给Weston,由Weston根据该buffer handle对相应buffer进行图形合成。
上述流程中,Guest子系统中的对象与Host子系统中的对象建立起对应关系,即Guest子系统中的buffer(或称GraphicBuffer)对应Host子系统中的wl_buffer,Guest子系统中的Layer对应Host子系统中的wl_shell_surface,并且wl_buffer和wl_shell_surface均能够被Wayland composer识别,这样,SurfaceFlinger和Wayland composer中对象间存在对应关系,即,Wayland composer进程中的wl_buffer和wl_shell_surface 可被映射为SurfaceFlinger进程中的GraphicBuffer和Layer,从而使得Wayland composer能够在图形处理层面实现对Android应用程序的兼容。
综上所述,YunOS将新系统与Android分别作为host子系统与guest子系统通过container技术隔离,从而减小host子系统对Guest子系统的依赖,并保证Guest子系统的可剥离性。同时又将Guest子系统中的图形系统架空,并桥接到host子系统中的图形系统,实现了双系统的统一合成渲染,实现了双系统的无缝用户体验。
基于相同的技术构思,本申请实施例提供了一种图形合成系统。
参见图7,为本申请实施例提供的图形合成系统,该系统可实现前述实施例描述的图形合成方法。该系统可包括:第一图形合成器701和第二图形合成器702,所述第一图形合成器为第一子系统的图形合成器,所述第二图形合成器为第二子系统的图形合成器;
所述第二图形合成器702,用于向第一图形合成器发送图形缓冲对象标识;
所述第一图形合成器701,用于根据所述图形缓冲对象标识所指向的图形数据存储单元中存储的图形数据进行图形合成。
优选地,所述第二图形合成器702具体用于:从图形缓冲对象队列中取出第一图形缓冲对象,创建与所述第一图形缓冲对象对应的第二图形缓冲对象,其中,所述第二图形缓冲对象为第一图形合成器701中的第三图形缓冲对象在第二图形合成器中的代理;以及,通过所述第二图形缓冲对象将所述第一图形缓冲对象的标识发送给第一图形合成器701中的第三图形缓冲对象。
其中,第二图形合成器702具体用于:
将所述第一图形缓冲对象的标识映射为所述第二图形缓冲对象的标识;
将所述第二图形缓冲对象的标识发送给第一子系统图形合成器701。
优选地,第一图形合成器701还用用于:创建与所述第一图形缓冲对象对应的第三图形缓冲对象。
优选地,第一图形合成器701还用于:完成所述合成后,向第二图形合成器返回所述第二图形缓冲对象的标识;
第二图形合成器702还用于:根据返回的所述第二图形缓冲对象的标识,将所述第二图形缓冲对象对应的第一图形缓冲对象放回所述图形缓冲对象队列。
优选地,图形数据存储单元中存储的图形数据是第二子系统的应用程序处理得到的。
优选地,所述第一子系统为Host子系统,所述第二子系统为Guest子系统。
基于相同的技术构思,本申请实施例提供了一种窗口设置系统。
参见图8,为本申请实施例提供的窗口设置系统,该系统可实现前述实施例提供的窗口设置方法。该系统可包括:第一图形合成器801和第二图形合成器802,所述第一图形合成器为第一子系统的图形合成器,所述第二图形合成器为第二子系统的图形合成器;
第二图形合成器802,用于向第一图形合成器发送窗口属性信息;
第一图形合成器801,用于根据所述窗口属性信息,设置相应窗口。
优选地,所述第二图形合成器802具体用于:
根据待设置窗口确定对应的第一图层对象;
通过与所述第一图层对象对应的第二图层对象将所述待设置窗口的窗口属性信息发送给第一图形合成器中第三图层对象;其中,所述第二图层对象为所述第三图层对象在第二图形合成器中的代理。
进一步地,第二图形合成器802还用于:根据接收到的第一事件,创 建第一图层对象和第二图层对象;
第一图形合成器801还用于:根据所述第一事件,创建与所述第一图层对象或所述第二图层对象对应的第三图层对象。
其中,所述第一事件包括以下事件中的一种或多种:
第二子系统的应用程序被启动的事件;
第二图形合成器为第二子系统的应用程序创建图层的事件。
优选地,所述窗口属性信息为第二子系统的应用程序所对应的窗口属性信息。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (38)

  1. 一种图形合成方法,其特征在于,包括:
    第二图形合成器向第一图形合成器发送图形缓冲对象标识;其中,所述第一图形合成器为第一子系统中的图形合成器,所述第二图形合成器为第二子系统中的图形合成器;
    第一图形合成器根据所述图形缓冲对象标识所指向的图形数据存储单元中存储的图形数据进行图形合成。
  2. 如权利要求1所述的方法,其特征在于,第二图形合成器向第一图形合成器发送图形缓冲对象标识,包括:
    第二图形合成器从图形缓冲对象队列中取出第一图形缓冲对象,创建与所述第一图形缓冲对象对应的第二图形缓冲对象;其中,所述第二图形缓冲对象为第一图形合成器中的第三图形缓冲对象在第二图形合成器中的代理;
    第二图形合成器通过所述第二图形缓冲对象将所述第一图形缓冲对象的标识发送给第一图形合成器中的第三图形缓冲对象。
  3. 如权利要求2所述的方法,其特征在于,第二图形合成器通过所述第二图形缓冲对象将所述第一图形缓冲对象的标识发送给第一图形合成器,包括:
    第二图形合成器将所述第一图形缓冲对象的标识映射为所述第二图形缓冲对象的标识;
    第二图形合成器将所述第二图形缓冲对象的标识发送给第一子系统图形合成器。
  4. 如权利要求2所述的方法,其特征在于,还包括:
    第一图形合成器创建与所述第一图形缓冲对象对应的第三图形缓冲对象。
  5. 如权利要求2所述的方法,其特征在于,还包括:
    第一图形合成器完成所述合成后,向第二图形合成器返回所述第二图形缓冲对象的标识;
    第二图形合成器根据返回的所述第二图形缓冲对象的标识,将所述第二图形缓冲对象对应的第一图形缓冲对象放回所述图形缓冲对象队列。
  6. 如权利要求1所述的方法,其特征在于,图形数据存储单元中存储的图形数据是第二子系统的应用程序处理得到的。
  7. 如权利要求1至6中任一项所述的方法,其特征在于,所述第一子系统为Host子系统,所述第二子系统为Guest子系统。
  8. 一种图形合成方法,其特征在于,包括:
    第一图形合成器接收第二图形合成器发送的图形缓冲对象标识;其中,所述第一图形合成器为第一子系统中的图形合成器,所述第二图形合成器为第二子系统中的图形合成器;
    第一图形合成器根据所述图形缓冲对象标识所指向的图形数据存储单元中存储的图形数据进行图形合成。
  9. 如权利要求8所述的方法,其特征在于,第一图形合成器接收第二图形合成器发送的图形缓冲对象标识,包括:
    所述第一图形合成器通过第二图形缓冲对象接收第二图形合成器发送的第一图形缓冲对象的标识;其中,所述第二图形缓冲对象是第二图形合成器从图形缓冲对象队列中取出第一图形缓冲对象时创建的,所述第二图形缓冲对象与所述第一图形缓冲对象对应,所述第二图形缓冲对象为第一图形合成器中的第三图形缓冲对象在第二图形合成器中的代理。
  10. 如权利要求9所述的方法,其特征在于,还包括:
    第一图形合成器创建与所述第一图形缓冲对象对应的第三图形缓冲对象。
  11. 如权利要求9所述的方法,其特征在于,还包括:
    第一图形合成器完成所述合成后,向第二图形合成器返回所述第二图形缓冲对象的标识,以使第二图形合成器根据返回的所述第二图形缓冲对象的标识,将所述第二图形缓冲对象对应的第一图形缓冲对象放回所述图形缓冲对象队列。
  12. 如权利要求8所述的方法,其特征在于,图形数据存储单元中存储的图形数据是第二子系统的应用程序处理得到的。
  13. 如权利要求8至12中任一项所述的方法,其特征在于,所述第一子系统为Host子系统,所述第二子系统为Guest子系统。
  14. 一种窗口设置方法,其特征在于,包括:
    第二图形合成器向第一图形合成器发送窗口属性信息;其中,所述第一图形合成器为第一子系统中的图形合成器,所述第二图形合成器为第二子系统中的图形合成器;
    第一图形合成器根据所述窗口属性信息,设置相应窗口。
  15. 如权利要求14所述的方法,其特征在于,第二图形合成器向第一图形合成器发送窗口属性信息,包括:
    第二图形合成器根据待设置窗口确定对应的第一图层对象;
    第二图形合成器通过与所述第一图层对象对应的第二图层对象将所述待设置窗口的窗口属性信息发送给第一图形合成器中第三图层对象;其中,所述第二图层对象为所述第三图层对象在第二图形合成器中的代理。
  16. 如权利要求15所述的方法,其特征在于,第二图形合成器通过与所述第一图层对象对应的第二图层对象将所述待设置窗口的窗口属性信息发送给第一图形合成器中第三图层对象之前,还包括:
    第二图形合成器根据接收到的第一事件,创建第一图层对象和第二图层对象;
    第一图形合成器根据所述第一事件,创建与所述第一图层对象或所述第二图层对象对应的第三图层对象。
  17. 如权利要求16所述的方法,其特征在于,所述第一事件包括以下事件中的一种或多种:
    第二子系统的应用程序被启动的事件;
    第二图形合成器为第二子系统的应用程序创建图层的事件。
  18. 如权利要求14所述的方法,其特征在于,所述窗口属性信息为第二子系统的应用程序所对应的窗口属性信息。
  19. 如权利要求14至18中任一项所述的方法,其特征在于,所述第一子系统为Host子系统,所述第二子系统为Guest子系统。
  20. 一种窗口设置方法,其特征在于,包括:
    第一图形合成器接收第二图形合成器向发送的窗口属性信息;其中,所述第一图形合成器为第一子系统中的图形合成器,所述第二图形合成器为第二子系统中的图形合成器;
    第一图形合成器根据所述窗口属性信息,设置相应窗口。
  21. 如权利要求20所述的方法,其特征在于,第一图形合成器接收第二图形合成器向发送的窗口属性信息,包括:
    第一图形合成器通过与第一图层对象对应的第二图层对象接收第二图形合成器向发送的窗口属性信息,其中,所述第二图层对象与第一图层对象对应,所述第二图层对象为所述第三图层对象在第二图形合成器中的代理,所述第一图层对象是第二图形合成器根据待设置窗口确定的。
  22. 如权利要求21所述的方法,其特征在于,第一图形合成器通过与第一图层对象对应的第二图层对象接收第二图形合成器向发送的窗口属性信息之前,还包括:
    第一图形合成器根据第一事件,创建与所述第一图层对象或所述第二 图层对象对应的第三图层对象。
  23. 如权利要求22所述的方法,其特征在于,所述第一事件包括以下事件中的一种或多种:
    第二子系统的应用程序被启动的事件;
    第二图形合成器为第二子系统的应用程序创建图层的事件。
  24. 如权利要求20所述的方法,其特征在于,所述窗口属性信息为第二子系统的应用程序所对应的窗口属性信息。
  25. 如权利要求20至24中任一项所述的方法,其特征在于,所述第一子系统为Host子系统,所述第二子系统为Guest子系统。
  26. 一种图形合成系统,其特征在于,包括:第一图形合成器和第二图形合成器,所述第一图形合成器为第一子系统的图形合成器,所述第二图形合成器为第二子系统的图形合成器;
    所述第二图形合成器,用于向第一图形合成器发送图形缓冲对象标识;
    所述第一图形合成器,用于根据所述图形缓冲对象标识所指向的图形数据存储单元中存储的图形数据进行图形合成。
  27. 如权利要求26所述的系统,其特征在于,所述第二图形合成器具体用于:从图形缓冲对象队列中取出第一图形缓冲对象,创建与所述第一图形缓冲对象对应的第二图形缓冲对象,其中,所述第二图形缓冲对象为第一图形合成器中的第三图形缓冲对象在第二图形合成器中的代理;以及
    通过所述第二图形缓冲对象将所述第一图形缓冲对象的标识发送给第一图形合成器中的第三图形缓冲对象。
  28. 如权利要求27所述的系统,其特征在于,第二图形合成器具体用于:
    将所述第一图形缓冲对象的标识映射为所述第二图形缓冲对象的标 识;
    将所述第二图形缓冲对象的标识发送给第一子系统图形合成器。
  29. 如权利要求27所述的系统,其特征在于,第一图形合成器还用用于:创建与所述第一图形缓冲对象对应的第三图形缓冲对象。
  30. 如权利要求27所述的系统,其特征在于,第一图形合成器还用于:完成所述合成后,向第二图形合成器返回所述第二图形缓冲对象的标识;
    第二图形合成器还用于:根据返回的所述第二图形缓冲对象的标识,将所述第二图形缓冲对象对应的第一图形缓冲对象放回所述图形缓冲对象队列。
  31. 如权利要求26所述的系统,其特征在于,图形数据存储单元中存储的图形数据是第二子系统的应用程序处理得到的。
  32. 如权利要求26至31中任一项所述的系统,其特征在于,所述第一子系统为Host子系统,所述第二子系统为Guest子系统。
  33. 一种窗口设置系统,其特征在于,包括:第一图形合成器和第二图形合成器,所述第一图形合成器为第一子系统的图形合成器,所述第二图形合成器为第二子系统的图形合成器;
    第二图形合成器,用于向第一图形合成器发送窗口属性信息;
    第一图形合成器,用于根据所述窗口属性信息,设置相应窗口。
  34. 如权利要求33所述的系统,其特征在于,所述第二图形合成器具体用于:
    根据待设置窗口确定对应的第一图层对象;
    器通过与所述第一图层对象对应的第二图层对象将所述待设置窗口的窗口属性信息发送给第一图形合成器中第三图层对象;其中,所述第二图层对象为所述第三图层对象在第二图形合成器中的代理。
  35. 如权利要求34所述的系统,其特征在于,第二图形合成器还用于: 根据接收到的第一事件,创建第一图层对象和第二图层对象;
    第一图形合成器还用于:根据所述第一事件,创建与所述第一图层对象或所述第二图层对象对应的第三图层对象。
  36. 如权利要求35所述的系统,其特征在于,所述第一事件包括以下事件中的一种或多种:
    第二子系统的应用程序被启动的事件;
    第二图形合成器为第二子系统的应用程序创建图层的事件。
  37. 如权利要求33所述的系统,其特征在于,所述窗口属性信息为第二子系统的应用程序所对应的窗口属性信息。
  38. 如权利要求33至37中任一项所述的系统,其特征在于,所述第一子系统为Host子系统,所述第二子系统为Guest子系统。
PCT/CN2017/078041 2016-03-31 2017-03-24 一种图形合成方法、窗口设置方法及系统 WO2017167127A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610201756.1A CN107292807B (zh) 2016-03-31 2016-03-31 一种图形合成方法、窗口设置方法及系统
CN201610201756.1 2016-03-31

Publications (1)

Publication Number Publication Date
WO2017167127A1 true WO2017167127A1 (zh) 2017-10-05

Family

ID=59963500

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/078041 WO2017167127A1 (zh) 2016-03-31 2017-03-24 一种图形合成方法、窗口设置方法及系统

Country Status (2)

Country Link
CN (1) CN107292807B (zh)
WO (1) WO2017167127A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019242440A1 (zh) * 2018-06-20 2019-12-26 华为技术有限公司 一种用户界面的显示方法和终端设备
CN114035851A (zh) * 2021-11-08 2022-02-11 北京鲸鲮信息系统技术有限公司 多系统的图形数据处理方法及装置、电子设备和存储介质
CN115309315A (zh) * 2022-10-11 2022-11-08 麒麟软件有限公司 Wayland环境下X应用的截图方法、系统及介质
WO2023138020A1 (zh) * 2022-01-19 2023-07-27 北京字节跳动网络技术有限公司 图像生成方法、装置、电子设备及存储介质
CN117149341A (zh) * 2023-10-31 2023-12-01 成都阿加犀智能科技有限公司 一种显示Linux GUI程序的方法、装置、设备及介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527219A (zh) * 2019-09-17 2021-03-19 中兴通讯股份有限公司 基于wayland协议的图形合成方法、装置和系统
CN111415636B (zh) * 2020-03-31 2022-03-11 惠州华阳通用电子有限公司 一种画面共享系统及其实现方法
CN113672321B (zh) * 2021-07-26 2023-08-22 中标软件有限公司 支持客户端窗口坐标的轻量级wayland合成器的实现方法
CN113867820B (zh) * 2021-09-29 2024-05-28 深圳市智微智能软件开发有限公司 一种动态修改framebuffer的方法、装置、设备及存储介质
CN115639977B (zh) * 2022-12-23 2024-01-26 安徽海马云科技股份有限公司 安卓图形合成方法与装置、电子设备及存储介质
CN116567273B (zh) * 2023-07-10 2023-10-10 海马云(天津)信息技术有限公司 发送容器系统的显示画面的方法、服务器设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101120589A (zh) * 2005-01-18 2008-02-06 松下电器产业株式会社 图像合成装置
CN101329759A (zh) * 2007-06-18 2008-12-24 联发科技股份有限公司 立体图形系统以及处理方法
CN103282852A (zh) * 2010-12-30 2013-09-04 诺基亚公司 用于为用户终端提供可合成图形的方法和装置
CN104765594A (zh) * 2014-01-08 2015-07-08 联发科技(新加坡)私人有限公司 一种显示图形用户界面的方法及装置
CN105009567A (zh) * 2013-02-21 2015-10-28 杜比实验室特许公司 用于合成叠加图形的外观映射的系统和方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7839419B2 (en) * 2003-10-23 2010-11-23 Microsoft Corporation Compositing desktop window manager
US8274518B2 (en) * 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
US9275430B2 (en) * 2006-12-31 2016-03-01 Lucidlogix Technologies, Ltd. Computing system employing a multi-GPU graphics processing and display subsystem supporting single-GPU non-parallel (multi-threading) and multi-GPU application-division parallel modes of graphics processing operation
US8954959B2 (en) * 2010-09-16 2015-02-10 Red Hat Israel, Ltd. Memory overcommit by using an emulated IOMMU in a computer system without a host IOMMU
CN102446341A (zh) * 2010-09-30 2012-05-09 联想(北京)有限公司 服务器及其图像处理方法
CN102810040B (zh) * 2011-05-31 2016-03-30 联想(北京)有限公司 一种显示处理方法、装置及计算机系统
CN103413287B (zh) * 2013-08-27 2016-09-14 浙江宇视科技有限公司 一种jpeg图片合成方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101120589A (zh) * 2005-01-18 2008-02-06 松下电器产业株式会社 图像合成装置
CN101329759A (zh) * 2007-06-18 2008-12-24 联发科技股份有限公司 立体图形系统以及处理方法
CN103282852A (zh) * 2010-12-30 2013-09-04 诺基亚公司 用于为用户终端提供可合成图形的方法和装置
CN105009567A (zh) * 2013-02-21 2015-10-28 杜比实验室特许公司 用于合成叠加图形的外观映射的系统和方法
CN104765594A (zh) * 2014-01-08 2015-07-08 联发科技(新加坡)私人有限公司 一种显示图形用户界面的方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019242440A1 (zh) * 2018-06-20 2019-12-26 华为技术有限公司 一种用户界面的显示方法和终端设备
CN110618847A (zh) * 2018-06-20 2019-12-27 华为技术有限公司 一种用户界面的显示方法和终端设备
CN114035851A (zh) * 2021-11-08 2022-02-11 北京鲸鲮信息系统技术有限公司 多系统的图形数据处理方法及装置、电子设备和存储介质
CN114035851B (zh) * 2021-11-08 2023-10-03 北京字节跳动网络技术有限公司 多系统的图形数据处理方法及装置、电子设备和存储介质
WO2023138020A1 (zh) * 2022-01-19 2023-07-27 北京字节跳动网络技术有限公司 图像生成方法、装置、电子设备及存储介质
CN115309315A (zh) * 2022-10-11 2022-11-08 麒麟软件有限公司 Wayland环境下X应用的截图方法、系统及介质
CN115309315B (zh) * 2022-10-11 2023-01-20 麒麟软件有限公司 Wayland环境下X应用的截图方法、系统及介质
CN117149341A (zh) * 2023-10-31 2023-12-01 成都阿加犀智能科技有限公司 一种显示Linux GUI程序的方法、装置、设备及介质
CN117149341B (zh) * 2023-10-31 2024-01-05 成都阿加犀智能科技有限公司 一种显示Linux GUI程序的方法、装置、设备及介质

Also Published As

Publication number Publication date
CN107292807B (zh) 2020-12-04
CN107292807A (zh) 2017-10-24

Similar Documents

Publication Publication Date Title
WO2017167127A1 (zh) 一种图形合成方法、窗口设置方法及系统
US11164280B2 (en) Graphics layer processing in a multiple operating systems framework
US10127628B2 (en) Method and system to virtualize graphic processing services
CN112269603B (zh) 一种在Linux上兼容运行Android应用的图形显示方法与装置
EP2622463B1 (en) Instant remote rendering
US8963939B2 (en) Extended graphics context with divided compositing
US20150193904A1 (en) Graphics acceleration for applications executing on mobile devices with multi-operating system environment
TW201706834A (zh) 應用程式與虛擬機器通訊連接的系統與方法
CN114741081B (zh) 一种基于异构缓存访问的跨运行环境显示输出共享方法
CN113918366B (zh) 信息处理方法、装置、电子设备及存储介质
US20110298787A1 (en) Layer composition, rendering, and animation using multiple execution threads
CN116166259A (zh) 界面生成方法及电子设备
CN116166256A (zh) 界面生成方法及电子设备
WO2023221822A1 (zh) 数据处理方法、电子设备和可读存储介质
WO2023138020A1 (zh) 图像生成方法、装置、电子设备及存储介质
KR101520067B1 (ko) 윈도우 시스템을 구현한 그래픽 처리 방법 및 그 장치
WO2017167125A1 (zh) 一种图形合成方法、信息交互方法及系统
CN114116227A (zh) 一种无GPU支持的基于Wayland协议的显示方法、装置及设备
WO2018231523A1 (en) Method and system for a transactional based display pipeline to interface with graphics processing units
CN111813404B (zh) 基于混合图形显示的应用方法、介质及客户端
KR101566508B1 (ko) 메모리 가상화를 구현한 그래픽 처리 방법 및 그 장치
CN113379589A (zh) 双系统的图形处理方法、装置及终端
CN117149318A (zh) 一种数据处理方法及电子设备
KR20230011823A (ko) 다중 하드웨어 운용장치 및 이를 포함하는 연구개발 가상환경 운용 시스템
WO2015058100A1 (en) Graphics acceleration for applications executing on mobile devices with multi-operating system environment

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17773157

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 17773157

Country of ref document: EP

Kind code of ref document: A1