1mod affine;
8mod context;
9mod drawing;
10mod point;
11mod rect;
12mod size;
13
14pub(crate) mod ffi {
16 use core::ffi::c_void;
17
18 use super::rect::CGRect;
19
20 #[link(name = "ApplicationServices", kind = "framework")]
21 extern "C" {
22pub(crate) fn CGColorSpaceCreateDeviceRGB() -> *mut c_void;
24pub(crate) fn CGColorSpaceCreateDeviceGray() -> *mut c_void;
26pub(crate) fn CGColorSpaceCreateWithName(name: *const c_void) -> *mut c_void;
28pub(crate) fn CGColorSpaceRelease(cs: *mut c_void);
30pub(crate) fn CGColorSpaceRetain(cs: *mut c_void) -> *mut c_void;
32pub(crate) fn CGColorSpaceGetNumberOfComponents(cs: *mut c_void) -> usize;
34
35pub(crate) fn CGImageGetWidth(image: *mut c_void) -> usize;
37pub(crate) fn CGImageGetHeight(image: *mut c_void) -> usize;
39pub(crate) fn CGImageGetBitsPerComponent(image: *mut c_void) -> usize;
41pub(crate) fn CGImageGetBitsPerPixel(image: *mut c_void) -> usize;
43pub(crate) fn CGImageGetBytesPerRow(image: *mut c_void) -> usize;
45pub(crate) fn CGImageRelease(image: *mut c_void);
47pub(crate) fn CGImageRetain(image: *mut c_void) -> *mut c_void;
49
50pub(crate) fn CGBitmapContextCreate(
52 data: *mut c_void,
53 width: usize,
54 height: usize,
55 bits_per_component: usize,
56 bytes_per_row: usize,
57 space: *mut c_void,
58 bitmap_info: u32,
59 ) -> *mut c_void;
60pub(crate) fn CGBitmapContextGetData(context: *mut c_void) -> *mut c_void;
62pub(crate) fn CGBitmapContextGetWidth(context: *mut c_void) -> usize;
64pub(crate) fn CGBitmapContextGetHeight(context: *mut c_void) -> usize;
66pub(crate) fn CGBitmapContextGetBitsPerComponent(context: *mut c_void) -> usize;
68pub(crate) fn CGBitmapContextGetBitsPerPixel(context: *mut c_void) -> usize;
70pub(crate) fn CGBitmapContextGetBytesPerRow(context: *mut c_void) -> usize;
72pub(crate) fn CGBitmapContextGetColorSpace(context: *mut c_void) -> *mut c_void;
74pub(crate) fn CGBitmapContextGetAlphaInfo(context: *mut c_void) -> u32;
76pub(crate) fn CGBitmapContextCreateImage(context: *mut c_void) -> *mut c_void;
78
79pub(crate) fn CGContextRetain(context: *mut c_void) -> *mut c_void;
81pub(crate) fn CGContextRelease(context: *mut c_void);
83pub(crate) fn CGContextSetRGBFillColor(
85 context: *mut c_void,
86 red: f64,
87 green: f64,
88 blue: f64,
89 alpha: f64,
90 );
91pub(crate) fn CGContextSetRGBStrokeColor(
93 context: *mut c_void,
94 red: f64,
95 green: f64,
96 blue: f64,
97 alpha: f64,
98 );
99pub(crate) fn CGContextSetLineWidth(context: *mut c_void, width: f64);
101pub(crate) fn CGContextFillRect(context: *mut c_void, rect: CGRect);
103pub(crate) fn CGContextStrokeRect(context: *mut c_void, rect: CGRect);
105pub(crate) fn CGContextFillPath(context: *mut c_void);
107pub(crate) fn CGContextStrokePath(context: *mut c_void);
109pub(crate) fn CGContextClearRect(context: *mut c_void, rect: CGRect);
111pub(crate) fn CGContextMoveToPoint(context: *mut c_void, x: f64, y: f64);
113pub(crate) fn CGContextAddLineToPoint(context: *mut c_void, x: f64, y: f64);
115pub(crate) fn CGContextAddRect(context: *mut c_void, rect: CGRect);
117pub(crate) fn CGContextAddEllipseInRect(context: *mut c_void, rect: CGRect);
119pub(crate) fn CGContextBeginPath(context: *mut c_void);
121pub(crate) fn CGContextClosePath(context: *mut c_void);
123pub(crate) fn CGContextDrawImage(context: *mut c_void, rect: CGRect, image: *mut c_void);
125pub(crate) fn CGContextTranslateCTM(context: *mut c_void, tx: f64, ty: f64);
127pub(crate) fn CGContextScaleCTM(context: *mut c_void, sx: f64, sy: f64);
129pub(crate) fn CGContextRotateCTM(context: *mut c_void, radians: f64);
131pub(crate) fn CGContextSaveGState(context: *mut c_void);
133pub(crate) fn CGContextRestoreGState(context: *mut c_void);
135 }
136}
137
138pub use affine::{CGAffineTransform, CGVector};
139pub use context::CGContext;
140pub use drawing::{CGColorSpace, CGImage};
141pub use point::CGPoint;
142pub use rect::CGRect;
143pub use size::CGSize;
144#[doc(inline)]
145pub use crate::raw::CGCharCode;
146#[doc(inline)]
147pub use crate::raw::CGContextRef;
148#[doc(inline)]
149pub use crate::raw::CGKeyCode;
150
151pub type CGDisplayID = u32;