diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2018-03-12 08:32:35 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2019-12-19 07:31:11 +0100 |
commit | d3042802000902add8662b2fb66e76cc9abb6b5c (patch) | |
tree | d03d2b95ce5dff8c4d48a6641e59bc620758cd15 | |
parent | 421c06b46357b47bf201639eebcbca2566f4941b (diff) |
Make the OpenGL renderer a plugin
By default the QRenderAspect will try to load this plugin
Change-Id: Ie55e207fb8e6d0b64f717bbb99699eb669eaa3f2
Task-number: QTBUG-61151
258 files changed, 1685 insertions, 524 deletions
diff --git a/src/plugins/renderers/dummy/dummy.pro b/src/plugins/renderers/dummy/dummy.pro new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/plugins/renderers/dummy/dummy.pro diff --git a/src/render/renderers/opengl/graphicshelpers/graphicscontext.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicscontext.cpp index e971897fb..fe989ff70 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicscontext.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicscontext.cpp @@ -45,38 +45,40 @@ #include <Qt3DRender/private/renderlogging_p.h> #include <Qt3DRender/private/shader_p.h> #include <Qt3DRender/private/material_p.h> -#include <Qt3DRender/private/gltexture_p.h> #include <Qt3DRender/private/buffer_p.h> #include <Qt3DRender/private/attribute_p.h> -#include <Qt3DRender/private/rendercommand_p.h> -#include <Qt3DRender/private/renderstateset_p.h> #include <Qt3DRender/private/rendertarget_p.h> -#include <Qt3DRender/private/graphicshelperinterface_p.h> -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/private/buffermanager_p.h> #include <Qt3DRender/private/managers_p.h> -#include <Qt3DRender/private/glresourcemanagers_p.h> #include <Qt3DRender/private/attachmentpack_p.h> #include <Qt3DRender/private/qbuffer_p.h> -#include <Qt3DRender/private/renderbuffer_p.h> -#include <Qt3DRender/private/glshader_p.h> +#include <Qt3DRender/private/attachmentpack_p.h> +#include <Qt3DRender/private/qbuffer_p.h> +#include <Qt3DRender/private/renderstateset_p.h> #include <QOpenGLShaderProgram> +#include <glresourcemanagers_p.h> +#include <graphicshelperinterface_p.h> +#include <gltexture_p.h> +#include <rendercommand_p.h> +#include <renderer_p.h> +#include <renderbuffer_p.h> +#include <glshader_p.h> #if !defined(QT_OPENGL_ES_2) #include <QOpenGLFunctions_2_0> #include <QOpenGLFunctions_3_2_Core> #include <QOpenGLFunctions_3_3_Core> #include <QOpenGLFunctions_4_3_Core> -#include <Qt3DRender/private/graphicshelpergl2_p.h> -#include <Qt3DRender/private/graphicshelpergl3_2_p.h> -#include <Qt3DRender/private/graphicshelpergl3_3_p.h> -#include <Qt3DRender/private/graphicshelpergl4_p.h> +#include <graphicshelpergl2_p.h> +#include <graphicshelpergl3_2_p.h> +#include <graphicshelpergl3_3_p.h> +#include <graphicshelpergl4_p.h> #endif -#include <Qt3DRender/private/graphicshelperes2_p.h> -#include <Qt3DRender/private/graphicshelperes3_p.h> -#include <Qt3DRender/private/graphicshelperes3_1_p.h> -#include <Qt3DRender/private/graphicshelperes3_2_p.h> +#include <graphicshelperes2_p.h> +#include <graphicshelperes3_p.h> +#include <graphicshelperes3_1_p.h> +#include <graphicshelperes3_2_p.h> #include <QSurface> #include <QWindow> diff --git a/src/render/renderers/opengl/graphicshelpers/graphicscontext_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicscontext_p.h index d3f3615d5..07df3e9e4 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicscontext_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicscontext_p.h @@ -60,18 +60,18 @@ #include <QMatrix4x4> #include <QBitArray> #include <QImage> -#include <Qt3DRender/private/shaderparameterpack_p.h> #include <Qt3DRender/qclearbuffers.h> #include <Qt3DRender/private/shader_p.h> -#include <Qt3DRender/private/glbuffer_p.h> #include <Qt3DRender/qattribute.h> #include <Qt3DRender/qmemorybarrier.h> #include <Qt3DRender/private/handle_types_p.h> #include <Qt3DRender/private/qgraphicsapifilter_p.h> #include <Qt3DRender/private/uniform_p.h> -#include <Qt3DRender/private/graphicshelperinterface_p.h> #include <Qt3DRender/private/qblitframebuffer_p.h> -#include <Qt3DRender/private/gl_handle_types_p.h> +#include <gl_handle_types_p.h> +#include <glbuffer_p.h> +#include <shaderparameterpack_p.h> +#include <graphicshelperinterface_p.h> #include <qmath.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperes2.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes2.cpp index 5f77dd376..ba00325b1 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelperes2.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes2.cpp @@ -40,8 +40,8 @@ #include "graphicshelperes2_p.h" #include <Qt3DRender/private/renderlogging_p.h> #include <private/attachmentpack_p.h> -#include <private/qgraphicsutils_p.h> -#include <private/renderbuffer_p.h> +#include <qgraphicsutils_p.h> +#include <renderbuffer_p.h> #include <QtGui/private/qopenglextensions_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperes2_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes2_p.h index 882931ad9..902bd5fb2 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelperes2_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes2_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <Qt3DRender/private/graphicshelperinterface_p.h> +#include <graphicshelperinterface_p.h> #include <QOpenGLContext> #include <QOpenGLFunctions> diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3.cpp index 5e5d2e001..6e299199f 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3.cpp @@ -40,7 +40,7 @@ #include "graphicshelperes3_p.h" #include <private/attachmentpack_p.h> -#include <private/qgraphicsutils_p.h> +#include <qgraphicsutils_p.h> #include <private/renderlogging_p.h> #include <QOpenGLExtraFunctions> diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_1.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_1.cpp index 9c424d962..dc042b0c6 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_1.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_1.cpp @@ -38,7 +38,7 @@ ****************************************************************************/ #include "graphicshelperes3_1_p.h" -#include <private/qgraphicsutils_p.h> +#include <qgraphicsutils_p.h> #include <QOpenGLExtraFunctions> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_1_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_1_p.h index 43d9ae7dd..7eab61c60 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_1_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_1_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <Qt3DRender/private/graphicshelperes3_p.h> +#include <graphicshelperes3_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_2.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_2.cpp index 9d0988410..9d0988410 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_2.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_2.cpp diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_2_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_2_p.h index 6b1a893d4..9552e656a 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_2_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_2_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <Qt3DRender/private/graphicshelperes3_1_p.h> +#include <graphicshelperes3_1_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_p.h index dc5cef10c..c985ba24a 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_p.h @@ -52,7 +52,7 @@ // We mean it. // -#include <Qt3DRender/private/graphicshelperes2_p.h> +#include <graphicshelperes2_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl2.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl2.cpp index b9ee16acb..3afc29d2f 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl2.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl2.cpp @@ -42,7 +42,7 @@ #include <QOpenGLFunctions_2_0> #include <private/attachmentpack_p.h> #include <QtOpenGLExtensions/QOpenGLExtensions> -#include <private/qgraphicsutils_p.h> +#include <qgraphicsutils_p.h> #include <Qt3DRender/private/renderlogging_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl2_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl2_p.h index eb85b8537..35391471f 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl2_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl2_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <Qt3DRender/private/graphicshelperinterface_p.h> +#include <graphicshelperinterface_p.h> #ifndef QT_OPENGL_ES_2 diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl3_2.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl3_2.cpp index f20491358..17850cf00 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl3_2.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl3_2.cpp @@ -45,7 +45,7 @@ #include <QtOpenGLExtensions/qopenglextensions.h> #include <Qt3DRender/private/renderlogging_p.h> #include <private/attachmentpack_p.h> -#include <private/qgraphicsutils_p.h> +#include <qgraphicsutils_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl3_2_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl3_2_p.h index 914afc9ff..b6b2f7141 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl3_2_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl3_2_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <Qt3DRender/private/graphicshelperinterface_p.h> +#include <graphicshelperinterface_p.h> #include <QtCore/qscopedpointer.h> #ifndef QT_OPENGL_ES_2 diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl3_3.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl3_3.cpp index ddffb38e2..3d8e2acfc 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl3_3.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl3_3.cpp @@ -44,7 +44,7 @@ #include <QtOpenGLExtensions/qopenglextensions.h> #include <Qt3DRender/private/renderlogging_p.h> #include <private/attachmentpack_p.h> -#include <private/qgraphicsutils_p.h> +#include <qgraphicsutils_p.h> # ifndef QT_OPENGL_3_2 # define GL_PATCH_VERTICES 36466 diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl3_3_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl3_3_p.h index 4dbf6fe7b..8d8525111 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl3_3_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl3_3_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <Qt3DRender/private/graphicshelperinterface_p.h> +#include <graphicshelperinterface_p.h> #include <QtCore/qscopedpointer.h> #ifndef QT_OPENGL_ES_2 diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl4.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl4.cpp index 60caed273..775dd7935 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl4.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl4.cpp @@ -44,7 +44,7 @@ #include <QtOpenGLExtensions/qopenglextensions.h> #include <Qt3DRender/private/renderlogging_p.h> #include <private/attachmentpack_p.h> -#include <private/qgraphicsutils_p.h> +#include <qgraphicsutils_p.h> # ifndef QT_OPENGL_4_3 # ifndef GL_PATCH_VERTICES diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl4_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl4_p.h index d3ce0d079..02cb7e211 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl4_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl4_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <Qt3DRender/private/graphicshelperinterface_p.h> +#include <graphicshelperinterface_p.h> #include <QtCore/qscopedpointer.h> #ifndef QT_OPENGL_ES_2 diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperinterface_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperinterface_p.h index 21146c32b..aa2b65c66 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelperinterface_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperinterface_p.h @@ -54,7 +54,7 @@ #include <QOpenGLFunctions> #include <QOpenGLTexture> #include <QVector> -#include <Qt3DRender/private/shadervariables_p.h> +#include <shadervariables_p.h> #include <Qt3DRender/private/uniform_p.h> #include <Qt3DRender/qmemorybarrier.h> diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelpers.pri b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpers.pri index f2f7274d7..3cfa445ce 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelpers.pri +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpers.pri @@ -3,7 +3,6 @@ INCLUDEPATH += $$PWD HEADERS += \ - $$PWD/glfence_p.h \ $$PWD/graphicscontext_p.h \ $$PWD/graphicshelperinterface_p.h \ $$PWD/graphicshelperes2_p.h \ @@ -16,7 +15,8 @@ HEADERS += \ $$PWD/graphicshelpergl3_2_p.h \ $$PWD/imagesubmissioncontext_p.h \ $$PWD/submissioncontext_p.h \ - $$PWD/texturesubmissioncontext_p.h + $$PWD/texturesubmissioncontext_p.h \ + $$PWD/qgraphicsutils_p.h SOURCES += \ $$PWD/graphicscontext.cpp \ diff --git a/src/render/renderers/opengl/graphicshelpers/imagesubmissioncontext.cpp b/src/plugins/renderers/opengl/graphicshelpers/imagesubmissioncontext.cpp index ca600f994..cd2b33fb4 100644 --- a/src/render/renderers/opengl/graphicshelpers/imagesubmissioncontext.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/imagesubmissioncontext.cpp @@ -38,10 +38,10 @@ ****************************************************************************/ #include "imagesubmissioncontext_p.h" -#include <Qt3DRender/private/graphicscontext_p.h> -#include <Qt3DRender/private/gltexture_p.h> #include <Qt3DRender/private/shaderimage_p.h> #include <Qt3DRender/qshaderimage.h> +#include <graphicscontext_p.h> +#include <gltexture_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/graphicshelpers/imagesubmissioncontext_p.h b/src/plugins/renderers/opengl/graphicshelpers/imagesubmissioncontext_p.h index 6d39f469b..6d39f469b 100644 --- a/src/render/renderers/opengl/graphicshelpers/imagesubmissioncontext_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/imagesubmissioncontext_p.h diff --git a/src/render/backend/qgraphicsutils_p.h b/src/plugins/renderers/opengl/graphicshelpers/qgraphicsutils_p.h index 40ff99f0e..efc952ea5 100644 --- a/src/render/backend/qgraphicsutils_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/qgraphicsutils_p.h @@ -52,7 +52,6 @@ // #include <Qt3DRender/qt3drender_global.h> -#include <Qt3DRender/private/shadervariables_p.h> #include <QMatrix2x2> #include <QMatrix3x3> #include <QMatrix4x4> @@ -60,6 +59,7 @@ #include <QVector2D> #include <QVarLengthArray> #include <QColor> +#include <shadervariables_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp b/src/plugins/renderers/opengl/graphicshelpers/submissioncontext.cpp index 8afec233d..9501b0b52 100644 --- a/src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/submissioncontext.cpp @@ -45,25 +45,25 @@ #include <Qt3DRender/private/renderlogging_p.h> #include <Qt3DRender/private/shader_p.h> #include <Qt3DRender/private/material_p.h> -#include <Qt3DRender/private/gltexture_p.h> #include <Qt3DRender/private/buffer_p.h> #include <Qt3DRender/private/attribute_p.h> -#include <Qt3DRender/private/rendercommand_p.h> #include <Qt3DRender/private/renderstates_p.h> #include <Qt3DRender/private/renderstateset_p.h> #include <Qt3DRender/private/rendertarget_p.h> -#include <Qt3DRender/private/graphicshelperinterface_p.h> -#include <Qt3DRender/private/renderer_p.h> -#include <Qt3DRender/private/glresourcemanagers_p.h> #include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/private/buffermanager_p.h> #include <Qt3DRender/private/managers_p.h> #include <Qt3DRender/private/attachmentpack_p.h> #include <Qt3DRender/private/qbuffer_p.h> -#include <Qt3DRender/private/renderbuffer_p.h> #include <Qt3DRender/private/stringtoint_p.h> -#include <Qt3DRender/private/glshader_p.h> -#include <Qt3DRender/private/openglvertexarrayobject_p.h> +#include <gltexture_p.h> +#include <rendercommand_p.h> +#include <graphicshelperinterface_p.h> +#include <renderer_p.h> +#include <glresourcemanagers_p.h> +#include <renderbuffer_p.h> +#include <glshader_p.h> +#include <openglvertexarrayobject_p.h> #include <QOpenGLShaderProgram> #if !defined(QT_OPENGL_ES_2) @@ -71,13 +71,13 @@ #include <QOpenGLFunctions_3_2_Core> #include <QOpenGLFunctions_3_3_Core> #include <QOpenGLFunctions_4_3_Core> -#include <Qt3DRender/private/graphicshelpergl2_p.h> -#include <Qt3DRender/private/graphicshelpergl3_2_p.h> -#include <Qt3DRender/private/graphicshelpergl3_3_p.h> -#include <Qt3DRender/private/graphicshelpergl4_p.h> +#include <graphicshelpergl2_p.h> +#include <graphicshelpergl3_2_p.h> +#include <graphicshelpergl3_3_p.h> +#include <graphicshelpergl4_p.h> #endif -#include <Qt3DRender/private/graphicshelperes2_p.h> -#include <Qt3DRender/private/graphicshelperes3_p.h> +#include <graphicshelperes2_p.h> +#include <graphicshelperes3_p.h> #include <private/qdebug_p.h> #include <QSurface> diff --git a/src/render/renderers/opengl/graphicshelpers/submissioncontext_p.h b/src/plugins/renderers/opengl/graphicshelpers/submissioncontext_p.h index e7a31e6ce..16eca07ea 100644 --- a/src/render/renderers/opengl/graphicshelpers/submissioncontext_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/submissioncontext_p.h @@ -53,14 +53,14 @@ // -#include <Qt3DRender/private/graphicscontext_p.h> -#include <Qt3DRender/private/texturesubmissioncontext_p.h> -#include <Qt3DRender/private/imagesubmissioncontext_p.h> +#include <glbuffer_p.h> +#include <glfence_p.h> +#include <graphicscontext_p.h> +#include <texturesubmissioncontext_p.h> +#include <imagesubmissioncontext_p.h> #include <Qt3DRender/qclearbuffers.h> -#include <Qt3DRender/private/glbuffer_p.h> #include <Qt3DRender/qattribute.h> #include <Qt3DRender/private/handle_types_p.h> -#include <Qt3DRender/private/glfence_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/graphicshelpers/texturesubmissioncontext.cpp b/src/plugins/renderers/opengl/graphicshelpers/texturesubmissioncontext.cpp index 67d0f9976..4f2ff80f5 100644 --- a/src/render/renderers/opengl/graphicshelpers/texturesubmissioncontext.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/texturesubmissioncontext.cpp @@ -39,8 +39,8 @@ #include "texturesubmissioncontext_p.h" -#include <Qt3DRender/private/graphicscontext_p.h> -#include <Qt3DRender/private/gltexture_p.h> +#include <graphicscontext_p.h> +#include <gltexture_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/graphicshelpers/texturesubmissioncontext_p.h b/src/plugins/renderers/opengl/graphicshelpers/texturesubmissioncontext_p.h index 3c84fe558..3c84fe558 100644 --- a/src/render/renderers/opengl/graphicshelpers/texturesubmissioncontext_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/texturesubmissioncontext_p.h diff --git a/src/render/renderers/opengl/io/glbuffer.cpp b/src/plugins/renderers/opengl/io/glbuffer.cpp index f1b860f03..53fc50cb9 100644 --- a/src/render/renderers/opengl/io/glbuffer.cpp +++ b/src/plugins/renderers/opengl/io/glbuffer.cpp @@ -38,7 +38,7 @@ ****************************************************************************/ #include "glbuffer_p.h" -#include <private/graphicscontext_p.h> +#include <graphicscontext_p.h> #if !defined(GL_UNIFORM_BUFFER) #define GL_UNIFORM_BUFFER 0x8A11 diff --git a/src/render/renderers/opengl/io/glbuffer_p.h b/src/plugins/renderers/opengl/io/glbuffer_p.h index 731634b6b..731634b6b 100644 --- a/src/render/renderers/opengl/io/glbuffer_p.h +++ b/src/plugins/renderers/opengl/io/glbuffer_p.h diff --git a/src/render/renderers/opengl/io/io.pri b/src/plugins/renderers/opengl/io/io.pri index 462978c4d..462978c4d 100644 --- a/src/render/renderers/opengl/io/io.pri +++ b/src/plugins/renderers/opengl/io/io.pri diff --git a/src/render/renderers/opengl/jobs/filtercompatibletechniquejob.cpp b/src/plugins/renderers/opengl/jobs/filtercompatibletechniquejob.cpp index d2a01eef4..95e8862ef 100644 --- a/src/render/renderers/opengl/jobs/filtercompatibletechniquejob.cpp +++ b/src/plugins/renderers/opengl/jobs/filtercompatibletechniquejob.cpp @@ -40,9 +40,9 @@ #include "filtercompatibletechniquejob_p.h" #include <Qt3DRender/private/techniquemanager_p.h> #include <Qt3DRender/private/nodemanagers_p.h> -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/private/job_common_p.h> -#include <Qt3DRender/private/submissioncontext_p.h> +#include <renderer_p.h> +#include <submissioncontext_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/jobs/filtercompatibletechniquejob_p.h b/src/plugins/renderers/opengl/jobs/filtercompatibletechniquejob_p.h index 27b3d4ed2..27b3d4ed2 100644 --- a/src/render/renderers/opengl/jobs/filtercompatibletechniquejob_p.h +++ b/src/plugins/renderers/opengl/jobs/filtercompatibletechniquejob_p.h diff --git a/src/render/renderers/opengl/jobs/jobs.pri b/src/plugins/renderers/opengl/jobs/jobs.pri index d80b8bfd9..d80b8bfd9 100644 --- a/src/render/renderers/opengl/jobs/jobs.pri +++ b/src/plugins/renderers/opengl/jobs/jobs.pri diff --git a/src/render/renderers/opengl/jobs/materialparametergathererjob.cpp b/src/plugins/renderers/opengl/jobs/materialparametergathererjob.cpp index e1f8aa403..e1f8aa403 100644 --- a/src/render/renderers/opengl/jobs/materialparametergathererjob.cpp +++ b/src/plugins/renderers/opengl/jobs/materialparametergathererjob.cpp diff --git a/src/render/renderers/opengl/jobs/materialparametergathererjob_p.h b/src/plugins/renderers/opengl/jobs/materialparametergathererjob_p.h index 6ba060841..9fe0cdfee 100644 --- a/src/render/renderers/opengl/jobs/materialparametergathererjob_p.h +++ b/src/plugins/renderers/opengl/jobs/materialparametergathererjob_p.h @@ -54,8 +54,8 @@ #include <Qt3DCore/qaspectjob.h> #include <Qt3DCore/qnodeid.h> #include <Qt3DRender/private/handle_types_p.h> -#include <Qt3DRender/private/renderviewjobutils_p.h> #include <Qt3DRender/private/qt3drender_global_p.h> +#include <renderviewjobutils_p.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/renderers/opengl/jobs/renderviewbuilderjob.cpp b/src/plugins/renderers/opengl/jobs/renderviewbuilderjob.cpp new file mode 100644 index 000000000..5bfa9ed6f --- /dev/null +++ b/src/plugins/renderers/opengl/jobs/renderviewbuilderjob.cpp @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Paul Lemire +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "renderviewcommandupdaterjob_p.h" +#include <Qt3DRender/private/job_common_p.h> +#include <renderer_p.h> +#include <renderview_p.h> + +QT_BEGIN_NAMESPACE + +namespace Qt3DRender { + +namespace Render { + +namespace { +int renderViewInstanceCounter = 0; +} // anonymous + +RenderViewCommandUpdaterJob::RenderViewCommandUpdaterJob() + : Qt3DCore::QAspectJob() + , m_offset(0) + , m_count(0) + , m_renderView(nullptr) + , m_renderer(nullptr) + , m_renderables(nullptr) +{ + SET_JOB_RUN_STAT_TYPE(this, JobTypes::RenderCommandUpdater, renderViewInstanceCounter++); +} + +void RenderViewCommandUpdaterJob::run() +{ + // Build RenderCommand should perform the culling as we have no way to determine + // if a child has a mesh in the view frustum while its parent isn't contained in it. + if (!m_renderView->noDraw()) { + if (m_count == 0) + return; + // Update Render Commands (Uniform Change, Depth Change) + m_renderView->updateRenderCommand(m_renderables, m_offset, m_count); + } +} + +} // Render + +} // Qt3DRender + +QT_END_NAMESPACE diff --git a/src/plugins/renderers/opengl/jobs/renderviewbuilderjob_p.h b/src/plugins/renderers/opengl/jobs/renderviewbuilderjob_p.h new file mode 100644 index 000000000..6a171d281 --- /dev/null +++ b/src/plugins/renderers/opengl/jobs/renderviewbuilderjob_p.h @@ -0,0 +1,96 @@ +/**************************************************************************** +** +** Copyright (C) 2019 Klaralvdalens Datakonsult AB (KDAB). +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QT3DRENDER_RENDER_RENDERVIEWCOMMANDBUILDERJOB_P_H +#define QT3DRENDER_RENDER_RENDERVIEWCOMMANDBUILDERJOB_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of other Qt classes. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <Qt3DCore/qaspectjob.h> +#include <Qt3DRender/private/handle_types_p.h> +#include <rendercommand_p.h> + +QT_BEGIN_NAMESPACE + +namespace Qt3DRender { + +namespace Render { + +class Q_AUTOTEST_EXPORT RenderViewCommandBuilderJob : public Qt3DCore::QAspectJob +{ +public: + RenderViewCommandBuilderJob(); + + inline void setRenderView(RenderView *rv) Q_DECL_NOTHROW { m_renderView = rv; } + inline void setEntities(const QVector<Entity *> &entities, int offset, int count) + { + m_offset = offset; + m_count = count; + m_entities = entities; + } + inline EntityRenderCommandData &commandData() { return m_commandData; } + + void run() final; + +private: + int m_offset; + int m_count; + RenderView *m_renderView; + QVector<Entity *> m_entities; + EntityRenderCommandData m_commandData; +}; + +typedef QSharedPointer<RenderViewCommandBuilderJob> RenderViewCommandBuilderJobPtr; + +} // Render + +} // Qt3DRender + +QT_END_NAMESPACE + +#endif // QT3DRENDER_RENDER_RENDERVIEWCOMMANDBUILDERJOB_P_H diff --git a/src/render/renderers/opengl/jobs/renderviewcommandbuilderjob.cpp b/src/plugins/renderers/opengl/jobs/renderviewcommandbuilderjob.cpp index 091d49ef5..00cfba558 100644 --- a/src/render/renderers/opengl/jobs/renderviewcommandbuilderjob.cpp +++ b/src/plugins/renderers/opengl/jobs/renderviewcommandbuilderjob.cpp @@ -39,7 +39,7 @@ #include "renderviewcommandbuilderjob_p.h" #include <Qt3DRender/private/job_common_p.h> -#include <Qt3DRender/private/renderview_p.h> +#include <renderview_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/jobs/renderviewcommandbuilderjob_p.h b/src/plugins/renderers/opengl/jobs/renderviewcommandbuilderjob_p.h index 556c7f241..6a171d281 100644 --- a/src/render/renderers/opengl/jobs/renderviewcommandbuilderjob_p.h +++ b/src/plugins/renderers/opengl/jobs/renderviewcommandbuilderjob_p.h @@ -53,7 +53,7 @@ #include <Qt3DCore/qaspectjob.h> #include <Qt3DRender/private/handle_types_p.h> -#include <Qt3DRender/private/rendercommand_p.h> +#include <rendercommand_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/jobs/renderviewcommandupdaterjob.cpp b/src/plugins/renderers/opengl/jobs/renderviewcommandupdaterjob.cpp index 6772279d7..1b7cae229 100644 --- a/src/render/renderers/opengl/jobs/renderviewcommandupdaterjob.cpp +++ b/src/plugins/renderers/opengl/jobs/renderviewcommandupdaterjob.cpp @@ -39,8 +39,8 @@ #include "renderviewcommandupdaterjob_p.h" #include <Qt3DRender/private/job_common_p.h> -#include <Qt3DRender/private/renderer_p.h> -#include <Qt3DRender/private/renderview_p.h> +#include <renderer_p.h> +#include <renderview_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/jobs/renderviewcommandupdaterjob_p.h b/src/plugins/renderers/opengl/jobs/renderviewcommandupdaterjob_p.h index d7f424966..88961d848 100644 --- a/src/render/renderers/opengl/jobs/renderviewcommandupdaterjob_p.h +++ b/src/plugins/renderers/opengl/jobs/renderviewcommandupdaterjob_p.h @@ -53,7 +53,7 @@ #include <Qt3DCore/qaspectjob.h> #include <Qt3DRender/private/handle_types_p.h> -#include <Qt3DRender/private/rendercommand_p.h> +#include <rendercommand_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/jobs/renderviewinitializerjob.cpp b/src/plugins/renderers/opengl/jobs/renderviewinitializerjob.cpp index f0f72803c..c1b97959f 100644 --- a/src/render/renderers/opengl/jobs/renderviewinitializerjob.cpp +++ b/src/plugins/renderers/opengl/jobs/renderviewinitializerjob.cpp @@ -40,9 +40,9 @@ #include "renderviewinitializerjob_p.h" -#include <Qt3DRender/private/renderview_p.h> -#include <Qt3DRender/private/renderer_p.h> -#include <Qt3DRender/private/renderviewjobutils_p.h> +#include <renderview_p.h> +#include <renderer_p.h> +#include <renderviewjobutils_p.h> #include <Qt3DRender/private/renderlogging_p.h> #include <Qt3DRender/private/job_common_p.h> diff --git a/src/render/renderers/opengl/jobs/renderviewinitializerjob_p.h b/src/plugins/renderers/opengl/jobs/renderviewinitializerjob_p.h index fb4e2c67c..fb4e2c67c 100644 --- a/src/render/renderers/opengl/jobs/renderviewinitializerjob_p.h +++ b/src/plugins/renderers/opengl/jobs/renderviewinitializerjob_p.h diff --git a/src/render/renderers/opengl/jobs/renderviewjobutils.cpp b/src/plugins/renderers/opengl/jobs/renderviewjobutils.cpp index 39917fb58..c454aff77 100644 --- a/src/render/renderers/opengl/jobs/renderviewjobutils.cpp +++ b/src/plugins/renderers/opengl/jobs/renderviewjobutils.cpp @@ -38,7 +38,7 @@ ****************************************************************************/ #include "renderviewjobutils_p.h" -#include "renderlogging_p.h" +#include <Qt3DRender/private/renderlogging_p.h> #include <Qt3DRender/qgraphicsapifilter.h> #include <Qt3DRender/private/sphere_p.h> @@ -50,13 +50,10 @@ #include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/private/effect_p.h> #include <Qt3DRender/private/renderpassfilternode_p.h> -#include <Qt3DRender/private/renderstateset_p.h> #include <Qt3DRender/private/rendertargetselectornode_p.h> -#include <Qt3DRender/private/renderview_p.h> #include <Qt3DRender/private/sortpolicy_p.h> #include <Qt3DRender/private/techniquefilternode_p.h> #include <Qt3DRender/private/viewportnode_p.h> -#include <Qt3DRender/private/shadervariables_p.h> #include <Qt3DRender/private/managers_p.h> #include <Qt3DRender/private/shaderdata_p.h> #include <Qt3DRender/private/statesetnode_p.h> @@ -69,6 +66,9 @@ #include <Qt3DRender/private/memorybarrier_p.h> #include <Qt3DRender/private/blitframebuffer_p.h> #include <Qt3DRender/private/waitfence_p.h> +#include <Qt3DRender/private/renderstateset_p.h> +#include <renderview_p.h> +#include <shadervariables_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/jobs/renderviewjobutils_p.h b/src/plugins/renderers/opengl/jobs/renderviewjobutils_p.h index b2fa59785..b2fa59785 100644 --- a/src/render/renderers/opengl/jobs/renderviewjobutils_p.h +++ b/src/plugins/renderers/opengl/jobs/renderviewjobutils_p.h diff --git a/src/plugins/renderers/opengl/main.cpp b/src/plugins/renderers/opengl/main.cpp new file mode 100644 index 000000000..61e796788 --- /dev/null +++ b/src/plugins/renderers/opengl/main.cpp @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Klaralvdalens Datakonsult AB (KDAB). +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <Qt3DRender/private/qrendererplugin_p.h> +#include <renderer_p.h> + +QT_BEGIN_NAMESPACE + +class OpenGLRendererPlugin : public Qt3DRender::Render::QRendererPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID QRendererPluginFactoryInterface_iid FILE "openglrenderer.json") + + Qt3DRender::Render::AbstractRenderer *create(const QString &key, Qt3DRender::QRenderAspect::RenderType renderMode) override + { + Q_UNUSED(key) + return new Qt3DRender::Render::Renderer(renderMode); + } +}; + +QT_END_NAMESPACE + +#include "main.moc" diff --git a/src/render/renderers/opengl/managers/gl_handle_types_p.h b/src/plugins/renderers/opengl/managers/gl_handle_types_p.h index eb25bab7f..eb25bab7f 100644 --- a/src/render/renderers/opengl/managers/gl_handle_types_p.h +++ b/src/plugins/renderers/opengl/managers/gl_handle_types_p.h diff --git a/src/render/renderers/opengl/managers/glresourcemanagers.cpp b/src/plugins/renderers/opengl/managers/glresourcemanagers.cpp index 2b1b87925..67a7422aa 100644 --- a/src/render/renderers/opengl/managers/glresourcemanagers.cpp +++ b/src/plugins/renderers/opengl/managers/glresourcemanagers.cpp @@ -38,8 +38,6 @@ ****************************************************************************/ #include "glresourcemanagers_p.h" -#include <Qt3DRender/private/glbuffer_p.h> -#include <QOpenGLVertexArrayObject> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/managers/glresourcemanagers_p.h b/src/plugins/renderers/opengl/managers/glresourcemanagers_p.h index 8c4c46bca..3597e6965 100644 --- a/src/render/renderers/opengl/managers/glresourcemanagers_p.h +++ b/src/plugins/renderers/opengl/managers/glresourcemanagers_p.h @@ -53,11 +53,11 @@ #include <Qt3DRender/private/qt3drender_global_p.h> #include <Qt3DCore/private/qresourcemanager_p.h> -#include <Qt3DRender/private/gltexture_p.h> -#include <Qt3DRender/private/glbuffer_p.h> -#include <Qt3DRender/private/glfence_p.h> -#include <Qt3DRender/private/openglvertexarrayobject_p.h> -#include <Qt3DRender/private/glshader_p.h> +#include <gltexture_p.h> +#include <glbuffer_p.h> +#include <glfence_p.h> +#include <openglvertexarrayobject_p.h> +#include <glshader_p.h> #include <Qt3DRender/private/apishadermanager_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/managers/managers.pri b/src/plugins/renderers/opengl/managers/managers.pri index 56a0732b1..97a4c2c45 100644 --- a/src/render/renderers/opengl/managers/managers.pri +++ b/src/plugins/renderers/opengl/managers/managers.pri @@ -3,7 +3,6 @@ INCLUDEPATH += $$PWD HEADERS += \ $$PWD/gl_handle_types_p.h \ $$PWD/glresourcemanagers_p.h - $$PWD/glshadermanager_p.h \ SOURCES += \ $$PWD/glresourcemanagers.cpp diff --git a/src/render/renderers/opengl/opengl.pri b/src/plugins/renderers/opengl/opengl.pri index c647be906..8ae4a11af 100644 --- a/src/render/renderers/opengl/opengl.pri +++ b/src/plugins/renderers/opengl/opengl.pri @@ -4,9 +4,13 @@ include (jobs/jobs.pri) include (io/io.pri) include (textures/textures.pri) include (graphicshelpers/graphicshelpers.pri) -include (renderstates/renderstates.pri) include (managers/managers.pri) +INCLUDEPATH += $$PWD + +# Qt3D is free of Q_FOREACH - make sure it stays that way: +DEFINES += QT_NO_FOREACH + gcov { QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage QMAKE_LFLAGS += -fprofile-arcs -ftest-coverage diff --git a/src/plugins/renderers/opengl/opengl.pro b/src/plugins/renderers/opengl/opengl.pro new file mode 100644 index 000000000..c04503ec1 --- /dev/null +++ b/src/plugins/renderers/opengl/opengl.pro @@ -0,0 +1,28 @@ +TARGET = openglrenderer +QT += core-private gui-private 3dcore 3dcore-private 3drender 3drender-private +QT_PRIVATE = openglextensions + +# Qt3D is free of Q_FOREACH - make sure it stays that way: +DEFINES += QT_NO_FOREACH + +SOURCES += \ + main.cpp + +DISTFILES += \ + openglrenderer.json + +include(opengl.pri) + +qtConfig(qt3d-simd-avx2) { + CONFIG += simd + QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_AVX2 +} + +qtConfig(qt3d-simd-sse2):!qtConfig(qt3d-simd-avx2) { + CONFIG += simd + QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSE2 +} + +PLUGIN_TYPE = renderers +PLUGIN_CLASS_NAME = OpenGLRendererPlugin +load(qt_plugin) diff --git a/src/plugins/renderers/opengl/openglrenderer.json b/src/plugins/renderers/opengl/openglrenderer.json new file mode 100644 index 000000000..6cafa2ffa --- /dev/null +++ b/src/plugins/renderers/opengl/openglrenderer.json @@ -0,0 +1,3 @@ +{ + "Keys": ["opengl"] +} diff --git a/src/render/backend/commandexecuter.cpp b/src/plugins/renderers/opengl/renderer/commandexecuter.cpp index 8e45fb924..6498b44b8 100644 --- a/src/render/backend/commandexecuter.cpp +++ b/src/plugins/renderers/opengl/renderer/commandexecuter.cpp @@ -36,19 +36,19 @@ #include "commandexecuter_p.h" -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DCore/private/qabstractaspect_p.h> #include <Qt3DCore/qbackendnode.h> -#include <Qt3DRender/private/graphicscontext_p.h> -#include <Qt3DRender/private/renderview_p.h> -#include <Qt3DRender/private/rendercommand_p.h> #include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/private/geometryrenderermanager_p.h> #include <Qt3DRender/private/stringtoint_p.h> -#include <Qt3DRender/private/submissioncontext_p.h> #include <QJsonObject> #include <QJsonDocument> #include <QJsonArray> +#include <graphicscontext_p.h> +#include <renderview_p.h> +#include <rendercommand_p.h> +#include <renderer_p.h> +#include <submissioncontext_p.h> QT_BEGIN_NAMESPACE @@ -349,7 +349,7 @@ void CommandExecuter::performAsynchronousCommandExecution(const QVector<Render:: for (const Render::RenderCommand &c : v->commands()) { QJsonObject commandObj; Render::NodeManagers *nodeManagers = m_renderer->nodeManagers(); - commandObj.insert(QLatin1String("shader"), int(c.m_shaderId.id())); + commandObj.insert(QLatin1String("shader"), typeToJsonValue(QVariant::fromValue(c.m_shaderId))); commandObj.insert(QLatin1String("vao"), double(c.m_vao.handle())); commandObj.insert(QLatin1String("instanceCount"), c.m_instanceCount); commandObj.insert(QLatin1String("geometry"), backendNodeToJSon(c.m_geometry, nodeManagers->geometryManager())); diff --git a/src/render/backend/commandexecuter_p.h b/src/plugins/renderers/opengl/renderer/commandexecuter_p.h index 2d90bf4d6..2d90bf4d6 100644 --- a/src/render/backend/commandexecuter_p.h +++ b/src/plugins/renderers/opengl/renderer/commandexecuter_p.h diff --git a/src/render/renderers/opengl/graphicshelpers/glfence_p.h b/src/plugins/renderers/opengl/renderer/glfence_p.h index 366065048..366065048 100644 --- a/src/render/renderers/opengl/graphicshelpers/glfence_p.h +++ b/src/plugins/renderers/opengl/renderer/glfence_p.h diff --git a/src/render/renderers/opengl/renderer/glshader.cpp b/src/plugins/renderers/opengl/renderer/glshader.cpp index a6f118d65..02fa2de6d 100644 --- a/src/render/renderers/opengl/renderer/glshader.cpp +++ b/src/plugins/renderers/opengl/renderer/glshader.cpp @@ -39,8 +39,8 @@ #include "glshader_p.h" #include <QMutexLocker> -#include <Qt3DRender/private/graphicscontext_p.h> #include <Qt3DRender/private/stringtoint_p.h> +#include <graphicscontext_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/renderer/glshader_p.h b/src/plugins/renderers/opengl/renderer/glshader_p.h index dec085291..18293ac54 100644 --- a/src/render/renderers/opengl/renderer/glshader_p.h +++ b/src/plugins/renderers/opengl/renderer/glshader_p.h @@ -52,8 +52,8 @@ // -#include <Qt3DRender/private/shadervariables_p.h> -#include <Qt3DRender/private/shaderparameterpack_p.h> +#include <shadervariables_p.h> +#include <shaderparameterpack_p.h> #include <Qt3DRender/qshaderprogram.h> #include <QMutex> diff --git a/src/plugins/renderers/opengl/renderer/logging.cpp b/src/plugins/renderers/opengl/renderer/logging.cpp new file mode 100644 index 000000000..ab7437eba --- /dev/null +++ b/src/plugins/renderers/opengl/renderer/logging.cpp @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Klaralvdalens Datakonsult AB (KDAB). +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "logging_p.h" + +QT_BEGIN_NAMESPACE + +namespace Qt3DRender { + +namespace Render { + +Q_LOGGING_CATEGORY(Backend, "Qt3D.Renderer.OpenGL.Backend", QtWarningMsg) +Q_LOGGING_CATEGORY(Frontend, "Qt3D.Renderer.OpenGL.Frontend", QtWarningMsg) +Q_LOGGING_CATEGORY(Io, "Qt3D.Renderer.OpenGL.IO", QtWarningMsg) +Q_LOGGING_CATEGORY(Jobs, "Qt3D.Renderer.OpenGL.Jobs", QtWarningMsg) +Q_LOGGING_CATEGORY(SceneLoaders, "Qt3D.Renderer.OpenGL.SceneLoaders", QtWarningMsg) +Q_LOGGING_CATEGORY(Framegraph, "Qt3D.Renderer.OpenGL.Framegraph", QtWarningMsg) +Q_LOGGING_CATEGORY(RenderNodes, "Qt3D.Renderer.OpenGL.RenderNodes", QtWarningMsg) +Q_LOGGING_CATEGORY(Rendering, "Qt3D.Renderer.OpenGL.Rendering", QtWarningMsg) +Q_LOGGING_CATEGORY(Memory, "Qt3D.Renderer.OpenGL.Memory", QtWarningMsg) +Q_LOGGING_CATEGORY(Shaders, "Qt3D.Renderer.OpenGL.Shaders", QtWarningMsg) +Q_LOGGING_CATEGORY(RenderStates, "Qt3D.Renderer.OpenGL.RenderStates", QtWarningMsg) +Q_LOGGING_CATEGORY(VSyncAdvanceService, "Qt3D.Renderer.OpenGL.VsyncAdvanceService", QtWarningMsg) + +} // namespace Render + +} // namespace Qt3DRender + +QT_END_NAMESPACE diff --git a/src/plugins/renderers/opengl/renderer/logging_p.h b/src/plugins/renderers/opengl/renderer/logging_p.h new file mode 100644 index 000000000..8a550e22f --- /dev/null +++ b/src/plugins/renderers/opengl/renderer/logging_p.h @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Klaralvdalens Datakonsult AB (KDAB). +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QT3DRENDER_RENDER_OPENGL_RENDERLOGGING_P_H +#define QT3DRENDER_RENDER_OPENGL_RENDERLOGGING_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of other Qt classes. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QLoggingCategory> + +QT_BEGIN_NAMESPACE + +namespace Qt3DRender { + +namespace Render { + +Q_DECLARE_LOGGING_CATEGORY(Backend) +Q_DECLARE_LOGGING_CATEGORY(Frontend) +Q_DECLARE_LOGGING_CATEGORY(Io) +Q_DECLARE_LOGGING_CATEGORY(Jobs) +Q_DECLARE_LOGGING_CATEGORY(SceneLoaders) +Q_DECLARE_LOGGING_CATEGORY(Framegraph) +Q_DECLARE_LOGGING_CATEGORY(RenderNodes) +Q_DECLARE_LOGGING_CATEGORY(Rendering) +Q_DECLARE_LOGGING_CATEGORY(Memory) +Q_DECLARE_LOGGING_CATEGORY(Shaders) +Q_DECLARE_LOGGING_CATEGORY(RenderStates) +Q_DECLARE_LOGGING_CATEGORY(VSyncAdvanceService) + +} // namespace Render + +} // namespace Qt3DRender + +QT_END_NAMESPACE + +#endif // QT3DRENDER_RENDER_OPENGL_RENDERLOGGING_P_H diff --git a/src/render/renderers/opengl/renderer/openglvertexarrayobject.cpp b/src/plugins/renderers/opengl/renderer/openglvertexarrayobject.cpp index 25a850a79..19ae4fa55 100644 --- a/src/render/renderers/opengl/renderer/openglvertexarrayobject.cpp +++ b/src/plugins/renderers/opengl/renderer/openglvertexarrayobject.cpp @@ -38,9 +38,9 @@ ****************************************************************************/ #include "openglvertexarrayobject_p.h" -#include <Qt3DRender/private/submissioncontext_p.h> -#include <Qt3DRender/private/renderer_p.h> -#include <Qt3DRender/private/glresourcemanagers_p.h> +#include <submissioncontext_p.h> +#include <renderer_p.h> +#include <glresourcemanagers_p.h> #include <Qt3DRender/private/managers_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/renderer/openglvertexarrayobject_p.h b/src/plugins/renderers/opengl/renderer/openglvertexarrayobject_p.h index 362c699da..d422b5b8b 100644 --- a/src/render/renderers/opengl/renderer/openglvertexarrayobject_p.h +++ b/src/plugins/renderers/opengl/renderer/openglvertexarrayobject_p.h @@ -52,7 +52,7 @@ // #include <QtGui/qopenglvertexarrayobject.h> -#include <Qt3DRender/private/submissioncontext_p.h> +#include <submissioncontext_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/renderer/rendercommand.cpp b/src/plugins/renderers/opengl/renderer/rendercommand.cpp index c6d42fde1..c6d42fde1 100644 --- a/src/render/renderers/opengl/renderer/rendercommand.cpp +++ b/src/plugins/renderers/opengl/renderer/rendercommand.cpp diff --git a/src/render/renderers/opengl/renderer/rendercommand_p.h b/src/plugins/renderers/opengl/renderer/rendercommand_p.h index 44e34ecfb..600c52959 100644 --- a/src/render/renderers/opengl/renderer/rendercommand_p.h +++ b/src/plugins/renderers/opengl/renderer/rendercommand_p.h @@ -53,10 +53,10 @@ // #include <qglobal.h> -#include <Qt3DRender/private/shaderparameterpack_p.h> +#include <shaderparameterpack_p.h> +#include <gl_handle_types_p.h> +#include <renderviewjobutils_p.h> #include <Qt3DRender/private/handle_types_p.h> -#include <Qt3DRender/private/renderviewjobutils_p.h> -#include <Qt3DRender/private/gl_handle_types_p.h> #include <Qt3DRender/qgeometryrenderer.h> #include <QOpenGLShaderProgram> #include <QOpenGLTexture> diff --git a/src/render/renderers/opengl/renderer/renderer.cpp b/src/plugins/renderers/opengl/renderer/renderer.cpp index 8b0b80abf..a090f7abb 100644 --- a/src/render/renderers/opengl/renderer/renderer.cpp +++ b/src/plugins/renderers/opengl/renderer/renderer.cpp @@ -54,21 +54,15 @@ #include <Qt3DRender/private/renderstates_p.h> #include <Qt3DRender/private/cameraselectornode_p.h> #include <Qt3DRender/private/framegraphvisitor_p.h> -#include <Qt3DRender/private/graphicscontext_p.h> #include <Qt3DRender/private/cameralens_p.h> -#include <Qt3DRender/private/rendercommand_p.h> #include <Qt3DRender/private/entity_p.h> #include <Qt3DRender/private/renderlogging_p.h> #include <Qt3DRender/private/material_p.h> #include <Qt3DRender/private/renderpassfilternode_p.h> -#include <Qt3DRender/private/renderqueue_p.h> #include <Qt3DRender/private/shader_p.h> #include <Qt3DRender/private/buffer_p.h> -#include <Qt3DRender/private/glbuffer_p.h> -#include <Qt3DRender/private/renderstateset_p.h> #include <Qt3DRender/private/technique_p.h> #include <Qt3DRender/private/renderthread_p.h> -#include <Qt3DRender/private/renderview_p.h> #include <Qt3DRender/private/scenemanager_p.h> #include <Qt3DRender/private/techniquefilternode_p.h> #include <Qt3DRender/private/viewportnode_p.h> @@ -77,26 +71,18 @@ #include <Qt3DRender/private/managers_p.h> #include <Qt3DRender/private/buffermanager_p.h> #include <Qt3DRender/private/nodemanagers_p.h> -#include <Qt3DRender/private/gltexture_p.h> #include <Qt3DRender/private/geometryrenderermanager_p.h> #include <Qt3DRender/private/techniquemanager_p.h> -#include <Qt3DRender/private/openglvertexarrayobject_p.h> #include <Qt3DRender/private/platformsurfacefilter_p.h> #include <Qt3DRender/private/loadbufferjob_p.h> #include <Qt3DRender/private/rendercapture_p.h> #include <Qt3DRender/private/updatelevelofdetailjob_p.h> #include <Qt3DRender/private/buffercapture_p.h> #include <Qt3DRender/private/offscreensurfacehelper_p.h> -#include <Qt3DRender/private/renderviewbuilder_p.h> -#include <Qt3DRender/private/setfence_p.h> #include <Qt3DRender/private/subtreeenabler_p.h> #include <Qt3DRender/private/qshaderprogrambuilder_p.h> #include <Qt3DRender/private/qshaderprogram_p.h> #include <Qt3DRender/private/filterentitybycomponentjob_p.h> -#include <Qt3DRender/private/commandexecuter_p.h> - -#include <Qt3DRender/private/glresourcemanagers_p.h> -#include <Qt3DRender/private/resourceaccessor_p.h> #include <Qt3DRender/qcameralens.h> #include <Qt3DCore/private/qeventfilterservice_p.h> @@ -104,6 +90,21 @@ #include <Qt3DCore/private/qaspectmanager_p.h> #include <Qt3DCore/private/qsysteminformationservice_p.h> #include <Qt3DCore/private/qsysteminformationservice_p_p.h> +#include <Qt3DRender/private/resourceaccessor_p.h> +#include <Qt3DRender/private/renderlogging_p.h> +#include <Qt3DRender/private/renderstateset_p.h> +#include <Qt3DRender/private/setfence_p.h> + +#include <glbuffer_p.h> +#include <graphicscontext_p.h> +#include <rendercommand_p.h> +#include <renderqueue_p.h> +#include <renderview_p.h> +#include <gltexture_p.h> +#include <openglvertexarrayobject_p.h> +#include <renderviewbuilder_p.h> +#include <glresourcemanagers_p.h> +#include <commandexecuter_p.h> #include <QStack> #include <QOffscreenSurface> diff --git a/src/render/renderers/opengl/renderer/renderer.pri b/src/plugins/renderers/opengl/renderer/renderer.pri index 3e2f9fde9..0f68aa481 100644 --- a/src/render/renderers/opengl/renderer/renderer.pri +++ b/src/plugins/renderers/opengl/renderer/renderer.pri @@ -8,7 +8,9 @@ SOURCES += \ $$PWD/renderview.cpp \ $$PWD/renderviewbuilder.cpp \ $$PWD/shaderparameterpack.cpp \ - $$PWD/glshader.cpp + $$PWD/glshader.cpp \ + $$PWD/logging.cpp \ + $$PWD/commandexecuter.cpp HEADERS += \ $$PWD/openglvertexarrayobject_p.h \ @@ -20,5 +22,7 @@ HEADERS += \ $$PWD/renderviewbuilder_p.h \ $$PWD/shaderparameterpack_p.h \ $$PWD/shadervariables_p.h \ - $$PWD/glshader_p.h - + $$PWD/glshader_p.h \ + $$PWD/glfence_p.h \ + $$PWD/logging_p.h \ + $$PWD/commandexecuter_p.h diff --git a/src/render/renderers/opengl/renderer/renderer_p.h b/src/plugins/renderers/opengl/renderer/renderer_p.h index b9372dce9..eac622192 100644 --- a/src/render/renderers/opengl/renderer/renderer_p.h +++ b/src/plugins/renderers/opengl/renderer/renderer_p.h @@ -54,16 +54,13 @@ #include <Qt3DRender/qrenderaspect.h> #include <Qt3DRender/qtechnique.h> -#include <Qt3DRender/private/shaderparameterpack_p.h> #include <Qt3DRender/private/handle_types_p.h> -#include <Qt3DRender/private/gl_handle_types_p.h> #include <Qt3DRender/private/abstractrenderer_p.h> #include <Qt3DCore/qaspectjob.h> #include <Qt3DRender/private/qt3drender_global_p.h> #include <Qt3DRender/private/pickboundingvolumejob_p.h> #include <Qt3DRender/private/raycastingjob_p.h> #include <Qt3DRender/private/rendersettings_p.h> -#include <Qt3DRender/private/renderviewinitializerjob_p.h> #include <Qt3DRender/private/expandboundingvolumejob_p.h> #include <Qt3DRender/private/updateworldtransformjob_p.h> #include <Qt3DRender/private/calcboundingvolumejob_p.h> @@ -75,14 +72,19 @@ #include <Qt3DRender/private/sendbuffercapturejob_p.h> #include <Qt3DRender/private/genericlambdajob_p.h> #include <Qt3DRender/private/updatemeshtrianglelistjob_p.h> -#include <Qt3DRender/private/filtercompatibletechniquejob_p.h> #include <Qt3DRender/private/updateskinningpalettejob_p.h> #include <Qt3DRender/private/updateentitylayersjob_p.h> -#include <Qt3DRender/private/renderercache_p.h> -#include <Qt3DRender/private/texture_p.h> -#include <Qt3DRender/private/glfence_p.h> #include <Qt3DRender/private/shaderbuilder_p.h> #include <Qt3DRender/private/lightgatherer_p.h> +#include <Qt3DRender/private/texture_p.h> +#include <shaderparameterpack_p.h> +#include <renderviewinitializerjob_p.h> +#include <filtercompatibletechniquejob_p.h> +#include <renderercache_p.h> +#include <logging_p.h> +#include <gl_handle_types_p.h> +#include <glfence_p.h> +#include <renderercache_p.h> #include <QHash> #include <QMatrix4x4> diff --git a/src/render/renderers/opengl/renderer/renderercache_p.h b/src/plugins/renderers/opengl/renderer/renderercache_p.h index 02fe4ff41..70a5ef43c 100644 --- a/src/render/renderers/opengl/renderer/renderercache_p.h +++ b/src/plugins/renderers/opengl/renderer/renderercache_p.h @@ -54,9 +54,9 @@ #include <Qt3DRender/QFrameGraphNode> #include <Qt3DRender/private/entity_p.h> -#include <Qt3DRender/private/renderviewjobutils_p.h> +#include <renderviewjobutils_p.h> #include <Qt3DRender/private/lightsource_p.h> -#include <Qt3DRender/private/rendercommand_p.h> +#include <rendercommand_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/renderer/renderqueue.cpp b/src/plugins/renderers/opengl/renderer/renderqueue.cpp index bd9d3ee59..9ba66952f 100644 --- a/src/render/renderers/opengl/renderer/renderqueue.cpp +++ b/src/plugins/renderers/opengl/renderer/renderqueue.cpp @@ -38,7 +38,7 @@ ****************************************************************************/ #include "renderqueue_p.h" -#include <Qt3DRender/private/renderview_p.h> +#include <renderview_p.h> #include <QThread> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/renderer/renderqueue_p.h b/src/plugins/renderers/opengl/renderer/renderqueue_p.h index e565115f2..e565115f2 100644 --- a/src/render/renderers/opengl/renderer/renderqueue_p.h +++ b/src/plugins/renderers/opengl/renderer/renderqueue_p.h diff --git a/src/render/renderers/opengl/renderer/renderview.cpp b/src/plugins/renderers/opengl/renderer/renderview.cpp index d77eb3f07..bd4c98a01 100644 --- a/src/render/renderers/opengl/renderer/renderview.cpp +++ b/src/plugins/renderers/opengl/renderer/renderview.cpp @@ -50,17 +50,14 @@ #include <Qt3DRender/private/layerfilternode_p.h> #include <Qt3DRender/private/qparameter_p.h> #include <Qt3DRender/private/cameralens_p.h> -#include <Qt3DRender/private/rendercommand_p.h> #include <Qt3DRender/private/effect_p.h> #include <Qt3DRender/private/entity_p.h> -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/private/layer_p.h> #include <Qt3DRender/private/renderlogging_p.h> #include <Qt3DRender/private/renderpassfilternode_p.h> #include <Qt3DRender/private/renderpass_p.h> #include <Qt3DRender/private/geometryrenderer_p.h> -#include <Qt3DRender/private/renderstateset_p.h> #include <Qt3DRender/private/techniquefilternode_p.h> #include <Qt3DRender/private/viewportnode_p.h> #include <Qt3DRender/private/buffermanager_p.h> @@ -68,8 +65,13 @@ #include <Qt3DRender/private/rendercapture_p.h> #include <Qt3DRender/private/buffercapture_p.h> #include <Qt3DRender/private/stringtoint_p.h> -#include <Qt3DRender/private/submissioncontext_p.h> -#include <Qt3DRender/private/glresourcemanagers_p.h> +#include <Qt3DRender/private/renderlogging_p.h> +#include <Qt3DRender/private/renderstateset_p.h> +#include <rendercommand_p.h> +#include <renderer_p.h> +#include <graphicscontext_p.h> +#include <submissioncontext_p.h> +#include <glresourcemanagers_p.h> #include <Qt3DCore/qentity.h> #include <QtGui/qsurface.h> #include <algorithm> diff --git a/src/render/renderers/opengl/renderer/renderview_p.h b/src/plugins/renderers/opengl/renderer/renderview_p.h index 5741a88a5..c12ee627a 100644 --- a/src/render/renderers/opengl/renderer/renderview_p.h +++ b/src/plugins/renderers/opengl/renderer/renderview_p.h @@ -55,7 +55,6 @@ #include <Qt3DRender/qparameter.h> #include <Qt3DRender/qclearbuffers.h> #include <Qt3DRender/qlayerfilter.h> -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/private/clearbuffers_p.h> #include <Qt3DRender/private/cameralens_p.h> #include <Qt3DRender/private/attachmentpack_p.h> @@ -70,8 +69,9 @@ #include <Qt3DCore/private/qframeallocator_p.h> #include <Qt3DRender/private/aligned_malloc_p.h> +#include <renderer_p.h> // TODO: Move out once this is all refactored -#include <Qt3DRender/private/renderviewjobutils_p.h> +#include <renderviewjobutils_p.h> #include <QVector> #include <QSurface> @@ -98,19 +98,6 @@ class RenderPass; typedef QPair<ShaderUniform, QVariant> ActivePropertyContent; typedef QPair<QString, ActivePropertyContent > ActiveProperty; -struct Q_AUTOTEST_EXPORT Plane -{ - explicit Plane(const Vector4D &planeEquation) - : planeEquation(planeEquation) - , normal(Vector3D(planeEquation).normalized()) - , d(planeEquation.w() / Vector3D(planeEquation).length()) - {} - - const Vector4D planeEquation; - const Vector3D normal; - const float d; -}; - struct Q_AUTOTEST_EXPORT ClearBufferInfo { int drawBufferIndex = 0; diff --git a/src/render/renderers/opengl/renderer/renderviewbuilder.cpp b/src/plugins/renderers/opengl/renderer/renderviewbuilder.cpp index 8f1b17119..8f1b17119 100644 --- a/src/render/renderers/opengl/renderer/renderviewbuilder.cpp +++ b/src/plugins/renderers/opengl/renderer/renderviewbuilder.cpp diff --git a/src/render/renderers/opengl/renderer/renderviewbuilder_p.h b/src/plugins/renderers/opengl/renderer/renderviewbuilder_p.h index a2ab80e7e..71719abee 100644 --- a/src/render/renderers/opengl/renderer/renderviewbuilder_p.h +++ b/src/plugins/renderers/opengl/renderer/renderviewbuilder_p.h @@ -55,13 +55,14 @@ #include <Qt3DCore/qaspectjob.h> #include <Qt3DRender/private/filterlayerentityjob_p.h> #include <Qt3DRender/private/genericlambdajob_p.h> -#include <Qt3DRender/private/materialparametergathererjob_p.h> #include <Qt3DRender/private/nodemanagers_p.h> -#include <Qt3DRender/private/renderviewcommandbuilderjob_p.h> -#include <Qt3DRender/private/renderviewcommandupdaterjob_p.h> -#include <Qt3DRender/private/renderview_p.h> #include <Qt3DRender/private/frustumcullingjob_p.h> #include <Qt3DRender/private/filterproximitydistancejob_p.h> +#include <renderviewcommandbuilderjob_p.h> +#include <renderviewcommandupdaterjob_p.h> +#include <materialparametergathererjob_p.h> +#include <renderviewbuilderjob_p.h> +#include <renderview_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/renderer/shaderparameterpack.cpp b/src/plugins/renderers/opengl/renderer/shaderparameterpack.cpp index 1cfb59343..e3cc7baf7 100644 --- a/src/render/renderers/opengl/renderer/shaderparameterpack.cpp +++ b/src/plugins/renderers/opengl/renderer/shaderparameterpack.cpp @@ -39,7 +39,7 @@ #include "shaderparameterpack_p.h" -#include <Qt3DRender/private/graphicscontext_p.h> +#include <graphicscontext_p.h> #include <Qt3DRender/private/texture_p.h> #include <Qt3DCore/private/qframeallocator_p.h> diff --git a/src/render/renderers/opengl/renderer/shaderparameterpack_p.h b/src/plugins/renderers/opengl/renderer/shaderparameterpack_p.h index cb599124c..045081afd 100644 --- a/src/render/renderers/opengl/renderer/shaderparameterpack_p.h +++ b/src/plugins/renderers/opengl/renderer/shaderparameterpack_p.h @@ -57,8 +57,8 @@ #include <QOpenGLShaderProgram> #include <Qt3DCore/qnodeid.h> #include <Qt3DRender/private/renderlogging_p.h> -#include <Qt3DRender/private/shadervariables_p.h> #include <Qt3DRender/private/uniform_p.h> +#include <shadervariables_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/renderers/opengl/renderer/shadervariables_p.h b/src/plugins/renderers/opengl/renderer/shadervariables_p.h index e0fa07dff..e0fa07dff 100644 --- a/src/render/renderers/opengl/renderer/shadervariables_p.h +++ b/src/plugins/renderers/opengl/renderer/shadervariables_p.h diff --git a/src/render/renderers/opengl/textures/gltexture.cpp b/src/plugins/renderers/opengl/textures/gltexture.cpp index 20e6007a0..c79961d78 100644 --- a/src/render/renderers/opengl/textures/gltexture.cpp +++ b/src/plugins/renderers/opengl/textures/gltexture.cpp @@ -52,8 +52,8 @@ #include <Qt3DRender/qtextureimagedata.h> #include <Qt3DRender/private/managers_p.h> #include <Qt3DRender/private/qabstracttexture_p.h> -#include <Qt3DRender/private/renderbuffer_p.h> #include <Qt3DRender/private/qtextureimagedata_p.h> +#include <renderbuffer_p.h> #if !defined(QT_OPENGL_ES_2) #include <QOpenGLFunctions_3_1> diff --git a/src/render/renderers/opengl/textures/gltexture_p.h b/src/plugins/renderers/opengl/textures/gltexture_p.h index ca851712d..ca851712d 100644 --- a/src/render/renderers/opengl/textures/gltexture_p.h +++ b/src/plugins/renderers/opengl/textures/gltexture_p.h diff --git a/src/render/renderers/opengl/textures/renderbuffer.cpp b/src/plugins/renderers/opengl/textures/renderbuffer.cpp index bc5050f73..bc5050f73 100644 --- a/src/render/renderers/opengl/textures/renderbuffer.cpp +++ b/src/plugins/renderers/opengl/textures/renderbuffer.cpp diff --git a/src/render/renderers/opengl/textures/renderbuffer_p.h b/src/plugins/renderers/opengl/textures/renderbuffer_p.h index 7dc62492a..7dc62492a 100644 --- a/src/render/renderers/opengl/textures/renderbuffer_p.h +++ b/src/plugins/renderers/opengl/textures/renderbuffer_p.h diff --git a/src/render/renderers/opengl/textures/textures.pri b/src/plugins/renderers/opengl/textures/textures.pri index e17abfbb3..e17abfbb3 100644 --- a/src/render/renderers/opengl/textures/textures.pri +++ b/src/plugins/renderers/opengl/textures/textures.pri diff --git a/src/plugins/renderers/renderers.pro b/src/plugins/renderers/renderers.pro new file mode 100644 index 000000000..dc58bf7fc --- /dev/null +++ b/src/plugins/renderers/renderers.pro @@ -0,0 +1,9 @@ +TEMPLATE = subdirs + +# OpenGL renderer +include($$OUT_PWD/../../render/qt3drender-config.pri) +QT_FOR_CONFIG += 3drender-private + +#SUBDIRS += dummy + +qtConfig(qt3d-opengl-renderer): SUBDIRS += opengl diff --git a/src/quick3d/quick3dscene2d/items/scene2d.cpp b/src/quick3d/quick3dscene2d/items/scene2d.cpp index a2247705e..063464b95 100644 --- a/src/quick3d/quick3dscene2d/items/scene2d.cpp +++ b/src/quick3d/quick3dscene2d/items/scene2d.cpp @@ -45,12 +45,12 @@ #include <QtCore/qthread.h> #include <QtCore/qatomic.h> #include <QtGui/qevent.h> +#include <QtGui/QOpenGLFunctions> #include <private/qscene2d_p.h> #include <private/scene2d_p.h> #include <private/scene2dmanager_p.h> #include <private/scene2devent_p.h> -#include <private/graphicscontext_p.h> #include <private/texture_p.h> #include <private/nodemanagers_p.h> #include <private/resourceaccessor_p.h> diff --git a/src/render/backend/apishadermanager_p.h b/src/render/backend/apishadermanager_p.h index ec17b2196..9ebf49710 100644 --- a/src/render/backend/apishadermanager_p.h +++ b/src/render/backend/apishadermanager_p.h @@ -169,7 +169,7 @@ public: return std::move(m_updatedShaders); } - QVector<Qt3DCore::QNodeId> shaderIdsForProgram(GLShader *glShader) const + QVector<Qt3DCore::QNodeId> shaderIdsForProgram(APIShader *glShader) const { QReadLocker lock(&m_readWriteLock); return m_apiShaders.value(glShader); diff --git a/src/render/backend/attachmentpack_p.h b/src/render/backend/attachmentpack_p.h index a3a2586dd..32ea774b6 100644 --- a/src/render/backend/attachmentpack_p.h +++ b/src/render/backend/attachmentpack_p.h @@ -52,6 +52,7 @@ // #include <Qt3DRender/qrendertargetoutput.h> +#include <Qt3DRender/private/qt3drender_global_p.h> #include <QVector> QT_BEGIN_NAMESPACE @@ -59,7 +60,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { -struct Attachment +struct Q_3DRENDERSHARED_PRIVATE_EXPORT Attachment { Attachment() : m_mipLevel(0) @@ -80,7 +81,7 @@ class RenderTarget; class RenderTargetSelector; class AttachmentManager; -class AttachmentPack +class Q_3DRENDERSHARED_PRIVATE_EXPORT AttachmentPack { public: AttachmentPack(); diff --git a/src/render/backend/backendnode.cpp b/src/render/backend/backendnode.cpp index f85ece1b9..18e7af256 100644 --- a/src/render/backend/backendnode.cpp +++ b/src/render/backend/backendnode.cpp @@ -38,10 +38,11 @@ ****************************************************************************/ #include <private/backendnode_p.h> -#include <private/renderer_p.h> +#include <private/abstractrenderer_p.h> #include <private/resourceaccessor_p.h> #include <private/nodemanagers_p.h> #include <Qt3DCore/private/qbackendnode_p.h> +#include <Qt3DCore/qnode.h> QT_BEGIN_NAMESPACE diff --git a/src/render/backend/cameralens.cpp b/src/render/backend/cameralens.cpp index e1d72efda..ab74e8b56 100644 --- a/src/render/backend/cameralens.cpp +++ b/src/render/backend/cameralens.cpp @@ -39,10 +39,11 @@ #include "cameralens_p.h" #include <Qt3DRender/qcameralens.h> +#include <Qt3DRender/qrenderaspect.h> #include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/private/managers_p.h> #include <Qt3DRender/private/renderlogging_p.h> -#include <Qt3DRender/private/renderer_p.h> +#include <Qt3DRender/private/abstractrenderer_p.h> #include <Qt3DRender/private/entity_p.h> #include <Qt3DRender/private/sphere_p.h> #include <Qt3DRender/private/computefilteredboundingvolumejob_p.h> diff --git a/src/render/backend/computecommand_p.h b/src/render/backend/computecommand_p.h index 5012930ae..00e238474 100644 --- a/src/render/backend/computecommand_p.h +++ b/src/render/backend/computecommand_p.h @@ -62,7 +62,7 @@ namespace Render { class ComputeJobPrivate; -class Q_AUTOTEST_EXPORT ComputeCommand : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT ComputeCommand : public BackendNode { public: ComputeCommand(); diff --git a/src/render/backend/entity_p.h b/src/render/backend/entity_p.h index d13d96784..8ac10454e 100644 --- a/src/render/backend/entity_p.h +++ b/src/render/backend/entity_p.h @@ -53,7 +53,7 @@ // #include <Qt3DRender/private/backendnode_p.h> -#include <Qt3DRender/private/renderer_p.h> +#include <Qt3DRender/private/abstractrenderer_p.h> #include <Qt3DRender/private/handle_types_p.h> #include <Qt3DCore/qnodecreatedchange.h> #include <Qt3DCore/private/qentity_p.h> @@ -81,7 +81,7 @@ class Renderer; class NodeManagers; class EntityPrivate; -class Q_AUTOTEST_EXPORT Entity : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT Entity : public BackendNode { public: Entity(); diff --git a/src/render/backend/levelofdetail_p.h b/src/render/backend/levelofdetail_p.h index 8399e19b7..b559b3114 100644 --- a/src/render/backend/levelofdetail_p.h +++ b/src/render/backend/levelofdetail_p.h @@ -67,7 +67,7 @@ namespace Render { class LevelOfDetailManager; -class Q_AUTOTEST_EXPORT LevelOfDetail : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT LevelOfDetail : public BackendNode { public: LevelOfDetail(); diff --git a/src/render/backend/managers_p.h b/src/render/backend/managers_p.h index 24b161b6e..db12a8a7b 100644 --- a/src/render/backend/managers_p.h +++ b/src/render/backend/managers_p.h @@ -91,7 +91,7 @@ namespace Qt3DRender { namespace Render { -class AttachmentManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT AttachmentManager : public Qt3DCore::QResourceManager< RenderTargetOutput, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -100,7 +100,7 @@ public: AttachmentManager() {} }; -class CameraManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT CameraManager : public Qt3DCore::QResourceManager< CameraLens, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -109,7 +109,7 @@ public: CameraManager() {} }; -class FilterKeyManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT FilterKeyManager : public Qt3DCore::QResourceManager< FilterKey, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -119,7 +119,7 @@ public: FilterKeyManager() {} }; -class EffectManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT EffectManager : public Qt3DCore::QResourceManager< Effect, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -128,7 +128,7 @@ public: EffectManager() {} }; -class Q_AUTOTEST_EXPORT EntityManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT EntityManager : public Qt3DCore::QResourceManager< Entity, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -146,7 +146,7 @@ public: class FrameGraphNode; -class Q_AUTOTEST_EXPORT FrameGraphManager +class Q_3DRENDERSHARED_PRIVATE_EXPORT FrameGraphManager { public: FrameGraphManager() {} @@ -161,7 +161,7 @@ private: QHash<Qt3DCore::QNodeId, FrameGraphNode*> m_nodes; }; -class LayerManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT LayerManager : public Qt3DCore::QResourceManager< Layer, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -170,7 +170,7 @@ public: LayerManager() {} }; -class LevelOfDetailManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT LevelOfDetailManager : public Qt3DCore::QResourceManager< LevelOfDetail, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -179,7 +179,7 @@ public: LevelOfDetailManager() {} }; -class MaterialManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT MaterialManager : public Qt3DCore::QResourceManager< Material, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -188,7 +188,7 @@ public: MaterialManager() {} }; -class MatrixManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT MatrixManager : public Qt3DCore::QResourceManager< Matrix4x4, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -197,7 +197,7 @@ public: MatrixManager() {} }; -class ShaderManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT ShaderManager : public Qt3DCore::QResourceManager< Shader, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -221,7 +221,7 @@ private: QVector<Qt3DCore::QNodeId> m_shaderIdsToCleanup; }; -class ShaderBuilderManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT ShaderBuilderManager : public Qt3DCore::QResourceManager< ShaderBuilder, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -230,7 +230,7 @@ public: ShaderBuilderManager() {} }; -class TextureManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT TextureManager : public Qt3DCore::QResourceManager< Texture, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -269,7 +269,7 @@ private: QVector<Qt3DCore::QNodeId> m_textureIdsToCleanup; }; -class TransformManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT TransformManager : public Qt3DCore::QResourceManager< Transform, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -278,7 +278,7 @@ public: TransformManager() {} }; -class RenderTargetManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT RenderTargetManager : public Qt3DCore::QResourceManager< RenderTarget, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -287,7 +287,7 @@ public: RenderTargetManager() {} }; -class RenderPassManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT RenderPassManager : public Qt3DCore::QResourceManager< RenderPass, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -297,7 +297,7 @@ public: }; -class ParameterManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT ParameterManager : public Qt3DCore::QResourceManager< Parameter, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -306,7 +306,7 @@ public: ParameterManager() {} }; -class ShaderImageManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT ShaderImageManager : public Qt3DCore::QResourceManager< ShaderImage, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -315,7 +315,7 @@ public: ShaderImageManager() {} }; -class ShaderDataManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT ShaderDataManager : public Qt3DCore::QResourceManager< ShaderData, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -324,35 +324,35 @@ public: ShaderDataManager() {} }; -class TextureImageManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT TextureImageManager : public Qt3DCore::QResourceManager< TextureImage, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> { }; -class AttributeManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT AttributeManager : public Qt3DCore::QResourceManager< Attribute, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> { }; -class GeometryManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT GeometryManager : public Qt3DCore::QResourceManager< Geometry, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> { }; -class ObjectPickerManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT ObjectPickerManager : public Qt3DCore::QResourceManager< ObjectPicker, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> { }; -class RayCasterManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT RayCasterManager : public Qt3DCore::QResourceManager< RayCaster, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -368,7 +368,7 @@ class BoundingVolumeDebugManager : public Qt3DCore::QResourceManager< }; #endif -class LightManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT LightManager : public Qt3DCore::QResourceManager< Light, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -377,7 +377,7 @@ public: LightManager() {} }; -class EnvironmentLightManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT EnvironmentLightManager : public Qt3DCore::QResourceManager< EnvironmentLight, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -386,7 +386,7 @@ public: EnvironmentLightManager() {} }; -class ComputeCommandManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT ComputeCommandManager : public Qt3DCore::QResourceManager< ComputeCommand, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -395,21 +395,21 @@ public: ComputeCommandManager() {} }; -class RenderStateManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT RenderStateManager : public Qt3DCore::QResourceManager< RenderStateNode, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> { }; -class ArmatureManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT ArmatureManager : public Qt3DCore::QResourceManager< Armature, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> { }; -class SkeletonManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT SkeletonManager : public Qt3DCore::QResourceManager< Skeleton, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> @@ -428,7 +428,7 @@ private: QVector<HSkeleton> m_dirtyTransformSkeletons; }; -class JointManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT JointManager : public Qt3DCore::QResourceManager< Joint, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> diff --git a/src/render/backend/offscreensurfacehelper_p.h b/src/render/backend/offscreensurfacehelper_p.h index 8dc86d9a4..6ec82db2f 100644 --- a/src/render/backend/offscreensurfacehelper_p.h +++ b/src/render/backend/offscreensurfacehelper_p.h @@ -52,6 +52,7 @@ // #include <QObject> +#include <Qt3DRender/private/qt3drender_global_p.h> QT_BEGIN_NAMESPACE @@ -62,7 +63,7 @@ namespace Render { class AbstractRenderer; -class Q_AUTOTEST_EXPORT OffscreenSurfaceHelper : public QObject +class Q_3DRENDERSHARED_PRIVATE_EXPORT OffscreenSurfaceHelper : public QObject { Q_OBJECT public: diff --git a/src/render/backend/platformsurfacefilter.cpp b/src/render/backend/platformsurfacefilter.cpp index 891e30c44..115fb637f 100644 --- a/src/render/backend/platformsurfacefilter.cpp +++ b/src/render/backend/platformsurfacefilter.cpp @@ -39,7 +39,7 @@ #include "platformsurfacefilter_p.h" -#include <Qt3DRender/private/renderer_p.h> +#include <Qt3DRender/private/abstractrenderer_p.h> #include <QMetaObject> #include <QPlatformSurfaceEvent> diff --git a/src/render/backend/platformsurfacefilter_p.h b/src/render/backend/platformsurfacefilter_p.h index 4fb43bae1..0bb425989 100644 --- a/src/render/backend/platformsurfacefilter_p.h +++ b/src/render/backend/platformsurfacefilter_p.h @@ -67,7 +67,7 @@ namespace Render { class AbstractRenderer; -class PlatformSurfaceFilter : public QObject +class Q_3DRENDERSHARED_PRIVATE_EXPORT PlatformSurfaceFilter : public QObject { Q_OBJECT diff --git a/src/render/backend/render-backend.pri b/src/render/backend/render-backend.pri index 87083312f..2815ee0ab 100644 --- a/src/render/backend/render-backend.pri +++ b/src/render/backend/render-backend.pri @@ -5,7 +5,6 @@ HEADERS += \ $$PWD/parameterpack_p.h \ $$PWD/rendertarget_p.h \ $$PWD/attachmentpack_p.h \ - $$PWD/qgraphicsutils_p.h \ $$PWD/managers_p.h \ $$PWD/handle_types_p.h \ $$PWD/platformsurfacefilter_p.h \ @@ -38,7 +37,6 @@ HEADERS += \ $$PWD/visitorutils_p.h \ $$PWD/segmentsvisitor_p.h \ $$PWD/pointsvisitor_p.h \ - $$PWD/commandexecuter_p.h \ $$PWD/apishadermanager_p.h SOURCES += \ @@ -69,5 +67,4 @@ SOURCES += \ $$PWD/offscreensurfacehelper.cpp \ $$PWD/resourceaccessor.cpp \ $$PWD/segmentsvisitor.cpp \ - $$PWD/pointsvisitor.cpp \ - $$PWD/commandexecuter.cpp + $$PWD/pointsvisitor.cpp diff --git a/src/render/backend/rendersettings_p.h b/src/render/backend/rendersettings_p.h index 1c8c0ca72..a1e34c9dd 100644 --- a/src/render/backend/rendersettings_p.h +++ b/src/render/backend/rendersettings_p.h @@ -62,7 +62,7 @@ namespace Render { class AbstractRenderer; -class Q_AUTOTEST_EXPORT RenderSettings : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT RenderSettings : public BackendNode { public: RenderSettings(); diff --git a/src/render/backend/rendertarget_p.h b/src/render/backend/rendertarget_p.h index 30769dcfc..eeaf94940 100644 --- a/src/render/backend/rendertarget_p.h +++ b/src/render/backend/rendertarget_p.h @@ -65,7 +65,7 @@ namespace Render { class RenderTargetManager; -class Q_AUTOTEST_EXPORT RenderTarget : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT RenderTarget : public BackendNode { public: RenderTarget(); diff --git a/src/render/backend/rendertargetoutput_p.h b/src/render/backend/rendertargetoutput_p.h index d72f6d231..3a8828eeb 100644 --- a/src/render/backend/rendertargetoutput_p.h +++ b/src/render/backend/rendertargetoutput_p.h @@ -65,7 +65,7 @@ namespace Render { class AttachmentManager; -class RenderTargetOutput : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT RenderTargetOutput : public BackendNode { public: RenderTargetOutput(); diff --git a/src/render/backend/renderthread_p.h b/src/render/backend/renderthread_p.h index 56a7ec3bc..cdbb4f8c5 100644 --- a/src/render/backend/renderthread_p.h +++ b/src/render/backend/renderthread_p.h @@ -52,7 +52,7 @@ // #include <QThread> - +#include <Qt3DRender/private/qt3drender_global_p.h> #include <QtCore/QSemaphore> QT_BEGIN_NAMESPACE @@ -63,7 +63,7 @@ namespace Render { class AbstractRenderer; -class Q_AUTOTEST_EXPORT RenderThread : public QThread +class Q_3DRENDERSHARED_PRIVATE_EXPORT RenderThread : public QThread { Q_OBJECT public: diff --git a/src/render/backend/resourceaccessor.cpp b/src/render/backend/resourceaccessor.cpp index 846caca58..ebc55c7ca 100644 --- a/src/render/backend/resourceaccessor.cpp +++ b/src/render/backend/resourceaccessor.cpp @@ -40,7 +40,6 @@ #include <private/qrendertargetoutput_p.h> #include <private/nodemanagers_p.h> -#include <private/glresourcemanagers_p.h> #include <private/rendertargetoutput_p.h> #include <private/managers_p.h> diff --git a/src/render/backend/stringtoint_p.h b/src/render/backend/stringtoint_p.h index 996cecf33..1aa6f0b08 100644 --- a/src/render/backend/stringtoint_p.h +++ b/src/render/backend/stringtoint_p.h @@ -54,6 +54,7 @@ #include <QVector> #include <QString> +#include <Qt3DRender/private/qt3drender_global_p.h> QT_BEGIN_NAMESPACE @@ -61,7 +62,7 @@ namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT StringToInt +class Q_3DRENDERSHARED_PRIVATE_EXPORT StringToInt { public: static int lookupId(const QString &str); diff --git a/src/render/backend/transform_p.h b/src/render/backend/transform_p.h index 8c0cd826a..3023a19d1 100644 --- a/src/render/backend/transform_p.h +++ b/src/render/backend/transform_p.h @@ -65,7 +65,7 @@ namespace Render { class Renderer; class TransformManager; -class Q_AUTOTEST_EXPORT Transform : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT Transform : public BackendNode { public: Transform(); diff --git a/src/render/backend/uniform_p.h b/src/render/backend/uniform_p.h index c8731637c..eb959923a 100644 --- a/src/render/backend/uniform_p.h +++ b/src/render/backend/uniform_p.h @@ -56,7 +56,7 @@ #include <Qt3DCore/private/matrix4x4_p.h> #include <Qt3DCore/private/vector3d_p.h> #include <Qt3DCore/private/vector4d_p.h> - +#include <Qt3DRender/private/qt3drender_global_p.h> #include <QMatrix4x4> #include <QVector2D> #include <QVector3D> @@ -105,7 +105,7 @@ enum UniformType { Unknown }; -class Q_AUTOTEST_EXPORT UniformValue +class Q_3DRENDERSHARED_PRIVATE_EXPORT UniformValue { public: enum ValueType { @@ -238,7 +238,7 @@ private: }; template<> -Q_AUTOTEST_EXPORT void UniformValue::setData<QMatrix4x4>(const QVector<QMatrix4x4> &v); +Q_3DRENDERSHARED_PRIVATE_EXPORT void UniformValue::setData<QMatrix4x4>(const QVector<QMatrix4x4> &v); } // namespace Render } // namespace Qt3DRender diff --git a/src/render/framegraph/blitframebuffer_p.h b/src/render/framegraph/blitframebuffer_p.h index fa9ddacd9..773833eb5 100644 --- a/src/render/framegraph/blitframebuffer_p.h +++ b/src/render/framegraph/blitframebuffer_p.h @@ -60,7 +60,7 @@ namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT BlitFramebuffer : public FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT BlitFramebuffer : public FrameGraphNode { public: BlitFramebuffer(); diff --git a/src/render/framegraph/buffercapture_p.h b/src/render/framegraph/buffercapture_p.h index d638f35d5..dfade50eb 100644 --- a/src/render/framegraph/buffercapture_p.h +++ b/src/render/framegraph/buffercapture_p.h @@ -60,7 +60,7 @@ namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT BufferCapture : public FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT BufferCapture : public FrameGraphNode { public: BufferCapture(); diff --git a/src/render/framegraph/cameraselectornode.cpp b/src/render/framegraph/cameraselectornode.cpp index 3beb0ef71..00772c502 100644 --- a/src/render/framegraph/cameraselectornode.cpp +++ b/src/render/framegraph/cameraselectornode.cpp @@ -39,7 +39,8 @@ #include "cameraselectornode_p.h" #include <Qt3DRender/private/qcameraselector_p.h> -#include <Qt3DRender/private/renderer_p.h> +#include <Qt3DRender/private/abstractrenderer_p.h> +#include <Qt3DCore/private/qchangearbiter_p.h> #include <Qt3DCore/qentity.h> #include <Qt3DRender/private/renderlogging_p.h> diff --git a/src/render/framegraph/cameraselectornode_p.h b/src/render/framegraph/cameraselectornode_p.h index dd7e050d0..24590f960 100644 --- a/src/render/framegraph/cameraselectornode_p.h +++ b/src/render/framegraph/cameraselectornode_p.h @@ -64,7 +64,7 @@ namespace Render { class Renderer; -class CameraSelector : public FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT CameraSelector : public FrameGraphNode { public: CameraSelector(); diff --git a/src/render/framegraph/clearbuffers_p.h b/src/render/framegraph/clearbuffers_p.h index ca55d2a98..746d58da7 100644 --- a/src/render/framegraph/clearbuffers_p.h +++ b/src/render/framegraph/clearbuffers_p.h @@ -62,7 +62,7 @@ namespace Render { class FrameGraphManager; -class ClearBuffers : public FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT ClearBuffers : public FrameGraphNode { public: ClearBuffers(); diff --git a/src/render/framegraph/dispatchcompute_p.h b/src/render/framegraph/dispatchcompute_p.h index 24a641938..7df8db1da 100644 --- a/src/render/framegraph/dispatchcompute_p.h +++ b/src/render/framegraph/dispatchcompute_p.h @@ -60,7 +60,7 @@ namespace Qt3DRender { namespace Render { -class DispatchCompute : public FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT DispatchCompute : public FrameGraphNode { public: DispatchCompute(); diff --git a/src/render/framegraph/framegraphnode.cpp b/src/render/framegraph/framegraphnode.cpp index 40d8fca3d..92116af7d 100644 --- a/src/render/framegraph/framegraphnode.cpp +++ b/src/render/framegraph/framegraphnode.cpp @@ -38,7 +38,7 @@ ****************************************************************************/ #include "framegraphnode_p.h" -#include <Qt3DRender/private/renderer_p.h> +#include <Qt3DRender/private/abstractrenderer_p.h> #include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/qframegraphnodecreatedchange.h> diff --git a/src/render/framegraph/framegraphnode_p.h b/src/render/framegraph/framegraphnode_p.h index 846dc8060..7571e6d8b 100644 --- a/src/render/framegraph/framegraphnode_p.h +++ b/src/render/framegraph/framegraphnode_p.h @@ -74,7 +74,7 @@ namespace Render { class FrameGraphManager; -class Q_AUTOTEST_EXPORT FrameGraphNode : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT FrameGraphNode : public BackendNode { public: FrameGraphNode(); diff --git a/src/render/framegraph/framegraphvisitor.cpp b/src/render/framegraph/framegraphvisitor.cpp index 9af0297a0..b0eb1ac00 100644 --- a/src/render/framegraph/framegraphvisitor.cpp +++ b/src/render/framegraph/framegraphvisitor.cpp @@ -42,7 +42,7 @@ #include "framegraphnode_p.h" #include "subtreeenabler_p.h" -#include <Qt3DRender/private/renderer_p.h> +#include <Qt3DRender/private/abstractrenderer_p.h> #include <Qt3DRender/private/managers_p.h> #include <QThreadPool> diff --git a/src/render/framegraph/framegraphvisitor_p.h b/src/render/framegraph/framegraphvisitor_p.h index 5706a169d..0bb6cf0d4 100644 --- a/src/render/framegraph/framegraphvisitor_p.h +++ b/src/render/framegraph/framegraphvisitor_p.h @@ -54,6 +54,7 @@ #include <qglobal.h> #include <Qt3DCore/qaspectjob.h> +#include <Qt3DRender/private/qt3drender_global_p.h> #include <QVector> @@ -66,7 +67,7 @@ class FrameGraphNode; class Renderer; class FrameGraphManager; -class Q_AUTOTEST_EXPORT FrameGraphVisitor +class Q_3DRENDERSHARED_PRIVATE_EXPORT FrameGraphVisitor { public: explicit FrameGraphVisitor(const FrameGraphManager *nodeManager); diff --git a/src/render/framegraph/frustumculling_p.h b/src/render/framegraph/frustumculling_p.h index 7f9959c6e..ac11b7306 100644 --- a/src/render/framegraph/frustumculling_p.h +++ b/src/render/framegraph/frustumculling_p.h @@ -59,7 +59,7 @@ namespace Qt3DRender { namespace Render { -class FrustumCulling : public FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT FrustumCulling : public FrameGraphNode { public: FrustumCulling(); diff --git a/src/render/framegraph/layerfilternode_p.h b/src/render/framegraph/layerfilternode_p.h index 27cdc49d3..f075d5ec4 100644 --- a/src/render/framegraph/layerfilternode_p.h +++ b/src/render/framegraph/layerfilternode_p.h @@ -64,7 +64,7 @@ namespace Render { class Renderer; -class LayerFilterNode : public FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT LayerFilterNode : public FrameGraphNode { public: LayerFilterNode(); diff --git a/src/render/framegraph/memorybarrier_p.h b/src/render/framegraph/memorybarrier_p.h index ce545cd09..78bb91c40 100644 --- a/src/render/framegraph/memorybarrier_p.h +++ b/src/render/framegraph/memorybarrier_p.h @@ -60,7 +60,7 @@ namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT MemoryBarrier : public FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT MemoryBarrier : public FrameGraphNode { public: MemoryBarrier(); diff --git a/src/render/framegraph/nodraw_p.h b/src/render/framegraph/nodraw_p.h index ae9fa6713..ace625250 100644 --- a/src/render/framegraph/nodraw_p.h +++ b/src/render/framegraph/nodraw_p.h @@ -59,7 +59,7 @@ namespace Qt3DRender { namespace Render { -class NoDraw : public FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT NoDraw : public FrameGraphNode { public: NoDraw(); diff --git a/src/render/framegraph/proximityfilter_p.h b/src/render/framegraph/proximityfilter_p.h index 5c2f7ad66..27d89f76d 100644 --- a/src/render/framegraph/proximityfilter_p.h +++ b/src/render/framegraph/proximityfilter_p.h @@ -59,7 +59,7 @@ namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT ProximityFilter : public FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT ProximityFilter : public FrameGraphNode { public: ProximityFilter(); diff --git a/src/render/framegraph/rendercapture_p.h b/src/render/framegraph/rendercapture_p.h index 5714fb44d..f2a2a55b7 100644 --- a/src/render/framegraph/rendercapture_p.h +++ b/src/render/framegraph/rendercapture_p.h @@ -57,7 +57,7 @@ namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT RenderCapture : public FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT RenderCapture : public FrameGraphNode { public: RenderCapture(); diff --git a/src/render/framegraph/renderpassfilternode_p.h b/src/render/framegraph/renderpassfilternode_p.h index 157a162bb..c9084573e 100644 --- a/src/render/framegraph/renderpassfilternode_p.h +++ b/src/render/framegraph/renderpassfilternode_p.h @@ -67,7 +67,7 @@ class QHandle; namespace Render { -class RenderPassFilter : public Render::FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT RenderPassFilter : public Render::FrameGraphNode { public: RenderPassFilter(); diff --git a/src/render/framegraph/rendersurfaceselector.cpp b/src/render/framegraph/rendersurfaceselector.cpp index a1e639df5..c7e46efa7 100644 --- a/src/render/framegraph/rendersurfaceselector.cpp +++ b/src/render/framegraph/rendersurfaceselector.cpp @@ -40,7 +40,6 @@ #include "rendersurfaceselector_p.h" #include <Qt3DRender/qrendersurfaceselector.h> #include <Qt3DRender/private/qrendersurfaceselector_p.h> - #include <QtGui/qwindow.h> #include <QtGui/qscreen.h> #include <QtGui/qoffscreensurface.h> diff --git a/src/render/framegraph/rendersurfaceselector_p.h b/src/render/framegraph/rendersurfaceselector_p.h index f1a139e84..3378ececa 100644 --- a/src/render/framegraph/rendersurfaceselector_p.h +++ b/src/render/framegraph/rendersurfaceselector_p.h @@ -60,7 +60,7 @@ class QSurface; namespace Qt3DRender { namespace Render { -class RenderSurfaceSelector : public Qt3DRender::Render::FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT RenderSurfaceSelector : public Qt3DRender::Render::FrameGraphNode { public: RenderSurfaceSelector(); diff --git a/src/render/framegraph/rendertargetselectornode.cpp b/src/render/framegraph/rendertargetselectornode.cpp index 614a749a5..f32b8c7d9 100644 --- a/src/render/framegraph/rendertargetselectornode.cpp +++ b/src/render/framegraph/rendertargetselectornode.cpp @@ -38,7 +38,6 @@ ****************************************************************************/ #include "rendertargetselectornode_p.h" -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DCore/private/qchangearbiter_p.h> #include <Qt3DRender/qrendertargetselector.h> #include <Qt3DRender/private/qrendertargetselector_p.h> diff --git a/src/render/framegraph/rendertargetselectornode_p.h b/src/render/framegraph/rendertargetselectornode_p.h index 232ee9ecc..04032045a 100644 --- a/src/render/framegraph/rendertargetselectornode_p.h +++ b/src/render/framegraph/rendertargetselectornode_p.h @@ -61,7 +61,7 @@ class QRenderTargetSelector; namespace Render { -class RenderTargetSelector : public FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT RenderTargetSelector : public FrameGraphNode { public: RenderTargetSelector(); diff --git a/src/render/framegraph/setfence_p.h b/src/render/framegraph/setfence_p.h index 31072581c..0f54d65ee 100644 --- a/src/render/framegraph/setfence_p.h +++ b/src/render/framegraph/setfence_p.h @@ -60,7 +60,7 @@ namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT SetFence : public FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT SetFence : public FrameGraphNode { public: SetFence(); diff --git a/src/render/framegraph/sortpolicy_p.h b/src/render/framegraph/sortpolicy_p.h index 8d572ead7..2015adf87 100644 --- a/src/render/framegraph/sortpolicy_p.h +++ b/src/render/framegraph/sortpolicy_p.h @@ -60,7 +60,7 @@ namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT SortPolicy : public FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT SortPolicy : public FrameGraphNode { public: SortPolicy(); diff --git a/src/render/framegraph/statesetnode_p.h b/src/render/framegraph/statesetnode_p.h index 5081f3215..618b52338 100644 --- a/src/render/framegraph/statesetnode_p.h +++ b/src/render/framegraph/statesetnode_p.h @@ -59,7 +59,7 @@ namespace Qt3DRender { namespace Render { -class StateSetNode : public FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT StateSetNode : public FrameGraphNode { public: StateSetNode(); diff --git a/src/render/framegraph/subtreeenabler.cpp b/src/render/framegraph/subtreeenabler.cpp index 4d912dc1d..37989df1a 100644 --- a/src/render/framegraph/subtreeenabler.cpp +++ b/src/render/framegraph/subtreeenabler.cpp @@ -39,7 +39,6 @@ #include "subtreeenabler_p.h" #include <Qt3DRender/private/qsubtreeenabler_p.h> -#include <Qt3DCore/qpropertyupdatedchange.h> QT_BEGIN_NAMESPACE diff --git a/src/render/framegraph/techniquefilternode_p.h b/src/render/framegraph/techniquefilternode_p.h index e424e37e5..2e71e31d4 100644 --- a/src/render/framegraph/techniquefilternode_p.h +++ b/src/render/framegraph/techniquefilternode_p.h @@ -70,7 +70,7 @@ class QHandle; namespace Render { -class TechniqueFilter +class Q_3DRENDERSHARED_PRIVATE_EXPORT TechniqueFilter : public FrameGraphNode { public: diff --git a/src/render/framegraph/viewportnode_p.h b/src/render/framegraph/viewportnode_p.h index 3e291a9da..f673b1e21 100644 --- a/src/render/framegraph/viewportnode_p.h +++ b/src/render/framegraph/viewportnode_p.h @@ -64,7 +64,7 @@ namespace Render { class Renderer; -class Q_AUTOTEST_EXPORT ViewportNode : public FrameGraphNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT ViewportNode : public FrameGraphNode { public: ViewportNode(); diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp index a58b14cbd..a5cf7d90e 100644 --- a/src/render/frontend/qrenderaspect.cpp +++ b/src/render/frontend/qrenderaspect.cpp @@ -41,7 +41,7 @@ #include "qrenderaspect_p.h" #include <Qt3DRender/private/nodemanagers_p.h> -#include <Qt3DRender/private/renderer_p.h> +#include <Qt3DRender/private/abstractrenderer_p.h> #include <Qt3DRender/private/scenemanager_p.h> #include <Qt3DRender/private/geometryrenderermanager_p.h> @@ -56,8 +56,10 @@ #include <Qt3DRender/qmesh.h> #include <Qt3DRender/qparameter.h> #include <Qt3DRender/qrenderpassfilter.h> +#include <Qt3DRender/qrenderpass.h> #include <Qt3DRender/qrendertargetselector.h> #include <Qt3DRender/qtechniquefilter.h> +#include <Qt3DRender/qtechnique.h> #include <Qt3DRender/qviewport.h> #include <Qt3DRender/qrendertarget.h> #include <Qt3DRender/qclearbuffers.h> @@ -102,7 +104,7 @@ #include <Qt3DRender/private/cameralens_p.h> #include <Qt3DRender/private/filterkey_p.h> #include <Qt3DRender/private/entity_p.h> -#include <Qt3DRender/private/renderer_p.h> +#include <Qt3DRender/private/abstractrenderer_p.h> #include <Qt3DRender/private/shaderdata_p.h> #include <Qt3DRender/private/renderpassfilternode_p.h> #include <Qt3DRender/private/rendertargetselectornode_p.h> @@ -163,6 +165,8 @@ #include <private/qrenderpluginfactory_p.h> #include <private/qrenderplugin_p.h> +#include <Qt3DRender/private/qrendererpluginfactory_p.h> + #include <Qt3DCore/qentity.h> #include <Qt3DCore/qtransform.h> @@ -572,8 +576,9 @@ void QRenderAspect::onRegistered() Q_D(QRenderAspect); d->m_nodeManagers = new Render::NodeManagers(); - // TO DO: Load proper Renderer class based on Qt configuration preferences - d->m_renderer = new Render::Renderer(d->m_renderType); + // Load proper Renderer class based on Qt configuration preferences + d->m_renderer = d->loadRendererPlugin(); + Q_ASSERT(d->m_renderer); d->m_renderer->setScreen(d->m_screen); d->m_renderer->setNodeManagers(d->m_nodeManagers); @@ -662,6 +667,20 @@ void QRenderAspectPrivate::loadSceneParsers() } } +Render::AbstractRenderer *QRenderAspectPrivate::loadRendererPlugin() +{ + // Note: for now we load the first renderer plugin that is successfully loaded + // In the future we might want to offer the user a way to hint at which renderer + // plugin would best be loaded + const QStringList keys = Render::QRendererPluginFactory::keys(); + for (const QString &key : keys) { + Render::AbstractRenderer *renderer = Render::QRendererPluginFactory::create(key, m_renderType); + if (renderer) + return renderer; + } + return nullptr; +} + void QRenderAspectPrivate::loadRenderPlugin(const QString &pluginName) { Q_Q(QRenderAspect); diff --git a/src/render/frontend/qrenderaspect_p.h b/src/render/frontend/qrenderaspect_p.h index 8723180ab..f59fd693f 100644 --- a/src/render/frontend/qrenderaspect_p.h +++ b/src/render/frontend/qrenderaspect_p.h @@ -98,6 +98,7 @@ public: void renderShutdown(); void registerBackendType(const QMetaObject &, const Qt3DCore::QBackendNodeMapperPtr &functor); QVector<Qt3DCore::QAspectJobPtr> createGeometryRendererJobs(); + Render::AbstractRenderer *loadRendererPlugin(); Render::NodeManagers *m_nodeManagers; Render::AbstractRenderer *m_renderer; diff --git a/src/render/frontend/sphere_p.h b/src/render/frontend/sphere_p.h index b7585f85a..448704cf4 100644 --- a/src/render/frontend/sphere_p.h +++ b/src/render/frontend/sphere_p.h @@ -56,8 +56,6 @@ #include <Qt3DCore/private/matrix4x4_p.h> #include <Qt3DRender/private/boundingsphere_p.h> -#include <QMatrix4x4> - QT_BEGIN_NAMESPACE namespace Qt3DRender { diff --git a/src/render/geometry/armature_p.h b/src/render/geometry/armature_p.h index 39baa4a79..db9d28bd6 100644 --- a/src/render/geometry/armature_p.h +++ b/src/render/geometry/armature_p.h @@ -58,7 +58,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT Armature : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT Armature : public BackendNode { public: Armature(); diff --git a/src/render/geometry/attribute_p.h b/src/render/geometry/attribute_p.h index 4b47146e1..87b3cbb4f 100644 --- a/src/render/geometry/attribute_p.h +++ b/src/render/geometry/attribute_p.h @@ -60,7 +60,7 @@ namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT Attribute : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT Attribute : public BackendNode { public: Attribute(); diff --git a/src/render/geometry/buffer_p.h b/src/render/geometry/buffer_p.h index a3f52d1b3..3490b7bc9 100644 --- a/src/render/geometry/buffer_p.h +++ b/src/render/geometry/buffer_p.h @@ -66,7 +66,7 @@ namespace Render { class BufferManager; -class Q_AUTOTEST_EXPORT Buffer : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT Buffer : public BackendNode { public: Buffer(); diff --git a/src/render/geometry/buffermanager_p.h b/src/render/geometry/buffermanager_p.h index df97a5193..bafcf8812 100644 --- a/src/render/geometry/buffermanager_p.h +++ b/src/render/geometry/buffermanager_p.h @@ -60,7 +60,7 @@ namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT BufferManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT BufferManager : public Qt3DCore::QResourceManager< Buffer, Qt3DCore::QNodeId, Qt3DCore::ObjectLevelLockingPolicy> diff --git a/src/render/geometry/geometry_p.h b/src/render/geometry/geometry_p.h index 429a577b0..fdad63286 100644 --- a/src/render/geometry/geometry_p.h +++ b/src/render/geometry/geometry_p.h @@ -60,7 +60,7 @@ namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT Geometry : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT Geometry : public BackendNode { public: Geometry(); diff --git a/src/render/geometry/geometryrenderer_p.h b/src/render/geometry/geometryrenderer_p.h index d2ddad4bb..a38233d6c 100644 --- a/src/render/geometry/geometryrenderer_p.h +++ b/src/render/geometry/geometryrenderer_p.h @@ -73,7 +73,7 @@ struct GeometryFunctorResult QMesh::Status status; }; -class Q_AUTOTEST_EXPORT GeometryRenderer : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT GeometryRenderer : public BackendNode { public: GeometryRenderer(); diff --git a/src/render/geometry/geometryrenderermanager_p.h b/src/render/geometry/geometryrenderermanager_p.h index becf1bcc1..7b7b629bd 100644 --- a/src/render/geometry/geometryrenderermanager_p.h +++ b/src/render/geometry/geometryrenderermanager_p.h @@ -60,7 +60,7 @@ namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT GeometryRendererManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT GeometryRendererManager : public Qt3DCore::QResourceManager< GeometryRenderer, Qt3DCore::QNodeId, Qt3DCore::ObjectLevelLockingPolicy> diff --git a/src/render/geometry/joint_p.h b/src/render/geometry/joint_p.h index de875459e..c178fdcf8 100644 --- a/src/render/geometry/joint_p.h +++ b/src/render/geometry/joint_p.h @@ -63,7 +63,7 @@ namespace Render { class JointManager; class SkeletonManager; -class Q_AUTOTEST_EXPORT Joint : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT Joint : public BackendNode { public: Joint(); diff --git a/src/render/geometry/skeleton_p.h b/src/render/geometry/skeleton_p.h index 7a5299944..ac475a3c0 100644 --- a/src/render/geometry/skeleton_p.h +++ b/src/render/geometry/skeleton_p.h @@ -72,7 +72,7 @@ namespace Render { class JointManager; class SkeletonManager; -class Q_AUTOTEST_EXPORT Skeleton : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT Skeleton : public BackendNode { public: enum SkeletonDataType { diff --git a/src/render/io/scene_p.h b/src/render/io/scene_p.h index bf625b369..cf927bc23 100644 --- a/src/render/io/scene_p.h +++ b/src/render/io/scene_p.h @@ -67,7 +67,7 @@ namespace Render { class SceneManager; -class Q_AUTOTEST_EXPORT Scene : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT Scene : public BackendNode { public: Scene(); diff --git a/src/render/io/scenemanager_p.h b/src/render/io/scenemanager_p.h index 470846b83..badef2bf9 100644 --- a/src/render/io/scenemanager_p.h +++ b/src/render/io/scenemanager_p.h @@ -82,7 +82,7 @@ private: typedef QSharedPointer<SceneDownloader> SceneDownloaderPtr; -class Q_AUTOTEST_EXPORT SceneManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT SceneManager : public Qt3DCore::QResourceManager< Scene, Qt3DCore::QNodeId, Qt3DCore::ObjectLevelLockingPolicy> diff --git a/src/render/jobs/abstractpickingjob.cpp b/src/render/jobs/abstractpickingjob.cpp index 092ab7d3b..ea2916006 100644 --- a/src/render/jobs/abstractpickingjob.cpp +++ b/src/render/jobs/abstractpickingjob.cpp @@ -39,7 +39,6 @@ #include "abstractpickingjob_p.h" #include <Qt3DRender/qgeometryrenderer.h> -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/private/entity_p.h> #include <Qt3DRender/private/objectpicker_p.h> diff --git a/src/render/jobs/abstractpickingjob_p.h b/src/render/jobs/abstractpickingjob_p.h index c0c6ed7e9..f53805ac5 100644 --- a/src/render/jobs/abstractpickingjob_p.h +++ b/src/render/jobs/abstractpickingjob_p.h @@ -57,6 +57,7 @@ #include <Qt3DRender/private/qboundingvolumeprovider_p.h> #include <Qt3DRender/private/qcollisionqueryresult_p.h> #include <Qt3DRender/private/pickboundingvolumeutils_p.h> +#include <Qt3DRender/private/qt3drender_global_p.h> QT_BEGIN_NAMESPACE @@ -72,7 +73,7 @@ class Renderer; class NodeManagers; class RenderSettings; -class Q_AUTOTEST_EXPORT AbstractPickingJob : public Qt3DCore::QAspectJob +class Q_3DRENDERSHARED_PRIVATE_EXPORT AbstractPickingJob : public Qt3DCore::QAspectJob { public: AbstractPickingJob(); diff --git a/src/render/jobs/computefilteredboundingvolumejob.cpp b/src/render/jobs/computefilteredboundingvolumejob.cpp index 0cdbc8b6d..0be3cb489 100644 --- a/src/render/jobs/computefilteredboundingvolumejob.cpp +++ b/src/render/jobs/computefilteredboundingvolumejob.cpp @@ -39,7 +39,6 @@ #include "computefilteredboundingvolumejob_p.h" -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/private/entity_p.h> #include <Qt3DRender/private/renderlogging_p.h> #include <Qt3DRender/private/sphere_p.h> diff --git a/src/render/jobs/expandboundingvolumejob.cpp b/src/render/jobs/expandboundingvolumejob.cpp index 8587634cb..ec783e5e0 100644 --- a/src/render/jobs/expandboundingvolumejob.cpp +++ b/src/render/jobs/expandboundingvolumejob.cpp @@ -39,7 +39,6 @@ #include "expandboundingvolumejob_p.h" -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/private/entity_p.h> #include <Qt3DRender/private/renderlogging_p.h> #include <Qt3DRender/private/sphere_p.h> diff --git a/src/render/jobs/filterproximitydistancejob_p.h b/src/render/jobs/filterproximitydistancejob_p.h index 935d4036f..e058f011a 100644 --- a/src/render/jobs/filterproximitydistancejob_p.h +++ b/src/render/jobs/filterproximitydistancejob_p.h @@ -42,6 +42,7 @@ #include <Qt3DCore/qaspectjob.h> #include <Qt3DCore/qnodeid.h> +#include <Qt3DRender/private/qt3drender_global_p.h> QT_BEGIN_NAMESPACE @@ -52,7 +53,7 @@ namespace Render { class Entity; class NodeManagers; -class Q_AUTOTEST_EXPORT FilterProximityDistanceJob : public Qt3DCore::QAspectJob +class Q_3DRENDERSHARED_PRIVATE_EXPORT FilterProximityDistanceJob : public Qt3DCore::QAspectJob { public: FilterProximityDistanceJob(); diff --git a/src/render/jobs/framecleanupjob.cpp b/src/render/jobs/framecleanupjob.cpp index fb63f005b..957e39a89 100644 --- a/src/render/jobs/framecleanupjob.cpp +++ b/src/render/jobs/framecleanupjob.cpp @@ -38,7 +38,6 @@ ****************************************************************************/ #include "framecleanupjob_p.h" -#include <private/renderer_p.h> #include <private/nodemanagers_p.h> #include <private/entity_p.h> #include <private/shaderdata_p.h> diff --git a/src/render/jobs/frustumcullingjob.cpp b/src/render/jobs/frustumcullingjob.cpp index e22d625df..aa1a57a31 100644 --- a/src/render/jobs/frustumcullingjob.cpp +++ b/src/render/jobs/frustumcullingjob.cpp @@ -41,7 +41,6 @@ #include <Qt3DRender/private/job_common_p.h> #include <Qt3DRender/private/managers_p.h> #include <Qt3DRender/private/entity_p.h> -#include <Qt3DRender/private/renderview_p.h> #include <Qt3DRender/private/sphere_p.h> #include <Qt3DRender/private/managers_p.h> #include <Qt3DRender/private/nodemanagers_p.h> diff --git a/src/render/jobs/frustumcullingjob_p.h b/src/render/jobs/frustumcullingjob_p.h index cddbbd409..636585c2f 100644 --- a/src/render/jobs/frustumcullingjob_p.h +++ b/src/render/jobs/frustumcullingjob_p.h @@ -42,7 +42,10 @@ #include <Qt3DCore/qaspectjob.h> #include <Qt3DCore/private/matrix4x4_p.h> +#include <Qt3DCore/private/vector3d_p.h> +#include <Qt3DCore/private/vector4d_p.h> #include <Qt3DRender/private/aligned_malloc_p.h> +#include <Qt3DRender/private/qt3drender_global_p.h> // // W A R N I N G @@ -66,7 +69,7 @@ class EntityManager; class NodeManagers; struct Plane; -class FrustumCullingJob : public Qt3DCore::QAspectJob +class Q_3DRENDERSHARED_PRIVATE_EXPORT FrustumCullingJob : public Qt3DCore::QAspectJob { public: FrustumCullingJob(); @@ -85,6 +88,19 @@ public: void run() final; private: + struct Q_AUTOTEST_EXPORT Plane + { + explicit Plane(const Vector4D &planeEquation) + : planeEquation(planeEquation) + , normal(Vector3D(planeEquation).normalized()) + , d(planeEquation.w() / Vector3D(planeEquation).length()) + {} + + const Vector4D planeEquation; + const Vector3D normal; + const float d; + }; + void cullScene(Entity *e, const Plane *planes); Matrix4x4 m_viewProjection; Entity *m_root; diff --git a/src/render/jobs/lightgatherer.cpp b/src/render/jobs/lightgatherer.cpp index b79976aef..b878b0a78 100644 --- a/src/render/jobs/lightgatherer.cpp +++ b/src/render/jobs/lightgatherer.cpp @@ -41,6 +41,7 @@ #include <Qt3DRender/private/job_common_p.h> #include <Qt3DRender/private/managers_p.h> #include <Qt3DRender/private/entity_p.h> +#include <Qt3DRender/private/qt3drender_global_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/jobs/lightgatherer_p.h b/src/render/jobs/lightgatherer_p.h index d0090ccd0..59e64ad74 100644 --- a/src/render/jobs/lightgatherer_p.h +++ b/src/render/jobs/lightgatherer_p.h @@ -53,6 +53,7 @@ #include <Qt3DCore/qaspectjob.h> #include <Qt3DRender/private/lightsource_p.h> +#include <Qt3DRender/private/qt3drender_global_p.h> QT_BEGIN_NAMESPACE @@ -63,7 +64,7 @@ namespace Render { class EntityManager; class EnvironmentLight; -class Q_AUTOTEST_EXPORT LightGatherer : public Qt3DCore::QAspectJob +class Q_3DRENDERSHARED_PRIVATE_EXPORT LightGatherer : public Qt3DCore::QAspectJob { public: LightGatherer(); diff --git a/src/render/jobs/loadbufferjob.cpp b/src/render/jobs/loadbufferjob.cpp index 0f4feb5d4..fd57248e1 100644 --- a/src/render/jobs/loadbufferjob.cpp +++ b/src/render/jobs/loadbufferjob.cpp @@ -41,9 +41,9 @@ #include <Qt3DRender/private/buffer_p.h> #include <Qt3DRender/private/qbuffer_p.h> #include <Qt3DRender/private/buffermanager_p.h> -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/private/job_common_p.h> #include <Qt3DCore/private/qaspectmanager_p.h> +#include <Qt3DRender/private/renderlogging_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/jobs/loadbufferjob_p.h b/src/render/jobs/loadbufferjob_p.h index e86e4f835..5f20bfb00 100644 --- a/src/render/jobs/loadbufferjob_p.h +++ b/src/render/jobs/loadbufferjob_p.h @@ -65,7 +65,7 @@ namespace Render { class NodeManagers; class LoadBufferJobPrivate; -class Q_AUTOTEST_EXPORT LoadBufferJob : public Qt3DCore::QAspectJob +class Q_3DRENDERSHARED_PRIVATE_EXPORT LoadBufferJob : public Qt3DCore::QAspectJob { public: explicit LoadBufferJob(const HBuffer &handle); diff --git a/src/render/jobs/loadgeometryjob_p.h b/src/render/jobs/loadgeometryjob_p.h index 998d543ac..e5edf0100 100644 --- a/src/render/jobs/loadgeometryjob_p.h +++ b/src/render/jobs/loadgeometryjob_p.h @@ -54,6 +54,7 @@ #include <QSharedPointer> #include <Qt3DCore/qaspectjob.h> #include <Qt3DRender/private/handle_types_p.h> +#include <Qt3DRender/private/qt3drender_global_p.h> QT_BEGIN_NAMESPACE @@ -64,7 +65,7 @@ namespace Render { class NodeManagers; class LoadGeometryJobPrivate; -class Q_AUTOTEST_EXPORT LoadGeometryJob : public Qt3DCore::QAspectJob +class Q_3DRENDERSHARED_PRIVATE_EXPORT LoadGeometryJob : public Qt3DCore::QAspectJob { public: explicit LoadGeometryJob(const HGeometryRenderer &handle); diff --git a/src/render/jobs/loadscenejob.cpp b/src/render/jobs/loadscenejob.cpp index be855c608..959cbe3eb 100644 --- a/src/render/jobs/loadscenejob.cpp +++ b/src/render/jobs/loadscenejob.cpp @@ -38,9 +38,9 @@ ****************************************************************************/ #include "loadscenejob_p.h" -#include <private/renderer_p.h> #include <private/nodemanagers_p.h> #include <private/scenemanager_p.h> +#include <QCoreApplication> #include <Qt3DCore/qentity.h> #include <Qt3DCore/private/qaspectmanager_p.h> #include <Qt3DRender/private/job_common_p.h> diff --git a/src/render/jobs/loadscenejob_p.h b/src/render/jobs/loadscenejob_p.h index 3675d94c1..39d2d8d6e 100644 --- a/src/render/jobs/loadscenejob_p.h +++ b/src/render/jobs/loadscenejob_p.h @@ -58,6 +58,7 @@ #include <QSharedPointer> #include <QUrl> #include <functional> +#include <Qt3DRender/private/qt3drender_global_p.h> QT_BEGIN_NAMESPACE @@ -88,7 +89,7 @@ private: LoadSceneJob *q_ptr; }; -class Q_AUTOTEST_EXPORT LoadSceneJob : public Qt3DCore::QAspectJob +class Q_3DRENDERSHARED_PRIVATE_EXPORT LoadSceneJob : public Qt3DCore::QAspectJob { public: explicit LoadSceneJob(const QUrl &source, Qt3DCore::QNodeId sceneComponent); diff --git a/src/render/jobs/loadskeletonjob.cpp b/src/render/jobs/loadskeletonjob.cpp index e696cc434..de12b7e39 100644 --- a/src/render/jobs/loadskeletonjob.cpp +++ b/src/render/jobs/loadskeletonjob.cpp @@ -47,6 +47,9 @@ #include <Qt3DRender/private/job_common_p.h> #include <Qt3DRender/private/qurlhelper_p.h> #include <Qt3DRender/private/gltfskeletonloader_p.h> +#include <Qt3DRender/private/renderlogging_p.h> +#include <QtCore/QCoreApplication> +#include <QtCore/QFileInfo> QT_BEGIN_NAMESPACE diff --git a/src/render/jobs/pickboundingvolumejob.cpp b/src/render/jobs/pickboundingvolumejob.cpp index 2973ee100..dce184f46 100644 --- a/src/render/jobs/pickboundingvolumejob.cpp +++ b/src/render/jobs/pickboundingvolumejob.cpp @@ -46,7 +46,6 @@ #include <Qt3DRender/qviewport.h> #include <Qt3DRender/qgeometryrenderer.h> #include <Qt3DRender/private/qobjectpicker_p.h> -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/private/entity_p.h> #include <Qt3DRender/private/objectpicker_p.h> diff --git a/src/render/jobs/pickboundingvolumejob_p.h b/src/render/jobs/pickboundingvolumejob_p.h index 49b11b775..4f2c4340e 100644 --- a/src/render/jobs/pickboundingvolumejob_p.h +++ b/src/render/jobs/pickboundingvolumejob_p.h @@ -58,6 +58,7 @@ #include <Qt3DRender/private/qboundingvolumeprovider_p.h> #include <Qt3DRender/private/qcollisionqueryresult_p.h> #include <Qt3DRender/private/pickboundingvolumeutils_p.h> +#include <Qt3DRender/private/qt3drender_global_p.h> #include <Qt3DRender/qpickevent.h> #include <QMouseEvent> #include <QKeyEvent> @@ -76,7 +77,7 @@ namespace PickingUtils { typedef QVector<RayCasting::QCollisionQueryResult::Hit> HitList; } -class Q_AUTOTEST_EXPORT PickBoundingVolumeJob : public AbstractPickingJob +class Q_3DRENDERSHARED_PRIVATE_EXPORT PickBoundingVolumeJob : public AbstractPickingJob { public: PickBoundingVolumeJob(); diff --git a/src/render/jobs/raycastingjob.cpp b/src/render/jobs/raycastingjob.cpp index 380447873..50dcaecde 100644 --- a/src/render/jobs/raycastingjob.cpp +++ b/src/render/jobs/raycastingjob.cpp @@ -48,7 +48,6 @@ #include <Qt3DRender/private/pickboundingvolumeutils_p.h> #include <Qt3DRender/private/qray3d_p.h> #include <Qt3DRender/private/sphere_p.h> -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/private/rendersettings_p.h> #include <Qt3DRender/private/trianglesvisitor_p.h> #include <Qt3DRender/private/entityvisitor_p.h> diff --git a/src/render/jobs/raycastingjob_p.h b/src/render/jobs/raycastingjob_p.h index 4b8b91ad5..0a8b7aa3a 100644 --- a/src/render/jobs/raycastingjob_p.h +++ b/src/render/jobs/raycastingjob_p.h @@ -55,6 +55,7 @@ #include <Qt3DRender/qpickevent.h> #include <Qt3DRender/private/handle_types_p.h> #include <Qt3DRender/private/qcollisionqueryresult_p.h> +#include <Qt3DRender/private/qt3drender_global_p.h> #include <QMouseEvent> #include <QKeyEvent> #include <QSharedPointer> @@ -70,7 +71,7 @@ typedef QVector<RayCasting::QCollisionQueryResult::Hit> HitList; class RayCastingJobPrivate; -class Q_AUTOTEST_EXPORT RayCastingJob : public AbstractPickingJob +class Q_3DRENDERSHARED_PRIVATE_EXPORT RayCastingJob : public AbstractPickingJob { public: RayCastingJob(); diff --git a/src/render/jobs/updateskinningpalettejob_p.h b/src/render/jobs/updateskinningpalettejob_p.h index c52e0841c..f74cf6a73 100644 --- a/src/render/jobs/updateskinningpalettejob_p.h +++ b/src/render/jobs/updateskinningpalettejob_p.h @@ -53,6 +53,7 @@ #include <QtCore/qsharedpointer.h> #include <Qt3DRender/private/handle_types_p.h> +#include <Qt3DRender/private/qt3drender_global_p.h> QT_BEGIN_NAMESPACE @@ -61,7 +62,7 @@ namespace Render { class NodeManagers; -class UpdateSkinningPaletteJob : public Qt3DCore::QAspectJob +class Q_3DRENDERSHARED_PRIVATE_EXPORT UpdateSkinningPaletteJob : public Qt3DCore::QAspectJob { public: explicit UpdateSkinningPaletteJob(); diff --git a/src/render/jobs/updateworldtransformjob.cpp b/src/render/jobs/updateworldtransformjob.cpp index e3c8077f4..12582c297 100644 --- a/src/render/jobs/updateworldtransformjob.cpp +++ b/src/render/jobs/updateworldtransformjob.cpp @@ -42,7 +42,6 @@ #include <Qt3DCore/qtransform.h> #include <Qt3DCore/private/qtransform_p.h> #include <Qt3DCore/private/qaspectmanager_p.h> -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/private/entity_p.h> #include <Qt3DRender/private/transform_p.h> #include <Qt3DRender/private/renderlogging_p.h> diff --git a/src/render/lights/environmentlight_p.h b/src/render/lights/environmentlight_p.h index 92f6ce100..7a631ed28 100644 --- a/src/render/lights/environmentlight_p.h +++ b/src/render/lights/environmentlight_p.h @@ -59,7 +59,7 @@ namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT EnvironmentLight : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT EnvironmentLight : public BackendNode { public: Qt3DCore::QNodeId shaderData() const; diff --git a/src/render/lights/light_p.h b/src/render/lights/light_p.h index 5f5f8140e..d1497fddd 100644 --- a/src/render/lights/light_p.h +++ b/src/render/lights/light_p.h @@ -61,7 +61,7 @@ namespace Render { class NodeManagers; -class Q_AUTOTEST_EXPORT Light : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT Light : public BackendNode { public: Qt3DCore::QNodeId shaderData() const; diff --git a/src/render/lights/lightsource_p.h b/src/render/lights/lightsource_p.h index 9e56dc70e..bfa2b81f9 100644 --- a/src/render/lights/lightsource_p.h +++ b/src/render/lights/lightsource_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <Qt3DRender/qt3drender_global.h> +#include <Qt3DRender/private/qt3drender_global_p.h> #include <QVector> QT_BEGIN_NAMESPACE @@ -63,7 +63,7 @@ namespace Render { class Entity; class Light; -struct LightSource { +struct Q_3DRENDERSHARED_PRIVATE_EXPORT LightSource { LightSource(); LightSource(Entity *entity, const QVector<Light *> &lights); diff --git a/src/render/materialsystem/effect.cpp b/src/render/materialsystem/effect.cpp index 035cf4746..9b787b7e2 100644 --- a/src/render/materialsystem/effect.cpp +++ b/src/render/materialsystem/effect.cpp @@ -38,9 +38,9 @@ ****************************************************************************/ #include <Qt3DRender/private/effect_p.h> -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/qeffect.h> #include <Qt3DRender/qparameter.h> +#include <Qt3DRender/qtechnique.h> #include <Qt3DRender/private/qeffect_p.h> #include <QVariant> diff --git a/src/render/materialsystem/effect_p.h b/src/render/materialsystem/effect_p.h index e81be2b8d..e8f79120b 100644 --- a/src/render/materialsystem/effect_p.h +++ b/src/render/materialsystem/effect_p.h @@ -63,7 +63,7 @@ class QTechnique; namespace Render { -class Q_AUTOTEST_EXPORT Effect : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT Effect : public BackendNode { public: Effect(); diff --git a/src/render/materialsystem/filterkey_p.h b/src/render/materialsystem/filterkey_p.h index f4fb2c3d0..91d0ba1f0 100644 --- a/src/render/materialsystem/filterkey_p.h +++ b/src/render/materialsystem/filterkey_p.h @@ -62,7 +62,7 @@ class QFilterKey; namespace Render { -class Q_AUTOTEST_EXPORT FilterKey : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT FilterKey : public BackendNode { public: FilterKey(); diff --git a/src/render/materialsystem/material_p.h b/src/render/materialsystem/material_p.h index 7a02c6691..b13f49b81 100644 --- a/src/render/materialsystem/material_p.h +++ b/src/render/materialsystem/material_p.h @@ -54,7 +54,6 @@ #include <QVariant> #include <Qt3DRender/private/backendnode_p.h> -#include <Qt3DRender/private/shaderparameterpack_p.h> #include <Qt3DRender/private/parameterpack_p.h> QT_BEGIN_NAMESPACE @@ -72,7 +71,7 @@ class Technique; class Effect; class MaterialManager; -class Q_AUTOTEST_EXPORT Material : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT Material : public BackendNode { public: Material(); diff --git a/src/render/materialsystem/parameter_p.h b/src/render/materialsystem/parameter_p.h index 258834ff3..8a30d6657 100644 --- a/src/render/materialsystem/parameter_p.h +++ b/src/render/materialsystem/parameter_p.h @@ -64,7 +64,7 @@ namespace Render { class ParameterManager; class ShaderDataManager; -class Q_AUTOTEST_EXPORT Parameter : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT Parameter : public BackendNode { public: Parameter(); diff --git a/src/render/materialsystem/qshaderprogram_p.h b/src/render/materialsystem/qshaderprogram_p.h index f09b2a30e..20883f03a 100644 --- a/src/render/materialsystem/qshaderprogram_p.h +++ b/src/render/materialsystem/qshaderprogram_p.h @@ -51,14 +51,15 @@ // We mean it. // -#include <private/qnode_p.h> +#include <Qt3DCore/private/qnode_p.h> #include <Qt3DRender/qshaderprogram.h> +#include <Qt3DRender/private/qt3drender_global_p.h> QT_BEGIN_NAMESPACE namespace Qt3DRender { -class QShaderProgramPrivate : public Qt3DCore::QNodePrivate +class Q_3DRENDERSHARED_PRIVATE_EXPORT QShaderProgramPrivate : public Qt3DCore::QNodePrivate { public: QShaderProgramPrivate(); diff --git a/src/render/materialsystem/renderpass.cpp b/src/render/materialsystem/renderpass.cpp index 19e2a427e..a9e8c9b1d 100644 --- a/src/render/materialsystem/renderpass.cpp +++ b/src/render/materialsystem/renderpass.cpp @@ -46,7 +46,6 @@ #include <Qt3DRender/private/qrenderpass_p.h> #include <Qt3DRender/private/renderstates_p.h> -#include <Qt3DRender/private/renderstateset_p.h> #include <algorithm> diff --git a/src/render/materialsystem/renderpass_p.h b/src/render/materialsystem/renderpass_p.h index 314386ad1..03c5c5f19 100644 --- a/src/render/materialsystem/renderpass_p.h +++ b/src/render/materialsystem/renderpass_p.h @@ -71,7 +71,7 @@ namespace Render { class RenderPassManager; class RenderState; -class Q_AUTOTEST_EXPORT RenderPass : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT RenderPass : public BackendNode { public: RenderPass(); diff --git a/src/render/materialsystem/shader.cpp b/src/render/materialsystem/shader.cpp index 00d9d334f..afa70ed41 100644 --- a/src/render/materialsystem/shader.cpp +++ b/src/render/materialsystem/shader.cpp @@ -46,7 +46,6 @@ #include <QMutexLocker> #include <qshaderprogram.h> #include <Qt3DRender/private/attachmentpack_p.h> -#include <Qt3DRender/private/graphicscontext_p.h> #include <Qt3DRender/private/qshaderprogram_p.h> #include <Qt3DRender/private/stringtoint_p.h> #include <Qt3DCore/qpropertyupdatedchange.h> diff --git a/src/render/materialsystem/shader_p.h b/src/render/materialsystem/shader_p.h index 301976065..6f5383e88 100644 --- a/src/render/materialsystem/shader_p.h +++ b/src/render/materialsystem/shader_p.h @@ -67,7 +67,7 @@ namespace Render { class ShaderManager; class AttachmentPack; -class Q_AUTOTEST_EXPORT Shader : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT Shader : public BackendNode { public: static const int modelMatrixNameId; diff --git a/src/render/materialsystem/shaderdata.cpp b/src/render/materialsystem/shaderdata.cpp index 34d4641e9..cc0b39c77 100644 --- a/src/render/materialsystem/shaderdata.cpp +++ b/src/render/materialsystem/shaderdata.cpp @@ -44,12 +44,9 @@ #include <QMetaObject> #include <Qt3DCore/qdynamicpropertyupdatedchange.h> #include <Qt3DCore/qpropertyupdatedchange.h> -#include <private/graphicscontext_p.h> #include <private/qbackendnode_p.h> -#include <private/glbuffer_p.h> #include <private/managers_p.h> #include <private/nodemanagers_p.h> -#include <private/renderviewjobutils_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/materialsystem/shaderdata_p.h b/src/render/materialsystem/shaderdata_p.h index c9cc22939..671ba6ace 100644 --- a/src/render/materialsystem/shaderdata_p.h +++ b/src/render/materialsystem/shaderdata_p.h @@ -52,7 +52,6 @@ // #include <Qt3DRender/private/backendnode_p.h> -#include <Qt3DRender/private/shadervariables_p.h> #include <Qt3DRender/qshaderdata.h> #include <QMutex> #include <Qt3DCore/private/matrix4x4_p.h> @@ -67,7 +66,7 @@ class GraphicsContext; class GLBuffer; class NodeManagers; -class Q_AUTOTEST_EXPORT ShaderData : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT ShaderData : public BackendNode { public: enum TransformType { diff --git a/src/render/materialsystem/technique.cpp b/src/render/materialsystem/technique.cpp index 10e9af990..440d7e49c 100644 --- a/src/render/materialsystem/technique.cpp +++ b/src/render/materialsystem/technique.cpp @@ -43,7 +43,6 @@ #include <Qt3DRender/qparameter.h> #include <Qt3DRender/qtechnique.h> #include <Qt3DRender/qgraphicsapifilter.h> -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/private/filterkey_p.h> #include <Qt3DRender/private/qtechnique_p.h> #include <Qt3DRender/private/shader_p.h> diff --git a/src/render/materialsystem/techniquemanager_p.h b/src/render/materialsystem/techniquemanager_p.h index 8108d5f5b..205dbc191 100644 --- a/src/render/materialsystem/techniquemanager_p.h +++ b/src/render/materialsystem/techniquemanager_p.h @@ -60,7 +60,7 @@ namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT TechniqueManager : public Qt3DCore::QResourceManager< +class Q_3DRENDERSHARED_PRIVATE_EXPORT TechniqueManager : public Qt3DCore::QResourceManager< Technique, Qt3DCore::QNodeId, Qt3DCore::NonLockingPolicy> diff --git a/src/render/picking/objectpicker_p.h b/src/render/picking/objectpicker_p.h index 49c8de770..d2ccf1c6a 100644 --- a/src/render/picking/objectpicker_p.h +++ b/src/render/picking/objectpicker_p.h @@ -62,7 +62,7 @@ typedef QSharedPointer<QPickEvent> QPickEventPtr; namespace Render { -class Q_AUTOTEST_EXPORT ObjectPicker : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT ObjectPicker : public BackendNode { public: ObjectPicker(); diff --git a/src/render/picking/pickeventfilter_p.h b/src/render/picking/pickeventfilter_p.h index dfd8c1b99..81ba6a9f4 100644 --- a/src/render/picking/pickeventfilter_p.h +++ b/src/render/picking/pickeventfilter_p.h @@ -55,6 +55,7 @@ #include <QMouseEvent> #include <QKeyEvent> #include <QtCore/qmutex.h> +#include <Qt3DRender/private/qt3drender_global_p.h> QT_BEGIN_NAMESPACE @@ -62,7 +63,7 @@ namespace Qt3DRender { namespace Render { -class PickEventFilter : public QObject +class Q_3DRENDERSHARED_PRIVATE_EXPORT PickEventFilter : public QObject { Q_OBJECT public: diff --git a/src/render/picking/raycaster_p.h b/src/render/picking/raycaster_p.h index 865d40365..e7d12af56 100644 --- a/src/render/picking/raycaster_p.h +++ b/src/render/picking/raycaster_p.h @@ -64,7 +64,7 @@ namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT RayCaster : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT RayCaster : public BackendNode { public: RayCaster(); diff --git a/src/render/qrendererplugin.cpp b/src/render/qrendererplugin.cpp new file mode 100644 index 000000000..eb54a0ead --- /dev/null +++ b/src/render/qrendererplugin.cpp @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Klaralvdalens Datakonsult AB (KDAB). +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qrendererplugin_p.h" + +QT_BEGIN_NAMESPACE + +namespace Qt3DRender { + +namespace Render { + +QRendererPlugin::QRendererPlugin(QObject *parent) + : QObject(parent) +{ +} + +QRendererPlugin::~QRendererPlugin() +{ +} + +AbstractRenderer *QRendererPlugin::create(const QString &key, QRenderAspect::RenderType renderMode) +{ + Q_UNUSED(key) + Q_UNUSED(renderMode) + return nullptr; +} + +} // Render + +} // Qt3DRender + +QT_END_NAMESPACE diff --git a/src/render/qrendererplugin_p.h b/src/render/qrendererplugin_p.h new file mode 100644 index 000000000..d4daeeda2 --- /dev/null +++ b/src/render/qrendererplugin_p.h @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Klaralvdalens Datakonsult AB (KDAB). +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QT3DRENDER_RENDER_QRENDERERPLUGIN_P_H +#define QT3DRENDER_RENDER_QRENDERERPLUGIN_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of other Qt classes. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QtCore/QObject> +#include <QtCore/QtPlugin> +#include <QtCore/QFactoryInterface> +#include <Qt3DRender/private/qt3drender_global_p.h> +#include <Qt3DRender/qrenderaspect.h> + +QT_BEGIN_NAMESPACE + +namespace Qt3DRender { + +namespace Render { + +#define QRendererPluginFactoryInterface_iid "org.qt-project.Qt3DRender.QRendererFactoryInterface 5.11" + +class AbstractRenderer; + +class Q_3DRENDERSHARED_PRIVATE_EXPORT QRendererPlugin : public QObject +{ + Q_OBJECT +public: + explicit QRendererPlugin(QObject *parent = nullptr); + ~QRendererPlugin(); + + virtual AbstractRenderer *create(const QString &key, QRenderAspect::RenderType renderMode); +}; + +} // Render + +} // Qt3DRender + +QT_END_NAMESPACE + +#endif // QT3DRENDER_RENDER_QRENDERERPLUGIN_P_H diff --git a/src/render/qrendererpluginfactory.cpp b/src/render/qrendererpluginfactory.cpp new file mode 100644 index 000000000..3cd41daed --- /dev/null +++ b/src/render/qrendererpluginfactory.cpp @@ -0,0 +1,102 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Klaralvdalens Datakonsult AB (KDAB). +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qrendererpluginfactory_p.h" + +#include <QtCore/private/qfactoryloader_p.h> +#include <QtCore/QCoreApplication> +#include <QtCore/QDir> + +#include <Qt3DRender/private/qrendererplugin_p.h> + +QT_BEGIN_NAMESPACE + +namespace Qt3DRender { + +namespace Render { + +Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader, (QRendererPluginFactoryInterface_iid, QLatin1String("/renderers"), Qt::CaseInsensitive)) +#ifndef QT_NO_LIBRARY +Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, directLoader, (QRendererPluginFactoryInterface_iid, QLatin1String(""), Qt::CaseInsensitive)) +#endif + +QStringList QRendererPluginFactory::keys(const QString &pluginPath) +{ + QStringList list; + if (!pluginPath.isEmpty()) { +#if QT_CONFIG(library) + QCoreApplication::addLibraryPath(pluginPath); + list = directLoader()->keyMap().values(); + if (!list.isEmpty()) { + const QString postFix = QLatin1String(" (from ") + + QDir::toNativeSeparators(pluginPath) + + QLatin1Char(')'); + const QStringList::iterator end = list.end(); + for (QStringList::iterator it = list.begin(); it != end; ++it) + (*it).append(postFix); + } +#else + qWarning() << QObject::tr("Cannot query QRendererPlugin plugins at %1. " + "Library loading is disabled.").arg(pluginPath); +#endif + } + list.append(loader()->keyMap().values()); + return list; +} + +AbstractRenderer *QRendererPluginFactory::create(const QString &name, QRenderAspect::RenderType renderMode, const QString &pluginPath) +{ + if (!pluginPath.isEmpty()) { +#if QT_CONFIG(library) + QCoreApplication::addLibraryPath(pluginPath); + if (AbstractRenderer *ret = qLoadPlugin<AbstractRenderer, QRendererPlugin>(directLoader(), name, renderMode)) + return ret; +#else + qWarning() << QObject::tr("Cannot load QRendererPlugin plugin from %1. " + "Library loading is disabled.").arg(pluginPath); +#endif + } + return qLoadPlugin<AbstractRenderer, QRendererPlugin>(loader(), name, renderMode); +} + +} // Render + +} // Qt3DRender + +QT_END_NAMESPACE diff --git a/src/render/qrendererpluginfactory_p.h b/src/render/qrendererpluginfactory_p.h new file mode 100644 index 000000000..f73cc8929 --- /dev/null +++ b/src/render/qrendererpluginfactory_p.h @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Klaralvdalens Datakonsult AB (KDAB). +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QT3DRENDER_RENDER_QRENDERERPLUGINFACTORY_P_H +#define QT3DRENDER_RENDER_QRENDERERPLUGINFACTORY_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of other Qt classes. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <Qt3DRender/private/qt3drender_global_p.h> +#include <Qt3DRender/qrenderaspect.h> +#include <QtCore/QStringList> + +QT_BEGIN_NAMESPACE + +namespace Qt3DRender { + +namespace Render { + +class AbstractRenderer; + +class Q_3DRENDERSHARED_PRIVATE_EXPORT QRendererPluginFactory +{ +public: + static QStringList keys(const QString &pluginPath = QString()); + static AbstractRenderer *create(const QString &name, QRenderAspect::RenderType renderMode, const QString &pluginPath = QString()); +}; + +} // Render + +} // Qt3DRender + +QT_END_NAMESPACE + +#endif // QT3DRENDER_RENDER_QRENDERERPLUGINFACTORY_P_H diff --git a/src/render/render.pro b/src/render/render.pro index 55303fa83..87e298210 100644 --- a/src/render/render.pro +++ b/src/render/render.pro @@ -1,8 +1,7 @@ TARGET = Qt3DRender MODULE = 3drender -QT = core-private gui-private 3dcore-private -QT_PRIVATE = openglextensions +QT = core-private 3dcore-private QT_FOR_PRIVATE = concurrent include (backend/render-backend.pri) @@ -18,7 +17,6 @@ include (picking/picking.pri) include (raycasting/raycasting.pri) include (services/services.pri) include (texture/texture.pri) -include (renderers/renderers.pri) gcov { QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage @@ -39,14 +37,19 @@ HEADERS += \ renderlogging_p.h \ qt3drender_global.h \ qt3drender_global_p.h \ - aligned_malloc_p.h + aligned_malloc_p.h \ + qrendererplugin_p.h \ + qrendererpluginfactory_p.h SOURCES += \ - renderlogging.cpp + renderlogging.cpp \ + qrendererplugin.cpp \ + qrendererpluginfactory.cpp MODULE_PLUGIN_TYPES = \ sceneparsers \ geometryloaders \ - renderplugins + renderplugins \ + renderers load(qt_module) diff --git a/src/render/renderers/opengl/renderstates/renderstates.pri b/src/render/renderers/opengl/renderstates/renderstates.pri deleted file mode 100644 index 10f51a0ed..000000000 --- a/src/render/renderers/opengl/renderstates/renderstates.pri +++ /dev/null @@ -1,7 +0,0 @@ -INCLUDEPATH += $$PWD - -SOURCES += \ - $$PWD/renderstateset.cpp - -HEADERS += \ - $$PWD/renderstateset_p.h diff --git a/src/render/renderers/renderers.pri b/src/render/renderers/renderers.pri deleted file mode 100644 index 795a6fbdf..000000000 --- a/src/render/renderers/renderers.pri +++ /dev/null @@ -1,7 +0,0 @@ -TEMPLATE = subdirs - -# OpenGL renderer -include($$OUT_PWD/qt3drender-config.pri) -QT_FOR_CONFIG += 3drender-private - -qtConfig(qt3d-opengl-renderer): include(opengl/opengl.pri) diff --git a/src/render/renderstates/genericstate_p.h b/src/render/renderstates/genericstate_p.h index e3ece36f5..1d363e4fe 100644 --- a/src/render/renderstates/genericstate_p.h +++ b/src/render/renderstates/genericstate_p.h @@ -56,6 +56,7 @@ #include <Qt3DRender/private/qrenderstatecreatedchange_p.h> #include <Qt3DCore/private/qresourcemanager_p.h> #include <Qt3DRender/private/statemask_p.h> +#include <Qt3DRender/private/qt3drender_global_p.h> //#include <Qt3DRender/private/statevariant_p.h> #include <QList> #include <QVector3D> @@ -73,7 +74,7 @@ class GraphicsContext; typedef quint64 StateMaskSet; -class RenderStateImpl +class Q_3DRENDERSHARED_PRIVATE_EXPORT RenderStateImpl { public: virtual ~RenderStateImpl() {} diff --git a/src/render/renderstates/renderstatenode_p.h b/src/render/renderstates/renderstatenode_p.h index e0258112f..94d2eb63e 100644 --- a/src/render/renderstates/renderstatenode_p.h +++ b/src/render/renderstates/renderstatenode_p.h @@ -57,7 +57,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT RenderStateNode : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT RenderStateNode : public BackendNode { public: RenderStateNode(); diff --git a/src/render/renderstates/renderstates.cpp b/src/render/renderstates/renderstates.cpp index 5e238c010..1ab4e0092 100644 --- a/src/render/renderstates/renderstates.cpp +++ b/src/render/renderstates/renderstates.cpp @@ -44,7 +44,6 @@ #include <Qt3DRender/qcullface.h> #include <Qt3DRender/qpointsize.h> -#include <Qt3DRender/private/graphicscontext_p.h> #include <Qt3DRender/private/qstenciloperation_p.h> #include <Qt3DRender/private/qstenciltest_p.h> #include <Qt3DRender/qblendequationarguments.h> diff --git a/src/render/renderstates/renderstates.pri b/src/render/renderstates/renderstates.pri index 06ba53a41..867a8c299 100644 --- a/src/render/renderstates/renderstates.pri +++ b/src/render/renderstates/renderstates.pri @@ -51,7 +51,8 @@ HEADERS += \ $$PWD/statemask_p.h \ $$PWD/statevariant_p.h \ $$PWD/qrastermode.h \ - $$PWD/qrastermode_p.h + $$PWD/qrastermode_p.h \ + $$PWD/renderstateset_p.h SOURCES += \ $$PWD/qalphacoverage.cpp \ @@ -82,4 +83,5 @@ SOURCES += \ $$PWD/renderstatenode.cpp \ $$PWD/statevariant.cpp \ $$PWD/qmultisampleantialiasing.cpp \ - $$PWD/qrastermode.cpp + $$PWD/qrastermode.cpp \ + $$PWD/renderstateset.cpp diff --git a/src/render/renderstates/renderstates_p.h b/src/render/renderstates/renderstates_p.h index 6c8e9d551..8c4c065ee 100644 --- a/src/render/renderstates/renderstates_p.h +++ b/src/render/renderstates/renderstates_p.h @@ -59,128 +59,128 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { -class Q_AUTOTEST_EXPORT BlendEquationArguments : public GenericState<BlendEquationArguments, BlendEquationArgumentsMask, GLenum, GLenum, GLenum, GLenum, bool, int> +class Q_3DRENDERSHARED_PRIVATE_EXPORT BlendEquationArguments : public GenericState<BlendEquationArguments, BlendEquationArgumentsMask, GLenum, GLenum, GLenum, GLenum, bool, int> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT BlendEquation : public GenericState<BlendEquation, BlendStateMask, GLenum> +class Q_3DRENDERSHARED_PRIVATE_EXPORT BlendEquation : public GenericState<BlendEquation, BlendStateMask, GLenum> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT AlphaFunc : public GenericState<AlphaFunc, AlphaTestMask, GLenum, GLclampf> +class Q_3DRENDERSHARED_PRIVATE_EXPORT AlphaFunc : public GenericState<AlphaFunc, AlphaTestMask, GLenum, GLclampf> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT MSAAEnabled : public GenericState<MSAAEnabled, MSAAEnabledStateMask, GLboolean> +class Q_3DRENDERSHARED_PRIVATE_EXPORT MSAAEnabled : public GenericState<MSAAEnabled, MSAAEnabledStateMask, GLboolean> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT DepthRange : public GenericState<DepthRange, DepthRangeMask, double, double> +class Q_3DRENDERSHARED_PRIVATE_EXPORT DepthRange : public GenericState<DepthRange, DepthRangeMask, double, double> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT DepthTest : public GenericState<DepthTest, DepthTestStateMask, GLenum> +class Q_3DRENDERSHARED_PRIVATE_EXPORT DepthTest : public GenericState<DepthTest, DepthTestStateMask, GLenum> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT RasterMode : public GenericState<RasterMode, RasterModeMask, GLenum, GLenum> +class Q_3DRENDERSHARED_PRIVATE_EXPORT RasterMode : public GenericState<RasterMode, RasterModeMask, GLenum, GLenum> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT NoDepthMask : public GenericState<NoDepthMask, DepthWriteStateMask, GLboolean> +class Q_3DRENDERSHARED_PRIVATE_EXPORT NoDepthMask : public GenericState<NoDepthMask, DepthWriteStateMask, GLboolean> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT CullFace : public GenericState<CullFace, CullFaceStateMask, GLenum> +class Q_3DRENDERSHARED_PRIVATE_EXPORT CullFace : public GenericState<CullFace, CullFaceStateMask, GLenum> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT FrontFace : public GenericState<FrontFace, FrontFaceStateMask, GLenum> +class Q_3DRENDERSHARED_PRIVATE_EXPORT FrontFace : public GenericState<FrontFace, FrontFaceStateMask, GLenum> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT Dithering : public GenericState<Dithering, DitheringStateMask> +class Q_3DRENDERSHARED_PRIVATE_EXPORT Dithering : public GenericState<Dithering, DitheringStateMask> { }; -class Q_AUTOTEST_EXPORT ScissorTest : public GenericState<ScissorTest, ScissorStateMask, int, int, int, int> +class Q_3DRENDERSHARED_PRIVATE_EXPORT ScissorTest : public GenericState<ScissorTest, ScissorStateMask, int, int, int, int> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT StencilTest : public GenericState<StencilTest, StencilTestStateMask, GLenum, int, uint, GLenum, int, uint> +class Q_3DRENDERSHARED_PRIVATE_EXPORT StencilTest : public GenericState<StencilTest, StencilTestStateMask, GLenum, int, uint, GLenum, int, uint> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT AlphaCoverage : public GenericState<AlphaCoverage, AlphaCoverageStateMask> +class Q_3DRENDERSHARED_PRIVATE_EXPORT AlphaCoverage : public GenericState<AlphaCoverage, AlphaCoverageStateMask> { }; -class Q_AUTOTEST_EXPORT PointSize : public GenericState<PointSize, PointSizeMask, bool, GLfloat> +class Q_3DRENDERSHARED_PRIVATE_EXPORT PointSize : public GenericState<PointSize, PointSizeMask, bool, GLfloat> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT PolygonOffset : public GenericState<PolygonOffset, PolygonOffsetStateMask, GLfloat, GLfloat> +class Q_3DRENDERSHARED_PRIVATE_EXPORT PolygonOffset : public GenericState<PolygonOffset, PolygonOffsetStateMask, GLfloat, GLfloat> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT ColorMask : public GenericState<ColorMask, ColorStateMask, GLboolean, GLboolean, GLboolean, GLboolean> +class Q_3DRENDERSHARED_PRIVATE_EXPORT ColorMask : public GenericState<ColorMask, ColorStateMask, GLboolean, GLboolean, GLboolean, GLboolean> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT ClipPlane : public GenericState<ClipPlane, ClipPlaneMask, int, QVector3D, float> +class Q_3DRENDERSHARED_PRIVATE_EXPORT ClipPlane : public GenericState<ClipPlane, ClipPlaneMask, int, QVector3D, float> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT SeamlessCubemap : public GenericState<SeamlessCubemap, SeamlessCubemapMask> +class Q_3DRENDERSHARED_PRIVATE_EXPORT SeamlessCubemap : public GenericState<SeamlessCubemap, SeamlessCubemapMask> { }; -class Q_AUTOTEST_EXPORT StencilOp : public GenericState<StencilOp, StencilOpMask, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum> +class Q_3DRENDERSHARED_PRIVATE_EXPORT StencilOp : public GenericState<StencilOp, StencilOpMask, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT StencilMask : public GenericState<StencilMask, StencilWriteStateMask, uint, uint> +class Q_3DRENDERSHARED_PRIVATE_EXPORT StencilMask : public GenericState<StencilMask, StencilWriteStateMask, uint, uint> { public: void updateProperties(const QRenderState *node) override; }; -class Q_AUTOTEST_EXPORT LineWidth : public GenericState<LineWidth, LineWidthMask, GLfloat, bool> +class Q_3DRENDERSHARED_PRIVATE_EXPORT LineWidth : public GenericState<LineWidth, LineWidthMask, GLfloat, bool> { public: void updateProperties(const QRenderState *node) override; diff --git a/src/render/renderers/opengl/renderstates/renderstateset.cpp b/src/render/renderstates/renderstateset.cpp index d667d9c76..6b66d2dd7 100644 --- a/src/render/renderers/opengl/renderstates/renderstateset.cpp +++ b/src/render/renderstates/renderstateset.cpp @@ -42,9 +42,6 @@ #include <bitset> -#include <QDebug> -#include <QOpenGLContext> - #include <Qt3DRender/private/renderstates_p.h> #include <Qt3DRender/private/qrenderstate_p.h> diff --git a/src/render/renderers/opengl/renderstates/renderstateset_p.h b/src/render/renderstates/renderstateset_p.h index c2f3a0219..8058bec88 100644 --- a/src/render/renderers/opengl/renderstates/renderstateset_p.h +++ b/src/render/renderstates/renderstateset_p.h @@ -67,7 +67,7 @@ namespace Render { class RenderState; -class RenderStateSet +class Q_3DRENDERSHARED_PRIVATE_EXPORT RenderStateSet { public: RenderStateSet(); diff --git a/src/render/renderstates/statevariant_p.h b/src/render/renderstates/statevariant_p.h index ef6c80744..1926bb937 100644 --- a/src/render/renderstates/statevariant_p.h +++ b/src/render/renderstates/statevariant_p.h @@ -58,7 +58,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { -struct Q_AUTOTEST_EXPORT StateVariant +struct Q_3DRENDERSHARED_PRIVATE_EXPORT StateVariant { StateMask type; diff --git a/src/render/services/vsyncframeadvanceservice_p.h b/src/render/services/vsyncframeadvanceservice_p.h index c57c81a79..81d601e3e 100644 --- a/src/render/services/vsyncframeadvanceservice_p.h +++ b/src/render/services/vsyncframeadvanceservice_p.h @@ -52,6 +52,7 @@ // #include <Qt3DCore/private/qabstractframeadvanceservice_p.h> +#include <Qt3DRender/private/qt3drender_global_p.h> QT_BEGIN_NAMESPACE @@ -61,7 +62,7 @@ namespace Render { class VSyncFrameAdvanceServicePrivate; -class Q_AUTOTEST_EXPORT VSyncFrameAdvanceService final : public Qt3DCore::QAbstractFrameAdvanceService +class Q_3DRENDERSHARED_PRIVATE_EXPORT VSyncFrameAdvanceService final : public Qt3DCore::QAbstractFrameAdvanceService { public: explicit VSyncFrameAdvanceService(bool drivenByRenderThread); diff --git a/src/render/texture/qtexture.cpp b/src/render/texture/qtexture.cpp index 7f662dfc5..6b7b92166 100644 --- a/src/render/texture/qtexture.cpp +++ b/src/render/texture/qtexture.cpp @@ -57,7 +57,7 @@ #include <Qt3DRender/private/managers_p.h> #include <Qt3DRender/private/texture_p.h> #include <Qt3DRender/private/qurlhelper_p.h> -#include <Qt3DRender/private/glresourcemanagers_p.h> +#include <qmath.h> QT_BEGIN_NAMESPACE diff --git a/src/render/texture/qtextureimagedata_p.h b/src/render/texture/qtextureimagedata_p.h index d9a0952de..14095e2eb 100644 --- a/src/render/texture/qtextureimagedata_p.h +++ b/src/render/texture/qtextureimagedata_p.h @@ -52,12 +52,13 @@ // #include "qtextureimagedata.h" +#include <Qt3DRender/private/qt3drender_global_p.h> QT_BEGIN_NAMESPACE namespace Qt3DRender { -class QTextureImageDataPrivate +class Q_3DRENDERSHARED_PRIVATE_EXPORT QTextureImageDataPrivate { public: QTextureImageDataPrivate(); diff --git a/src/render/texture/texture.cpp b/src/render/texture/texture.cpp index 795c5844e..dab037568 100644 --- a/src/render/texture/texture.cpp +++ b/src/render/texture/texture.cpp @@ -47,7 +47,7 @@ #include <Qt3DCore/qpropertynoderemovedchange.h> #include <Qt3DRender/private/texture_p.h> -#include <Qt3DRender/private/glresourcemanagers_p.h> +#include <Qt3DRender/private/qabstracttexture_p.h> #include <Qt3DRender/private/managers_p.h> QT_BEGIN_NAMESPACE diff --git a/src/render/texture/texture_p.h b/src/render/texture/texture_p.h index 83a05ebcc..61011bb68 100644 --- a/src/render/texture/texture_p.h +++ b/src/render/texture/texture_p.h @@ -128,7 +128,7 @@ struct TextureParameters * Will query the TextureImplManager for an instance of TextureImpl that matches it's * properties. */ -class Q_AUTOTEST_EXPORT Texture : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT Texture : public BackendNode { public: Texture(); diff --git a/src/render/texture/texturedatamanager_p.h b/src/render/texture/texturedatamanager_p.h new file mode 100644 index 000000000..61ebd1125 --- /dev/null +++ b/src/render/texture/texturedatamanager_p.h @@ -0,0 +1,227 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB). +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QT3DRENDER_RENDER_TEXTUREDATAMANAGER_H +#define QT3DRENDER_RENDER_TEXTUREDATAMANAGER_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of other Qt classes. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QMutex> +#include <QMutexLocker> +#include <Qt3DRender/qtexture.h> +#include <Qt3DRender/qtextureimagedata.h> +#include <Qt3DRender/qtexturegenerator.h> +#include <Qt3DRender/qtextureimagedatagenerator.h> +#include <Qt3DRender/private/qt3drender_global_p.h> + +QT_BEGIN_NAMESPACE + +namespace Qt3DRender { +namespace Render { + +/** + * The texture data managers associates each texture data generator + * with the data objects generated by them. That is, either + * + * QTextureImageDataGenerator -> QTextureImageData, or + * QTextureGenerator -> QTextureData + * + * This way, texture classes only need to refer to the texture functors used. + * Aspect jobs will make sure that at the start of each frame, all generators + * registered with the GeneratorDataManagers have been executed. + * + * This guarantees that no texture data generator is executed twice. + * + * Each Generator is associated with a number of textures that reference it. + * If the last texture disassociates from a generator, the QTextureData will + * be deleted. + */ +template <class GeneratorPtr, class DataPtr, class ReferencedType> +class GeneratorDataManager +{ +public: + GeneratorDataManager() {} + + /*! + * If no data for the given generator exists, make sure that the + * generators are executed the next frame. Reference generator by + * given texture + * + * Returns true if the Entry for a given generator had to be created + */ + bool requestData(const GeneratorPtr &generator, ReferencedType r) + { + QMutexLocker lock(&m_mutex); + + Entry *entry = findEntry(generator); + const bool needsToBeCreated = (entry == nullptr); + if (needsToBeCreated) + entry = createEntry(generator); + Q_ASSERT(entry); + if (!entry->referencingObjects.contains(r)) + entry->referencingObjects.push_back(r); + return needsToBeCreated; + } + + /*! + * Dereference given generator from texture. If no other textures still reference + * the generator, the associated data will be deleted + */ + void releaseData(const GeneratorPtr &generator, ReferencedType r) + { + QMutexLocker lock(&m_mutex); + + const auto end = m_data.end(); + for (auto it = m_data.begin(); it != end; ++it) { + Entry &entry = *it; + if (*entry.generator == *generator) { + entry.referencingObjects.removeAll(r); + // delete, if that was the last reference + if (entry.referencingObjects.empty()) { + m_data.erase(it); + return; + } + } + } + } + + /*! + * Return data associated with given generator, if existent + */ + DataPtr getData(const GeneratorPtr &generator) + { + QMutexLocker lock(&m_mutex); + + const Entry *entry = findEntry(generator); + return entry ? entry->data : DataPtr(); + } + + /*! + * Returns all generators that were not yet executed + */ + QVector<GeneratorPtr> pendingGenerators() + { + QMutexLocker lock(&m_mutex); + + QVector<GeneratorPtr> ret; + for (const Entry &entry : m_data) + if (!entry.data && !ret.contains(entry.generator)) + ret.push_back(entry.generator); + return ret; + } + + /*! + * Assigns a piece of data to the generator that was used to + * create it. + */ + void assignData(const GeneratorPtr &generator, const DataPtr &data) + { + QMutexLocker lock(&m_mutex); + + Entry *entry = findEntry(generator); + if (!entry) { + qWarning() << "[TextureDataManager] assignData() called with non-existent generator"; + return; + } + entry->data = data; + } + + bool contains(const GeneratorPtr &generator) + { + return findEntry(generator) != nullptr; + } + +private: + + struct Entry { + GeneratorPtr generator; + QVector<ReferencedType> referencingObjects; + DataPtr data; + }; + + /*! + * Helper function: return entry for given generator if it exists, nullptr + * otherwise. + */ + Entry* findEntry(const GeneratorPtr &generator) + { + for (int i = 0, sz = m_data.size(); i < sz; ++i) + if (*m_data[i].generator == *generator) + return &m_data[i]; + return nullptr; + } + + Entry *createEntry(const GeneratorPtr &generator) + { + Entry newEntry; + newEntry.generator = generator; + + m_data.push_back(newEntry); + return &m_data.back(); + } + + QMutex m_mutex; + QVector<Entry> m_data; +}; + +class QT3DRENDERSHARED_PRIVATE_EXPORT TextureDataManager + : public GeneratorDataManager<QTextureGeneratorPtr, QTextureDataPtr, void*> +{ +}; + +class QT3DRENDERSHARED_PRIVATE_EXPORT TextureImageDataManager + : public GeneratorDataManager<QTextureImageDataGeneratorPtr, QTextureImageDataPtr, Qt3DCore::QNodeId> +{ +}; + +} // namespace Render +} // namespace Qt3DRender + +QT_END_NAMESPACE + +#endif // TEXTUREDATAMANAGER_H diff --git a/src/render/texture/textureimage_p.h b/src/render/texture/textureimage_p.h index ced8f1ad2..42ef242a7 100644 --- a/src/render/texture/textureimage_p.h +++ b/src/render/texture/textureimage_p.h @@ -70,7 +70,7 @@ class TextureImageDataManager; * Backend class for QAbstractTextureImage. * Will only hold the generator and some info values. */ -class Q_AUTOTEST_EXPORT TextureImage : public BackendNode +class Q_3DRENDERSHARED_PRIVATE_EXPORT TextureImage : public BackendNode { public: TextureImage(); diff --git a/src/src.pro b/src/src.pro index 0a3ed8cb7..047e67bf2 100644 --- a/src/src.pro +++ b/src/src.pro @@ -100,6 +100,11 @@ src_plugins_geometryloaders.file = $$PWD/plugins/geometryloaders/geometryloaders src_plugins_geometryloaders.target = sub-plugins-geometryloaders src_plugins_geometryloaders.depends = src_render src_extras +# Qt3D Renderer plugins +src_plugins_renderers.file = $$PWD/plugins/renderers/renderers.pro +src_plugins_renderers.target = sub-plugins-renderers +src_plugins_renderers.depends = src_render + qtHaveModule(quick) { # Qt3D Render plugins src_plugins_render.file = $$PWD/plugins/renderplugins/renderplugins.pro @@ -114,7 +119,11 @@ include($$OUT_PWD/core/qt3dcore-config.pri) qtConfig(qt3d-input): SUBDIRS += src_input qtConfig(qt3d-logic): SUBDIRS += src_logic -qtConfig(qt3d-render): SUBDIRS += src_render +qtConfig(qt3d-render) { + SUBDIRS += \ + src_render \ + src_plugins_renderers +} qtConfig(qt3d-animation) { SUBDIRS += src_animation qtConfig(qt3d-input): SUBDIRS += src_doc diff --git a/tests/auto/render/computecommand/tst_computecommand.cpp b/tests/auto/render/computecommand/tst_computecommand.cpp index 4dc6b4436..d6fa1d579 100644 --- a/tests/auto/render/computecommand/tst_computecommand.cpp +++ b/tests/auto/render/computecommand/tst_computecommand.cpp @@ -31,7 +31,6 @@ #include <Qt3DRender/qcomputecommand.h> #include <Qt3DRender/private/qcomputecommand_p.h> #include <Qt3DRender/private/computecommand_p.h> -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/private/managers_p.h> #include <Qt3DCore/private/qbackendnode_p.h> @@ -43,20 +42,6 @@ #include "testpostmanarbiter.h" -// tst_Renderer is a friend class of Renderer -class tst_Renderer : public Qt3DRender::Render::Renderer -{ -public: - tst_Renderer() - : Qt3DRender::Render::Renderer(Qt3DRender::QRenderAspect::Synchronous) - {} - - ~tst_Renderer() { - shutdown(); - } -}; - - class tst_ComputeCommand : public Qt3DCore::QBackendNodeTester { Q_OBJECT @@ -271,80 +256,6 @@ private Q_SLOTS: QCOMPARE(backendComputeCommand.hasReachedFrameCount(), false); QCOMPARE(backendComputeCommand.frameCount(), 1); } - - void checkDisablesFrontend() - { - // GIVEN - Qt3DRender::Render::NodeManagers nodeManager; - tst_Renderer renderer; - TestArbiter arbiter; - - Qt3DCore::QAspectManager manager; - Qt3DCore::QScene scene; - - Qt3DCore::QEntity rootEntity; - Qt3DCore::QNodePrivate::get(&rootEntity)->setScene(&scene); - - Qt3DRender::QComputeCommand computeCommand; - Qt3DRender::Render::ComputeCommand *backendComputeCommand = nullptr; - - renderer.setNodeManagers(&nodeManager); - - // WHEN - computeCommand.setParent(&rootEntity); - // RootEntity is the entry point to retrieve the scene instance for lookups - manager.setRootEntity(&rootEntity, {}); - - // THEN - QVERIFY(scene.lookupNode(computeCommand.id()) != nullptr); - - // WHEN - auto handle = nodeManager.computeJobManager()->getOrAcquireHandle(computeCommand.id()); - backendComputeCommand = nodeManager.computeJobManager()->data(handle); - - // WHEN - computeCommand.setWorkGroupX(256); - computeCommand.setWorkGroupY(512); - computeCommand.setWorkGroupZ(128); - computeCommand.setRunType(Qt3DRender::QComputeCommand::Manual); - computeCommand.trigger(1); - - Qt3DCore::QBackendNodePrivate::get(backendComputeCommand)->setArbiter(&arbiter); - backendComputeCommand->setRenderer(&renderer); - simulateInitializationSync(&computeCommand, backendComputeCommand); - - // THEN - QCOMPARE(backendComputeCommand->frameCount(),1); - QCOMPARE(backendComputeCommand->isEnabled(), true); - QCOMPARE(computeCommand.isEnabled(), true); - QCOMPARE(backendComputeCommand->hasReachedFrameCount(), false); - - // WHEN - backendComputeCommand->updateFrameCount(); - - // THEN - QCOMPARE(backendComputeCommand->frameCount(), 0); - QCOMPARE(backendComputeCommand->hasReachedFrameCount(), true); - - - // Still enabled as we have yet to notify the fronted - QCOMPARE(backendComputeCommand->isEnabled(), true); - QCOMPARE(computeCommand.isEnabled(), true); - - // WHEN - renderer.jobsDone(&manager); // so Renderer::sendDisablesToFrontend gets called - - // THEN - QCOMPARE(computeCommand.isEnabled(), false); - QCOMPARE(backendComputeCommand->hasReachedFrameCount(), false); - - // WHEN - backendComputeCommand->syncFromFrontEnd(&computeCommand, false); - - // THEN - QCOMPARE(backendComputeCommand->frameCount(), 0); - QCOMPARE(backendComputeCommand->isEnabled(), false); - } }; QTEST_MAIN(tst_ComputeCommand) diff --git a/tests/auto/render/effect/tst_effect.cpp b/tests/auto/render/effect/tst_effect.cpp index 369cdf793..2b145669e 100644 --- a/tests/auto/render/effect/tst_effect.cpp +++ b/tests/auto/render/effect/tst_effect.cpp @@ -33,7 +33,6 @@ #include <Qt3DRender/qparameter.h> #include <Qt3DRender/private/qeffect_p.h> #include <Qt3DRender/private/effect_p.h> -#include <Qt3DRender/private/shaderparameterpack_p.h> #include "qbackendnodetester.h" #include "testrenderer.h" diff --git a/tests/auto/render/layerfiltering/tst_layerfiltering.cpp b/tests/auto/render/layerfiltering/tst_layerfiltering.cpp index 255ff5ea8..1ffec30ae 100644 --- a/tests/auto/render/layerfiltering/tst_layerfiltering.cpp +++ b/tests/auto/render/layerfiltering/tst_layerfiltering.cpp @@ -32,6 +32,7 @@ #include <Qt3DRender/private/managers_p.h> #include <Qt3DRender/private/entity_p.h> #include <Qt3DRender/private/filterlayerentityjob_p.h> +#include <Qt3DRender/private/updateentitylayersjob_p.h> #include <Qt3DRender/private/updatetreeenabledjob_p.h> #include <Qt3DRender/qlayer.h> #include <Qt3DRender/qlayerfilter.h> diff --git a/tests/auto/render/opengl/computecommand/computecommand.pro b/tests/auto/render/opengl/computecommand/computecommand.pro new file mode 100644 index 000000000..38515059a --- /dev/null +++ b/tests/auto/render/opengl/computecommand/computecommand.pro @@ -0,0 +1,15 @@ +TEMPLATE = app + +TARGET = tst_computecommand + +QT += 3dcore 3dcore-private 3drender 3drender-private testlib + +CONFIG += testcase + +SOURCES += tst_computecommand.cpp + +include(../../../core/common/common.pri) +include(../../commons/commons.pri) + +# Link Against OpenGL Renderer Plugin +include(../opengl_render_plugin.pri) diff --git a/tests/auto/render/opengl/computecommand/tst_computecommand.cpp b/tests/auto/render/opengl/computecommand/tst_computecommand.cpp new file mode 100644 index 000000000..80cbfb090 --- /dev/null +++ b/tests/auto/render/opengl/computecommand/tst_computecommand.cpp @@ -0,0 +1,143 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB). +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** 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 General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include <QtTest/QTest> +#include <Qt3DRender/qcomputecommand.h> +#include <Qt3DRender/private/qcomputecommand_p.h> +#include <Qt3DRender/private/computecommand_p.h> +#include <Qt3DRender/private/nodemanagers_p.h> +#include <Qt3DRender/private/managers_p.h> +#include <Qt3DCore/private/qbackendnode_p.h> +#include <Qt3DCore/private/qaspectmanager_p.h> +#include <Qt3DCore/private/qscene_p.h> +#include <Qt3DCore/qpropertyupdatedchange.h> +#include <renderer_p.h> +#include "qbackendnodetester.h" +#include "testrenderer.h" +#include "testpostmanarbiter.h" + + +// tst_Renderer is a friend class of Renderer +class tst_Renderer : public Qt3DRender::Render::Renderer +{ +public: + tst_Renderer() + : Qt3DRender::Render::Renderer(Qt3DRender::QRenderAspect::Synchronous) + {} + + ~tst_Renderer() { + shutdown(); + } +}; + + +class tst_ComputeCommand : public Qt3DCore::QBackendNodeTester +{ + Q_OBJECT + +private Q_SLOTS: + + void checkDisablesFrontend() + { + // GIVEN + Qt3DRender::Render::NodeManagers nodeManager; + tst_Renderer renderer; + TestArbiter arbiter; + + Qt3DCore::QAspectManager manager; + Qt3DCore::QScene scene; + + Qt3DCore::QEntity rootEntity; + Qt3DCore::QNodePrivate::get(&rootEntity)->setScene(&scene); + + Qt3DRender::QComputeCommand computeCommand; + Qt3DRender::Render::ComputeCommand *backendComputeCommand = nullptr; + + renderer.setNodeManagers(&nodeManager); + + // WHEN + computeCommand.setParent(&rootEntity); + // RootEntity is the entry point to retrieve the scene instance for lookups + manager.setRootEntity(&rootEntity, {}); + + // THEN + QVERIFY(scene.lookupNode(computeCommand.id()) != nullptr); + + // WHEN + auto handle = nodeManager.computeJobManager()->getOrAcquireHandle(computeCommand.id()); + backendComputeCommand = nodeManager.computeJobManager()->data(handle); + + // WHEN + computeCommand.setWorkGroupX(256); + computeCommand.setWorkGroupY(512); + computeCommand.setWorkGroupZ(128); + computeCommand.setRunType(Qt3DRender::QComputeCommand::Manual); + computeCommand.trigger(1); + + Qt3DCore::QBackendNodePrivate::get(backendComputeCommand)->setArbiter(&arbiter); + backendComputeCommand->setRenderer(&renderer); + simulateInitializationSync(&computeCommand, backendComputeCommand); + + // THEN + QCOMPARE(backendComputeCommand->frameCount(),1); + QCOMPARE(backendComputeCommand->isEnabled(), true); + QCOMPARE(computeCommand.isEnabled(), true); + QCOMPARE(backendComputeCommand->hasReachedFrameCount(), false); + + // WHEN + backendComputeCommand->updateFrameCount(); + + // THEN + QCOMPARE(backendComputeCommand->frameCount(), 0); + QCOMPARE(backendComputeCommand->hasReachedFrameCount(), true); + + + // Still enabled as we have yet to notify the fronted + QCOMPARE(backendComputeCommand->isEnabled(), true); + QCOMPARE(computeCommand.isEnabled(), true); + + // WHEN + renderer.jobsDone(&manager); // so Renderer::sendDisablesToFrontend gets called + + // THEN + QCOMPARE(computeCommand.isEnabled(), false); + QCOMPARE(backendComputeCommand->hasReachedFrameCount(), false); + + // WHEN + backendComputeCommand->syncFromFrontEnd(&computeCommand, false); + + // THEN + QCOMPARE(backendComputeCommand->frameCount(), 0); + QCOMPARE(backendComputeCommand->isEnabled(), false); + } +}; + +QTEST_MAIN(tst_ComputeCommand) + +#include "tst_computecommand.moc" diff --git a/tests/auto/render/filtercompatibletechniquejob/BLACKLIST b/tests/auto/render/opengl/filtercompatibletechniquejob/BLACKLIST index 7cbc7c4c0..7cbc7c4c0 100644 --- a/tests/auto/render/filtercompatibletechniquejob/BLACKLIST +++ b/tests/auto/render/opengl/filtercompatibletechniquejob/BLACKLIST diff --git a/tests/auto/render/filtercompatibletechniquejob/filtercompatibletechniquejob.pro b/tests/auto/render/opengl/filtercompatibletechniquejob/filtercompatibletechniquejob.pro index 4f63e514b..5d533839c 100644 --- a/tests/auto/render/filtercompatibletechniquejob/filtercompatibletechniquejob.pro +++ b/tests/auto/render/opengl/filtercompatibletechniquejob/filtercompatibletechniquejob.pro @@ -8,5 +8,8 @@ CONFIG += testcase SOURCES += tst_filtercompatibletechniquejob.cpp -include(../../core/common/common.pri) -include(../commons/commons.pri) +include(../../../core/common/common.pri) +include(../../commons/commons.pri) + +# Link Against OpenGL Renderer Plugin +include(../opengl_render_plugin.pri) diff --git a/tests/auto/render/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp b/tests/auto/render/opengl/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp index 25262a772..19dae1c23 100644 --- a/tests/auto/render/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp +++ b/tests/auto/render/opengl/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp @@ -35,12 +35,12 @@ #include <Qt3DRender/qtechnique.h> #include <Qt3DRender/qviewport.h> #include <Qt3DRender/private/technique_p.h> -#include <Qt3DRender/private/filtercompatibletechniquejob_p.h> #include <Qt3DRender/private/nodemanagers_p.h> -#include <Qt3DRender/private/renderer_p.h> -#include <Qt3DRender/private/submissioncontext_p.h> #include <Qt3DRender/private/qrenderaspect_p.h> #include <Qt3DRender/private/techniquemanager_p.h> +#include <renderer_p.h> +#include <submissioncontext_p.h> +#include <filtercompatibletechniquejob_p.h> QT_BEGIN_NAMESPACE diff --git a/tests/auto/render/glshadermanager/glshadermanager.pro b/tests/auto/render/opengl/glshadermanager/glshadermanager.pro index 27aadf84f..dc96ab3bb 100644 --- a/tests/auto/render/glshadermanager/glshadermanager.pro +++ b/tests/auto/render/opengl/glshadermanager/glshadermanager.pro @@ -8,5 +8,8 @@ CONFIG += testcase SOURCES += tst_glshadermanager.cpp -include(../../core/common/common.pri) -include(../commons/commons.pri) +include(../../../core/common/common.pri) +include(../../commons/commons.pri) + +# Link Against OpenGL Renderer Plugin +include(../opengl_render_plugin.pri) diff --git a/tests/auto/render/glshadermanager/tst_glshadermanager.cpp b/tests/auto/render/opengl/glshadermanager/tst_glshadermanager.cpp index c18fb4793..83420af3b 100644 --- a/tests/auto/render/glshadermanager/tst_glshadermanager.cpp +++ b/tests/auto/render/opengl/glshadermanager/tst_glshadermanager.cpp @@ -27,7 +27,7 @@ ****************************************************************************/ #include <QtTest/QTest> -#include <Qt3DRender/private/glresourcemanagers_p.h> +#include <glresourcemanagers_p.h> #include <Qt3DCore/qnodeid.h> #include "qbackendnodetester.h" #include "testrenderer.h" diff --git a/tests/auto/render/graphicshelpergl2/graphicshelpergl2.pro b/tests/auto/render/opengl/graphicshelpergl2/graphicshelpergl2.pro index b27060635..eb8ba7f04 100644 --- a/tests/auto/render/graphicshelpergl2/graphicshelpergl2.pro +++ b/tests/auto/render/opengl/graphicshelpergl2/graphicshelpergl2.pro @@ -9,5 +9,8 @@ CONFIG += testcase SOURCES += \ tst_graphicshelpergl2.cpp -include(../../core/common/common.pri) -include(../commons/commons.pri) +include(../../../core/common/common.pri) +include(../../commons/commons.pri) + +# Link Against OpenGL Renderer Plugin +include(../opengl_render_plugin.pri) diff --git a/tests/auto/render/graphicshelpergl2/tst_graphicshelpergl2.cpp b/tests/auto/render/opengl/graphicshelpergl2/tst_graphicshelpergl2.cpp index ffafc2312..0a43a3040 100644 --- a/tests/auto/render/graphicshelpergl2/tst_graphicshelpergl2.cpp +++ b/tests/auto/render/opengl/graphicshelpergl2/tst_graphicshelpergl2.cpp @@ -29,7 +29,7 @@ #include <QtTest/QTest> #include <Qt3DRender/qrendertargetoutput.h> #include <Qt3DRender/private/uniform_p.h> -#include <Qt3DRender/private/graphicshelpergl2_p.h> +#include <graphicshelpergl2_p.h> #include <Qt3DRender/private/attachmentpack_p.h> #include <QtOpenGLExtensions/QOpenGLExtensions> #include <QOpenGLContext> diff --git a/tests/auto/render/graphicshelpergl3_2/graphicshelpergl3_2.pro b/tests/auto/render/opengl/graphicshelpergl3_2/graphicshelpergl3_2.pro index 5d8bf60fd..a613f1279 100644 --- a/tests/auto/render/graphicshelpergl3_2/graphicshelpergl3_2.pro +++ b/tests/auto/render/opengl/graphicshelpergl3_2/graphicshelpergl3_2.pro @@ -9,5 +9,8 @@ CONFIG += testcase SOURCES += \ tst_graphicshelpergl3_2.cpp -include(../../core/common/common.pri) -include(../commons/commons.pri) +include(../../../core/common/common.pri) +include(../../commons/commons.pri) + +# Link Against OpenGL Renderer Plugin +include(../opengl_render_plugin.pri) diff --git a/tests/auto/render/graphicshelpergl3_2/tst_graphicshelpergl3_2.cpp b/tests/auto/render/opengl/graphicshelpergl3_2/tst_graphicshelpergl3_2.cpp index 840a7f6da..a4a59d7c4 100644 --- a/tests/auto/render/graphicshelpergl3_2/tst_graphicshelpergl3_2.cpp +++ b/tests/auto/render/opengl/graphicshelpergl3_2/tst_graphicshelpergl3_2.cpp @@ -29,7 +29,7 @@ #include <QtTest/QTest> #include <Qt3DRender/qrendertargetoutput.h> #include <Qt3DRender/private/uniform_p.h> -#include <Qt3DRender/private/graphicshelpergl3_2_p.h> +#include <graphicshelpergl3_2_p.h> #include <Qt3DRender/private/attachmentpack_p.h> #include <QOpenGLBuffer> #include <QOpenGLFunctions_3_2_Core> diff --git a/tests/auto/render/graphicshelpergl3_3/graphicshelpergl3_3.pro b/tests/auto/render/opengl/graphicshelpergl3_3/graphicshelpergl3_3.pro index 36bda15b2..5ef0b6806 100644 --- a/tests/auto/render/graphicshelpergl3_3/graphicshelpergl3_3.pro +++ b/tests/auto/render/opengl/graphicshelpergl3_3/graphicshelpergl3_3.pro @@ -9,5 +9,8 @@ CONFIG += testcase SOURCES += \ tst_graphicshelpergl3_3.cpp -include(../../core/common/common.pri) -include(../commons/commons.pri) +include(../../../core/common/common.pri) +include(../../commons/commons.pri) + +# Link Against OpenGL Renderer Plugin +include(../opengl_render_plugin.pri) diff --git a/tests/auto/render/graphicshelpergl3_3/tst_graphicshelpergl3_3.cpp b/tests/auto/render/opengl/graphicshelpergl3_3/tst_graphicshelpergl3_3.cpp index 874c83f0b..3e4a052ba 100644 --- a/tests/auto/render/graphicshelpergl3_3/tst_graphicshelpergl3_3.cpp +++ b/tests/auto/render/opengl/graphicshelpergl3_3/tst_graphicshelpergl3_3.cpp @@ -29,8 +29,8 @@ #include <QtTest/QTest> #include <Qt3DRender/qrendertargetoutput.h> #include <Qt3DRender/private/uniform_p.h> -#include <Qt3DRender/private/graphicshelpergl3_3_p.h> #include <Qt3DRender/private/attachmentpack_p.h> +#include <graphicshelpergl3_3_p.h> #include <QOpenGLBuffer> #include <QOpenGLFunctions_3_3_Core> #include <QOpenGLShaderProgram> diff --git a/tests/auto/render/graphicshelpergl4/graphicshelpergl4.pro b/tests/auto/render/opengl/graphicshelpergl4/graphicshelpergl4.pro index b20d1afec..5ea881208 100644 --- a/tests/auto/render/graphicshelpergl4/graphicshelpergl4.pro +++ b/tests/auto/render/opengl/graphicshelpergl4/graphicshelpergl4.pro @@ -9,5 +9,8 @@ CONFIG += testcase SOURCES += \ tst_graphicshelpergl4.cpp -include(../../core/common/common.pri) -include(../commons/commons.pri) +include(../../../core/common/common.pri) +include(../../commons/commons.pri) + +# Link Against OpenGL Renderer Plugin +include(../opengl_render_plugin.pri) diff --git a/tests/auto/render/graphicshelpergl4/tst_graphicshelpergl4.cpp b/tests/auto/render/opengl/graphicshelpergl4/tst_graphicshelpergl4.cpp index 6e5c54303..31024e1db 100644 --- a/tests/auto/render/graphicshelpergl4/tst_graphicshelpergl4.cpp +++ b/tests/auto/render/opengl/graphicshelpergl4/tst_graphicshelpergl4.cpp @@ -29,8 +29,8 @@ #include <QtTest/QTest> #include <Qt3DRender/qrendertargetoutput.h> #include <Qt3DRender/private/uniform_p.h> -#include <Qt3DRender/private/graphicshelpergl4_p.h> #include <Qt3DRender/private/attachmentpack_p.h> +#include <graphicshelpergl4_p.h> #include <QOpenGLBuffer> #include <QOpenGLFunctions_4_3_Core> #include <QOpenGLShaderProgram> diff --git a/tests/auto/render/materialparametergathererjob/materialparametergathererjob.pro b/tests/auto/render/opengl/materialparametergathererjob/materialparametergathererjob.pro index ac68b8248..106e7a263 100644 --- a/tests/auto/render/materialparametergathererjob/materialparametergathererjob.pro +++ b/tests/auto/render/opengl/materialparametergathererjob/materialparametergathererjob.pro @@ -8,4 +8,7 @@ CONFIG += testcase SOURCES += tst_materialparametergathererjob.cpp -include(../commons/commons.pri) +include(../../commons/commons.pri) + +# Link Against OpenGL Renderer Plugin +include(../opengl_render_plugin.pri) diff --git a/tests/auto/render/materialparametergathererjob/tst_materialparametergathererjob.cpp b/tests/auto/render/opengl/materialparametergathererjob/tst_materialparametergathererjob.cpp index 236faa8f0..e6b78c47b 100644 --- a/tests/auto/render/materialparametergathererjob/tst_materialparametergathererjob.cpp +++ b/tests/auto/render/opengl/materialparametergathererjob/tst_materialparametergathererjob.cpp @@ -36,16 +36,18 @@ #include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/private/managers_p.h> #include <Qt3DRender/private/entity_p.h> -#include <Qt3DRender/private/materialparametergathererjob_p.h> +#include <materialparametergathererjob_p.h> #include <Qt3DRender/private/techniquefilternode_p.h> #include <Qt3DRender/private/technique_p.h> #include <Qt3DRender/private/techniquemanager_p.h> #include <Qt3DRender/private/renderpassfilternode_p.h> +#include <Qt3DRender/qrendersettings.h> #include <Qt3DRender/qrenderaspect.h> #include <Qt3DRender/qeffect.h> #include <Qt3DRender/qmaterial.h> #include <Qt3DRender/qparameter.h> #include <Qt3DRender/qtechniquefilter.h> +#include <Qt3DRender/qtechnique.h> #include <Qt3DRender/qrenderpassfilter.h> #include <Qt3DRender/qrenderpass.h> #include <Qt3DRender/qshaderprogram.h> diff --git a/tests/auto/render/opengl/opengl.pro b/tests/auto/render/opengl/opengl.pro new file mode 100644 index 000000000..5299ebd36 --- /dev/null +++ b/tests/auto/render/opengl/opengl.pro @@ -0,0 +1,19 @@ +TEMPLATE = subdirs + +SUBDIRS += \ + filtercompatibletechniquejob \ + graphicshelpergl3_3 \ + graphicshelpergl3_2 \ + graphicshelpergl2 \ + glshadermanager \ + materialparametergathererjob \ + textures \ + renderer \ + renderviewutils \ + renderviews \ + renderqueue \ + renderviewbuilder \ + qgraphicsutils \ + computecommand + +!macos: SUBDIRS += graphicshelpergl4 diff --git a/tests/auto/render/opengl/opengl_render_plugin.pri b/tests/auto/render/opengl/opengl_render_plugin.pri new file mode 100644 index 000000000..aa392ee5e --- /dev/null +++ b/tests/auto/render/opengl/opengl_render_plugin.pri @@ -0,0 +1,12 @@ +PLUGIN_SRC_PATH = $$PWD/../../../../src/plugins/renderers/opengl + +INCLUDEPATH += \ + $$PLUGIN_SRC_PATH/graphicshelpers \ + $$PLUGIN_SRC_PATH/io \ + $$PLUGIN_SRC_PATH/jobs \ + $$PLUGIN_SRC_PATH/managers \ + $$PLUGIN_SRC_PATH/renderer \ + $$PLUGIN_SRC_PATH/renderstates \ + $$PLUGIN_SRC_PATH/textures + +LIBS += -L$$[QT_INSTALL_PLUGINS]/renderers/ -lopenglrenderer diff --git a/tests/auto/render/qgraphicsutils/qgraphicsutils.pro b/tests/auto/render/opengl/qgraphicsutils/qgraphicsutils.pro index 031a26246..8c936c527 100644 --- a/tests/auto/render/qgraphicsutils/qgraphicsutils.pro +++ b/tests/auto/render/opengl/qgraphicsutils/qgraphicsutils.pro @@ -7,3 +7,6 @@ QT += 3dcore 3dcore-private 3drender 3drender-private testlib CONFIG += testcase SOURCES += tst_qgraphicsutils.cpp + +# Link Against OpenGL Renderer Plugin +include(../opengl_render_plugin.pri) diff --git a/tests/auto/render/qgraphicsutils/tst_qgraphicsutils.cpp b/tests/auto/render/opengl/qgraphicsutils/tst_qgraphicsutils.cpp index e3676ad3b..2e0dd0f96 100644 --- a/tests/auto/render/qgraphicsutils/tst_qgraphicsutils.cpp +++ b/tests/auto/render/opengl/qgraphicsutils/tst_qgraphicsutils.cpp @@ -27,7 +27,7 @@ ****************************************************************************/ #include <QtTest/QtTest> -#include <private/qgraphicsutils_p.h> +#include <qgraphicsutils_p.h> class tst_QGraphicsUtils : public QObject { diff --git a/tests/auto/render/renderer/renderer.pro b/tests/auto/render/opengl/renderer/renderer.pro index cbafc156b..d481c7b9e 100644 --- a/tests/auto/render/renderer/renderer.pro +++ b/tests/auto/render/opengl/renderer/renderer.pro @@ -7,3 +7,6 @@ QT += 3dcore 3dcore-private 3drender 3drender-private testlib CONFIG += testcase SOURCES += tst_renderer.cpp + +# Link Against OpenGL Renderer Plugin +include(../opengl_render_plugin.pri) diff --git a/tests/auto/render/renderer/tst_renderer.cpp b/tests/auto/render/opengl/renderer/tst_renderer.cpp index 0cbc1aefc..6aed6ed5f 100644 --- a/tests/auto/render/renderer/tst_renderer.cpp +++ b/tests/auto/render/opengl/renderer/tst_renderer.cpp @@ -30,13 +30,12 @@ #include <QMutex> #include <QWaitCondition> #include <QThread> -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/private/viewportnode_p.h> -#include <Qt3DRender/private/renderview_p.h> -#include <Qt3DRender/private/renderviewbuilder_p.h> +#include <renderer_p.h> +#include <renderview_p.h> +#include <renderviewbuilder_p.h> #include <Qt3DRender/private/offscreensurfacehelper_p.h> -#include <Qt3DRender/private/renderqueue_p.h> -#include <Qt3DRender/private/job_common_p.h> +#include <renderqueue_p.h> class tst_Renderer : public QObject { diff --git a/tests/auto/render/renderqueue/renderqueue.pro b/tests/auto/render/opengl/renderqueue/renderqueue.pro index 945fe4cf4..19106ba92 100644 --- a/tests/auto/render/renderqueue/renderqueue.pro +++ b/tests/auto/render/opengl/renderqueue/renderqueue.pro @@ -8,4 +8,7 @@ CONFIG += testcase SOURCES += tst_renderqueue.cpp -include(../../core/common/common.pri) +include(../../../core/common/common.pri) + +# Link Against OpenGL Renderer Plugin +include(../opengl_render_plugin.pri) diff --git a/tests/auto/render/renderqueue/tst_renderqueue.cpp b/tests/auto/render/opengl/renderqueue/tst_renderqueue.cpp index 071f9b3a5..2be089495 100644 --- a/tests/auto/render/renderqueue/tst_renderqueue.cpp +++ b/tests/auto/render/opengl/renderqueue/tst_renderqueue.cpp @@ -30,8 +30,8 @@ #include <QMutex> #include <QWaitCondition> #include <QThread> -#include <Qt3DRender/private/renderqueue_p.h> -#include <Qt3DRender/private/renderview_p.h> +#include <renderqueue_p.h> +#include <renderview_p.h> class tst_RenderQueue : public QObject { diff --git a/tests/auto/render/renderviewbuilder/renderviewbuilder.pro b/tests/auto/render/opengl/renderviewbuilder/renderviewbuilder.pro index 00fdd49cf..b7b8f5b81 100644 --- a/tests/auto/render/renderviewbuilder/renderviewbuilder.pro +++ b/tests/auto/render/opengl/renderviewbuilder/renderviewbuilder.pro @@ -8,5 +8,8 @@ CONFIG += testcase SOURCES += tst_renderviewbuilder.cpp -include(../../core/common/common.pri) -include(../commons/commons.pri) +include(../../../core/common/common.pri) +include(../../commons/commons.pri) + +# Link Against OpenGL Renderer Plugin +include(../opengl_render_plugin.pri) diff --git a/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp b/tests/auto/render/opengl/renderviewbuilder/tst_renderviewbuilder.cpp index 6024084bd..6dc463589 100644 --- a/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp +++ b/tests/auto/render/opengl/renderviewbuilder/tst_renderviewbuilder.cpp @@ -31,7 +31,7 @@ #include <Qt3DCore/private/qnodevisitor_p.h> #include <Qt3DCore/private/qnode_p.h> -#include <Qt3DRender/private/renderviewbuilder_p.h> +#include <renderviewbuilder_p.h> #include <Qt3DRender/private/qrenderaspect_p.h> #include <Qt3DRender/qviewport.h> #include <Qt3DRender/qclearbuffers.h> diff --git a/tests/auto/render/renderviews/renderviews.pro b/tests/auto/render/opengl/renderviews/renderviews.pro index 046c00696..7efbaec14 100644 --- a/tests/auto/render/renderviews/renderviews.pro +++ b/tests/auto/render/opengl/renderviews/renderviews.pro @@ -8,5 +8,8 @@ CONFIG += testcase SOURCES += tst_renderviews.cpp -include(../../core/common/common.pri) -include(../commons/commons.pri) +include(../../../core/common/common.pri) +include(../../commons/commons.pri) + +# Link Against OpenGL Renderer Plugin +include(../opengl_render_plugin.pri) diff --git a/tests/auto/render/renderviews/tst_renderviews.cpp b/tests/auto/render/opengl/renderviews/tst_renderviews.cpp index dca75e418..4fef3118b 100644 --- a/tests/auto/render/renderviews/tst_renderviews.cpp +++ b/tests/auto/render/opengl/renderviews/tst_renderviews.cpp @@ -28,17 +28,19 @@ #include <QtTest/QTest> #include <qbackendnodetester.h> -#include <private/renderview_p.h> #include <private/qframeallocator_p.h> #include <private/qframeallocator_p_p.h> #include <private/memorybarrier_p.h> -#include <private/renderviewjobutils_p.h> -#include <private/rendercommand_p.h> #include <testpostmanarbiter.h> #include <testrenderer.h> #include <private/shader_p.h> -#include <private/glresourcemanagers_p.h> #include <Qt3DRender/qshaderprogram.h> +#include <renderview_p.h> +#include <renderviewjobutils_p.h> +#include <rendercommand_p.h> +#include <renderer_p.h> +#include <glresourcemanagers_p.h> +#include <private/shader_p.h> QT_BEGIN_NAMESPACE diff --git a/tests/auto/render/renderviewutils/renderviewutils.pro b/tests/auto/render/opengl/renderviewutils/renderviewutils.pro index 90d8a2562..e9c9f8d51 100644 --- a/tests/auto/render/renderviewutils/renderviewutils.pro +++ b/tests/auto/render/opengl/renderviewutils/renderviewutils.pro @@ -8,5 +8,8 @@ CONFIG += testcase SOURCES += tst_renderviewutils.cpp -include(../../core/common/common.pri) -include(../commons/commons.pri) +include(../../../core/common/common.pri) +include(../../commons/commons.pri) + +# Link Against OpenGL Renderer Plugin +include(../opengl_render_plugin.pri) diff --git a/tests/auto/render/renderviewutils/tst_renderviewutils.cpp b/tests/auto/render/opengl/renderviewutils/tst_renderviewutils.cpp index 6d349f994..8a345d840 100644 --- a/tests/auto/render/renderviewutils/tst_renderviewutils.cpp +++ b/tests/auto/render/opengl/renderviewutils/tst_renderviewutils.cpp @@ -29,7 +29,8 @@ #include <QtTest/QTest> #include <qbackendnodetester.h> #include <Qt3DCore/qdynamicpropertyupdatedchange.h> -#include <Qt3DRender/private/renderviewjobutils_p.h> +#include <renderviewjobutils_p.h> +#include <shadervariables_p.h> #include <Qt3DRender/private/shaderdata_p.h> #include <Qt3DRender/private/managers_p.h> #include <Qt3DRender/private/stringtoint_p.h> diff --git a/tests/auto/render/textures/textures.pro b/tests/auto/render/opengl/textures/textures.pro index 8a7553a54..a116756af 100644 --- a/tests/auto/render/textures/textures.pro +++ b/tests/auto/render/opengl/textures/textures.pro @@ -8,5 +8,8 @@ CONFIG += testcase SOURCES += tst_textures.cpp -include(../../core/common/common.pri) -include(../commons/commons.pri) +include(../../../core/common/common.pri) +include(../../commons/commons.pri) + +# Link Against OpenGL Renderer Plugin +include(../opengl_render_plugin.pri) diff --git a/tests/auto/render/textures/tst_textures.cpp b/tests/auto/render/opengl/textures/tst_textures.cpp index fc0bd2543..bc32f9325 100644 --- a/tests/auto/render/textures/tst_textures.cpp +++ b/tests/auto/render/opengl/textures/tst_textures.cpp @@ -33,13 +33,13 @@ #include <Qt3DRender/qtextureimage.h> #include <Qt3DRender/qtexturedata.h> -#include <Qt3DRender/private/renderer_p.h> -#include <Qt3DRender/private/glresourcemanagers_p.h> +#include <renderer_p.h> +#include <glresourcemanagers_p.h> +#include <gltexture_p.h> #include <Qt3DRender/private/texture_p.h> #include <Qt3DRender/private/textureimage_p.h> #include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/private/managers_p.h> -#include <Qt3DRender/private/gltexture_p.h> #include <Qt3DRender/private/qtexture_p.h> #include <testrenderer.h> diff --git a/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp b/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp index 5191b1a36..f1587c27c 100644 --- a/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp +++ b/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp @@ -45,10 +45,12 @@ #include <Qt3DRender/QNoPicking> #include <Qt3DRender/QPickEvent> #include <Qt3DRender/QPickTriangleEvent> +#include <Qt3DRender/QPickingSettings> #include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/private/managers_p.h> #include <Qt3DRender/private/entity_p.h> #include <Qt3DRender/qrenderaspect.h> +#include <Qt3DRender/private/rendersettings_p.h> #include <Qt3DRender/private/qrenderaspect_p.h> #include <Qt3DRender/private/pickboundingvolumejob_p.h> #include <Qt3DRender/private/pickboundingvolumeutils_p.h> diff --git a/tests/auto/render/proximityfiltering/tst_proximityfiltering.cpp b/tests/auto/render/proximityfiltering/tst_proximityfiltering.cpp index 1b65388af..51b59bffc 100644 --- a/tests/auto/render/proximityfiltering/tst_proximityfiltering.cpp +++ b/tests/auto/render/proximityfiltering/tst_proximityfiltering.cpp @@ -38,6 +38,10 @@ #include <Qt3DRender/private/entity_p.h> #include <Qt3DRender/private/filterproximitydistancejob_p.h> #include <Qt3DRender/private/updatetreeenabledjob_p.h> +#include <Qt3DRender/private/updateworldtransformjob_p.h> +#include <Qt3DRender/private/updateworldboundingvolumejob_p.h> +#include <Qt3DRender/private/calcboundingvolumejob_p.h> +#include <Qt3DRender/private/expandboundingvolumejob_p.h> #include <Qt3DRender/qproximityfilter.h> #include "testaspect.h" diff --git a/tests/auto/render/qcamera/tst_qcamera.cpp b/tests/auto/render/qcamera/tst_qcamera.cpp index 0dcbce63f..fae8aa14e 100644 --- a/tests/auto/render/qcamera/tst_qcamera.cpp +++ b/tests/auto/render/qcamera/tst_qcamera.cpp @@ -49,6 +49,7 @@ #include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/private/transform_p.h> #include <Qt3DRender/private/qrenderaspect_p.h> +#include <Qt3DRender/private/updateworldtransformjob_p.h> QT_BEGIN_NAMESPACE diff --git a/tests/auto/render/raycastingjob/tst_raycastingjob.cpp b/tests/auto/render/raycastingjob/tst_raycastingjob.cpp index 1ff899936..daec0b86c 100644 --- a/tests/auto/render/raycastingjob/tst_raycastingjob.cpp +++ b/tests/auto/render/raycastingjob/tst_raycastingjob.cpp @@ -38,6 +38,7 @@ #include <Qt3DCore/private/qaspectmanager_p.h> #include <Qt3DCore/private/qscene_p.h> #include <Qt3DCore/private/qaspectengine_p.h> +#include <Qt3DCore/private/qaspectjob_p.h> #include <QtQuick/qquickwindow.h> #include <Qt3DRender/QCamera> diff --git a/tests/auto/render/render.pro b/tests/auto/render/render.pro index 2b73ec8b7..14fc74883 100644 --- a/tests/auto/render/render.pro +++ b/tests/auto/render/render.pro @@ -4,7 +4,6 @@ qtConfig(private_tests) { SUBDIRS += \ entity \ renderpass \ - qgraphicsutils \ shader \ shaderbuilder \ texture \ @@ -125,19 +124,8 @@ QT_FOR_CONFIG += 3drender-private qtConfig(qt3d-opengl-renderer):qtConfig(private_tests) { SUBDIRS += \ - filtercompatibletechniquejob \ - graphicshelpergl3_3 \ - graphicshelpergl3_2 \ - graphicshelpergl2 \ - glshadermanager \ - materialparametergathererjob \ - textures \ - renderer \ - renderviewutils \ - renderviews \ - renderqueue \ - renderviewbuilder \ - gltexture + opengl \ + scene2d qtConfig(qt3d-extras) { SUBDIRS += \ @@ -158,8 +146,6 @@ qtConfig(qt3d-opengl-renderer):qtConfig(private_tests) { scene2d } - !macos: SUBDIRS += graphicshelpergl4 - qtConfig(qt3d-simd-avx2): SUBDIRS += alignedresourcesmanagers-avx qtConfig(qt3d-simd-sse2):!qtConfig(qt3d-simd-avx2): SUBDIRS += alignedresourcesmanagers-sse } diff --git a/tests/auto/render/technique/tst_technique.cpp b/tests/auto/render/technique/tst_technique.cpp index 5b6fdb4a4..b36d00fee 100644 --- a/tests/auto/render/technique/tst_technique.cpp +++ b/tests/auto/render/technique/tst_technique.cpp @@ -34,7 +34,6 @@ #include <Qt3DRender/qrenderpass.h> #include <Qt3DRender/private/qtechnique_p.h> #include <Qt3DRender/private/technique_p.h> -#include <Qt3DRender/private/shaderparameterpack_p.h> #include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/private/managers_p.h> #include <Qt3DRender/private/filterkey_p.h> diff --git a/tests/auto/render/trianglesextractor/tst_trianglesextractor.cpp b/tests/auto/render/trianglesextractor/tst_trianglesextractor.cpp index 287a17b84..24d7ff643 100644 --- a/tests/auto/render/trianglesextractor/tst_trianglesextractor.cpp +++ b/tests/auto/render/trianglesextractor/tst_trianglesextractor.cpp @@ -30,7 +30,6 @@ #include <Qt3DRender/private/shader_p.h> #include <Qt3DRender/qshaderprogram.h> #include <Qt3DRender/private/nodemanagers_p.h> -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/private/qrenderaspect_p.h> #include <Qt3DRender/qrenderaspect.h> #include <Qt3DRender/private/geometryrenderermanager_p.h> diff --git a/tests/benchmarks/render/jobs/jobs.pro b/tests/benchmarks/render/jobs/jobs.pro index bfd0f1317..71b0ef409 100644 --- a/tests/benchmarks/render/jobs/jobs.pro +++ b/tests/benchmarks/render/jobs/jobs.pro @@ -7,3 +7,7 @@ QT += testlib core core-private 3dcore 3dcore-private 3drender 3drender-private SOURCES += tst_bench_jobs.cpp DEFINES += QT3D_RENDER_UNIT_TESTS +DEFINES += QT_BUILD_INTERNAL + +# Link Against OpenGL Renderer Plugin +include(../../../auto/render/opengl/opengl_render_plugin.pri) diff --git a/tests/benchmarks/render/jobs/tst_bench_jobs.cpp b/tests/benchmarks/render/jobs/tst_bench_jobs.cpp index b611f3cdc..87689e46c 100644 --- a/tests/benchmarks/render/jobs/tst_bench_jobs.cpp +++ b/tests/benchmarks/render/jobs/tst_bench_jobs.cpp @@ -41,7 +41,6 @@ #include <Qt3DRender/qcamera.h> #include <Qt3DRender/qrenderaspect.h> #include <Qt3DRender/private/qrenderaspect_p.h> -#include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/private/updateworldtransformjob_p.h> #include <Qt3DQuick/QQmlAspectEngine> @@ -50,6 +49,7 @@ #include <Qt3DCore/private/qaspectmanager_p.h> #include <Qt3DCore/private/qnodevisitor_p.h> #include <Qt3DCore/private/qnode_p.h> +#include <renderer_p.h> #include <QQmlComponent> #include <QScopedPointer> diff --git a/tests/benchmarks/render/materialparametergathering/materialparametergathering.pro b/tests/benchmarks/render/materialparametergathering/materialparametergathering.pro index e227a08a0..a20372163 100644 --- a/tests/benchmarks/render/materialparametergathering/materialparametergathering.pro +++ b/tests/benchmarks/render/materialparametergathering/materialparametergathering.pro @@ -12,3 +12,6 @@ include(../../../auto/render/commons/commons.pri) # Needed to use the TestAspect DEFINES += QT_BUILD_INTERNAL + +# Link Against OpenGL Renderer Plugin +include(../../../auto/render/opengl/opengl_render_plugin.pri) diff --git a/tests/benchmarks/render/materialparametergathering/tst_bench_materialparametergathering.cpp b/tests/benchmarks/render/materialparametergathering/tst_bench_materialparametergathering.cpp index 210d82dcf..644c4d74c 100644 --- a/tests/benchmarks/render/materialparametergathering/tst_bench_materialparametergathering.cpp +++ b/tests/benchmarks/render/materialparametergathering/tst_bench_materialparametergathering.cpp @@ -37,7 +37,7 @@ #include <Qt3DRender/private/entity_p.h> #include <Qt3DRender/qrenderaspect.h> #include <Qt3DRender/private/qrenderaspect_p.h> -#include <Qt3DRender/private/materialparametergathererjob_p.h> +#include <materialparametergathererjob_p.h> #include <Qt3DRender/private/technique_p.h> #include <Qt3DRender/private/techniquemanager_p.h> #include <Qt3DExtras/qphongmaterial.h> |