OSDN Git Service

Reset compositionType to HWC_FRAMEBUFFER before calling prepare()
authorMathias Agopian <mathias@google.com>
Wed, 14 Nov 2012 22:41:42 +0000 (14:41 -0800)
committerMathias Agopian <mathias@google.com>
Wed, 14 Nov 2012 22:41:42 +0000 (14:41 -0800)
Honor the documentation. this broke in JB-MR1.

Change-Id: I841a93b409fc940374bc748c4e143d82a192669c

services/surfaceflinger/DisplayHardware/HWComposer.cpp
services/surfaceflinger/DisplayHardware/HWComposer.h
services/surfaceflinger/LayerBase.cpp

index 31d731e..29b778d 100644 (file)
@@ -803,7 +803,9 @@ public:
     virtual void setAcquireFenceFd(int fenceFd) {
         getLayer()->acquireFenceFd = fenceFd;
     }
-
+    virtual void setPerFrameDefaultState() {
+        getLayer()->compositionType = HWC_FRAMEBUFFER;
+    }
     virtual void setDefaultState() {
         getLayer()->compositionType = HWC_FRAMEBUFFER;
         getLayer()->hints = 0;
index a78ffac..7c67407 100644 (file)
@@ -141,6 +141,7 @@ public:
         virtual int32_t getCompositionType() const = 0;
         virtual uint32_t getHints() const = 0;
         virtual int getAndResetReleaseFenceFd() = 0;
+        virtual void setPerFrameDefaultState() = 0;
         virtual void setDefaultState() = 0;
         virtual void setSkip(bool skip) = 0;
         virtual void setBlending(uint32_t blending) = 0;
index db4ef87..9b03c74 100644 (file)
@@ -300,6 +300,7 @@ void LayerBase::setGeometry(
 
 void LayerBase::setPerFrameData(const sp<const DisplayDevice>& hw,
         HWComposer::HWCLayerInterface& layer) {
+    layer.setPerFrameDefaultState();
     // we have to set the visible region on every frame because
     // we currently free it during onLayerDisplayed(), which is called
     // after HWComposer::commit() -- every frame.