Split-screen display method and device, computer equipment and storage medium
By generating virtual monitors and performing position mapping, the problem that existing split-screen solutions cannot achieve full-screen is solved, and the effect of independent full-screen display of each virtual monitor is achieved.
Patent Information
- Application Number
- CN202411960294.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-27
- Publication Date
- 2025-04-29
AI Technical Summary
The existing split-screen solution cannot achieve full-screen, which will cause the entire desktop to be filled and affect usage when some applications enter full-screen.
By generating a virtual monitor corresponding to each work area, and setting the position of the virtual monitor according to the preset position mapping relationship between the work area and the virtual monitor, the position of the virtual monitor is set, and its display screen is rendered to the corresponding work area in the physical screen in real time.
It realizes the full screen display application window in any virtual monitor without affecting the display effect of other virtual monitors, solving the problem of screen fullness caused by full screen.
Smart Images

Figure CN119902840A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of screen display technology, and in particular to a method, device, computer equipment and storage medium for split-screen display. Background Art
[0002] Operating systems generally implement task processing based on windows and can support multiple windows. Windows usually exist in a stacked manner, and only the top-most window is active and can accept user input. If operations need to be performed between multiple windows, users need to switch windows frequently, which may distract attention and reduce work efficiency. For high-resolution displays (such as 4K, 8K displays, etc.), dividing them into multiple working areas to achieve split screen can effectively solve the above problems.
[0003] The current split-screen method generally sets the size and starting position of the window so that multiple windows can be displayed within their respective specified ranges, visually dividing the screen into multiple working areas. Since this solution only adjusts the size and position of the window, when some applications enter full-screen mode, they will fill the entire desktop, affecting usage. Summary of the invention
[0004] In view of this, the present invention provides a method, apparatus, computer device and storage medium for split-screen display to solve the problem that the existing split-screen solution cannot achieve full-screen display.
[0005] In a first aspect, the present invention provides a split-screen display method, comprising:
[0006] According to the current number of split screens N and the split screen arrangement mode, determine N working areas arranged in the physical screen according to the split screen arrangement mode; the working area is a partial display area of the physical screen, N≥2;
[0007] Generate a virtual monitor corresponding to each of the working areas, and set the position of the virtual monitor according to a preset position mapping relationship between the working area and the virtual monitor;
[0008] The display images of the virtual monitors are rendered in real time to the corresponding working areas in the physical screen according to the position mapping relationship.
[0009] In some optional implementations, the position mapping relationship is:
[0010] X2=a*X1+ΔX;
[0011] Y2=a*Y1+ΔY;
[0012] Among them, (X1, Y1) represents the position coordinates of the working area, (X2, Y2) represents the position coordinates of the corresponding virtual monitor, ΔX represents the preset horizontal axis movement amount, ΔY represents the preset vertical axis movement amount, a is the size scaling ratio between the virtual monitor and the working area; and, |ΔX|≥W0, and / or, |ΔY|≥H0; W0 is the display width of the physical screen, and H0 is the display height of the physical screen.
[0013] In some optional embodiments, the method further comprises:
[0014] According to an operation event triggered by a user, control data for controlling the virtual monitor is generated.
[0015] In some optional implementations, when the operation event is a touch event, generating control data for controlling the virtual monitor according to the operation event triggered by the user includes:
[0016] Acquire original touch data corresponding to the touch event; the original touch data includes original position coordinates corresponding to the touch position;
[0017] According to the position mapping relationship, the original position coordinates are mapped into corresponding corrected position coordinates;
[0018] The original position coordinates in the original touch data are updated to the modified position coordinates to generate modified touch data; the modified touch data is included in the control data and is used to instruct the virtual monitor at the modified position coordinates to respond to the touch event according to the modified touch data.
[0019] In some optional implementations, the acquiring original touch data corresponding to the touch event includes:
[0020] Based on the first filter driver pre-set in the driver layer, the original touch data corresponding to the touch event is intercepted and acquired from the driver layer.
[0021] In some optional implementations, when the operation event is a mouse movement event, generating control data for controlling the virtual monitor according to the operation event triggered by the user includes:
[0022] When the mouse pointer is currently located at the first position coordinate of the virtual monitor, obtaining a movement instruction corresponding to the mouse movement event; the movement instruction includes a corresponding movement increment;
[0023] Determine a second position coordinate corresponding to adding the movement increment to the first position coordinate;
[0024] When the second position coordinate is not located at the virtual monitor, the movement increment is updated, and a third position coordinate corresponding to the updated movement increment is added to the first position coordinate, which is located at the boundary of the virtual monitor; the updated movement increment is included in the control data.
[0025] In some optional implementations, obtaining the movement instruction corresponding to the mouse movement event includes:
[0026] Based on a second filter driver pre-set in the driver layer, intercepting and acquiring a movement instruction corresponding to the mouse movement event from the driver layer;
[0027] The method further comprises:
[0028] When the second position coordinate is located at the virtual monitor, sending a continue instruction to the second filter driver to instruct the second filter driver to continue to transmit the move instruction;
[0029] When the second position coordinate is not located at the virtual monitor, the updated movement increment is sent to the second filter driver to instruct the second filter driver to continue to transmit the movement instruction with the updated movement increment.
[0030] In some optional embodiments, the method further comprises:
[0031] When the initial position coordinates of the mouse pointer are located within the display area of the physical screen, the initial position coordinates are updated to position coordinates located on the virtual monitor.
[0032] In a second aspect, the present invention provides a split-screen display device, comprising:
[0033] A determination module, used to determine N working areas arranged in the physical screen according to the current number of split screens N and the split screen arrangement mode; the working area is a partial display area of the physical screen, N≥2;
[0034] A processing module, used for generating a virtual monitor corresponding to each of the working areas, and setting the position of the virtual monitor according to a preset position mapping relationship between the working area and the virtual monitor;
[0035] A rendering module is used to render the display images of each virtual monitor to the corresponding working area in the physical screen in real time according to the position mapping relationship.
[0036] In a third aspect, the present invention provides a computer device, comprising: a memory and a processor, the memory and the processor being communicatively connected to each other, the memory storing computer instructions, and the processor executing the split-screen display method of the first aspect or any corresponding embodiment thereof by executing the computer instructions.
[0037] In a fourth aspect, the present invention provides a computer-readable storage medium having computer instructions stored thereon, the computer instructions being used to enable a computer to execute the split-screen display method of the first aspect or any corresponding embodiment thereof.
[0038] In a fifth aspect, the present invention provides a computer program product, comprising computer instructions for causing a computer to execute the split-screen display method of the first aspect or any corresponding embodiment thereof.
[0039] The present invention creates multiple virtual monitors according to the split-screen requirements. There is a position mapping relationship between the virtual monitor and the working area of the physical screen. After the screen of the virtual monitor is obtained, the display screen of the virtual monitor can be rendered to the working area of the physical screen in real time based on the position mapping relationship, so that the display screens of multiple virtual monitors can be displayed based on the physical screen to achieve a split-screen effect. In addition, each virtual monitor is an independent desktop, each virtual monitor can display one or more windows, and full-screen display in any virtual monitor will not affect the display effect of other virtual monitors. BRIEF DESCRIPTION OF THE DRAWINGS
[0040] In order to more clearly illustrate the specific embodiments of the present invention or the technical solutions in the related technologies, the drawings required for use in the specific embodiments or the related technical descriptions will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0041] Figure 1 It is a schematic diagram of splitting the screen through the management window;
[0042] Figure 2 is a schematic flow chart of a method for split-screen display according to an embodiment of the present invention;
[0043] Figure 3 is a schematic diagram of four split-screen solutions according to an embodiment of the present invention;
[0044] Figure 4 is a flow chart of another split-screen display method according to an embodiment of the present invention;
[0045] Figure 5is a schematic diagram of generating four virtual monitors according to an embodiment of the present invention;
[0046] Figure 6 This is a schematic diagram of a display effect of performing a four-screen split on a physical screen according to an embodiment of the present invention;
[0047] Figure 7 is a schematic diagram of rendering a virtual monitor screen according to an embodiment of the present invention;
[0048] Figure 8 is a schematic diagram of a process for processing a touch event according to an embodiment of the present invention;
[0049] Fig. 9 is a schematic diagram of updating initial position coordinates according to an embodiment of the present invention;
[0050] Fig.10 is a schematic diagram of adjusting a movement increment according to an embodiment of the present invention;
[0051] Fig.11 is a schematic diagram of a mouse device driver stack according to an embodiment of the present invention;
[0052] Fig.12 is a structural block diagram of a device for split-screen display according to an embodiment of the present invention;
[0053] Fig.13 It is a schematic diagram of the hardware structure of a computer device according to an embodiment of the present invention. DETAILED DESCRIPTION
[0054] In order to make the purpose, technical solution and advantages of the embodiments of the present invention clearer, the technical solution in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present invention.
[0055] Visual operations of operating systems such as Windows are implemented based on their desktops and windows within the desktops. Generally, a desktop represents a display device. Windows supports multiple windows existing on a desktop at the same time, but the windows are in a stacked state, and only the top window is active. If you need to operate between multiple windows, you need to switch windows back and forth, which affects the user experience. In addition, the full-screen state of a window will occupy a desktop exclusively, and some applications, such as Office Power Point, happen to be in full-screen state in their normal working state. At this time, other applications on the same desktop are unavailable.
[0056] For high-resolution displays, it is generally desirable to divide multiple work areas on the same display, where each work area can support normal display and full-screen display of windows in its area, just like an independent display. Therefore, a method for subdividing the display is required.
[0057] Current split-screen methods, such as Snap split-screen, generally achieve the purpose of dividing the screen into multiple working areas visually by setting the window size and starting position so that multiple windows can be displayed within their respective specified ranges.
[0058] However, this method only adjusts the size and position of the window. When an application window is in full screen, it will still cover the entire desktop. For example, for some special applications, such as Office Power Point or WPS presentation, when it enters presentation mode, it will also switch from split screen state to occupying the entire desktop.
[0059] In addition, some application windows have a minimum size. When this minimum size is larger than the size of the split-screen area, the application window cannot be adjusted to a size consistent with the preset split-screen state, causing the application window to exceed the split-screen area. For example, if the desktop is divided into four working areas in a four-square grid, and if the minimum size of an application window is 2 / 3 of the entire screen, the size of the application window will exceed the preset working area and will cover the working areas of some other windows.
[0060] Some solutions use the management window to split the screen, such as Figure 1 As shown, the solution is mainly as follows: for an application window A that needs to manage its position and size, a parent window B with a specific size at a specific position is set, and the application window A is set within the parent window B. Then, operations such as enlarging, moving, and full-screening the application window A will all be within the working area of the parent window B.
[0061] This operation of setting window B as the parent window of application window A is an intrusive operation for application window A. This operation not only changes the appearance of application window A, but also causes some applications to have abnormalities due to this operation, such as interface communication abnormalities, display abnormalities (for example, semi-transparent display cannot be displayed), etc., making the functions unusable.
[0062] The embodiment of the present invention provides a method for split-screen display, which creates multiple virtual monitors according to the split-screen requirements, maps the virtual monitors to a portion of the display area of the physical screen and renders them, so that the images of multiple virtual monitors can be displayed based on the physical screen to achieve a split-screen effect. In addition, each virtual monitor is an independent desktop, which can be displayed in full screen in any virtual monitor without affecting the display effects of other virtual monitors.
[0063] According to an embodiment of the present invention, a method embodiment of split-screen display is provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in an order different from that shown here.
[0064] In this embodiment, a split-screen display method is provided, which can be applied to devices such as laptops, personal computers, smart TVs, etc. that can be connected to a physical screen. Figure 2 is a flow chart of a method for split-screen display according to an embodiment of the present invention. Figure 2 As shown, the process includes the following steps.
[0065] Step S201, according to the current number of split screens N and the split screen arrangement mode, determine N working areas arranged in the physical screen according to the split screen arrangement mode; the working area is a partial display area of the physical screen, N≥2.
[0066] In this embodiment, when a user is using a device with a physical screen, if there is a need for split-screen display, for example, the physical screen is a high-resolution display screen, and multiple application windows need to be displayed simultaneously based on the physical screen, the screen can be split. For example, the device can automatically split the screen, or the user can actively input a corresponding split-screen instruction to achieve split screen.
[0067] Among them, when it is necessary to split the screen, it is necessary to determine the number of split screens N and the arrangement of the split screens required. For example, the split screen instruction input by the user includes the number of split screens N and the arrangement of N areas, that is, the split screen arrangement. It can be understood that the purpose of splitting the screen is to divide multiple areas, so N≥2.
[0068] For example, multiple split-screen solutions can be presented to the user, each of which corresponds to a certain number of split-screens and a split-screen arrangement. The user can trigger the split-screen command by selecting the desired split-screen solution. Alternatively, the user can manually input the number of split-screens N and adjust the position and size of each area by themselves to set a split-screen arrangement that meets their needs.
[0069] Figure 3 A schematic diagram of four screen splitting solutions is shown, including two-screen splitting, three-screen splitting, four-screen splitting, etc. Of course, other screen splitting solutions can also be used, and this embodiment does not limit this.
[0070] In addition, the split-screen instruction can be one instruction, that is, the split-screen number N and the split-screen arrangement method are set simultaneously based on one instruction; or, the split-screen instruction can also be two instructions, that is, the split-screen number N and the split-screen arrangement method are set separately, and this embodiment does not limit this.
[0071] In this embodiment, in order to enable split-screen display, the physical screen needs to be split, that is, the physical screen needs to be divided into N working areas, each working area corresponds to a partial display area of the physical screen, so that when it is subsequently displayed according to the N working areas, a split-screen display effect can be achieved.
[0072] Moreover, the arrangement of these N working areas is the same as the above-mentioned split-screen arrangement to ensure that the subsequent split-screen display effect meets user needs.
[0073] It should be noted that since the present embodiment implements split screen based on a virtual monitor (virtual display), there is no need to divide the display area of the physical screen; in the above step S201, it is only necessary to be able to determine N working areas, such as determining the positions and sizes of the N working areas, and there is no need to divide the physical screen.
[0074] Step S202: Generate a virtual monitor corresponding to each work area, and set the position of the virtual monitor according to a preset position mapping relationship between the work area and the virtual monitor.
[0075] In this embodiment, if the physical display screen needs to be divided into N working areas, a corresponding number of virtual monitors, i.e., N virtual monitors, are generated, and the virtual monitors correspond to the working areas one by one. For devices using the Windows operating system, an indirect display driver (IDD) technology can be used to create multiple virtual monitors.
[0076] Specifically, when N virtual monitors need to be created, an IDD driver is created. When the device to which the IDD driver belongs enters the D0 power state (i.e., the power-on state), the system calls the driver's EvtDeviceD0Entry callback function. And, a WDDM (Windows Display Driver Model) graphics adapter is created in the EvtDeviceD0Entry function. When creating a WDDM graphics adapter, it is necessary to specify the maximum number of monitors that the adapter can be connected to at the same time. Here, the maximum number of monitors is the number of virtual monitors N that need to be created.
[0077] When the graphics adapter is initialized, the system calls the EvtIddCxAdapterInitFinished function to notify the IDD driver. N virtual monitors are created by calling the IddCxMonitorCreate function in the EvtIddCxAdapterInitFinished function, and the IddCxMonitorArrival function is called to tell the system that the virtual monitor creation is complete. At this point, N virtual monitors are added.
[0078] In this embodiment, the virtual monitor and the physical screen are both a type of monitor. The physical screen and each virtual monitor have a certain position and do not overlap each other. To facilitate subsequent processing, it is necessary to predetermine the mapping relationship between the position of the virtual monitor and the position of the corresponding working area, that is, the position mapping relationship.
[0079] Among them, the position mapping relationship is the mapping relationship between the position coordinates of the working area and the virtual monitor; based on the split-screen requirements (the number of split-screens N and the split-screen arrangement method), the position coordinates of each working area in the display area of the physical screen can be determined, and then based on the position mapping relationship, the position coordinates of the virtual monitor can be determined, and the position coordinates of each virtual monitor can be set to the position coordinates determined at this time, thereby realizing the position setting of the virtual monitor.
[0080] Step S203: Rendering the display images of each virtual monitor to the corresponding working area of the physical screen in real time according to the position mapping relationship.
[0081] Since each virtual monitor is located outside the display area of the physical screen, the user cannot see the display screen of the virtual monitor when displaying based on the physical screen. In this embodiment, for each virtual monitor, the virtual monitor is mapped to the corresponding work area according to the position mapping relationship, and then after the display screen of the virtual monitor is obtained, the display screen can be mapped and rendered to the corresponding work area in real time, so that the display screen of each virtual monitor can be displayed in real time in each work area of the physical screen. From the user's perspective, the physical screen realizes split-screen display, and a desktop (i.e., the display screen of the virtual monitor) is displayed in each work area. The user can display each application window in each desktop separately, and when an application window is maximized, it will only cover one of the desktops, that is, only one virtual monitor displays the content of the application window in full screen, which does not affect the display of other desktops (i.e., other virtual monitors).
[0082] The split-screen display method provided in this embodiment creates multiple virtual monitors according to the split-screen requirements. There is a position mapping relationship between the virtual monitor and the working area of the physical screen. After the image of the virtual monitor is obtained, the display image of the virtual monitor can be rendered in real time to the working area of the physical screen based on the position mapping relationship, so that the display images of multiple virtual monitors can be displayed based on the physical screen to achieve a split-screen effect. In addition, each virtual monitor is an independent desktop, each virtual monitor can display one or more windows, and full-screen display in any virtual monitor will not affect the display effect of other virtual monitors.
[0083] In this embodiment, another split-screen display method is provided, which can be applied to devices that can be connected to a physical screen, such as laptops, personal computers, and smart TVs. Figure 4 is a flow chart of a method for split-screen display according to an embodiment of the present invention. Figure 4 As shown, the process includes the following steps.
[0084] Step S401, obtaining the user's split screen instruction; the split screen instruction includes the number of split screens N and the split screen arrangement method; N≥2.
[0085] In this embodiment, the user can actively split the screen as needed by actively inputting a split screen command.
[0086] Step S402, determining N working areas arranged in a split-screen arrangement in the physical screen; the working area is a partial display area of the physical screen.
[0087] For details, please see Figure 2 Step S201 of the illustrated embodiment will not be described in detail here.
[0088] Step S403: Generate a virtual monitor corresponding to each work area, and set the position of the virtual monitor according to a preset position mapping relationship between the work area and the virtual monitor.
[0089] In this embodiment, the working area is a partial display area in the physical screen, so each working area has certain position coordinates and a certain size; when generating a virtual monitor, the position coordinates and size of each virtual monitor are allocated and set based on the position coordinates and size of each working area.
[0090] Specifically, after generating N virtual monitors, the position coordinates of the working area are adjusted according to the position mapping relationship, so that the position coordinates of the virtual monitor corresponding to the working area can be determined. Among them, the position mapping relationship corresponding to each virtual monitor is the same, that is, when setting the position of each virtual monitor, the same position mapping relationship is used. For each working area, the position coordinates of the virtual monitor are determined by the same translation method, that is, the position mapping relationship corresponding to each virtual monitor is the same, which can not only simplify the processing, but also if each working area is seamless in the physical screen, then the generated virtual monitors are also seamless, so that seamless display can be achieved.
[0091] The position mapping relationship is specifically: X2=a*X1+ΔX; Y2=a*Y1+ΔY.
[0092] Among them, (X1, Y1) represents the position coordinates of the working area, (X2, Y2) represents the position coordinates of the corresponding virtual monitor, ΔX represents the preset horizontal axis movement amount, ΔY represents the preset vertical axis movement amount, a is the size scaling ratio between the virtual monitor and the working area; and, |ΔX|≥W0, and / or, |ΔY|≥H0; W0 is the display width of the physical screen, and H0 is the display height of the physical screen.
[0093] In this embodiment, a certain size scaling ratio a can be set between the virtual monitor and the working area of the physical screen, that is, the size of the virtual monitor and the working area can be different. For example, the size scaling ratio a=2, if the size of the working area is 1920×1080, then the size of each virtual monitor is 3840×2160.
[0094] In addition, a certain movement amount is pre-set for each working area, and the movement amount includes a horizontal axis movement amount ΔX and a vertical axis movement amount ΔY; as the name suggests, the horizontal axis movement amount ΔX is used to translate the horizontal coordinate (the coordinate in the width direction), and the vertical coordinate movement amount ΔY is used to translate the vertical coordinate (the coordinate in the height direction).
[0095] Specifically, if the horizontal coordinate of the working area is X1, it is translated based on the horizontal coordinate movement amount ΔX, combined with the size scaling ratio a, the horizontal coordinate X2 of the corresponding virtual monitor can be determined, that is, X2 = a*X1 + ΔX. Similarly, the vertical coordinate Y2 of the corresponding virtual monitor can be determined as a*Y1 + ΔY.
[0096] To ensure that the virtual monitor does not overlap with the physical screen, the absolute value of the horizontal axis movement ΔX (i.e., |ΔX|) may not be less than the display width W0 of the physical screen, i.e., |ΔX|≥W0; or, the absolute value of the vertical axis movement ΔY (i.e., |ΔY|) may not be less than the display height H0 of the physical screen, i.e., |ΔY|≥H0. Of course, |ΔX|≥W0 and |ΔY|≥H0 are also possible. In other words, at least one of |ΔX|≥W0 and |ΔY|≥H0 needs to be satisfied.
[0097] To simplify the process, the size scaling ratio a can be set to 1, that is, the size of the virtual monitor is the same as the size of the corresponding work area. When the screen of the virtual monitor is subsequently mapped to the work area, there is no need to scale the screen, and the implementation method is simple. At this time, X2 = X1 + ΔX; Y2 = Y1 + ΔY.
[0098] The position coordinates of the virtual monitor can be determined by translation along the horizontal axis or the vertical axis. In this case, the movement amount only needs to include one of the horizontal coordinate movement amount ΔX and the vertical coordinate movement amount ΔY, and the other is 0.
[0099] Figure 5 FIG. 4 shows a schematic diagram of generating four virtual monitors (N=4), wherein the horizontal axis represents the width and the vertical axis represents the height. Figure 5 As shown, the display width of the physical screen is W0, and the display height is H0; if the current split screen area is divided into four equal parts, then each work area can be moved positively along the horizontal axis by W0, that is, the horizontal coordinate movement amount ΔX = W0, and the vertical coordinate movement amount ΔY = 0. By translation, the position coordinates of the virtual monitor 1 corresponding to the work area ①, the position coordinates of the virtual monitor 2 corresponding to the work area ②, the position coordinates of the virtual monitor 3 corresponding to the work area ③, and the position coordinates of the virtual monitor 4 corresponding to the work area ④ can be determined.
[0100] Since the virtual monitor is square in shape, the shape of the virtual monitor can be characterized by determining the position coordinates of a certain position of the virtual monitor and the size (including height and width) of the virtual monitor. Generally, the coordinates of the upper left corner of the virtual monitor can be used as the position coordinates of the virtual monitor.
[0101] For example, the resolution of the physical screen is 3840×2160, that is, W0=3840, H0=2160; where the physical screen is set as the primary screen of the system, the position coordinates of the physical screen in the system are (0,0), which are also the starting coordinates of the physical screen in the system. Figure 5 As shown, the position coordinates and sizes of each virtual monitor are as follows:
[0102] Virtual monitor 1: resolution 1920×1080, starting coordinates (3840, 0), the starting position of the corresponding working area ① on the physical screen is (0, 0), and the size is 1920×1080.
[0103] Virtual monitor 2: resolution 1920×1080, starting coordinates (5760, 0), the starting position of the corresponding working area ② on the physical screen is (1920, 0), and the size is 1920×1080.
[0104] Virtual monitor 3: resolution 1920×1080, starting coordinates (3840, 1080), its starting position in the physically corresponding working area ③ is (0, 1080), and the size is 1920×1080.
[0105] Virtual monitor 4: resolution 1920×1080, starting coordinates (5760, 1080), its starting position in the physically corresponding working area ④ is (1920, 1080), and the size is 1920×1080.
[0106] Based on the above processing method, virtual monitors can be seamlessly spliced with each other in the system, and a certain application window can be displayed across desktops, that is, an application window can be displayed across multiple virtual monitors.
[0107] Figure 6 The figure is a schematic diagram of a display effect of four-split screen on a physical screen. Figure 6 As shown, the physical screen is divided into four working areas, each of which is used to display the screen of the corresponding virtual monitor, so that the physical screen can display four desktops. In addition, these virtual monitors are seamlessly spliced, and the middle part of the screen is an Explorer window. When the Explorer window is distributed on the four virtual monitors, the Explorer window screen can also be fully displayed on the physical screen.
[0108] Step S404: Render the display images of each virtual monitor to the corresponding working area of the physical screen in real time according to the position mapping relationship.
[0109] For details, please see Figure 2 Step S203 of the illustrated embodiment will not be described in detail here.
[0110] Take the example of splitting the physical screen into four parts. Figure 7 A schematic diagram of rendering the display images of each virtual monitor to the corresponding working area is shown, wherein the display images of the virtual monitors can be copied to the corresponding working area to display the display images of the virtual monitors in the working area.
[0111] Step S405: generating control data for controlling the virtual monitor according to the operation event triggered by the user.
[0112] In this embodiment, when the user needs to change the display screen of the physical screen, the user can operate the device to trigger a corresponding operation event; based on the instruction corresponding to the operation event, the corresponding control data is generated, and the control data is used to control the virtual monitor to adjust the screen of the virtual monitor as needed. For example, when the user opens an application window, a control instruction for opening the application window can be generated, and then the corresponding application window is displayed in the virtual monitor based on the control instruction.
[0113] In some optional implementations, if the physical screen is a touch display screen, the user can trigger a corresponding touch event based on the physical screen, that is, the operation event can be a touch event; since the touch event of the touch screen will only be triggered on the physical screen, after the screen of the virtual monitor is displayed on the physical screen in the above step S404, if you want to use the touch action on the physical screen to control the display content of the virtual monitor, you need to map the touch event. Specifically, the above step S405 "generating control data for controlling the virtual monitor according to the operation event triggered by the user" can include the following steps B1 to B3.
[0114] Step B1, obtaining original touch data corresponding to a touch event; the original touch data includes original position coordinates corresponding to the touch position.
[0115] In this embodiment, when the user operation is to touch the physical screen of the display screen, for example, the user clicks a certain position on the touch display screen, a corresponding operation event can be triggered, so that touch data corresponding to the touch event, that is, original touch data, can be obtained.
[0116] The original touch data includes the position coordinates corresponding to the touch position, that is, the original position coordinates. In addition, the original touch data may also include information such as a touch event ID and a touch type (touch pressed / moved / lifted).
[0117] Optionally, the above step B1 “obtaining original touch data corresponding to the touch event” may specifically include step B11.
[0118] Step B11: Based on the first filter driver pre-set in the driver layer, the original touch data corresponding to the touch event is intercepted and acquired from the driver layer.
[0119] The touch display screen is usually a HID (Human Interface Devices) device, which can realize communication based on a corresponding bus driver, such as a USB bus, a PCI (Peripheral Component Interconnect) bus or Bluetooth, etc. In this embodiment, by adding a filter driver, i.e., a first filter driver, to the bus driver, the original message data of the touch event can be directly obtained from the driver layer.
[0120] Furthermore, the first filter driver obtains the original touch data in an interception manner, so that other functional units do not need to process the original touch data, thereby reducing the processing load.
[0121] Step B2: Mapping the original position coordinates to corresponding corrected position coordinates according to the position mapping relationship.
[0122] Step B3, updating the original position coordinates in the original touch data to the modified position coordinates to generate modified touch data; the modified touch data is included in the control data and is used to instruct the virtual monitor at the modified position coordinates to respond to the touch event according to the modified touch data.
[0123] In this embodiment, the original position coordinates are the position coordinates in the physical screen. In order to determine the corresponding position coordinates in the virtual monitor, the original position coordinates can be mapped based on the position mapping relationship between the working area and the virtual monitor, so that the position coordinates in the virtual monitor can be determined, that is, the corrected position coordinates.
[0124] Furthermore, the original position coordinates in the original touch data are updated according to the corrected position coordinates, so that new touch data, i.e., corrected touch data, can be obtained. For example, the corrected touch data may include a touch event ID, a touch type, and a corrected position coordinate, so the corrected touch data is equivalent to receiving a touch event at the corrected position coordinate, so the virtual monitor can respond to the touch event according to the corrected touch data, and then perform corresponding processing.
[0125] Take the touch screen device as an example of a HID device based on the USB bus. Figure 8 FIG. 1 shows a schematic diagram of a process for processing touch events. Figure 8 As shown, by attaching a first filter driver to the USB bus driver, the original touch message data, that is, the original touch data, can be directly obtained from the driver layer. HID touch devices based on other buses can also achieve this purpose by attaching an upper filter driver to the corresponding bus driver.
[0126] Specifically, Figure 8As shown, the USBCCGP / USBHUB (USB bus driver) in the USB bus driver stack can parse the message format of the touch data according to the report descriptor obtained from the touch display screen (physical screen), and then convert the obtained touch message data into touch coordinates (x, y), touch ID, touch press / move / lift events and other information. Among them, the message format can be parsed from the report descriptor and the touch message can be converted into touch coordinates and other information based on the HID specification, which will not be described in detail here.
[0127] The original touch data obtained by the first filter driver can be remapped to the virtual display through the InjectTouchInput function, so as to determine the corrected position coordinates. Figure 8 As shown in , if the original position coordinates of the touch event are (x1, y1) in the physical screen, the corrected position coordinates (x2, y2) in the corresponding virtual monitor can be determined through coordinate mapping. Figure 8 As described above, if the position mapping relationship is a translation relationship, and the width of the physical screen is W0, then the corrected position coordinates (x2, y2) satisfy: x2=W0+x1, y2=y1.
[0128] Among them, a component with a split-screen rendering function can be set at the user layer, and the component processes the touch data to obtain the corrected touch data. In addition, after the first filter driver intercepts the original touch data, the back-end HIDUSB.SYS (a driver that allows USB devices to communicate with the operating system), HIDCLASS.SYS (a class driver for processing human interface devices), Win32K.sys (a driver that mainly implements window management) and other system drivers do not need to process the original touch data, that is, do not respond to touch events.
[0129] In some optional implementations, the user can also trigger the corresponding operation event through the mouse. The triggering of mouse events is quite different from the triggering of touch events. For example, compared with the touch coordinate data (original position coordinates) reported by the touch screen to the system as the absolute coordinates of the screen, the coordinate data reported by the mouse to the system is the relative position of the current mouse movement, generally the displacement. Therefore, for the processing of mouse events, it is not necessary to simulate the touch event in another place after the driver layer obtains the original data, as in the case of touch events, but to move the initial position of the mouse to the virtual monitor.
[0130] Specifically, if the operation event is a mouse movement event, the method further includes the following steps C1.
[0131] Step C1: when the initial position coordinates of the mouse pointer are located in the display area of the physical screen, the initial position coordinates are updated to position coordinates located on the virtual monitor.
[0132] In this embodiment, since the mouse event reports the displacement, the initial position of the mouse is adjusted once at the initial moment, such as when the leveling begins, and then the mouse position coordinates can be adaptively updated based on the mouse displacement, without the need to correct the mouse position coordinates each time.
[0133] Specifically, at the initial moment, such as when generating N virtual monitors or mapping the virtual monitor screen for the first time, determine the position coordinates of the mouse pointer at this time, that is, the initial position coordinates; for example, the initial position coordinates can be obtained from the driver layer, or from the software layer, which is not limited here.
[0134] If the initial position coordinates are currently located in a virtual monitor, no processing is required; if the initial position coordinates are currently located in the display area of the physical screen, the mouse pointer can be moved to the virtual monitor, that is, the initial position coordinates are updated to the position coordinates located on a virtual monitor.
[0135] The initial position coordinates may be updated to position coordinates located at the virtual monitor based on a position mapping relationship between the working area and the virtual monitor.
[0136] For example, Fig. 9 A schematic diagram of updating the initial position coordinates is shown. Fig. 9 As shown, if the initial position coordinates (x3, y3) of the mouse pointer are located in the physical screen, the corresponding position coordinates (x4, y4) in the virtual monitor can be determined based on the translation method. For example, if the width of the physical screen is W0, then: x4 = W0 + x3, y4 = y3.
[0137] After the mouse pointer is moved to the virtual monitor, the display screen of the virtual monitor (including the mouse pointer) is rendered to the physical screen in real time, so the mouse pointer can be displayed on the physical screen; and the user moves the mouse corresponding to a certain displacement, and the position coordinates of the mouse pointer are adjusted in the virtual monitor based on the displacement, which has the same effect as adjusting the position coordinates of the mouse pointer in the original physical screen, and there is no need to correct the position coordinates of the mouse pointer every time afterwards. In other words, when the user moves the mouse, for the device, the actual position coordinates of the mouse pointer are located in the virtual monitor outside the display area of the physical screen; but because the display screen of the virtual monitor is mapped to the physical screen, from the user's perspective, the mouse pointer is moving in the physical screen.
[0138] Optionally, the above step S405 “generating control data for controlling the virtual monitor according to the operation event triggered by the user” may include the following steps C2 to C4.
[0139] Step C2: when the mouse pointer is currently located at the first position coordinate of the virtual monitor, obtaining a movement instruction corresponding to the mouse movement event; the movement instruction includes a corresponding movement increment.
[0140] In this embodiment, when the user clicks the mouse, since the mouse pointer is located in the virtual monitor, the virtual monitor can directly respond to the mouse click event. However, unlike touch events that can only be triggered on the physical screen, mouse events can be triggered on any display connected to the system (including the physical screen and any virtual monitor). When the user moves the mouse, since there are actually a physical screen and multiple virtual monitors at this time, the mouse pointer may be moved to the physical screen, causing the virtual monitor to be unable to correctly respond to the mouse click event. Therefore, in this embodiment, in addition to moving the mouse position to the virtual monitor at the beginning, the mouse position needs to be always restricted to the virtual monitor.
[0141] Specifically, if the mouse pointer is currently located in the virtual monitor and its position coordinates are the first position coordinates; and the user moves the mouse, thereby triggering the movement instruction of the mouse pointer. As described above, the movement instruction only includes relative displacement, and this embodiment refers to the relative displacement as movement increment.
[0142] Step C3, determining a second position coordinate corresponding to the first position coordinate increased by the movement increment.
[0143] Step C4, when the second position coordinate is not located at the virtual monitor, the movement increment is updated, and a third position coordinate corresponding to the updated movement increment is added to the first position coordinate, which is located at the boundary of the virtual monitor; the updated movement increment is included in the control data.
[0144] In this embodiment, when the mouse pointer is located at the first position coordinates and a move command is triggered, the position of the mouse pointer needs to be moved according to the corresponding movement increment, that is, from the first position coordinates to the new position coordinates; in this embodiment, the new position coordinates are first calculated and called the second position coordinates.
[0145] If the second position coordinates are still located in a certain virtual monitor, it means that the movement instruction is a movement instruction in the virtual monitor, and the user can still see the mouse pointer mapped and rendered in the physical screen normally, so there is no need to update the movement increment of the movement instruction. It can be understood that since there are multiple virtual monitors, as long as the mouse pointer is located in any virtual monitor after the movement, it will be fine.
[0146] On the contrary, if the calculated second position coordinates are not located on the virtual monitor, for example, the second position coordinates are located in the display area of the physical screen, then it means that the movement instruction will cause the mouse pointer to move from the virtual monitor to the physical screen, that is, it exceeds the display range of the virtual screen. In order to correctly display the mouse pointer, in this embodiment, the mouse pointer is restricted to the virtual monitor.
[0147] Specifically, the movement increment of the movement instruction is updated to set the updated position coordinate (i.e., the third position coordinate corresponding to the first position coordinate plus the updated movement increment) at the boundary of the virtual monitor. The movement increment is a displacement with a direction, and the intersection point between the movement increment and the boundary of the virtual monitor can be determined, and the displacement between the first position coordinate and the intersection point is used as the updated movement increment.
[0148] Fig.10 A schematic diagram of adjusting the movement increment is shown. Fig.10 As shown, when the move instruction is triggered, the mouse pointer is located at position A, that is, the coordinates corresponding to position A are the first position coordinates; and the horizontal distance between position A and the boundary between the virtual monitor 1 and the physical screen is Δx2. If the movement increment of the current move instruction is to move horizontally to the left by Δx1, then without restricting the mouse pointer, the mouse pointer will move to position B, and the coordinates of position B are the second position coordinates. At this time, the mouse pointer will enter the physical screen, and because the physical screen is covered by the screen of the virtual monitor, the user cannot see the mouse pointer, and may even trigger an erroneous operation. In this embodiment, the movement increment of the move instruction is updated from Δx1 to Δx2, so that after the mouse pointer is moved based on the updated move instruction, the mouse pointer will be located at the boundary of the virtual monitor 1, that is, at position C, and the coordinates of position C are the third position coordinates.
[0149] It can be understood that the device can support touch events and mouse events (including mouse movement events). For example, the device includes a touch display screen that can be connected to a mouse. The user can control the display screen through touch events or mouse events, and the two events do not conflict.
[0150] Optionally, the above step C2 of “obtaining a movement instruction corresponding to the mouse movement event” may include step C21.
[0151] Step C21, based on the second filter driver pre-set in the driver layer, intercept and obtain the movement instruction corresponding to the mouse movement event from the driver layer.
[0152] Furthermore, the method further includes step C5 to step C6.
[0153] Step C5: When the second position coordinate is located at the virtual monitor, a continue instruction is sent to the second filter driver to instruct the second filter driver to continue to transmit the movement instruction.
[0154] Step C6, when the second position coordinate is not located at the virtual monitor, sending the updated movement increment to the second filter driver to instruct the second filter driver to continue to transmit the movement instruction with the updated movement increment.
[0155] In this embodiment, by modifying the initial position of the mouse, the virtual monitor can directly respond to subsequent mouse click events, etc., without the need for additional processing; and for movement events involving moving the mouse pointer, a corresponding filter driver is pre-set in the driver layer, that is, a second filter driver, which is used to intercept and obtain the movement instructions of the mouse pointer from the driver layer; if the movement instructions need to be modified later, after the necessary modifications, the modified data is sent back to the original device driver stack, so that the modified data is triggered to the user layer along the original path.
[0156] Fig.11 A schematic diagram of the mouse device driver stack is shown. Among them, relying on the lower-level drivers HID Transport (HID transport component) and HIDCLASS.SYS, MouHID.SYS (mouse driver) converts the HID message of the mouse reported by the lower-level driver into the mouse coordinates X / Y, button and other data. By attaching a second filter driver to the MouHID.sys driver, the acquired mouse data can be forwarded to the split-screen rendering component of the application layer (such as split-screen rendering software). After the split-screen rendering component acquires the mouse data from the second filter driver, it processes the data and then returns it to the second filter driver, which is then sent to the upper-level MouseClass.sys driver by the second filter driver. After that, the operating system completes subsequent data processing and event triggering based on the dynamic link library file user32.dll.
[0157] As shown in the above steps C5 and C6, after obtaining the movement instruction intercepted by the second filter driver, if the calculated second position coordinates are still located within the virtual monitor, there is no need to change the movement instruction. At this time, the corresponding continuation instruction can be directly returned to the second filter driver to instruct the second filter driver to continue to pass the movement instruction. On the contrary, if the second position coordinates are not located in the virtual monitor, the movement increment needs to be updated, and the updated movement increment (for example, the movement instruction containing the updated movement increment) is sent to the second filter driver, so that the second filter driver can pass the updated movement increment to the upper layer, and after being processed by the operating system, the mouse pointer can be confined within the virtual monitor.
[0158] The split-screen display method provided in this embodiment realizes the split-screen function by generating multiple virtual monitors and presenting their images on the physical screen according to the position mapping relationship. The method supports input methods such as touch and mouse; the position coordinates of the virtual monitor are determined by translation, which not only simplifies the processing, but also enables the virtual monitors to be seamlessly spliced with each other in the system, and the images of each virtual monitor can be displayed seamlessly, and the mouse pointer can also switch seamlessly between the virtual monitors.
[0159] In this embodiment, a device for split-screen display is also provided, which is used to implement the above-mentioned embodiments and preferred implementation modes, and the descriptions that have been made will not be repeated. As used below, the term "module" may be a combination of software and / or hardware that implements a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, the implementation of hardware, or a combination of software and hardware, is also possible and conceivable.
[0160] This embodiment provides a split-screen display device, such as Fig.12 As shown, including:
[0161] The determination module 1201 is used to determine N working areas arranged in the physical screen according to the current number of split screens N and the split screen arrangement mode; the working area is a partial display area of the physical screen, and N≥2;
[0162] The processing module 1202 is used to generate a virtual monitor corresponding to each of the working areas, and set the position of the virtual monitor according to a preset position mapping relationship between the working area and the virtual monitor;
[0163] The rendering module 1203 is used to render the display images of each virtual monitor to the corresponding working area in the physical screen in real time according to the position mapping relationship.
[0164] In some optional implementations, the position mapping relationship is:
[0165] X2=a*X1+ΔX;
[0166] Y2=a*Y1+ΔY;
[0167] Among them, (X1, Y1) represents the position coordinates of the working area, (X2, Y2) represents the position coordinates of the corresponding virtual monitor, ΔX represents the preset horizontal axis movement amount, ΔY represents the preset vertical axis movement amount, a is the size scaling ratio between the virtual monitor and the working area; and, |ΔX|≥W0, and / or, |ΔY|≥H0; W0 is the display width of the physical screen, and H0 is the display height of the physical screen.
[0168] In some optional implementations, the processing module 1202 is further configured to:
[0169] According to an operation event triggered by a user, control data for controlling the virtual monitor is generated.
[0170] In some optional implementations, when the operation event is a touch event, the processing module 1202 generates control data for controlling the virtual monitor according to the operation event triggered by the user, including:
[0171] Acquire original touch data corresponding to the touch event; the original touch data includes original position coordinates corresponding to the touch position;
[0172] According to the position mapping relationship, the original position coordinates are mapped into corresponding corrected position coordinates;
[0173] The original position coordinates in the original touch data are updated to the modified position coordinates to generate modified touch data; the modified touch data is included in the control data and is used to instruct the virtual monitor at the modified position coordinates to respond to the touch event according to the modified touch data.
[0174] In some optional implementations, the processing module 1202 obtains the original touch data corresponding to the touch event, including:
[0175] Based on the first filter driver pre-set in the driver layer, the original touch data corresponding to the touch event is intercepted and acquired from the driver layer.
[0176] In some optional implementations, when the operation event is a mouse movement event, the processing module 1202 generates control data for controlling the virtual monitor according to the operation event triggered by the user, including:
[0177] When the mouse pointer is currently located at the first position coordinate of the virtual monitor, obtaining a movement instruction corresponding to the mouse movement event; the movement instruction includes a corresponding movement increment;
[0178] Determine a second position coordinate corresponding to adding the movement increment to the first position coordinate;
[0179] When the second position coordinate is not located at the virtual monitor, the movement increment is updated, and a third position coordinate corresponding to the updated movement increment is added to the first position coordinate, which is located at the boundary of the virtual monitor; the updated movement increment is included in the control data.
[0180] In some optional implementations, the processing module 1202 obtains the movement instruction corresponding to the mouse movement event, including:
[0181] Based on a second filter driver pre-set in the driver layer, intercepting and acquiring a movement instruction corresponding to the mouse movement event from the driver layer;
[0182] The processing module 1202 is further configured to:
[0183] When the second position coordinate is located at the virtual monitor, sending a continue instruction to the second filter driver to instruct the second filter driver to continue to transmit the move instruction;
[0184] When the second position coordinate is not located at the virtual monitor, the updated movement increment is sent to the second filter driver to instruct the second filter driver to continue to transmit the movement instruction with the updated movement increment.
[0185] In some optional implementations, the processing module 1202 is further configured to:
[0186] When the initial position coordinates of the mouse pointer are located in the display area of the physical screen, the initial position coordinates are updated to position coordinates located on the virtual monitor.
[0187] The further functional description of each of the above modules and units is the same as that of the above corresponding embodiments and will not be repeated here.
[0188] The split-screen display device in this embodiment is presented in the form of a functional unit, where the unit refers to an ASIC (Application Specific Integrated Circuit) circuit, including a processor and memory that executes one or more software or fixed programs, and / or other devices that can provide the above functions.
[0189] The embodiment of the present invention also provides a computer device having the above Fig.12 The split-screen display device is shown.
[0190] See also Fig.13 , Fig.13 is a schematic diagram of the structure of a computer device provided by an optional embodiment of the present invention, such as Fig.13As shown, the computer device includes: one or more processors 10, a memory 20, and interfaces for connecting various components, including high-speed interfaces and low-speed interfaces. Various components are connected to each other using different buses for communication, and can be installed on a common mainboard or installed in other ways as needed. The processor can process instructions executed in the computer device, including instructions stored in or on the memory to display the graphical information of the GUI on an external input / output device (such as a display device coupled to the interface). In some optional embodiments, if necessary, multiple processors and / or multiple buses can be used together with multiple memories. Similarly, multiple computer devices can be connected, and each device provides some necessary operations (for example, as a server array, a group of blade servers, or a multi-processor system). Fig.13 A processor 10 is taken as an example.
[0191] The processor 10 may be a central processing unit, a network processor or a combination thereof. The processor 10 may further include a hardware chip. The hardware chip may be a dedicated integrated circuit, a programmable logic device or a combination thereof. The programmable logic device may be a complex programmable logic device, a field programmable gate array, a general purpose array logic or any combination thereof.
[0192] The memory 20 stores instructions executable by at least one processor 10, so that the at least one processor 10 executes the method shown in the above embodiment.
[0193] The memory 20 may include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function; the data storage area may store data created according to the use of the computer device, etc. In addition, the memory 20 may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some optional embodiments, the memory 20 may optionally include a memory remotely arranged relative to the processor 10, and these remote memories may be connected to the computer device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
[0194] The memory 20 may include a volatile memory, such as a random access memory; the memory may also include a non-volatile memory, such as a flash memory, a hard disk or a solid state drive; the memory 20 may also include a combination of the above types of memory.
[0195] The computer device also includes an input device 30 and an output device 40. The processor 10, the memory 20, the input device 30 and the output device 40 may be connected via a bus or other means. Fig.13 The example of connecting through bus is taken in the following.
[0196] The input device 30 can receive input digital or character information, and generate key signal input related to the user settings and function control of the computer device, such as a touch screen, a keypad, a mouse, a track pad, a touch pad, an indicator bar, one or more mouse buttons, a trackball, a joystick, etc. The output device 40 may include a display device, an auxiliary lighting device (e.g., an LED) and a tactile feedback device (e.g., a vibration motor), etc. The above-mentioned display device includes but is not limited to a liquid crystal display, a light emitting diode, a display and a plasma display. In some optional embodiments, the display device can be a touch screen.
[0197] The computer device also includes a communication interface, which is used for the computer device to communicate with other devices or a communication network.
[0198] The embodiment of the present invention also provides a computer-readable storage medium. The method according to the embodiment of the present invention can be implemented in hardware, firmware, or can be implemented as a computer code that can be recorded in a storage medium, or can be implemented as a computer code that is originally stored in a remote storage medium or a non-temporary machine-readable storage medium and will be stored in a local storage medium through a network download, so that the method described herein can be stored in such software processing on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. Among them, the storage medium can be a magnetic disk, an optical disk, a read-only storage memory, a random access memory, a flash memory, a hard disk or a solid-state hard disk, etc.; further, the storage medium can also include a combination of the above types of memories. It can be understood that a computer, a processor, a microprocessor controller, or programmable hardware includes a storage component that can store or receive software or computer code. When the software or computer code is accessed and executed by a computer, a processor, or hardware, the method shown in the above embodiment is implemented.
[0199] A part of the present invention may be applied as a computer program product, such as a computer program instruction, which, when executed by a computer, can call or provide the method and / or technical solution according to the present invention through the operation of the computer. Those skilled in the art should understand that the existence of the computer program instruction in a computer-readable medium includes, but is not limited to, a source file, an executable file, an installation package file, etc., and accordingly, the way in which the computer program instruction is executed by the computer includes, but is not limited to: the computer directly executes the instruction, or the computer compiles the instruction and then executes the corresponding compiled program, or the computer reads and executes the instruction, or the computer reads and installs the instruction and then executes the corresponding installed program. Here, the computer-readable medium may be any available computer-readable storage medium or communication medium accessible to the computer.
[0200] Although the embodiments of the present invention have been described in conjunction with the accompanying drawings, those skilled in the art may make various modifications and variations without departing from the spirit and scope of the present invention, and such modifications and variations should all be included in the protection scope of the present invention.
Claims
1. A split-screen display method, characterized in that: The method comprises: According to the current number of split screens N and the split screen arrangement mode, determine N working areas arranged in the physical screen according to the split screen arrangement mode; the working area is a partial display area of the physical screen, N≥2; Generate a virtual monitor corresponding to each of the working areas, and set the position of the virtual monitor according to a preset position mapping relationship between the working area and the virtual monitor; The display images of the virtual monitors are rendered in real time to the corresponding working areas in the physical screen according to the position mapping relationship.
2. The method according to claim 1, characterized in that The position mapping relationship is: X2=a*X1+ΔX; Y2=a*Y1+ΔY; Among them, (X1, Y1) represents the position coordinates of the working area, (X2, Y2) represents the position coordinates of the corresponding virtual monitor, ΔX represents the preset horizontal axis movement amount, ΔY represents the preset vertical axis movement amount, a is the size scaling ratio between the virtual monitor and the working area; and, |ΔX|≥W0, and / or, |ΔY|≥H0; W0 is the display width of the physical screen, and H0 is the display height of the physical screen.
3. The method according to claim 1, characterized in that Also includes: According to an operation event triggered by a user, control data for controlling the virtual monitor is generated.
4. The method according to claim 3, characterized in that In the case where the operation event is a touch event, generating control data for controlling the virtual monitor according to the operation event triggered by the user includes: Acquire original touch data corresponding to the touch event; the original touch data includes original position coordinates corresponding to the touch position; According to the position mapping relationship, the original position coordinates are mapped into corresponding corrected position coordinates; The original position coordinates in the original touch data are updated to the modified position coordinates to generate modified touch data; the modified touch data is included in the control data and is used to instruct the virtual monitor at the modified position coordinates to respond to the touch event according to the modified touch data.
5. The method according to claim 4, characterized in that The acquiring original touch data corresponding to the touch event includes: Based on the first filter driver pre-set in the driver layer, the original touch data corresponding to the touch event is intercepted and acquired from the driver layer.
6. The method according to claim 3, characterized in that In the case where the operation event is a mouse movement event, generating control data for controlling the virtual monitor according to the operation event triggered by the user includes: When the mouse pointer is currently located at the first position coordinate of the virtual monitor, obtaining a movement instruction corresponding to the mouse movement event; the movement instruction includes a corresponding movement increment; Determine a second position coordinate corresponding to adding the movement increment to the first position coordinate; When the second position coordinate is not located at the virtual monitor, the movement increment is updated, and a third position coordinate corresponding to the updated movement increment is added to the first position coordinate, which is located at the boundary of the virtual monitor; the updated movement increment is included in the control data.
7. The method according to claim 6, characterized in that The obtaining of the movement instruction corresponding to the mouse movement event includes: Based on a second filter driver pre-set in the driver layer, intercepting and acquiring a movement instruction corresponding to the mouse movement event from the driver layer; The method further comprises: When the second position coordinate is located at the virtual monitor, sending a continue instruction to the second filter driver to instruct the second filter driver to continue to transmit the move instruction; When the second position coordinate is not located at the virtual monitor, the updated movement increment is sent to the second filter driver to instruct the second filter driver to continue to transmit the movement instruction with the updated movement increment.
8. The method according to claim 1 or 6, characterized in that: Also includes: When the initial position coordinates of the mouse pointer are located within the display area of the physical screen, the initial position coordinates are updated to position coordinates located on the virtual monitor.
9. A split-screen display device, characterized in that: The device comprises: A determination module, used to determine N working areas arranged in the physical screen according to the current number of split screens N and the split screen arrangement mode; the working area is a partial display area of the physical screen, N≥2; A processing module, used for generating a virtual monitor corresponding to each of the working areas, and setting the position of the virtual monitor according to a preset position mapping relationship between the working area and the virtual monitor; A rendering module is used to render the display images of each virtual monitor to the corresponding working area in the physical screen in real time according to the position mapping relationship.
10. A computer device, characterized in that: include: A memory and a processor, wherein the memory and the processor are communicatively connected to each other, the memory stores computer instructions, and the processor executes the split-screen display method according to any one of claims 1 to 8 by executing the computer instructions.
11. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer instructions, and the computer instructions are used to enable a computer to execute the split-screen display method according to any one of claims 1 to 8.