// 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 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 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 color_matrix); // Set the gamma lookup tables for |display_id|. SetGammaCorrection(int64 display_id, array degamma_lut, array gamma_lut); };