tibia_alpha/render.c

46 lines
1.2 KiB
C

//
// Created by rov on 12/26/25.
//
#include "render.h"
#include "window.h"
void Render_Frame(const App_t *app) {
SDL_Renderer *renderer = Window_GetRenderer();
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
SDL_RenderClear(renderer);
Render_MainWindowBackground(app);
SDL_RenderPresent(renderer);
}
void Render_MainWindowBackground(const App_t *app) {
SDL_Renderer *renderer = Window_GetRenderer();
if (app->bitmap.marbleTexture == NULL) {
SDL_SetRenderDrawColor(renderer, 64, 64, 64, 255);
SDL_RenderClear(renderer);
return;
}
const int TILE_SIZE = 128;
// Calculate how many tiles we need to cover the screen
const int tilesX = app->metrics.screenWidth / TILE_SIZE + 1;
const int tilesY = app->metrics.screenHeight / TILE_SIZE + 1;
for (int y = 0; y < tilesY; y++) {
for (int x = 0; x < tilesX; x++) {
SDL_FRect destRect = {
(float) (x * TILE_SIZE),
(float) (y * TILE_SIZE),
(float) TILE_SIZE,
(float) TILE_SIZE
};
SDL_RenderTexture(renderer, app->bitmap.marbleTexture, NULL, &destRect);
}
}
}