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

Side by Side Diff: mojo/gles2/command_buffer_client_impl.cc

Issue 1346113003: Mandoline: WebGL: Pass context creation attributes to GPU. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 years, 3 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
« no previous file with comments | « mojo/gles2/command_buffer_client_impl.h ('k') | mojo/gles2/gles2_context.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « mojo/gles2/command_buffer_client_impl.h ('k') | mojo/gles2/gles2_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698