// Copyright 2016 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.

module viz.mojom;

import "mojo/public/mojom/base/time.mojom";
import "services/viz/public/interfaces/compositing/begin_frame_args.mojom";
import "services/viz/public/interfaces/compositing/frame_deadline.mojom";
import "services/viz/public/interfaces/compositing/selection.mojom";
import "services/viz/public/interfaces/compositing/surface_id.mojom";
import "services/viz/public/interfaces/compositing/surface_range.mojom";
import "ui/latency/mojo/latency_info.mojom";
import "ui/gfx/geometry/mojo/geometry.mojom";

// See components/viz/service/quads/compositor_frame_metadata.h.
struct CompositorFrameMetadata {
  float device_scale_factor;
  gfx.mojom.Vector2dF root_scroll_offset;
  float page_scale_factor;
  gfx.mojom.SizeF scrollable_viewport_size;
  bool may_contain_video;
  bool is_resourceless_software_draw_with_scroll_or_animation;
  uint32 root_background_color;
  array<ui.mojom.LatencyInfo> latency_info;
  array<SurfaceRange> referenced_surfaces;
  FrameDeadline deadline;
  array<SurfaceId> activation_dependencies;
  uint32 content_source_id;
  BeginFrameAck begin_frame_ack;
  uint32 frame_token;
  bool send_frame_token_to_embedder;

  float min_page_scale_factor;

  [EnableIf=is_android]
  float max_page_scale_factor;

  [EnableIf=is_android]
  gfx.mojom.SizeF root_layer_size;

  [EnableIf=is_android]
  bool root_overflow_y_hidden;

  float top_controls_height;

  float top_controls_shown_ratio;

  mojo_base.mojom.TimeTicks local_surface_id_allocation_time;

  [EnableIf=is_android]
  float bottom_controls_height;

  [EnableIf=is_android]
  float bottom_controls_shown_ratio;

  [EnableIf=is_android]
  Selection selection;
};
