/* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ syntax = "proto2"; package android.uirenderer.proto; option optimize_for = LITE_RUNTIME; message RenderNode { required uint64 id = 1; required string name = 2; required RenderProperties properties = 3; optional DisplayList display_list = 4; repeated RenderNode children = 5; }; message RenderProperties { required int32 left = 1; required int32 right = 2; required int32 top = 3; required int32 bottom = 4; required int32 clip_flags = 5; required float alpha = 6; required float translation_x = 7; required float translation_y = 8; required float translation_z = 9; required float elevation = 10; required float rotation = 11; required float rotation_x = 12; required float rotation_y = 13; required float scale_x = 14; required float scale_y = 15; required float pivot_x = 16; required float pivot_y = 17; required bool has_overlapping_rendering = 18; required bool pivot_explicitly_set = 19; required bool project_backwards = 20; required bool projection_receiver = 21; required RectF clip_bounds = 22; optional Outline outline = 23; optional RevealClip reveal_clip = 24; }; message RectF { required float left = 1; required float right = 2; required float top = 3; required float bottom = 4; } message Outline { required bool should_clip = 1; enum Type { None = 0; Empty = 1; ConvexPath = 2; RoundRect = 3; } required Type type = 2; required RectF bounds = 3; required float radius = 4; required float alpha = 5; optional bytes path = 6; } message RevealClip { required float x = 1; required float y = 2; required float radius = 3; } message DisplayList { optional int32 projection_receive_index = 1; repeated DrawOp draw_ops = 2; } message DrawOp { oneof drawop { DrawOp_RenderNode render_node = 1; } } message DrawOp_RenderNode { optional RenderNode node = 1; }