| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef GPU_COMMAND_BUFFER_SERVICE_TRANSFER_BUFFER_MANAGER_H_ | 5 #ifndef GPU_COMMAND_BUFFER_SERVICE_TRANSFER_BUFFER_MANAGER_H_ |
| 6 #define GPU_COMMAND_BUFFER_SERVICE_TRANSFER_BUFFER_MANAGER_H_ | 6 #define GPU_COMMAND_BUFFER_SERVICE_TRANSFER_BUFFER_MANAGER_H_ |
| 7 | 7 |
| 8 #include <stddef.h> |
| 9 #include <stdint.h> |
| 10 |
| 8 #include <set> | 11 #include <set> |
| 9 #include <vector> | 12 #include <vector> |
| 10 | 13 |
| 11 #include "base/basictypes.h" | |
| 12 #include "base/compiler_specific.h" | 14 #include "base/compiler_specific.h" |
| 13 #include "base/containers/hash_tables.h" | 15 #include "base/containers/hash_tables.h" |
| 16 #include "base/macros.h" |
| 14 #include "base/memory/ref_counted.h" | 17 #include "base/memory/ref_counted.h" |
| 15 #include "base/trace_event/memory_dump_provider.h" | 18 #include "base/trace_event/memory_dump_provider.h" |
| 16 #include "gpu/command_buffer/common/command_buffer_shared.h" | 19 #include "gpu/command_buffer/common/command_buffer_shared.h" |
| 17 | 20 |
| 18 namespace gpu { | 21 namespace gpu { |
| 19 namespace gles2 { | 22 namespace gles2 { |
| 20 class MemoryTracker; | 23 class MemoryTracker; |
| 21 } | 24 } |
| 22 | 25 |
| 23 class GPU_EXPORT TransferBufferManagerInterface : | 26 class GPU_EXPORT TransferBufferManagerInterface : |
| 24 public base::RefCounted<TransferBufferManagerInterface> { | 27 public base::RefCounted<TransferBufferManagerInterface> { |
| 25 public: | 28 public: |
| 26 virtual bool RegisterTransferBuffer(int32 id, | 29 virtual bool RegisterTransferBuffer(int32_t id, |
| 27 scoped_ptr<BufferBacking> buffer) = 0; | 30 scoped_ptr<BufferBacking> buffer) = 0; |
| 28 virtual void DestroyTransferBuffer(int32 id) = 0; | 31 virtual void DestroyTransferBuffer(int32_t id) = 0; |
| 29 virtual scoped_refptr<Buffer> GetTransferBuffer(int32 id) = 0; | 32 virtual scoped_refptr<Buffer> GetTransferBuffer(int32_t id) = 0; |
| 30 | 33 |
| 31 protected: | 34 protected: |
| 32 friend class base::RefCounted<TransferBufferManagerInterface>; | 35 friend class base::RefCounted<TransferBufferManagerInterface>; |
| 33 | 36 |
| 34 virtual ~TransferBufferManagerInterface(); | 37 virtual ~TransferBufferManagerInterface(); |
| 35 }; | 38 }; |
| 36 | 39 |
| 37 class GPU_EXPORT TransferBufferManager | 40 class GPU_EXPORT TransferBufferManager |
| 38 : public TransferBufferManagerInterface, | 41 : public TransferBufferManagerInterface, |
| 39 public base::trace_event::MemoryDumpProvider { | 42 public base::trace_event::MemoryDumpProvider { |
| 40 public: | 43 public: |
| 41 explicit TransferBufferManager(gles2::MemoryTracker* memory_tracker); | 44 explicit TransferBufferManager(gles2::MemoryTracker* memory_tracker); |
| 42 | 45 |
| 43 // Overridden from base::trace_event::MemoryDumpProvider: | 46 // Overridden from base::trace_event::MemoryDumpProvider: |
| 44 bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args, | 47 bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args, |
| 45 base::trace_event::ProcessMemoryDump* pmd) override; | 48 base::trace_event::ProcessMemoryDump* pmd) override; |
| 46 | 49 |
| 47 bool Initialize(); | 50 bool Initialize(); |
| 48 bool RegisterTransferBuffer( | 51 bool RegisterTransferBuffer( |
| 49 int32 id, | 52 int32_t id, |
| 50 scoped_ptr<BufferBacking> buffer_backing) override; | 53 scoped_ptr<BufferBacking> buffer_backing) override; |
| 51 void DestroyTransferBuffer(int32 id) override; | 54 void DestroyTransferBuffer(int32_t id) override; |
| 52 scoped_refptr<Buffer> GetTransferBuffer(int32 id) override; | 55 scoped_refptr<Buffer> GetTransferBuffer(int32_t id) override; |
| 53 | 56 |
| 54 private: | 57 private: |
| 55 ~TransferBufferManager() override; | 58 ~TransferBufferManager() override; |
| 56 | 59 |
| 57 typedef base::hash_map<int32, scoped_refptr<Buffer> > BufferMap; | 60 typedef base::hash_map<int32_t, scoped_refptr<Buffer>> BufferMap; |
| 58 BufferMap registered_buffers_; | 61 BufferMap registered_buffers_; |
| 59 size_t shared_memory_bytes_allocated_; | 62 size_t shared_memory_bytes_allocated_; |
| 60 gles2::MemoryTracker* memory_tracker_; | 63 gles2::MemoryTracker* memory_tracker_; |
| 61 | 64 |
| 62 DISALLOW_COPY_AND_ASSIGN(TransferBufferManager); | 65 DISALLOW_COPY_AND_ASSIGN(TransferBufferManager); |
| 63 }; | 66 }; |
| 64 | 67 |
| 65 } // namespace gpu | 68 } // namespace gpu |
| 66 | 69 |
| 67 #endif // GPU_COMMAND_BUFFER_SERVICE_TRANSFER_BUFFER_MANAGER_H_ | 70 #endif // GPU_COMMAND_BUFFER_SERVICE_TRANSFER_BUFFER_MANAGER_H_ |
| OLD | NEW |