From 0e60951ec91ef730adc4f902a41a880c292c77f1 Mon Sep 17 00:00:00 2001 From: Onek8 Date: Wed, 2 Jul 2025 05:14:05 +0000 Subject: [PATCH] t3du - Restore VR code --- leenkx/Sources/iron/object/CameraObject.hx | 32 +++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/leenkx/Sources/iron/object/CameraObject.hx b/leenkx/Sources/iron/object/CameraObject.hx index 36f8ab9..fb52933 100644 --- a/leenkx/Sources/iron/object/CameraObject.hx +++ b/leenkx/Sources/iron/object/CameraObject.hx @@ -30,12 +30,22 @@ class CameraObject extends Object { static var sphereCenter = new Vec4(); static var vcenter = new Vec4(); static var vup = new Vec4(); - + + #if lnx_vr + var helpMat = Mat4.identity(); + public var leftV = Mat4.identity(); + public var rightV = Mat4.identity(); + #end + public function new(data: CameraData) { super(); this.data = data; + #if lnx_vr + iron.system.VR.initButton(); + #end + buildProjection(); V = Mat4.identity(); @@ -117,6 +127,26 @@ class CameraObject extends Object { V.getInverse(transform.world); VP.multmats(P, V); + + #if lnx_vr + var vr = kha.vr.VrInterface.instance; + if (vr != null && vr.IsPresenting()) { + leftV.setFrom(V); + helpMat.self = vr.GetViewMatrix(0); + leftV.multmat(helpMat); + + rightV.setFrom(V); + helpMat.self = vr.GetViewMatrix(1); + rightV.multmat(helpMat); + } + else { + leftV.setFrom(V); + } + VP.multmats(P, leftV); + #else + VP.multmats(P, V); + #end + if (data.raw.frustum_culling) { buildViewFrustum(VP, frustumPlanes); }