diff options
Diffstat (limited to 'src/game.c')
| -rw-r--r-- | src/game.c | 49 |
1 files changed, 40 insertions, 9 deletions
@@ -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) |
