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 |