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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
use types::c;
export type SDL_GLContext = opaque;
export type SDL_GLprofile = enum int {
GL_CONTEXT_PROFILE_CORE = 0x0001,
GL_CONTEXT_PROFILE_COMPATIBILITY = 0x0002,
GL_CONTEXT_PROFILE_ES = 0x0004,
};
export type SDL_GLcontextFlag = enum int {
GL_CONTEXT_DEBUG_FLAG = 0x0001,
GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = 0x0002,
GL_CONTEXT_ROBUST_ACCESS_FLAG = 0x0004,
GL_CONTEXT_RESET_ISOLATION_FLAG = 0x0008,
};
export type SDL_GLattr = enum {
GL_RED_SIZE,
GL_GREEN_SIZE,
GL_BLUE_SIZE,
GL_ALPHA_SIZE,
GL_BUFFER_SIZE,
GL_DOUBLEBUFFER,
GL_DEPTH_SIZE,
GL_STENCIL_SIZE,
GL_ACCUM_RED_SIZE,
GL_ACCUM_GREEN_SIZE,
GL_ACCUM_BLUE_SIZE,
GL_ACCUM_ALPHA_SIZE,
GL_STEREO,
GL_MULTISAMPLEBUFFERS,
GL_MULTISAMPLESAMPLES,
GL_ACCELERATED_VISUAL,
GL_RETAINED_BACKING,
GL_CONTEXT_MAJOR_VERSION,
GL_CONTEXT_MINOR_VERSION,
GL_CONTEXT_EGL,
GL_CONTEXT_FLAGS,
GL_CONTEXT_PROFILE_MASK,
GL_SHARE_WITH_CURRENT_CONTEXT,
GL_FRAMEBUFFER_SRGB_CAPABLE,
GL_CONTEXT_RELEASE_BEHAVIOR,
GL_CONTEXT_RESET_NOTIFICATION,
GL_CONTEXT_NO_ERROR,
};
@symbol("SDL_GL_CreateContext") fn _SDL_GL_CreateContext(
window: *SDL_Window) *SDL_GLContext;
export fn SDL_GL_CreateContext(window: *SDL_Window) (*SDL_GLContext | error) = {
return wrapptr(_SDL_GL_CreateContext(window))?: *SDL_GLContext;
};
export @symbol("SDL_GL_GetProcAddress") fn SDL_GL_GetProcAddress(
proc: *const c::char) *opaque;
@symbol("SDL_GL_SetAttribute") fn _SDL_GL_SetAttribute(
attr: SDL_GLattr, value: int) int;
@symbol("SDL_GL_GetAttribute") fn _SDL_GL_GetAttribute(
attr: SDL_GLattr, value: *int) int;
export fn SDL_GL_SetAttribute(attr: SDL_GLattr, value: int) (void | error) = {
return wrapvoid(_SDL_GL_SetAttribute(attr, value));
};
export fn SDL_GL_GetAttribute(attr: SDL_GLattr) (int | error) = {
let value = 0;
wrapvoid(_SDL_GL_GetAttribute(attr, &value))?;
return value;
};
export @symbol("SDL_GL_SwapWindow") fn SDL_GL_SwapWindow(window: *SDL_Window) void;
export @symbol("SDL_GL_GetSwapInterval") fn SDL_GL_GetSwapInterval() int;
export @symbol("SDL_GL_GetDrawableSize") fn SDL_GL_GetDrawableSize(
window: *SDL_Window, w: *int, h: *int) void;
@symbol("SDL_GL_SetSwapInterval") fn _SDL_GL_SetSwapInterval(interval: int) int;
export fn SDL_GL_SetSwapInterval(interval: int) (void | error) = {
return wrapvoid(_SDL_GL_SetSwapInterval(interval));
};
|