#include "level.h" texture_ptr Level::render(SDL_Renderer* ren, Layer layer) const { texture_ptr canvas( SDL_CreateTexture( ren, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, WINDOW_SIZE.w(), WINDOW_SIZE.h())); SDL_SetRenderTarget(ren, canvas.get()); for (size_t y = 0; y < size_.h(); y++) { for (size_t x = 0; x < size_.w(); x++) { if (layer == Layer::map) { int val = 255 - at(x, y) * 10; SDL_SetRenderDrawColor(ren, val, val, val, 255); SDL_Rect rect { static_cast(x * TILE_SIZE.w()), static_cast(y * TILE_SIZE.h()), TILE_SIZE.w(), TILE_SIZE.h() }; SDL_RenderFillRect(ren, &rect); } } } SDL_SetRenderTarget(ren, nullptr); return canvas; }