diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-08-14 09:23:05 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-08-14 09:41:21 +0100 |
commit | 9a18925b63d47a20d7b74cfd508d7ae71f2d4d7c (patch) | |
tree | 4d0d0538b9475a9104d56ee3d07f4bab7b0e00b4 /tests/manual | |
parent | 9a1c0c96246126d2377bd56ed702f47214e3ee0a (diff) | |
parent | 71eee85093ba807f5bc2add472b359841faa062d (diff) |
Merge branch '5.7' into dev
Change-Id: Id62e225062a030f4864fb7af2ed6f60d6be87460
Diffstat (limited to 'tests/manual')
18 files changed, 140 insertions, 60 deletions
diff --git a/tests/manual/assimp-cpp/main.cpp b/tests/manual/assimp-cpp/main.cpp index 9701cb66a..06e0907be 100644 --- a/tests/manual/assimp-cpp/main.cpp +++ b/tests/manual/assimp-cpp/main.cpp @@ -118,7 +118,7 @@ int main(int ac, char **av) { QApplication app(ac, av); Qt3DExtras::Qt3DWindow view; - view.defaultFramegraph()->setClearColor(Qt::black); + view.defaultFrameGraph()->setClearColor(Qt::black); // Root entity Qt3DCore::QEntity *sceneRoot = new Qt3DCore::QEntity(); diff --git a/tests/manual/bigscene-cpp/main.cpp b/tests/manual/bigscene-cpp/main.cpp index 95b198f58..ebbd499f3 100644 --- a/tests/manual/bigscene-cpp/main.cpp +++ b/tests/manual/bigscene-cpp/main.cpp @@ -77,7 +77,7 @@ int main(int ac, char **av) { QGuiApplication app(ac, av); Qt3DExtras::Qt3DWindow view; - view.defaultFramegraph()->setClearColor(Qt::black); + view.defaultFrameGraph()->setClearColor(Qt::black); QEntity *root = new QEntity(); diff --git a/tests/manual/clip-planes-qml/CappingMaterialEffect.qml b/tests/manual/clip-planes-qml/CappingMaterialEffect.qml index 512e9f920..e503b15e3 100644 --- a/tests/manual/clip-planes-qml/CappingMaterialEffect.qml +++ b/tests/manual/clip-planes-qml/CappingMaterialEffect.qml @@ -70,7 +70,7 @@ Effect { graphicsApiFilter { api: GraphicsApiFilter.OpenGL - profile: GraphicsApiFilter.NoProfile + profile: GraphicsApiFilter.CoreProfile majorVersion: 3 minorVersion: 2 } diff --git a/tests/manual/clip-planes-qml/ClipMaterialEffect.qml b/tests/manual/clip-planes-qml/ClipMaterialEffect.qml index 7132831ed..f6761403f 100644 --- a/tests/manual/clip-planes-qml/ClipMaterialEffect.qml +++ b/tests/manual/clip-planes-qml/ClipMaterialEffect.qml @@ -69,7 +69,7 @@ Effect { graphicsApiFilter { api: GraphicsApiFilter.OpenGL - profile: GraphicsApiFilter.NoProfile + profile: GraphicsApiFilter.CoreProfile majorVersion: 3 minorVersion: 2 } diff --git a/tests/manual/clip-planes-qml/main.qml b/tests/manual/clip-planes-qml/main.qml index 4ab043285..7f449e291 100644 --- a/tests/manual/clip-planes-qml/main.qml +++ b/tests/manual/clip-planes-qml/main.qml @@ -91,7 +91,7 @@ Entity { ClippingPlanes { id: clippingPlanes visualizationLayer: frameGraph.visualizationLayer - capsLayer: frameGraph.contentLayer + capsLayer: frameGraph.capsLayer } // Entity being clipped diff --git a/tests/manual/custom-mesh-cpp/main.cpp b/tests/manual/custom-mesh-cpp/main.cpp index 26fc236be..e51321e65 100644 --- a/tests/manual/custom-mesh-cpp/main.cpp +++ b/tests/manual/custom-mesh-cpp/main.cpp @@ -76,7 +76,7 @@ int main(int argc, char* argv[]) { QGuiApplication app(argc, argv); Qt3DExtras::Qt3DWindow view; - view.defaultFramegraph()->setClearColor(QColor::fromRgbF(0.0, 0.5, 1.0, 1.0)); + view.defaultFrameGraph()->setClearColor(QColor::fromRgbF(0.0, 0.5, 1.0, 1.0)); // Root entity Qt3DCore::QEntity *rootEntity = new Qt3DCore::QEntity(); diff --git a/tests/manual/custom-mesh-update-data-cpp/main.cpp b/tests/manual/custom-mesh-update-data-cpp/main.cpp index 94c4d6982..7485dbec5 100644 --- a/tests/manual/custom-mesh-update-data-cpp/main.cpp +++ b/tests/manual/custom-mesh-update-data-cpp/main.cpp @@ -95,7 +95,7 @@ int main(int argc, char* argv[]) { QGuiApplication app(argc, argv); Qt3DExtras::Qt3DWindow view; - view.defaultFramegraph()->setClearColor(QColor::fromRgbF(0.0, 0.5, 1.0, 1.0)); + view.defaultFrameGraph()->setClearColor(QColor::fromRgbF(0.0, 0.5, 1.0, 1.0)); // Root entity Qt3DCore::QEntity *rootEntity = new Qt3DCore::QEntity(); diff --git a/tests/manual/deferred-renderer-cpp/deferredrenderer.cpp b/tests/manual/deferred-renderer-cpp/deferredrenderer.cpp index 5d613fef8..48f8ad3fe 100644 --- a/tests/manual/deferred-renderer-cpp/deferredrenderer.cpp +++ b/tests/manual/deferred-renderer-cpp/deferredrenderer.cpp @@ -64,7 +64,9 @@ DeferredRenderer::DeferredRenderer(Qt3DCore::QNode *parent) , m_geometryPassFilter(new Qt3DRender::QRenderPassFilter(m_clearGBuffer)) , m_finalPassFilter(new Qt3DRender::QRenderPassFilter(m_clearScreenQuad)) , m_sceneCameraSelector(new Qt3DRender::QCameraSelector(m_geometryPassFilter)) + , m_winSize(new Qt3DRender::QParameter(QStringLiteral("winSize"), QSizeF(1024.0f, 768.0f))) , m_gBuffer(new GBuffer(this)) + , m_window(nullptr) { m_clearGBuffer->setBuffers(Qt3DRender::QClearBuffers::ColorDepthBuffer); m_clearScreenQuad->setBuffers(Qt3DRender::QClearBuffers::ColorDepthBuffer); @@ -73,13 +75,7 @@ DeferredRenderer::DeferredRenderer(Qt3DCore::QNode *parent) m_finalPassFilter->addParameter(new Qt3DRender::QParameter(QStringLiteral("position"), m_gBuffer->positionTexture())); m_finalPassFilter->addParameter(new Qt3DRender::QParameter(QStringLiteral("normal"), m_gBuffer->normalTexture())); m_finalPassFilter->addParameter(new Qt3DRender::QParameter(QStringLiteral("color"), m_gBuffer->colorTexture())); - - Qt3DRender::QParameter *winSize = new Qt3DRender::QParameter(QStringLiteral("winSize"), QSize(1024, 768)); - QObject::connect(m_surfaceSelector, &Qt3DRender::QRenderSurfaceSelector::externalRenderTargetSizeChanged, - [=] (const QSize &viewSize) { - winSize->setValue(viewSize); - }); - m_finalPassFilter->addParameter(winSize); + m_finalPassFilter->addParameter(m_winSize); } void DeferredRenderer::setSceneCamera(Qt3DCore::QEntity *camera) @@ -111,5 +107,27 @@ void DeferredRenderer::setScreenQuadLayer(Qt3DRender::QLayer *layer) void DeferredRenderer::setSurface(QWindow *surface) { - m_surfaceSelector->setSurface(surface); + if (surface != m_window) { + + // Disconnect old window's signals + if (m_window != nullptr) { + QObject::disconnect(m_widthChangedConnection); + QObject::disconnect(m_heightChangedConnection); + } + + m_window = surface; + m_surfaceSelector->setSurface(surface); + + if (m_window != nullptr) { + // Store connections + m_widthChangedConnection = QObject::connect(surface, &QWindow::widthChanged, + [this] (int width) { + m_winSize->setValue(QSizeF(float(width), m_winSize->value().toSizeF().height())); + }); + m_heightChangedConnection = QObject::connect(surface, &QWindow::heightChanged, + [this] (int height) { + m_winSize->setValue(QSizeF(m_winSize->value().toSizeF().width(), float(height))); + }); + } + } } diff --git a/tests/manual/deferred-renderer-cpp/deferredrenderer.h b/tests/manual/deferred-renderer-cpp/deferredrenderer.h index 4483afb07..0d22c1e81 100644 --- a/tests/manual/deferred-renderer-cpp/deferredrenderer.h +++ b/tests/manual/deferred-renderer-cpp/deferredrenderer.h @@ -85,7 +85,12 @@ private: Qt3DRender::QRenderPassFilter *m_geometryPassFilter; Qt3DRender::QRenderPassFilter *m_finalPassFilter; Qt3DRender::QCameraSelector *m_sceneCameraSelector; + Qt3DRender::QParameter *m_winSize; GBuffer *m_gBuffer; + QWindow *m_window; + + QMetaObject::Connection m_widthChangedConnection; + QMetaObject::Connection m_heightChangedConnection; }; #endif // DEFERREDRENDERER_H diff --git a/tests/manual/deferred-renderer-cpp/sceneeffect.cpp b/tests/manual/deferred-renderer-cpp/sceneeffect.cpp index 8e0b597ca..570df66c7 100644 --- a/tests/manual/deferred-renderer-cpp/sceneeffect.cpp +++ b/tests/manual/deferred-renderer-cpp/sceneeffect.cpp @@ -65,10 +65,10 @@ SceneEffect::SceneEffect(Qt3DCore::QNode *parent) , m_passCriterion(new Qt3DRender::QFilterKey(this)) { - m_gl3Technique->graphicsApiFilter()->setProfile(Qt3DRender::QGraphicsApiFilter::NoProfile); + m_gl3Technique->graphicsApiFilter()->setProfile(Qt3DRender::QGraphicsApiFilter::CoreProfile); m_gl3Technique->graphicsApiFilter()->setApi(Qt3DRender::QGraphicsApiFilter::OpenGL); m_gl3Technique->graphicsApiFilter()->setMajorVersion(3); - m_gl3Technique->graphicsApiFilter()->setMinorVersion(3); + m_gl3Technique->graphicsApiFilter()->setMinorVersion(1); m_gl2Technique->graphicsApiFilter()->setApi(Qt3DRender::QGraphicsApiFilter::OpenGL); m_gl2Technique->graphicsApiFilter()->setMajorVersion(2); diff --git a/tests/manual/deferred-renderer-qml/DeferredRenderer.qml b/tests/manual/deferred-renderer-qml/DeferredRenderer.qml index 9ee2c2345..8e10005a5 100644 --- a/tests/manual/deferred-renderer-qml/DeferredRenderer.qml +++ b/tests/manual/deferred-renderer-qml/DeferredRenderer.qml @@ -61,7 +61,12 @@ Viewport { property alias screenQuadLayer: screenQuadLayerFilter.layers property alias debugLayer: debugLayerFilter.layers + readonly property real windowWidth: surfaceSelector.surface !== null ? surfaceSelector.surface.width: 0 + readonly property real windowHeight: surfaceSelector.surface !== null ? surfaceSelector.surface.height: 0 + RenderSurfaceSelector { + id: surfaceSelector + CameraSelector { id : sceneCameraSelector @@ -104,7 +109,7 @@ Viewport { buffers: ClearBuffers.ColorDepthBuffer RenderPassFilter { matchAny : FilterKey { name : "pass"; value : "final" } - parameters: Parameter { name: "winSize"; value : Qt.size(1024, 768) } + parameters: Parameter { name: "winSize"; value : Qt.size(windowWidth, windowHeight) } } } @@ -116,7 +121,7 @@ Viewport { normalizedRect : Qt.rect(0.5, 0.5, 0.5, 0.5) RenderPassFilter { matchAny : FilterKey { name : "pass"; value : "final" } - parameters: Parameter { name: "winSize"; value : Qt.size(1024 * 0.5, 768 * 0.5) } + parameters: Parameter { name: "winSize"; value : Qt.size(windowWidth * 0.5, windowHeight * 0.5) } } } } diff --git a/tests/manual/deferred-renderer-qml/GBufferDebugger.qml b/tests/manual/deferred-renderer-qml/GBufferDebugger.qml index f7c730cb1..7f148099e 100644 --- a/tests/manual/deferred-renderer-qml/GBufferDebugger.qml +++ b/tests/manual/deferred-renderer-qml/GBufferDebugger.qml @@ -65,46 +65,18 @@ Entity { renderPasses: RenderPass { filterKeys: FilterKey { name: "pass"; value: "final" } shaderProgram: ShaderProgram { - vertexShaderCode: - "#version 110 - - attribute vec4 vertexPosition; - uniform mat4 modelMatrix; - - void main() - { - gl_Position = modelMatrix * vertexPosition; - }" - - fragmentShaderCode: - "#version 110 - - uniform sampler2D color; - uniform sampler2D position; - uniform sampler2D normal; - uniform sampler2D depth; - uniform vec2 winSize; - - void main() - { - vec2 texCoord = (gl_FragCoord.xy + vec2(-winSize.x, 0)) / winSize; - - // Draw 4 quadrants - if (texCoord.x > 0.5) { // Right - if (texCoord.y > 0.5) { // Top - gl_FragColor = vec4(texture2D(normal, vec2(texCoord.x - 0.5, texCoord.y - 0.5) * 2.0).xyz, 1.0); - } else { // Bottom - gl_FragColor = vec4(texture2D(color, vec2(texCoord.x - 0.5, texCoord.y) * 2.0).xyz, 1.0); - } - } else { // Left - if (texCoord.y > 0.5) { // Top - gl_FragColor = texture2D(position, vec2(texCoord.x, texCoord.y - 0.5) * 2.0); - } else { // Bottom - gl_FragColor = vec4(texture2D(depth, texCoord * 2.0).rrr, 1.0); - } - } - gl_FragColor.a = 0.5; - }" + vertexShaderCode: loadSource("qrc:/debug_es2.vert") + fragmentShaderCode: loadSource("qrc:/debug_es2.frag") + } + } + }, + Technique { + graphicsApiFilter {api : GraphicsApiFilter.OpenGL; profile : GraphicsApiFilter.CoreProfile; minorVersion : 2; majorVersion : 3 } + renderPasses: RenderPass { + filterKeys: FilterKey { name: "pass"; value: "final" } + shaderProgram: ShaderProgram { + vertexShaderCode: loadSource("qrc:/debug_gl3.vert") + fragmentShaderCode: loadSource("qrc:/debug_gl3.frag") } } } diff --git a/tests/manual/deferred-renderer-qml/debug_es2.frag b/tests/manual/deferred-renderer-qml/debug_es2.frag new file mode 100644 index 000000000..8438ca916 --- /dev/null +++ b/tests/manual/deferred-renderer-qml/debug_es2.frag @@ -0,0 +1,28 @@ +#version 110 + +uniform sampler2D color; +uniform sampler2D position; +uniform sampler2D normal; +uniform sampler2D depth; +uniform vec2 winSize; + +void main() +{ + vec2 texCoord = (gl_FragCoord.xy + vec2(-winSize.x, 0)) / winSize; + + // Draw 4 quadrants + if (texCoord.x > 0.5) { // Right + if (texCoord.y > 0.5) { // Top + gl_FragColor = vec4(texture2D(normal, vec2(texCoord.x - 0.5, texCoord.y - 0.5) * 2.0).xyz, 1.0); + } else { // Bottom + gl_FragColor = vec4(texture2D(color, vec2(texCoord.x - 0.5, texCoord.y) * 2.0).xyz, 1.0); + } + } else { // Left + if (texCoord.y > 0.5) { // Top + gl_FragColor = texture2D(position, vec2(texCoord.x, texCoord.y - 0.5) * 2.0); + } else { // Bottom + gl_FragColor = vec4(texture2D(depth, texCoord * 2.0).rrr, 1.0); + } + } + gl_FragColor.a = 0.5; +} diff --git a/tests/manual/deferred-renderer-qml/debug_es2.vert b/tests/manual/deferred-renderer-qml/debug_es2.vert new file mode 100644 index 000000000..a907e10ca --- /dev/null +++ b/tests/manual/deferred-renderer-qml/debug_es2.vert @@ -0,0 +1,9 @@ +#version 110 + +attribute vec4 vertexPosition; +uniform mat4 modelMatrix; + +void main() +{ + gl_Position = modelMatrix * vertexPosition; +} diff --git a/tests/manual/deferred-renderer-qml/debug_gl3.frag b/tests/manual/deferred-renderer-qml/debug_gl3.frag new file mode 100644 index 000000000..571174d3b --- /dev/null +++ b/tests/manual/deferred-renderer-qml/debug_gl3.frag @@ -0,0 +1,30 @@ +#version 150 + +uniform sampler2D color; +uniform sampler2D position; +uniform sampler2D normal; +uniform sampler2D depth; +uniform vec2 winSize; + +out vec4 fragColor; + +void main() +{ + vec2 texCoord = (gl_FragCoord.xy + vec2(-winSize.x, 0)) / winSize; + + // Draw 4 quadrants + if (texCoord.x > 0.5) { // Right + if (texCoord.y > 0.5) { // Top + fragColor = vec4(texture(normal, vec2(texCoord.x - 0.5, texCoord.y - 0.5) * 2.0).xyz, 1.0); + } else { // Bottom + fragColor = vec4(texture(color, vec2(texCoord.x - 0.5, texCoord.y) * 2.0).xyz, 1.0); + } + } else { // Left + if (texCoord.y > 0.5) { // Top + fragColor = texture(position, vec2(texCoord.x, texCoord.y - 0.5) * 2.0); + } else { // Bottom + fragColor = vec4(texture(depth, texCoord * 2.0).rrr, 1.0); + } + } + fragColor.a = 0.5; +} diff --git a/tests/manual/deferred-renderer-qml/debug_gl3.vert b/tests/manual/deferred-renderer-qml/debug_gl3.vert new file mode 100644 index 000000000..2ed46a471 --- /dev/null +++ b/tests/manual/deferred-renderer-qml/debug_gl3.vert @@ -0,0 +1,9 @@ +#version 150 + +in vec4 vertexPosition; +uniform mat4 modelMatrix; + +void main() +{ + gl_Position = modelMatrix * vertexPosition; +} diff --git a/tests/manual/deferred-renderer-qml/deferred-renderer-qml.qrc b/tests/manual/deferred-renderer-qml/deferred-renderer-qml.qrc index 6ee17f42d..a2ca88cf9 100644 --- a/tests/manual/deferred-renderer-qml/deferred-renderer-qml.qrc +++ b/tests/manual/deferred-renderer-qml/deferred-renderer-qml.qrc @@ -12,5 +12,9 @@ <file>final_gl3.vert</file> <file>final_es2.frag</file> <file>GBufferDebugger.qml</file> + <file>debug_gl3.vert</file> + <file>debug_gl3.frag</file> + <file>debug_es2.frag</file> + <file>debug_es2.vert</file> </qresource> </RCC> diff --git a/tests/manual/paintedtexture-cpp/main.cpp b/tests/manual/paintedtexture-cpp/main.cpp index d8f5c515c..4651acd65 100644 --- a/tests/manual/paintedtexture-cpp/main.cpp +++ b/tests/manual/paintedtexture-cpp/main.cpp @@ -73,7 +73,7 @@ int main(int argc, char **argv) QApplication app(argc, argv); Qt3DExtras::Qt3DWindow *view = new Qt3DExtras::Qt3DWindow(); - view->defaultFramegraph()->setClearColor(QColor(QRgb(0x4d4d4f))); + view->defaultFrameGraph()->setClearColor(QColor(QRgb(0x4d4d4f))); QWidget *container = QWidget::createWindowContainer(view); QSize screenSize = view->screen()->size(); container->setMinimumSize(QSize(200, 100)); |