A system for switching among 2D application views or showing multiple windows for different applications at a same time on android in a virtual reality environment is disclosed. The applications render into one or more surfaces using layers, wherein the surfaces are managed by an out-of-process compositor. The layers are means of defining rendering for each of the surfaces during a time warp, which can produce a higher quality and performance of a rendered output. The time warp is a technique that warps a rendered image before sending it to a display. The rendered image is warped in order to make corrections for a head movement that occurs after it is rendered to the surfaces. While rendering to the surfaces, the applications configure the surfaces (as it may require) using various commands. While rendering from each of the applications, a “Surfaces” class and a “SurfaceTextures” class in android are utilized for a cross-process composition. The cross-process composition is a process in which a production of graphics occurs on one thread/process, and a consumption occurs from another thread/process. Further, a cross process layer (called as a VR system service or a VR runtime service) facilitates smooth switching of both rendering of an information and a systemUX (for example, a keyboard, a taskbar, dialogs, notifications, etc.) among the applications. Finally, the out-of-processor utilizes an internal API such as a SubmitFrame API to access all the layers, thus enabling the out-of-process compositor to perform a multi-surface and multi-application rendering. This way, by means of the out-of-process compositor, the multi-surface and multi-application rendering allows the multiple windows for different applications to be shown at a same time.

Creative Commons License

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.