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

Side by Side Diff: gpu/command_buffer/client/gl_in_process_context.cc

Issue 683113005: Update from chromium https://crrev.com/302282 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 1 month 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/client/gl_in_process_context.h" 5 #include "gpu/command_buffer/client/gl_in_process_context.h"
6 6
7 #include <set> 7 #include <set>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 const unsigned int kDefaultMaxTransferBufferSize = 16 * 1024 * 1024; 43 const unsigned int kDefaultMaxTransferBufferSize = 16 * 1024 * 1024;
44 44
45 class GLInProcessContextImpl 45 class GLInProcessContextImpl
46 : public GLInProcessContext, 46 : public GLInProcessContext,
47 public base::SupportsWeakPtr<GLInProcessContextImpl> { 47 public base::SupportsWeakPtr<GLInProcessContextImpl> {
48 public: 48 public:
49 explicit GLInProcessContextImpl( 49 explicit GLInProcessContextImpl(
50 const GLInProcessContextSharedMemoryLimits& mem_limits); 50 const GLInProcessContextSharedMemoryLimits& mem_limits);
51 ~GLInProcessContextImpl() override; 51 ~GLInProcessContextImpl() override;
52 52
53 bool Initialize( 53 bool Initialize(scoped_refptr<gfx::GLSurface> surface,
54 scoped_refptr<gfx::GLSurface> surface, 54 bool is_offscreen,
55 bool is_offscreen, 55 bool use_global_share_group,
56 bool use_global_share_group, 56 GLInProcessContext* share_context,
57 GLInProcessContext* share_context, 57 gfx::AcceleratedWidget window,
58 gfx::AcceleratedWidget window, 58 const gfx::Size& size,
59 const gfx::Size& size, 59 const gpu::gles2::ContextCreationAttribHelper& attribs,
60 const gpu::gles2::ContextCreationAttribHelper& attribs, 60 gfx::GpuPreference gpu_preference,
61 gfx::GpuPreference gpu_preference, 61 const scoped_refptr<InProcessCommandBuffer::Service>& service,
62 const scoped_refptr<InProcessCommandBuffer::Service>& service); 62 GpuMemoryBufferManager* gpu_memory_buffer_manager,
63 ImageFactory* image_factory);
63 64
64 // GLInProcessContext implementation: 65 // GLInProcessContext implementation:
65 void SetContextLostCallback(const base::Closure& callback) override; 66 void SetContextLostCallback(const base::Closure& callback) override;
66 gles2::GLES2Implementation* GetImplementation() override; 67 gles2::GLES2Implementation* GetImplementation() override;
67 size_t GetMappedMemoryLimit() override; 68 size_t GetMappedMemoryLimit() override;
68 69
69 #if defined(OS_ANDROID) 70 #if defined(OS_ANDROID)
70 virtual scoped_refptr<gfx::SurfaceTexture> GetSurfaceTexture( 71 virtual scoped_refptr<gfx::SurfaceTexture> GetSurfaceTexture(
71 uint32 stream_id) override; 72 uint32 stream_id) override;
72 #endif 73 #endif
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 129
129 bool GLInProcessContextImpl::Initialize( 130 bool GLInProcessContextImpl::Initialize(
130 scoped_refptr<gfx::GLSurface> surface, 131 scoped_refptr<gfx::GLSurface> surface,
131 bool is_offscreen, 132 bool is_offscreen,
132 bool use_global_share_group, 133 bool use_global_share_group,
133 GLInProcessContext* share_context, 134 GLInProcessContext* share_context,
134 gfx::AcceleratedWidget window, 135 gfx::AcceleratedWidget window,
135 const gfx::Size& size, 136 const gfx::Size& size,
136 const gles2::ContextCreationAttribHelper& attribs, 137 const gles2::ContextCreationAttribHelper& attribs,
137 gfx::GpuPreference gpu_preference, 138 gfx::GpuPreference gpu_preference,
138 const scoped_refptr<InProcessCommandBuffer::Service>& service) { 139 const scoped_refptr<InProcessCommandBuffer::Service>& service,
140 GpuMemoryBufferManager* gpu_memory_buffer_manager,
141 ImageFactory* image_factory) {
139 DCHECK(!use_global_share_group || !share_context); 142 DCHECK(!use_global_share_group || !share_context);
140 DCHECK(size.width() >= 0 && size.height() >= 0); 143 DCHECK(size.width() >= 0 && size.height() >= 0);
141 144
142 std::vector<int32> attrib_vector; 145 std::vector<int32> attrib_vector;
143 attribs.Serialize(&attrib_vector); 146 attribs.Serialize(&attrib_vector);
144 147
145 base::Closure wrapped_callback = 148 base::Closure wrapped_callback =
146 base::Bind(&GLInProcessContextImpl::OnContextLost, AsWeakPtr()); 149 base::Bind(&GLInProcessContextImpl::OnContextLost, AsWeakPtr());
147 command_buffer_.reset(new InProcessCommandBuffer(service)); 150 command_buffer_.reset(new InProcessCommandBuffer(service));
148 151
(...skipping 25 matching lines...) Expand all
174 DCHECK(share_command_buffer); 177 DCHECK(share_command_buffer);
175 } 178 }
176 179
177 if (!command_buffer_->Initialize(surface, 180 if (!command_buffer_->Initialize(surface,
178 is_offscreen, 181 is_offscreen,
179 window, 182 window,
180 size, 183 size,
181 attrib_vector, 184 attrib_vector,
182 gpu_preference, 185 gpu_preference,
183 wrapped_callback, 186 wrapped_callback,
184 share_command_buffer)) { 187 share_command_buffer,
188 gpu_memory_buffer_manager,
189 image_factory)) {
185 LOG(ERROR) << "Failed to initialize InProcessCommmandBuffer"; 190 LOG(ERROR) << "Failed to initialize InProcessCommmandBuffer";
186 return false; 191 return false;
187 } 192 }
188 193
189 // Create the GLES2 helper, which writes the command buffer protocol. 194 // Create the GLES2 helper, which writes the command buffer protocol.
190 gles2_helper_.reset(new gles2::GLES2CmdHelper(command_buffer_.get())); 195 gles2_helper_.reset(new gles2::GLES2CmdHelper(command_buffer_.get()));
191 if (!gles2_helper_->Initialize(mem_limits_.command_buffer_size)) { 196 if (!gles2_helper_->Initialize(mem_limits_.command_buffer_size)) {
192 LOG(ERROR) << "Failed to initialize GLES2CmdHelper"; 197 LOG(ERROR) << "Failed to initialize GLES2CmdHelper";
193 Destroy(); 198 Destroy();
194 return false; 199 return false;
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 GLInProcessContext* GLInProcessContext::Create( 269 GLInProcessContext* GLInProcessContext::Create(
265 scoped_refptr<gpu::InProcessCommandBuffer::Service> service, 270 scoped_refptr<gpu::InProcessCommandBuffer::Service> service,
266 scoped_refptr<gfx::GLSurface> surface, 271 scoped_refptr<gfx::GLSurface> surface,
267 bool is_offscreen, 272 bool is_offscreen,
268 gfx::AcceleratedWidget window, 273 gfx::AcceleratedWidget window,
269 const gfx::Size& size, 274 const gfx::Size& size,
270 GLInProcessContext* share_context, 275 GLInProcessContext* share_context,
271 bool use_global_share_group, 276 bool use_global_share_group,
272 const ::gpu::gles2::ContextCreationAttribHelper& attribs, 277 const ::gpu::gles2::ContextCreationAttribHelper& attribs,
273 gfx::GpuPreference gpu_preference, 278 gfx::GpuPreference gpu_preference,
274 const GLInProcessContextSharedMemoryLimits& memory_limits) { 279 const GLInProcessContextSharedMemoryLimits& memory_limits,
280 GpuMemoryBufferManager* gpu_memory_buffer_manager,
281 ImageFactory* image_factory) {
275 DCHECK(!use_global_share_group || !share_context); 282 DCHECK(!use_global_share_group || !share_context);
276 if (surface.get()) { 283 if (surface.get()) {
277 DCHECK_EQ(surface->IsOffscreen(), is_offscreen); 284 DCHECK_EQ(surface->IsOffscreen(), is_offscreen);
278 DCHECK(surface->GetSize() == size); 285 DCHECK(surface->GetSize() == size);
279 DCHECK_EQ(gfx::kNullAcceleratedWidget, window); 286 DCHECK_EQ(gfx::kNullAcceleratedWidget, window);
280 } 287 }
281 288
282 scoped_ptr<GLInProcessContextImpl> context( 289 scoped_ptr<GLInProcessContextImpl> context(
283 new GLInProcessContextImpl(memory_limits)); 290 new GLInProcessContextImpl(memory_limits));
284 if (!context->Initialize(surface, 291 if (!context->Initialize(surface,
285 is_offscreen, 292 is_offscreen,
286 use_global_share_group, 293 use_global_share_group,
287 share_context, 294 share_context,
288 window, 295 window,
289 size, 296 size,
290 attribs, 297 attribs,
291 gpu_preference, 298 gpu_preference,
292 service)) 299 service,
300 gpu_memory_buffer_manager,
301 image_factory))
293 return NULL; 302 return NULL;
294 303
295 return context.release(); 304 return context.release();
296 } 305 }
297 306
298 } // namespace gpu 307 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/client/gl_in_process_context.h ('k') | gpu/command_buffer/common/gles2_cmd_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698