summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger/DisplayHardware
diff options
context:
space:
mode:
authorDan Stoza <stoza@google.com>2015-06-02 15:45:22 -0700
committerDan Stoza <stoza@google.com>2015-06-03 11:09:33 -0700
commit812ed0644f8f8f71ca403f4e5793f0dbc1fcf9b2 (patch)
treeceb7515f9f4ded20808bdb322eb9af77366d0629 /services/surfaceflinger/DisplayHardware
parenta8c2454d52d3c23bd53b4a172eff8e5f4af30168 (diff)
downloadframeworks_native-812ed0644f8f8f71ca403f4e5793f0dbc1fcf9b2.zip
frameworks_native-812ed0644f8f8f71ca403f4e5793f0dbc1fcf9b2.tar.gz
frameworks_native-812ed0644f8f8f71ca403f4e5793f0dbc1fcf9b2.tar.bz2
libgui: Add generation numbers to BufferQueue
This change allows producers to set a generation number on a BufferQueue. This number will be embedded in any new GraphicBuffers created in that BufferQueue, and attempts to attach buffers which have a different generation number will fail. It also plumbs the setGenerationNumber method through Surface, with the additional effect that any buffers attached to the Surface after setting a new generation number will automatically be updated with the new number (as opposed to failing, as would happen on through IGBP). Bug: 20923096 Change-Id: I32bf726b035f99c3e5834beaf76afb9f01adcbc2
Diffstat (limited to 'services/surfaceflinger/DisplayHardware')
-rw-r--r--services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp5
-rw-r--r--services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp
index 11cbdc6..ee8d41c 100644
--- a/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp
+++ b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp
@@ -530,6 +530,11 @@ status_t VirtualDisplaySurface::allowAllocation(bool /* allow */) {
return INVALID_OPERATION;
}
+status_t VirtualDisplaySurface::setGenerationNumber(uint32_t /* generation */) {
+ ALOGE("setGenerationNumber not supported on VirtualDisplaySurface");
+ return INVALID_OPERATION;
+}
+
void VirtualDisplaySurface::updateQueueBufferOutput(
const QueueBufferOutput& qbo) {
uint32_t w, h, transformHint, numPendingBuffers;
diff --git a/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h
index 97af980..ff02290 100644
--- a/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h
+++ b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h
@@ -116,6 +116,7 @@ private:
virtual void allocateBuffers(bool async, uint32_t width, uint32_t height,
PixelFormat format, uint32_t usage);
virtual status_t allowAllocation(bool allow);
+ virtual status_t setGenerationNumber(uint32_t generationNumber);
//
// Utility methods