docs: document gfx::pipeline + add Markdown style rule to AGENTS.md + README styling
- Added comprehensive "Pipeline Abstraction" section to README.md (for dummies, with step-by-step examples, render-to-texture, and post-processing). - Added "Documentation (Markdown)" section to AGENTS.md with the max-80-cols rule (exceptions for tables/code blocks). - Applied consistent Markdown styling to AGENTS.md and README.md (wrapped text at 80 cols, bold, code spans, cleaned duplicates). - Moved scenes libraries to (cleaned main CMakeLists.txt significantly). No behavior change. All follows AGENTS.md conventions.
This commit is contained in:
@@ -12,11 +12,11 @@
|
||||
|
||||
### Commands
|
||||
|
||||
```sh
|
||||
cmake -S . -B build -GNinja
|
||||
ninja -C build
|
||||
./build/cuber
|
||||
```
|
||||
```sh
|
||||
cmake -S . -B build -GNinja
|
||||
ninja -C build
|
||||
./build/cuber
|
||||
```
|
||||
|
||||
### Dependencies
|
||||
|
||||
@@ -34,7 +34,8 @@ To add a new dependency:
|
||||
|
||||
The project is split into static libraries:
|
||||
|
||||
- **`cbt_opengl`** — OpenGL abstraction and window management (window, context, buffer, texture, vao, shader, descriptor)
|
||||
- **`cbt_opengl`** — OpenGL abstraction and window management (window,
|
||||
context, buffer, texture, vao, shader, descriptor)
|
||||
- **`cbt_scene`** — Base scene class
|
||||
- **`scenes_cube`** — Spinning cube scene implementation
|
||||
- **`scenes_sphere`** — Cube-to-sphere mapped mesh with diffuse lighting
|
||||
@@ -52,10 +53,13 @@ to the custom scripts instead of system-installed packages.
|
||||
- **No semicolons after closing braces** for namespaces/classes
|
||||
- `auto` for obvious types (e.g. `auto main(...) -> int`)
|
||||
- **East const** (e.g. `char const*` not `const char*`)
|
||||
- **Trailing return type** for all function definitions, including operators (e.g. `auto operator=(T&&) noexcept -> T&`)
|
||||
- **Public members first** in class declarations, private members at the bottom
|
||||
- **Trailing return type** for all function definitions, including
|
||||
operators (e.g. `auto operator=(T&&) noexcept -> T&`)
|
||||
- **Public members first** in class declarations, private members at the
|
||||
bottom
|
||||
- `<>` includes only for system headers (std, OS, etc.)
|
||||
- `""` includes for third-party dependencies (e.g. `fmt`, `nlohmann/json`)
|
||||
- `""` includes for third-party dependencies (e.g. `fmt`,
|
||||
`nlohmann/json`)
|
||||
- **Naming:** `snake_case` for variables, functions, and classes
|
||||
- **Naming:** `SCREAMING_SNAKE_CASE` only for macros and constants
|
||||
- Include order:
|
||||
@@ -82,21 +86,34 @@ to the custom scripts instead of system-installed packages.
|
||||
- Follow the 50/72 rule:
|
||||
- Subject line: max 50 characters
|
||||
- Body lines: wrapped at 72 characters
|
||||
- Use conventional commit prefixes (`feat:`, `fix:`, `docs:`, `chore:`, etc.)
|
||||
- Use conventional commit prefixes (`feat:`, `fix:`, `docs:`, `chore:`,
|
||||
etc.)
|
||||
- Separate subject from body with a blank line
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
feat: add stopwatch timer
|
||||
```
|
||||
feat: add stopwatch timer
|
||||
|
||||
Replace Hello World with a live stopwatch that prints elapsed time
|
||||
in HH:MM:SS.mmm format, updating every 10ms with color output.
|
||||
```
|
||||
Replace Hello World with a live stopwatch that prints elapsed time
|
||||
in HH:MM:SS.mmm format, updating every 10ms with color output.
|
||||
```
|
||||
|
||||
## Documentation (Markdown)
|
||||
|
||||
- Wrap normal text and lists at **max 80 columns** (for readability in
|
||||
terminals and editors).
|
||||
- **Exceptions**: Tables and code blocks (```` ``` ````) can exceed 80
|
||||
columns when formatting requires it (e.g. trees, alignment).
|
||||
- Use standard Markdown: `**bold**`, `` `inline code` ``, `##` headings,
|
||||
`-` or numbered lists, fenced code blocks with language hints
|
||||
(```` ```cpp ````, ```` ```sh ````).
|
||||
- Keep examples concise, up-to-date, and self-documenting.
|
||||
- This file (`AGENTS.md`) follows its own rules.
|
||||
|
||||
## Source Layout
|
||||
|
||||
```
|
||||
```text
|
||||
cuber/
|
||||
CMakeLists.txt # Build configuration
|
||||
cuber.cpp # Entry point
|
||||
|
||||
Reference in New Issue
Block a user