Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(158)

Side by Side Diff: gpu/command_buffer/service/in_process_command_buffer.cc

Issue 1859703002: convert //gpu to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase on master Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "gpu/command_buffer/service/in_process_command_buffer.h" 5 #include "gpu/command_buffer/service/in_process_command_buffer.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <queue> 10 #include <queue>
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 78
79 private: 79 private:
80 SyncPointOrderData* order_data_; 80 SyncPointOrderData* order_data_;
81 uint32_t order_num_; 81 uint32_t order_num_;
82 }; 82 };
83 83
84 struct GpuInProcessThreadHolder { 84 struct GpuInProcessThreadHolder {
85 GpuInProcessThreadHolder() 85 GpuInProcessThreadHolder()
86 : sync_point_manager(new SyncPointManager(false)), 86 : sync_point_manager(new SyncPointManager(false)),
87 gpu_thread(new GpuInProcessThread(sync_point_manager.get())) {} 87 gpu_thread(new GpuInProcessThread(sync_point_manager.get())) {}
88 scoped_ptr<SyncPointManager> sync_point_manager; 88 std::unique_ptr<SyncPointManager> sync_point_manager;
89 scoped_refptr<InProcessCommandBuffer::Service> gpu_thread; 89 scoped_refptr<InProcessCommandBuffer::Service> gpu_thread;
90 }; 90 };
91 91
92 base::LazyInstance<GpuInProcessThreadHolder> g_default_service = 92 base::LazyInstance<GpuInProcessThreadHolder> g_default_service =
93 LAZY_INSTANCE_INITIALIZER; 93 LAZY_INSTANCE_INITIALIZER;
94 94
95 class ScopedEvent { 95 class ScopedEvent {
96 public: 96 public:
97 explicit ScopedEvent(base::WaitableEvent* event) : event_(event) {} 97 explicit ScopedEvent(base::WaitableEvent* event) : event_(event) {}
98 ~ScopedEvent() { event_->Signal(); } 98 ~ScopedEvent() { event_->Signal(); }
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 const InitializeOnGpuThreadParams& params) { 320 const InitializeOnGpuThreadParams& params) {
321 CheckSequencedThread(); 321 CheckSequencedThread();
322 gpu_thread_weak_ptr_ = gpu_thread_weak_ptr_factory_.GetWeakPtr(); 322 gpu_thread_weak_ptr_ = gpu_thread_weak_ptr_factory_.GetWeakPtr();
323 323
324 DCHECK(params.size.width() >= 0 && params.size.height() >= 0); 324 DCHECK(params.size.width() >= 0 && params.size.height() >= 0);
325 325
326 TransferBufferManager* manager = new TransferBufferManager(nullptr); 326 TransferBufferManager* manager = new TransferBufferManager(nullptr);
327 transfer_buffer_manager_ = manager; 327 transfer_buffer_manager_ = manager;
328 manager->Initialize(); 328 manager->Initialize();
329 329
330 scoped_ptr<CommandBufferService> command_buffer( 330 std::unique_ptr<CommandBufferService> command_buffer(
331 new CommandBufferService(transfer_buffer_manager_.get())); 331 new CommandBufferService(transfer_buffer_manager_.get()));
332 command_buffer->SetPutOffsetChangeCallback(base::Bind( 332 command_buffer->SetPutOffsetChangeCallback(base::Bind(
333 &InProcessCommandBuffer::PumpCommandsOnGpuThread, gpu_thread_weak_ptr_)); 333 &InProcessCommandBuffer::PumpCommandsOnGpuThread, gpu_thread_weak_ptr_));
334 command_buffer->SetParseErrorCallback(base::Bind( 334 command_buffer->SetParseErrorCallback(base::Bind(
335 &InProcessCommandBuffer::OnContextLostOnGpuThread, gpu_thread_weak_ptr_)); 335 &InProcessCommandBuffer::OnContextLostOnGpuThread, gpu_thread_weak_ptr_));
336 336
337 if (!command_buffer->Initialize()) { 337 if (!command_buffer->Initialize()) {
338 LOG(ERROR) << "Could not initialize command buffer."; 338 LOG(ERROR) << "Could not initialize command buffer.";
339 DestroyOnGpuThread(); 339 DestroyOnGpuThread();
340 return false; 340 return false;
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after
832 } 832 }
833 833
834 int32_t InProcessCommandBuffer::CreateGpuMemoryBufferImage( 834 int32_t InProcessCommandBuffer::CreateGpuMemoryBufferImage(
835 size_t width, 835 size_t width,
836 size_t height, 836 size_t height,
837 unsigned internalformat, 837 unsigned internalformat,
838 unsigned usage) { 838 unsigned usage) {
839 CheckSequencedThread(); 839 CheckSequencedThread();
840 840
841 DCHECK(gpu_memory_buffer_manager_); 841 DCHECK(gpu_memory_buffer_manager_);
842 scoped_ptr<gfx::GpuMemoryBuffer> buffer( 842 std::unique_ptr<gfx::GpuMemoryBuffer> buffer(
843 gpu_memory_buffer_manager_->AllocateGpuMemoryBuffer( 843 gpu_memory_buffer_manager_->AllocateGpuMemoryBuffer(
844 gfx::Size(width, height), 844 gfx::Size(width, height),
845 gpu::DefaultBufferFormatForImageFormat(internalformat), 845 gpu::DefaultBufferFormatForImageFormat(internalformat),
846 gfx::BufferUsage::SCANOUT, 0 /* surface_id */)); 846 gfx::BufferUsage::SCANOUT, 0 /* surface_id */));
847 if (!buffer) 847 if (!buffer)
848 return -1; 848 return -1;
849 849
850 return CreateImage(buffer->AsClientBuffer(), width, height, internalformat); 850 return CreateImage(buffer->AsClientBuffer(), width, height, internalformat);
851 } 851 }
852 852
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
1007 const base::Closure& callback) { 1007 const base::Closure& callback) {
1008 // The task_runner.get() check is to support using InProcessCommandBuffer on 1008 // The task_runner.get() check is to support using InProcessCommandBuffer on
1009 // a thread without a message loop. 1009 // a thread without a message loop.
1010 if (task_runner.get() && !task_runner->BelongsToCurrentThread()) { 1010 if (task_runner.get() && !task_runner->BelongsToCurrentThread()) {
1011 task_runner->PostTask(FROM_HERE, callback); 1011 task_runner->PostTask(FROM_HERE, callback);
1012 } else { 1012 } else {
1013 callback.Run(); 1013 callback.Run();
1014 } 1014 }
1015 } 1015 }
1016 1016
1017 void RunOnTargetThread(scoped_ptr<base::Closure> callback) { 1017 void RunOnTargetThread(std::unique_ptr<base::Closure> callback) {
1018 DCHECK(callback.get()); 1018 DCHECK(callback.get());
1019 callback->Run(); 1019 callback->Run();
1020 } 1020 }
1021 1021
1022 } // anonymous namespace 1022 } // anonymous namespace
1023 1023
1024 base::Closure InProcessCommandBuffer::WrapCallback( 1024 base::Closure InProcessCommandBuffer::WrapCallback(
1025 const base::Closure& callback) { 1025 const base::Closure& callback) {
1026 // Make sure the callback gets deleted on the target thread by passing 1026 // Make sure the callback gets deleted on the target thread by passing
1027 // ownership. 1027 // ownership.
1028 scoped_ptr<base::Closure> scoped_callback(new base::Closure(callback)); 1028 std::unique_ptr<base::Closure> scoped_callback(new base::Closure(callback));
1029 base::Closure callback_on_client_thread = 1029 base::Closure callback_on_client_thread =
1030 base::Bind(&RunOnTargetThread, base::Passed(&scoped_callback)); 1030 base::Bind(&RunOnTargetThread, base::Passed(&scoped_callback));
1031 base::Closure wrapped_callback = 1031 base::Closure wrapped_callback =
1032 base::Bind(&PostCallback, base::ThreadTaskRunnerHandle::IsSet() 1032 base::Bind(&PostCallback, base::ThreadTaskRunnerHandle::IsSet()
1033 ? base::ThreadTaskRunnerHandle::Get() 1033 ? base::ThreadTaskRunnerHandle::Get()
1034 : nullptr, 1034 : nullptr,
1035 callback_on_client_thread); 1035 callback_on_client_thread);
1036 return wrapped_callback; 1036 return wrapped_callback;
1037 } 1037 }
1038 1038
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1081 framebuffer_completeness_cache_ = 1081 framebuffer_completeness_cache_ =
1082 new gpu::gles2::FramebufferCompletenessCache; 1082 new gpu::gles2::FramebufferCompletenessCache;
1083 return framebuffer_completeness_cache_; 1083 return framebuffer_completeness_cache_;
1084 } 1084 }
1085 1085
1086 SyncPointManager* GpuInProcessThread::sync_point_manager() { 1086 SyncPointManager* GpuInProcessThread::sync_point_manager() {
1087 return sync_point_manager_; 1087 return sync_point_manager_;
1088 } 1088 }
1089 1089
1090 } // namespace gpu 1090 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/in_process_command_buffer.h ('k') | gpu/command_buffer/service/memory_program_cache.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698