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; |
+} |