From c2cf22bbfb26f0f778ded8be82ddb16816b8c8f0 Mon Sep 17 00:00:00 2001 From: nathansmith117 Date: Wed, 5 Mar 2025 08:40:57 -0700 Subject: More sliders --- src/sldj.c | 46 ++++++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 18 deletions(-) (limited to 'src/sldj.c') diff --git a/src/sldj.c b/src/sldj.c index 85b18fe..cf52fde 100644 --- a/src/sldj.c +++ b/src/sldj.c @@ -24,6 +24,8 @@ void initSldj(Sldj* sldj) // Gui. resizeGui(sldj); sldj->gui.fpsSliderValue = (float)DEFAULT_FRAME_RATE; + sldj->gui.widthSliderValue = (float)DEFAULT_SCREEN_WIDTH; + sldj->gui.heightSliderValue = (float)DEFAULT_SCREEN_HEIGHT; } void handleInput(Sldj* sldj) @@ -40,23 +42,14 @@ void handleInput(Sldj* sldj) } } -void drawGui(Sldj* sldj) +void updateGui(Sldj* sldj) { - char buf[15]; // Used for many things. - // Fps. float oldFps = sldj->gui.fpsSliderValue; - - if (oldFps > FRAME_RATE_MAX) - { - strncpy(buf, "unlimited", sizeof(buf)); - } - else - { - snprintf(buf, sizeof(buf), "%d", (int)oldFps); - } - GuiSlider(sldj->gui.fpsSlider, "fps", buf, &sldj->gui.fpsSliderValue, FRAME_RATE_MIN, FRAME_RATE_MAX + 1); + GuiSlider(sldj->gui.fpsSlider, "fps", + oldFps > FRAME_RATE_MAX ? "Unlimited" : TextFormat("%d", (int)oldFps), + &sldj->gui.fpsSliderValue, FRAME_RATE_MIN, FRAME_RATE_MAX + 1); // Fps has changed. if (sldj->gui.fpsSliderValue != oldFps) @@ -66,6 +59,18 @@ void drawGui(Sldj* sldj) SetTargetFPS(sldj->targetFps); } + + // Width and height. + GuiSlider(sldj->gui.widthSlider, "Width", TextFormat("%d", (int)sldj->gui.widthSliderValue), + &sldj->gui.widthSliderValue, SCREEN_MIN, SCREEN_MAX); + GuiSlider(sldj->gui.heightSlider, "Height", TextFormat("%d", (int)sldj->gui.heightSliderValue), + &sldj->gui.heightSliderValue, SCREEN_MIN, SCREEN_MAX); + + if (GuiButton(sldj->gui.viewportButton, "Reset view")) + { + resetViewport(sldj, sldj->gui.widthSliderValue, sldj->gui.heightSliderValue); + resizeGui(sldj); + } } void updateSldj(Sldj* sldj) @@ -114,7 +119,7 @@ void updateSldj(Sldj* sldj) ); DrawFPS(0, viewport.height); - drawGui(sldj); + updateGui(sldj); EndDrawing(); } @@ -132,14 +137,19 @@ void resizeGui(Sldj* sldj) Rectangle view = sldj->viewPortRect; // Starting place for ui. - float startX = view.x + view.width + 5.0; + float startX = view.x + view.width + 40.0; float startY = 5.0; // Standard sizes unit for gui elements. float guiWidth = 50.0; float guiHeight = 25.0; + float sliderWidth = guiWidth * 3.0; + + sldj->gui.fpsSlider = (Rectangle){startX, startY, sliderWidth, guiHeight}; - sldj->gui.fpsSlider = (Rectangle){startX + 20.0, startY, guiWidth * 3.0, guiHeight}; + sldj->gui.widthSlider = (Rectangle){startX, startY + guiHeight, sliderWidth, guiHeight}; + sldj->gui.heightSlider = (Rectangle){startX, startY + guiHeight * 2.0, sliderWidth, guiHeight}; + sldj->gui.viewportButton = (Rectangle){startX, startY + guiHeight * 3.0, guiWidth * 2.0, guiHeight}; } void resetViewportRect(Sldj* sldj, float scale) @@ -148,7 +158,7 @@ void resetViewportRect(Sldj* sldj, float scale) sldj->viewPortRect = (Rectangle){0.0, 0.0, texture.width * scale, texture.height * scale}; } -void resetViewport(Sldj* sldj, int width, int height, float scale) +void resetViewport(Sldj* sldj, int width, int height) { UnloadRenderTexture(sldj->viewport); sldj->viewport = LoadRenderTexture(width, height); @@ -157,7 +167,7 @@ void resetViewport(Sldj* sldj, int width, int height, float scale) sldj->xCount = UINT16_MAX / width; sldj->yCount = UINT16_MAX / height; - resetViewportRect(sldj, scale); + resetViewportRect(sldj, 1.0); } void reloadScriptContext(Sldj* sldj) -- cgit v1.2.3