annotate modules/sdl.tp @ 332:ead24192ed45

Initial work on a UI module
author Michael Pavone <pavone@retrodev.com>
date Sat, 28 Mar 2015 14:21:22 -0700
parents 4c669942c30d
children 577406b25f89
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
274
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1 {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
2 _helper <- #{
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
3 llMessage: createWindow withVars: {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
4 title <- string ptr
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
5 x <- obj_int32 ptr
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
6 y <- obj_int32 ptr
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
7 w <- obj_int32 ptr
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
8 h <- obj_int32 ptr
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
9 flags <- obj_uint32 ptr
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
10 makeWindow <- lambda ptr
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
11 windowOpaque <- cpointer ptr
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
12 win <- object ptr
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
13 } andCode: :title x y w h flags makeWindow {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
14 windowOpaque <- make_object: (addr_of: cpointer_meta) NULL 0
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
15 windowOpaque val!: (SDL_CreateWindow: (title data) (x num) (y num) (w num) (h num) (flags num))
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
16 if: (windowOpaque val) {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
17 win <- ccall: makeWindow 1 (windowOpaque castTo: (object ptr))
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
18 mcall: value 2 option win
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
19 } else: {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
20 mcall: none 1 option
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
21 }
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
22 }
277
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
23
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
24 llMessage: createRenderer withVars: {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
25 window <- cpointer ptr
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
26 index <- obj_int32 ptr
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
27 flags <- obj_uint32 ptr
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
28 rendOpaque <- cpointer ptr
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
29 rend <- object ptr
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
30 makeRender <- lambda ptr
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
31 } andCode: :window index flags makeRender {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
32 rendOpaque <- make_object: (addr_of: cpointer_meta) NULL 0
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
33 rendOpaque val!: (SDL_CreateRenderer: (window val) (index num) (flags num))
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
34 if: (rendOpaque val) {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
35 rend <- ccall: makeRender 1 (rendOpaque castTo: (object ptr))
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
36 mcall: value 2 option rend
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
37 } else: {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
38 mcall: none 1 option
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
39 }
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
40 }
278
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
41
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
42 llMessage: loadBMP withVars: {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
43 filename <- string ptr
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
44 makeSurface <- lambda ptr
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
45 surfOpaque <- cpointer ptr
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
46 surf <- object ptr
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
47 } andCode: :filename makeSurface{
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
48 surfOpaque <- make_object: (addr_of: cpointer_meta) NULL 0
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
49 surfOpaque val!: (SDL_LoadBMP: (filename data))
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
50 if: (surfOpaque val) {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
51 surf <- ccall: makeSurface 1 (surfOpaque castTo: (object ptr))
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
52 mcall: value 2 option surf
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
53 } else: {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
54 mcall: none 1 option
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
55 }
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
56 }
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
57
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
58 llMessage: createTextureFromSurface withVars: {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
59 rendOpaque <- cpointer ptr
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
60 surfOpaque <- cpointer ptr
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
61 makeTexture <- lambda ptr
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
62 texOpaque <- cpointer ptr
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
63 tex <- object ptr
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
64 } andCode: :rendOpaque surfOpaque makeTexture {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
65 texOpaque <- make_object: (addr_of: cpointer_meta) NULL 0
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
66 texOpaque val!: (SDL_CreateTextureFromSurface: (rendOpaque val) (surfOpaque val))
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
67 if: (texOpaque val) {
291
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
68 tex <- ccall: makeTexture 2 (rendOpaque castTo: (object ptr)) (texOpaque castTo: (object ptr))
278
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
69 mcall: value 2 option tex
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
70 } else: {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
71 mcall: none 1 option
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
72 }
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
73 }
318
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
74
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
75 llMessage: createTexture withVars: {
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
76 rendOpaque <- cpointer ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
77 format <- object ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
78 formatn <- obj_uint32 ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
79 access <- object ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
80 accessn <- obj_int32 ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
81 w <- object ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
82 wn <- obj_int32 ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
83 h <- object ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
84 hn <- obj_int32 ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
85 makeTexture <- lambda ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
86 texOpaque <- cpointer ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
87 tex <- object ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
88 } andCode: :rendOpaque format access w h makeTexture {
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
89 formatn <- (mcall: uint32 1 format) castTo: (obj_uint32 ptr)
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
90 accessn <- (mcall: int32 1 access) castTo: (obj_int32 ptr)
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
91 wn <- (mcall: int32 1 w) castTo: (obj_int32 ptr)
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
92 hn <- (mcall: int32 1 h) castTo: (obj_int32 ptr)
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
93 texOpaque <- make_object: (addr_of: cpointer_meta) NULL 0
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
94 texOpaque val!: (SDL_CreateTexture: (rendOpaque val) (formatn num) (accessn num) (wn num) (hn num))
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
95 if: (texOpaque val) {
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
96 tex <- ccall: makeTexture 2 (rendOpaque castTo: (object ptr)) (texOpaque castTo: (object ptr))
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
97 mcall: value 2 option tex
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
98 } else: {
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
99 mcall: none 1 option
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
100 }
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
101 }
291
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
102
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
103 llMessage: pollEvent withVars: {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
104 constructor <- lambda ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
105 event <- SDL_Event
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
106 eventPtr <- cpointer ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
107 eventType <- obj_uint32 ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
108 timeStampO <- obj_uint32 ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
109 } andCode: :constructor {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
110 if: (SDL_PollEvent: (addr_of: event)) {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
111 eventType <- make_object: (addr_of: obj_uint32_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
112 timeStampO <- make_object: (addr_of: obj_uint32_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
113 eventType num!: ((addr_of: event) type)
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
114 timeStampO num!: ((addr_of: ((addr_of: event) common)) timestamp)
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
115 eventPtr <- make_object: (addr_of: cpointer_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
116 eventPtr val!: (addr_of: event)
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
117 mcall: value 2 option (ccall: constructor 3 (eventType castTo: (object ptr)) (
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
118 timeStampO castTo: (object ptr)) (eventPtr castTo: (object ptr)))
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
119 } else: {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
120 mcall: none 1 option
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
121 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
122 }
332
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
123
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
124 llMessage: waitEvent withVars: {
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
125 constructor <- lambda ptr
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
126 event <- SDL_Event
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
127 eventPtr <- cpointer ptr
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
128 eventType <- obj_uint32 ptr
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
129 timeStampO <- obj_uint32 ptr
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
130 } andCode: :constructor {
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
131 if: (SDL_WaitEvent: (addr_of: event)) {
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
132 eventType <- make_object: (addr_of: obj_uint32_meta) NULL 0
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
133 timeStampO <- make_object: (addr_of: obj_uint32_meta) NULL 0
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
134 eventType num!: ((addr_of: event) type)
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
135 timeStampO num!: ((addr_of: ((addr_of: event) common)) timestamp)
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
136 eventPtr <- make_object: (addr_of: cpointer_meta) NULL 0
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
137 eventPtr val!: (addr_of: event)
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
138 mcall: value 2 option (ccall: constructor 3 (eventType castTo: (object ptr)) (
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
139 timeStampO castTo: (object ptr)) (eventPtr castTo: (object ptr)))
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
140 } else: {
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
141 mcall: none 1 option
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
142 }
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
143 }
291
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
144
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
145 llMessage: populateWindowEvent withVars: {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
146 eventPtr <- cpointer ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
147 empty <- object ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
148 winEvent <- SDL_WindowEvent ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
149 ou32 <- obj_uint32 ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
150 oi32 <- obj_int32 ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
151 } andCode: :eventPtr empty {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
152 winEvent <- eventPtr val
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
153 ou32 <- make_object: (addr_of: obj_uint32_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
154 ou32 num!: (winEvent windowID)
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
155 mcall: windowID! 2 empty ou32
332
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
156 ou32 <- make_object: (addr_of: obj_uint32_meta) NULL 0
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
157 ou32 num!: (winEvent event)
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
158 mcall: event! 2 empty ou32
291
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
159 oi32 <- make_object: (addr_of: obj_int32_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
160 oi32 num!: (winEvent data1)
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
161 mcall: data1! 2 empty oi32
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
162 oi32 <- make_object: (addr_of: obj_int32_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
163 oi32 num!: (winEvent data2)
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
164 mcall: data2! 2 empty oi32
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
165 empty
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
166 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
167
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
168 llMessage: populateKeyEvent withVars: {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
169 eventPtr <- cpointer ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
170 empty <- object ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
171 keyEvent <- SDL_KeyboardEvent ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
172 ou32 <- obj_uint32 ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
173 ou16 <- obj_uint32 ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
174 ou8 <- obj_uint8 ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
175 } andCode: :eventPtr empty {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
176 keyEvent <- eventPtr val
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
177 ou32 <- make_object: (addr_of: obj_uint32_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
178 ou32 num!: (keyEvent windowID)
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
179 mcall: windowID! 2 empty ou32
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
180 if: (keyEvent state) = SDL_PRESSED {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
181 mcall: pressed?! 2 empty true
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
182 } else: {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
183 mcall: pressed?! 2 empty false
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
184 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
185 ou8 <- make_object: (addr_of: obj_uint8_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
186 ou8 num!: (keyEvent repeat)
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
187 mcall: repeat! 2 empty ou8
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
188 ou32 <- make_object: (addr_of: obj_uint32_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
189 ou32 num!: ((addr_of: (keyEvent keysym)) scancode)
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
190 mcall: scanCode! 2 empty ou32
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
191 ou32 <- make_object: (addr_of: obj_uint32_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
192 ou32 num!: ((addr_of: (keyEvent keysym)) sym)
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
193 mcall: keyCode! 2 empty ou32
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
194 ou16 <- make_object: (addr_of: obj_uint16_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
195 ou16 num!: ((addr_of: (keyEvent keysym)) mod)
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
196 mcall: mod! 2 empty ou16
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
197 empty
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
198 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
199
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
200 llMessage: populateMouseButtonEvent withVars: {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
201 eventPtr <- cpointer ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
202 empty <- object ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
203 mouseButEvent <- SDL_MouseButtonEvent ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
204 ou32 <- obj_uint32 ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
205 ou8 <- obj_uint8 ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
206 oi32 <- obj_int32 ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
207 } andCode: :eventPtr empty {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
208 mouseButEvent <- eventPtr val
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
209 ou32 <- make_object: (addr_of: obj_uint32_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
210 ou32 num!: (mouseButEvent windowID)
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
211 mcall: windowID! 2 empty ou32
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
212 ou32 <- make_object: (addr_of: obj_uint32_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
213 ou32 num!: (mouseButEvent which)
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
214 mcall: mouseID! 2 empty ou32
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
215 ou8 <- make_object: (addr_of: obj_uint8_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
216 ou8 num!: (mouseButEvent button)
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
217 mcall: button! 2 empty ou8
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
218 if: (mouseButEvent state) = SDL_PRESSED {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
219 mcall: pressed?! 2 empty true
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
220 } else: {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
221 mcall: pressed?! 2 empty false
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
222 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
223 ou8 <- make_object: (addr_of: obj_uint8_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
224 ou8 num!: (mouseButEvent clicks)
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
225 mcall: clicks! 2 empty ou8
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
226 oi32 <- make_object: (addr_of: obj_int32_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
227 oi32 num!: (mouseButEvent x)
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
228 mcall: x! 2 empty oi32
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
229 oi32 <- make_object: (addr_of: obj_int32_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
230 oi32 num!: (mouseButEvent y)
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
231 mcall: y! 2 empty oi32
293
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
232 empty
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
233 }
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
234
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
235 llMessage: populateMouseMotionEvent withVars: {
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
236 eventPtr <- cpointer ptr
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
237 empty <- object ptr
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
238 mouseMotEvent <- SDL_MouseMotionEvent ptr
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
239 ou32 <- obj_uint32 ptr
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
240 oi32 <- obj_int32 ptr
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
241 } andCode: :eventPtr empty {
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
242 mouseMotEvent <- eventPtr val
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
243 ou32 <- make_object: (addr_of: obj_uint32_meta) NULL 0
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
244 ou32 num!: (mouseMotEvent windowID)
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
245 mcall: windowID! 2 empty ou32
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
246 ou32 <- make_object: (addr_of: obj_uint32_meta) NULL 0
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
247 ou32 num!: (mouseMotEvent which)
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
248 mcall: mouseID! 2 empty ou32
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
249 ou32 <- make_object: (addr_of: obj_uint32_meta) NULL 0
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
250 ou32 num!: (mouseMotEvent state)
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
251 mcall: buttonState! 2 empty ou32
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
252 oi32 <- make_object: (addr_of: obj_int32_meta) NULL 0
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
253 oi32 num!: (mouseMotEvent x)
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
254 mcall: x! 2 empty oi32
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
255 oi32 <- make_object: (addr_of: obj_int32_meta) NULL 0
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
256 oi32 num!: (mouseMotEvent y)
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
257 mcall: y! 2 empty oi32
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
258 oi32 <- make_object: (addr_of: obj_int32_meta) NULL 0
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
259 oi32 num!: (mouseMotEvent xrel)
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
260 mcall: xRel! 2 empty oi32
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
261 oi32 <- make_object: (addr_of: obj_int32_meta) NULL 0
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
262 oi32 num!: (mouseMotEvent yrel)
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
263 mcall: yRel! 2 empty oi32
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
264 empty
291
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
265 }
278
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
266 }
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
267
291
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
268 _constant <- macro: :name cname {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
269 quote: (llMessage: name withVars: {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
270 uintret <- obj_uint32 ptr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
271 } andCode: {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
272 uintret <- make_object: (addr_of: obj_uint32_meta) NULL 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
273 uintret num!: cname
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
274 uintret
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
275 })
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
276 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
277 _subsystems <- #{
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
278 _constant: timer SDL_INIT_TIMER
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
279 _constant: audio SDL_INIT_AUDIO
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
280 _constant: video SDL_INIT_VIDEO
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
281 _constant: joystick SDL_INIT_JOYSTICK
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
282 _constant: haptic SDL_INIT_HAPTIC
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
283 _constant: gameController SDL_INIT_GAMECONTROLLER
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
284 _constant: events SDL_INIT_EVENTS
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
285 _constant: everything SDL_INIT_EVERYTHING
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
286 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
287
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
288 _windowOpts <- #{
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
289 _constant: fullscreen SDL_WINDOW_FULLSCREEN
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
290 _constant: fullscreenDesktop SDL_WINDOW_FULLSCREEN_DESKTOP
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
291 _constant: opengl SDL_WINDOW_OPENGL
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
292 _constant: hidden SDL_WINDOW_HIDDEN
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
293 _constant: borderless SDL_WINDOW_BORDERLESS
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
294 _constant: minimized SDL_WINDOW_MINIMIZED
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
295 _constant: maximized SDL_WINDOW_MAXIMIZED
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
296 _constant: inputGrabbed SDL_WINDOW_INPUT_GRABBED
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
297 _constant: allowHighDPI SDL_WINDOW_ALLOW_HIGHDPI
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
298 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
299
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
300 _renderOpts <- #{
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
301 _constant: software SDL_RENDERER_SOFTWARE
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
302 _constant: accelerated SDL_RENDERER_ACCELERATED
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
303 _constant: presentVSYNC SDL_RENDERER_PRESENTVSYNC
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
304 _constant: targetTexture SDL_RENDERER_TARGETTEXTURE
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
305
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
306 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
307
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
308 _events <- #{
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
309 _constant: quit SDL_QUIT
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
310 _constant: window SDL_WINDOWEVENT
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
311 _constant: sysWM SDL_SYSWMEVENT
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
312 _constant: keyDown SDL_KEYDOWN
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
313 _constant: keyUp SDL_KEYUP
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
314 _constant: textEditing SDL_TEXTEDITING
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
315 _constant: textInput SDL_TEXTINPUT
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
316 _constant: mouseMotion SDL_MOUSEMOTION
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
317 _constant: mouseDown SDL_MOUSEBUTTONDOWN
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
318 _constant: mouseUp SDL_MOUSEBUTTONUP
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
319 _constant: mouseWheel SDL_MOUSEWHEEL
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
320 _constant: joyAxis SDL_JOYAXISMOTION
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
321 _constant: joyBall SDL_JOYBALLMOTION
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
322 _constant: joyHat SDL_JOYHATMOTION
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
323 _constant: joyDown SDL_JOYBUTTONDOWN
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
324 _constant: joyUp SDL_JOYBUTTONUP
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
325 _constant: joyDeviceAdded SDL_JOYDEVICEADDED
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
326 _constant: joyDeviceRemoved SDL_JOYDEVICEREMOVED
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
327 _constant: controllerAxis SDL_CONTROLLERAXISMOTION
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
328 _constant: controllerDown SDL_CONTROLLERBUTTONDOWN
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
329 _constant: controllerUp SDL_CONTROLLERBUTTONUP
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
330 _constant: controllerDeviceAdded SDL_CONTROLLERDEVICEADDED
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
331 _constant: controllerDeviceRemoved SDL_CONTROLLERDEVICEREMOVED
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
332 _constant: controllerDeviceRemapped SDL_CONTROLLERDEVICEREMAPPED
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
333 _constant: dropFile SDL_DROPFILE
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
334 //TODO: Add mobile/touch/gesture events
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
335 }
318
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
336
332
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
337 _windowEvents <- #{
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
338 _constant: shown SDL_WINDOWEVENT_SHOWN
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
339 _constant: hidden SDL_WINDOWEVENT_HIDDEN
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
340 _constant: exposed SDL_WINDOWEVENT_EXPOSED
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
341 _constant: moved SDL_WINDOWEVENT_MOVED
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
342 _constant: resized SDL_WINDOWEVENT_RESIZED
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
343 _constant: sizeChanged SDL_WINDOWEVENT_SIZE_CHANGED
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
344 _constant: minimized SDL_WINDOWEVENT_MINIMIZED
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
345 _constant: maximized SDL_WINDOWEVENT_MAXIMIZED
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
346 _constant: restored SDL_WINDOWEVENT_RESTORED
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
347 _constant: enter SDL_WINDOWEVENT_ENTER
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
348 _constant: leave SDL_WINDOWEVENT_LEAVE
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
349 _constant: focusGained SDL_WINDOWEVENT_FOCUS_GAINED
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
350 _constant: focusLost SDL_WINDOWEVENT_FOCUS_LOST
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
351 _constant: close SDL_WINDOWEVENT_CLOSE
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
352 }
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
353
318
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
354 _textureAccess <- #{
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
355 _constant: static SDL_TEXTUREACCESS_STATIC
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
356 _constant: streaming SDL_TEXTUREACCESS_STREAMING
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
357 _constant: target SDL_TEXTUREACCESS_TARGET
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
358 }
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
359
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
360 _pixelFormats <- #{
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
361 _constant: unknown SDL_PIXELFORMAT_UNKNOWN
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
362 _constant: index1LSB SDL_PIXELFORMAT_INDEX1LSB
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
363 _constant: index1MSB SDL_PIXELFORMAT_INDEX1MSB
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
364 _constant: index4LSB SDL_PIXELFORMAT_INDEX4LSB
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
365 _constant: index4MSB SDL_PIXELFORMAT_INDEX4MSB
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
366 _constant: index8 SDL_PIXELFORMAT_INDEX8
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
367 _constant: rgb332 SDL_PIXELFORMAT_RGB332
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
368 _constant: rgb444 SDL_PIXELFORMAT_RGB444
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
369 _constant: rgb555 SDL_PIXELFORMAT_RGB555
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
370 _constant: bgr555 SDL_PIXELFORMAT_BGR555
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
371 _constant: argb4444 SDL_PIXELFORMAT_ARGB4444
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
372 _constant: bgra4444 SDL_PIXELFORMAT_BGRA4444
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
373 _constant: argb1555 SDL_PIXELFORMAT_ARGB1555
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
374 _constant: rgba5551 SDL_PIXELFORMAT_RGBA5551
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
375 _constant: abgr1555 SDL_PIXELFORMAT_ABGR1555
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
376 _constant: bgra5551 SDL_PIXELFORMAT_BGRA5551
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
377 _constant: rgb565 SDL_PIXELFORMAT_RGB565
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
378 _constant: bgr565 SDL_PIXELFORMAT_BGR565
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
379 _constant: rgb24 SDL_PIXELFORMAT_RGB24
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
380 _constant: bgr24 SDL_PIXELFORMAT_BGR24
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
381 _constant: rgb888 SDL_PIXELFORMAT_RGB888
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
382 _constant: rgbx8888 SDL_PIXELFORMAT_RGBX8888
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
383 _constant: bgr888 SDL_PIXELFORMAT_BGR888
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
384 _constant: bgrx8888 SDL_PIXELFORMAT_BGRX8888
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
385 _constant: argb8888 SDL_PIXELFORMAT_ARGB8888
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
386 _constant: rgba8888 SDL_PIXELFORMAT_RGBA8888
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
387 _constant: abgr8888 SDL_PIXELFORMAT_ABGR8888
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
388 _constant: bgra8888 SDL_PIXELFORMAT_BGRA8888
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
389 _constant: argb2101010 SDL_PIXELFORMAT_ARGB2101010
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
390 _constant: yv12 SDL_PIXELFORMAT_YV12
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
391 _constant: iyuv SDL_PIXELFORMAT_IYUV
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
392 _constant: yuy2 SDL_PIXELFORMAT_YUY2
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
393 _constant: uyvy SDL_PIXELFORMAT_UYVY
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
394 _constant: yvyu SDL_PIXELFORMAT_YVYU
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
395 }
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
396
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
397 _blendModes <- #{
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
398 _constant: none SDL_BLENDMODE_NONE
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
399 _constant: blend SDL_BLENDMODE_BLEND
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
400 _constant: add SDL_BLENDMODE_ADD
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
401 _constant: mod SDL_BLENDMODE_MOD
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
402 }
291
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
403
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
404 _eventConstructors <- dict hash
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
405 _eventConstructors set: (_events window) :typ tstamp eventPtr {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
406 _helper populateWindowEvent: eventPtr #{
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
407 type <- typ
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
408 timeStamp <- tstamp
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
409 windowID <- 0u32
332
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
410 event <- 0u32
291
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
411 data1 <- 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
412 data2 <- 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
413 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
414 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
415 keyEvent <- :typ tstamp eventPtr {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
416 _helper populateKeyEvent: eventPtr #{
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
417 type <- typ
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
418 timeStamp <- tstamp
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
419 windowID <- 0u32
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
420 pressed? <- false
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
421 repeat <- 0u8
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
422 scanCode <- 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
423 keyCode <- 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
424 mod <- 0u16
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
425 _constant: scanCodeMask SDLK_SCANCODE_MASK
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
426 keyChar <- {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
427 if: (keyCode and (self scanCodeMask)) = 0 {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
428 keyCode utf8
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
429 } else: {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
430 ""
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
431 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
432 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
433 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
434 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
435 _eventConstructors set: (_events keyDown) keyEvent
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
436 _eventConstructors set: (_events keyUp) keyEvent
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
437
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
438 mouseButtonEvent <- :typ tstamp eventPtr {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
439 _helper populateMouseButtonEvent: eventPtr #{
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
440 type <- typ
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
441 timeStamp <- tstamp
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
442 windowID <- 0u32
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
443 mouseID <- 0u32
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
444 button <- 0u8
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
445 pressed? <- false
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
446 clicks <- 0u8
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
447 x <- 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
448 y <- 0
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
449 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
450 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
451 _eventConstructors set: (_events mouseDown) mouseButtonEvent
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
452 _eventConstructors set: (_events mouseUp) mouseButtonEvent
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
453
293
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
454 _eventConstructors set: (_events mouseMotion) :typ tstamp eventPtr {
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
455 _helper populateMouseMotionEvent: eventPtr #{
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
456 type <- typ
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
457 timeStamp <- tstamp
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
458 windowID <- 0u32
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
459 mouseID <- 0u32
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
460 buttonState <- 0u32
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
461 x <- 0
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
462 y <- 0
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
463 xRel <- 0
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
464 yRel <- 0
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
465 }
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
466 }
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
467
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
468 /*
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
469 _eventConstructors set: (_events mouseWheel) :type tstamp eventPtr {
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
470 _helper populateMouseWheelEvent: eventPtr #{
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
471 type <- typ
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
472 timeStamp <- tstamp
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
473 windowID <- 0u32
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
474 mouseID <- 0u32
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
475 x <- 0
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
476 y <- 0
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
477 }
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
478 }
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
479 */
2b045d5b673b Add binding for sdl mouse motion event
Michael Pavone <pavone@retrodev.com>
parents: 291
diff changeset
480
279
eb83863fd33e Store renderer pointer in texture object since the texture can only be used with the renderer it was created with
Michael Pavone <pavone@retrodev.com>
parents: 278
diff changeset
481 _makeTexture <- :rendptr texptr {
278
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
482 #{
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
483 includeSystemHeader: "SDL.h"
279
eb83863fd33e Store renderer pointer in texture object since the texture can only be used with the renderer it was created with
Michael Pavone <pavone@retrodev.com>
parents: 278
diff changeset
484 llProperty: renderer withType: (SDL_Renderer ptr)
278
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
485 llProperty: texture withType: (SDL_Texture ptr)
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
486 llMessage: opaque withVars: {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
487 ptr <- cpointer ptr
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
488 } andCode: {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
489 ptr <- make_object: (addr_of: cpointer_meta) NULL 0
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
490 ptr val!: texture
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
491 ptr
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
492 }
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
493 llMessage: _ptr_init withVars: {
279
eb83863fd33e Store renderer pointer in texture object since the texture can only be used with the renderer it was created with
Michael Pavone <pavone@retrodev.com>
parents: 278
diff changeset
494 rendptr <- cpointer ptr
eb83863fd33e Store renderer pointer in texture object since the texture can only be used with the renderer it was created with
Michael Pavone <pavone@retrodev.com>
parents: 278
diff changeset
495 texptr <- cpointer ptr
eb83863fd33e Store renderer pointer in texture object since the texture can only be used with the renderer it was created with
Michael Pavone <pavone@retrodev.com>
parents: 278
diff changeset
496 } andCode: :rendptr texptr{
eb83863fd33e Store renderer pointer in texture object since the texture can only be used with the renderer it was created with
Michael Pavone <pavone@retrodev.com>
parents: 278
diff changeset
497 renderer <- rendptr val
eb83863fd33e Store renderer pointer in texture object since the texture can only be used with the renderer it was created with
Michael Pavone <pavone@retrodev.com>
parents: 278
diff changeset
498 texture <- texptr val
278
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
499 self
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
500 }
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
501
279
eb83863fd33e Store renderer pointer in texture object since the texture can only be used with the renderer it was created with
Michael Pavone <pavone@retrodev.com>
parents: 278
diff changeset
502 llMessage: copy withVars: {
278
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
503 intret <- obj_int32 ptr
279
eb83863fd33e Store renderer pointer in texture object since the texture can only be used with the renderer it was created with
Michael Pavone <pavone@retrodev.com>
parents: 278
diff changeset
504 } andCode: {
278
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
505 intret <- make_object: (addr_of: obj_int32_meta) NULL 0
279
eb83863fd33e Store renderer pointer in texture object since the texture can only be used with the renderer it was created with
Michael Pavone <pavone@retrodev.com>
parents: 278
diff changeset
506 intret num!: (SDL_RenderCopy: renderer texture NULL NULL)
278
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
507 intret
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
508 }
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
509
283
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
510 llMessage: copyTo withVars: {
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
511 dst <- object ptr
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
512 dstOpaque <- cpointer ptr
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
513 intret <- obj_int32 ptr
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
514 } andCode: :dst {
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
515 dstOpaque <- (mcall: _rectPointer 1 dst) castTo: (cpointer ptr)
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
516 intret <- make_object: (addr_of: obj_int32_meta) NULL 0
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
517 intret num!: (SDL_RenderCopy: renderer texture NULL (dstOpaque val))
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
518 intret
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
519 }
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
520
284
99c18127da04 Add another SDL_RenderCopy binding in the form of copyRect:To
Michael Pavone <pavone@retrodev.com>
parents: 283
diff changeset
521 llMessage: copyRect:To withVars: {
99c18127da04 Add another SDL_RenderCopy binding in the form of copyRect:To
Michael Pavone <pavone@retrodev.com>
parents: 283
diff changeset
522 src <- object ptr
99c18127da04 Add another SDL_RenderCopy binding in the form of copyRect:To
Michael Pavone <pavone@retrodev.com>
parents: 283
diff changeset
523 dst <- object ptr
99c18127da04 Add another SDL_RenderCopy binding in the form of copyRect:To
Michael Pavone <pavone@retrodev.com>
parents: 283
diff changeset
524 srcOpaque <- cpointer ptr
99c18127da04 Add another SDL_RenderCopy binding in the form of copyRect:To
Michael Pavone <pavone@retrodev.com>
parents: 283
diff changeset
525 dstOpaque <- cpointer ptr
99c18127da04 Add another SDL_RenderCopy binding in the form of copyRect:To
Michael Pavone <pavone@retrodev.com>
parents: 283
diff changeset
526 intret <- obj_int32 ptr
99c18127da04 Add another SDL_RenderCopy binding in the form of copyRect:To
Michael Pavone <pavone@retrodev.com>
parents: 283
diff changeset
527 } andCode: :src :dst {
99c18127da04 Add another SDL_RenderCopy binding in the form of copyRect:To
Michael Pavone <pavone@retrodev.com>
parents: 283
diff changeset
528 srcOpaque <- (mcall: _rectPointer 1 src) castTo: (cpointer ptr)
99c18127da04 Add another SDL_RenderCopy binding in the form of copyRect:To
Michael Pavone <pavone@retrodev.com>
parents: 283
diff changeset
529 dstOpaque <- (mcall: _rectPointer 1 dst) castTo: (cpointer ptr)
99c18127da04 Add another SDL_RenderCopy binding in the form of copyRect:To
Michael Pavone <pavone@retrodev.com>
parents: 283
diff changeset
530 intret <- make_object: (addr_of: obj_int32_meta) NULL 0
99c18127da04 Add another SDL_RenderCopy binding in the form of copyRect:To
Michael Pavone <pavone@retrodev.com>
parents: 283
diff changeset
531 intret num!: (SDL_RenderCopy: renderer texture (srcOpaque val) (dstOpaque val))
99c18127da04 Add another SDL_RenderCopy binding in the form of copyRect:To
Michael Pavone <pavone@retrodev.com>
parents: 283
diff changeset
532 intret
99c18127da04 Add another SDL_RenderCopy binding in the form of copyRect:To
Michael Pavone <pavone@retrodev.com>
parents: 283
diff changeset
533 }
99c18127da04 Add another SDL_RenderCopy binding in the form of copyRect:To
Michael Pavone <pavone@retrodev.com>
parents: 283
diff changeset
534
287
b01d7c1b4edd Add binding for simple form of SDL_RenderCopyEx
Michael Pavone <pavone@retrodev.com>
parents: 285
diff changeset
535 llMessage: copyTo:rotated withVars: {
b01d7c1b4edd Add binding for simple form of SDL_RenderCopyEx
Michael Pavone <pavone@retrodev.com>
parents: 285
diff changeset
536 dst <- object ptr
b01d7c1b4edd Add binding for simple form of SDL_RenderCopyEx
Michael Pavone <pavone@retrodev.com>
parents: 285
diff changeset
537 angle <- object ptr
b01d7c1b4edd Add binding for simple form of SDL_RenderCopyEx
Michael Pavone <pavone@retrodev.com>
parents: 285
diff changeset
538 dstOpaque <- cpointer ptr
b01d7c1b4edd Add binding for simple form of SDL_RenderCopyEx
Michael Pavone <pavone@retrodev.com>
parents: 285
diff changeset
539 anglef <- obj_float32 ptr
b01d7c1b4edd Add binding for simple form of SDL_RenderCopyEx
Michael Pavone <pavone@retrodev.com>
parents: 285
diff changeset
540 intret <- obj_int32 ptr
b01d7c1b4edd Add binding for simple form of SDL_RenderCopyEx
Michael Pavone <pavone@retrodev.com>
parents: 285
diff changeset
541 } andCode: :dst :angle {
b01d7c1b4edd Add binding for simple form of SDL_RenderCopyEx
Michael Pavone <pavone@retrodev.com>
parents: 285
diff changeset
542 anglef <- (mcall: f32 1 angle) castTo: (obj_float32 ptr)
b01d7c1b4edd Add binding for simple form of SDL_RenderCopyEx
Michael Pavone <pavone@retrodev.com>
parents: 285
diff changeset
543 dstOpaque <- (mcall: _rectPointer 1 dst) castTo: (cpointer ptr)
b01d7c1b4edd Add binding for simple form of SDL_RenderCopyEx
Michael Pavone <pavone@retrodev.com>
parents: 285
diff changeset
544 intret <- make_object: (addr_of: obj_int32_meta) NULL 0
b01d7c1b4edd Add binding for simple form of SDL_RenderCopyEx
Michael Pavone <pavone@retrodev.com>
parents: 285
diff changeset
545 intret num!: (SDL_RenderCopyEx: renderer texture NULL (dstOpaque val) (anglef num) NULL SDL_FLIP_NONE)
b01d7c1b4edd Add binding for simple form of SDL_RenderCopyEx
Michael Pavone <pavone@retrodev.com>
parents: 285
diff changeset
546 intret
b01d7c1b4edd Add binding for simple form of SDL_RenderCopyEx
Michael Pavone <pavone@retrodev.com>
parents: 285
diff changeset
547 }
b01d7c1b4edd Add binding for simple form of SDL_RenderCopyEx
Michael Pavone <pavone@retrodev.com>
parents: 285
diff changeset
548
318
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
549 llMessage: lockRect:with withVars: {
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
550 fun <- lambda ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
551 rectOpaque <- cpointer ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
552 pitch <- obj_int32 ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
553 bufsize <- obj_int32 ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
554 height <- obj_int32 ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
555 pixels <- cpointer ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
556 bytearr <- object ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
557 rect <- object ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
558 result <- int32_t
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
559 ret <- object ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
560 } andCode: :rect fun {
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
561 rectOpaque <- (mcall: _rectPointer 1 rect) castTo: (cpointer ptr)
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
562 pitch <- make_object: (addr_of: obj_int32_meta) NULL 0
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
563 pixels <- make_object: (addr_of: cpointer_meta) NULL 0
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
564 //TODO: Check return value
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
565 result <- SDL_LockTexture: texture (rectOpaque val) (addr_of: (pixels val)) (addr_of: (pitch num))
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
566 if: result = 0 {
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
567 height <- (mcall: h 1 rect) castTo: (obj_int32 ptr)
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
568 bufsize <- make_object: (addr_of: obj_int32_meta) NULL 0
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
569 bufsize num!: (pitch num) * (height num)
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
570 bytearr <- mcall: fromOpaque:withSize 3 bytearray pixels bufsize
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
571 ret <- ccall: fun 2 bytearr pitch
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
572 SDL_UnlockTexture: texture
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
573 //TODO: Return value?
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
574 } else: {
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
575 ret <- false
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
576 }
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
577 ret
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
578 }
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
579
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
580 llMessage: blendMode! withVars: {
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
581 omode <- object ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
582 mode <- obj_uint32 ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
583 } andCode: :omode {
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
584 mode <- (mcall: uint32 1 omode) castTo: (obj_uint32 ptr)
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
585 SDL_SetTextureBlendMode: texture (mode num)
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
586 self
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
587 }
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
588
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
589 llMessage: blendMode withVars: {
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
590 mode <- obj_uint32 ptr
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
591 } andCode: {
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
592 mode <-make_object: (addr_of: obj_uint32_meta) NULL 0
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
593 SDL_GetTextureBlendMode: texture (addr_of: (mode num))
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
594 mode
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
595 }
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
596
278
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
597 llMessage: destroy withVars: {} andCode: {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
598 SDL_DestroyTexture: texture
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
599 true
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
600 }
279
eb83863fd33e Store renderer pointer in texture object since the texture can only be used with the renderer it was created with
Michael Pavone <pavone@retrodev.com>
parents: 278
diff changeset
601 } _ptr_init: rendptr texptr
278
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
602 }
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
603
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
604 _makeSurface <- :ptr {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
605 #{
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
606 includeSystemHeader: "SDL.h"
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
607 llProperty: surface withType: (SDL_Surface ptr)
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
608 llMessage: opaque withVars: {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
609 ptr <- cpointer ptr
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
610 } andCode: {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
611 ptr <- make_object: (addr_of: cpointer_meta) NULL 0
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
612 ptr val!: surface
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
613 ptr
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
614 }
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
615 llMessage: _ptr_init withVars: {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
616 ptr <- cpointer ptr
318
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
617 } andCode: :ptr {
278
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
618 surface <- ptr val
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
619 self
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
620 }
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
621
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
622 asTexture <- :renderer {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
623 _helper createTextureFromSurface: (renderer opaque) opaque _makeTexture
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
624 }
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
625
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
626 llMessage: free withVars: {} andCode: {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
627 SDL_FreeSurface: surface
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
628 true
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
629 }
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
630 } _ptr_init: ptr
274
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
631 }
277
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
632
274
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
633 #{
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
634 includeSystemHeader: "SDL.h"
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
635 includeSystemHeader: "stdlib.h"
277
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
636
274
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
637 llMessage: init withVars: {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
638 flags <- obj_uint32 ptr
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
639 intret <- obj_int32 ptr
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
640 } andCode: :flags {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
641 intret <- make_object: (addr_of: obj_int32_meta) NULL 0
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
642 intret num!: (SDL_Init: (flags num))
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
643 if: (intret num) {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
644 atexit: SDL_Quit
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
645 }
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
646 intret
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
647 }
277
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
648
274
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
649 llMessage: initSubSystem withVars: {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
650 flags <- obj_uint32 ptr
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
651 intret <- obj_int32 ptr
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
652 } andCode: :flags {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
653 intret <- make_object: (addr_of: obj_int32_meta) NULL 0
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
654 intret num!: (SDL_InitSubSystem: (flags num))
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
655 intret
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
656 }
277
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
657
274
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
658 llMessage: quitSubSystem withVars: {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
659 flags <- obj_uint32 ptr
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
660 } andCode: :flags {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
661 SDL_QuitSubSystem: (flags num)
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
662 true
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
663 }
277
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
664
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
665 r:g:b:a <- :rc :gc :bc :ac {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
666 #{
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
667 r <- rc
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
668 g <- gc
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
669 b <- bc
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
670 a <- ac
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
671 }
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
672 }
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
673
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
674 r:g:b <- :r :g :b {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
675 r: r g: g b: b a: 255u8
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
676 }
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
677
274
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
678 createWindow:pos:size:flags <- :title :x y :w h :flags{
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
679 _helper createWindow: title x y w h flags :ptr {
277
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
680 print: (string: ptr) . "\n"
274
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
681 #{
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
682 includeSystemHeader: "SDL.h"
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
683 llProperty: window withType: (SDL_Window ptr)
277
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
684 llMessage: opaque withVars: {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
685 op <- cpointer ptr
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
686 } andCode: {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
687 op <- make_object: (addr_of: cpointer_meta) NULL 0
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
688 op val!: window
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
689 op
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
690 }
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
691
274
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
692 llMessage: _ptr_init withVars: {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
693 ptr <- cpointer ptr
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
694 } andCode: :ptr {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
695 window <- ptr val
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
696 self
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
697 }
277
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
698
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
699 renderOpts <- { _renderOpts }
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
700
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
701 createRenderer:flags <- :index :flags {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
702 _helper createRenderer: (self opaque) index flags :ptr {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
703 #{
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
704 includeSystemHeader: "SDL.h"
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
705 llProperty: renderer withType: (SDL_Renderer ptr)
278
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
706 llMessage: opaque withVars: {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
707 op <- cpointer ptr
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
708 } andCode: {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
709 op <- make_object: (addr_of: cpointer_meta) NULL 0
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
710 op val!: renderer
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
711 op
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
712 }
277
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
713 llMessage: _ptr_init withVars: {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
714 ptr <- cpointer ptr
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
715 } andCode: :ptr {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
716 renderer <- ptr val
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
717 self
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
718 }
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
719
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
720 llMessage: drawColor! withVars: {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
721 color <- object ptr
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
722 rc <- obj_uint8 ptr
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
723 gc <- obj_uint8 ptr
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
724 bc <- obj_uint8 ptr
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
725 ac <- obj_uint8 ptr
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
726 intret <- obj_int32 ptr
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
727 } andCode: :color {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
728 intret <- make_object: (addr_of: obj_int32_meta) NULL 0
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
729 rc <- (mcall: r 1 color) castTo: (obj_uint8 ptr)
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
730 gc <- (mcall: g 1 color) castTo: (obj_uint8 ptr)
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
731 bc <- (mcall: b 1 color) castTo: (obj_uint8 ptr)
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
732 ac <- (mcall: a 1 color) castTo: (obj_uint8 ptr)
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
733 intret num!: (SDL_SetRenderDrawColor: renderer (rc num) (gc num) (bc num) (ac num))
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
734 intret
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
735 }
318
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
736
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
737 createTexture:access:width:height <- :format :access :w :h {
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
738 _helper createTexture: opaque format access w h _makeTexture
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
739 }
277
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
740
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
741 llMessage: clear withVars: {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
742 intret <- obj_int32 ptr
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
743 } andCode: {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
744 intret <- make_object: (addr_of: obj_int32_meta) NULL 0
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
745 intret num!: (SDL_RenderClear: renderer)
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
746 intret
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
747 }
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
748
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
749 llMessage: present withVars: {} andCode: {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
750 SDL_RenderPresent: renderer
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
751 true
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
752 }
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
753
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
754 llMessage: destroy withVars: {} andCode: {
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
755 SDL_DestroyRenderer: renderer
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
756 true
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
757 }
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
758 } _ptr_init: ptr
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
759 }
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
760 }
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
761
274
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
762 llMessage: destroy withVars: {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
763 } andCode: {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
764 SDL_DestroyWindow: window
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
765 true
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
766 }
277
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
767 } _ptr_init: ptr
274
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
768 }
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
769 }
277
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
770
278
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
771 loadBMP <- :filename {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
772 _helper loadBMP: filename _makeSurface
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
773 }
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
774
274
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
775 llMessage: delay withVars: {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
776 ms <- obj_uint32 ptr
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
777 } andCode: :ms {
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
778 SDL_Delay: (ms num)
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
779 true
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
780 }
277
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
781
278
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
782 llMessage: clearError withVars: {} andCode: {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
783 SDL_ClearError:
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
784 true
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
785 }
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
786
283
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
787 rect:size <- :x y :w h {
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
788 getter <- macro: :propName {
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
789 quote: (llMessage: propName withVars: {
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
790 intret <- obj_int32 ptr
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
791 } andCode: {
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
792 intret <- make_object: (addr_of: obj_int32_meta) NULL 0
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
793 intret num!: ((addr_of: rect) propName)
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
794 intret
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
795 })
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
796 }
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
797 setter <- macro: :propName {
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
798 quote: (llMessage: propName withVars: {
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
799 v <- obj_int32 ptr
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
800 } andCode: :v {
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
801 (addr_of: rect) propName: (v num)
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
802 self
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
803 })
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
804 }
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
805 (((#{
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
806 llProperty: rect withType: SDL_Rect
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
807 getter: x
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
808 setter: x!
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
809 getter: y
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
810 setter: y!
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
811 getter: w
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
812 setter: w!
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
813 getter: h
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
814 setter: h!
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
815 llMessage: _rectPointer withVars: {
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
816 retptr <- cpointer ptr
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
817 } andCode: {
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
818 retptr <- make_object: (addr_of: cpointer_meta) NULL 0
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
819 retptr val!: (addr_of: (self rect))
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
820 retptr
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
821 }
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
822 } x!: x) y!: y) w!: w) h!: h
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
823 }
0ec4f1b68a38 Add copyTo method to texture that allows copying to a rectangular region on the renderer rather than stretching to fit the entire renderer
Michael Pavone <pavone@retrodev.com>
parents: 279
diff changeset
824
278
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
825 llMessage: getError withVars: {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
826 str <- string ptr
285
bb1539decd62 Fix const warning in sdl module
Michael Pavone <pavone@retrodev.com>
parents: 284
diff changeset
827 rawstr <- const: (char ptr)
278
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
828 } andCode: {
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
829 rawstr <- SDL_GetError:
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
830 str <- make_object: (addr_of: string_meta) NULL 0
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
831 str bytes!: (strlen: rawstr)
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
832 str len!: (str bytes)
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
833 str data!: (GC_MALLOC: (str bytes) + 1)
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
834 memcpy: (str data) rawstr (str bytes) + 1
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
835 str
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
836 }
1205c7a43cb4 Add bindings for SDL_ClearError, SDL_GetError, SDL_LoadBMP, SDL_CreateTextureFromSurface and a partial binding for SDL_RendererCopy
Michael Pavone <pavone@retrodev.com>
parents: 277
diff changeset
837
291
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
838 pollEvent <- {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
839 _helper pollEvent: :typ tstamp eventPtr {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
840 _eventConstructors ifget: typ :handler {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
841 handler: typ tstamp eventPtr
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
842 } else: {
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
843 //fallback event
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
844 #{
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
845 type <- typ
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
846 timeStamp <- tstamp
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
847 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
848 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
849 }
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
850 }
332
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
851
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
852 waitEvent <- {
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
853 _helper pollEvent: :typ tstamp eventPtr {
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
854 _eventConstructors ifget: typ :handler {
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
855 handler: typ tstamp eventPtr
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
856 } else: {
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
857 //fallback event
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
858 #{
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
859 type <- typ
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
860 timeStamp <- tstamp
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
861 }
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
862 }
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
863 }
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
864 }
291
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
865
274
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
866 subsystems <- { _subsystems }
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
867 windowOpts <- { _windowOpts }
291
38bbbf74b735 Initial work on event support in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 287
diff changeset
868 eventTypes <- { _events }
332
ead24192ed45 Initial work on a UI module
Michael Pavone <pavone@retrodev.com>
parents: 318
diff changeset
869 windowEventTypes <- { _windowEvents }
318
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
870 textureAccess <- { _textureAccess }
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
871 pixelFormats <- { _pixelFormats }
4c669942c30d Add bindings for SDL_CreateTexture, SDL_LockTexture, SDL_SetBlendMode and SDL_GetBlendMode in SDL module
Michael Pavone <pavone@retrodev.com>
parents: 293
diff changeset
872 blendModes <- { _blendModes }
274
a923b5b7da3d Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
873 }
277
2b58eafa360b Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents: 274
diff changeset
874 }