summaryrefslogtreecommitdiffstats
path: root/cc/proto/property_tree.proto
blob: 7622d6822d1adbe6d54b5ae1330eb19e4b4b6104 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
// 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 "rectf.proto";
import "scroll_offset.proto";
import "size.proto";
import "transform.proto";
import "vector2df.proto";

option optimize_for = LITE_RUNTIME;

package cc.proto;

// The messages declared in this file correspond to the classes declared in
// cc/trees/property_tree.h

// Proto for struct TransformNodeData.
// NEXT ID: 41
message TranformNodeData {
  optional Transform pre_local = 1;
  optional Transform local = 2;
  optional Transform post_local = 3;
  optional Transform to_parent = 4;
  optional Transform to_target = 5;
  optional Transform from_target = 6;
  optional Transform to_screen = 7;
  optional Transform from_screen = 8;

  optional int64 target_id = 9;
  optional int64 content_target_id = 10;
  optional int64 source_node_id = 11;
  optional bool needs_local_transform_update = 12;
  optional bool is_invertible = 13;
  optional bool ancestors_are_invertible = 14;
  optional bool is_animated = 15;
  optional bool to_screen_is_animated = 16;
  optional bool has_only_translation_animations = 17;
  optional bool to_screen_has_scale_animation = 18;
  optional bool flattens_inherited_transform = 19;
  optional bool node_and_ancestors_are_flat = 20;
  optional bool node_and_ancestors_have_only_integer_translation = 21;
  optional bool scrolls = 22;
  optional bool needs_sublayer_scale = 23;
  optional bool affected_by_inner_viewport_bounds_delta_x = 24;
  optional bool affected_by_inner_viewport_bounds_delta_y = 25;
  optional bool affected_by_outer_viewport_bounds_delta_x = 26;
  optional bool affected_by_outer_viewport_bounds_delta_y = 27;
  optional bool in_subtree_of_page_scale_layer = 28;
  optional bool transform_changed = 40;
  optional float post_local_scale_factor = 29;
  optional float local_maximum_animation_target_scale = 30;
  optional float local_starting_animation_scale = 31;
  optional float combined_maximum_animation_target_scale = 32;
  optional float combined_starting_animation_scale = 33;

  optional Vector2dF sublayer_scale = 34;
  optional ScrollOffset scroll_offset = 35;
  optional Vector2dF scroll_snap = 36;
  optional Vector2dF source_offset = 37;
  optional Vector2dF source_to_parent = 38;
  optional int64 sorting_context_id = 39;
}

// Proto for struct ClipNodeData.
// NEXT ID: 12
message ClipNodeData {
  optional RectF clip = 1;
  optional RectF combined_clip_in_target_space = 2;
  optional RectF clip_in_target_space = 3;

  optional int64 transform_id = 4;
  optional int64 target_id = 5;
  optional bool applies_local_clip = 6;
  optional bool layer_clipping_uses_only_local_clip = 7;
  optional bool target_is_clipped = 8;
  optional bool layers_are_clipped = 9;
  optional bool layers_are_clipped_when_surfaces_disabled = 10;
  optional bool resets_clip = 11;
}

// Proto for struct EffectNodeData.
// NEXT ID: 11
message EffectNodeData {
  optional float opacity = 1;
  optional float screen_space_opacity = 2;
  optional bool has_render_surface = 3;
  optional bool has_copy_request = 4;
  optional bool has_background_filters = 5;
  optional bool is_drawn = 6;
  optional bool has_animated_opacity = 7;
  optional int64 num_copy_requests_in_subtree = 8;
  optional int64 transform_id = 9;
  optional int64 clip_id = 10;
}

// Proto for struct ScrollNodeData
// NEXT ID: 9
message ScrollNodeData {
  optional bool scrollable = 1;
  optional int32 main_thread_scrolling_reasons = 2;
  optional bool contains_non_fast_scrollable_region = 3;
  optional Size scroll_clip_layer_bounds = 4;
  optional Size bounds = 5;
  optional bool max_scroll_offset_affected_by_page_scale = 6;
  optional bool is_inner_viewport_scroll_layer = 7;
  optional bool is_outer_viewport_scroll_layer = 8;
  optional Vector2dF offset_to_transform_parent = 9;
  optional bool should_flatten = 10;
  optional int64 transform_id = 11;
}

// This defines the proto used for all types of struct TreeNode.
message TreeNode {
  // The following fields are the base TreeNode properties. This list
  // corresponds to the data members from struct TreeNode.
  optional int64 id = 1;
  optional int64 parent_id = 2;
  optional int64 owner_id = 3;

  // The following fields correspond to the possible values for TreeNode::data.
  // Only one of these fields should be set, based on the type of property tree
  // this node belongs to.
  optional TranformNodeData transform_node_data = 1000;
  optional ClipNodeData clip_node_data = 1001;
  optional EffectNodeData effect_node_data = 1002;
  optional ScrollNodeData scroll_node_data = 1003;
}

// This defines the proto used for all property trees. PropertyType denotes the
// type of this tree.
message PropertyTree {
  enum PropertyType {
    Transform = 1;
    Clip = 2;
    Effect = 3;
    Scroll = 4;
  }

  // The following fields are the base PropertyTree properties. This list
  // corresponds to the data members from class PropertyTree.
  optional PropertyType property_type = 1;
  repeated TreeNode nodes = 2;
  optional bool needs_update = 3;

  // The following fields denote the data members for each subclass of
  // PropertyTree. Only one of these fields should be set, depending on the type
  // of this property tree.
  optional TransformTreeData transform_tree_data = 1000;
}

// Proto for data members of class TransformTree.
message TransformTreeData {
  optional bool source_to_parent_updates_allowed = 1;
  optional float page_scale_factor = 2;
  optional float device_scale_factor = 3;
  optional float device_transform_scale_factor = 4;
  repeated int64 nodes_affected_by_inner_viewport_bounds_delta = 7
      [packed = true];
  repeated int64 nodes_affected_by_outer_viewport_bounds_delta = 8
      [packed = true];
}

// Proto for class PropertyTrees.
// NEXT ID: 11
message PropertyTrees {
  optional PropertyTree transform_tree = 1;
  optional PropertyTree effect_tree = 2;
  optional PropertyTree clip_tree = 3;
  optional PropertyTree scroll_tree = 7;

  optional bool needs_rebuild = 4;
  optional bool non_root_surfaces_enabled = 5;
  optional int64 sequence_number = 6;

  optional Vector2dF inner_viewport_container_bounds_delta = 8;
  optional Vector2dF outer_viewport_container_bounds_delta = 9;
  optional Vector2dF inner_viewport_scroll_bounds_delta = 10;
}