| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 CONTENT_BROWSER_GPU_BROWSER_GPU_MEMORY_BUFFER_MANAGER_H_ | 5 #ifndef CONTENT_BROWSER_GPU_BROWSER_GPU_MEMORY_BUFFER_MANAGER_H_ |
| 6 #define CONTENT_BROWSER_GPU_BROWSER_GPU_MEMORY_BUFFER_MANAGER_H_ | 6 #define CONTENT_BROWSER_GPU_BROWSER_GPU_MEMORY_BUFFER_MANAGER_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 namespace content { | 25 namespace content { |
| 26 | 26 |
| 27 class CONTENT_EXPORT BrowserGpuMemoryBufferManager | 27 class CONTENT_EXPORT BrowserGpuMemoryBufferManager |
| 28 : public gpu::GpuMemoryBufferManager, | 28 : public gpu::GpuMemoryBufferManager, |
| 29 public base::trace_event::MemoryDumpProvider { | 29 public base::trace_event::MemoryDumpProvider { |
| 30 public: | 30 public: |
| 31 using CreateCallback = | 31 using CreateCallback = |
| 32 base::Callback<void(const gfx::GpuMemoryBufferHandle& handle)>; | 32 base::Callback<void(const gfx::GpuMemoryBufferHandle& handle)>; |
| 33 using AllocationCallback = CreateCallback; | 33 using AllocationCallback = CreateCallback; |
| 34 | 34 |
| 35 using GetGpuMemoryBufferAttribsCallback = base::Callback<void( |
| 36 const gfx::GpuMemoryBufferAttribVector& supported_attribs)>; |
| 37 |
| 35 BrowserGpuMemoryBufferManager(int gpu_client_id, | 38 BrowserGpuMemoryBufferManager(int gpu_client_id, |
| 36 uint64_t gpu_client_tracing_id); | 39 uint64_t gpu_client_tracing_id); |
| 37 ~BrowserGpuMemoryBufferManager() override; | 40 ~BrowserGpuMemoryBufferManager() override; |
| 38 | 41 |
| 39 static BrowserGpuMemoryBufferManager* current(); | 42 static BrowserGpuMemoryBufferManager* current(); |
| 40 | 43 |
| 41 // Overridden from gpu::GpuMemoryBufferManager: | 44 // Overridden from gpu::GpuMemoryBufferManager: |
| 42 std::unique_ptr<gfx::GpuMemoryBuffer> CreateGpuMemoryBuffer( | 45 std::unique_ptr<gfx::GpuMemoryBuffer> CreateGpuMemoryBuffer( |
| 43 const gfx::Size& size, | 46 const gfx::Size& size, |
| 44 gfx::BufferFormat format, | 47 gfx::BufferFormat format, |
| 45 gfx::BufferUsage usage, | 48 gfx::BufferUsage usage, |
| 46 gpu::SurfaceHandle surface_handle) override; | 49 gpu::SurfaceHandle surface_handle) override; |
| 47 void SetDestructionSyncToken(gfx::GpuMemoryBuffer* buffer, | 50 void SetDestructionSyncToken(gfx::GpuMemoryBuffer* buffer, |
| 48 const gpu::SyncToken& sync_token) override; | 51 const gpu::SyncToken& sync_token) override; |
| 49 | 52 |
| 53 gfx::GpuMemoryBufferAttribVector GetGpuMemoryBufferAttribs() override; |
| 50 // Overridden from base::trace_event::MemoryDumpProvider: | 54 // Overridden from base::trace_event::MemoryDumpProvider: |
| 51 bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args, | 55 bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args, |
| 52 base::trace_event::ProcessMemoryDump* pmd) override; | 56 base::trace_event::ProcessMemoryDump* pmd) override; |
| 53 | 57 |
| 54 void AllocateGpuMemoryBufferForChildProcess( | 58 void AllocateGpuMemoryBufferForChildProcess( |
| 55 gfx::GpuMemoryBufferId id, | 59 gfx::GpuMemoryBufferId id, |
| 56 const gfx::Size& size, | 60 const gfx::Size& size, |
| 57 gfx::BufferFormat format, | 61 gfx::BufferFormat format, |
| 58 gfx::BufferUsage usage, | 62 gfx::BufferUsage usage, |
| 59 int child_client_id, | 63 int child_client_id, |
| (...skipping 20 matching lines...) Expand all Loading... |
| 80 | 84 |
| 81 gfx::Size size; | 85 gfx::Size size; |
| 82 gfx::GpuMemoryBufferType type = gfx::EMPTY_BUFFER; | 86 gfx::GpuMemoryBufferType type = gfx::EMPTY_BUFFER; |
| 83 gfx::BufferFormat format = gfx::BufferFormat::RGBA_8888; | 87 gfx::BufferFormat format = gfx::BufferFormat::RGBA_8888; |
| 84 gfx::BufferUsage usage = gfx::BufferUsage::GPU_READ; | 88 gfx::BufferUsage usage = gfx::BufferUsage::GPU_READ; |
| 85 int gpu_host_id = 0; | 89 int gpu_host_id = 0; |
| 86 }; | 90 }; |
| 87 | 91 |
| 88 struct CreateGpuMemoryBufferRequest; | 92 struct CreateGpuMemoryBufferRequest; |
| 89 | 93 |
| 94 struct GetGpuMemoryBufferAttribsRequest; |
| 95 |
| 90 std::unique_ptr<gfx::GpuMemoryBuffer> AllocateGpuMemoryBufferForSurface( | 96 std::unique_ptr<gfx::GpuMemoryBuffer> AllocateGpuMemoryBufferForSurface( |
| 91 const gfx::Size& size, | 97 const gfx::Size& size, |
| 92 gfx::BufferFormat format, | 98 gfx::BufferFormat format, |
| 93 gfx::BufferUsage usage, | 99 gfx::BufferUsage usage, |
| 94 gpu::SurfaceHandle surface_handle); | 100 gpu::SurfaceHandle surface_handle); |
| 95 | 101 |
| 102 using GetGpuMemoryBufferAttribsDelegate = |
| 103 base::Callback<void(GpuProcessHost* host, |
| 104 int client_id, |
| 105 const GetGpuMemoryBufferAttribsCallback& callback)>; |
| 106 void HandleGetGpuMemoryBufferAttribsOnIO( |
| 107 GetGpuMemoryBufferAttribsRequest* request); |
| 108 void GetGpuMemoryBufferAttribsOnIO( |
| 109 const GetGpuMemoryBufferAttribsDelegate& delegate, |
| 110 int client_id, |
| 111 const GetGpuMemoryBufferAttribsCallback& callback); |
| 112 void HandleGpuMemoryBufferAttribsReceivedOnIO( |
| 113 GetGpuMemoryBufferAttribsRequest* request, |
| 114 const gfx::GpuMemoryBufferAttribVector& supported_attribs); |
| 115 |
| 96 // Functions that handle synchronous buffer creation requests. | 116 // Functions that handle synchronous buffer creation requests. |
| 97 void HandleCreateGpuMemoryBufferOnIO(CreateGpuMemoryBufferRequest* request); | 117 void HandleCreateGpuMemoryBufferOnIO(CreateGpuMemoryBufferRequest* request); |
| 98 void HandleGpuMemoryBufferCreatedOnIO( | 118 void HandleGpuMemoryBufferCreatedOnIO( |
| 99 CreateGpuMemoryBufferRequest* request, | 119 CreateGpuMemoryBufferRequest* request, |
| 100 const gfx::GpuMemoryBufferHandle& handle); | 120 const gfx::GpuMemoryBufferHandle& handle); |
| 101 | 121 |
| 102 // Functions that implement asynchronous buffer creation. | 122 // Functions that implement asynchronous buffer creation. |
| 103 void CreateGpuMemoryBufferOnIO(gfx::GpuMemoryBufferId id, | 123 void CreateGpuMemoryBufferOnIO(gfx::GpuMemoryBufferId id, |
| 104 const gfx::Size& size, | 124 const gfx::Size& size, |
| 105 gfx::BufferFormat format, | 125 gfx::BufferFormat format, |
| (...skipping 23 matching lines...) Expand all Loading... |
| 129 using BufferMap = base::hash_map<gfx::GpuMemoryBufferId, BufferInfo>; | 149 using BufferMap = base::hash_map<gfx::GpuMemoryBufferId, BufferInfo>; |
| 130 using ClientMap = base::hash_map<int, BufferMap>; | 150 using ClientMap = base::hash_map<int, BufferMap>; |
| 131 ClientMap clients_; | 151 ClientMap clients_; |
| 132 | 152 |
| 133 DISALLOW_COPY_AND_ASSIGN(BrowserGpuMemoryBufferManager); | 153 DISALLOW_COPY_AND_ASSIGN(BrowserGpuMemoryBufferManager); |
| 134 }; | 154 }; |
| 135 | 155 |
| 136 } // namespace content | 156 } // namespace content |
| 137 | 157 |
| 138 #endif // CONTENT_BROWSER_GPU_BROWSER_GPU_MEMORY_BUFFER_MANAGER_H_ | 158 #endif // CONTENT_BROWSER_GPU_BROWSER_GPU_MEMORY_BUFFER_MANAGER_H_ |
| OLD | NEW |