diff options
Diffstat (limited to 'services/surfaceflinger/Layer.cpp')
| -rw-r--r-- | services/surfaceflinger/Layer.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp index 99d904d..2cabe02 100644 --- a/services/surfaceflinger/Layer.cpp +++ b/services/surfaceflinger/Layer.cpp @@ -52,6 +52,7 @@ template <typename T> inline T min(T a, T b) { Layer::Layer(SurfaceFlinger* flinger, DisplayID display, const sp<Client>& client) : LayerBaseClient(flinger, display, client), + mFormat(PIXEL_FORMAT_NONE), mGLExtensions(GLExtensions::getInstance()), mNeedsBlending(true), mNeedsDithering(false), @@ -59,7 +60,8 @@ Layer::Layer(SurfaceFlinger* flinger, mProtectedByApp(false), mTextureManager(), mBufferManager(mTextureManager), - mWidth(0), mHeight(0), mNeedsScaling(false), mFixedSize(false) + mWidth(0), mHeight(0), + mNeedsScaling(false), mFixedSize(false) { } @@ -661,8 +663,9 @@ void Layer::lockPageFlip(bool& recomputeVisibleRegions) // update the layer size and release freeze-lock const Layer::State& front(drawingState()); - if (newFrontBuffer->getWidth() == front.requested_w && - newFrontBuffer->getHeight() == front.requested_h) + if ((newFrontBuffer->getWidth() == front.requested_w && + newFrontBuffer->getHeight() == front.requested_h) || + isFixedSize()) { if ((front.w != front.requested_w) || (front.h != front.requested_h)) |
