aboutsummaryrefslogtreecommitdiff
path: root/core/sys/darwin/CoreGraphics/CoreGraphics.odin
blob: e2ba5fe3c95c7ef653a135141ad60210fcacf366 (plain)
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
45
46
47
48
49
50
51
52
53
54
55
56
57
package CoreGraphics

import    "core:c"
import CF "core:sys/darwin/CoreFoundation"

@(require)
foreign import "system:CoreGraphics.framework"

@(link_prefix="CG", default_calling_convention="c")
foreign CoreGraphics {
	AssociateMouseAndMouseCursorPosition :: proc(connected: b32) -> Error ---
	DisplayIDToOpenGLDisplayMask         :: proc(display: DirectDisplayID) -> OpenGLDisplayMask ---
	DisplayMoveCursorToPoint             :: proc(display: DirectDisplayID, point: Point) -> Error ---
	EventSourceKeyState                  :: proc(stateID: EventSourceStateID, key: KeyCode) -> bool ---
	GetActiveDisplayList                 :: proc(maxDisplays: c.uint32_t, activeDisplays: [^]DirectDisplayID, displayCount: ^c.uint32_t) -> Error ---
	GetDisplaysWithOpenGLDisplayMask     :: proc(mask: OpenGLDisplayMask, maxDisplays: c.uint32_t, displays: [^]DirectDisplayID, matchingDisplayCount: ^c.uint32_t) -> Error ---
	GetDisplaysWithPoint                 :: proc(point: Point, maxDisplays: c.uint32_t, displays: [^]DirectDisplayID, matchingDisplayCount: ^c.uint32_t) -> Error ---
	GetDisplaysWithRect                  :: proc(rect: Rect, maxDisplays: c.uint32_t, displays: [^]DirectDisplayID, matchingDisplayCount: ^c.uint32_t) -> Error ---
	GetOnlineDisplayList                 :: proc(maxDisplays: c.uint32_t, onlineDisplays: [^]DirectDisplayID, displayCount: ^c.uint32_t) -> Error ---
	MainDisplayID                        :: proc() -> DirectDisplayID ---
	OpenGLDisplayMaskToDisplayID         :: proc(mask: OpenGLDisplayMask) -> DirectDisplayID ---
	WarpMouseCursorPosition              :: proc(newCursorPosition: Point) -> Error ---
}

DirectDisplayID :: c.uint32_t

Error :: enum c.int32_t {
	Success           = 0,
	Failure           = 1000,
	IllegalArgument   = 1001,
	InvalidConnection = 1002,
	InvalidContext    = 1003,
	CannotComplete    = 1004,
	NotImplemented    = 1006,
	RangeCheck        = 1007,
	TypeCheck         = 1008,
	InvalidOperation  = 1010,
	NoneAvailable     = 1011,
}

EventSourceStateID :: enum c.int32_t {
	Private              = -1,
	CombinedSessionState = 0,
	HIDSystemState       = 1,
}

Float :: CF.CGFloat

KeyCode :: c.uint16_t

OpenGLDisplayMask :: c.uint32_t

Point :: CF.CGPoint

Rect :: CF.CGRect

Size :: CF.CGSize