diff options
Diffstat (limited to 'services/surfaceflinger/Layer.h')
-rw-r--r-- | services/surfaceflinger/Layer.h | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/services/surfaceflinger/Layer.h b/services/surfaceflinger/Layer.h index 393599f..c5eb26b 100644 --- a/services/surfaceflinger/Layer.h +++ b/services/surfaceflinger/Layer.h @@ -50,9 +50,7 @@ class GLExtensions; class Layer : public LayerBaseClient { public: - Layer(SurfaceFlinger* flinger, DisplayID display, - const sp<Client>& client); - + Layer(SurfaceFlinger* flinger, const sp<Client>& client); virtual ~Layer(); virtual const char* getTypeId() const { return "Layer"; } @@ -64,30 +62,38 @@ public: bool isFixedSize() const; // LayerBase interface - virtual void setGeometry(hwc_layer_t* hwcl); - virtual void setPerFrameData(hwc_layer_t* hwcl); - virtual void onDraw(const Region& clip) const; + virtual void setGeometry(const sp<const DisplayDevice>& hw, + HWComposer::HWCLayerInterface& layer); + virtual void setPerFrameData(const sp<const DisplayDevice>& hw, + HWComposer::HWCLayerInterface& layer); + virtual void setAcquireFence(const sp<const DisplayDevice>& hw, + HWComposer::HWCLayerInterface& layer); + virtual void onLayerDisplayed(const sp<const DisplayDevice>& hw, + HWComposer::HWCLayerInterface* layer); + virtual bool onPreComposition(); + virtual void onPostComposition(); + + virtual void onDraw(const sp<const DisplayDevice>& hw, const Region& clip) const; virtual uint32_t doTransaction(uint32_t transactionFlags); - virtual void lockPageFlip(bool& recomputeVisibleRegions); - virtual void unlockPageFlip(const Transform& planeTransform, Region& outDirtyRegion); + virtual Region latchBuffer(bool& recomputeVisibleRegions); virtual bool isOpaque() const; - virtual bool needsDithering() const { return mNeedsDithering; } virtual bool isSecure() const { return mSecure; } virtual bool isProtected() const; virtual void onRemoved(); virtual sp<Layer> getLayer() const { return const_cast<Layer*>(this); } virtual void setName(const String8& name); - virtual void validateVisibility(const Transform& globalTransform); + virtual bool isVisible() const; // LayerBaseClient interface virtual wp<IBinder> getSurfaceTextureBinder() const; - virtual void onLayerDisplayed(); - virtual bool onPreComposition(); - // only for debugging inline const sp<GraphicBuffer>& getActiveBuffer() const { return mActiveBuffer; } + // Updates the transform hint in our SurfaceTexture to match + // the current orientation of the display device. + virtual void updateTransformHint(const sp<const DisplayDevice>& hw) const; + protected: virtual void onFirstRef(); virtual void dump(String8& result, char* scratch, size_t size) const; @@ -99,7 +105,6 @@ private: void onFrameQueued(); virtual sp<ISurface> createSurface(); uint32_t getEffectiveUsage(uint32_t usage) const; - uint32_t getTransformHint() const; bool isCropped() const; Rect computeBufferCrop() const; static bool getOpacityForFormat(uint32_t format); @@ -137,12 +142,10 @@ private: PixelFormat mFormat; const GLExtensions& mGLExtensions; bool mOpaqueLayer; - bool mNeedsDithering; // page-flip thread (currently main thread) bool mSecure; // no screenshots bool mProtectedByApp; // application requires protected path to external sink - Region mPostedDirtyRegion; }; // --------------------------------------------------------------------------- |