OLD | NEW |
---|---|
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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 #ifndef CC_TREES_LAYER_TREE_HOST_H_ | 5 #ifndef CC_TREES_LAYER_TREE_HOST_H_ |
6 #define CC_TREES_LAYER_TREE_HOST_H_ | 6 #define CC_TREES_LAYER_TREE_HOST_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
54 class AnimationRegistrar; | 54 class AnimationRegistrar; |
55 class AnimationHost; | 55 class AnimationHost; |
56 class BeginFrameSource; | 56 class BeginFrameSource; |
57 class HeadsUpDisplayLayer; | 57 class HeadsUpDisplayLayer; |
58 class Layer; | 58 class Layer; |
59 class LayerTreeHostImpl; | 59 class LayerTreeHostImpl; |
60 class LayerTreeHostImplClient; | 60 class LayerTreeHostImplClient; |
61 class LayerTreeHostSingleThreadClient; | 61 class LayerTreeHostSingleThreadClient; |
62 class PropertyTrees; | 62 class PropertyTrees; |
63 class Region; | 63 class Region; |
64 class RemoteProtoChannel; | |
64 class RenderingStatsInstrumentation; | 65 class RenderingStatsInstrumentation; |
65 class ResourceProvider; | 66 class ResourceProvider; |
66 class ResourceUpdateQueue; | 67 class ResourceUpdateQueue; |
67 class SharedBitmapManager; | 68 class SharedBitmapManager; |
68 class TaskGraphRunner; | 69 class TaskGraphRunner; |
69 class TopControlsManager; | 70 class TopControlsManager; |
70 class UIResourceRequest; | 71 class UIResourceRequest; |
71 struct PendingPageScaleAnimation; | 72 struct PendingPageScaleAnimation; |
72 struct RenderingStats; | 73 struct RenderingStats; |
73 struct ScrollAndScaleSet; | 74 struct ScrollAndScaleSet; |
(...skipping 16 matching lines...) Expand all Loading... | |
90 }; | 91 }; |
91 | 92 |
92 // The SharedBitmapManager will be used on the compositor thread. | 93 // The SharedBitmapManager will be used on the compositor thread. |
93 static scoped_ptr<LayerTreeHost> CreateThreaded( | 94 static scoped_ptr<LayerTreeHost> CreateThreaded( |
94 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, | 95 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, |
95 InitParams* params); | 96 InitParams* params); |
96 | 97 |
97 static scoped_ptr<LayerTreeHost> CreateSingleThreaded( | 98 static scoped_ptr<LayerTreeHost> CreateSingleThreaded( |
98 LayerTreeHostSingleThreadClient* single_thread_client, | 99 LayerTreeHostSingleThreadClient* single_thread_client, |
99 InitParams* params); | 100 InitParams* params); |
101 | |
102 static scoped_ptr<LayerTreeHost> CreateRemoteServer( | |
103 RemoteProtoChannel* remote_proto_channel, | |
104 InitParams* params); | |
105 | |
106 // The lifetime of this LayerTreeHost is tied to the lifetime of the remote | |
107 // server LayerTreeHost. It should be created on receiving | |
108 // CompositorMessageToImpl::InitializeImpl message and destroyed on receiving | |
109 // a CompositorMessageToImpl::CloseImpl message from the server. This ensures | |
110 // that the client will not send any compositor messages once the | |
111 // LayerTreeHost on the server is destroyed. | |
112 static scoped_ptr<LayerTreeHost> CreateRemoteClient( | |
113 RemoteProtoChannel* remote_proto_channel, | |
114 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, | |
115 InitParams* params); | |
116 | |
100 virtual ~LayerTreeHost(); | 117 virtual ~LayerTreeHost(); |
101 | 118 |
119 // Should be called only for the remote mode. | |
120 void ToProtobuf(); | |
121 | |
122 // Should be called only for the deserializable mode. | |
vmpstr
2016/01/11 21:50:15
This isn't a mode anymore, can you update the comm
Khushal
2016/01/13 02:07:12
I'll just remove these. Tommy is already working o
| |
123 void FromProtobuf(); | |
124 | |
102 // LayerTreeHost interface to Proxy. | 125 // LayerTreeHost interface to Proxy. |
103 void WillBeginMainFrame(); | 126 void WillBeginMainFrame(); |
104 void DidBeginMainFrame(); | 127 void DidBeginMainFrame(); |
105 void BeginMainFrame(const BeginFrameArgs& args); | 128 void BeginMainFrame(const BeginFrameArgs& args); |
106 void BeginMainFrameNotExpectedSoon(); | 129 void BeginMainFrameNotExpectedSoon(); |
107 void AnimateLayers(base::TimeTicks monotonic_frame_begin_time); | 130 void AnimateLayers(base::TimeTicks monotonic_frame_begin_time); |
108 void DidStopFlinging(); | 131 void DidStopFlinging(); |
109 void RequestMainFrameUpdate(); | 132 void RequestMainFrameUpdate(); |
110 void FinishCommitOnImplThread(LayerTreeHostImpl* host_impl); | 133 void FinishCommitOnImplThread(LayerTreeHostImpl* host_impl); |
111 void WillCommit(); | 134 void WillCommit(); |
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
369 protected: | 392 protected: |
370 LayerTreeHost(InitParams* params, CompositorMode mode); | 393 LayerTreeHost(InitParams* params, CompositorMode mode); |
371 void InitializeThreaded( | 394 void InitializeThreaded( |
372 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | 395 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
373 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, | 396 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, |
374 scoped_ptr<BeginFrameSource> external_begin_frame_source); | 397 scoped_ptr<BeginFrameSource> external_begin_frame_source); |
375 void InitializeSingleThreaded( | 398 void InitializeSingleThreaded( |
376 LayerTreeHostSingleThreadClient* single_thread_client, | 399 LayerTreeHostSingleThreadClient* single_thread_client, |
377 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | 400 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
378 scoped_ptr<BeginFrameSource> external_begin_frame_source); | 401 scoped_ptr<BeginFrameSource> external_begin_frame_source); |
402 void InitializeRemoteServer( | |
403 RemoteProtoChannel* remote_proto_channel, | |
404 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner); | |
405 void InitializeRemoteClient( | |
406 RemoteProtoChannel* remote_proto_channel, | |
407 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | |
408 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner); | |
379 void InitializeForTesting( | 409 void InitializeForTesting( |
380 scoped_ptr<TaskRunnerProvider> task_runner_provider, | 410 scoped_ptr<TaskRunnerProvider> task_runner_provider, |
381 scoped_ptr<Proxy> proxy_for_testing, | 411 scoped_ptr<Proxy> proxy_for_testing, |
382 scoped_ptr<BeginFrameSource> external_begin_frame_source); | 412 scoped_ptr<BeginFrameSource> external_begin_frame_source); |
383 void SetOutputSurfaceLostForTesting(bool is_lost) { | 413 void SetOutputSurfaceLostForTesting(bool is_lost) { |
384 output_surface_lost_ = is_lost; | 414 output_surface_lost_ = is_lost; |
385 } | 415 } |
386 void SetTaskRunnerProviderForTesting( | 416 void SetTaskRunnerProviderForTesting( |
387 scoped_ptr<TaskRunnerProvider> task_runner_provider); | 417 scoped_ptr<TaskRunnerProvider> task_runner_provider); |
388 | 418 |
(...skipping 19 matching lines...) Expand all Loading... | |
408 scoped_ptr<Proxy> proxy, | 438 scoped_ptr<Proxy> proxy, |
409 scoped_ptr<BeginFrameSource> external_begin_frame_source); | 439 scoped_ptr<BeginFrameSource> external_begin_frame_source); |
410 | 440 |
411 bool DoUpdateLayers(Layer* root_layer); | 441 bool DoUpdateLayers(Layer* root_layer); |
412 void UpdateHudLayer(); | 442 void UpdateHudLayer(); |
413 | 443 |
414 bool AnimateLayersRecursive(Layer* current, base::TimeTicks time); | 444 bool AnimateLayersRecursive(Layer* current, base::TimeTicks time); |
415 | 445 |
416 bool IsSingleThreaded() const; | 446 bool IsSingleThreaded() const; |
417 bool IsThreaded() const; | 447 bool IsThreaded() const; |
448 bool IsRemoteServer() const; | |
449 bool IsRemoteClient() const; | |
418 | 450 |
419 struct UIResourceClientData { | 451 struct UIResourceClientData { |
420 UIResourceClient* client; | 452 UIResourceClient* client; |
421 gfx::Size size; | 453 gfx::Size size; |
422 }; | 454 }; |
423 | 455 |
424 typedef base::hash_map<UIResourceId, UIResourceClientData> | 456 typedef base::hash_map<UIResourceId, UIResourceClientData> |
425 UIResourceClientMap; | 457 UIResourceClientMap; |
426 UIResourceClientMap ui_resource_client_map_; | 458 UIResourceClientMap ui_resource_client_map_; |
427 int next_ui_resource_id_; | 459 int next_ui_resource_id_; |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
520 | 552 |
521 uint32_t surface_id_namespace_; | 553 uint32_t surface_id_namespace_; |
522 uint32_t next_surface_sequence_; | 554 uint32_t next_surface_sequence_; |
523 | 555 |
524 DISALLOW_COPY_AND_ASSIGN(LayerTreeHost); | 556 DISALLOW_COPY_AND_ASSIGN(LayerTreeHost); |
525 }; | 557 }; |
526 | 558 |
527 } // namespace cc | 559 } // namespace cc |
528 | 560 |
529 #endif // CC_TREES_LAYER_TREE_HOST_H_ | 561 #endif // CC_TREES_LAYER_TREE_HOST_H_ |
OLD | NEW |