diff options
| author | 2011-10-05 15:00:22 -0700 | |
|---|---|---|
| committer | 2011-10-05 15:00:22 -0700 | |
| commit | edaab94c2bc5b131dabff440e7ff3dfde6a012b7 (patch) | |
| tree | d77e057787b89660b87434b1b4fb3e6a8c1fc1fa | |
| parent | 94d2f366f971bc052da9856e9f8867094e738cd1 (diff) | |
Force a repaint when hwc invalidate hook is called
without this prepare() would be called but not set() since the
dirty region is empty.
Change-Id: I038acfbdad4c16015357ccde4d1949391d6f989d
| -rw-r--r-- | services/surfaceflinger/DisplayHardware/HWComposer.cpp | 2 | ||||
| -rw-r--r-- | services/surfaceflinger/SurfaceFlinger.h | 8 |
2 files changed, 4 insertions, 6 deletions
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp index 879e858027fb..be9b2265c7db 100644 --- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp +++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp @@ -75,7 +75,7 @@ void HWComposer::hook_invalidate(struct hwc_procs* procs) { } void HWComposer::invalidate() { - mFlinger->signalEvent(); + mFlinger->repaintEverything(); } void HWComposer::setFrameBuffer(EGLDisplay dpy, EGLSurface sur) { diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h index 43191b7e8a54..128a64dbd246 100644 --- a/services/surfaceflinger/SurfaceFlinger.h +++ b/services/surfaceflinger/SurfaceFlinger.h @@ -256,12 +256,11 @@ private: public: // hack to work around gcc 4.0.3 bug const GraphicPlane& graphicPlane(int dpy) const; GraphicPlane& graphicPlane(int dpy); -private: + void signalEvent(); + void repaintEverything(); - void waitForEvent(); -public: // hack to work around gcc 4.0.3 bug - void signalEvent(); private: + void waitForEvent(); void handleConsoleEvents(); void handleTransaction(uint32_t transactionFlags); void handleTransactionLocked(uint32_t transactionFlags); @@ -279,7 +278,6 @@ private: void postFramebuffer(); void setupHardwareComposer(Region& dirtyInOut); void composeSurfaces(const Region& dirty); - void repaintEverything(); ssize_t addClientLayer(const sp<Client>& client, |