Thank you for your interest in contributing to laya! This document describes the philosophy and style guidelines for the project.
- Fork the repository and create a branch for your feature or fix.
- Ensure your code follows the style and scope described above.
- Run tests and verify builds on all supported platforms (if possible).
- Submit a pull request with a clear description of your changes in English.
This is (currently) a C++20 wrapper for SDL3 - no more, no less. This is meant to be used as a lightweight, efficient and low-level interface to SDL3, not a full application framework. Further abstractions and frameworks should be built on top of laya, by the library's consumer as they see fit.
The scope of the project is clear and limited:
- Provide a modern, type-safe, and idiomatic interface to SDL3 using the STL and modern features/practices.
- Include optional wrappers for
SDL_ttfandSDL_image. - Avoid adding features unrelated to SDL3 - if it's not in SDL3, it doesn't belong here.
- Attempt to provide lowest-cost abstractions wherever possible. Where not possible, provide multiple options (e.g.,
event_rangevsevent_view) for different use-cases.
Contributions must stay within this scope. If you want to propose functionality outside of SDL3, it must be justified and discussed first.
Code style is enforced via .clang-format and a pre-commit hook for automatic formatting. For detailed style guidelines including naming conventions, class organization, include order, and C++ best practices, see STYLE.md.
By contributing, you agree that your contributions will be licensed under the MIT License, the same as the rest of the project.