Index: services/ui/gpu/gpu_service_internal.h |
diff --git a/services/ui/gpu/gpu_service_internal.h b/services/ui/gpu/gpu_service_internal.h |
index 82f93d05e439ccb4fbd3ba366343938a2275dcb5..60b4f37c52d3201ec3cd752c7d083df2c643780a 100644 |
--- a/services/ui/gpu/gpu_service_internal.h |
+++ b/services/ui/gpu/gpu_service_internal.h |
@@ -22,6 +22,11 @@ |
#include "services/ui/gpu/interfaces/gpu_service_internal.mojom.h" |
#include "ui/gfx/native_widget_types.h" |
+namespace base { |
+template <typename T> |
+struct DefaultSingletonTraits; |
+} |
+ |
namespace gpu { |
class GpuChannelHost; |
class GpuMemoryBufferFactory; |
@@ -35,8 +40,6 @@ |
namespace ui { |
-class GpuMain; |
- |
// This runs in the GPU process, and communicates with the gpu host (which is |
// the window server) over the mojom APIs. This is responsible for setting up |
// the connection to clients, allocating/free'ing gpu memory etc. |
@@ -44,16 +47,17 @@ |
public mojom::GpuServiceInternal, |
public base::NonThreadSafe { |
public: |
- ~GpuServiceInternal() override; |
+ void Add(mojom::GpuServiceInternalRequest request); |
- void Add(mojom::GpuServiceInternalRequest request); |
+ // TODO(sad): This should not be a singleton. |
+ static GpuServiceInternal* GetInstance(); |
gpu::GpuChannelManager* gpu_channel_manager() const { |
return gpu_channel_manager_.get(); |
} |
gpu::GpuMemoryBufferFactory* gpu_memory_buffer_factory() const { |
- return gpu_memory_buffer_factory_; |
+ return gpu_memory_buffer_factory_.get(); |
} |
// TODO(sad): These should be mojom API. |
@@ -69,11 +73,10 @@ |
const gpu::SyncToken& sync_token); |
private: |
- friend class GpuMain; |
+ friend struct base::DefaultSingletonTraits<GpuServiceInternal>; |
- GpuServiceInternal(const gpu::GPUInfo& gpu_info, |
- gpu::GpuWatchdogThread* watchdog, |
- gpu::GpuMemoryBufferFactory* memory_buffer_factory); |
+ GpuServiceInternal(); |
+ ~GpuServiceInternal() override; |
void EstablishGpuChannelInternal(int32_t client_id, |
uint64_t client_tracing_id, |
@@ -134,7 +137,7 @@ |
// The thread that handles IO events for GpuService. |
base::Thread io_thread_; |
- gpu::GpuWatchdogThread* watchdog_thread_; |
+ scoped_refptr<gpu::GpuWatchdogThread> watchdog_thread_; |
std::unique_ptr<gpu::SyncPointManager> owned_sync_point_manager_; |
@@ -142,7 +145,7 @@ |
std::unique_ptr<media::MediaService> media_service_; |
- gpu::GpuMemoryBufferFactory* gpu_memory_buffer_factory_; |
+ std::unique_ptr<gpu::GpuMemoryBufferFactory> gpu_memory_buffer_factory_; |
gpu::GpuPreferences gpu_preferences_; |