blob: 69c7ee208662b52495660734dc69f38137d7bbe2 [file] [log] [blame]
// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
{
include: [
"inspect/client.shard.cml",
"syslog/client.shard.cml",
"trace/client.shard.cml",
"vulkan/client.shard.cml",
],
program: {
runner: "elf",
binary: "bin/scenic",
},
children: [
{
name: "image-compression",
url: "#meta/image-compression.cm",
},
],
capabilities: [
{
protocol: [
"fuchsia.ui.annotation.Registry",
"fuchsia.ui.composition.Allocator",
"fuchsia.ui.composition.Flatland",
"fuchsia.ui.composition.FlatlandDisplay",
"fuchsia.ui.composition.internal.DisplayOwnership",
"fuchsia.ui.composition.internal.ScreenCapture",
"fuchsia.ui.composition.ScreenCapture",
"fuchsia.ui.composition.Screenshot",
"fuchsia.ui.display.color.Converter",
"fuchsia.ui.display.internal.DisplayPower",
"fuchsia.ui.display.singleton.Info",
"fuchsia.ui.focus.FocusChainListenerRegistry",
"fuchsia.ui.input.accessibility.PointerEventRegistry",
"fuchsia.ui.lifecycle.LifecycleController",
"fuchsia.ui.observation.scope.Registry",
"fuchsia.ui.observation.test.Registry",
"fuchsia.ui.pointer.augment.LocalHit",
"fuchsia.ui.pointerinjector.Registry",
"fuchsia.ui.scenic.Scenic",
"fuchsia.ui.views.ViewRefInstalled",
],
},
],
use: [
{
directory: "config-data",
rights: [ "r*" ],
path: "/config/data",
},
{
storage: "tmp",
path: "/tmp",
},
{
protocol: [
"fuchsia.hardware.display.Provider",
"fuchsia.media.ProfileProvider",
"fuchsia.metrics.MetricEventLoggerFactory",
"fuchsia.scheduler.RoleManager",
"fuchsia.sysmem.Allocator",
"fuchsia.sysmem2.Allocator",
],
},
{
protocol: "fuchsia.ui.compression.internal.ImageCompressor",
from: "#image-compression",
},
],
expose: [
{
protocol: [
"fuchsia.ui.annotation.Registry",
"fuchsia.ui.composition.Allocator",
"fuchsia.ui.composition.Flatland",
"fuchsia.ui.composition.FlatlandDisplay",
"fuchsia.ui.composition.internal.DisplayOwnership",
"fuchsia.ui.composition.internal.ScreenCapture",
"fuchsia.ui.composition.ScreenCapture",
"fuchsia.ui.composition.Screenshot",
"fuchsia.ui.display.color.Converter",
"fuchsia.ui.display.internal.DisplayPower",
"fuchsia.ui.display.singleton.Info",
"fuchsia.ui.focus.FocusChainListenerRegistry",
"fuchsia.ui.input.accessibility.PointerEventRegistry",
"fuchsia.ui.lifecycle.LifecycleController",
"fuchsia.ui.observation.scope.Registry",
"fuchsia.ui.observation.test.Registry",
"fuchsia.ui.pointer.augment.LocalHit",
"fuchsia.ui.pointerinjector.Registry",
"fuchsia.ui.scenic.Scenic",
"fuchsia.ui.views.ViewRefInstalled",
],
from: "self",
},
],
config: {
renderer: {
type: "string",
max_size: 16,
},
frame_scheduler_min_predicted_frame_duration_in_us: { type: "uint64" },
pointer_auto_focus: { type: "bool" },
display_composition: { type: "bool" },
i_can_haz_display_id: { type: "int64" },
// The index to the display mode selected by Scenic if not -1. It
// overrides all the other display mode constraints.
//
// If -1, Scenic ignores this field and selects the display mode using
// other constraints.
//
// TODO(https://fxbug.dev/42156949): Replace it with fields that support
// multiple displays.
i_can_haz_display_mode: { type: "int64" },
display_rotation: { type: "uint64" },
// The following fields specify the constraints of the display modes
// allowed by Scenic. Scenic will exit if none of the display modes
// provided by the display device satisfy all the constraints.
// The minimum allowed display horizontal resolution (width) in pixels,
// if not -1.
// Otherwise there's no minimum limit on the display horizontal
// resolution.
//
// Must be non-negative or -1.
//
// Must be <= `max_display_horizontal_resolution_px` if both fields are
// non-negative.
min_display_horizontal_resolution_px: { type: "int32" },
// The maximum allowed display horizontal resolution (width) in pixels,
// if not -1.
// Otherwise there's no maximum limit on the display horizontal
// resolution.
//
// Must be non-negative or -1.
//
// Must be >= `min_display_horizontal_resolution_px` if both fields are
// non-negative.
max_display_horizontal_resolution_px: { type: "int32" },
// The minimum allowed display vertical resolution (height) in pixels,
// if not -1.
// Otherwise there's no minimum limit on the display vertical
// resolution.
//
// Must be non-negative or -1.
//
// Must be <= `max_display_vertical_resolution_px` if both fields are
// non-negative.
min_display_vertical_resolution_px: { type: "int32" },
// The maximum allowed display vertical resolution (height) in pixels,
// if not -1.
// Otherwise there's no maximum limit on the display vertical
// resolution.
//
// Must be non-negative or -1.
//
// Must be >= `min_display_vertical_resolution_px` if both fields are
// non-negative.
max_display_vertical_resolution_px: { type: "int32" },
// The minimum allowed display refresh rate in millihertz (10^-3 hertz),
// if not -1.
// Otherwise there's no minimum limit on the display refresh rate.
//
// Must be non-negative or -1.
//
// Must be <= `max_display_refresh_rate_millihertz` if both fields are
// non-negative.
min_display_refresh_rate_millihertz: { type: "int32" },
// The maximum allowed display refresh rate in millihertz (10^-3 hertz),
// if not -1.
// Otherwise there's no maximum limit on the display refresh rate.
//
// Must be non-negative or -1.
//
// Must be >= `min_display_refresh_rate_millihertz` if both fields are
// non-negative.
max_display_refresh_rate_millihertz: { type: "int32" },
},
}