Composition system thread
First Claim
1. A method, implemented by a computer system that includes one or more processors and a display device, the method comprising:
- receiving data at one or more application programming interfaces (APIs) from a plurality of applications including at least a first application executing in a first thread and a second application executing in a second thread, the data including one or more first visual elements received from the first application and to be rendered for the first application and one or more second visual elements received from the second application and to be rendered for the second application, wherein the one or more first visual elements correspond to a digitally-protected video to be rendered for the first application;
configuring the data for display on the display device through execution of a dedicated third thread that executes independent of and asynchronously with the first thread and the second thread, and that composes the data for the first application and the second application into displayable pixels using a single composition engine, the single composition engine composing the one or more first visual elements into protected memory that is inaccessible to at least the first thread and the second thread, to prevent the first and second applications from accessing any displayable pixels corresponding to the one or more first visual elements that are composed by the single composition engine; and
returning timing information usable by the plurality of applications to synchronize rasterization of bitmaps with one or more animations configured by the dedicated third thread.
2 Assignments
0 Petitions
Accused Products
Abstract
Composition system thread techniques are described. In one or more implementations, a composition system may be configured to compose visual elements received from applications on a thread that is executed separately than a user interface thread of the applications. As such, the composition system may execute asynchronously from a user interface thread of the application. Additionally, the composition system may be configured to expose one or more application programming interfaces (APIs) that are accessible to the applications. The APIs may be used for constructing a tree of objects representing the operations that are to be performed to compose one or more bitmaps. Further, these operations may be controlled by several API visual properties to allow applications to animate content within their windows and use disparate technologies to rasterize such content.
109 Citations
19 Claims
-
1. A method, implemented by a computer system that includes one or more processors and a display device, the method comprising:
-
receiving data at one or more application programming interfaces (APIs) from a plurality of applications including at least a first application executing in a first thread and a second application executing in a second thread, the data including one or more first visual elements received from the first application and to be rendered for the first application and one or more second visual elements received from the second application and to be rendered for the second application, wherein the one or more first visual elements correspond to a digitally-protected video to be rendered for the first application; configuring the data for display on the display device through execution of a dedicated third thread that executes independent of and asynchronously with the first thread and the second thread, and that composes the data for the first application and the second application into displayable pixels using a single composition engine, the single composition engine composing the one or more first visual elements into protected memory that is inaccessible to at least the first thread and the second thread, to prevent the first and second applications from accessing any displayable pixels corresponding to the one or more first visual elements that are composed by the single composition engine; and returning timing information usable by the plurality of applications to synchronize rasterization of bitmaps with one or more animations configured by the dedicated third thread. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method, implemented by a computer system that includes one or more processors and a display device, the method comprising:
-
exposing one or more application programming interfaces (APIs) to a plurality of applications executing in different processes to construct a single tree of objects, the plurality of applications including at least a first application executing in a first process and a second application executing in a second process, the single tree of objects describing a batch of different elements that are to be rendered together for the plurality of applications and representing operations to be performed by a single composition engine to compose one or more bitmaps, the batch of different elements including one or more first visual elements received from the first application and to be rendered for the first application and one or more second visual elements received from the second application and to be rendered for the second application, wherein the one or more first visual elements correspond to a digitally-protected video to be rendered for the first application; composing the one or more bitmaps by the single composition engine using the operations represented in the single tree of objects, the composing being executed in a dedicated third thread of a process that is separate from and that executes asynchronously with the process of each of the plurality of applications executing a respective thread of a user interface, the composing including rendering the one or more first visual elements into protected memory that is inaccessible to at least the first process and the second process, to prevent the first and second applications from accessing any displayable pixels corresponding to the one or more first visual elements that are rendered by the single composition engine; and outputting timing information usable by the plurality of applications to synchronize rasterization of bitmaps with one or more animations configured by the dedicated third thread.
-
-
19. A computing device comprising:
-
one or more processors; and one or more computer-readable storage media storing computer-executable instructions that are executable by the one or more processors to cause the computing device to implement an operating system configured to; expose one or more application programming interfaces (APIs) to a plurality of applications executing in different processes to construct a single tree of objects, the plurality of applications including at least a first application executing in a first process and a second application executing in a second process, the single tree of objects describing a batch of different elements that are to be rendered together for the plurality of applications and representing operations to be performed by a single composition engine to compose one or more bitmaps, the batch of different elements including one or more first visual elements received from the first application and to be rendered for the first application and one or more second visual elements received from the second application and to be rendered for the second application, wherein the one or more first visual elements correspond to a digitally-protected video to be rendered for the first application; implement a dedicated third thread of a process that is separate from and that executes asynchronously with the process of each of the plurality of applications, to compose the one or more bitmaps by a single composition engine using the operations represented in the single tree of objects, the composing including rendering the one or more first visual elements into protected memory that is inaccessible to at least the first process and the second process, to prevent the first and second applications from accessing any displayable pixels corresponding to the one or more first visual elements that are rendered by the single composition engine; and return timing information usable by the plurality of applications to synchronize rasterization of bitmaps with one or more animations configured by the dedicated third thread.
-
Specification