OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/gpu_scheduler.h" | 5 #include "gpu/command_buffer/service/gpu_scheduler.h" |
6 | 6 |
7 #include "base/callback.h" | 7 #include "base/callback.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
266 void GpuScheduler::SetScheduledCallback(Callback0::Type* scheduled_callback) { | 266 void GpuScheduler::SetScheduledCallback(Callback0::Type* scheduled_callback) { |
267 scheduled_callback_.reset(scheduled_callback); | 267 scheduled_callback_.reset(scheduled_callback); |
268 } | 268 } |
269 | 269 |
270 Buffer GpuScheduler::GetSharedMemoryBuffer(int32 shm_id) { | 270 Buffer GpuScheduler::GetSharedMemoryBuffer(int32 shm_id) { |
271 return command_buffer_->GetTransferBuffer(shm_id); | 271 return command_buffer_->GetTransferBuffer(shm_id); |
272 } | 272 } |
273 | 273 |
274 void GpuScheduler::set_token(int32 token) { | 274 void GpuScheduler::set_token(int32 token) { |
275 command_buffer_->SetToken(token); | 275 command_buffer_->SetToken(token); |
| 276 if (!set_token_callback_.is_null()) |
| 277 set_token_callback_.Run(token); |
276 } | 278 } |
277 | 279 |
278 bool GpuScheduler::SetGetOffset(int32 offset) { | 280 bool GpuScheduler::SetGetOffset(int32 offset) { |
279 if (parser_->set_get(offset)) { | 281 if (parser_->set_get(offset)) { |
280 command_buffer_->SetGetOffset(static_cast<int32>(parser_->get())); | 282 command_buffer_->SetGetOffset(static_cast<int32>(parser_->get())); |
281 return true; | 283 return true; |
282 } | 284 } |
283 return false; | 285 return false; |
284 } | 286 } |
285 | 287 |
(...skipping 18 matching lines...) Expand all Loading... |
304 decoder_->SetSwapBuffersCallback( | 306 decoder_->SetSwapBuffersCallback( |
305 NewCallback(this, | 307 NewCallback(this, |
306 &GpuScheduler::WillSwapBuffers)); | 308 &GpuScheduler::WillSwapBuffers)); |
307 } | 309 } |
308 | 310 |
309 void GpuScheduler::SetCommandProcessedCallback( | 311 void GpuScheduler::SetCommandProcessedCallback( |
310 Callback0::Type* callback) { | 312 Callback0::Type* callback) { |
311 command_processed_callback_.reset(callback); | 313 command_processed_callback_.reset(callback); |
312 } | 314 } |
313 | 315 |
| 316 void GpuScheduler::SetTokenCallback( |
| 317 const base::Callback<void(int32)>& callback) { |
| 318 DCHECK(set_token_callback_.is_null()); |
| 319 set_token_callback_ = callback; |
| 320 } |
| 321 |
314 void GpuScheduler::ScheduleProcessCommands() { | 322 void GpuScheduler::ScheduleProcessCommands() { |
315 MessageLoop::current()->PostTask( | 323 MessageLoop::current()->PostTask( |
316 FROM_HERE, | 324 FROM_HERE, |
317 method_factory_.NewRunnableMethod(&GpuScheduler::ProcessCommands)); | 325 method_factory_.NewRunnableMethod(&GpuScheduler::ProcessCommands)); |
318 } | 326 } |
319 | 327 |
320 void GpuScheduler::WillResize(gfx::Size size) { | 328 void GpuScheduler::WillResize(gfx::Size size) { |
321 if (wrapped_resize_callback_.get()) { | 329 if (wrapped_resize_callback_.get()) { |
322 wrapped_resize_callback_->Run(size); | 330 wrapped_resize_callback_->Run(size); |
323 } | 331 } |
324 } | 332 } |
325 | 333 |
326 } // namespace gpu | 334 } // namespace gpu |
OLD | NEW |