Mercurial > sdl-ios-xcode
changeset 4804:b33752266d8f
Boxed up the rendering loop and turned it into a redraw/update function. This makes things way more responsive, usable again.
author | Eli Gottlieb <eligottlieb@gmail.com> |
---|---|
date | Sun, 18 Jul 2010 23:51:47 -0400 |
parents | a4c1df880690 |
children | de3b3455f8ec |
files | test/testshape.c |
diffstat | 1 files changed, 16 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/test/testshape.c Sun Jul 18 23:36:39 2010 -0400 +++ b/test/testshape.c Sun Jul 18 23:51:47 2010 -0400 @@ -11,6 +11,19 @@ #define SHAPED_WINDOW_Y 150 #define SHAPED_WINDOW_DIMENSION 640 +void render(SDL_Window* window,SDL_Texture *texture,SDL_Rect texture_dimensions) { + SDL_SelectRenderer(window); + + //Clear render-target to blue. + SDL_SetRenderDrawColor(0x00,0x00,0xff,0xff); + SDL_RenderClear(); + + //Render the texture. + SDL_RenderCopy(texture,&texture_dimensions,&texture_dimensions); + + SDL_RenderPresent(); +} + int main(int argc,char** argv) { if(argc < 2) { printf("SDL_Shape requires at least one bitmap file as argument.\n"); @@ -93,6 +106,7 @@ SDL_QueryTexture(textures[current_picture],&format,&access,&texture_dimensions.w,&texture_dimensions.h); SDL_SetWindowSize(window,texture_dimensions.w,texture_dimensions.h); SDL_SetWindowShape(window,pictures[current_picture],&mode); + render(window,textures[current_picture],texture_dimensions); while(should_exit == 0) { event_pending = SDL_PollEvent(&event); if(event_pending == 1) { @@ -109,22 +123,13 @@ SDL_QueryTexture(textures[current_picture],&format,&access,&texture_dimensions.w,&texture_dimensions.h); SDL_SetWindowSize(window,texture_dimensions.w,texture_dimensions.h); SDL_SetWindowShape(window,pictures[current_picture],&mode); + render(window,textures[current_picture],texture_dimensions); + } if(event.type == SDL_QUIT) should_exit = 1; event_pending = 0; } - - SDL_SelectRenderer(window); - - //Clear render-target to blue. - SDL_SetRenderDrawColor(0x00,0x00,0xff,0xff); - SDL_RenderClear(); - - //Render the texture. - SDL_RenderCopy(textures[current_picture],&texture_dimensions,&texture_dimensions); - - SDL_RenderPresent(); } //Free the textures.