feat(zoom): drive the 3D tilt from cursor motion - #685
EtienneLescot wants to merge 3 commits into
Conversation
The field was removed from openscreen-compositor, so poc-d3d no longer compiled on main and bench --scene could not run.
The iso/left/right presets no longer hold a frozen angle: the plane leans into the cursor gesture and settles back to the preset at rest. This deliberately changes the rendering of existing projects that use a preset and have a cursor track with the cursor shown. - regions::dynamic_tilt(t, track, cut, strength): velocity from a centred difference on the smoothed follow track (no per-frame state), in visible crops per second, soft-saturated into DYNAMIC_TILT_BUDGET (X 1.9, Y 3, Z 0 degrees) through clamp_dynamic_tilt, gated by smoothstep(0.85, 1, strength). Called once from plan_frame. - rotated_quad_corners_px(w, h, base, dyn): the contain scale comes from the base rotation only; the dynamic part only reprojects the corners. - FrameGeometry::screen_tilt is the single path for the screen, its shadow (three backends), the cursor and the privacy mask. - Parallax is off while the cursor is hidden, because export only loads the track when the cursor is shown. - crates/fixture/scene-tilt.json: a rotation scene for poc-d3d --scene. - tests/tilt_parallax_render.rs: env-gated D3D11 render of the lean. No shader, LayerCB, schema or UI change.
…speed in the zoomed cut
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (8)
💤 Files with no reviewable changes (1)
Included review availability: Your plan provides up to 8 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthroughChangesDynamic tilt and parallax
Benchmark initializer cleanup
Priority: ➖ Normal Estimated code review effort: 4 (Complex) | ~60 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant CursorTrack
participant FrameGeometry
participant Compositor
participant Renderer
CursorTrack->>FrameGeometry: provide cursor motion
FrameGeometry->>FrameGeometry: compute dynamic tilt
Compositor->>FrameGeometry: request screen_tilt(s_px)
FrameGeometry-->>Compositor: return projected quad
Compositor->>Renderer: draw tilted screen and aligned overlays
Suggested reviewers: Merge Risk: ⚪ Minimal · up to No concrete behavior or production risk remains that should block merging after normal checks. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Description checkExplanation The description states the main feature and references the related work, but it omits most required template sections, including issue status, change type, release impact, desktop impact, screenshots or video, and testing details.
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning Some tools did not complete. Review the errors below. 🔧 Clippy (1.98.0)Clippy execution failed Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
Intégrée dans |
Dynamic rotation: the tilted screen follows cursor motion, on all presets (parallax).
Chantier 3D, PR 1. Spec complète et branche d intégration : #682.
🤖 Generated with Claude Code
Summary by CodeRabbit