Compare commits

..

3 Commits

Author SHA1 Message Date
Ulysse Cura 9e151e2f3f Fixed texture blend type on linux. 2026-09-29 13:34:34 +02:00
Ulysse Cura 825c768fab Enabling vsync. 2026-09-29 13:34:25 +02:00
Ulysse Cura 9b04988cfa Fixed strict overflow issues in camera code. 2026-09-29 13:34:13 +02:00
4 changed files with 15 additions and 8 deletions

View File

@ -23,15 +23,15 @@ void camera_update(void)
{ {
if(game.camera.tracking_pos) if(game.camera.tracking_pos)
{ {
game.camera.view_rect.x = game.camera.tracking_pos->x + game.camera.tracking_center_offset.x - game.camera.view_rect.w / 2; game.camera.view_rect.x = (int)game.camera.tracking_pos->x + game.camera.tracking_center_offset.x - game.camera.view_rect.w / 2;
game.camera.view_rect.y = game.camera.tracking_pos->y + game.camera.tracking_center_offset.y - game.camera.view_rect.h / 2; game.camera.view_rect.y = (int)game.camera.tracking_pos->y + game.camera.tracking_center_offset.y - game.camera.view_rect.h / 2;
} }
if(game.map) if(game.map)
{ {
if(game.camera.view_rect.w > game.map->width * TILE_SIZE) if(game.camera.view_rect.w > game.map->width * TILE_SIZE)
{ {
game.camera.view_rect.x = game.map->width * TILE_SIZE / 2 - game.camera.view_rect.w / 2; game.camera.view_rect.x = (game.map->width * TILE_SIZE - game.camera.view_rect.w) / 2;
} }
else else
{ {
@ -47,7 +47,7 @@ void camera_update(void)
if(game.camera.view_rect.h > game.map->height * TILE_SIZE) if(game.camera.view_rect.h > game.map->height * TILE_SIZE)
{ {
game.camera.view_rect.y = game.map->height * TILE_SIZE / 2 - game.camera.view_rect.h / 2; game.camera.view_rect.y = (game.map->height * TILE_SIZE - game.camera.view_rect.h) / 2;
} }
else else
{ {

View File

@ -49,7 +49,7 @@ inline int display_init(void)
return EXIT_FAILURE; return EXIT_FAILURE;
} }
if(!SDL_SetRenderVSync(game.display.renderer, SDL_RENDERER_VSYNC_ADAPTIVE)) if(!SDL_SetRenderVSync(game.display.renderer, 1))
{ {
error_printf("Failed to activate adaptative vsync : %s", SDL_GetError()); error_printf("Failed to activate adaptative vsync : %s", SDL_GetError());
return EXIT_FAILURE; return EXIT_FAILURE;

View File

@ -54,6 +54,13 @@ texture_t *load_texture(void)
} }
SDL_DestroySurface(tmp_surface); SDL_DestroySurface(tmp_surface);
if(!SDL_SetTextureScaleMode(texture, SDL_SCALEMODE_NEAREST))
{
error_printf("Failed to set texture scale mode.");
return NULL;
}
return texture; return texture;
failure: failure:

View File

@ -46,13 +46,13 @@ inline int display_init(void)
error_printf("Failed to create renderer : %s", SDL_GetError()); error_printf("Failed to create renderer : %s", SDL_GetError());
return EXIT_FAILURE; return EXIT_FAILURE;
} }
/*
if(!SDL_SetRenderVSync(game.display.renderer, SDL_RENDERER_VSYNC_ADAPTIVE)) if(!SDL_SetRenderVSync(game.display.renderer, 1))
{ {
error_printf("Failed to activate adaptative vsync : %s", SDL_GetError()); error_printf("Failed to activate adaptative vsync : %s", SDL_GetError());
return EXIT_FAILURE; return EXIT_FAILURE;
} }
*/
if(!SDL_SetRenderDrawBlendMode(game.display.renderer, SDL_BLENDMODE_BLEND)) if(!SDL_SetRenderDrawBlendMode(game.display.renderer, SDL_BLENDMODE_BLEND))
{ {
error_printf("Failed to set renderer draw blend mode : %s", SDL_GetError()); error_printf("Failed to set renderer draw blend mode : %s", SDL_GetError());