Welcome to Laya Documentation¶
Laya is a modern C++20 wrapper around SDL3 that brings safety, ergonomics, and modern C++ features to cross-platform multimedia development.
Whether you're building games, creative tools, or interactive applications, Laya gives you SDL3's power with the comfort and safety of modern C++.
🚀 Getting Started¶
New to Laya? Start here:
- Getting Started – Installation, setup, and your first program
- Goals & Philosophy – Why Laya exists and what it optimizes for
📚 Core Documentation¶
Understanding Laya¶
- Architecture – Deep dive into design patterns, RAII, type safety, and C++20 features
Feature Guides¶
Explore specific functionality:
- Features Overview – High-level summary of what Laya provides
- Windows – Creating and managing windows
- Rendering – Drawing to the screen
- Events – Handling keyboard, mouse, and window events
- Textures – Working with textures
- Surfaces – Pixel data and surface operations
- Logging – Type-safe logging with std::format
🎯 Quick Navigation¶
| I want to... | Go to |
|---|---|
| Install and build Laya | Getting Started |
| Understand the design philosophy | Goals |
| Learn about RAII and type safety | Architecture |
| Create a window | Windows |
| Draw shapes and colors | Rendering |
| Handle input events | Events |
💡 What Makes Laya Different?¶
✅ RAII everywhere – No manual cleanup, no resource leaks
✅ Type-safe – Strong types prevent parameter mix-ups at compile time
✅ Modern C++20 – Concepts, std::variant, std::format, constexpr
✅ Thin wrapper – Near-zero overhead, direct mapping to SDL3
✅ No SDL exposure – Clean public API hides SDL internals
🤔 Need Help?¶
- Check the Getting Started guide for common setup issues
- Review the Architecture document for design decisions
- Browse the Features section for API examples
Ready to dive in? Head to Getting Started and build your first Laya program!