aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authornathansmith117 <nathansmith@disroot.org>2025-03-05 15:40:57 +0000
committernathansmith117 <nathansmith@disroot.org>2025-03-05 15:40:57 +0000
commitc2cf22bbfb26f0f778ded8be82ddb16816b8c8f0 (patch)
treec74cd00c2c7a766f7bd263b307e3cba98c7d86d2 /src
parent449e5a9c92c1fe62dc0dd75718486b791717184f (diff)
downloadsldj-c2cf22bbfb26f0f778ded8be82ddb16816b8c8f0.tar.gz
sldj-c2cf22bbfb26f0f778ded8be82ddb16816b8c8f0.tar.bz2
sldj-c2cf22bbfb26f0f778ded8be82ddb16816b8c8f0.zip
More sliders
Diffstat (limited to 'src')
-rw-r--r--src/sldj.c46
-rw-r--r--src/sldj.h9
-rw-r--r--src/sldjConfig.h2
3 files changed, 38 insertions, 19 deletions
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)
diff --git a/src/sldj.h b/src/sldj.h
index 694882e..4ffb4cd 100644
--- a/src/sldj.h
+++ b/src/sldj.h
@@ -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