- gfx::pipeline gains bind_vec3/bind_float for passing arbitrary
uniforms to shaders (used for light position/color)
- scene base gains on_mouse_drag virtual hook; cuber.cpp polls
left-mouse delta each frame and forwards it to the active scene
- cornell_box scene: 5-wall room (red/green/white), two pre-rotated
white boxes with proportions from the original paper, an unlit
ceiling light panel, and a point-light Lambert shader
- left-click drag orbits the camera around the scene origin;
pitch is clamped to ±80° to prevent gimbal flip
- key 3 / --scene cornell_box selects the scene
- 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.
Updated project description from 'cube timer' to 'OpenGL 3D
renderer with multiple scenes'. Added usage section with CLI
flags and key bindings. Listed both available scenes.
Updated AGENTS.md to include the sphere scene in static
libraries and source layout. Normalized run command to
./build/cuber for cross-platform consistency.
Extract GLFW window management into a dedicated cbt::window
class (new files in cbt/). The opengl::context now only
handles GLAD setup and context activation (no more window
creation or GLFW init/terminate).
Updated main loop in cuber.cpp, CMakeLists.txt (to build
the new source), and AGENTS.md (docs + source layout).
Addresses the design note in context.cpp about mixing
concerns.
- 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
- 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
- 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
- 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
- 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