summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/common/command_buffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'gpu/command_buffer/common/command_buffer.h')
-rw-r--r--gpu/command_buffer/common/command_buffer.h28
1 files changed, 20 insertions, 8 deletions
diff --git a/gpu/command_buffer/common/command_buffer.h b/gpu/command_buffer/common/command_buffer.h
index e100792..6b19ea2 100644
--- a/gpu/command_buffer/common/command_buffer.h
+++ b/gpu/command_buffer/common/command_buffer.h
@@ -101,16 +101,28 @@ class GPU_EXPORT CommandBuffer {
// Sets the current get offset. This can be called from any thread.
virtual void SetGetOffset(int32 get_offset) = 0;
- // Create a transfer buffer of the given size. Returns its ID or -1 on
- // error.
- virtual Buffer CreateTransferBuffer(size_t size, int32* id) = 0;
-
- // Destroy a transfer buffer. The ID must be positive.
+ // Create a transfer buffer and return a handle that uniquely
+ // identifies it or -1 on error. id_request lets the caller request a
+ // specific id for the transfer buffer, or -1 if the caller does not care.
+ // If the requested id can not be fulfilled, a different id will be returned.
+ // id_request must be either -1 or between 0 and 100.
+ virtual int32 CreateTransferBuffer(size_t size, int32 id_request) = 0;
+
+ // Register an existing shared memory object and get an ID that can be used
+ // to identify it in the command buffer. Callee dups the handle until
+ // DestroyTransferBuffer is called. id_request lets the caller request a
+ // specific id for the transfer buffer, or -1 if the caller does not care.
+ // If the requested id can not be fulfilled, a different id will be returned.
+ // id_request must be either -1 or between 0 and 100.
+ virtual int32 RegisterTransferBuffer(base::SharedMemory* shared_memory,
+ size_t size,
+ int32 id_request) = 0;
+
+ // Destroy a transfer buffer and recycle the handle.
virtual void DestroyTransferBuffer(int32 id) = 0;
- // Get the transfer buffer associated with an ID. Returns a null buffer for
- // ID 0.
- virtual Buffer GetTransferBuffer(int32 id) = 0;
+ // Get the transfer buffer associated with a handle.
+ virtual Buffer GetTransferBuffer(int32 handle) = 0;
// Allows the reader to update the current token value.
virtual void SetToken(int32 token) = 0;