diff options
author | nathansmith117 <nathansmith@disroot.org> | 2025-03-05 15:40:57 +0000 |
---|---|---|
committer | nathansmith117 <nathansmith@disroot.org> | 2025-03-05 15:40:57 +0000 |
commit | c2cf22bbfb26f0f778ded8be82ddb16816b8c8f0 (patch) | |
tree | c74cd00c2c7a766f7bd263b307e3cba98c7d86d2 /src | |
parent | 449e5a9c92c1fe62dc0dd75718486b791717184f (diff) | |
download | sldj-c2cf22bbfb26f0f778ded8be82ddb16816b8c8f0.tar.gz sldj-c2cf22bbfb26f0f778ded8be82ddb16816b8c8f0.tar.bz2 sldj-c2cf22bbfb26f0f778ded8be82ddb16816b8c8f0.zip |
More sliders
Diffstat (limited to 'src')
-rw-r--r-- | src/sldj.c | 46 | ||||
-rw-r--r-- | src/sldj.h | 9 | ||||
-rw-r--r-- | src/sldjConfig.h | 2 |
3 files changed, 38 insertions, 19 deletions
@@ -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) @@ -31,6 +31,13 @@ typedef struct Sldj { struct { Rectangle fpsSlider; float fpsSliderValue; + + // Viewport shit. + Rectangle widthSlider; + Rectangle heightSlider; + float widthSliderValue; + float heightSliderValue; + Rectangle viewportButton; } gui; } Sldj; @@ -41,7 +48,7 @@ void closeSldj(Sldj* sldj); void resizeGui(Sldj* sldj); void resetViewportRect(Sldj* sldj, float scale); -void resetViewport(Sldj* sldj, int width, int height, float scale); +void resetViewport(Sldj* sldj, int width, int height); void reloadScriptContext(Sldj* sldj); void reloadScript(Sldj* sldj); diff --git a/src/sldjConfig.h b/src/sldjConfig.h index 69297de..b6e2db0 100644 --- a/src/sldjConfig.h +++ b/src/sldjConfig.h @@ -9,6 +9,8 @@ #define DEFAULT_SCREEN_WIDTH 480 #define DEFAULT_SCREEN_HEIGHT 360 #define DEFAULT_SCREEN_SCALE 1.0 +#define SCREEN_MIN 100 +#define SCREEN_MAX 1920 // Frame rate. #define DEFAULT_FRAME_RATE 24 |