Mercurial > repos > tabletprog
annotate samples/sdl.tp @ 289:befaefdfcd8a
Make sure that true and false modules are initialized before anything else and that the list module is initialized before any modules besides true and false
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 22 Jul 2014 23:32:49 -0700 |
parents | b01d7c1b4edd |
children | 38bbbf74b735 |
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 import: [ |
a923b5b7da3d
Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
3 video |
a923b5b7da3d
Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
4 timer |
a923b5b7da3d
Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
5 ] from: (sdl subsystems) |
a923b5b7da3d
Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
6 main <- { |
a923b5b7da3d
Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
7 if: (sdl init: (video or timer)) = 0 { |
a923b5b7da3d
Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
8 (sdl createWindow: "SDL Test" pos: 0 0 size: 640 480 flags: 0u32) value: :window { |
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
|
9 (window createRenderer: -1 flags: ((window renderOpts) accelerated)) value: :render { |
2b58eafa360b
Add SDL bindings for creating a renderer, clearing it, presenting it and destroying it
Michael Pavone <pavone@retrodev.com>
parents:
274
diff
changeset
|
10 render drawColor!: (sdl r: 0u8 g: 0u8 b: 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
|
11 render clear |
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
|
12 (sdl loadBMP: "944.bmp") value: :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
|
13 (surf asTexture: render) value: :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
|
14 sdl clearError |
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
|
15 if: (tex copy) != 0 { |
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
|
16 print: "Failed to copy texture to renderer: " . (sdl getError) . "\n" |
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
|
17 } |
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
|
18 surf free |
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
|
19 tex copyTo: (sdl rect: 160 120 size: 320 224) |
284
99c18127da04
Add another SDL_RenderCopy binding in the form of copyRect:To
Michael Pavone <pavone@retrodev.com>
parents:
283
diff
changeset
|
20 tex copyRect: (sdl rect: 80 60 size: 160 120) To: (sdl rect: 40 30 size: 320 224) |
287
b01d7c1b4edd
Add binding for simple form of SDL_RenderCopyEx
Michael Pavone <pavone@retrodev.com>
parents:
284
diff
changeset
|
21 tex copyTo: (sdl rect: 320 240 size: 320 224) rotated: 45.0 |
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
|
22 render present |
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
|
23 sdl delay: 3000u32 |
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
|
24 tex destroy |
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
|
25 } none: { |
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
|
26 surf free |
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
|
27 } |
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
|
28 } none: { |
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
|
29 } |
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
|
30 render destroy |
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 } none: { |
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 print: "Failed to create renderer\n" |
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 } |
274
a923b5b7da3d
Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
34 window destroy |
a923b5b7da3d
Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
35 } none: { |
a923b5b7da3d
Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
36 print: "Failed to create window\n" |
a923b5b7da3d
Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
37 1 |
a923b5b7da3d
Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
38 } |
a923b5b7da3d
Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
39 } else: { |
a923b5b7da3d
Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
40 print: "Failed to initialize SDL\n" |
a923b5b7da3d
Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
41 1 |
a923b5b7da3d
Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
42 } |
a923b5b7da3d
Initial work on an SDL2 binding
Michael Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
43 } |
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
|
44 } |