diff options
author | Jamie Gennis <jgennis@google.com> | 2012-05-15 11:44:04 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-05-15 11:44:04 -0700 |
commit | a74eb25cbc42a9dde0df6b2303fda9027f77f393 (patch) | |
tree | e4c96e55f37147cfd3773400c343b3b42245c7ef /libs | |
parent | 8d057994a0061f56614ff020a2af1d59c894a7d0 (diff) | |
parent | dd73996552938ac5165a35f09d389abedcf421ef (diff) | |
download | frameworks_native-a74eb25cbc42a9dde0df6b2303fda9027f77f393.zip frameworks_native-a74eb25cbc42a9dde0df6b2303fda9027f77f393.tar.gz frameworks_native-a74eb25cbc42a9dde0df6b2303fda9027f77f393.tar.bz2 |
am dd739965: Merge changes I32fbc2b6,Ifd0ed05b into jb-dev
* commit 'dd73996552938ac5165a35f09d389abedcf421ef':
SurfaceFlinger: recompute visible regions less
libgui: remove setPostTransformCrop
Diffstat (limited to 'libs')
-rw-r--r-- | libs/gui/BufferQueue.cpp | 4 | ||||
-rw-r--r-- | libs/gui/SurfaceTextureClient.cpp | 51 | ||||
-rw-r--r-- | libs/gui/tests/SurfaceTextureClient_test.cpp | 44 |
3 files changed, 4 insertions, 95 deletions
diff --git a/libs/gui/BufferQueue.cpp b/libs/gui/BufferQueue.cpp index 2d7c89b..9b6bc38 100644 --- a/libs/gui/BufferQueue.cpp +++ b/libs/gui/BufferQueue.cpp @@ -495,9 +495,9 @@ status_t BufferQueue::dequeueBuffer(int *outBuf, uint32_t w, uint32_t h, // synchronizing access to it. It's too late at this point to abort the // dequeue operation. if (result == EGL_FALSE) { - ALOGE("dequeueBuffer: error waiting for fence: %#x", eglGetError()); + ST_LOGE("dequeueBuffer: error waiting for fence: %#x", eglGetError()); } else if (result == EGL_TIMEOUT_EXPIRED_KHR) { - ALOGE("dequeueBuffer: timeout waiting for fence"); + ST_LOGE("dequeueBuffer: timeout waiting for fence"); } eglDestroySyncKHR(dpy, fence); } diff --git a/libs/gui/SurfaceTextureClient.cpp b/libs/gui/SurfaceTextureClient.cpp index 5d3bd1a..36a81a6 100644 --- a/libs/gui/SurfaceTextureClient.cpp +++ b/libs/gui/SurfaceTextureClient.cpp @@ -76,7 +76,6 @@ void SurfaceTextureClient::init() { mReqUsage = 0; mTimestamp = NATIVE_WINDOW_TIMESTAMP_AUTO; mCrop.clear(); - mCropNeedsTransform = false; mScalingMode = NATIVE_WINDOW_SCALING_MODE_FREEZE; mTransform = 0; mDefaultWidth = 0; @@ -238,25 +237,9 @@ int SurfaceTextureClient::queueBuffer(android_native_buffer_t* buffer) { return i; } - Rect crop(mCrop); - if (mCropNeedsTransform) { - // The crop rect was specified in the post-transform coordinate space, - // so we need to transform that rect by the inverse of mTransform to - // put it into the buffer pixel space before queuing it. - uint32_t invTransform = mTransform; - int32_t width = buffer->width; - int32_t height = buffer->height; - if (mTransform & NATIVE_WINDOW_TRANSFORM_ROT_90) { - invTransform ^= NATIVE_WINDOW_TRANSFORM_FLIP_V | - NATIVE_WINDOW_TRANSFORM_FLIP_H; - width = buffer->height; - height = buffer->width; - } - crop = mCrop.transform(invTransform, width, height); - } - // Make sure the crop rectangle is entirely inside the buffer. - crop.intersect(Rect(buffer->width, buffer->height), &crop); + Rect crop; + mCrop.intersect(Rect(buffer->width, buffer->height), &crop); ISurfaceTexture::QueueBufferOutput output; ISurfaceTexture::QueueBufferInput input(timestamp, crop, mScalingMode, @@ -341,9 +324,6 @@ int SurfaceTextureClient::perform(int operation, va_list args) case NATIVE_WINDOW_SET_CROP: res = dispatchSetCrop(args); break; - case NATIVE_WINDOW_SET_POST_TRANSFORM_CROP: - res = dispatchSetPostTransformCrop(args); - break; case NATIVE_WINDOW_SET_BUFFER_COUNT: res = dispatchSetBufferCount(args); break; @@ -407,11 +387,6 @@ int SurfaceTextureClient::dispatchSetCrop(va_list args) { return setCrop(reinterpret_cast<Rect const*>(rect)); } -int SurfaceTextureClient::dispatchSetPostTransformCrop(va_list args) { - android_native_rect_t const* rect = va_arg(args, android_native_rect_t*); - return setPostTransformCrop(reinterpret_cast<Rect const*>(rect)); -} - int SurfaceTextureClient::dispatchSetBufferCount(va_list args) { size_t bufferCount = va_arg(args, size_t); return setBufferCount(bufferCount); @@ -501,7 +476,6 @@ int SurfaceTextureClient::disconnect(int api) { mReqHeight = 0; mReqUsage = 0; mCrop.clear(); - mCropNeedsTransform = false; mScalingMode = NATIVE_WINDOW_SCALING_MODE_FREEZE; mTransform = 0; if (api == NATIVE_WINDOW_API_CPU) { @@ -535,27 +509,6 @@ int SurfaceTextureClient::setCrop(Rect const* rect) Mutex::Autolock lock(mMutex); mCrop = realRect; - mCropNeedsTransform = false; - return NO_ERROR; -} - -int SurfaceTextureClient::setPostTransformCrop(Rect const* rect) -{ - ATRACE_CALL(); - - Rect realRect; - if (rect == NULL || rect->isEmpty()) { - realRect.clear(); - } else { - realRect = *rect; - } - - ALOGV("SurfaceTextureClient::setPostTransformCrop rect=[%d %d %d %d]", - realRect.left, realRect.top, realRect.right, realRect.bottom); - - Mutex::Autolock lock(mMutex); - mCrop = realRect; - mCropNeedsTransform = true; return NO_ERROR; } diff --git a/libs/gui/tests/SurfaceTextureClient_test.cpp b/libs/gui/tests/SurfaceTextureClient_test.cpp index 8546fb9..7d8dd33 100644 --- a/libs/gui/tests/SurfaceTextureClient_test.cpp +++ b/libs/gui/tests/SurfaceTextureClient_test.cpp @@ -442,50 +442,6 @@ TEST_F(SurfaceTextureClientTest, SurfaceTextureSyncModeMinUndequeued) { ASSERT_EQ(OK, mANW->cancelBuffer(mANW.get(), buf[2])); } -TEST_F(SurfaceTextureClientTest, SetPostTransformCropUntransforms) { - android_native_rect_t rect = {1, 5, 4, 14}; - native_window_set_post_transform_crop(mANW.get(), &rect); - - uint32_t xforms[] = { - HAL_TRANSFORM_FLIP_H, - HAL_TRANSFORM_FLIP_V, - HAL_TRANSFORM_ROT_90, - HAL_TRANSFORM_ROT_180, - HAL_TRANSFORM_ROT_270, - }; - - Rect expectedRects[] = { - Rect(4, 5, 7, 14), // HAL_TRANSFORM_FLIP_H - Rect(1, 2, 4, 11), // HAL_TRANSFORM_FLIP_V - Rect(5, 4, 14, 7), // HAL_TRANSFORM_ROT_90 - Rect(4, 2, 7, 11), // HAL_TRANSFORM_ROT_180 - Rect(2, 1, 11, 4), // HAL_TRANSFORM_ROT_270 - }; - - for (size_t i = 0; i < sizeof(xforms)/sizeof(xforms[0]); i++) { - SCOPED_TRACE(String8::format("xform=%#x", xforms[i]).string()); - - int w = 8, h = 16; - if (xforms[i] & HAL_TRANSFORM_ROT_90) { - w = 16; - h = 8; - } - ASSERT_EQ(OK, native_window_set_buffers_transform(mANW.get(), xforms[i])); - ASSERT_EQ(OK, native_window_set_buffers_dimensions(mANW.get(), w, h)); - - android_native_buffer_t* buf; - ASSERT_EQ(OK, mANW->dequeueBuffer(mANW.get(), &buf)); - ASSERT_EQ(OK, mANW->queueBuffer(mANW.get(), buf)); - ASSERT_EQ(OK, mST->updateTexImage()); - - Rect crop = mST->getCurrentCrop(); - EXPECT_EQ(expectedRects[i].left, crop.left); - EXPECT_EQ(expectedRects[i].top, crop.top); - EXPECT_EQ(expectedRects[i].right, crop.right); - EXPECT_EQ(expectedRects[i].bottom, crop.bottom); - } -} - TEST_F(SurfaceTextureClientTest, SetCropCropsCrop) { android_native_rect_t rect = {-2, -13, 40, 18}; native_window_set_crop(mANW.get(), &rect); |