summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/qt3d/anaglyph-rendering/StereoFrameGraph.qml45
-rw-r--r--examples/qt3d/anaglyph-rendering/main.qml1
-rw-r--r--examples/qt3d/bigmodel-qml/main.qml7
-rw-r--r--examples/qt3d/bigscene-instanced-qml/main.qml1
-rw-r--r--examples/qt3d/clip-planes-qml/ClipCappingFrameGraph.qml147
-rw-r--r--examples/qt3d/clip-planes-qml/main.qml1
-rw-r--r--examples/qt3d/custom-mesh-qml/main.qml1
-rw-r--r--examples/qt3d/cylinder-qml/main.qml7
-rw-r--r--examples/qt3d/exampleresources/obj.qrc2
-rw-r--r--examples/qt3d/examples-common/qt3dquickwindow.cpp6
-rw-r--r--examples/qt3d/gooch-qml/main.qml7
-rw-r--r--examples/qt3d/instanced-arrays-qml/main.qml1
-rw-r--r--examples/qt3d/keyboardinput-qml/main.qml1
-rw-r--r--examples/qt3d/lights/main.qml1
-rw-r--r--examples/qt3d/materials/SortedForwardRenderer.qml39
-rw-r--r--examples/qt3d/materials/main.qml1
-rw-r--r--examples/qt3d/mouseinput-qml/main.qml1
-rw-r--r--examples/qt3d/multiviewport/QuadViewportFrameGraph.qml55
-rw-r--r--examples/qt3d/multiviewport/main.qml1
-rw-r--r--examples/qt3d/picking-qml/main.qml1
-rw-r--r--examples/qt3d/plasma/main.qml5
-rw-r--r--examples/qt3d/simple-qml/main.qml1
-rw-r--r--examples/qt3d/simple-shaders-qml/main.qml1
-rw-r--r--examples/qt3d/skybox/main.qml1
-rw-r--r--examples/qt3d/tessellation-modes/main.qml1
-rw-r--r--examples/qt3d/torus-qml/main.qml1
-rw-r--r--examples/qt3d/transforms-qml/main.qml1
-rw-r--r--examples/qt3d/transparency-qml/main.qml8
-rw-r--r--examples/qt3d/wave/WaveForwardRenderer.qml29
-rw-r--r--examples/qt3d/wave/main.qml1
-rw-r--r--examples/qt3d/wireframe/main.qml1
-rw-r--r--src/quick3d/imports/render/qt3dquick3drenderplugin.cpp4
32 files changed, 228 insertions, 152 deletions
diff --git a/examples/qt3d/anaglyph-rendering/StereoFrameGraph.qml b/examples/qt3d/anaglyph-rendering/StereoFrameGraph.qml
index 1d6a5a222..4311f977e 100644
--- a/examples/qt3d/anaglyph-rendering/StereoFrameGraph.qml
+++ b/examples/qt3d/anaglyph-rendering/StereoFrameGraph.qml
@@ -41,36 +41,41 @@ Viewport {
property alias leftCamera: leftCameraSelector.camera
property alias rightCamera: rightCameraSelector.camera
+ property alias window: surfaceSelector.window
- // ColorMask is reset by default
- // By default reset to the default if not specified
- ClearBuffer {
- buffers: ClearBuffer.ColorDepthBuffer
- NoDraw {} // We just want to clear the buffers
- }
+ RenderSurfaceSelector {
+ id: surfaceSelector
- // Draw with left eye
- CameraSelector {
- id: leftCameraSelector
- StateSet {
- renderStates: [
- ColorMask { red: true; green: false; blue: false; alpha: false },
- DepthTest { func: DepthTest.Less }
- ]
+ // ColorMask is reset by default
+ // By default reset to the default if not specified
+ ClearBuffer {
+ buffers: ClearBuffer.ColorDepthBuffer
+ NoDraw {} // We just want to clear the buffers
}
- }
- // Draw with right eye
- ClearBuffer {
- buffers: ClearBuffer.DepthBuffer
+ // Draw with left eye
CameraSelector {
- id: rightCameraSelector
+ id: leftCameraSelector
StateSet {
renderStates: [
- ColorMask { red: false; green: true; blue: true; alpha: false },
+ ColorMask { red: true; green: false; blue: false; alpha: false },
DepthTest { func: DepthTest.Less }
]
}
}
+
+ // Draw with right eye
+ ClearBuffer {
+ buffers: ClearBuffer.DepthBuffer
+ CameraSelector {
+ id: rightCameraSelector
+ StateSet {
+ renderStates: [
+ ColorMask { red: false; green: true; blue: true; alpha: false },
+ DepthTest { func: DepthTest.Less }
+ ]
+ }
+ }
+ }
}
}
diff --git a/examples/qt3d/anaglyph-rendering/main.qml b/examples/qt3d/anaglyph-rendering/main.qml
index cb852a675..7b9d5afd1 100644
--- a/examples/qt3d/anaglyph-rendering/main.qml
+++ b/examples/qt3d/anaglyph-rendering/main.qml
@@ -46,6 +46,7 @@ Entity {
id: stereoFrameGraph
leftCamera: stereoCamera.leftCamera
rightCamera: stereoCamera.rightCamera
+ window: _q_window
}
}
diff --git a/examples/qt3d/bigmodel-qml/main.qml b/examples/qt3d/bigmodel-qml/main.qml
index a4c452ee1..d261dafdb 100644
--- a/examples/qt3d/bigmodel-qml/main.qml
+++ b/examples/qt3d/bigmodel-qml/main.qml
@@ -45,7 +45,12 @@ Entity {
FirstPersonCameraController { camera: mainCamera }
components: [
- FrameGraph { activeFrameGraph: ForwardRenderer { camera: mainCamera } }
+ FrameGraph {
+ activeFrameGraph:ForwardRenderer {
+ camera: mainCamera
+ window: _q_window
+ }
+ }
]
Camera {
diff --git a/examples/qt3d/bigscene-instanced-qml/main.qml b/examples/qt3d/bigscene-instanced-qml/main.qml
index 8b7623732..83fb57c4f 100644
--- a/examples/qt3d/bigscene-instanced-qml/main.qml
+++ b/examples/qt3d/bigscene-instanced-qml/main.qml
@@ -60,6 +60,7 @@ Entity {
activeFrameGraph: ForwardRenderer {
clearColor: Qt.rgba(0, 0.5, 1, 1)
camera: camera
+ window: _q_window
}
}
]
diff --git a/examples/qt3d/clip-planes-qml/ClipCappingFrameGraph.qml b/examples/qt3d/clip-planes-qml/ClipCappingFrameGraph.qml
index 3fdc226a1..1f1ecda27 100644
--- a/examples/qt3d/clip-planes-qml/ClipCappingFrameGraph.qml
+++ b/examples/qt3d/clip-planes-qml/ClipCappingFrameGraph.qml
@@ -39,92 +39,97 @@ import Qt3D.Render 2.0
Viewport {
property alias camera: cameraSelector.camera
+ property alias window: surfaceSelector.window
- CameraSelector {
- id: cameraSelector
+ RenderSurfaceSelector {
+ id: surfaceSelector
- StateSet {
- // Enable 3 clipping planes
- renderStates: [
- ClipPlane { plane: 0 },
- ClipPlane { plane: 1 },
- ClipPlane { plane: 2 },
- DepthTest { func: DepthTest.LessOrEqual }
- ]
+ CameraSelector {
+ id: cameraSelector
- // Branch 1
- LayerFilter {
- // Render entities with their regular material
- // Fills depth buffer for entities that are clipped
- layers: ["content", "visualization"]
- ClearBuffer {
- buffers: ClearBuffer.ColorDepthBuffer
- RenderPassFilter {
- includes: Annotation { name: "pass"; value: "material" }
+ StateSet {
+ // Enable 3 clipping planes
+ renderStates: [
+ ClipPlane { plane: 0 },
+ ClipPlane { plane: 1 },
+ ClipPlane { plane: 2 },
+ DepthTest { func: DepthTest.LessOrEqual }
+ ]
+
+ // Branch 1
+ LayerFilter {
+ // Render entities with their regular material
+ // Fills depth buffer for entities that are clipped
+ layers: ["content", "visualization"]
+ ClearBuffer {
+ buffers: ClearBuffer.ColorDepthBuffer
+ RenderPassFilter {
+ includes: Annotation { name: "pass"; value: "material" }
+ }
}
}
- }
- // Branch 2
- ClearBuffer {
- // Enable and fill Stencil to later generate caps
- buffers: ClearBuffer.StencilBuffer
- StateSet {
- // Disable depth culling
- // Incr for back faces
- // Decr for front faces
- // No need to output color values
- renderStates: [
- StencilTest {
- front {
- func: StencilTestSeparate.Always
- ref: 0; mask: 0
- }
- back {
- func: StencilTestSeparate.Always
- ref: 0; mask: 0
- }
- },
- StencilOp {
- front.stencilDepthPass: StencilOpSeparate.Decr
- back.stencilDepthPass: StencilOpSeparate.Incr
- },
- ColorMask { red: false; green: false; blue: false; alpha: false }
- ]
+ // Branch 2
+ ClearBuffer {
+ // Enable and fill Stencil to later generate caps
+ buffers: ClearBuffer.StencilBuffer
+ StateSet {
+ // Disable depth culling
+ // Incr for back faces
+ // Decr for front faces
+ // No need to output color values
+ renderStates: [
+ StencilTest {
+ front {
+ func: StencilTestSeparate.Always
+ ref: 0; mask: 0
+ }
+ back {
+ func: StencilTestSeparate.Always
+ ref: 0; mask: 0
+ }
+ },
+ StencilOp {
+ front.stencilDepthPass: StencilOpSeparate.Decr
+ back.stencilDepthPass: StencilOpSeparate.Incr
+ },
+ ColorMask { red: false; green: false; blue: false; alpha: false }
+ ]
- LayerFilter {
- layers: "content"
- RenderPassFilter {
- includes: Annotation { name: "pass"; value: "stencilFill"; }
+ LayerFilter {
+ layers: "content"
+ RenderPassFilter {
+ includes: Annotation { name: "pass"; value: "stencilFill"; }
+ }
}
}
}
}
- }
- // Branch 3
- StateSet {
- // Draw caps using stencil buffer
- LayerFilter {
- layers: "caps"
- RenderPassFilter {
- includes: Annotation { name: "pass"; value: "capping"; }
+ // Branch 3
+ StateSet {
+ // Draw caps using stencil buffer
+ LayerFilter {
+ layers: "caps"
+ RenderPassFilter {
+ includes: Annotation { name: "pass"; value: "capping"; }
+ }
}
- }
- // Draw back faces - front faces -> caps
- renderStates: [
- StencilTest {
- front {
- func: StencilTestSeparate.NotEqual
- ref: 0; mask: ~0
- }
- back {
- func: StencilTestSeparate.NotEqual
- ref: 0; mask: ~0
+ // Draw back faces - front faces -> caps
+ renderStates: [
+ StencilTest {
+ front {
+ func: StencilTestSeparate.NotEqual
+ ref: 0; mask: ~0
+ }
+ back {
+ func: StencilTestSeparate.NotEqual
+ ref: 0; mask: ~0
+ }
}
- }
- ]
+ ]
+ }
}
}
}
diff --git a/examples/qt3d/clip-planes-qml/main.qml b/examples/qt3d/clip-planes-qml/main.qml
index 06fd5bf14..e2f210122 100644
--- a/examples/qt3d/clip-planes-qml/main.qml
+++ b/examples/qt3d/clip-planes-qml/main.qml
@@ -59,6 +59,7 @@ Entity {
ClipCappingFrameGraph {
camera: camera;
clearColor: Qt.rgba(0.0, 0.5, 1, 1)
+ window: _q_window
}
}
diff --git a/examples/qt3d/custom-mesh-qml/main.qml b/examples/qt3d/custom-mesh-qml/main.qml
index cb7175b07..1257676a5 100644
--- a/examples/qt3d/custom-mesh-qml/main.qml
+++ b/examples/qt3d/custom-mesh-qml/main.qml
@@ -60,6 +60,7 @@ Entity {
activeFrameGraph: ForwardRenderer {
clearColor: Qt.rgba(0.5, 0.5, 1, 1)
camera: camera
+ window: _q_window
}
}
]
diff --git a/examples/qt3d/cylinder-qml/main.qml b/examples/qt3d/cylinder-qml/main.qml
index 12663fd4f..b628faad9 100644
--- a/examples/qt3d/cylinder-qml/main.qml
+++ b/examples/qt3d/cylinder-qml/main.qml
@@ -52,13 +52,14 @@ Entity {
viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 )
}
- FirstPersonCameraController { camera: mainCamera }
+ FirstPersonCameraController { camera: camera }
FrameGraph {
id : external_forward_renderer
activeFrameGraph : ForwardRenderer {
camera: camera
clearColor: "black"
+ window: _q_window
}
}
@@ -78,9 +79,9 @@ Entity {
rotation: fromAxisAndAngle(Qt.vector3d(1, 0, 0), 45)
}
- Material {
+ PhongMaterial {
id: material
- effect: Effect {}
+ diffuse: "green"
}
Entity {
diff --git a/examples/qt3d/exampleresources/obj.qrc b/examples/qt3d/exampleresources/obj.qrc
index 77a713631..b8134bf2d 100644
--- a/examples/qt3d/exampleresources/obj.qrc
+++ b/examples/qt3d/exampleresources/obj.qrc
@@ -4,5 +4,7 @@
<file>assets/textures/pattern_09/normal.webp</file>
<file>assets/textures/pattern_09/diffuse.webp</file>
<file>assets/obj/trefoil.obj</file>
+ <file>assets/obj/toyplane.obj</file>
+ <file>assets/obj/ball.obj</file>
</qresource>
</RCC>
diff --git a/examples/qt3d/examples-common/qt3dquickwindow.cpp b/examples/qt3d/examples-common/qt3dquickwindow.cpp
index 27f2ee5ef..5aa5a6e85 100644
--- a/examples/qt3d/examples-common/qt3dquickwindow.cpp
+++ b/examples/qt3d/examples-common/qt3dquickwindow.cpp
@@ -39,6 +39,9 @@
#include <Qt3DRender/qrenderaspect.h>
#include <Qt3DInput/qinputaspect.h>
#include <Qt3DLogic/qlogicaspect.h>
+
+#include <QQmlContext>
+
#include <QtGui/qopenglcontext.h>
QT_BEGIN_NAMESPACE
@@ -107,6 +110,9 @@ void Qt3DQuickWindow::showEvent(QShowEvent *e)
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(this));
m_engine->aspectEngine()->setData(data);
+ // TODO: Remove this hack once we can automagically set the window on the framegraph
+ m_engine->qmlEngine()->rootContext()->setContextProperty("_q_window", this);
+
m_engine->setSource(m_source);
// Set the QQmlIncubationController on the window
diff --git a/examples/qt3d/gooch-qml/main.qml b/examples/qt3d/gooch-qml/main.qml
index c6c2c3277..5649a03eb 100644
--- a/examples/qt3d/gooch-qml/main.qml
+++ b/examples/qt3d/gooch-qml/main.qml
@@ -44,7 +44,12 @@ Entity {
FirstPersonCameraController { camera: mainCamera }
components: [
- FrameGraph { ForwardRenderer { camera: mainCamera } }
+ FrameGraph {
+ ForwardRenderer {
+ camera: mainCamera
+ window: _q_window
+ }
+ }
]
Camera {
diff --git a/examples/qt3d/instanced-arrays-qml/main.qml b/examples/qt3d/instanced-arrays-qml/main.qml
index 4e9d7e144..fb17cae7f 100644
--- a/examples/qt3d/instanced-arrays-qml/main.qml
+++ b/examples/qt3d/instanced-arrays-qml/main.qml
@@ -60,6 +60,7 @@ Entity {
activeFrameGraph: ForwardRenderer {
clearColor: Qt.rgba(0, 0.5, 1, 1)
camera: camera
+ window: _q_window
}
}
]
diff --git a/examples/qt3d/keyboardinput-qml/main.qml b/examples/qt3d/keyboardinput-qml/main.qml
index 96cf9148e..c07597e13 100644
--- a/examples/qt3d/keyboardinput-qml/main.qml
+++ b/examples/qt3d/keyboardinput-qml/main.qml
@@ -58,6 +58,7 @@ Entity {
components: FrameGraph {
activeFrameGraph: ForwardRenderer {
camera: camera
+ window: _q_window
}
}
diff --git a/examples/qt3d/lights/main.qml b/examples/qt3d/lights/main.qml
index 1cfeb0cd4..267582a74 100644
--- a/examples/qt3d/lights/main.qml
+++ b/examples/qt3d/lights/main.qml
@@ -44,6 +44,7 @@ Entity
activeFrameGraph: ForwardRenderer {
clearColor: Qt.rgba(0, 0, 0, 1)
camera: camera
+ window: _q_window
}
}
diff --git a/examples/qt3d/materials/SortedForwardRenderer.qml b/examples/qt3d/materials/SortedForwardRenderer.qml
index 9d09f0a29..2f2e72e6e 100644
--- a/examples/qt3d/materials/SortedForwardRenderer.qml
+++ b/examples/qt3d/materials/SortedForwardRenderer.qml
@@ -43,28 +43,33 @@ TechniqueFilter {
// Expose camera to allow user to choose which camera to use for rendering
property alias camera: cameraSelector.camera
+ property alias window: surfaceSelector.window
// Select the forward rendering Technique of any used Effect
requires: [ Annotation { name: "renderingStyle"; value: "forward" } ]
- // Use the whole viewport
- Viewport {
- id: viewport
- objectName : "viewport"
- rect: Qt.rect(0.0, 0.0, 1.0, 1.0)
- clearColor: "white"
+ RenderSurfaceSelector {
+ id: surfaceSelector
- // Use the specified camera
- CameraSelector {
- id : cameraSelector
- objectName : "cameraSelector"
- ClearBuffer {
- buffers : ClearBuffer.ColorDepthBuffer
- SortMethod {
- criteria: [
- SortCriterion { sort: SortCriterion.StateChangeCost },
- SortCriterion { sort: SortCriterion.Material }
- ]
+ // Use the whole viewport
+ Viewport {
+ id: viewport
+ objectName : "viewport"
+ rect: Qt.rect(0.0, 0.0, 1.0, 1.0)
+ clearColor: "white"
+
+ // Use the specified camera
+ CameraSelector {
+ id : cameraSelector
+ objectName : "cameraSelector"
+ ClearBuffer {
+ buffers : ClearBuffer.ColorDepthBuffer
+ SortMethod {
+ criteria: [
+ SortCriterion { sort: SortCriterion.StateChangeCost },
+ SortCriterion { sort: SortCriterion.Material }
+ ]
+ }
}
}
}
diff --git a/examples/qt3d/materials/main.qml b/examples/qt3d/materials/main.qml
index a470e2415..1d94c8c6f 100644
--- a/examples/qt3d/materials/main.qml
+++ b/examples/qt3d/materials/main.qml
@@ -49,6 +49,7 @@ Entity {
activeFrameGraph: SortedForwardRenderer {
id: renderer
camera: mainCamera
+ window: _q_window
}
}
]
diff --git a/examples/qt3d/mouseinput-qml/main.qml b/examples/qt3d/mouseinput-qml/main.qml
index 8158e18f7..f38f85371 100644
--- a/examples/qt3d/mouseinput-qml/main.qml
+++ b/examples/qt3d/mouseinput-qml/main.qml
@@ -59,6 +59,7 @@ Entity {
ForwardRenderer {
camera: camera
clearColor: "black"
+ window: _q_window
}
}
diff --git a/examples/qt3d/multiviewport/QuadViewportFrameGraph.qml b/examples/qt3d/multiviewport/QuadViewportFrameGraph.qml
index 2011aaf4d..1fd00740b 100644
--- a/examples/qt3d/multiviewport/QuadViewportFrameGraph.qml
+++ b/examples/qt3d/multiviewport/QuadViewportFrameGraph.qml
@@ -44,37 +44,42 @@ FrameGraph {
property alias topRightCamera: cameraSelectorTopRightViewport.camera;
property alias bottomLeftCamera: cameraSelectorBottomLeftViewport.camera;
property alias bottomRightCamera: cameraSelectorBottomRightViewport.camera;
+ property alias window: surfaceSelector.window
- Viewport {
- id: mainViewport
- rect: Qt.rect(0, 0, 1, 1)
-
- ClearBuffer {
- buffers: ClearBuffer.ColorDepthBuffer
- }
+ RenderSurfaceSelector {
+ id: surfaceSelector
Viewport {
- id: topLeftViewport
- rect: Qt.rect(0, 0, 0.5, 0.5)
- CameraSelector { id: cameraSelectorTopLeftViewport }
- }
+ id: mainViewport
+ rect: Qt.rect(0, 0, 1, 1)
- Viewport {
- id: topRightViewport
- rect: Qt.rect(0.5, 0, 0.5, 0.5)
- CameraSelector { id: cameraSelectorTopRightViewport }
- }
+ ClearBuffer {
+ buffers: ClearBuffer.ColorDepthBuffer
+ }
- Viewport {
- id: bottomLeftViewport
- rect: Qt.rect(0, 0.5, 0.5, 0.5)
- CameraSelector { id: cameraSelectorBottomLeftViewport }
- }
+ Viewport {
+ id: topLeftViewport
+ rect: Qt.rect(0, 0, 0.5, 0.5)
+ CameraSelector { id: cameraSelectorTopLeftViewport }
+ }
- Viewport {
- id: bottomRightViewport
- rect: Qt.rect(0.5, 0.5, 0.5, 0.5)
- CameraSelector { id: cameraSelectorBottomRightViewport }
+ Viewport {
+ id: topRightViewport
+ rect: Qt.rect(0.5, 0, 0.5, 0.5)
+ CameraSelector { id: cameraSelectorTopRightViewport }
+ }
+
+ Viewport {
+ id: bottomLeftViewport
+ rect: Qt.rect(0, 0.5, 0.5, 0.5)
+ CameraSelector { id: cameraSelectorBottomLeftViewport }
+ }
+
+ Viewport {
+ id: bottomRightViewport
+ rect: Qt.rect(0.5, 0.5, 0.5, 0.5)
+ CameraSelector { id: cameraSelectorBottomRightViewport }
+ }
}
}
}
diff --git a/examples/qt3d/multiviewport/main.qml b/examples/qt3d/multiviewport/main.qml
index cfdd7a1a5..66ab274ab 100644
--- a/examples/qt3d/multiviewport/main.qml
+++ b/examples/qt3d/multiviewport/main.qml
@@ -48,6 +48,7 @@ Entity {
topRightCamera: cameraSet.cameras[1]
bottomLeftCamera: cameraSet.cameras[2]
bottomRightCamera: cameraSet.cameras[3]
+ window: _q_window
}
Entity {
diff --git a/examples/qt3d/picking-qml/main.qml b/examples/qt3d/picking-qml/main.qml
index 2c9e7a955..a1d3e6aa8 100644
--- a/examples/qt3d/picking-qml/main.qml
+++ b/examples/qt3d/picking-qml/main.qml
@@ -60,6 +60,7 @@ Entity {
ForwardRenderer {
camera: camera
clearColor: "black"
+ window: _q_window
}
}
diff --git a/examples/qt3d/plasma/main.qml b/examples/qt3d/plasma/main.qml
index 96aad76f5..8d6ce7f37 100644
--- a/examples/qt3d/plasma/main.qml
+++ b/examples/qt3d/plasma/main.qml
@@ -39,7 +39,9 @@ import Qt3D.Render 2.0
Entity {
components: FrameGraph {
- ForwardRenderer {}
+ ForwardRenderer {
+ window: _q_window
+ }
}
Entity {
@@ -59,6 +61,7 @@ Entity {
effect: Effect {
techniques: Technique {
+ annotations: [ Annotation{ name: "renderingStyle"; value: "forward" } ]
graphicsApiFilter {
minorVersion: 3
diff --git a/examples/qt3d/simple-qml/main.qml b/examples/qt3d/simple-qml/main.qml
index 9d25da81a..aa4b5d7d5 100644
--- a/examples/qt3d/simple-qml/main.qml
+++ b/examples/qt3d/simple-qml/main.qml
@@ -63,6 +63,7 @@ Entity {
activeFrameGraph: ForwardRenderer {
clearColor: Qt.rgba(0, 0.5, 1, 1)
camera: camera
+ window: _q_window
}
}
]
diff --git a/examples/qt3d/simple-shaders-qml/main.qml b/examples/qt3d/simple-shaders-qml/main.qml
index b51a25712..c01fc8eb1 100644
--- a/examples/qt3d/simple-shaders-qml/main.qml
+++ b/examples/qt3d/simple-shaders-qml/main.qml
@@ -60,6 +60,7 @@ Entity {
activeFrameGraph: ForwardRenderer {
clearColor: Qt.rgba(0, 0.5, 1, 1)
camera: camera
+ window: _q_window
}
}
]
diff --git a/examples/qt3d/skybox/main.qml b/examples/qt3d/skybox/main.qml
index e8cfdb2cf..65947ee10 100644
--- a/examples/qt3d/skybox/main.qml
+++ b/examples/qt3d/skybox/main.qml
@@ -44,6 +44,7 @@ Entity {
ForwardRenderer {
camera: basicCamera
clearColor: "black"
+ window: _q_window
}
}
diff --git a/examples/qt3d/tessellation-modes/main.qml b/examples/qt3d/tessellation-modes/main.qml
index e2b06f21f..487f75a39 100644
--- a/examples/qt3d/tessellation-modes/main.qml
+++ b/examples/qt3d/tessellation-modes/main.qml
@@ -50,6 +50,7 @@ Entity {
id: renderer
camera: mainCamera
clearColor: "black"
+ window: _q_window
}
}
]
diff --git a/examples/qt3d/torus-qml/main.qml b/examples/qt3d/torus-qml/main.qml
index fc86231d8..1fbd62494 100644
--- a/examples/qt3d/torus-qml/main.qml
+++ b/examples/qt3d/torus-qml/main.qml
@@ -59,6 +59,7 @@ Entity {
activeFrameGraph : ForwardRenderer {
camera: camera
clearColor: "black"
+ window: _q_window
}
}
diff --git a/examples/qt3d/transforms-qml/main.qml b/examples/qt3d/transforms-qml/main.qml
index 332905f65..493c4c932 100644
--- a/examples/qt3d/transforms-qml/main.qml
+++ b/examples/qt3d/transforms-qml/main.qml
@@ -45,6 +45,7 @@ Entity {
activeFrameGraph: ForwardRenderer {
clearColor: Qt.rgba(0, 0.5, 1, 1)
camera: camera
+ window: _q_window
}
}
]
diff --git a/examples/qt3d/transparency-qml/main.qml b/examples/qt3d/transparency-qml/main.qml
index 6159f78cc..e98531787 100644
--- a/examples/qt3d/transparency-qml/main.qml
+++ b/examples/qt3d/transparency-qml/main.qml
@@ -55,7 +55,13 @@ Entity {
FirstPersonCameraController { camera: camera }
- components: FrameGraph { activeFrameGraph: ForwardRenderer{ camera: camera ; clearColor: Qt.rgba(0.0, 0.5, 1, 1) } }
+ components: FrameGraph {
+ activeFrameGraph: ForwardRenderer{
+ camera: camera
+ clearColor: Qt.rgba(0.0, 0.5, 1, 1)
+ window: _q_window
+ }
+ }
TorusMesh {
id: torusMesh
diff --git a/examples/qt3d/wave/WaveForwardRenderer.qml b/examples/qt3d/wave/WaveForwardRenderer.qml
index 32a1b77c3..ee3ab2afd 100644
--- a/examples/qt3d/wave/WaveForwardRenderer.qml
+++ b/examples/qt3d/wave/WaveForwardRenderer.qml
@@ -42,25 +42,30 @@ TechniqueFilter {
// Expose camera to allow user to choose which camera to use for rendering
property alias camera: cameraSelector.camera
+ property alias window: surfaceSelector.window
// Select the forward rendering Technique of any used Effect
requires: [ Annotation { name: "renderingStyle"; value: "forward" } ]
- // Use the whole viewport
- Viewport {
- id: viewport
- rect: Qt.rect(0.0, 0.0, 1.0, 1.0)
+ RenderSurfaceSelector {
+ id: surfaceSelector
- // Use the specified camera
- CameraSelector {
- id: cameraSelector
+ // Use the whole viewport
+ Viewport {
+ id: viewport
+ rect: Qt.rect(0.0, 0.0, 1.0, 1.0)
- ClearBuffer {
- buffers: ClearBuffer.ColorDepthBuffer
- LayerFilter { layers: "background" }
- }
+ // Use the specified camera
+ CameraSelector {
+ id: cameraSelector
+
+ ClearBuffer {
+ buffers: ClearBuffer.ColorDepthBuffer
+ LayerFilter { layers: "background" }
+ }
- LayerFilter { layers: "wave" }
+ LayerFilter { layers: "wave" }
+ }
}
}
}
diff --git a/examples/qt3d/wave/main.qml b/examples/qt3d/wave/main.qml
index a6f46bfa7..1006f69d8 100644
--- a/examples/qt3d/wave/main.qml
+++ b/examples/qt3d/wave/main.qml
@@ -62,6 +62,7 @@ Entity {
id: frameGraph
activeFrameGraph: WaveForwardRenderer {
camera: mainCamera
+ window: _q_window
}
}
diff --git a/examples/qt3d/wireframe/main.qml b/examples/qt3d/wireframe/main.qml
index 35033951d..944923618 100644
--- a/examples/qt3d/wireframe/main.qml
+++ b/examples/qt3d/wireframe/main.qml
@@ -47,6 +47,7 @@ Entity {
activeFrameGraph: ForwardRenderer {
id: renderer
camera: mainCamera
+ window: _q_window
}
}
]
diff --git a/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp b/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp
index f142a81e7..958f156ae 100644
--- a/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp
+++ b/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp
@@ -130,6 +130,8 @@
#include <Qt3DQuickRender/private/quick3dbuffer_p.h>
#include <Qt3DQuickRender/private/qt3dquickrender_global_p.h>
+#include <QtGui/qwindow.h>
+
static void initResources()
{
Q_INIT_RESOURCE(defaults);
@@ -175,6 +177,8 @@ void Qt3DQuick3DRenderPlugin::registerTypes(const char *uri)
Qt3DRender::Quick::Quick3DRender_initialize();
+ qmlRegisterUncreatableType<QWindow>(uri, 2, 0, "Window", "Only for assigning window surface property");
+
// Converters
QMetaType::registerConverter<Qt3DRender::Render::Quick::Quick3DShaderDataArray*, QVariantList>(Quick3DShaderDataArrayToVariantListConverter);