aboutsummaryrefslogtreecommitdiffstats
path: root/src/sldj.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sldj.c')
-rw-r--r--src/sldj.c46
1 files changed, 28 insertions, 18 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)