OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "services/native_viewport/onscreen_context_provider.h" | 5 #include "services/native_viewport/onscreen_context_provider.h" |
6 | 6 |
7 #include "services/gles2/command_buffer_driver.h" | 7 #include "services/gles2/command_buffer_driver.h" |
8 #include "services/gles2/gpu_state.h" | 8 #include "services/gles2/gpu_state.h" |
9 | 9 |
10 namespace native_viewport { | 10 namespace native_viewport { |
(...skipping 28 matching lines...) Expand all Loading... |
39 return; | 39 return; |
40 } | 40 } |
41 | 41 |
42 if (pending_create_callback_.is_null()) | 42 if (pending_create_callback_.is_null()) |
43 return; | 43 return; |
44 | 44 |
45 CreateAndReturnCommandBuffer(); | 45 CreateAndReturnCommandBuffer(); |
46 } | 46 } |
47 | 47 |
48 void OnscreenContextProvider::Create( | 48 void OnscreenContextProvider::Create( |
49 mojo::ViewportParameterListenerPtr viewport_parameter_listener, | 49 mojo::InterfaceHandle<mojo::ViewportParameterListener> |
| 50 viewport_parameter_listener, |
50 const CreateCallback& callback) { | 51 const CreateCallback& callback) { |
51 if (!pending_create_callback_.is_null()) { | 52 if (!pending_create_callback_.is_null()) { |
52 DCHECK(!command_buffer_impl_); | 53 DCHECK(!command_buffer_impl_); |
53 pending_create_callback_.Run(nullptr); | 54 pending_create_callback_.Run(nullptr); |
54 } | 55 } |
55 | 56 |
56 pending_listener_ = viewport_parameter_listener.Pass(); | 57 pending_listener_ = mojo::ViewportParameterListenerPtr::Create( |
| 58 std::move(viewport_parameter_listener)); |
57 pending_create_callback_ = callback; | 59 pending_create_callback_ = callback; |
58 | 60 |
59 if (widget_ != gfx::kNullAcceleratedWidget) | 61 if (widget_ != gfx::kNullAcceleratedWidget) |
60 CreateAndReturnCommandBuffer(); | 62 CreateAndReturnCommandBuffer(); |
61 } | 63 } |
62 | 64 |
63 void OnscreenContextProvider::OnCommandBufferImplDestroyed() { | 65 void OnscreenContextProvider::OnCommandBufferImplDestroyed() { |
64 DCHECK(command_buffer_impl_); | 66 DCHECK(command_buffer_impl_); |
65 command_buffer_impl_ = nullptr; | 67 command_buffer_impl_ = nullptr; |
66 } | 68 } |
67 | 69 |
68 void OnscreenContextProvider::CreateAndReturnCommandBuffer() { | 70 void OnscreenContextProvider::CreateAndReturnCommandBuffer() { |
69 mojo::CommandBufferPtr cb; | 71 mojo::CommandBufferPtr cb; |
70 command_buffer_impl_ = new gles2::CommandBufferImpl( | 72 command_buffer_impl_ = new gles2::CommandBufferImpl( |
71 GetProxy(&cb), pending_listener_.Pass(), state_->control_task_runner(), | 73 GetProxy(&cb), pending_listener_.Pass(), state_->control_task_runner(), |
72 state_->sync_point_manager(), | 74 state_->sync_point_manager(), |
73 make_scoped_ptr(new gles2::CommandBufferDriver( | 75 make_scoped_ptr(new gles2::CommandBufferDriver( |
74 widget_, state_->share_group(), state_->mailbox_manager(), | 76 widget_, state_->share_group(), state_->mailbox_manager(), |
75 state_->sync_point_manager(), requested_configuration_))); | 77 state_->sync_point_manager(), requested_configuration_))); |
76 command_buffer_impl_->set_observer(this); | 78 command_buffer_impl_->set_observer(this); |
77 pending_create_callback_.Run(cb.Pass()); | 79 pending_create_callback_.Run(cb.Pass()); |
78 pending_create_callback_.reset(); | 80 pending_create_callback_.reset(); |
79 } | 81 } |
80 | 82 |
81 } // namespace mojo | 83 } // namespace mojo |
OLD | NEW |