diff options
author | P. J. McDermott <pj@pehjota.net> | 2021-03-24 10:07:47 (EDT) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2021-03-24 10:07:47 (EDT) |
commit | 103b5c0eea22b6570ada8ae9200ab069466bd1b3 (patch) | |
tree | 6558a9d179927e4c68385819bb1cefc8e127344e /src/map.c | |
parent | f1de5e0a816846e82aabc46639f1b59dec09638b (diff) | |
download | dodge-balls-103b5c0eea22b6570ada8ae9200ab069466bd1b3.zip dodge-balls-103b5c0eea22b6570ada8ae9200ab069466bd1b3.tar.gz dodge-balls-103b5c0eea22b6570ada8ae9200ab069466bd1b3.tar.bz2 |
map: Copy the tileset texture to the layer texture
Not the layer texture to the layer texture. That's just stupid.
Diffstat (limited to 'src/map.c')
-rw-r--r-- | src/map.c | 17 |
1 files changed, 7 insertions, 10 deletions
@@ -507,7 +507,7 @@ _db_tmx_map_start(void *pv, const char *name, const char **attr) static int _db_map_render_layer(struct db_map *map, struct db_map_layer *layer, - SDL_Renderer *renderer, SDL_Texture *texture) + SDL_Renderer *renderer) { int i; int gid; @@ -553,8 +553,11 @@ _db_map_render_layer(struct db_map *map, struct db_map_layer *layer, tile_rect.w, tile_rect.h, tile_rect.x, tile_rect.y, layer_rect.x, layer_rect.y); - if (SDL_RenderCopy(renderer, texture, - &tile_rect, &layer_rect) != 0) { + if (SDL_RenderCopy(renderer, db_tileset_texture( + tileset, + renderer), + &tile_rect, &layer_rect) + != 0) { db_err("Failed to copy texture (%s)", SDL_GetError()); return -1; @@ -574,16 +577,10 @@ _db_map_render_layer(struct db_map *map, struct db_map_layer *layer, SDL_Texture * db_map_render(struct db_map *map, SDL_Renderer *renderer) { - struct db_tileset *tileset; SDL_Texture *texture; SDL_Texture *old_target; struct db_map_layer *layer; - for (tileset = map->tileset_head; tileset != NULL; - tileset = db_tileset_next(tileset)) { - db_tileset_create_texture(tileset, renderer); - } - texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, map->w, map->h); old_target = SDL_GetRenderTarget(renderer); @@ -594,7 +591,7 @@ db_map_render(struct db_map *map, SDL_Renderer *renderer) } for (layer = map->layer_head; layer != NULL; layer = layer->next) { - if (_db_map_render_layer(map, layer, renderer, texture) != 0) { + if (_db_map_render_layer(map, layer, renderer) != 0) { return NULL; } } |