| OLD | NEW |
| 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 "components/mus/gles2/command_buffer_driver.h" | 5 #include "components/mus/gles2/command_buffer_driver.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "base/memory/shared_memory.h" | 9 #include "base/memory/shared_memory.h" |
| 10 #include "base/process/process_handle.h" | 10 #include "base/process/process_handle.h" |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 | 106 |
| 107 command_buffer_.reset( | 107 command_buffer_.reset( |
| 108 new gpu::CommandBufferService(context_group->transfer_buffer_manager())); | 108 new gpu::CommandBufferService(context_group->transfer_buffer_manager())); |
| 109 bool result = command_buffer_->Initialize(); | 109 bool result = command_buffer_->Initialize(); |
| 110 DCHECK(result); | 110 DCHECK(result); |
| 111 | 111 |
| 112 decoder_.reset(::gpu::gles2::GLES2Decoder::Create(context_group.get())); | 112 decoder_.reset(::gpu::gles2::GLES2Decoder::Create(context_group.get())); |
| 113 scheduler_.reset(new gpu::GpuScheduler(command_buffer_.get(), decoder_.get(), | 113 scheduler_.reset(new gpu::GpuScheduler(command_buffer_.get(), decoder_.get(), |
| 114 decoder_.get())); | 114 decoder_.get())); |
| 115 decoder_->set_engine(scheduler_.get()); | 115 decoder_->set_engine(scheduler_.get()); |
| 116 decoder_->SetResizeCallback( | |
| 117 base::Bind(&CommandBufferDriver::OnResize, base::Unretained(this))); | |
| 118 decoder_->SetWaitSyncPointCallback(base::Bind( | 116 decoder_->SetWaitSyncPointCallback(base::Bind( |
| 119 &CommandBufferDriver::OnWaitSyncPoint, base::Unretained(this))); | 117 &CommandBufferDriver::OnWaitSyncPoint, base::Unretained(this))); |
| 120 decoder_->SetFenceSyncReleaseCallback(base::Bind( | 118 decoder_->SetFenceSyncReleaseCallback(base::Bind( |
| 121 &CommandBufferDriver::OnFenceSyncRelease, base::Unretained(this))); | 119 &CommandBufferDriver::OnFenceSyncRelease, base::Unretained(this))); |
| 122 decoder_->SetWaitFenceSyncCallback(base::Bind( | 120 decoder_->SetWaitFenceSyncCallback(base::Bind( |
| 123 &CommandBufferDriver::OnWaitFenceSync, base::Unretained(this))); | 121 &CommandBufferDriver::OnWaitFenceSync, base::Unretained(this))); |
| 124 | 122 |
| 125 gpu::gles2::DisallowedFeatures disallowed_features; | 123 gpu::gles2::DisallowedFeatures disallowed_features; |
| 126 | 124 |
| 127 const bool offscreen = true; | 125 const bool offscreen = true; |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 269 if (!MakeCurrent()) | 267 if (!MakeCurrent()) |
| 270 return; | 268 return; |
| 271 image_manager->RemoveImage(id); | 269 image_manager->RemoveImage(id); |
| 272 } | 270 } |
| 273 | 271 |
| 274 void CommandBufferDriver::OnParseError() { | 272 void CommandBufferDriver::OnParseError() { |
| 275 gpu::CommandBuffer::State state = command_buffer_->GetLastState(); | 273 gpu::CommandBuffer::State state = command_buffer_->GetLastState(); |
| 276 OnContextLost(state.context_lost_reason); | 274 OnContextLost(state.context_lost_reason); |
| 277 } | 275 } |
| 278 | 276 |
| 279 void CommandBufferDriver::OnResize(gfx::Size size, float scale_factor) { | |
| 280 surface_->Resize(size); | |
| 281 } | |
| 282 | |
| 283 bool CommandBufferDriver::OnWaitSyncPoint(uint32_t sync_point) { | 277 bool CommandBufferDriver::OnWaitSyncPoint(uint32_t sync_point) { |
| 284 if (!sync_point) | 278 if (!sync_point) |
| 285 return true; | 279 return true; |
| 286 if (gpu_state_->sync_point_manager()->IsSyncPointRetired(sync_point)) | 280 if (gpu_state_->sync_point_manager()->IsSyncPointRetired(sync_point)) |
| 287 return true; | 281 return true; |
| 288 scheduler_->SetScheduled(false); | 282 scheduler_->SetScheduled(false); |
| 289 gpu_state_->sync_point_manager()->AddSyncPointCallback( | 283 gpu_state_->sync_point_manager()->AddSyncPointCallback( |
| 290 sync_point, base::Bind(&CommandBufferDriver::OnSyncPointRetired, | 284 sync_point, base::Bind(&CommandBufferDriver::OnSyncPointRetired, |
| 291 weak_factory_.GetWeakPtr())); | 285 weak_factory_.GetWeakPtr())); |
| 292 return scheduler_->scheduled(); | 286 return scheduler_->scheduled(); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 342 | 336 |
| 343 void CommandBufferDriver::DestroyDecoder() { | 337 void CommandBufferDriver::DestroyDecoder() { |
| 344 if (decoder_) { | 338 if (decoder_) { |
| 345 bool have_context = decoder_->MakeCurrent(); | 339 bool have_context = decoder_->MakeCurrent(); |
| 346 decoder_->Destroy(have_context); | 340 decoder_->Destroy(have_context); |
| 347 decoder_.reset(); | 341 decoder_.reset(); |
| 348 } | 342 } |
| 349 } | 343 } |
| 350 | 344 |
| 351 } // namespace mus | 345 } // namespace mus |
| OLD | NEW |