|
SDLPainter 1.2.0
SDL3 + OpenGL/Vulkan 2D çizim kütüphanesi
|
Working on SDLPainter. For building it see Building from source; for the helper scripts see the Script Reference.
Contribution rules (commit format, branch strategy, when an ADR is required) are in CONTRIBUTING.md.
packaging/consumer/ is a standalone project that links SDLPainter from the outside, in both find_package and add_subdirectory mode. It must stay outside any gitignored directory — CI builds it.
Formatting is mandatory: quality:clang-format fails the pipeline on any violation. clang-tidy runs as a soft fail.
Online: on every push to the default branch the docs job publishes to GitHub Pages — https://yazilimperver.github.io/sdl-painter
Locally:
If Doxygen is not installed: apt install doxygen (Linux) or doxygen.nl (Windows).
Doxygen configuration and comment conventions: Documentation Guide (in Turkish).
The primary pipeline is GitHub Actions (.github/workflows/ci.yml). Linux jobs run in the prebuilt Docker Hub image (yazilimperver/sdl-painter:ci-v1.0); Windows jobs run on a native MSVC runner.
| Job | Environment | What it does |
|---|---|---|
| build:linux:debug | Linux (container) | Debug, Vulkan on |
| build:linux:release | Linux (container) | Release, Vulkan on |
| build:windows:debug | windows-2022, MSVC | Debug, Vulkan on, runs ctest |
| build:windows:release | windows-2022, MSVC | Release, Vulkan on |
| test:unit | Linux (container) | GTest — headless (offscreen + lavapipe ICD) |
| test:unit:asan | Linux (container) | ASan + UBSan, built without Vulkan |
| build:standalone-cmake | Linux (container) | Configure without presets, install, then build packaging/consumer/ |
| package:conan-create | Linux (container) | conan create + test_package — early warning for the packaging path |
| quality:shader-freshness | ubuntu-latest | Checks the SPIR-V outputs against the GLSL sources via sources.sha256 |
| quality:clang-format | Linux (container) | Google Style check — hard fail |
| quality:clang-tidy | Linux (container) | Static analysis — soft fail |
| docs | ubuntu-latest | Doxygen → GitHub Pages (default branch only) |
| release:publish | ubuntu-latest | GitHub Release on v*.*.* tags |
Notes worth knowing before touching CI:
The repository also contains a .gitlab-ci.yml for the GitLab mirror. It sets up the same stages with two differences: Windows builds go through MinGW cross-compile on a Linux runner (without Vulkan), and the pages job publishes to GitLab Pages.