- 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
- Extract scenes_cube/scenes_sphere (and convenience 'scenes' interface) to scenes/CMakeLists.txt.
- Main CMakeLists.txt now much cleaner (single add_subdirectory(scenes)).
- Updated help text in cuber.cpp to clearly separate Flags vs Keys (less confusing 'S' section).
- No behavior change; depth/viewport/state/post-processing fixes from earlier remain.
Followed project conventions and AGENTS.md commit rules.