Skip to content

fix(qt): render NVST frames in the Qt scene graph - #787

Merged
zortos293 merged 1 commit into
t3code/redesign-open-now-frameworkfrom
capy/qt-gpu-frame-presentation
Aug 31, 2026
Merged

fix(qt): render NVST frames in the Qt scene graph#787
zortos293 merged 1 commit into
t3code/redesign-open-now-frameworkfrom
capy/qt-gpu-frame-presentation

Conversation

@zortos293

Copy link
Copy Markdown
Collaborator

Corrects the external presenter contract introduced by #785 and #786.

  • Replace the standalone streamer/presenter process with a linked Rust cdylib and a bounded, versioned C ABI; keep opennow-core out of process for account and session preparation only.
  • Present decoded native frames inside QQuickRhiItem using Qt-owned D3D11, Metal, or Vulkan devices and Qt's active command stream, with explicit frame lifetime, synchronization, device-loss, pause, reconnect, and scene-graph teardown handling.
  • Move gameplay keyboard, relative/absolute mouse, cursor capture, and up to four gamepads into the Qt/native runtime boundary; remove the obsolete surface controller, external-window orchestration, microphone path, and generalized browser WebRTC media path.
  • Package the shared runtime beside the app with platform loader metadata, exclude the obsolete standalone executable from every release format, and assert those layouts in the release workflow.
  • Make embedded capability negotiation backend-specific, fail closed on protocol/version and unsupported media paths, and update migration, acceptance, localization, and protocol documentation for the in-process architecture.

Verification:

  • Linux Qt Release build and full CTest suite (62/62 passed)
  • cargo fmt --all -- --check, workspace Clippy with -D warnings, and workspace tests for native/opennow-streamer
  • cargo fmt --all -- --check, Clippy with -D warnings, and all tests for native/opennow-core
  • npm run locales:check (891 keys)
  • git diff --check
  • Installed Linux binary has DT_NEEDED for libopennow_streamer_ffi.so, resolves it from $ORIGIN, excludes opennow-streamer, and passes an offscreen smoke launch from outside the build tree

Target-OS builds and real-device NVST acceptance remain required for Windows D3D11, macOS Metal, and Linux Vulkan presentation, including overlays, display/DPI changes, reconnect, device loss, teardown, input, and four-gamepad behavior.

@coderabbitai

coderabbitai Bot commented Aug 30, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 9a565a1d-07ee-4def-b2e9-6bd89854df43

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@zortos293
zortos293 merged commit 1ed01b1 into t3code/redesign-open-now-framework Aug 31, 2026
5 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant