Add CoreGraphics FFI used by winit
This commit is contained in:
@@ -30,3 +30,14 @@ pub type CGError = libc::int32_t;
|
||||
|
||||
pub type CGGlyph = libc::c_ushort;
|
||||
|
||||
pub const kCGErrorSuccess: CGError = 0;
|
||||
pub const kCGErrorFailure: CGError = 1000;
|
||||
pub const kCGErrorIllegalArgument: CGError = 1001;
|
||||
pub const kCGErrorInvalidConnection: CGError = 1002;
|
||||
pub const kCGErrorInvalidContext: CGError = 1003;
|
||||
pub const kCGErrorCannotComplete: CGError = 1004;
|
||||
pub const kCGErrorNotImplemented: CGError = 1006;
|
||||
pub const kCGErrorRangeCheck: CGError = 1007;
|
||||
pub const kCGErrorTypeCheck: CGError = 1008;
|
||||
pub const kCGErrorInvalidOperation: CGError = 1010;
|
||||
pub const kCGErrorNoneAvailable: CGError = 1011;
|
||||
|
||||
@@ -23,6 +23,7 @@ use foreign_types::ForeignType;
|
||||
|
||||
pub type CGDirectDisplayID = u32;
|
||||
pub type CGWindowID = u32;
|
||||
pub type CGWindowLevel = i32;
|
||||
|
||||
pub const kCGNullWindowID: CGWindowID = 0 as CGWindowID;
|
||||
pub const kCGNullDirectDisplayID: CGDirectDisplayID = 0 as CGDirectDisplayID;
|
||||
@@ -68,6 +69,17 @@ pub const kDisplayModeNativeFlag: u32 = 0x02000000;
|
||||
|
||||
pub const kDisplayModeSafetyFlags: u32 = 0x00000007;
|
||||
|
||||
pub type CGDisplayBlendFraction = f32;
|
||||
pub const kCGDisplayBlendNormal: CGDisplayBlendFraction = 0.0;
|
||||
pub const kCGDisplayBlendSolidColor: CGDisplayBlendFraction = 1.0;
|
||||
|
||||
pub type CGDisplayFadeReservationToken = u32;
|
||||
pub const kCGDisplayFadeReservationInvalidToken: CGDisplayFadeReservationToken = 0;
|
||||
|
||||
pub type CGDisplayFadeInterval = f32;
|
||||
pub type CGDisplayReservationInterval = f32;
|
||||
pub const kCGMaxDisplayReservationInterval: CGDisplayReservationInterval = 15.0;
|
||||
|
||||
pub const IO1BitIndexedPixels: &str = "P";
|
||||
pub const IO2BitIndexedPixels: &str = "PP";
|
||||
pub const IO4BitIndexedPixels: &str = "PPPP";
|
||||
@@ -621,6 +633,7 @@ extern "C" {
|
||||
|
||||
pub static kCGDisplayShowDuplicateLowResolutionModes: CFStringRef;
|
||||
|
||||
pub fn CGDisplayModeRetain(mode: ::sys::CGDisplayModeRef);
|
||||
pub fn CGDisplayModeRelease(mode: ::sys::CGDisplayModeRef);
|
||||
|
||||
pub fn CGMainDisplayID() -> CGDirectDisplayID;
|
||||
@@ -658,6 +671,12 @@ extern "C" {
|
||||
pub fn CGDisplayBounds(display: CGDirectDisplayID) -> CGRect;
|
||||
pub fn CGDisplayCreateImage(display: CGDirectDisplayID) -> ::sys::CGImageRef;
|
||||
|
||||
// Capturing and Releasing Displays
|
||||
pub fn CGDisplayCapture(display: CGDirectDisplayID) -> CGError;
|
||||
pub fn CGDisplayRelease(display: CGDirectDisplayID) -> CGError;
|
||||
pub fn CGShieldingWindowLevel() -> CGWindowLevel;
|
||||
|
||||
// Configuring Displays
|
||||
pub fn CGBeginDisplayConfiguration(config: *mut CGDisplayConfigRef) -> CGError;
|
||||
pub fn CGCancelDisplayConfiguration(config: CGDisplayConfigRef) -> CGError;
|
||||
pub fn CGCompleteDisplayConfiguration(
|
||||
@@ -681,6 +700,7 @@ extern "C" {
|
||||
x: i32,
|
||||
y: i32,
|
||||
) -> CGError;
|
||||
pub fn CGRestorePermanentDisplayConfiguration();
|
||||
|
||||
pub fn CGDisplayCopyDisplayMode(display: CGDirectDisplayID) -> ::sys::CGDisplayModeRef;
|
||||
pub fn CGDisplayModeGetHeight(mode: ::sys::CGDisplayModeRef) -> libc::size_t;
|
||||
@@ -696,6 +716,11 @@ extern "C" {
|
||||
display: CGDirectDisplayID,
|
||||
options: CFDictionaryRef,
|
||||
) -> CFArrayRef;
|
||||
pub fn CGDisplaySetDisplayMode(
|
||||
display: CGDirectDisplayID,
|
||||
mode: ::sys::CGDisplayModeRef,
|
||||
options: CFDictionaryRef,
|
||||
) -> CGError;
|
||||
|
||||
// mouse stuff
|
||||
pub fn CGDisplayHideCursor(display: CGDirectDisplayID) -> CGError;
|
||||
@@ -704,6 +729,32 @@ extern "C" {
|
||||
pub fn CGWarpMouseCursorPosition(point: CGPoint) -> CGError;
|
||||
pub fn CGAssociateMouseAndMouseCursorPosition(connected: boolean_t) -> CGError;
|
||||
|
||||
// Display Fade Effects
|
||||
pub fn CGConfigureDisplayFadeEffect(
|
||||
config: CGDisplayConfigRef,
|
||||
fadeOutSeconds: CGDisplayFadeInterval,
|
||||
fadeInSeconds: CGDisplayFadeInterval,
|
||||
fadeRed: f32,
|
||||
fadeGreen: f32,
|
||||
fadeBlue: f32,
|
||||
) -> CGError;
|
||||
pub fn CGAcquireDisplayFadeReservation(
|
||||
seconds: CGDisplayReservationInterval,
|
||||
token: *mut CGDisplayFadeReservationToken,
|
||||
) -> CGError;
|
||||
pub fn CGDisplayFade(
|
||||
token: CGDisplayFadeReservationToken,
|
||||
duration: CGDisplayFadeInterval,
|
||||
startBlend: CGDisplayBlendFraction,
|
||||
endBlend: CGDisplayBlendFraction,
|
||||
redBlend: f32,
|
||||
greenBlend: f32,
|
||||
blueBlend: f32,
|
||||
synchronous: boolean_t,
|
||||
) -> CGError;
|
||||
// CGDisplayFadeOperationInProgress
|
||||
pub fn CGReleaseDisplayFadeReservation(token: CGDisplayFadeReservationToken) -> CGError;
|
||||
|
||||
// Window Services Reference
|
||||
pub fn CGWindowListCopyWindowInfo(
|
||||
option: CGWindowListOption,
|
||||
|
||||
Reference in New Issue
Block a user