Chromium Code Reviews| Index: gpu/command_buffer/client/buffer_tracker.h | 
| diff --git a/gpu/command_buffer/client/buffer_tracker.h b/gpu/command_buffer/client/buffer_tracker.h | 
| index 3e50364317d234bc9d7ed336c81de4fdbc26d5a4..8fadca918bc95330608a58f5a74fecc81fb1297a 100644 | 
| --- a/gpu/command_buffer/client/buffer_tracker.h | 
| +++ b/gpu/command_buffer/client/buffer_tracker.h | 
| @@ -35,7 +35,9 @@ class GLES2_IMPL_EXPORT BufferTracker { | 
| shm_offset_(shm_offset), | 
| address_(address), | 
| mapped_(false), | 
| - transfer_ready_token_(0) { | 
| + transfer_ready_token_(0), | 
| + unused_token_(0), | 
| + async_query_id_(0) { | 
| } | 
| GLenum id() const { | 
| @@ -74,6 +76,30 @@ class GLES2_IMPL_EXPORT BufferTracker { | 
| return transfer_ready_token_; | 
| } | 
| + void set_used(bool used) { | 
| + used_ = used; | 
| + } | 
| + | 
| + bool used() const { | 
| + return used_; | 
| + } | 
| + | 
| + void set_unused_token(int token) { | 
| + unused_token_ = token; | 
| + } | 
| + | 
| + int unused_token() const { | 
| + return unused_token_; | 
| + } | 
| + | 
| + void set_async_query_id(GLuint async_query_id) { | 
| + async_query_id_ = async_query_id; | 
| + } | 
| + | 
| + GLuint async_query_id() const { | 
| + return async_query_id_; | 
| + } | 
| + | 
| private: | 
| friend class BufferTracker; | 
| friend class BufferTrackerTest; | 
| @@ -83,8 +109,11 @@ class GLES2_IMPL_EXPORT BufferTracker { | 
| int32 shm_id_; | 
| uint32 shm_offset_; | 
| void* address_; | 
| - bool mapped_; | 
| + bool mapped_ : 1; | 
| + bool used_ : 1; | 
| int32 transfer_ready_token_; | 
| + int32 unused_token_; | 
| 
 
epennerAtGoogle
2014/01/07 00:47:59
Does this mean: "The buffer is unused after this t
 
reveman
2014/01/07 06:32:06
+1
 
jadahl
2014/01/07 10:52:03
last_usage_token np. last_async_query_id might be
 
 | 
| + GLuint async_query_id_; | 
| }; | 
| BufferTracker(MappedMemoryManager* manager); | 
| @@ -93,10 +122,12 @@ class GLES2_IMPL_EXPORT BufferTracker { | 
| Buffer* CreateBuffer(GLuint id, GLsizeiptr size); | 
| Buffer* GetBuffer(GLuint id); | 
| void RemoveBuffer(GLuint id); | 
| + void UnmanageBuffer(GLuint id); | 
| // Frees the block of memory associated with buffer, pending the passage | 
| // of a token. | 
| - void FreePendingToken(Buffer*, int32 token); | 
| + void FreePendingToken(Buffer* buffer, int32 token); | 
| + void Free(Buffer* buffer); | 
| private: | 
| typedef base::hash_map<GLuint, Buffer*> BufferMap; |