CN112347380B - Window rendering method and related equipment - Google Patents
Window rendering method and related equipment Download PDFInfo
- Publication number
- CN112347380B CN112347380B CN201910729361.2A CN201910729361A CN112347380B CN 112347380 B CN112347380 B CN 112347380B CN 201910729361 A CN201910729361 A CN 201910729361A CN 112347380 B CN112347380 B CN 112347380B
- Authority
- CN
- China
- Prior art keywords
- window
- sub
- rendering
- screen
- function
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/954—Navigation, e.g. using categorised browsing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
The embodiment of the invention discloses a window rendering method and related equipment, which comprises the steps of firstly determining service functions realized by each of a plurality of functional areas contained in a target window and the function types of the service functions, then decomposing the target window according to the function types to obtain a first sub-window and a second sub-window, and then rendering the first sub-window in an off-screen rendering mode and the second sub-window in an on-screen rendering mode. By adopting the embodiment of the invention, the rendering performance of the special-shaped window can be improved, so that the smoothness of window picture display is improved.
Description
Technical Field
The present invention relates to the field of image processing technologies, and in particular, to a window rendering method and related devices.
Background
In the window display process, common rendering modes include screen rendering and off-screen rendering. The screen rendering refers to a manner that the browser engine directly outputs the contents of hypertext markup language (Hyper Text Markup Language, HTML)/cascading style sheet (CASCADING STYLE SHEETS, CSS)/JavaScript (JS) to the screen after rendering. Off-screen rendering refers to the way the browser engine renders HTML/CSS/JS content into bitmaps and outputs to memory. At present, off-screen rendering is commonly used for processing live windows, an application program independently opens up a place to draw a bitmap when off-screen rendering is performed, and a graphics processor (Graphics Processing Unit, GPU) accelerates synthesis, namely a central processing unit (Central Processing Unit, CPU) finishes drawing work to the GPU and presents the drawing work to a screen by the GPU, so that although a browser kernel provides an invalid region and a pixel buffer area for the application program, acceleration synthesis is not supported, and therefore, the rendering performance of the window is lower. Especially, when the video is played in the window, the frame rate is low, and if special processing is not applied, a user can obviously feel the clamping phenomenon of the high-definition picture.
Disclosure of Invention
The invention provides a window rendering method and related equipment, which can improve the rendering performance of a special-shaped window, thereby improving the fluency of window picture display.
In a first aspect, an embodiment of the present invention provides a window rendering method, including:
determining a service function realized by each of a plurality of function areas contained in a target window and a function type of the service function;
decomposing the target window according to the function type to obtain a first sub-window and a second sub-window;
Rendering the first sub-window in an off-screen rendering mode, and rendering the second sub-window in a screen rendering mode.
The first sub-window and the second sub-window comprise at least one functional area in the plurality of functional areas, wherein the functional types comprise a pixel mixed type, and the business functions of the pixel mixed type are realized based on a pixel mixed technology;
The decomposing the target window according to the function type to obtain a first sub-window and a second sub-window comprises:
if the service function realized by the functional area comprises the pixel mixed service function, determining that the functional area belongs to the first sub-window, otherwise, determining that the functional area belongs to the second sub-window.
Wherein after the first sub-window is rendered in an off-screen rendering manner and the second sub-window is rendered in a screen rendering manner, the method further comprises:
and carrying out synchronous processing on the first sub-window and the second sub-window, wherein the synchronous processing comprises synchronous displacement.
Wherein the synchronizing the first sub-window and the second sub-window includes:
acquiring the position information of the first sub-window and the second sub-window according to a preset time interval;
determining whether other windows are spaced between the first sub-window and the second sub-window according to the position information;
and when other windows are spaced between the first sub-window and the second sub-window, adjusting the positions of the first sub-window and/or the second sub-window.
Wherein the synchronizing the first sub-window and the second sub-window includes:
Controlling the second sub-window to monitor the displacement synchronization message of the first sub-window and controlling the second sub-window to displace according to the displacement synchronization message, and
Controlling the first sub-window to monitor the focus information of the second sub-window, and controlling the first sub-window to displace according to the focus information.
Wherein, the target window corresponds to a main thread and a sub thread;
the rendering the first sub-window in an off-screen rendering manner and the second sub-window in an on-screen rendering manner comprises:
and rendering the first sub-window in the main thread in the off-screen rendering mode, and rendering the second sub-window in the sub-thread in the screen rendering mode.
Wherein after the first sub-window is rendered in an off-screen rendering manner and the second sub-window is rendered in a screen rendering manner, the method further comprises:
and carrying out synchronous processing on the first sub-window and the second sub-window in the sub-thread.
The first child window is a logic parent window of the second child window, and the second child window is a top-level window.
In a second aspect, an embodiment of the present invention provides a window rendering apparatus, including:
the information determining module is used for determining service functions realized by each of a plurality of function areas contained in the target window and the function types of the service functions;
The window decomposition module is used for decomposing the target window according to the function type to obtain a first sub-window and a second sub-window;
and the window rendering module is used for rendering the first sub-window in an off-screen rendering mode and rendering the second sub-window in a screen rendering mode.
The first sub-window and the second sub-window comprise at least one functional area in the plurality of functional areas, wherein the functional types comprise a pixel mixed type, and the business functions of the pixel mixed type are realized based on a pixel mixed technology;
the window decomposition module is further configured to:
if the service function realized by the functional area comprises the pixel mixed service function, determining that the functional area belongs to the first sub-window, otherwise, determining that the functional area belongs to the second sub-window.
The device further comprises a synchronous processing module, which is used for:
and carrying out synchronous processing on the first sub-window and the second sub-window, wherein the synchronous processing comprises synchronous displacement.
Wherein, the synchronous processing module is further used for:
acquiring the position information of the first sub-window and the second sub-window according to a preset time interval;
determining whether other windows are spaced between the first sub-window and the second sub-window according to the position information;
and when other windows are spaced between the first sub-window and the second sub-window, adjusting the positions of the first sub-window and/or the second sub-window.
Wherein, the synchronous processing module is further used for:
Controlling the second sub-window to monitor the displacement synchronization message of the first sub-window and controlling the second sub-window to displace according to the displacement synchronization message, and
Controlling the first sub-window to monitor the focus information of the second sub-window, and controlling the first sub-window to displace according to the focus information.
Wherein, the target window corresponds to a main thread and a sub thread;
the window rendering module is further configured to:
and rendering the first sub-window in the main thread in the off-screen rendering mode, and rendering the second sub-window in the sub-thread in the screen rendering mode.
Wherein, the synchronous processing module is further used for:
And carrying out the synchronization processing on the first sub-window and the second sub-window in the sub-thread.
The first child window is a logic parent window of the second child window, and the second child window is a top-level window.
In a third aspect, an embodiment of the present invention provides a window rendering apparatus, including a processor, a memory, and a communication bus, where the communication bus is used to implement connection communication between the processor and the memory, and the processor executes a program stored in the memory to implement steps in a window rendering method provided in the first aspect.
In one possible design, the entity identification device provided by the present invention may include a module for performing the action corresponding in the above method. The modules may be software and/or hardware.
Yet another aspect of the embodiments of the present invention provides a computer-readable storage medium having stored therein a plurality of instructions adapted to be loaded by a processor and to perform the method of the above aspects.
A further aspect of embodiments of the invention provides a computer program product comprising instructions which, when run on a computer, cause the computer to perform the method of the above aspects.
The embodiment of the invention firstly determines the service function realized by each of a plurality of function areas contained in a target window and the function type of the service function, then decomposes the target window according to the function type to obtain a first sub-window and a second sub-window, and then renders the first sub-window in an off-screen rendering mode and renders the second sub-window in a screen rendering mode. Not only can the fluency of window pictures and the performance of window rendering be improved, but also occupied content is reduced, and the burden of a CPU is lightened.
Drawings
In order to more clearly describe the embodiments of the present invention or the technical solutions in the background art, the following description will describe the drawings that are required to be used in the embodiments of the present invention or the background art.
Fig. 1 is a schematic flow chart of a window rendering method according to an embodiment of the present invention;
FIG. 2 is a schematic view of a laminated window stack according to an embodiment of the present invention;
FIG. 3 is a schematic diagram of a target window according to an embodiment of the present invention;
FIG. 4 is a flowchart of another window rendering method according to an embodiment of the present invention;
FIG. 5 is a schematic diagram of an actual application scenario provided by an embodiment of the present invention
Fig. 6 is a schematic structural diagram of a window rendering device according to an embodiment of the present invention;
Fig. 7 is a schematic structural diagram of a window rendering device according to an embodiment of the present invention.
Detailed Description
The following description of the embodiments of the present invention will be made clearly and fully with reference to the accompanying drawings, in which it is evident that the embodiments described are some, but not all embodiments of the invention. All other embodiments, which can be made by those skilled in the art based on the embodiments of the invention without making any inventive effort, are intended to be within the scope of the invention.
Referring to fig. 1, fig. 1 is a flowchart of a window rendering method according to an embodiment of the present invention, where the method includes but is not limited to the following steps:
S101, determining service functions realized by each of a plurality of function areas contained in a target window and the function types of the service functions.
In a specific implementation, the target window may be a special-shaped window that may be decomposed into multiple sub-windows, such as a "back" glyph window, a "field" glyph window, and so on. Meanwhile, the target window is also a layered window (layered window), which may include a plurality of functional areas, each of which is used to implement at least one service function. For example, as shown in fig. 2, the online class window includes a live zone where teachers speak classes online and a chat zone where teachers and students communicate online. The service functions realized in the live broadcast area include a painting brush function required by a teacher in a lecture mode, a function of loading a webpage (such as a webpage which the teacher searches online and displays to students) or other program windows (such as a PowerPoint window for displaying courseware), and the like, and the service functions realized in the chat area are real-time interaction among multiple users (the teacher and the students). All service functions implemented by the target window are divided into a pixel hybrid service function and a non-pixel hybrid service function in the present invention. As the name suggests, pixel-blending business functions are implemented based on pixel-blending technology, such as, for example, brush functions. Among the common pixel blending techniques include alpha (alpha ) blending techniques, which refers to overlaying one window control (frame) over another frame, and the upper frame does not completely obscure the lower frame, i.e., the partial area in the upper layer of frames is transparent, wherein the pixels of the two frames are blended according to a preset alpha value. The non-pixel hybrid traffic function refers to other traffic functions that do not need to be implemented using pixel hybrid technology.
S102, decomposing the target window according to the function type to obtain a first sub-window and a second sub-window.
In a specific implementation, the first sub-window and the second sub-window respectively include at least one functional area. For each functional area, if the service function realized by the functional area comprises a pixel mixed service function, determining that the functional area belongs to a first sub-window, otherwise, determining that the functional area belongs to a second sub-window. As shown in fig. 2, the online classroom window based on the Windows system includes a live broadcast area and a chat area, wherein the live broadcast area implements a brush function that is a pixel hybrid service function, so that the live broadcast area is divided into a first sub-window. The multi-user real-time interaction function realized by the chat area does not need to use a pixel mixing technology and belongs to a non-pixel mixing business function, so that the chat area is divided into a second sub-window. Finally, a first sub-window consisting of the live broadcast area, namely a live broadcast window, and a second sub-window consisting of the chat area, namely a chat window, are obtained. In addition, as shown in fig. 2, the window display areas of the live window and the chat window can be hollowed out by using the interface provided by the Windows system, and the hollowed-out areas are all currently displayed on the background desktop of the computer.
It should be noted that, starting from Windows2000, the Windows operating system starts to adopt a layered window mechanism. Under this mechanism, multiple windows can be stacked to form a stack of stacked windows that are positioned according to an imaginary axis that extends perpendicular to the screen and out of the screen, commonly referred to as the Z-axis. Each window in the laminated window stack is laminated in turn by taking the Z axis as a reference axis, wherein each window has a lamination order (Z-order) for indicating what layer the window is positioned on the laminated window stack, and the display sequence of the windows can be indicated. As shown in FIG. 3, the stack of laminated windows includes 3 windows, wherein the Z-order of the top window is 3, the second window is overlapped below the top window along the Z-axis, the Z-order is 2, the third window is also the bottom window, the second window is overlapped below the second window along the Z-axis, and the Z-order is 1. In addition, there are dependencies such as parent/child relationships, sibling relationships, etc. between windows. Wherein, child window is the next level window derived from parent window, and sibling window is two windows derived from the same level directory of the same parent window.
Based on the above description, the present invention further describes the first child window and the second child window—1) the second child window is a window without a parent window, and is usually placed on the top layer as the top layer window, 2) the first child window is a logical parent window of the second child window, and the second child window stores the handle of the first child window.
And S103, rendering the first sub-window in an off-screen rendering mode and rendering the second sub-window in a screen rendering mode.
In a specific implementation, in order to realize smoothness of real-time image display, a window which needs to realize a pixel mixed type service function should be rendered by using an off-screen rendering mode. The service function of the non-pixel mixed type only needs to display the picture normally, and the real-time requirement on the picture display is lower than that of the pixel mixed type, so that the second sub-window is only rendered by using a screen rendering mode. The root cause of the method is that in the screen rendering mode, the rendering operation of the GPU is carried out in the current screen buffer area, and the off-screen rendering mode is used for completing the rendering of the window by a buffer area opened up outside the current screen buffer area, so that when the screen refresh rate requirement is higher, the off-screen rendering can better meet the requirement of the picture smoothness. However, it can also be seen that off-screen rendering occupies more memory than screen rendering, adding to the processing burden of the CPU. Therefore, the invention decomposes the target window into a plurality of sub-windows, and then selects a proper rendering mode according to the actual condition of each sub-window, thereby achieving the purposes of reducing occupied memory and reducing the burden of a CPU.
It should be noted that, in an extreme case, each of the multiple functional areas of the target window does not include a pixel hybrid service function, the target window may be decomposed into multiple logic sub-windows according to a logical relationship between the functional areas, and each logic sub-window may be rendered directly by using a screen rendering manner.
In the embodiment of the invention, firstly, the service function realized by each function area in a plurality of function areas contained in a target window and the function type of the service function are determined, then the target window is decomposed according to the function type to obtain a first sub-window and a second sub-window, and then the first sub-window is rendered in an off-screen rendering mode and the second sub-window is rendered in a screen rendering mode. The method can reduce the memory occupied by window rendering and lighten the burden of a CPU (Central processing Unit) so as to improve the smoothness of window picture display and the performance of window rendering.
Referring to fig. 4, fig. 4 is a flowchart of another window rendering method according to an embodiment of the present invention, where the method includes but is not limited to the following steps:
S401, determining service functions realized by each of a plurality of function areas contained in a target window and the function types of the service functions. The step is the same as S101 in the previous embodiment, and the description of this step is omitted.
S402, decomposing the target window according to the function type to obtain a first sub-window and a second sub-window. The step is the same as S102 in the previous embodiment, and the description of this step is omitted.
S403, rendering the first sub-window in an off-screen rendering mode and rendering the second sub-window in a screen rendering mode. The step is the same as S103 in the previous embodiment, and the description of this step is omitted.
S404, synchronizing the first sub-window and the second sub-window.
In a specific implementation, the first child window is a logical parent window of the second child window, and when any one of the first child window and the second child window moves, synchronous displacement processing needs to be performed on the other child window. In one aspect, the second sub-window may monitor a displacement synchronization message of the first sub-window, where the displacement synchronization message may, but is not limited to, refer to displacement information broadcasted or sent to the second sub-window after the first sub-window moves around, where the displacement information may include a direction and an amplitude of the displacement, and the second sub-window may perform synchronous displacement according to the displacement synchronization message. The synchronization shift may further include hiding the second sub-window/the first sub-window when the first sub-window/the second sub-window is hidden.
On the other hand, the first sub-window can be controlled to monitor the focus message of the second sub-window, and the first sub-window is controlled to displace according to the monitored focus message. In a Windows system, among other things, the focus determines which input box in that window/control/window receives keyboard input information. When a user uses a keyboard to input by using a certain input (such as a dog search input method), a candidate frame of the input content appears correspondingly, wherein the candidate frame is from an application program corresponding to the input method, so that a window for receiving the input of the keyboard needs to be correspondingly and synchronously displaced to display the candidate frame in a proper place. In the present invention, if the second sub-window generates the synchronous displacement corresponding to the input content candidate frame, the first sub-window also needs to do the synchronous displacement with the second sub-window.
After decomposing the target window into a first child window and a second child window, there is no actual parent-child relationship between the first child window and the second child window, although the first child window is a logical parent of the second child window. Therefore, the operating system does not synchronously manage the two sub-windows, so that the problem that the first sub-window/the second sub-window moves frequently, and the second sub-window/the first sub-window cannot synchronously move along with the first sub-window, and the two sub-windows are separated from each other from the view of a user. And the synchronous displacement processing of the first sub-window and the second sub-window can effectively solve the problem.
Optionally, the stacking order of the first sub-window and the second sub-window in the stack of stacked windows where the first sub-window and the second sub-window are located may be adjusted synchronously. Specifically, the position information of the first sub-window and the second sub-window may be acquired according to a preset time interval, where the preset time interval may be 10 microseconds, 10 milliseconds, and so on. The location information may be, but is not limited to, z-order, which may be traversed through the GetTopWindow and GetNextWindow functions for a stack of stacked windows to arrive at the z-order for the desired window. Next, it is determined whether other windows are spaced between the first sub-window and the second sub-window, i.e., whether the first sub-window and the second sub-window are next to each other in the Z-axis, and whether other windows (e.g., browser windows) are sandwiched therebetween, based on the position information. For example, as shown in fig. 3, the z-order of the first sub-window and the second sub-window is 1 and 3, respectively, the second sub-window is the top-layer window, the first sub-window is the third-layer (bottom-layer) window, and at this time, an additional window is spaced between the first sub-window and the second sub-window, and the window is sandwiched between the first sub-window and the second sub-window, thereby forming a "sandwich window". At this time, the window clamped between the first sub-window and the second sub-window can not be effectively synthesized into the target window, namely, the target window can not achieve the same display effect as the conventional rendering method after being rendered according to the method provided by the invention. Therefore, if other windows are spaced between the first sub-window and the second sub-window, the positions of the first sub-window and the second sub-window need to be adjusted, wherein the positions of the two windows can be adjusted at the same time, and the position of one sub-window can be kept unchanged, and the position of the other sub-window can be adjusted. For example, when the z-order of the first sub-window and the second sub-window are 3 and 1, respectively, the z-order of the first sub-window may be adjusted to 2, and it may be adjusted from the third layer window to the second layer window, so that the first sub-window and the second sub-window are next to each other.
Optionally, the target window corresponds to a main thread and a sub thread. The operation of rendering the first sub-window in an off-screen rendering mode can be performed in the main thread, and the operation of rendering the second sub-window in an on-screen rendering mode can be performed in the sub-thread. At the same time, the synchronous processing operation of the first sub-window and the second sub-window is also performed in the sub-thread. The above method of decomposing a task into sub-threads is adopted in consideration of the fact that if both sub-windows are created (rendered) in the main thread, thread blocking is likely to occur when the synchronization problem of both sub-windows is handled.
In the embodiment of the invention, firstly, the service function realized by each function area in a plurality of function areas contained in a target window and the function type of the service function are determined, then the target window is decomposed according to the function type to obtain a first sub-window and a second sub-window, then the first sub-window is rendered in an off-screen rendering mode, the second sub-window is rendered in a screen rendering mode, and finally the first sub-window and the second sub-window are synchronously processed. Taking the online classroom window shown in fig. 2 as an example, the online classroom window includes a live area and a chat area before being decomposed. Then, since the live area includes the pixel hybrid service function, i.e., the pen function, it is divided into the first sub-window to obtain the live window, and the chat area does not include any pixel hybrid service function, so that it is divided into the second sub-window to obtain the chat window. Next, as shown in fig. 5, for the live window, the live window is first rendered into a bitmap according to an off-screen rendering mode and output to a memory to obtain a memory bitmap, and then the memory bitmap and a computer screen are subjected to pixel mixing by using an alpha mixing technology to obtain an off-screen rendering result of the live window. For the chat window, the bitmap can be rendered in a screen rendering mode and directly output to a screen so as to obtain a screen rendering result of the chat window. And finally, synchronously processing the live broadcast window and the chat window to enable the live broadcast window and the chat window to be the only window seen from the view angle of the user, namely, the non-decomposed online classroom window.
By adopting the embodiment of the invention, the problem of asynchronous displacement of the sandwich window and the two sub-windows can be prevented, so that the smoothness of window picture display and the performance of window rendering are improved on the premise of ensuring that the target window is displayed normally.
The foregoing details the method according to the embodiment of the present invention, and the following provides relevant devices according to the embodiment of the present invention.
Referring to fig. 6, fig. 6 is a schematic structural diagram of a window rendering apparatus according to an embodiment of the present invention, where the apparatus may include:
An information determining module 601 is configured to determine a service function implemented by each of a plurality of function areas included in a target window, and a function type of the service function.
In a specific implementation, the target window may be a special-shaped window that may be decomposed into multiple sub-windows, such as a "back" glyph window, a "field" glyph window, and so on. Meanwhile, the target window is also a layered window (layered window), which may include a plurality of functional areas, each of which is used to implement at least one service function. For example, as shown in fig. 2, the online class window includes a live zone where teachers speak classes online and a chat zone where teachers and students communicate online. The service functions realized in the live broadcast area include a painting brush function required by a teacher in a lecture mode, a function of loading a webpage (such as a webpage which the teacher searches online and displays to students) or other program windows (such as a PowerPoint window for displaying courseware), and the like, and the service functions realized in the chat area are real-time interaction among multiple users (the teacher and the students). All service functions implemented by the target window are divided into a pixel hybrid service function and a non-pixel hybrid service function in the present invention. As the name suggests, pixel-blending business functions are implemented based on pixel-blending technology, such as, for example, brush functions. Among them, the common pixel blending techniques include an alpha blending technique, in which one window control (frame) is overlaid on another frame, and the upper frame does not completely block the lower frame, that is, a partial area in the upper frame is transparent, where pixels of the two frames are blended according to a preset alpha value. The non-pixel hybrid traffic function refers to other traffic functions that do not need to be implemented using pixel hybrid technology.
And a window decomposition module 602, configured to decompose the target window according to the function type, so as to obtain a first sub-window and a second sub-window.
In a specific implementation, the first sub-window and the second sub-window respectively include at least one functional area. For each functional area, if the service function realized by the functional area comprises a pixel mixed service function, determining that the functional area belongs to a first sub-window, otherwise, determining that the functional area belongs to a second sub-window. As shown in fig. 2, the online classroom window based on the Windows system includes a live broadcast area and a chat area, wherein the live broadcast area implements a brush function that is a pixel hybrid service function, so that the live broadcast area is divided into a first sub-window. The multi-user real-time interaction function realized by the chat area does not need to use a pixel mixing technology and belongs to a non-pixel mixing business function, so that the chat area is divided into a second sub-window. Finally, a first sub-window consisting of the live broadcast area, namely a live broadcast window, and a second sub-window consisting of the chat area, namely a chat window, are obtained. In addition, as shown in fig. 2, the window display areas of the live window and the chat window can be hollowed out by using the interface provided by the Windows system, and the hollowed-out areas are all currently displayed on the background desktop of the computer.
It should be noted that, starting from Windows2000, the Windows operating system starts to adopt a layered window mechanism. Under this mechanism, multiple windows can be stacked to form a stack of stacked windows that are positioned according to an imaginary axis that extends perpendicular to the screen and out of the screen, commonly referred to as the Z-axis. Each window in the laminated window stack is laminated in turn by taking the Z axis as a reference axis, wherein each window has a lamination order (Z-order) for indicating what layer the window is positioned on the laminated window stack, and the display sequence of the windows can be indicated. As shown in FIG. 3, the stack of laminated windows includes 3 windows, wherein the Z-order of the top window is 3, the second window is overlapped below the top window along the Z-axis, the Z-order is 2, the third window is also the bottom window, the second window is overlapped below the second window along the Z-axis, and the Z-order is 1. In addition, there are dependencies such as parent/child relationships, sibling relationships, etc. between windows. Wherein, child window is the next level window derived from parent window, and sibling window is two windows derived from the same level directory of the same parent window.
Based on the above description, the present invention further describes the first child window and the second child window—1) the second child window is a window without a parent window, and is usually placed on the top layer as the top layer window, 2) the first child window is a logical parent window of the second child window, and the second child window stores the handle of the first child window.
The window rendering module 603 is configured to render the first sub-window in an off-screen rendering manner, and render the second sub-window in an on-screen rendering manner.
In a specific implementation, in order to realize smoothness of real-time image display, a window which needs to realize a pixel mixed type service function should be rendered by using an off-screen rendering mode. The service function of the non-pixel mixed type only needs to display the picture normally, and the real-time requirement on the picture display is lower than that of the pixel mixed type, so that the second sub-window is only rendered by using a screen rendering mode. The root cause of the method is that in the screen rendering mode, the rendering operation of the GPU is carried out in the current screen buffer area, and the off-screen rendering mode is used for completing the rendering of the window by a buffer area opened up outside the current screen buffer area, so that when the screen refresh rate requirement is higher, the off-screen rendering can better meet the requirement of the picture smoothness. However, it can also be seen that off-screen rendering occupies more memory than screen rendering, adding to the processing burden of the CPU. Therefore, the invention decomposes the target window into a plurality of sub-windows, and then selects a proper rendering mode according to the actual condition of each sub-window, thereby achieving the purposes of reducing occupied memory and reducing the burden of a CPU.
Optionally, the device in the embodiment of the present invention further includes a synchronization processing module, configured to perform synchronization processing on the first sub-window and the second sub-window.
In a specific implementation, the first child window is a logical parent window of the second child window, and when any one of the first child window and the second child window moves, synchronous displacement processing needs to be performed on the other child window. In one aspect, the second sub-window may monitor a displacement synchronization message of the first sub-window, where the displacement synchronization message may, but is not limited to, refer to displacement information broadcasted or sent to the second sub-window after the first sub-window moves around, where the displacement information may include a direction and an amplitude of the displacement, and the second sub-window may perform synchronous displacement according to the displacement synchronization message. The synchronization shift may further include hiding the second sub-window/the first sub-window when the first sub-window/the second sub-window is hidden.
On the other hand, the first sub-window can be controlled to monitor the focus message of the second sub-window, and the first sub-window is controlled to displace according to the monitored focus message. In a Windows system, among other things, the focus determines which input box in that window/control/window receives keyboard input information. When a user uses a keyboard to input by using a certain input method (such as a dog search input method), a candidate frame of input content appears correspondingly, wherein the candidate frame is from an application program corresponding to the input method, so that a window for receiving keyboard input needs to be correspondingly and synchronously displaced to display the candidate frame in a proper place. In the present invention, if the second sub-window generates the synchronous displacement corresponding to the input content candidate frame, the first sub-window also needs to do the synchronous displacement with the second sub-window.
After decomposing the target window into a first child window and a second child window, there is no actual parent-child relationship between the first child window and the second child window, although the first child window is a logical parent of the second child window. Therefore, the operating system does not synchronously manage the two sub-windows, so that the problem that the first sub-window/the second sub-window moves frequently, and the second sub-window/the first sub-window cannot synchronously move along with the first sub-window, and the two sub-windows are separated from each other from the view of a user. And the synchronous displacement processing of the first sub-window and the second sub-window can effectively solve the problem.
Optionally, the stacking order of the first sub-window and the second sub-window in the stack of stacked windows where the first sub-window and the second sub-window are located may be adjusted synchronously. Specifically, the position information of the first sub-window and the second sub-window may be obtained according to a preset time interval, where the position information may be, but is not limited to, z-order, and for a stack of laminated windows, the windows in the stack may be traversed by a GetTopWindow function and a GetNextWindow function, so as to obtain the z-order of the desired window. Next, it is determined whether other windows are spaced between the first sub-window and the second sub-window, i.e., whether the first sub-window and the second sub-window are next to each other in the Z-axis, and whether other windows (e.g., browser windows) are sandwiched therebetween, based on the position information. For example, as shown in fig. 3, the z-order of the first sub-window and the second sub-window is 1 and 3, respectively, the second sub-window is the top-layer window, the first sub-window is the third-layer (bottom-layer) window, and at this time, an additional window is spaced between the first sub-window and the second sub-window, and the window is sandwiched between the first sub-window and the second sub-window, thereby forming a "sandwich window". At this time, other windows between the first sub-window and the second sub-window enable the first sub-window and the second sub-window not to be effectively synthesized into a target window, namely, the target window cannot achieve the same display effect as the conventional rendering method after being rendered according to the method provided by the invention. Therefore, if other windows are spaced between the first sub-window and the second sub-window, the positions of the first sub-window and the second sub-window need to be adjusted, wherein the positions of the two windows can be adjusted at the same time, and the position of one sub-window can be kept unchanged, and the position of the other sub-window can be adjusted. For example, when the z-order of the first sub-window and the second sub-window are 3 and 1, respectively, the z-order of the first sub-window may be adjusted to 2, and it may be adjusted from the third layer window to the second layer window, so that the first sub-window and the second sub-window are next to each other.
Optionally, the target window corresponds to a main thread and a sub thread. The window rendering module 603 may further perform an operation of rendering the first sub-window in an off-screen manner in the main thread and an operation of rendering the second sub-window in an on-screen manner in the sub-thread. At the same time, the synchronous processing operation of the first sub-window and the second sub-window is also performed in the sub-thread. The above method of decomposing a task into sub-threads is adopted in consideration of the fact that if both sub-windows are created (rendered) in the main thread, thread blocking is likely to occur when the synchronization problem of both sub-windows is handled.
In the embodiment of the invention, firstly, the service function realized by each function area in a plurality of function areas contained in a target window and the function type of the service function are determined, then the target window is decomposed according to the function type to obtain a first sub-window and a second sub-window, then the first sub-window is rendered in an off-screen rendering mode, the second sub-window is rendered in a screen rendering mode, and finally the first sub-window and the second sub-window are synchronously processed. The method can reduce the memory occupied by window rendering, lighten the processing load of a CPU, and improve the smoothness of window picture display and the performance of window rendering.
Referring to fig. 7, fig. 7 is a schematic structural diagram of a window rendering apparatus according to an embodiment of the present invention. As shown, the device may include at least one processor 701, at least one communication interface 702, at least one memory 703, and at least one communication bus 704.
The processor 701 may be a central processing unit, a general purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. Which may implement or perform the various exemplary logic blocks, modules and circuits described in connection with this disclosure. The processor may also be a combination that performs the function of a computation, e.g., a combination comprising one or more microprocessors, a combination of a digital signal processor and a microprocessor, and so forth. Communication bus 704 may be a peripheral component interconnect standard PCI bus or an extended industry standard architecture EISA bus, or the like. The buses may be classified as address buses, data buses, control buses, etc. For ease of illustration, only one thick line is shown in fig. 7, but not only one bus or one type of bus. Communication bus 704 is used to enable connected communications between these components. The communication interface 702 of the device in the embodiment of the present invention is used for performing signaling or data communication with other node devices. The Memory 703 may include volatile Memory such as nonvolatile dynamic random access Memory (Nonvolatile Random Access Memory, NVRAM), phase change random access Memory (PHASE CHANGE RAM, PRAM), magnetoresistive random access Memory (Magetoresistive RAM, MRAM), etc., and may also include nonvolatile Memory such as at least one magnetic disk storage device, electrically erasable programmable read-Only Memory (ELECTRICALLY ERASABLE PROGRAMMABLE READ-Only Memory, EEPROM), flash Memory device such as NOR flash Memory (NOR flash Memory) or NAND flash Memory (NAND FLASH Memory), semiconductor device such as Solid state disk (Solid STATE DISK, SSD), etc. The memory 703 may optionally also be at least one storage device located remotely from the aforementioned processor 701. A set of program codes is stored in the memory 703, and the processor 701 executes the programs in the memory 703:
determining a service function realized by each of a plurality of function areas contained in a target window and a function type of the service function;
decomposing the target window according to the function type to obtain a first sub-window and a second sub-window;
Rendering the first sub-window in an off-screen rendering mode, and rendering the second sub-window in a screen rendering mode.
Optionally, the first sub-window and the second sub-window comprise at least one functional area in the plurality of functional areas, the functional types comprise a pixel mixed type, and the business functions of the pixel mixed type are realized based on a pixel mixed technology;
the processor 701 is further configured to perform the following operation steps:
if the service function realized by the functional area comprises the pixel mixed service function, determining that the functional area belongs to the first sub-window, otherwise, determining that the functional area belongs to the second sub-window.
Optionally, the processor 701 is further configured to perform the following operation steps:
and carrying out synchronous processing on the first sub-window and the second sub-window, wherein the synchronous processing comprises synchronous displacement.
Optionally, the processor 701 is further configured to perform the following operation steps:
acquiring the position information of the first sub-window and the second sub-window according to a preset time interval;
determining whether other windows are spaced between the first sub-window and the second sub-window according to the position information;
and when other windows are spaced between the first sub-window and the second sub-window, adjusting the positions of the first sub-window and/or the second sub-window.
Optionally, the processor 701 is further configured to perform the following operation steps:
Controlling the second sub-window to monitor the displacement synchronization message of the first sub-window and controlling the second sub-window to displace according to the displacement synchronization message, and
Controlling the first sub-window to monitor the focus information of the second sub-window, and controlling the first sub-window to displace according to the focus information.
Optionally, the target window corresponds to a main thread and a sub thread;
the processor 701 is further configured to perform the following operation steps:
and rendering the first sub-window in the main thread in the off-screen rendering mode, and rendering the second sub-window in the sub-thread in the screen rendering mode.
Further, the processor may also cooperate with the memory and the communication interface to perform the operations of the window rendering device in the embodiment of the present invention.
In the above embodiments, it may be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed on a computer, produces a flow or function in accordance with embodiments of the present invention, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable apparatus. The computer instructions may be stored in or transmitted from one computer-readable storage medium to another, for example, by wired (e.g., coaxial cable, optical fiber, digital Subscriber Line (DSL)), or wireless (e.g., infrared, wireless, microwave, etc.). The computer readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that contains an integration of one or more available media. The usable medium may be a magnetic medium (e.g., floppy disk, hard disk, tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid state disk Solid STATE DISK (SSD)), etc.
The above-mentioned specific embodiments further describe the objects, technical solutions and advantageous effects of the present invention in detail. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention should be included in the protection scope of the present invention.
Claims (8)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910729361.2A CN112347380B (en) | 2019-08-07 | 2019-08-07 | Window rendering method and related equipment |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910729361.2A CN112347380B (en) | 2019-08-07 | 2019-08-07 | Window rendering method and related equipment |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN112347380A CN112347380A (en) | 2021-02-09 |
| CN112347380B true CN112347380B (en) | 2024-12-17 |
Family
ID=74367430
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201910729361.2A Active CN112347380B (en) | 2019-08-07 | 2019-08-07 | Window rendering method and related equipment |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN112347380B (en) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112947969B (en) * | 2021-03-10 | 2022-12-16 | 支付宝(杭州)信息技术有限公司 | A page off-screen rendering method, device, device and readable medium |
| CN113791857B (en) * | 2021-09-03 | 2024-04-30 | 北京字节跳动网络技术有限公司 | Application window background fuzzy processing method and device in Linux system |
| CN113961119B (en) * | 2021-09-18 | 2022-08-23 | 北京城市网邻信息技术有限公司 | Information display method and device, electronic equipment and storage medium |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| AU2011101579A4 (en) * | 2011-08-31 | 2012-02-02 | Google Llc | Selective rendering of off-screen content |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106445286B (en) * | 2016-09-13 | 2020-05-19 | 北京奇虎科技有限公司 | Method and device for determining focus of terminal screen based on split screen and terminal equipment |
| CN106406901A (en) * | 2016-09-28 | 2017-02-15 | 北京奇虎科技有限公司 | Method and device for moving window |
| CN108269222A (en) * | 2016-12-30 | 2018-07-10 | 华为技术有限公司 | A kind of window rendering intent and terminal |
-
2019
- 2019-08-07 CN CN201910729361.2A patent/CN112347380B/en active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| AU2011101579A4 (en) * | 2011-08-31 | 2012-02-02 | Google Llc | Selective rendering of off-screen content |
Also Published As
| Publication number | Publication date |
|---|---|
| CN112347380A (en) | 2021-02-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110377263B (en) | Image synthesis method, device, electronic device and storage medium | |
| US5889945A (en) | System for dynamically updating information in panels within an attendee bar corresponding to a conference session when selected information regarding to conferencing participants changes | |
| CN113050899B (en) | Method and system for directly displaying video and UI drm based on Wayland protocol | |
| US20070288640A1 (en) | Remote rendering of multiple mouse cursors | |
| CN112347380B (en) | Window rendering method and related equipment | |
| US20110047485A1 (en) | Information processing apparatus, conference system and information processing method | |
| US9899004B2 (en) | Method and device for generating graphical user interface (GUI) for displaying | |
| CN111651079A (en) | Handwriting display method, device, device and computer storage medium | |
| WO2022089330A1 (en) | Method for taking screenshot, apparatus, electronic device, and readable storage medium | |
| US7716685B2 (en) | Pluggable window manager architecture using a scene graph system | |
| CN101388979B (en) | A method for superimposing user interface on video screen | |
| JP2023551670A (en) | Page switching display method, device, storage medium and electronic equipment | |
| US20150082199A1 (en) | Document viewing mechanism for document sharing environment | |
| CN108595134A (en) | Intelligent interactive panel and vector diagram processing method, device and equipment | |
| CN110457102A (en) | Blur method, rendering method and computing device for visible objects | |
| WO2023131105A1 (en) | Display control method and apparatus, and display device and computer-readable medium | |
| CN115396717A (en) | Display device and display image quality adjusting method | |
| CN107562331A (en) | Display method, device and equipment of handwritten characters and storage medium | |
| CN112214149A (en) | Intelligent interactive display device, screen capture method and system thereof, and electronic equipment | |
| US20180018398A1 (en) | Positioning content in computer-generated displays based on available display space | |
| CN114143477B (en) | Image labeling method and device | |
| CN111158822A (en) | Display interface control method and device, storage medium and electronic equipment | |
| US20200258279A1 (en) | Image display method and apparatus, and storage medium | |
| CN114697573B (en) | Subtitle generation method, computer device, and computer-readable storage medium | |
| CN115904284B (en) | Display control methods, systems, electronic devices, and media |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant | ||
| TG01 | Patent term adjustment |
Free format text: NEW EXPIRY DATE: 20391011 |
|
| TG01 | Patent term adjustment |