Skip to content

Commit 39eb807

Browse files
Jamie GennisAndroid (Google) Code Review
authored andcommitted
Merge "Refactored query function from SurfaceTexture into BufferQueue"
2 parents ea555e2 + f7c761e commit 39eb807

File tree

4 files changed

+34
-30
lines changed

4 files changed

+34
-30
lines changed

include/gui/BufferQueue.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ class BufferQueue : public BnSurfaceTexture {
6060
BufferQueue(bool allowSynchronousMode = true);
6161
virtual ~BufferQueue();
6262

63+
virtual int query(int what, int* value);
64+
6365
// setBufferCount updates the number of available buffer slots. After
6466
// calling this all buffer slots are both unallocated and owned by the
6567
// BufferQueue object (i.e. they are not owned by the client).

include/gui/SurfaceTexture.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class SurfaceTexture : public BufferQueue {
5555

5656
virtual ~SurfaceTexture();
5757

58-
virtual int query(int what, int* value);
58+
5959

6060
// updateTexImage sets the image contents of the target texture to that of
6161
// the most recently queued buffer.

libs/gui/BufferQueue.cpp

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,37 @@ status_t BufferQueue::setBufferCount(int bufferCount) {
166166
return OK;
167167
}
168168

169+
int BufferQueue::query(int what, int* outValue)
170+
{
171+
Mutex::Autolock lock(mMutex);
172+
173+
if (mAbandoned) {
174+
ST_LOGE("query: SurfaceTexture has been abandoned!");
175+
return NO_INIT;
176+
}
177+
178+
int value;
179+
switch (what) {
180+
case NATIVE_WINDOW_WIDTH:
181+
value = mDefaultWidth;
182+
break;
183+
case NATIVE_WINDOW_HEIGHT:
184+
value = mDefaultHeight;
185+
break;
186+
case NATIVE_WINDOW_FORMAT:
187+
value = mPixelFormat;
188+
break;
189+
case NATIVE_WINDOW_MIN_UNDEQUEUED_BUFFERS:
190+
value = mSynchronousMode ?
191+
(MIN_UNDEQUEUED_BUFFERS-1) : MIN_UNDEQUEUED_BUFFERS;
192+
break;
193+
default:
194+
return BAD_VALUE;
195+
}
196+
outValue[0] = value;
197+
return NO_ERROR;
198+
}
199+
169200
status_t BufferQueue::requestBuffer(int slot, sp<GraphicBuffer>* buf) {
170201
ST_LOGV("requestBuffer: slot=%d", slot);
171202
Mutex::Autolock lock(mMutex);

libs/gui/SurfaceTexture.cpp

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -416,36 +416,7 @@ bool SurfaceTexture::isSynchronousMode() const {
416416
return mSynchronousMode;
417417
}
418418

419-
int SurfaceTexture::query(int what, int* outValue)
420-
{
421-
Mutex::Autolock lock(mMutex);
422419

423-
if (mAbandoned) {
424-
ST_LOGE("query: SurfaceTexture has been abandoned!");
425-
return NO_INIT;
426-
}
427-
428-
int value;
429-
switch (what) {
430-
case NATIVE_WINDOW_WIDTH:
431-
value = mDefaultWidth;
432-
break;
433-
case NATIVE_WINDOW_HEIGHT:
434-
value = mDefaultHeight;
435-
break;
436-
case NATIVE_WINDOW_FORMAT:
437-
value = mPixelFormat;
438-
break;
439-
case NATIVE_WINDOW_MIN_UNDEQUEUED_BUFFERS:
440-
value = mSynchronousMode ?
441-
(MIN_UNDEQUEUED_BUFFERS-1) : MIN_UNDEQUEUED_BUFFERS;
442-
break;
443-
default:
444-
return BAD_VALUE;
445-
}
446-
outValue[0] = value;
447-
return NO_ERROR;
448-
}
449420

450421
void SurfaceTexture::abandon() {
451422
Mutex::Autolock lock(mMutex);

0 commit comments

Comments
 (0)