summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2018-05-15 16:51:12 +0200
committerLaszlo Agocs <laszlo.agocs@qt.io>2018-05-15 15:44:35 +0000
commitb841191690c34bd4f1b1e896c60e403d52c691ac (patch)
tree5953be0f3b7806baaebf67f8ef9e1d04d940abdb
parent4095d460eebb631560fc9afde5f46a5c5e4e87fb (diff)
Add doc page with OpenGL and related stuffv2.0.0-beta1
Plus a note to the attribute list page about data input. Change-Id: I89401eb65eb00f7921b950b36df164a3ec77abb0 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
-rw-r--r--src/runtime/doc/src/attributenames.qdoc8
-rw-r--r--src/runtime/doc/src/index.qdoc1
-rw-r--r--src/runtime/doc/src/requirements.qdoc108
3 files changed, 117 insertions, 0 deletions
diff --git a/src/runtime/doc/src/attributenames.qdoc b/src/runtime/doc/src/attributenames.qdoc
index 2392149..18282de 100644
--- a/src/runtime/doc/src/attributenames.qdoc
+++ b/src/runtime/doc/src/attributenames.qdoc
@@ -46,6 +46,14 @@
Studio application are freely changeable by the applications during run time
as well.
+ \note When possible, applications are recommended to rely on the \c{data
+ input} functionality of Qt 3D Studio instead. This avoids the need to refer
+ to hard-coded attribute names, and instead allows the designers to expose
+ the interesting attributes with arbitrary data input names to the
+ application developers, thus offering a fixed, well-known interface from the
+ 3D presentation to the application code. See \l Q3DSDataInput and
+ \l DataInput for more information.
+
\include attributenames.html
Custom materials and effects have their custom set of properties that are
diff --git a/src/runtime/doc/src/index.qdoc b/src/runtime/doc/src/index.qdoc
index e2a6625..3aa09c7 100644
--- a/src/runtime/doc/src/index.qdoc
+++ b/src/runtime/doc/src/index.qdoc
@@ -34,6 +34,7 @@
\list
\li \l {Getting Started}
+ \li \l {System and Application Requirements}
\li \l {Using the Runtime on Android/iOS Devices}
\li \l {Using the Runtime on Embedded Devices}
\li \l {Qt 3D Studio Runtime C++ Classes}
diff --git a/src/runtime/doc/src/requirements.qdoc b/src/runtime/doc/src/requirements.qdoc
new file mode 100644
index 0000000..1bec57e
--- /dev/null
+++ b/src/runtime/doc/src/requirements.qdoc
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt 3D Studio.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page qt3d-runtime-requirements.html
+ \title System and Application Requirements
+
+ \section1 OpenGL Requirements
+
+ Qt 3D Studio requires OpenGL or OpenGL ES. The recommended minimum versions
+ are \c{3.3 core profile} and \c{3.0}, respectively.
+
+ When it comes to OpenGL ES, a limited subset of the functionality is
+ available when running on plain \c{OpenGL ES 2.0} implementations. In
+ practice this means losing shadow mapping, image based lighting, and many
+ other advanced features and is therefore not recommended. On the other hand,
+ this allows bringing up Qt 3D Studio scenes on boards like the Raspberry Pi
+ (with the original proprietary graphics stack) or the Beaglebone Black, or
+ in hypervisor-based virtualized environments where the GPU virtualization
+ only supports GLES 2.0, and can therefore still be valuable in certain
+ special situations.
+
+ Non-native implementations, like \c ANGLE or software implementations like
+ \c{Mesa's llvmpipe} may work but are not tested and can fail in unexpected
+ ways.
+
+ As of version 2.0 the Qt 3D Studio Runtime is implemented on top of Qt
+ 3D. This means that most graphics API and windowing system bits are
+ abstracted and hidden from the runtime. However, there are still direct
+ OpenGL dependencies in a few places and, more importantly, the standard
+ material, custom materials, and effects all rely on GLSL. Therefore other
+ graphics APIs, such as, Vulkan or Direct 3D, cannot be supported at this
+ time.
+
+ \section1 Application Integration Notes
+
+ \section2 C++
+
+ A typical Qt C++ application using the Qt 3D Studio Runtime is expected to
+ query and honor the runtime's \c{ideal surface format}. This way the OpenGL
+ contexts will all be created with the OpenGL version and profile that best
+ match the runtime's needs:
+
+ \badcode
+ #include <Q3DSWidget> // or <q3dsruntimeglobal.h> if only Q3DS::surfaceFormat() is interesting for main()
+
+ int main(int argc, char *argv[])
+ {
+ QApplication app(argc, argv);
+
+ QSurfaceFormat::setDefaultFormat(Q3DS::surfaceFormat());
+
+ Q3DSWidget w;
+ ...
+ return app.exec();
+ }
+ \endcode
+
+ To enable using Qt 3D Studio headers and libraries in the application, add
+ the \c 3dstudioruntime2 module in the application's \c{.pro} file:
+
+ \badcode
+ QT += 3dstudioruntime2
+ \endcode
+
+ \section2 QML/Qt Quick
+
+ When no C++ classes are used, the \c 3dstudioruntime2 module can be omitted
+ in the \c{.pro}. To use the \l Studio3D element in QML code, it is enough to add the
+ corresponding import statement:
+
+ \badcode
+ import QtStudio3D 2.0
+ \endcode
+
+ It is nonetheless strongly recommended to set the the default surface format
+ as shown above. Make sure the
+ \c{QSurfaceFormat::setDefaultFormat(Q3DS::surfaceFormat())} call is made
+ after constructing QGuiApplication but before the first QQuickWindow or
+ QQuickView. When this is not possible, for example because the QML contents
+ is hosted in an application that has no knowledge of the Qt Quick scene's 3D
+ needs, Studio3D may still be usable but this may be dependent on the OpenGL
+ implementation and the context versions it offers, and is therefore more fragile.
+*/