Chromium Code Reviews| Index: cc/proto/layer_tree_host.proto |
| diff --git a/cc/proto/layer_tree_host.proto b/cc/proto/layer_tree_host.proto |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..1481d840326948ddce98dd961be2b95793017e8c |
| --- /dev/null |
| +++ b/cc/proto/layer_tree_host.proto |
| @@ -0,0 +1,123 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +syntax = "proto2"; |
| + |
| +import "layer.proto"; |
| +import "layer_selection_bound.proto"; |
| +import "layer_tree_settings.proto"; |
| +import "layer_tree_debug_state.proto"; |
| +import "property_tree.proto"; |
| +import "size.proto"; |
| +import "vector2df.proto"; |
| + |
| +package cc.proto; |
| + |
| +option optimize_for = LITE_RUNTIME; |
| + |
| +message LayerTreeHost { |
| + // struct UIResourceClientData { |
| + // UIResourceClient* client; |
| + // gfx::Size size; |
| + //}; |
| + |
| + // typedef base::hash_map<UIResourceId, UIResourceClientData> |
| + // UIResourceClientMap; |
| + // UIResourceClientMap ui_resource_client_map_; |
| + // int next_ui_resource_id_; |
| + |
| + // typedef std::vector<UIResourceRequest> UIResourceRequestQueue; |
| + // UIResourceRequestQueue ui_resource_request_queue_; |
| + |
| + optional bool needs_full_tree_sync = 1; |
| + optional bool needs_meta_info_recomputation = 2; |
| + |
| + // LayerTreeHostClient* client_; |
|
vmpstr
2015/12/18 19:15:13
These are created on the client side independently
nyquist
2016/01/11 20:05:35
Yes.
|
| + // scoped_ptr<Proxy> proxy_; |
| + // scoped_ptr<TaskRunnerProvider> task_runner_provider_; |
| + |
| + optional int32 source_frame_number = 3; |
| + optional int32 meta_information_sequence_number = 4; |
| + // for logging, so skip for now |
| + // scoped_ptr<RenderingStatsInstrumentation> rendering_stats_instrumentation_; |
| + |
| + // scoped_ptr<OutputSurface> new_output_surface_; |
|
vmpstr
2015/12/18 19:15:13
The server shouldn't have these, right?
nyquist
2016/01/11 20:05:35
Yeah, the output surface should only be on the cli
|
| + // scoped_ptr<OutputSurface> current_output_surface_; |
| + // bool output_surface_lost_; |
| + |
| + optional LayerNode root_layer = 5; |
| + optional LayerUpdate layer_updates = 6; |
| + // LayerNode |
|
vmpstr
2015/12/18 19:15:13
What are these?
nyquist
2016/01/11 20:05:35
Just comments about what the proto message names a
|
| + // LayerUpdate |
| + |
| + optional LayerNode hud_layer = 7; |
| + optional LayerUpdate hud_layer_updates = 8; |
| + // LayerNode |
| + // LayerUpdate |
| + |
| + // base::WeakPtr<InputHandler> input_handler_weak_ptr_; |
| + |
| + optional LayerTreeSettings settings = 9; |
| + // kind of together with hud layer things |
| + optional LayerTreeDebugState debug_state = 10; |
| + optional Size device_viewport_size = 11; |
| + optional bool top_controls_shrink_blink_size = 12; |
| + optional float top_controls_height = 13; |
| + optional float top_controls_shown_ratio = 14; |
| + optional float device_scale_factor = 15; |
| + optional float painted_device_scale_factor = 16; |
| + |
| + // don't really need this, so skip. we'll handle this on the client. |
| + // bool visible_; |
|
vmpstr
2015/12/18 19:15:13
I'd want to verify if this is possible to switch f
nyquist
2016/01/11 20:05:35
This will be sent separately from the client to th
|
| + |
| + optional float page_scale_factor = 17; |
| + optional float min_page_scale_factor = 18; |
| + optional float max_page_scale_factor = 19; |
| + optional Vector2dF elastic_overscroll = 20; |
| + optional bool has_gpu_rasterization_trigger = 21; |
| + optional bool content_is_suitable_for_gpu_rasterization = 22; |
| + optional bool gpu_rasterization_histogram_recorded = 23; |
|
vmpstr
2015/12/18 19:15:13
This is a bit awkward to serialize. Either the cli
nyquist
2016/01/11 20:05:35
Agreed. I'll remove it.
|
| + |
| + optional uint32 background_color = 24; /* SkColor */ |
| + optional bool has_transparent_background = 25; |
| + |
| + // skip animations for now |
|
vmpstr
2015/12/18 19:15:13
This looks iffy. Why do we skip animations?
nyquist
2016/01/11 20:05:35
We don't know how to serialize animations yet. :-(
|
| + // scoped_ptr<AnimationRegistrar> animation_registrar_; |
| + // scoped_ptr<AnimationHost> animation_host_; |
| + |
| + // scoped_ptr<PendingPageScaleAnimation> pending_page_scale_animation_; |
| + |
| + // If set, then page scale animation has completed, but the client hasn't been |
| + // notified about it yet. |
| + // bool did_complete_scale_animation_; |
| + |
| + optional bool in_paint_layer_contents = 26; |
| + |
| + optional int32 id = 27; |
| + optional bool next_commit_forces_redraw = 28; |
| + |
| + optional int32 overscroll_elasticity_layer_id = 29; |
| + optional int32 page_scale_layer = 30; |
| + optional int32 inner_viewport_scroll_layer = 31; |
| + optional int32 outer_viewport_scroll_layer = 32; |
| + |
| + optional LayerSelection selection = 33; |
| + |
| + // SharedBitmapManager* shared_bitmap_manager_; |
| + // gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager_; |
| + // TaskGraphRunner* task_graph_runner_; |
| + |
| + // promise to ignore it for now. |
|
vmpstr
2015/12/18 19:15:13
:P what is this used for?
nyquist
2016/01/11 20:05:35
perf measurements apparently.
|
| + // std::vector<scoped_ptr<SwapPromise>> swap_promise_list_; |
| + // std::set<SwapPromiseMonitor*> swap_promise_monitor_; |
| + |
| + optional PropertyTrees property_trees = 34; |
| + |
| + // part of the root layer and layer updates |
| + // typedef base::hash_map<int, Layer*> LayerIdMap; |
| + // LayerIdMap layer_id_map_; |
| + |
| + optional uint32 surface_id_namespace = 35; |
| + optional uint32 next_surface_sequence = 36; |
| +} |