// Copyright 2023 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.
@available(added=HEAD)
library fuchsia.ui.composition.internal;

using zx;

/// Get information about Scenic ownership of the primary display.
@discoverable
@available(added=HEAD)
closed protocol DisplayOwnership {
    /// Gets an event signaled with SIGNAL_DISPLAY_OWNED or SIGNAL_DISPLAY_NOT_OWNED
    /// when display ownership changes.
    strict GetEvent() -> (resource struct {
        ownership_event zx.Handle:EVENT;
    });
};

const SIGNAL_DISPLAY_OWNED uint32 = 0x02000000;
const SIGNAL_DISPLAY_NOT_OWNED uint32 = 0x01000000;
