OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "mojo/gles2/command_buffer_client_impl.h" | 5 #include "mojo/gles2/command_buffer_client_impl.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/process/process_handle.h" | 10 #include "base/process/process_handle.h" |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 sync_point_ = sync_point; | 111 sync_point_ = sync_point; |
112 } | 112 } |
113 | 113 |
114 uint32_t sync_point_; | 114 uint32_t sync_point_; |
115 | 115 |
116 mojo::Binding<mojo::CommandBufferSyncPointClient> binding_; | 116 mojo::Binding<mojo::CommandBufferSyncPointClient> binding_; |
117 }; | 117 }; |
118 | 118 |
119 CommandBufferClientImpl::CommandBufferClientImpl( | 119 CommandBufferClientImpl::CommandBufferClientImpl( |
120 CommandBufferDelegate* delegate, | 120 CommandBufferDelegate* delegate, |
| 121 const std::vector<int32_t>& attribs, |
121 const MojoAsyncWaiter* async_waiter, | 122 const MojoAsyncWaiter* async_waiter, |
122 mojo::ScopedMessagePipeHandle command_buffer_handle) | 123 mojo::ScopedMessagePipeHandle command_buffer_handle) |
123 : delegate_(delegate), | 124 : delegate_(delegate), |
| 125 attribs_(attribs), |
124 observer_binding_(this), | 126 observer_binding_(this), |
125 shared_state_(NULL), | 127 shared_state_(NULL), |
126 last_put_offset_(-1), | 128 last_put_offset_(-1), |
127 next_transfer_buffer_id_(0), | 129 next_transfer_buffer_id_(0), |
128 next_image_id_(0), | 130 next_image_id_(0), |
129 async_waiter_(async_waiter) { | 131 async_waiter_(async_waiter) { |
130 command_buffer_.Bind(mojo::InterfacePtrInfo<mojo::CommandBuffer>( | 132 command_buffer_.Bind(mojo::InterfacePtrInfo<mojo::CommandBuffer>( |
131 command_buffer_handle.Pass(), 0u), | 133 command_buffer_handle.Pass(), 0u), |
132 async_waiter); | 134 async_waiter); |
133 command_buffer_.set_connection_error_handler( | 135 command_buffer_.set_connection_error_handler( |
(...skipping 20 matching lines...) Expand all Loading... |
154 | 156 |
155 mojo::CommandBufferSyncPointClientPtr sync_point_client; | 157 mojo::CommandBufferSyncPointClientPtr sync_point_client; |
156 sync_point_client_impl_.reset( | 158 sync_point_client_impl_.reset( |
157 new SyncPointClientImpl(&sync_point_client, async_waiter_)); | 159 new SyncPointClientImpl(&sync_point_client, async_waiter_)); |
158 | 160 |
159 mojo::CommandBufferLostContextObserverPtr observer_ptr; | 161 mojo::CommandBufferLostContextObserverPtr observer_ptr; |
160 observer_binding_.Bind(GetProxy(&observer_ptr), async_waiter_); | 162 observer_binding_.Bind(GetProxy(&observer_ptr), async_waiter_); |
161 command_buffer_->Initialize(sync_client.Pass(), | 163 command_buffer_->Initialize(sync_client.Pass(), |
162 sync_point_client.Pass(), | 164 sync_point_client.Pass(), |
163 observer_ptr.Pass(), | 165 observer_ptr.Pass(), |
164 duped.Pass()); | 166 duped.Pass(), |
| 167 mojo::Array<int32_t>::From(attribs_)); |
165 | 168 |
166 // Wait for DidInitialize to come on the sync client pipe. | 169 // Wait for DidInitialize to come on the sync client pipe. |
167 if (!sync_client_impl_->WaitForInitialization()) { | 170 if (!sync_client_impl_->WaitForInitialization()) { |
168 VLOG(1) << "Channel encountered error while creating command buffer"; | 171 VLOG(1) << "Channel encountered error while creating command buffer"; |
169 return false; | 172 return false; |
170 } | 173 } |
171 capabilities_ = sync_client_impl_->GetCapabilities(); | 174 capabilities_ = sync_client_impl_->GetCapabilities(); |
172 return true; | 175 return true; |
173 } | 176 } |
174 | 177 |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
387 | 390 |
388 void CommandBufferClientImpl::SetLock(base::Lock* lock) { | 391 void CommandBufferClientImpl::SetLock(base::Lock* lock) { |
389 } | 392 } |
390 | 393 |
391 bool CommandBufferClientImpl::IsGpuChannelLost() { | 394 bool CommandBufferClientImpl::IsGpuChannelLost() { |
392 // This is only possible for out-of-process command buffers. | 395 // This is only possible for out-of-process command buffers. |
393 return false; | 396 return false; |
394 } | 397 } |
395 | 398 |
396 } // namespace gles2 | 399 } // namespace gles2 |
OLD | NEW |