Skip to main content

core_graphics2/
display_fade.rs

1use libc::c_float;
2
3use crate::{base::boolean_t, display_configuration::CGDisplayConfigRef, error::CGError};
4
5pub type CGDisplayFadeReservationToken = u32;
6
7pub const kCGDisplayFadeReservationInvalidToken: CGDisplayFadeReservationToken = 0;
8
9pub type CGDisplayBlendFraction = c_float;
10
11pub const kCGDisplayBlendNormal: CGDisplayBlendFraction = 0.0;
12pub const kCGDisplayBlendSolidColor: CGDisplayBlendFraction = 1.0;
13
14pub type CGDisplayFadeInterval = c_float;
15
16pub type CGDisplayReservationInterval = c_float;
17
18pub const kCGMaxDisplayReservationInterval: CGDisplayReservationInterval = 15.0;
19
20extern "C" {
21    pub fn CGConfigureDisplayFadeEffect(
22        config: CGDisplayConfigRef,
23        fadeOutSeconds: CGDisplayFadeInterval,
24        fadeInSeconds: CGDisplayFadeInterval,
25        fadeRed: c_float,
26        fadeGreen: c_float,
27        fadeBlue: c_float,
28    ) -> CGError;
29    pub fn CGAcquireDisplayFadeReservation(seconds: CGDisplayReservationInterval, token: *mut CGDisplayFadeReservationToken) -> CGError;
30    pub fn CGReleaseDisplayFadeReservation(token: CGDisplayFadeReservationToken) -> CGError;
31    pub fn CGDisplayFade(
32        token: CGDisplayFadeReservationToken,
33        duration: CGDisplayFadeInterval,
34        startBlend: CGDisplayBlendFraction,
35        endBlend: CGDisplayBlendFraction,
36        redBlend: c_float,
37        greenBlend: c_float,
38        blueBlend: c_float,
39        synchronous: boolean_t,
40    ) -> CGError;
41    pub fn CGDisplayFadeOperationInProgress() -> boolean_t;
42}