summaryrefslogtreecommitdiff
path: root/test/testspriteminimal.c
diff options
context:
space:
mode:
authorSam Lantinga <slouken@libsdl.org>2011-02-01 19:19:43 -0800
committerSam Lantinga <slouken@libsdl.org>2011-02-01 19:19:43 -0800
commita5a3717b17159fe1c0557ab7708ff547818cd0f5 (patch)
treebf869502d4e424097875407e0fe26631512be41b /test/testspriteminimal.c
parent379357241e0a9dcaf28e733447a6bcb0b72ecb66 (diff)
downloadsdl-a5a3717b17159fe1c0557ab7708ff547818cd0f5.tar.gz
The rendering functions take a context so it's clear what window they're drawing to. This also potentially opens to the door to multi-threaded rendering in the future.
Diffstat (limited to 'test/testspriteminimal.c')
-rw-r--r--test/testspriteminimal.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/test/testspriteminimal.c b/test/testspriteminimal.c
index 40f8525aa..4c39fac19 100644
--- a/test/testspriteminimal.c
+++ b/test/testspriteminimal.c
@@ -24,7 +24,7 @@ quit(int rc)
}
int
-LoadSprite(char *file)
+LoadSprite(char *file, SDL_Renderer *renderer)
{
SDL_Surface *temp;
@@ -60,10 +60,10 @@ LoadSprite(char *file)
}
/* Create textures from the image */
- sprite = SDL_CreateTextureFromSurface(0, temp);
+ sprite = SDL_CreateTextureFromSurface(renderer, 0, temp);
if (!sprite) {
SDL_SetColorKey(temp, 0, 0);
- sprite = SDL_CreateTextureFromSurface(0, temp);
+ sprite = SDL_CreateTextureFromSurface(renderer, 0, temp);
}
if (!sprite) {
fprintf(stderr, "Couldn't create texture: %s\n", SDL_GetError());
@@ -77,7 +77,7 @@ LoadSprite(char *file)
}
void
-MoveSprites(SDL_Window * window, SDL_Texture * sprite)
+MoveSprites(SDL_Window * window, SDL_Renderer * renderer, SDL_Texture * sprite)
{
int i;
int window_w = WINDOW_WIDTH;
@@ -85,8 +85,8 @@ MoveSprites(SDL_Window * window, SDL_Texture * sprite)
SDL_Rect *position, *velocity;
/* Draw a gray background */
- SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
- SDL_RenderClear();
+ SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF);
+ SDL_RenderClear(renderer);
/* Move the sprite, bounce at the wall, and draw */
for (i = 0; i < NUM_SPRITES; ++i) {
@@ -104,17 +104,18 @@ MoveSprites(SDL_Window * window, SDL_Texture * sprite)
}
/* Blit the sprite onto the screen */
- SDL_RenderCopy(sprite, NULL, position);
+ SDL_RenderCopy(renderer, sprite, NULL, position);
}
/* Update the screen! */
- SDL_RenderPresent();
+ SDL_RenderPresent(renderer);
}
int
main(int argc, char *argv[])
{
SDL_Window *window;
+ SDL_Renderer *renderer;
int i, done;
SDL_Event event;
@@ -127,7 +128,12 @@ main(int argc, char *argv[])
quit(2);
}
- if (LoadSprite("icon.bmp") < 0) {
+ renderer = SDL_CreateRenderer(window, -1, 0);
+ if (!renderer) {
+ quit(2);
+ }
+
+ if (LoadSprite("icon.bmp", renderer) < 0) {
quit(2);
}
@@ -155,7 +161,7 @@ main(int argc, char *argv[])
done = 1;
}
}
- MoveSprites(window, sprite);
+ MoveSprites(window, renderer, sprite);
}
quit(0);