CN-122019036-A - Application sharing
Abstract
A host device having a first processor executes an application via the first processor. The host device determines the state of the application. A scene graph corresponding to the application state is generated and presented to a remote device having a display and a second processor. The remote device is configured to render, in response to receiving the scene graph, a view corresponding to the scene graph to the display without executing the application via the second processor.
Inventors
- P. Babujid
- L.Zolotalev
- K. Stoltenberg
- C. T. Bryant
- J. Tajik
- R. A. talvolkar
Assignees
- 奇跃公司
Dates
- Publication Date
- 20260512
- Application Date
- 20190722
- Priority Date
- 20180724
Claims (10)
- 1. A method for application sharing, comprising: executing, at a host device having a first display and a first processor, a first application via the first processor; determining a first state of the first application; Generating a first scene graph corresponding to the first state of the first application; Presenting the first scene graph to a first remote device having a second display and a second processor; executing, at the first remote device, a second application via the second processor; generating a second scene graph corresponding to the first state of the second application, and Presenting the second scene graph to the host device; Wherein: the first remote device is configured to render a first view corresponding to the first scene graph to the second display in response to receiving the first scene graph, Rendering the first view to the second display does not include executing the first application via the second processor, The host device is configured to render a second view corresponding to the second scene graph to the first display in response to receiving the second scene graph, Rendering the second view to the first display does not include executing the second application via the first processor, Wherein the first view includes virtual content in an environment of the first remote device and the second display includes a transmissive display for viewing the virtual content and the environment of the first remote device simultaneously.
- 2. The method of claim 1, further comprising: Receiving, at the host device, input from the first remote device; Determining a second state of the first application based on the input, the second state being different from the first state; Generating a third scene graph corresponding to the second state, the third scene graph being different from the first scene graph; presenting the third scene graph to the first remote device, Wherein: the first remote device is configured to render a third view corresponding to the third scene graph to the second display without executing the first application in response to receiving the third scene graph, and Rendering the third view to the second display does not include executing the first application via the second processor, Wherein the input comprises output from one or more sensors of the first remote device, the first view comprises virtual content, and the output from the one or more sensors is indicative of interaction with the virtual content and/or an updated location of the first remote device.
- 3. The method of claim 1, wherein the first application is installed on the host device and the first application is not installed on the first remote device.
- 4. The method of claim 1, wherein the first application is installed on the host device and the first application is installed on the first remote device.
- 5. The method of claim 1, wherein the first remote device is a wearable computing device and the first display is configured to be head mounted to a user of the first remote device.
- 6. The method of claim 1, further comprising presenting the first scene graph to a second remote device having a third display and a third processor, Wherein: The second remote device is configured to render a second view corresponding to the first scene graph to the third display in response to receiving the first scene graph, and Rendering the second view to the third display does not include executing the first application via the third processor.
- 7. The method of claim 1, further comprising determining a first state of a third application, wherein: the first scene graph further corresponds to the first state of the third application, and Rendering the first view to the third display does not include executing the third application via the second processor.
- 8. The method of claim 1, further comprising receiving a request from the first remote device to render the first scene graph, wherein: The request to present the first scene graph is generated in response to an interaction between the first remote device and a trigger, and In response to receiving the request, performing presentation of the first scene graph to the first remote device.
- 9. The method of claim 8, wherein the trigger comprises a QR code.
- 10. The method of claim 8, wherein the trigger comprises location information.
Description
Application sharing The application is a divisional application of a Chinese patent application with the application number 201980055804.2, the application date of the original application is 2019, 07, 22 and 24, the priority date is 2018, 07, the international application number is PCT/US 2019/041881, and the date of entering the Chinese national stage is 2021, 02 and 25, and the application is named as application sharing. Cross Reference to Related Applications U.S. provisional application Ser. No. 62/741,761, filed on 5 of 10 in 2018, U.S. provisional application Ser. No. 62/702,844, filed on 24 of 7 in 2018, U.S. provisional application Ser. No. 62/726,863, filed on 4 of 9 in 2018, and priority of U.S. provisional application Ser. No. 62/742,259, filed on 5 of 10 in 2018 are all incorporated herein by reference. Technical Field The present disclosure relates generally to systems and methods for presenting data of a computer application, and in particular to systems and methods for presenting data of a computer application executing on a local device to a remote device. Background With the proliferation of smaller, lighter, and more mobile personal devices, and the concomitant popularity of content on-demand services, user expectations for software applications have changed. For example, software is often expected to be accessed more immediately as streaming video content, have less resources occupation, and be easily shared with others. Traditional software (which may need to be purchased, downloaded, and installed prior to use) may not meet the requirements of some users. Furthermore, for more and more mobile computing devices (including wearable devices), traditional software may be too resource intensive, which must be in conflict with physical size, shape, and weight constraints (limiting the storage, processing power, and battery capacity of these devices), and may need to be compatible with limited bandwidth cellular data schemes. One response to the foregoing is to have the software application have a "sharing" function whereby the user can remotely access (e.g., view or interact with) the application executing on the host device. Because application sharing eliminates the need for remote users to install or execute applications on their computing devices, their entry threshold is lowered, encouraging the use and increase of "shared" applications. Application sharing is not without potential problems. Some examples of application sharing involve streaming pre-rendered video data that represents the visual output of an application, however, because such video data may be bandwidth intensive, the actual use of such applications may be limited to high bandwidth environments, thereby precluding their use on many mobile data schemes. It is desirable for a host computing device to share a software application with one or more remote computing devices so that users of all such devices can view and/or interact with the software application at the same time without the need for the remote devices to install or execute the software application locally. It is further desirable to minimize the amount of data that must be transferred between a host device and a remote device for use in a low bandwidth environment. Disclosure of Invention Systems and methods for sharing software applications of a computing device are disclosed. According to some examples, a host device having a first processor executes an application via the first processor. The host device determines the state of the application. A scene graph corresponding to the application state is generated and presented to a remote device having a display and a second processor. The remote device is configured to render, in response to receiving the scene graph, a view corresponding to the scene graph to the display without executing the application via the second processor. Drawings 1A-1E illustrate example computer systems that may participate in application sharing according to examples of the present disclosure. FIG. 2A illustrates an example data flow in an example computer system according to examples of this disclosure. FIG. 2B illustrates an example data flow in an example computer system including multiple independent applications, according to examples of this disclosure. FIG. 3A illustrates components of an example computer system that can render 3D data from multiple independent applications to a display using a centralized scenegraph according to examples of this disclosure. Fig. 3B illustrates aspects of an example client application with respect to an example computer system including multiple independent client applications, according to examples of the present disclosure. FIG. 3C illustrates aspects of an example renderer with respect to an example computer system including multiple independent applications in accordance with an example of the present disclosure. Fig. 4A-4B illustrate example diagrams of a system for application sharing