refactor compositing code to avoid multiple eglMakeCurrent() calls
when multiple displays are connected, we ended-up having to
call eglMakeCurrent() twice per display due to a limitation
in EGL. this fixes that.
Change-Id: I11e4584df50f8c24bbecee74e37b28b3ee031d2f
diff --git a/services/surfaceflinger/DisplayDevice.cpp b/services/surfaceflinger/DisplayDevice.cpp
index a379111..2289444 100644
--- a/services/surfaceflinger/DisplayDevice.cpp
+++ b/services/surfaceflinger/DisplayDevice.cpp
@@ -218,6 +218,18 @@
return mSecureLayerVisible;
}
+Region DisplayDevice::getDirtyRegion(bool repaintEverything) const {
+ Region dirty;
+ const Transform& planeTransform(mGlobalTransform);
+ if (repaintEverything) {
+ dirty.set(getBounds());
+ } else {
+ dirty = planeTransform.transform(this->dirtyRegion);
+ dirty.andSelf(getBounds());
+ }
+ return dirty;
+}
+
// ----------------------------------------------------------------------------
bool DisplayDevice::canDraw() const {