summaryrefslogtreecommitdiff
path: root/glworker.h
diff options
context:
space:
mode:
authorZach Reizner <zachr@google.com>2015-10-12 17:47:13 -0700
committerZach Reizner <zachr@google.com>2015-10-15 10:45:17 -0700
commit92f8e6399c0829c6ba6db77d5ea1bbd22f510bb1 (patch)
tree7252d6be74505a58bf8e7f3a191bbc5a70921124 /glworker.h
parent0436173f2e3ba646078baf33208fa3ea54113bde (diff)
drm_hwcomposer: ground work for squashing
This patch rearranges things to make squashing possible. The high-level changes: - A new Plan phase that happens in QueueComposition. This is where the overlay allocation is moved to. It's also the only safe time that the composition can try to plan squashing. This is because squashing depends on the exact ordering of compositions. - GLWorker now renders regions rather than layers. A region in this case is a clipping rectange and set of layers that are to be rendered in that rectangle. This is always what GLWorker did in the end, but now the work to seperate layers into regions is done externally. This was changed because the output of SquashState is a list of stable regions that need to be put through GLWorker The Plan methods of the Compositions are responsible for updating per-display SquashState and for allocation regions/layers to squashing, pre-composition, or hardware overlay. Because of the drastic changes to how composition planning works, it was necessary to bundle it with the GLWorker change. This change also includes plenty of other refactorings that were deemed to be too painful to try and seperate into another change. Change-Id: Ie7bfe077067e936a0862a07cbe87b525eab8d4f8
Diffstat (limited to 'glworker.h')
-rw-r--r--glworker.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/glworker.h b/glworker.h
index b3163ce..3201739 100644
--- a/glworker.h
+++ b/glworker.h
@@ -33,7 +33,8 @@
namespace android {
-struct DrmCompositionLayer;
+struct DrmHwcLayer;
+struct DrmCompositionRegion;
class GLWorkerCompositor {
public:
@@ -41,8 +42,8 @@ class GLWorkerCompositor {
~GLWorkerCompositor();
int Init();
- int Composite(DrmCompositionLayer *layers, size_t num_layers,
- const sp<GraphicBuffer> &framebuffer);
+ int Composite(DrmHwcLayer *layers, DrmCompositionRegion *regions,
+ size_t num_regions, const sp<GraphicBuffer> &framebuffer);
void Finish();
private: