From 4ae7cc93b503cc31272f0b55c84410af30aea8b9 Mon Sep 17 00:00:00 2001 From: Mike Krus Date: Thu, 16 Jan 2020 16:48:21 +0000 Subject: Add QRenderCapabilities to query GL about what is supported Change-Id: I7981e7e4b514e5d15d66c82351f1ab2fe160d20d Reviewed-by: Paul Lemire --- examples/qt3d/scene3d/AnimatedEntity.qml | 4 ++- examples/qt3d/scene3d/main.cpp | 2 +- examples/qt3d/scene3d/main.qml | 50 +++++++++++++++++++++++++++++++- 3 files changed, 53 insertions(+), 3 deletions(-) (limited to 'examples') diff --git a/examples/qt3d/scene3d/AnimatedEntity.qml b/examples/qt3d/scene3d/AnimatedEntity.qml index 2cfeeb73a..77cc15aa3 100644 --- a/examples/qt3d/scene3d/AnimatedEntity.qml +++ b/examples/qt3d/scene3d/AnimatedEntity.qml @@ -49,7 +49,7 @@ ****************************************************************************/ import Qt3D.Core 2.0 -import Qt3D.Render 2.0 +import Qt3D.Render 2.15 import Qt3D.Input 2.0 import Qt3D.Extras 2.15 @@ -58,6 +58,7 @@ import QtQuick 2.0 as QQ2 Entity { id: sceneRoot + property RenderCapabilities capabilities : renderSettings.renderCapabilities Camera { id: camera @@ -74,6 +75,7 @@ Entity { components: [ RenderSettings { + id: renderSettings activeFrameGraph: ForwardRenderer { camera: camera clearColor: "transparent" diff --git a/examples/qt3d/scene3d/main.cpp b/examples/qt3d/scene3d/main.cpp index 8d8bc581e..2a988a271 100644 --- a/examples/qt3d/scene3d/main.cpp +++ b/examples/qt3d/scene3d/main.cpp @@ -71,7 +71,7 @@ int main(int argc, char **argv) QQuickView view; - view.resize(500, 500); + view.resize(1024, 768); view.setResizeMode(QQuickView::SizeRootObjectToView); view.setSource(QUrl("qrc:/main.qml")); view.show(); diff --git a/examples/qt3d/scene3d/main.qml b/examples/qt3d/scene3d/main.qml index f50528a13..6d5617ca3 100644 --- a/examples/qt3d/scene3d/main.qml +++ b/examples/qt3d/scene3d/main.qml @@ -50,6 +50,7 @@ import QtQuick 2.0 import QtQuick.Scene3D 2.0 +import Qt3D.Render 2.15 Item { Text { @@ -99,7 +100,54 @@ Item { aspects: ["input", "logic"] cameraAspectRatioMode: Scene3D.AutomaticAspectRatio - AnimatedEntity {} + AnimatedEntity { + id: rootEntity + } + } + } + + Rectangle { + radius: 10 + color: "#aaffffff" + border.width: 1 + border.color: "black" + width: childrenRect.width + anchors.margins + height: childrenRect.height + anchors.margins + anchors.bottom: parent.bottom + anchors.right: parent.right + anchors.margins: 20 + + Column { + x: parent.anchors.margins / 2 + y: x + + Text { text: "Vendor: " + rootEntity.capabilities.vendor } + Text { text: "Renderer: " + rootEntity.capabilities.renderer } + Text { text: "Driver Version: " + rootEntity.capabilities.driverVersion } + Text { text: "GL Version: " + rootEntity.capabilities.majorVersion + "." + rootEntity.capabilities.minorVersion } + Text { text: "Profile: " + (rootEntity.capabilities.profile === RenderCapabilities.CoreProfile ? "Core" : (rootEntity.capabilities.profile === RenderCapabilities.CompatibilityProfile ? "Compatibility" : "Unknown")) } + Text { text: "GLSL Version: " + rootEntity.capabilities.glslVersion } + Text { text: "Extensions: " + (rootEntity.capabilities.extensions.length ? "" : "None") } + ListView { + model: rootEntity.capabilities.extensions + delegate: Text { text: " " + model.modelData } + width: parent.width + height: 100 + visible: rootEntity.capabilities.extensions.length > 0 + clip: true + } + Text { text: "Max Texture Size: " + rootEntity.capabilities.maxTextureSize + "\nMax Texture Units: " + rootEntity.capabilities.maxTextureUnits + "\nMax Texture Layers: " + rootEntity.capabilities.maxTextureLayers } + Text { text: "Supports UBO: " + rootEntity.capabilities.supportsUBO } + Text { text: " Max UBO Size: " + rootEntity.capabilities.maxUBOSize + "\n Max UBO Bindings: " + rootEntity.capabilities.maxUBOBindings; visible: rootEntity.capabilities.supportsUBO } + Text { text: "Supports SSBO: " + rootEntity.capabilities.supportsSSBO } + Text { text: " Max SSBO Size: " + rootEntity.capabilities.maxSSBOSize + "\n Max SSBO Bindings: " + rootEntity.capabilities.maxSSBOBindings; visible: rootEntity.capabilities.supportsSSBO } + Text { text: "Supports Image Store: " + rootEntity.capabilities.supportsImageStore } + Text { text: " Max Image Units: " + rootEntity.capabilities.maxImageUnits; visible: rootEntity.capabilities.supportsImageStore } + Text { text: "Supports Compute Shaders: " + rootEntity.capabilities.supportsCompute } + Text { text: " Max Work Group Size: " + rootEntity.capabilities.maxWorkGroupSizeX + ", " + rootEntity.capabilities.maxWorkGroupSizeY + ", " + rootEntity.capabilities.maxWorkGroupSizeZ; visible: rootEntity.capabilities.supportsCompute } + Text { text: " Max Work Group Count: " + rootEntity.capabilities.maxWorkGroupCountX + ", " + rootEntity.capabilities.maxWorkGroupCountY + ", " + rootEntity.capabilities.maxWorkGroupCountZ; visible: rootEntity.capabilities.supportsCompute } + Text { text: " Max Invocations: " + rootEntity.capabilities.maxComputeInvocations; visible: rootEntity.capabilities.supportsCompute } + Text { text: " Max Shared Memory: " + rootEntity.capabilities.maxComputeSharedMemorySize; visible: rootEntity.capabilities.supportsCompute } } } -- cgit v1.2.3