diff --git a/src/client/client.c b/src/client/client.c index bde5efb..4026c47 100644 --- a/src/client/client.c +++ b/src/client/client.c @@ -91,9 +91,7 @@ SDL_AppIterate (void *appstate) { UNUSED (appstate); - GfxContext_prerender (gfx_ctx); - GfxContext_render_World (gfx_ctx, test_world); - GfxContext_postrender (gfx_ctx); + GfxContext_render (gfx_ctx); return SDL_APP_CONTINUE; } diff --git a/src/client/gfx_context.c b/src/client/gfx_context.c index 1bdb1f8..3b92ab4 100644 --- a/src/client/gfx_context.c +++ b/src/client/gfx_context.c @@ -46,15 +46,16 @@ GfxContext_new () } void -GfxContext_prerender (GfxContext *self) +GfxContext_render (GfxContext *self) { SDL_SetRenderDrawColor (self->renderer, 0, 0, 0, 255); SDL_RenderClear (self->renderer); -} -void -GfxContext_postrender (GfxContext *self) -{ + if (self->world_texture) + { + SDL_RenderTexture (self->renderer, self->world_texture, NULL, NULL); + } + SDL_RenderPresent (self->renderer); } @@ -122,18 +123,3 @@ GfxContext_cache_World (GfxContext *self, World *world) SDL_SetRenderTarget (self->renderer, old_target); } - -void -GfxContext_render_World (GfxContext *self, World *world) -{ - UNUSED (world); - - if (!self->world_texture) - { - g_warning ("No world texture present"); - return; - } - - SDL_FRect dest = { 0, 0, 800, 600 }; - SDL_RenderTexture (self->renderer, self->world_texture, NULL, &dest); -} diff --git a/src/client/gfx_context.h b/src/client/gfx_context.h index 1403524..aea0259 100644 --- a/src/client/gfx_context.h +++ b/src/client/gfx_context.h @@ -33,14 +33,15 @@ typedef struct GfxContext SDL_Renderer *renderer; SDL_Texture *world_texture; /* Generated once per every game. */ - SDL_Texture *player_texture; /* Probably changes every tick. */ + SDL_Texture *player_texture; /* Probably changes every tick, but + only parts of it could be modified, + and it could be done + concurrently. */ } GfxContext; GfxContext *GfxContext_new (); -void GfxContext_prerender (GfxContext * self); -void GfxContext_postrender (GfxContext * self); +void GfxContext_render (GfxContext *self); void GfxContext_free (GfxContext * self); void GfxContext_cache_World (GfxContext * self, World * world); -void GfxContext_render_World (GfxContext * self, World * world);