Revision control
Copy as Markdown
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
import QtQuick.Layouts
//! [XrView]
import QtQuick3D
import QtQuick3D.Xr
XrView {
id: xrView
XrErrorDialog { id: err }
onInitializeFailed: (errorString) => err.run("XRView", errorString)
referenceSpace: XrView.ReferenceSpaceLocalFloor
//! [XrView]
environment: SceneEnvironment {
clearColor: "black"
backgroundMode: SceneEnvironment.Color
}
//! [XrOrigin]
xrOrigin: theOrigin
XrOrigin {
id: theOrigin
XrController {
controller: XrController.LeftController
poseSpace: XrController.AimPose
CubeModel { color: "blue" }
}
XrController {
controller: XrController.RightController
poseSpace: XrController.AimPose
CubeModel { color: "red" }
}
}
//! [XrOrigin]
component CubeModel : Model {
source: "#Cube"
scale: Qt.vector3d(0.1, 0.1, 0.1)
property alias color: boxMaterial.baseColor
materials: PrincipledMaterial {
id: boxMaterial
lighting: PrincipledMaterial.NoLighting
}
}
DirectionalLight {
}
Node {
position: Qt.vector3d(0, 150, -100)
Model {
source: "#Cube"
materials: PrincipledMaterial {
baseColor: Qt.rgba(0.4, 0.7, 0.0, 1.0)
}
y: -10
scale: Qt.vector3d(0.1, 0.1, 0.1)
NumberAnimation on eulerRotation.y {
duration: 10000
easing.type: Easing.InOutQuad
from: 0
to: 360
running: true
loops: -1
}
}
Node {
x: 10
y: 20
ColumnLayout {
anchors.centerIn: parent
spacing: 0
Text {
text: "Qt 6 in VR"
font.pointSize: 12
color: "white"
}
Text {
text: "On " + xrView.runtimeInfo.runtimeName + " " + xrView.runtimeInfo.runtimeVersion + " with " + xrView.runtimeInfo.graphicsApiName
font.pointSize: 4
color: "white"
}
Text {
visible: xrView.multiViewRenderingEnabled
text: "Multiview rendering enabled"
font.pointSize: 4
color: "green"
}
}
}
}
}