mirror of
https://github.com/got-feedBack/feedBack.git
synced 2026-07-25 06:11:36 +00:00
Make the three 3D highways read the Camera Director bridge per panel so each splitscreen panel renders its own camera (independent orbit/height/zoom/tilt/pan), instead of all panels sharing the focused camera. - Add a shared `_freeCamFor(canvas)` resolver to each highway: prefer this panel's entry in `window.__h3dCamCtlPanels[panelIndexFor(canvas)]`, fall back to the global `window.__h3dCamCtl`, else null (100% stock). Defensive on the splitscreen global name (feedBackSplitscreen || slopsmithSplitscreen), NaN-safe, allocation-free. - highway_3d (guitar): source `_freeCam` from the resolver (was global-only). - keys_highway_3d: adopt the bridge for the first time — layer dolly/height/orbit + pan/pitch offsets onto the pan/zoom follow rig at the camera write. - drum_highway_3d: adopt the bridge — new per-frame `applyCamera()` folds the static base pose + kick-pulse dip + free-cam offsets. - In a follower (popped-out) window there is one panel, so the resolver yields whatever camera the plugin set in that window; no highway change needed for pop-out. Camera Director absent → resolver returns null → renderers behave exactly as before. Bump each plugin patch version. Existing plugin tests pass (drum 15, keys 30); the keys "default look unchanged" test confirms the stock path is byte-identical. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Kris Anderson <topkoa@gmail.com>
40 lines
1006 B
JSON
40 lines
1006 B
JSON
{
|
|
"id": "drum_highway_3d",
|
|
"name": "3D Drum Highway",
|
|
"version": "0.3.2",
|
|
"type": "visualization",
|
|
"bundled": true,
|
|
"script": "screen.js",
|
|
"settings": {
|
|
"html": "settings.html",
|
|
"category": "graphics"
|
|
},
|
|
"standards": [
|
|
"capability-pipelines.v1",
|
|
"plugin-runtime-idempotent.v1"
|
|
],
|
|
"capabilities": {
|
|
"midi-input": {
|
|
"roles": [
|
|
"requester"
|
|
],
|
|
"requests": [
|
|
"discover",
|
|
"list-sources",
|
|
"select-source",
|
|
"open-source",
|
|
"close-source"
|
|
],
|
|
"mode": "active",
|
|
"compatibility": "degrade-noop",
|
|
"ownership": "requester-only",
|
|
"safety": "sensitive",
|
|
"description": "Reads the e-kit/MIDI-pad input through the core midi-input domain (Web-MIDI provider ships built-in with the domain). Absent domain \u2192 no MIDI devices, fail-soft.",
|
|
"version": 1
|
|
}
|
|
},
|
|
"category": "practice",
|
|
"description": "3D note highway for drum charts.",
|
|
"icon": "assets/thumb.svg"
|
|
}
|