blob: 6659ac63496f04babb198f0e52b5fb0ad36ae807 [file] [log] [blame]
// Copyright 2017 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 display.mojom;
import "ui/display/mojo/display_constants.mojom";
import "ui/display/mojo/display_mode.mojom";
import "ui/display/mojo/display_snapshot.mojom";
import "ui/display/mojo/gamma_ramp_rgb_entry.mojom";
import "ui/gfx/geometry/mojo/geometry.mojom";
// Corresponds to display::NativeDisplayObserver.
interface NativeDisplayObserver {
OnConfigurationChanged();
};
// Corresponds to display::NativeDisplayDelegate. This only implements
// functionality that is used by Ozone DRM.
interface NativeDisplayDelegate {
// Initializes and registers the observer. This is synchronous so that ash
// initialization has an initial set of displays to use.
[Sync]
Initialize(NativeDisplayObserver observer) =>
(array<DisplaySnapshot> snapshots);
// Take control of the displays from any other controlling process.
TakeDisplayControl() => (bool result);
// Let others control the displays.
RelinquishDisplayControl() => (bool result);
// Queries for a list of fresh displays.
GetDisplays() => (array<DisplaySnapshot> snapshots);
// Configures the display represented by |display_id| to use |mode| and
// positions the display to |origin| in the framebuffer. |mode| can be null,
// which represents disabling the display.
Configure(int64 display_id,
DisplayMode? mode,
gfx.mojom.Point origin) => (bool status);
// Gets HDCP state of output.
GetHDCPState(int64 display_id) => (bool status, HDCPState state);
// Sets HDCP state of output.
SetHDCPState(int64 display_id, HDCPState state) => (bool status);
// Sets a 3x3 color transform matrix on the display hardware.
// TODO: Consider using a different type for the color matrix.
// https://crbug.com/846975.
SetColorMatrix(int64 display_id, array<float, 9> color_matrix);
// Set the gamma lookup tables for |display_id|.
SetGammaCorrection(int64 display_id,
array<GammaRampRGBEntry> degamma_lut,
array<GammaRampRGBEntry> gamma_lut);
};