diff options
-rw-r--r-- | include/gui/SurfaceTextureClient.h | 16 | ||||
-rw-r--r-- | libs/gui/SurfaceTexture.cpp | 15 | ||||
-rw-r--r-- | libs/gui/SurfaceTextureClient.cpp | 6 | ||||
-rw-r--r-- | services/surfaceflinger/Layer.cpp | 13 |
4 files changed, 20 insertions, 30 deletions
diff --git a/include/gui/SurfaceTextureClient.h b/include/gui/SurfaceTextureClient.h index 56f029f..57f9e15 100644 --- a/include/gui/SurfaceTextureClient.h +++ b/include/gui/SurfaceTextureClient.h @@ -135,24 +135,12 @@ private: // a timestamp is auto-generated when queueBuffer is called. int64_t mTimestamp; - // mQueryWidth is the width returned by query(). It is set to width - // of the last dequeued buffer or to mReqWidth if no buffer was dequeued. - uint32_t mQueryWidth; - - // mQueryHeight is the height returned by query(). It is set to height - // of the last dequeued buffer or to mReqHeight if no buffer was dequeued. - uint32_t mQueryHeight; - - // mQueryFormat is the format returned by query(). It is set to the last - // dequeued format or to mReqFormat if no buffer was dequeued. - uint32_t mQueryFormat; - // mDefaultWidth is default width of the window, regardless of the - // set_dimension call + // native_window_set_buffers_dimensions call uint32_t mDefaultWidth; // mDefaultHeight is default width of the window, regardless of the - // set_dimension call + // native_window_set_buffers_dimensions call uint32_t mDefaultHeight; // mTransformHint is the transform probably applied to buffers of this diff --git a/libs/gui/SurfaceTexture.cpp b/libs/gui/SurfaceTexture.cpp index c190195..8c07d24 100644 --- a/libs/gui/SurfaceTexture.cpp +++ b/libs/gui/SurfaceTexture.cpp @@ -197,11 +197,14 @@ status_t SurfaceTexture::setBufferCount(int bufferCount) { status_t SurfaceTexture::setDefaultBufferSize(uint32_t w, uint32_t h) { - Mutex::Autolock lock(mMutex); - if ((w != mDefaultWidth) || (h != mDefaultHeight)) { - mDefaultWidth = w; - mDefaultHeight = h; + if (!w || !h) { + LOGE("setDefaultBufferSize: dimensions cannot be 0 (w=%d, h=%d)", w, h); + return BAD_VALUE; } + + Mutex::Autolock lock(mMutex); + mDefaultWidth = w; + mDefaultHeight = h; return OK; } @@ -903,13 +906,9 @@ int SurfaceTexture::query(int what, int* outValue) switch (what) { case NATIVE_WINDOW_WIDTH: value = mDefaultWidth; - if (!mDefaultWidth && !mDefaultHeight && mCurrentTextureBuf!=0) - value = mCurrentTextureBuf->width; break; case NATIVE_WINDOW_HEIGHT: value = mDefaultHeight; - if (!mDefaultWidth && !mDefaultHeight && mCurrentTextureBuf!=0) - value = mCurrentTextureBuf->height; break; case NATIVE_WINDOW_FORMAT: value = mPixelFormat; diff --git a/libs/gui/SurfaceTextureClient.cpp b/libs/gui/SurfaceTextureClient.cpp index df0ad5a..e6837ea 100644 --- a/libs/gui/SurfaceTextureClient.cpp +++ b/libs/gui/SurfaceTextureClient.cpp @@ -52,9 +52,6 @@ void SurfaceTextureClient::init() { mReqFormat = 0; mReqUsage = 0; mTimestamp = NATIVE_WINDOW_TIMESTAMP_AUTO; - mQueryWidth = 0; - mQueryHeight = 0; - mQueryFormat = 0; mDefaultWidth = 0; mDefaultHeight = 0; mTransformHint = 0; @@ -154,9 +151,6 @@ int SurfaceTextureClient::dequeueBuffer(android_native_buffer_t** buffer) { result); return result; } - mQueryWidth = gbuf->width; - mQueryHeight = gbuf->height; - mQueryFormat = gbuf->format; } *buffer = gbuf.get(); return OK; diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp index e0268fa..7d6a14d 100644 --- a/services/surfaceflinger/Layer.cpp +++ b/services/surfaceflinger/Layer.cpp @@ -352,12 +352,13 @@ uint32_t Layer::doTransaction(uint32_t flags) if (sizeChanged) { // the size changed, we need to ask our client to request a new buffer LOGD_IF(DEBUG_RESIZE, + "doTransaction: " "resize (layer=%p), requested (%dx%d), drawing (%d,%d), " - "fixedSize=%d", + "scalingMode=%d", this, int(temp.requested_w), int(temp.requested_h), int(front.requested_w), int(front.requested_h), - isFixedSize()); + mCurrentScalingMode); if (!isFixedSize()) { // we're being resized and there is a freeze display request, @@ -492,6 +493,14 @@ void Layer::lockPageFlip(bool& recomputeVisibleRegions) // we now have the correct size, unfreeze the screen mFreezeLock.clear(); } + + LOGD_IF(DEBUG_RESIZE, + "lockPageFlip : " + " (layer=%p), buffer (%ux%u, tr=%02x), " + "requested (%dx%d)", + this, + bufWidth, bufHeight, mCurrentTransform, + front.requested_w, front.requested_h); } } } |