From 5f402fc99a19d7d73ba75f632aed5cbef7e3920a Mon Sep 17 00:00:00 2001 From: nathan Date: Mon, 20 Oct 2025 04:36:48 -0600 Subject: Fuck ultra wide --- src/game.c | 49 ++++++++++++++++++++++++++++++++++++++++--------- src/game.h | 4 ++++ src/settings.c | 2 +- 3 files changed, 45 insertions(+), 10 deletions(-) diff --git a/src/game.c b/src/game.c index 6166ac7..913be9c 100644 --- a/src/game.c +++ b/src/game.c @@ -30,6 +30,19 @@ void resetScreenScale(Game* game) width, height }; + + // Fuck ultra-wide. + game->screen.ultraWideMode = renderWidth / renderHeight >= MAX_ASPECT; + + if (game->screen.ultraWideMode) + { + game->screen.destination = (Rectangle){ + renderWidth / 2.0, + renderHeight / 2.0, + renderWidth, + renderHeight + }; + } } void initGame(Game* game) @@ -78,13 +91,33 @@ void drawGameScreen(Game* game) { Texture texture = game->screen.render.texture; - DrawTexturePro( - texture, - (Rectangle){0.0, 0.0, texture.width, -texture.height}, - game->screen.destination, - (Vector2){0.0, 0.0}, - 0.0, - WHITE); + if (game->screen.ultraWideMode) + { + BeginShaderMode(game->assets.shaders[POSTPROCESSING_SHADER]); + DrawTexturePro( + texture, + (Rectangle){0.0, 0.0, texture.width, -texture.height}, + game->screen.destination, + (Vector2){GetRenderWidth() / 2.0, GetRenderHeight() / 2.0}, + (int)(GetTime() * ULTRA_WIDE_SPIN_SPEED) % 360, + WHITE); + EndShaderMode(); + + DrawText("FUCK ULTRA WIDE FUCK ULTRA WIDE FUCK ULTRA WIDE FUCK ULTRA WIDE FUCK ULTRA WIDE FUCK ULTRA WIDE FUCK ULTRA WIDE FUCK ULTRA WIDE", + 0.0, 0.0, 50, RED); + } + else + { + BeginShaderMode(game->assets.shaders[POSTPROCESSING_SHADER]); + DrawTexturePro( + texture, + (Rectangle){0.0, 0.0, texture.width, -texture.height}, + game->screen.destination, + (Vector2){0.0, 0.0}, + 0.0, + WHITE); + EndShaderMode(); + } } void updateGameScene(Game* game) @@ -108,9 +141,7 @@ void updateGameScene(Game* game) ClearBackground(BLACK); - BeginShaderMode(game->assets.shaders[POSTPROCESSING_SHADER]); drawGameScreen(game); - EndShaderMode(); } void handleGameResize(Game* game) diff --git a/src/game.h b/src/game.h index d75fd4a..14d6502 100644 --- a/src/game.h +++ b/src/game.h @@ -8,6 +8,9 @@ #ifndef GAME_H #define GAME_H +#define MAX_ASPECT 2.0 // Fuck ultra-wide. +#define ULTRA_WIDE_SPIN_SPEED 50.0 + typedef enum { MAIN_MENU_SCENE, GAME_SCENE @@ -25,6 +28,7 @@ struct Game { RenderTexture render; float scale; Rectangle destination; + bool ultraWideMode; } screen; }; diff --git a/src/settings.c b/src/settings.c index 55ebb9c..159cb6a 100644 --- a/src/settings.c +++ b/src/settings.c @@ -9,7 +9,7 @@ Settings defaultSettings() .screenHeight = 447, .edgeDetectionWidth = 80.0, .edgeDetectionHeight = 60.0, - .edgeDetectionFactor = 0.1, + .edgeDetectionFactor = 0.11, .gamma = 0.6, .colorCount = 11.0, .mouseSpeed = 0.1, -- cgit v1.2.3