summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2010-06-08 19:54:15 -0700
committerMathias Agopian <mathias@google.com>2010-06-08 20:10:02 -0700
commit36ef8cf54e2bf2f96b8c7f47cd534c00ccb7b64f (patch)
treeea437c86609ee36a52c071cd066d029793633639 /include
parentddcc4a66d848deef6fb4689e64e30cd9bd2684fe (diff)
downloadframeworks_av-36ef8cf54e2bf2f96b8c7f47cd534c00ccb7b64f.zip
frameworks_av-36ef8cf54e2bf2f96b8c7f47cd534c00ccb7b64f.tar.gz
frameworks_av-36ef8cf54e2bf2f96b8c7f47cd534c00ccb7b64f.tar.bz2
allow re-targetting of surfaces
Surfaces can now be parcelized and sent to remote processes. When a surface crosses a process boundary, it looses its connection with the current process and gets attached to the new one. Change-Id: I39c7b055bcd3ea1162ef2718d3d4b866bf7c81c0
Diffstat (limited to 'include')
-rw-r--r--include/private/surfaceflinger/SharedBufferStack.h16
1 files changed, 6 insertions, 10 deletions
diff --git a/include/private/surfaceflinger/SharedBufferStack.h b/include/private/surfaceflinger/SharedBufferStack.h
index c11c855..633b543 100644
--- a/include/private/surfaceflinger/SharedBufferStack.h
+++ b/include/private/surfaceflinger/SharedBufferStack.h
@@ -43,15 +43,6 @@ namespace android {
* unless they are in use by the server, which is only the case for the last
* dequeue-able buffer. When these various conditions are not met, the caller
* waits until the condition is met.
- *
- *
- * CAVEATS:
- *
- * In the current implementation there are several limitations:
- * - buffers must be locked in the same order they've been dequeued
- * - buffers must be enqueued in the same order they've been locked
- * - dequeue() is not reentrant
- * - no error checks are done on the condition above
*
*/
@@ -269,7 +260,9 @@ private:
// ----------------------------------------------------------------------------
-class SharedBufferServer : public SharedBufferBase
+class SharedBufferServer
+ : public SharedBufferBase,
+ public LightRefBase<SharedBufferServer>
{
public:
SharedBufferServer(SharedClient* sharedClient, int surface, int num,
@@ -290,6 +283,9 @@ public:
private:
+ friend class LightRefBase<SharedBufferServer>;
+ ~SharedBufferServer();
+
/*
* BufferList is basically a fixed-capacity sorted-vector of
* unsigned 5-bits ints using a 32-bits int as storage.