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

Side by Side Diff: services/native_viewport/onscreen_context_provider.cc

Issue 1168993002: Update the native_viewport interface to allow specification of the surface configuration, currently… (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Final cleanups Created 5 years, 6 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
OLDNEW
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 {
11 11
12 OnscreenContextProvider::OnscreenContextProvider( 12 OnscreenContextProvider::OnscreenContextProvider(
13 const scoped_refptr<gles2::GpuState>& state) 13 const scoped_refptr<gles2::GpuState>& state)
14 : command_buffer_impl_(nullptr), 14 : requested_configuration_(gfx::SurfaceConfiguration()),
15 command_buffer_impl_(nullptr),
15 state_(state), 16 state_(state),
16 widget_(gfx::kNullAcceleratedWidget), 17 widget_(gfx::kNullAcceleratedWidget),
17 binding_(this) { 18 binding_(this) {
18 } 19 }
19 20
20 OnscreenContextProvider::~OnscreenContextProvider() { 21 OnscreenContextProvider::~OnscreenContextProvider() {
21 if (command_buffer_impl_) 22 if (command_buffer_impl_)
22 command_buffer_impl_->set_observer(nullptr); 23 command_buffer_impl_->set_observer(nullptr);
23 } 24 }
24 25
(...skipping 19 matching lines...) Expand all
44 CreateAndReturnCommandBuffer(); 45 CreateAndReturnCommandBuffer();
45 } 46 }
46 47
47 void OnscreenContextProvider::Create( 48 void OnscreenContextProvider::Create(
48 mojo::ViewportParameterListenerPtr viewport_parameter_listener, 49 mojo::ViewportParameterListenerPtr viewport_parameter_listener,
49 const CreateCallback& callback) { 50 const CreateCallback& callback) {
50 if (!pending_create_callback_.is_null()) { 51 if (!pending_create_callback_.is_null()) {
51 DCHECK(!command_buffer_impl_); 52 DCHECK(!command_buffer_impl_);
52 pending_create_callback_.Run(nullptr); 53 pending_create_callback_.Run(nullptr);
53 } 54 }
55
54 pending_listener_ = viewport_parameter_listener.Pass(); 56 pending_listener_ = viewport_parameter_listener.Pass();
55 pending_create_callback_ = callback; 57 pending_create_callback_ = callback;
56 58
57 if (widget_ != gfx::kNullAcceleratedWidget) 59 if (widget_ != gfx::kNullAcceleratedWidget)
58 CreateAndReturnCommandBuffer(); 60 CreateAndReturnCommandBuffer();
59 } 61 }
60 62
61 void OnscreenContextProvider::OnCommandBufferImplDestroyed() { 63 void OnscreenContextProvider::OnCommandBufferImplDestroyed() {
62 DCHECK(command_buffer_impl_); 64 DCHECK(command_buffer_impl_);
63 command_buffer_impl_ = nullptr; 65 command_buffer_impl_ = nullptr;
64 } 66 }
65 67
66 void OnscreenContextProvider::CreateAndReturnCommandBuffer() { 68 void OnscreenContextProvider::CreateAndReturnCommandBuffer() {
67 mojo::CommandBufferPtr cb; 69 mojo::CommandBufferPtr cb;
68 command_buffer_impl_ = new gles2::CommandBufferImpl( 70 command_buffer_impl_ = new gles2::CommandBufferImpl(
69 GetProxy(&cb), pending_listener_.Pass(), state_->control_task_runner(), 71 GetProxy(&cb), pending_listener_.Pass(), state_->control_task_runner(),
70 state_->sync_point_manager(), 72 state_->sync_point_manager(),
71 make_scoped_ptr(new gles2::CommandBufferDriver( 73 make_scoped_ptr(new gles2::CommandBufferDriver(
72 widget_, state_->share_group(), state_->mailbox_manager(), 74 widget_, state_->share_group(), state_->mailbox_manager(),
73 state_->sync_point_manager()))); 75 state_->sync_point_manager(), requested_configuration_)));
74 command_buffer_impl_->set_observer(this); 76 command_buffer_impl_->set_observer(this);
75 pending_create_callback_.Run(cb.Pass()); 77 pending_create_callback_.Run(cb.Pass());
76 pending_create_callback_.reset(); 78 pending_create_callback_.reset();
77 } 79 }
78 80
79 } // namespace mojo 81 } // namespace mojo
OLDNEW
« no previous file with comments | « services/native_viewport/onscreen_context_provider.h ('k') | services/view_manager/display_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698