summaryrefslogtreecommitdiff
path: root/template/WINDOW_QUICK_REF.md
diff options
context:
space:
mode:
authorIndrajith K L2025-11-05 01:50:32 +0530
committerIndrajith K L2025-11-05 01:50:32 +0530
commit10c22d35678f96e722f25a12badca98febb2921e (patch)
treefe71581d11747f32ceebb31839034d61e7a55614 /template/WINDOW_QUICK_REF.md
parent2d565e5bcb0e2eab93d9d1bab520bbbaf7457a07 (diff)
downloadreilua-enhanced-10c22d35678f96e722f25a12badca98febb2921e.tar.gz
reilua-enhanced-10c22d35678f96e722f25a12badca98febb2921e.tar.bz2
reilua-enhanced-10c22d35678f96e722f25a12badca98febb2921e.zip
Adds Game Jam Ready Templates & ReiLua API Updates
(Most of the code is Copilot Generated LOL)
Diffstat (limited to 'template/WINDOW_QUICK_REF.md')
-rw-r--r--template/WINDOW_QUICK_REF.md225
1 files changed, 225 insertions, 0 deletions
diff --git a/template/WINDOW_QUICK_REF.md b/template/WINDOW_QUICK_REF.md
new file mode 100644
index 0000000..00eb1b9
--- /dev/null
+++ b/template/WINDOW_QUICK_REF.md
@@ -0,0 +1,225 @@
+# Window Configuration - Quick Summary
+
+## ✅ What Was Added
+
+Created comprehensive window configuration documentation and improved template.
+
+### Files Created/Modified
+
+1. **`template/WINDOW_CONFIG.md`** (12+ KB) - Complete guide covering:
+ - Window size configuration
+ - Fullscreen modes (true fullscreen, borderless, toggle)
+ - Window flags (VSync, resizable, transparent, etc.)
+ - Window states (maximize, minimize, focus)
+ - Monitor information
+ - 5 complete working examples
+ - Quick reference guide
+ - Best practices
+
+2. **`template/main.lua`** - Updated with:
+ - Better default window size (1280x720 instead of 800x600)
+ - Window resizable flag
+ - Minimum window size constraint
+ - START_FULLSCREEN configuration option
+ - Borderless fullscreen toggle (F1/F11)
+ - Window resize detection
+ - Better console output
+
+3. **`template/README.md`** - Updated with:
+ - Reference to WINDOW_CONFIG.md
+ - New window configuration options
+
+## 🎮 Quick Usage
+
+### Set Window Size
+```lua
+-- In main.lua configuration
+local WINDOW_WIDTH = 1920
+local WINDOW_HEIGHT = 1080
+
+-- Or at runtime
+RL.SetWindowSize({1920, 1080})
+```
+
+### Enable Fullscreen
+```lua
+-- Toggle with F1 or F11 (already in template)
+
+-- Or start in fullscreen
+local START_FULLSCREEN = true -- In main.lua
+
+-- Or manually
+RL.ToggleBorderlessWindowed() -- Borderless (recommended)
+RL.ToggleFullscreen() -- True fullscreen
+```
+
+### Make Window Resizable
+```lua
+-- Already enabled in template!
+RL.SetWindowState(RL.FLAG_WINDOW_RESIZABLE)
+RL.SetWindowMinSize({800, 600}) -- Optional min size
+```
+
+### Common Resolutions
+```lua
+RL.SetWindowSize({1280, 720}) -- HD (720p)
+RL.SetWindowSize({1920, 1080}) -- Full HD (1080p)
+RL.SetWindowSize({2560, 1440}) -- QHD (1440p)
+RL.SetWindowSize({3840, 2160}) -- 4K (2160p)
+```
+
+### Window Flags
+```lua
+RL.SetWindowState(RL.FLAG_VSYNC_HINT) -- VSync (in template)
+RL.SetWindowState(RL.FLAG_WINDOW_RESIZABLE) -- Resizable (in template)
+RL.SetWindowState(RL.FLAG_FULLSCREEN_MODE) -- Fullscreen
+RL.SetWindowState(RL.FLAG_WINDOW_TOPMOST) -- Always on top
+RL.SetWindowState(RL.FLAG_MSAA_4X_HINT) -- Antialiasing
+```
+
+## 📚 All Available Functions
+
+### Size
+- `RL.SetWindowSize({width, height})` - Set window size
+- `RL.GetScreenSize()` - Get current size
+- `RL.SetWindowMinSize({w, h})` - Set minimum size
+- `RL.SetWindowMaxSize({w, h})` - Set maximum size
+
+### Fullscreen
+- `RL.ToggleBorderlessWindowed()` - Borderless fullscreen (recommended)
+- `RL.ToggleFullscreen()` - True fullscreen
+- `RL.IsWindowFullscreen()` - Check if fullscreen
+
+### Window State
+- `RL.MaximizeWindow()` - Maximize
+- `RL.MinimizeWindow()` - Minimize
+- `RL.RestoreWindow()` - Restore
+- `RL.IsWindowMaximized()` - Check maximized
+- `RL.IsWindowMinimized()` - Check minimized
+- `RL.IsWindowFocused()` - Check focused
+- `RL.IsWindowResized()` - Check if resized this frame
+
+### Flags
+- `RL.SetWindowState(flag)` - Enable flag
+- `RL.ClearWindowState(flag)` - Disable flag
+- `RL.IsWindowState(flag)` - Check flag
+
+### Position
+- `RL.SetWindowPosition({x, y})` - Set position
+- `RL.GetWindowPosition()` - Get position
+
+### Monitor
+- `RL.GetMonitorCount()` - Number of monitors
+- `RL.GetMonitorWidth(index)` - Monitor width
+- `RL.GetMonitorHeight(index)` - Monitor height
+- `RL.GetMonitorName(index)` - Monitor name
+- `RL.GetCurrentMonitor()` - Current monitor index
+
+## 💡 Best Practices
+
+### Recommended Settings
+```lua
+function RL.init()
+ -- Good default settings
+ RL.SetWindowSize({1280, 720})
+ RL.SetWindowState(RL.FLAG_VSYNC_HINT)
+ RL.SetWindowState(RL.FLAG_WINDOW_RESIZABLE)
+ RL.SetWindowMinSize({800, 600})
+end
+```
+
+### Fullscreen Toggle
+```lua
+-- Use borderless windowed (faster alt-tab, no resolution change)
+if RL.IsKeyPressed(RL.KEY_F11) then
+ RL.ToggleBorderlessWindowed()
+end
+```
+
+### Responsive Design
+```lua
+function RL.update(dt)
+ if RL.IsWindowResized() then
+ local size = RL.GetScreenSize()
+ -- Update your UI/camera to new size
+ updateViewport(size[1], size[2])
+ end
+end
+```
+
+### Adaptive Resolution
+```lua
+-- Auto-size to 80% of monitor
+local monitorW = RL.GetMonitorWidth(0)
+local monitorH = RL.GetMonitorHeight(0)
+RL.SetWindowSize({
+ math.floor(monitorW * 0.8),
+ math.floor(monitorH * 0.8)
+})
+
+-- Center window
+local size = RL.GetScreenSize()
+RL.SetWindowPosition({
+ (monitorW - size[1]) / 2,
+ (monitorH - size[2]) / 2
+})
+```
+
+## 🎯 Common Use Cases
+
+### 1. Options Menu
+```lua
+-- Store in config
+config.resolution = {1920, 1080}
+config.fullscreen = false
+
+-- Apply settings
+if config.fullscreen then
+ RL.ToggleBorderlessWindowed()
+else
+ RL.SetWindowSize(config.resolution)
+end
+```
+
+### 2. Multiple Resolution Presets
+```lua
+local resolutions = {
+ {1280, 720}, -- HD
+ {1920, 1080}, -- Full HD
+ {2560, 1440} -- QHD
+}
+
+function changeResolution(index)
+ RL.SetWindowSize(resolutions[index])
+end
+```
+
+### 3. Game Jam Quick Setup
+```lua
+-- Fast setup for prototyping
+RL.SetWindowSize({1280, 720})
+RL.SetWindowState(RL.FLAG_VSYNC_HINT)
+RL.SetExitKey(0) -- Disable ESC exit
+```
+
+## 📖 Documentation
+
+For complete documentation with examples, see:
+- **[WINDOW_CONFIG.md](WINDOW_CONFIG.md)** - Full guide with 5 complete examples
+- **[COMMON_ISSUES.md](COMMON_ISSUES.md)** - Troubleshooting
+
+## 🎮 Template Changes
+
+The template now:
+- ✅ Starts with 1280x720 (better than 800x600)
+- ✅ Window is resizable
+- ✅ Has minimum size constraint (800x600)
+- ✅ Uses borderless fullscreen (better than true fullscreen)
+- ✅ Detects window resize events
+- ✅ Provides START_FULLSCREEN configuration option
+- ✅ Works with F1 and F11 for fullscreen toggle
+
+---
+
+**Updated**: 2025-11-05
+**Template Version**: 1.0