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

Side by Side Diff: sky/compositor/layer_host.cc

Issue 826423008: Use local ids for Surfaces APIs that can only apply to local surfaces (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 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 | « sky/compositor/layer_host.h ('k') | sky/compositor/surface_holder.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 "sky/compositor/layer_host.h" 5 #include "sky/compositor/layer_host.h"
6 6
7 #include "base/debug/trace_event.h" 7 #include "base/debug/trace_event.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "mojo/converters/geometry/geometry_type_converters.h" 9 #include "mojo/converters/geometry/geometry_type_converters.h"
10 #include "mojo/gpu/gl_context.h" 10 #include "mojo/gpu/gl_context.h"
11 #include "mojo/services/surfaces/public/cpp/surfaces_utils.h" 11 #include "mojo/services/surfaces/public/cpp/surfaces_utils.h"
12 #include "mojo/skia/ganesh_context.h" 12 #include "mojo/skia/ganesh_context.h"
13 #include "sky/compositor/layer.h" 13 #include "sky/compositor/layer.h"
14 14
15 namespace sky { 15 namespace sky {
16 16
17 LayerHost::LayerHost(LayerHostClient* client) 17 LayerHost::LayerHost(LayerHostClient* client)
18 : client_(client), 18 : client_(client),
19 state_(kWaitingForSurfaceService), 19 state_(kReadyForFrame),
20 frame_requested_(false), 20 frame_requested_(false),
21 surface_holder_(this, client->GetShell()), 21 surface_holder_(this, client->GetShell()),
22 gl_context_owner_(client->GetShell()), 22 gl_context_owner_(client->GetShell()),
23 ganesh_context_(gl_context()), 23 ganesh_context_(gl_context()),
24 resource_manager_(gl_context()), 24 resource_manager_(gl_context()),
25 weak_factory_(this) { 25 weak_factory_(this) {
26 } 26 }
27 27
28 LayerHost::~LayerHost() { 28 LayerHost::~LayerHost() {
29 } 29 }
30 30
31 void LayerHost::SetNeedsAnimate() { 31 void LayerHost::SetNeedsAnimate() {
32 if (frame_requested_) 32 if (frame_requested_)
33 return; 33 return;
34 frame_requested_ = true; 34 frame_requested_ = true;
35 if (state_ == kReadyForFrame) 35 if (state_ == kReadyForFrame)
36 BeginFrameSoon(); 36 BeginFrameSoon();
37 } 37 }
38 38
39 void LayerHost::SetRootLayer(scoped_refptr<Layer> layer) { 39 void LayerHost::SetRootLayer(scoped_refptr<Layer> layer) {
40 DCHECK(!root_layer_.get()); 40 DCHECK(!root_layer_.get());
41 root_layer_ = layer; 41 root_layer_ = layer;
42 root_layer_->set_host(this); 42 root_layer_->set_host(this);
43 } 43 }
44 44
45 void LayerHost::GetPixelsForTesting(std::vector<unsigned char>* pixels) { 45 void LayerHost::GetPixelsForTesting(std::vector<unsigned char>* pixels) {
46 return root_layer_->GetPixelsForTesting(pixels); 46 return root_layer_->GetPixelsForTesting(pixels);
47 } 47 }
48 48
49 void LayerHost::OnSurfaceConnectionCreated() {
50 DCHECK_EQ(state_, kWaitingForSurfaceService);
51 state_ = kReadyForFrame;
52 if (frame_requested_)
53 BeginFrameSoon();
54 }
55
56 void LayerHost::OnSurfaceIdAvailable(mojo::SurfaceIdPtr surface_id) { 49 void LayerHost::OnSurfaceIdAvailable(mojo::SurfaceIdPtr surface_id) {
57 client_->OnSurfaceIdAvailable(surface_id.Pass()); 50 client_->OnSurfaceIdAvailable(surface_id.Pass());
58 } 51 }
59 52
60 void LayerHost::ReturnResources( 53 void LayerHost::ReturnResources(
61 mojo::Array<mojo::ReturnedResourcePtr> resources) { 54 mojo::Array<mojo::ReturnedResourcePtr> resources) {
62 resource_manager_.ReturnResources(resources.Pass()); 55 resource_manager_.ReturnResources(resources.Pass());
63 } 56 }
64 57
65 void LayerHost::BeginFrameSoon() { 58 void LayerHost::BeginFrameSoon() {
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 } 147 }
155 148
156 void LayerHost::DidCompleteFrame() { 149 void LayerHost::DidCompleteFrame() {
157 DCHECK_EQ(state_, kWaitingForFrameAcknowldgement); 150 DCHECK_EQ(state_, kWaitingForFrameAcknowldgement);
158 state_ = kReadyForFrame; 151 state_ = kReadyForFrame;
159 if (frame_requested_) 152 if (frame_requested_)
160 BeginFrame(); 153 BeginFrame();
161 } 154 }
162 155
163 } // namespace sky 156 } // namespace sky
OLDNEW
« no previous file with comments | « sky/compositor/layer_host.h ('k') | sky/compositor/surface_holder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698