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

Side by Side Diff: gpu/command_buffer/service/gpu_processor_mac.cc

Issue 1136006: Calling OpenGL from the renderer process. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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_processor.h" 5 #include "gpu/command_buffer/service/gpu_processor.h"
6 6
7 using ::base::SharedMemory; 7 using ::base::SharedMemory;
8 8
9 namespace gpu { 9 namespace gpu {
10 10
11 bool GPUProcessor::Initialize(gfx::PluginWindowHandle handle) { 11 bool GPUProcessor::Initialize(gfx::PluginWindowHandle handle,
12 GPUProcessor* parent,
13 const gfx::Size& size,
14 uint32 parent_texture_id) {
12 // At this level we do not need the PluginWindowHandle. It is only 15 // At this level we do not need the PluginWindowHandle. It is only
13 // needed at the CommandBufferStub level to identify which GPU 16 // needed at the CommandBufferStub level to identify which GPU
14 // plugin instance is creating a new backing store in response to a 17 // plugin instance is creating a new backing store in response to a
15 // resize event. 18 // resize event.
16 19
17 // Map the ring buffer and create the parser. 20 // Map the ring buffer and create the parser.
18 Buffer ring_buffer = command_buffer_->GetRingBuffer(); 21 Buffer ring_buffer = command_buffer_->GetRingBuffer();
19 if (ring_buffer.ptr) { 22 if (ring_buffer.ptr) {
20 parser_.reset(new CommandParser(ring_buffer.ptr, 23 parser_.reset(new CommandParser(ring_buffer.ptr,
21 ring_buffer.size, 24 ring_buffer.size,
22 0, 25 0,
23 ring_buffer.size, 26 ring_buffer.size,
24 0, 27 0,
25 decoder_.get())); 28 decoder_.get()));
26 } else { 29 } else {
27 parser_.reset(new CommandParser(NULL, 0, 0, 0, 0, 30 parser_.reset(new CommandParser(NULL, 0, 0, 0, 0,
28 decoder_.get())); 31 decoder_.get()));
29 } 32 }
30 33
31 // Initialize GAPI. 34 // Initialize GAPI.
32 return decoder_->Initialize(); 35 gles2::GLES2Decoder* parent_decoder = parent ? parent->decoder_.get() : NULL;
36 if (!decoder_->Initialize(parent_decoder,
37 size,
38 parent_texture_id)) {
39 Destroy();
40 return false;
41 }
42
43 return true;
33 } 44 }
34 45
35 void GPUProcessor::Destroy() { 46 void GPUProcessor::Destroy() {
36 decoder_->Destroy(); 47 // Destroy decoder if initialized.
48 if (decoder_.get()) {
49 decoder_->Destroy();
50 decoder_.reset();
51 }
52
53 parser_.reset();
37 } 54 }
38 } // namespace gpu 55 } // namespace gpu
39 56
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gpu_processor_linux.cc ('k') | gpu/command_buffer/service/gpu_processor_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698