Adds Game Jam Ready Templates & ReiLua API Updates
(Most of the code is Copilot Generated LOL)
This commit is contained in:
225
template/WINDOW_QUICK_REF.md
Normal file
225
template/WINDOW_QUICK_REF.md
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user