Commit Graph

15 Commits

Author SHA1 Message Date
portersky 0c8af1dc0f docs: update AGENTS.md to reflect current project structure
- Update source layout with scenes/ directory and static libraries
- Add static library documentation (cbt_opengl, cbt_scene, scenes_cube)
- Remove stale references to nerv project
- Update run command for Windows
2026-05-05 22:35:17 +02:00
portersky b6adb7c23a style: move public members first in class declarations
- Reorder all class headers to put public interface before private members
- Document convention in AGENTS.md
2026-05-05 22:30:56 +02:00
portersky e71c4d55cf refactor: split into static libraries and restructure scenes
- Create cbt_opengl static library for OpenGL abstraction
- Create cbt_scene static library for base scene class
- Create scenes_cube static library for cube scene
- Move scene base to cbt/ (utility), scenes to root scenes/
- Link libraries in dependency chain: cuber -> scenes -> cbt_scene -> cbt_opengl
2026-05-05 22:27:19 +02:00
portersky 30ddaf7d39 feat: render spinning 3D cube with glm
- Add glm dependency for matrix transformations
- Replace triangle with 6-face colored cube
- Add MVP shader uniforms (model, view, projection)
- Enable depth testing for proper 3D rendering
- Spin cube around (1, 0.5, 0.3) axis

style: fix trailing return type for move assignment operators

- buffer/texture/shader/vao: use auto fn() -> T& style
- Document trailing return type convention in AGENTS.md
2026-05-05 22:19:33 +02:00
portersky 9114eaabc6 style: switch to east const across the codebase
- const T* -> T const* in all headers and implementations
- const T& -> T const& for copy constructor/operator= deletes
- update AGENTS.md to document east const convention
2026-05-05 22:10:00 +02:00
portersky 3f098faa88 chore: integrate Platform.cmake and Flags.cmake into build
- Add platform/compiler detection via Platform.cmake
- Apply warning flags (-Wall -Wextra -Werror) via Flags.cmake
- Link platform-specific libraries (OpenGL32, winmm, dwmapi)
2026-05-05 22:07:50 +02:00
portersky df08210f77 feat: render per-vertex color triangle
- Add shader class for vertex/fragment program compilation
- Add vao class for vertex array object management
- Render RGB gradient triangle with interpolated vertex colors
2026-05-05 22:05:40 +02:00
portersky 90d013695d feat: add OpenGL abstraction layer with RAII resources
- Replace window class with cbt::opengl::context
- Add buffer resource (VBO, EBO, UBO, SSBO) with move semantics
- Add texture resource with format/type enums and filtering
- Add descriptor_set for Vulkan-style resource binding
- All resources use RAII with proper cleanup
2026-05-05 21:58:34 +02:00
portersky f18e5e4adc feat: add ASIO signal handling for graceful shutdown
- Add asio dependency for async signal handling
- Register SIGINT and SIGTERM to quit the application
- Poll signals each frame for non-blocking shutdown
- Q key and Ctrl+C both cleanly exit the program
2026-05-05 21:53:51 +02:00
portersky 47d01f57c0 feat: add RAII window class with OpenGL 4.1 context
- Add cbt::window class in cbt/ directory with RAII lifecycle
- Add setup_opengl and info_opengl for glad init and GL info
- Add Q key to quit the application
- Update CMakeLists.txt with glfw3 and glad dependencies
- Update AGENTS.md with snake_case naming and shell conventions
2026-05-05 21:50:50 +02:00
portersky f13eb491d9 docs: add commit message conventions with 50/72 rule 2026-05-05 21:36:24 +02:00
portersky c7704f42f7 chore: expand .gitignore with common build/IDE artifacts 2026-05-05 21:35:27 +02:00
portersky 237f446c6e feat: implement 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.
2026-05-05 21:34:00 +02:00
portersky a13105a591 docs: add coding and shell conventions to AGENTS.md
- Add include ordering rules: C++ std, C std, OS-specific,
  third-party, local headers (separated by blank lines)
- Clarify <> for system headers, "" for third-party deps
- Remove .exe from run command
- Mark shell code blocks as sh (POSIX compliant)
- Add shell script conventions section
2026-05-05 21:34:00 +02:00
portersky e2110ddf4f Inital commit 2026-05-05 21:34:00 +02:00