1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
// Bindings for [[ CoreVideo ; https://developer.apple.com/documentation/corevideo ]].
package CoreVideo
DisplayLinkRef :: distinct rawptr
Return :: i32
TimeStamp :: struct {
version: u32,
videoTimeScale: i32,
videoTime: i64,
hostTime: u64,
rateScalar: f64,
videoRefreshPeriod: i64,
smpteTime: CVSMPTETime,
flags: u64,
reserved: u64,
}
CVSMPTETime :: struct {
sbuframes: i16,
subframeDivisor: i16,
count: u32,
type: u32,
flags: u32,
hours: i16,
minutes: i16,
seconds: i16,
frames: i16,
}
OptionFlags :: u64
DisplayLinkOutputCallback :: #type proc "c" (displayLink: DisplayLinkRef, #by_ptr inNow: TimeStamp, #by_ptr inOutputTime: TimeStamp, flagsIn: OptionFlags, flagsOut: ^OptionFlags, displayLinkContext: rawptr) -> Return
foreign import CoreVideo "system:CoreVideo.framework"
@(link_prefix="CV")
foreign CoreVideo {
DisplayLinkCreateWithActiveCGDisplays :: proc "c" (displayLinkOut: ^DisplayLinkRef) -> Return ---
DisplayLinkStart :: proc "c" (displayLink: DisplayLinkRef) -> Return ---
DisplayLinkStop :: proc "c" (displayLink: DisplayLinkRef) -> Return ---
DisplayLinkSetOutputCallback :: proc "c" (displayLink: DisplayLinkRef, callback: DisplayLinkOutputCallback, userInfo: rawptr) -> Return ---
DisplayLinkRelease :: proc "c" (displayLink: DisplayLinkRef) ---
DisplayLinkRetain :: proc "c" (displayLink: DisplayLinkRef) -> DisplayLinkRef ---
}
|