Fix the Linux build of the qt6 branch, compile QML to bytecode only

- Remove Core5Compat (unused, not part of the Steam Frame's system Qt).
- Request GuiPrivate explicitly (required since Qt 6.10 for QRhi); temporary
  until rendering moves to public API.
- Compile QML to bytecode only: C++ generated from QML uses private Qt API
  that only matches the exact Qt version it was built with.
- Pick the OpenVR library per architecture (linux64, linuxarm64, win64) for
  linking and for the copy next to the binary; RPATH $ORIGIN.
- Link libXtst, needed by input_sender_X11.cpp.
- Include d3d11.h and handle QRhi::D3D11 only on Windows.
- Replace leftover easylogging LOG(INFO) calls with qInfo().

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Matthias Janetschek
2026-10-07 13:29:53 +02:00
co-authored by Claude Opus 5.5
parent aac3edf7e3
commit 266a2f9ce9
5 changed files with 86 additions and 17 deletions
+18 -7
View File
@@ -30,7 +30,10 @@
#include <qnamespace.h>
#include <rhi/qrhi.h>
#include <stdexcept>
#include <d3d11.h>
// Direct3D exists only on Windows.
#ifdef _WIN32
# include <d3d11.h>
#endif
// application namespace
namespace advsettings
@@ -521,21 +524,25 @@ void OverlayController::SetWidget( QQuickItem* quickItem,
auto ctrlRole = info.second;
if ( vr::TrackedDeviceClass_HMD == ctrlRole )
{
LOG(INFO) << "HMD is: " << ovr_system_wrapper::getDeviceName(device);
qInfo() << "HMD is: "
<< ovr_system_wrapper::getDeviceName( device );
continue;
}
if ( vr::TrackedControllerRole_LeftHand == ctrlRole )
{
LOG(INFO) << "Controller (L) is: " << ovr_system_wrapper::getDeviceName(device);
qInfo() << "Controller (L) is: "
<< ovr_system_wrapper::getDeviceName( device );
continue;
}
if ( vr::TrackedControllerRole_RightHand == ctrlRole )
{
LOG(INFO) << "Controller (R) is: " << ovr_system_wrapper::getDeviceName(device);
qInfo() << "Controller (R) is: "
<< ovr_system_wrapper::getDeviceName( device );
continue;
}
}
LOG(INFO)<< "Initilizaion is complete--------------------------------------------------";
qInfo() << "Initilizaion is "
"complete--------------------------------------------------";
}
void OverlayController::OnRenderRequest()
@@ -560,6 +567,8 @@ void OverlayController::SetOverlayFromQRhiTexture( QRhiTexture& tex )
vrTex.eColorSpace = vr::ColorSpace_Auto;
}
break;
// Direct3D exists only on Windows.
#ifdef _WIN32
case QRhi::D3D11:
{
vrTex.handle = reinterpret_cast<ID3D11Texture2D *>( tex.nativeTexture().object );
@@ -568,6 +577,7 @@ void OverlayController::SetOverlayFromQRhiTexture( QRhiTexture& tex )
}
break;
#endif
#if QT_CONFIG( vulkan )
case QRhi::Vulkan:
{
@@ -1425,7 +1435,7 @@ void OverlayController::RotateUniverseCenter(
// }
vr::HmdMatrix34_t curPos;
auto calState = vr::VRChaperone()->GetCalibrationState();
LOG( INFO ) << "Calibration State on Rotate is: " << calState;
qInfo() << "Calibration State on Rotate is: " << calState;
if ( universe == vr::TrackingUniverseStanding )
{
vr::VRChaperoneSetup()->GetWorkingStandingZeroPoseToRawTrackingPose(
@@ -1440,7 +1450,8 @@ void OverlayController::RotateUniverseCenter(
{
//TODO 8/3/26, will see if this causes issues
//should exclusively happen with openxr
LOG(INFO) << "rotating on undefined tracking universe probably openxr";
qInfo()
<< "rotating on undefined tracking universe probably openxr";
vr::VRChaperoneSetup()->GetLiveSeatedZeroPoseToRawTrackingPose(&curPos);
}