diff options
author | Sam Lantinga <slouken@libsdl.org> | 2011-02-01 19:19:43 -0800 |
---|---|---|
committer | Sam Lantinga <slouken@libsdl.org> | 2011-02-01 19:19:43 -0800 |
commit | a5a3717b17159fe1c0557ab7708ff547818cd0f5 (patch) | |
tree | bf869502d4e424097875407e0fe26631512be41b /test/testspriteminimal.c | |
parent | 379357241e0a9dcaf28e733447a6bcb0b72ecb66 (diff) | |
download | sdl-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.c | 26 |
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); |