Pixelplanet
ee95d79efe
feat(input): trigger selects in the browser, grip toggles the laser, downloads window replaces the browser
...
- Restore trigger-to-select in the file browser (it is the intuitive gesture);
A remains an alternative for thumbstick/d-pad navigation. Both skip when the
laser is resting on a control-bar button, which owns that click.
- Grip now toggles that hand's laser pointer, SteamVR-style: turn one off to
drive a panel with the stick without the beam fighting it, and to pick the
pointing hand. The raycast and the beam both honour it per hand.
- Recenter moves from Grip to Bumper (saved grip bindings migrate), since Grip
is now the laser toggle.
- The downloads window replaces the browser panel instead of stacking over it,
and browser input is suspended while it (or the confirm dialog) is open.
2026-10-15 20:52:38 +02:00
Pixelplanet
e39fd5e77c
feat(input): X/Y download buttons; bar clickable with A; Downloads window opens over the browser
...
- X (or Y) downloads the entry highlighted in the browser. A dedicated
physical button means the trigger never has to double as a pointer click.
- The control bar now accepts A as well as the trigger, and A prefers the
pointed-at bar button over the browser entry, so the bar always works.
- The downloads window was gated on !browser_.isOpen(), so pressing its bar
button while browsing appeared to do nothing; it now opens over the browser.
- Log control-bar clicks to make input routing diagnosable.
2026-10-15 20:35:23 +02:00
Pixelplanet
47836de7d8
docs: document the A-to-open / trigger-to-point control scheme and Download button
v1.1.0
2026-10-15 20:25:38 +02:00
Pixelplanet
3164a84545
feat(input): A opens the browser selection, dedicated Download control-bar button
...
- The trigger was overloaded (control bar + list activation), so the bar was
unreachable while the file browser was open. A now opens/activates the
highlighted entry; the trigger is pointer-only.
- New CtrlButton::Download in the control bar downloads the focused entry
(folders still prompt with the size). Downloads window button gets its own
list icon so the two are distinguishable.
- Fix the raycast: panel hit tests used an early 'continue' when the ray missed
the panel, which swallowed rays aimed at the control bar (drawn below the
panel) and at the timeline/time readout. They now fall through to the bar.
2026-10-15 20:24:27 +02:00
Pixelplanet
b31cc5a58e
README: document the release install flow and current feature set
v1.0.0
2026-10-15 20:09:09 +02:00
Pixelplanet
85b0ab69cc
Control-bar clicks work while browsing (bar gated separately from viewpoint/transport); open file browser on launch when no clip given
2026-10-15 20:03:05 +02:00
Pixelplanet
1b9c931036
Keep control bar visible while the file browser is open (bar sits below the panel) so Downloads is reachable directly
2026-10-15 19:58:40 +02:00
Pixelplanet
f045b7b340
Fix settings block brace after stick-select change
2026-10-15 19:52:32 +02:00
Pixelplanet
790e9e7352
Stick-select with trigger in browser+settings; no auto-play on download completion (fixes playback interruption); finished folder opens in browser
2026-10-15 19:51:53 +02:00
Pixelplanet
df5174034a
File browser stays interactive during downloads (was gated on isBusy which includes dlActive)
2026-10-15 19:44:41 +02:00
Pixelplanet
483f77ba13
Add navigation diagnostics (beginScan/defer/scan-complete)
2026-10-15 19:32:29 +02:00
Pixelplanet
ffd21b56bf
Do not auto-close the browser when a download starts (only show downloads window if browser closed)
2026-10-15 19:25:29 +02:00
Pixelplanet
398d8de4eb
Remove auto-pause while browsing: child process has its own SMB session so downloads keep running
2026-10-15 19:11:51 +02:00
Pixelplanet
a49ea9ad61
Folder download live progress (completed + in-flight file); auto-pause child while browsing so listing always responds
2026-10-15 19:06:44 +02:00
Pixelplanet
d3f1f05ef3
Download child via posix_spawn (fork deadlocks in multithreaded process); stdin from /dev/null; log spawn cmd
2026-10-15 19:01:35 +02:00
Pixelplanet
20db824464
Download child uses smbclient (curl smb unsupported here); red X failed badge; larger browser rows (kRowH 0.105)
2026-10-15 18:58:50 +02:00
Pixelplanet
05ef47948e
Downloads via curl child process (own SMB connection): concurrent SMB browsing + downloads, SIGSTOP/SIGCONT pause, SIGKILL stop
2026-10-15 18:54:07 +02:00
Pixelplanet
5659a43b51
Downloads: ETA shows --:-- when paused/stalled; auto-open downloads window and close browser on download start
2026-10-15 18:51:42 +02:00
Pixelplanet
772d91f6e9
Raycast: downloads panel/modal takes priority over browser (fix modal clicks); guard stale scanning_ flag
2026-10-15 18:42:47 +02:00
Pixelplanet
123650ed19
Downloads yield while browser open (fix unusable browser); log modal button hover
2026-10-15 18:32:57 +02:00
Pixelplanet
2665786657
Hide control bar during downloads modal (fix modal click); 1MiB SMB reads for throughput
2026-10-15 18:26:43 +02:00
Pixelplanet
3c48eb34e4
UI: content-sized centered buttons at panel bottom for downloads + confirm modal; bigger in-progress dot, smaller tick; darker model
2026-10-15 16:29:06 +02:00
Pixelplanet
7049ea6c1e
Restore scanMutex_/scanResult_ declarations
2026-10-15 15:09:29 +02:00
Pixelplanet
587f8baebf
Non-blocking navigation (no main-thread scan join); downloads dialog buttons + modal confirm with folder size; darker model; bigger badge
2026-10-15 15:09:10 +02:00
Pixelplanet
a1e1cbff5e
Fix missing total var in poll
2026-10-15 14:58:40 +02:00
Pixelplanet
3bd5904e84
Darker matte model; downloads: pause/stop/clear + click-to-play window, partial-file cleanup, browser scan priority during download
2026-10-15 14:58:26 +02:00
Pixelplanet
fc8b958fb6
Skip status node again (tiny-square artifact); remove head-locked download line; download shows size/%/ETA (folder pre-walk); bigger badge
2026-10-15 14:50:52 +02:00
Pixelplanet
60b23fd8f6
Model darker matte + re-enable status screen node; wider panels/text; download yields SMB lock (responsive browser); drop post-completion status line
2026-10-15 14:44:15 +02:00
Pixelplanet
c9dc24293f
Model: matte black diffuse (no shimmer); browser rows show clamped name + size; Downloads window with speed/ETA + control-bar button with active/done badge
2026-10-15 14:34:12 +02:00
Pixelplanet
93ad194ef6
Declare Browser::focused()
2026-10-15 13:35:57 +02:00
Pixelplanet
90fba4520c
Downloads: any file type + recursive folder copy with confirm; browser shows type/size; pointer drives selection; darker black model with highlighted labels
2026-10-15 13:35:43 +02:00
Pixelplanet
d977641ade
Fix model regression (always draw parts, guard degenerate node poses); add Downloads panel UI + keep browser hint/refusal message
2026-10-15 13:01:23 +02:00
Pixelplanet
b9e246279d
Render-model node animation: ordinal fallback when node names unavailable + skip status node; download refusal shown on-screen
2026-10-15 12:57:19 +02:00
Pixelplanet
af1a940efb
Native render-model node animation (xrGetRenderModelStateEXT) + asset node names; download logging/diagnostics + persistent background status
2026-10-15 12:53:40 +02:00
Pixelplanet
3629e10b4a
Native model animation via glTF node INDEX (asset node names unavailable); skip stray 'status' LCD square; downloads: allow during scan + clearer feedback/hint
2026-10-15 12:44:01 +02:00
Pixelplanet
9a26d25961
Native controller animation (xrGetRenderModelStateEXT node poses -> button-press motion); downloads: hover-select fix, logging, downloads list
2026-10-15 12:40:18 +02:00
Pixelplanet
dd641b8348
Controller: specular/rim shading; native-button remap (press-to-bind); downloads: destination setting + background status line + always-poll
2026-10-15 12:25:43 +02:00
Pixelplanet
6268424df9
Native frame profile: probe each binding path, keep accepted, log rejects (self-correcting)
2026-10-15 11:58:52 +02:00
Pixelplanet
3f571b355b
Native Steam Frame controller: enable XR_VALVE_frame_controller_interaction + target /interaction_profiles/valve/frame_controller; log active profile
2026-10-15 11:33:31 +02:00
Pixelplanet
091f86ac68
Controller: tapered laser from front, pose smoothing, hemisphere shading
2026-10-15 11:04:33 +02:00
Pixelplanet
7c6dc52d6a
Fix brace typo in controller-model placement
2026-10-15 10:29:10 +02:00
Pixelplanet
56a71a9e69
Controller models: place at runtime render-model space (fix position), connect laser to model, brighten matte-black skin
2026-10-15 10:28:07 +02:00
Pixelplanet
c9a60b7468
Controller models: real PNG base-color textures (stb_image) with per-submesh materials + lit textured shader
2026-10-15 09:26:49 +02:00
Pixelplanet
6e52b544ec
Controller models: add depth buffer (fix see-through) + render at grip pose (fix forward tilt)
2026-10-15 09:17:08 +02:00
Pixelplanet
ceeff8483a
Start real controller models: parse runtime glTF (cgltf) and upload the real mesh to the model pipeline (uint32 indices)
2026-10-15 08:54:40 +02:00
Pixelplanet
848e2661d7
Fix decode-fps underflow on reload (garbage number); enlarge decoded-frame queue to absorb bursty decode (reduces low-fps judder)
2026-10-15 08:43:13 +02:00
Pixelplanet
fd2fcbc57d
Smooth decode-fps stat (EMA) and enlarge SMB prefetch to 64 MiB for high-bitrate streaming
2026-10-15 08:21:17 +02:00
Pixelplanet
00591b6e4e
Track/language selection as pick-lists (sub-menus) with greyed-out rows when there is nothing to choose
2026-10-15 08:19:06 +02:00
Pixelplanet
57de71d506
Full-pitch recenter: capture head pitch and tilt the screen, control panels, and 360/180 sphere so recenter works while reclining/looking up
2026-10-15 08:13:49 +02:00
Pixelplanet
a564c59638
Fix HSBS detection (->SBS), half-vs-full SBS/TB screen aspect (fixes narrow), sharper SDF text (96px, no mip blur, 1px edge)
2026-10-15 08:07:18 +02:00