annotate samples/sdl.tp @ 287:b01d7c1b4edd

Add binding for simple form of SDL_RenderCopyEx
author Michael Pavone <pavone@retrodev.com>
date Tue, 22 Jul 2014 18:39:00 -0700
parents 99c18127da04
children 38bbbf74b735
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 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 }