OSDN Git Service

now able to set the layer stack on a DisplayDevice
authorMathias Agopian <mathias@google.com>
Thu, 9 Aug 2012 01:51:15 +0000 (18:51 -0700)
committerMathias Agopian <mathias@google.com>
Fri, 10 Aug 2012 20:18:23 +0000 (13:18 -0700)
Change-Id: Ia9691cf221b9444c243eb468d9e276a30e600b6b

services/surfaceflinger/DisplayDevice.cpp
services/surfaceflinger/DisplayDevice.h
services/surfaceflinger/SurfaceFlinger.cpp

index 56ac635..326a124 100644 (file)
@@ -313,6 +313,13 @@ bool DisplayDevice::isScreenAcquired() const {
 
 // ----------------------------------------------------------------------------
 
+void DisplayDevice::setLayerStack(uint32_t stack) {
+    mLayerStack = stack;
+    dirtyRegion.set(bounds());
+}
+
+// ----------------------------------------------------------------------------
+
 status_t DisplayDevice::orientationToTransfrom(
         int orientation, int w, int h, Transform* tr)
 {
index 78d44f3..7efd3bc 100644 (file)
@@ -91,6 +91,8 @@ public:
     bool                    getSecureLayerVisible() const;
 
     status_t                setOrientation(int orientation);
+    void                    setLayerStack(uint32_t stack);
+
     int                     getOrientation() const { return mOrientation; }
     const Transform&        getTransform() const { return mGlobalTransform; }
     uint32_t                getLayerStack() const { return mLayerStack; }
index 1f9d694..1c15c82 100644 (file)
@@ -857,7 +857,7 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags)
                     const DisplayDeviceState& state(curr[i]);
                     if (state.layerStack != draw[i].layerStack) {
                         const sp<DisplayDevice>& disp(getDisplayDevice(state.id));
-                        //disp->setLayerStack(state.layerStack); // FIXME: set layer stack
+                        disp->setLayerStack(state.layerStack);
                     }
                     if (curr[i].orientation != draw[i].orientation) {
                         const sp<DisplayDevice>& disp(getDisplayDevice(state.id));