Loading libs/gui/BufferQueue.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -218,6 +218,9 @@ int BufferQueue::query(int what, int* outValue) case NATIVE_WINDOW_CONSUMER_RUNNING_BEHIND: value = (mQueue.size() >= 2); break; case NATIVE_WINDOW_CONSUMER_USAGE_BITS: value = mConsumerUsageBits; break; default: return BAD_VALUE; } Loading libs/gui/tests/Surface_test.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include <gui/ISurfaceComposer.h> #include <gui/Surface.h> #include <gui/SurfaceComposerClient.h> #include <gui/BufferItemConsumer.h> #include <utils/String8.h> #include <private/gui/ComposerService.h> Loading Loading @@ -132,4 +133,21 @@ TEST_F(SurfaceTest, ConcreteTypeIsSurface) { EXPECT_EQ(NATIVE_WINDOW_SURFACE, result); } TEST_F(SurfaceTest, QueryConsumerUsage) { const int TEST_USAGE_FLAGS = GRALLOC_USAGE_SW_READ_OFTEN | GRALLOC_USAGE_HW_RENDER; sp<BufferQueue> bq = new BufferQueue(); sp<BufferItemConsumer> c = new BufferItemConsumer(bq, TEST_USAGE_FLAGS); sp<Surface> s = new Surface(c->getProducerInterface()); sp<ANativeWindow> anw(s); int flags = -1; int err = anw->query(anw.get(), NATIVE_WINDOW_CONSUMER_USAGE_BITS, &flags); ASSERT_EQ(NO_ERROR, err); ASSERT_EQ(TEST_USAGE_FLAGS, flags); } } Loading
libs/gui/BufferQueue.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -218,6 +218,9 @@ int BufferQueue::query(int what, int* outValue) case NATIVE_WINDOW_CONSUMER_RUNNING_BEHIND: value = (mQueue.size() >= 2); break; case NATIVE_WINDOW_CONSUMER_USAGE_BITS: value = mConsumerUsageBits; break; default: return BAD_VALUE; } Loading
libs/gui/tests/Surface_test.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include <gui/ISurfaceComposer.h> #include <gui/Surface.h> #include <gui/SurfaceComposerClient.h> #include <gui/BufferItemConsumer.h> #include <utils/String8.h> #include <private/gui/ComposerService.h> Loading Loading @@ -132,4 +133,21 @@ TEST_F(SurfaceTest, ConcreteTypeIsSurface) { EXPECT_EQ(NATIVE_WINDOW_SURFACE, result); } TEST_F(SurfaceTest, QueryConsumerUsage) { const int TEST_USAGE_FLAGS = GRALLOC_USAGE_SW_READ_OFTEN | GRALLOC_USAGE_HW_RENDER; sp<BufferQueue> bq = new BufferQueue(); sp<BufferItemConsumer> c = new BufferItemConsumer(bq, TEST_USAGE_FLAGS); sp<Surface> s = new Surface(c->getProducerInterface()); sp<ANativeWindow> anw(s); int flags = -1; int err = anw->query(anw.get(), NATIVE_WINDOW_CONSUMER_USAGE_BITS, &flags); ASSERT_EQ(NO_ERROR, err); ASSERT_EQ(TEST_USAGE_FLAGS, flags); } }