diff options
281 files changed, 2435 insertions, 1029 deletions
diff --git a/examples/qt3d/audio-visualizer-qml/main.cpp b/examples/qt3d/audio-visualizer-qml/main.cpp index c3fe2c009..5759dfe71 100644 --- a/examples/qt3d/audio-visualizer-qml/main.cpp +++ b/examples/qt3d/audio-visualizer-qml/main.cpp @@ -50,7 +50,7 @@ #include "touchsettings.h" #include <QtGui/QGuiApplication> -#include <QtGui/QOpenGLContext> +#include <QOpenGLContext> #include <QtQuick/QQuickView> #include <QtQuick/QQuickItem> #include <QtQml/QQmlContext> diff --git a/src/animation/backend/gltfimporter.cpp b/src/animation/backend/gltfimporter.cpp index a5127efd0..f7907b3c2 100644 --- a/src/animation/backend/gltfimporter.cpp +++ b/src/animation/backend/gltfimporter.cpp @@ -42,7 +42,7 @@ #include <Qt3DAnimation/private/fcurve_p.h> #include <Qt3DAnimation/private/keyframe_p.h> -#include <QtGui/qopengl.h> +#include <qopengl.h> #include <QtGui/qquaternion.h> #include <QtGui/qvector2d.h> #include <QtGui/qvector3d.h> diff --git a/src/core/resources/qresourcemanager_p.h b/src/core/resources/qresourcemanager_p.h index ba39695a4..6e479d5ef 100644 --- a/src/core/resources/qresourcemanager_p.h +++ b/src/core/resources/qresourcemanager_p.h @@ -179,19 +179,7 @@ private: template <typename T> struct QResourceInfo { - enum - { - needsCleanup = false - }; -}; - -template <> -struct QResourceInfo<void> -{ - enum - { - needsCleanup = false - }; + static const bool needsCleanup = false; }; enum @@ -204,22 +192,10 @@ enum template<> \ struct QResourceInfo<TYPE > \ { \ - enum \ -{ \ - needsCleanup = ((FLAGS & Q_REQUIRES_CLEANUP) == 0) \ -}; \ + static const bool needsCleanup = (FLAGS & Q_REQUIRES_CLEANUP) == 0;\ }; \ } // namespace Qt3DCore -template <int v> -struct Int2Type -{ - enum - { - value = v - }; -}; - template<typename T> class QHandleData : public QHandle<T>::Data { @@ -275,7 +251,7 @@ public: typename Handle::Data *d = handle.data_ptr(); d->nextFree = freeList; freeList = d; - performCleanup(&static_cast<QHandleData<T> *>(d)->data, Int2Type<QResourceInfo<T>::needsCleanup>()); + performCleanup(&static_cast<QHandleData<T> *>(d)->data, std::integral_constant<bool, QResourceInfo<T>::needsCleanup>{}); } T *data(Handle h) @@ -349,13 +325,16 @@ private: } } - void performCleanup(T *r, Int2Type<true>) + template<typename Q = T> + void performCleanup(Q *r, std::integral_constant<bool, true>) { r->cleanup(); } - void performCleanup(T *, Int2Type<false>) - {} + template<typename Q = T> + void performCleanup(Q *, std::integral_constant<bool, false>) + { + } }; diff --git a/src/core/transforms/matrix4x4_avx2_p.h b/src/core/transforms/matrix4x4_avx2_p.h index 63858b35c..0b35f0016 100644 --- a/src/core/transforms/matrix4x4_avx2_p.h +++ b/src/core/transforms/matrix4x4_avx2_p.h @@ -489,6 +489,7 @@ public: friend Q_3DCORE_PRIVATE_EXPORT Vector3D operator*(const Matrix4x4_AVX2 &matrix, const Vector3D &vector); friend Q_3DCORE_PRIVATE_EXPORT QDebug operator<<(QDebug dbg, const Matrix4x4_AVX2 &m); + private: // column major order // aligned on 32 bytes boundaries for AVX, compatible with 16 bytes boundary for SSE diff --git a/src/core/transforms/matrix4x4_sse_p.h b/src/core/transforms/matrix4x4_sse_p.h index 0ea2e37ad..adef74daf 100644 --- a/src/core/transforms/matrix4x4_sse_p.h +++ b/src/core/transforms/matrix4x4_sse_p.h @@ -372,6 +372,7 @@ public: friend Q_ALWAYS_INLINE Vector3D operator*(const Matrix4x4_SSE &matrix, const Vector3D &vector); friend Q_3DCORE_PRIVATE_EXPORT QDebug operator<<(QDebug dbg, const Matrix4x4_SSE &m); + private: // Internally we will store the matrix as indicated below // Q_DECL_ALIGN(16) // aligned on 16 bytes boundary for SSE (column major) diff --git a/src/extras/defaults/qt3dwindow.cpp b/src/extras/defaults/qt3dwindow.cpp index 04b8554f1..f555308a6 100644 --- a/src/extras/defaults/qt3dwindow.cpp +++ b/src/extras/defaults/qt3dwindow.cpp @@ -60,7 +60,7 @@ #include <Qt3DInput/qinputsettings.h> #include <Qt3DLogic/qlogicaspect.h> #include <Qt3DRender/qcamera.h> -#include <QtGui/qopenglcontext.h> +#include <qopenglcontext.h> #include <private/qrendersettings_p.h> #include <QEvent> diff --git a/src/plugins/geometryloaders/gltf/gltfgeometryloader.cpp b/src/plugins/geometryloaders/gltf/gltfgeometryloader.cpp index 8adb70f96..2c8bb14c3 100644 --- a/src/plugins/geometryloaders/gltf/gltfgeometryloader.cpp +++ b/src/plugins/geometryloaders/gltf/gltfgeometryloader.cpp @@ -44,7 +44,7 @@ #include <QtCore/QJsonObject> #include <QtCore/QVersionNumber> -#include <QtGui/QOpenGLTexture> +#include <QOpenGLTexture> #include <Qt3DRender/QGeometry> #include <Qt3DRender/private/renderlogging_p.h> 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/debug/debug.pri b/src/plugins/renderers/opengl/debug/debug.pri index c5153bbf7..c5153bbf7 100644 --- a/src/render/renderers/opengl/debug/debug.pri +++ b/src/plugins/renderers/opengl/debug/debug.pri diff --git a/src/render/renderers/opengl/debug/imguirenderer.cpp b/src/plugins/renderers/opengl/debug/imguirenderer.cpp index 8abe1b8c0..e23476860 100644 --- a/src/render/renderers/opengl/debug/imguirenderer.cpp +++ b/src/plugins/renderers/opengl/debug/imguirenderer.cpp @@ -45,10 +45,10 @@ */ #include "imguirenderer_p.h" -#include <Qt3DRender/private/renderview_p.h> -#include <Qt3DRender/private/renderer_p.h> +#include <renderview_p.h> +#include <renderer_p.h> +#include <submissioncontext_p.h> #include <Qt3DRender/private/geometryrenderermanager_p.h> -#include <Qt3DRender/private/submissioncontext_p.h> #include <QDateTime> #include <QGuiApplication> @@ -69,6 +69,7 @@ QT_BEGIN_NAMESPACE using namespace Qt3DRender; using namespace Render; using namespace Render::Debug; +using namespace Render::OpenGL; namespace { @@ -135,7 +136,7 @@ namespace { } } -ImGuiRenderer::ImGuiRenderer(Renderer *renderer) +ImGuiRenderer::ImGuiRenderer(Qt3DRender::Render::OpenGL::Renderer *renderer) : m_renderer(renderer) { ImGui::CreateContext(); diff --git a/src/render/renderers/opengl/debug/imguirenderer_p.h b/src/plugins/renderers/opengl/debug/imguirenderer_p.h index e574574be..f462bbd5b 100644 --- a/src/render/renderers/opengl/debug/imguirenderer_p.h +++ b/src/plugins/renderers/opengl/debug/imguirenderer_p.h @@ -72,9 +72,10 @@ class QServiceLocator; namespace Qt3DRender { namespace Render { - +namespace OpenGL { class RenderView; class Renderer; +} namespace Debug { @@ -83,21 +84,21 @@ namespace Debug { class ImGuiRenderer : public QObject { Q_OBJECT public: - ImGuiRenderer(Qt3DRender::Render::Renderer *renderer); + ImGuiRenderer(Qt3DRender::Render::OpenGL::Renderer *renderer); void processEvent(QEvent *event); - void renderDebugOverlay(const QVector<Render::RenderView *> &renderViews, const Render::RenderView *renderView, int jobsInLastFrame); + void renderDebugOverlay(const QVector<Render::OpenGL::RenderView *> &renderViews, const Render::OpenGL::RenderView *renderView, int jobsInLastFrame); void setCapabilities(const QString &capabilities); private: - bool newFrame(const RenderView *renderView); + bool newFrame(const Render::OpenGL::RenderView *renderView); void renderDrawList(ImDrawData *draw_data); void onMouseChange(QMouseEvent *event); void onWheel(QWheelEvent *event); void onKeyPressRelease(QKeyEvent *event); void showGLInfo(); - void showRenderDetails(const QVector<Render::RenderView *> &renderViews); + void showRenderDetails(const QVector<Render::OpenGL::RenderView *> &renderViews); bool createFontsTexture(); bool createDeviceObjects(); @@ -112,7 +113,7 @@ private: int m_attribLocationPosition = 0, m_attribLocationUV = 0, m_attribLocationColor = 0; unsigned int m_vboHandle = 0, m_vaoHandle = 0, m_elementsHandle = 0; - Renderer *m_renderer; + Render::OpenGL::Renderer *m_renderer; QOpenGLExtraFunctions *m_funcs = nullptr; QOpenGLShaderProgram *m_shader = nullptr; diff --git a/src/render/renderers/opengl/graphicshelpers/graphicscontext.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicscontext.cpp index 25543bb19..a4152449f 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> @@ -116,6 +118,7 @@ QOpenGLShader::ShaderType shaderType(Qt3DRender::QShaderProgram::ShaderType type namespace Qt3DRender { namespace Render { +namespace OpenGL { namespace { @@ -322,7 +325,7 @@ void GraphicsContext::loadShader(Shader *shaderNode, } shaderNode->unsetDirty(); // Ensure we will rebuilt material caches - shaderNode->markDirty(AbstractRenderer::AllDirty); + shaderNode->requestCacheRebuild(); } void GraphicsContext::activateDrawBuffers(const AttachmentPack &attachments) @@ -1020,6 +1023,7 @@ QT3D_UNIFORM_TYPE_IMPL(UniformType::Mat4x2, float, glUniformMatrix4x2fv) QT3D_UNIFORM_TYPE_IMPL(UniformType::Mat3x4, float, glUniformMatrix3x4fv) QT3D_UNIFORM_TYPE_IMPL(UniformType::Mat4x3, float, glUniformMatrix4x3fv) +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender of namespace diff --git a/src/render/renderers/opengl/graphicshelpers/graphicscontext_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicscontext_p.h index d3f3615d5..5d122f450 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicscontext_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicscontext_p.h @@ -38,8 +38,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_GRAPHICSCONTEXT_H -#define QT3DRENDER_RENDER_GRAPHICSCONTEXT_H +#ifndef QT3DRENDER_RENDER_OPENGL_GRAPHICSCONTEXT_H +#define QT3DRENDER_RENDER_OPENGL_GRAPHICSCONTEXT_H // // W A R N I N G @@ -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 @@ -84,10 +84,13 @@ namespace Qt3DRender { namespace Render { -class GraphicsHelperInterface; class RenderTarget; class AttachmentPack; class ShaderManager; + +namespace OpenGL { + +class GraphicsHelperInterface; class GLShader; class GLShaderManager; @@ -256,9 +259,10 @@ QT3D_UNIFORM_TYPE_PROTO(UniformType::Mat4x2, float, glUniformMatrix4x2fv) QT3D_UNIFORM_TYPE_PROTO(UniformType::Mat3x4, float, glUniformMatrix3x4fv) QT3D_UNIFORM_TYPE_PROTO(UniformType::Mat4x3, float, glUniformMatrix4x3fv) +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_GRAPHICSCONTEXT_H +#endif // QT3DRENDER_RENDER_OPENGL_GRAPHICSCONTEXT_H diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperes2.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes2.cpp index 5f77dd376..3ae9ed932 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelperes2.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes2.cpp @@ -38,12 +38,13 @@ ****************************************************************************/ #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 <logging_p.h> #include <QtGui/private/qopenglextensions_p.h> + QT_BEGIN_NAMESPACE // ES 3.0+ @@ -65,6 +66,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { GraphicsHelperES2::GraphicsHelperES2() : m_funcs(0) @@ -293,7 +295,7 @@ void GraphicsHelperES2::vertexAttributePointer(GLenum shaderDataType, break; default: - qCWarning(Render::Rendering) << "vertexAttribPointer: Unhandled type"; + qCWarning(Rendering) << "vertexAttribPointer: Unhandled type"; Q_UNREACHABLE(); } } @@ -387,7 +389,7 @@ void GraphicsHelperES2::blendFuncSeparatei(GLuint buf, GLenum sRGB, GLenum dRGB, void GraphicsHelperES2::alphaTest(GLenum, GLenum) { - qCWarning(Render::Rendering) << Q_FUNC_INFO << "AlphaTest not available with OpenGL ES 2.0"; + qCWarning(Rendering) << Q_FUNC_INFO << "AlphaTest not available with OpenGL ES 2.0"; } void GraphicsHelperES2::depthTest(GLenum mode) @@ -1028,6 +1030,7 @@ void GraphicsHelperES2::blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, G m_ext->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperes2_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes2_p.h index 882931ad9..9f820c72b 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelperes2_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes2_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_GRAPHICSHELPERES2_H -#define QT3DRENDER_RENDER_GRAPHICSHELPERES2_H +#ifndef QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERES2_H +#define QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERES2_H // // W A R N I N G @@ -51,7 +51,7 @@ // We mean it. // -#include <Qt3DRender/private/graphicshelperinterface_p.h> +#include <graphicshelperinterface_p.h> #include <QOpenGLContext> #include <QOpenGLFunctions> @@ -61,6 +61,7 @@ class QOpenGLExtensions; namespace Qt3DRender { namespace Render { +namespace OpenGL { class GraphicsHelperES2 : public GraphicsHelperInterface { @@ -174,9 +175,10 @@ protected: QScopedPointer<QOpenGLExtensions> m_ext; }; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_GRAPHICSHELPERES2_H +#endif // QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERES2_H diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3.cpp index 5e5d2e001..97a256b9c 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3.cpp @@ -40,8 +40,8 @@ #include "graphicshelperes3_p.h" #include <private/attachmentpack_p.h> -#include <private/qgraphicsutils_p.h> -#include <private/renderlogging_p.h> +#include <qgraphicsutils_p.h> +#include <logging_p.h> #include <QOpenGLExtraFunctions> QT_BEGIN_NAMESPACE @@ -169,6 +169,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { GraphicsHelperES3::GraphicsHelperES3() { @@ -249,7 +250,7 @@ void GraphicsHelperES3::vertexAttributePointer(GLenum shaderDataType, break; default: - qCWarning(Render::Rendering) << "vertexAttribPointer: Unhandled type"; + qCWarning(Rendering) << "vertexAttribPointer: Unhandled type"; Q_UNREACHABLE(); } } @@ -733,7 +734,7 @@ QVector<ShaderUniform> GraphicsHelperES3::programUniformsAndLocations(GLuint pro m_extraFuncs->glGetActiveUniformsiv(programId, 1, (GLuint*)&i, GL_UNIFORM_MATRIX_STRIDE, &uniform.m_matrixStride); uniform.m_rawByteSize = uniformByteSize(uniform); uniforms.append(uniform); - qCDebug(Render::Rendering) << uniform.m_name << "size" << uniform.m_size + qCDebug(Rendering) << uniform.m_name << "size" << uniform.m_size << " offset" << uniform.m_offset << " rawSize" << uniform.m_rawByteSize; } @@ -762,6 +763,7 @@ QVector<ShaderUniformBlock> GraphicsHelperES3::programUniformBlocks(GLuint progr return blocks; } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_1.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_1.cpp index 9c424d962..692e0880b 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 @@ -150,6 +150,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { namespace { @@ -361,6 +362,7 @@ void GraphicsHelperES3_1::buildUniformBuffer(const QVariant &v, const ShaderUnif } } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_1_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_1_p.h index 43d9ae7dd..408db0766 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_1_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_1_p.h @@ -51,12 +51,13 @@ // We mean it. // -#include <Qt3DRender/private/graphicshelperes3_p.h> +#include <graphicshelperes3_p.h> QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { class GraphicsHelperES3_1 : public GraphicsHelperES3 { @@ -79,6 +80,7 @@ public: void buildUniformBuffer(const QVariant &v, const ShaderUniform &description, QByteArray &buffer) override; }; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_2.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_2.cpp index 9d0988410..65108800b 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_2.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_2.cpp @@ -77,6 +77,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { GraphicsHelperES3_2::GraphicsHelperES3_2() { @@ -187,6 +188,7 @@ uint GraphicsHelperES3_2::uniformByteSize(const ShaderUniform &description) return rawByteSize; } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_2_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_2_p.h index 6b1a893d4..7a70f6269 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_2_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_2_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_GRAPHICSHELPERES3_2_H -#define QT3DRENDER_RENDER_GRAPHICSHELPERES3_2_H +#ifndef QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERES3_2_H +#define QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERES3_2_H // // W A R N I N G @@ -51,12 +51,13 @@ // We mean it. // -#include <Qt3DRender/private/graphicshelperes3_1_p.h> +#include <graphicshelperes3_1_p.h> QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { class GraphicsHelperES3_2 : public GraphicsHelperES3_1 { @@ -76,9 +77,10 @@ public: }; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_GRAPHICSHELPERES3_2_H +#endif // QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERES3_2_H diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_p.h index dc5cef10c..5c34a8abb 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelperes3_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperes3_p.h @@ -38,8 +38,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_GRAPHICSHELPERES3_H -#define QT3DRENDER_RENDER_GRAPHICSHELPERES3_H +#ifndef QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERES3_H +#define QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERES3_H // // W A R N I N G @@ -52,12 +52,13 @@ // We mean it. // -#include <Qt3DRender/private/graphicshelperes2_p.h> +#include <graphicshelperes2_p.h> QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { class GraphicsHelperES3 : public GraphicsHelperES2 { @@ -100,9 +101,10 @@ protected: QOpenGLExtraFunctions *m_extraFuncs = nullptr; }; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_GRAPHICSHELPERES3_H +#endif // QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERES3_H diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl2.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl2.cpp index b9ee16acb..6989be743 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl2.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl2.cpp @@ -42,13 +42,14 @@ #include <QOpenGLFunctions_2_0> #include <private/attachmentpack_p.h> #include <QtOpenGLExtensions/QOpenGLExtensions> -#include <private/qgraphicsutils_p.h> -#include <Qt3DRender/private/renderlogging_p.h> +#include <qgraphicsutils_p.h> +#include <logging_p.h> QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { GraphicsHelperGL2::GraphicsHelperGL2() : m_funcs(nullptr) @@ -257,7 +258,7 @@ void GraphicsHelperGL2::vertexAttributePointer(GLenum shaderDataType, break; default: - qCWarning(Render::Rendering) << "vertexAttribPointer: Unhandled type"; + qCWarning(Rendering) << "vertexAttribPointer: Unhandled type"; Q_UNREACHABLE(); } } @@ -927,6 +928,7 @@ void GraphicsHelperGL2::blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, G qWarning() << "Framebuffer blits are not supported by ES 2.0 (since ES 3.1)"; } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl2_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl2_p.h index eb85b8537..7eac312b8 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl2_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl2_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_GRAPHICSHELPERGL2_H -#define QT3DRENDER_RENDER_GRAPHICSHELPERGL2_H +#ifndef QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERGL2_H +#define QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERGL2_H // // W A R N I N G @@ -51,7 +51,7 @@ // We mean it. // -#include <Qt3DRender/private/graphicshelperinterface_p.h> +#include <graphicshelperinterface_p.h> #ifndef QT_OPENGL_ES_2 @@ -62,6 +62,7 @@ class QOpenGLExtension_ARB_framebuffer_object; namespace Qt3DRender { namespace Render { +namespace OpenGL { class Q_AUTOTEST_EXPORT GraphicsHelperGL2 : public GraphicsHelperInterface { @@ -173,6 +174,7 @@ private: QOpenGLExtension_ARB_framebuffer_object *m_fboFuncs; }; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender @@ -180,4 +182,4 @@ QT_END_NAMESPACE #endif // !QT_OPENGL_ES_2 -#endif // QT3DRENDER_RENDER_GRAPHICSHELPERGL2_H +#endif // QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERGL2_H diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl3_2.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl3_2.cpp index f20491358..cb0a62224 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl3_2.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl3_2.cpp @@ -43,9 +43,9 @@ #include <QOpenGLFunctions_3_2_Core> #include <QOpenGLFunctions_3_3_Core> #include <QtOpenGLExtensions/qopenglextensions.h> -#include <Qt3DRender/private/renderlogging_p.h> #include <private/attachmentpack_p.h> -#include <private/qgraphicsutils_p.h> +#include <logging_p.h> +#include <qgraphicsutils_p.h> QT_BEGIN_NAMESPACE @@ -70,6 +70,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { GraphicsHelperGL3_2::GraphicsHelperGL3_2() : m_funcs(nullptr) @@ -216,9 +217,9 @@ QVector<ShaderUniform> GraphicsHelperGL3_2::programUniformsAndLocations(GLuint p m_funcs->glGetActiveUniformsiv(programId, 1, (GLuint*)&i, GL_UNIFORM_MATRIX_STRIDE, &uniform.m_matrixStride); uniform.m_rawByteSize = uniformByteSize(uniform); uniforms.append(uniform); - qCDebug(Render::Rendering) << uniform.m_name << "size" << uniform.m_size - << " offset" << uniform.m_offset - << " rawSize" << uniform.m_rawByteSize; + qCDebug(Rendering) << uniform.m_name << "size" << uniform.m_size + << " offset" << uniform.m_offset + << " rawSize" << uniform.m_rawByteSize; } return uniforms; @@ -279,7 +280,7 @@ void GraphicsHelperGL3_2::vertexAttribDivisor(GLuint index, GLuint divisor) { Q_UNUSED(index); Q_UNUSED(divisor); - qCWarning(Render::Rendering) << "Vertex attribute divisor not available with OpenGL 3.2 core"; + qCWarning(Rendering) << "Vertex attribute divisor not available with OpenGL 3.2 core"; } void GraphicsHelperGL3_2::vertexAttributePointer(GLenum shaderDataType, @@ -319,7 +320,7 @@ void GraphicsHelperGL3_2::vertexAttributePointer(GLenum shaderDataType, break; default: - qCWarning(Render::Rendering) << "vertexAttribPointer: Unhandled type"; + qCWarning(Rendering) << "vertexAttribPointer: Unhandled type"; Q_UNREACHABLE(); } } @@ -397,7 +398,7 @@ void GraphicsHelperGL3_2::blendFuncSeparatei(GLuint buf, GLenum sRGB, GLenum dRG void GraphicsHelperGL3_2::alphaTest(GLenum, GLenum) { - qCWarning(Render::Rendering) << "AlphaTest not available with OpenGL 3.2 core"; + qCWarning(Rendering) << "AlphaTest not available with OpenGL 3.2 core"; } void GraphicsHelperGL3_2::depthTest(GLenum mode) @@ -1237,6 +1238,7 @@ void GraphicsHelperGL3_2::blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, m_funcs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl3_2_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl3_2_p.h index 914afc9ff..a7396dc87 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl3_2_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl3_2_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_GRAPHICSHELPERGL3_H -#define QT3DRENDER_RENDER_GRAPHICSHELPERGL3_H +#ifndef QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERGL3_H +#define QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERGL3_H // // W A R N I N G @@ -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 @@ -63,6 +63,7 @@ class QOpenGLExtension_ARB_tessellation_shader; namespace Qt3DRender { namespace Render { +namespace OpenGL { class Q_AUTOTEST_EXPORT GraphicsHelperGL3_2 : public GraphicsHelperInterface { @@ -175,6 +176,7 @@ private: QScopedPointer<QOpenGLExtension_ARB_tessellation_shader> m_tessFuncs; }; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender @@ -182,4 +184,4 @@ QT_END_NAMESPACE #endif // !QT_OPENGL_ES_2 -#endif // QT3DRENDER_RENDER_GRAPHICSHELPERGL3_H +#endif // QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERGL3_H diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl3_3.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl3_3.cpp index ddffb38e2..f5a61aa4b 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl3_3.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl3_3.cpp @@ -42,9 +42,9 @@ #ifndef QT_OPENGL_ES_2 #include <QOpenGLFunctions_3_3_Core> #include <QtOpenGLExtensions/qopenglextensions.h> -#include <Qt3DRender/private/renderlogging_p.h> #include <private/attachmentpack_p.h> -#include <private/qgraphicsutils_p.h> +#include <logging_p.h> +#include <qgraphicsutils_p.h> # ifndef QT_OPENGL_3_2 # define GL_PATCH_VERTICES 36466 @@ -69,6 +69,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { GraphicsHelperGL3_3::GraphicsHelperGL3_3() : m_funcs(nullptr) @@ -215,9 +216,9 @@ QVector<ShaderUniform> GraphicsHelperGL3_3::programUniformsAndLocations(GLuint p m_funcs->glGetActiveUniformsiv(programId, 1, (GLuint*)&i, GL_UNIFORM_MATRIX_STRIDE, &uniform.m_matrixStride); uniform.m_rawByteSize = uniformByteSize(uniform); uniforms.append(uniform); - qCDebug(Render::Rendering) << uniform.m_name << "size" << uniform.m_size - << " offset" << uniform.m_offset - << " rawSize" << uniform.m_rawByteSize; + qCDebug(Rendering) << uniform.m_name << "size" << uniform.m_size + << " offset" << uniform.m_offset + << " rawSize" << uniform.m_rawByteSize; } return uniforms; @@ -316,7 +317,7 @@ void GraphicsHelperGL3_3::vertexAttributePointer(GLenum shaderDataType, break; default: - qCWarning(Render::Rendering) << "vertexAttribPointer: Unhandled type"; + qCWarning(Rendering) << "vertexAttribPointer: Unhandled type"; } } @@ -393,7 +394,7 @@ void GraphicsHelperGL3_3::blendFuncSeparatei(GLuint buf, GLenum sRGB, GLenum dRG void GraphicsHelperGL3_3::alphaTest(GLenum, GLenum) { - qCWarning(Render::Rendering) << "AlphaTest not available with OpenGL 3.2 core"; + qCWarning(Rendering) << "AlphaTest not available with OpenGL 3.2 core"; } void GraphicsHelperGL3_3::depthTest(GLenum mode) @@ -1232,6 +1233,7 @@ void GraphicsHelperGL3_3::blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, m_funcs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl3_3_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl3_3_p.h index 4dbf6fe7b..3b667420c 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl3_3_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl3_3_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_GRAPHICSHELPERGL3_3_P_H -#define QT3DRENDER_RENDER_GRAPHICSHELPERGL3_3_P_H +#ifndef QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERGL3_3_P_H +#define QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERGL3_3_P_H // // W A R N I N G @@ -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 @@ -63,6 +63,7 @@ class QOpenGLExtension_ARB_tessellation_shader; namespace Qt3DRender { namespace Render { +namespace OpenGL { class Q_AUTOTEST_EXPORT GraphicsHelperGL3_3 : public GraphicsHelperInterface { @@ -175,6 +176,7 @@ private: QScopedPointer<QOpenGLExtension_ARB_tessellation_shader> m_tessFuncs; }; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender @@ -182,4 +184,4 @@ QT_END_NAMESPACE #endif // !QT_OPENGL_ES_2 -#endif // QT3DRENDER_RENDER_GRAPHICSHELPERGL3_3_P_H +#endif // QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERGL3_3_P_H diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl4.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl4.cpp index 60caed273..96e055870 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl4.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl4.cpp @@ -42,9 +42,9 @@ #ifndef QT_OPENGL_ES_2 #include <QOpenGLFunctions_4_3_Core> #include <QtOpenGLExtensions/qopenglextensions.h> -#include <Qt3DRender/private/renderlogging_p.h> #include <private/attachmentpack_p.h> -#include <private/qgraphicsutils_p.h> +#include <qgraphicsutils_p.h> +#include <logging_p.h> # ifndef QT_OPENGL_4_3 # ifndef GL_PATCH_VERTICES @@ -118,6 +118,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { namespace { @@ -291,9 +292,9 @@ QVector<ShaderUniform> GraphicsHelperGL4::programUniformsAndLocations(GLuint pro m_funcs->glGetActiveUniformsiv(programId, 1, (GLuint*)&i, GL_UNIFORM_MATRIX_STRIDE, &uniform.m_matrixStride); uniform.m_rawByteSize = uniformByteSize(uniform); uniforms.append(uniform); - qCDebug(Render::Rendering) << uniform.m_name << "size" << uniform.m_size - << " offset" << uniform.m_offset - << " rawSize" << uniform.m_rawByteSize; + qCDebug(Rendering) << uniform.m_name << "size" << uniform.m_size + << " offset" << uniform.m_offset + << " rawSize" << uniform.m_rawByteSize; } return uniforms; @@ -418,7 +419,7 @@ void GraphicsHelperGL4::vertexAttributePointer(GLenum shaderDataType, break; default: - qCWarning(Render::Rendering) << "vertexAttribPointer: Unhandled type"; + qCWarning(Rendering) << "vertexAttribPointer: Unhandled type"; Q_UNREACHABLE(); } } @@ -728,7 +729,7 @@ void GraphicsHelperGL4::blendFuncSeparatei(GLuint buf, GLenum sRGB, GLenum dRGB, void GraphicsHelperGL4::alphaTest(GLenum, GLenum) { - qCWarning(Render::Rendering) << "AlphaTest not available with OpenGL 3.2 core"; + qCWarning(Rendering) << "AlphaTest not available with OpenGL 3.2 core"; } void GraphicsHelperGL4::depthTest(GLenum mode) @@ -1434,6 +1435,7 @@ void GraphicsHelperGL4::blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, G m_funcs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl4_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl4_p.h index d3ce0d079..1fa390806 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelpergl4_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl4_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_GRAPHICSHELPERGL4_H -#define QT3DRENDER_RENDER_GRAPHICSHELPERGL4_H +#ifndef QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERGL4_H +#define QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERGL4_H // // W A R N I N G @@ -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 @@ -62,6 +62,7 @@ class QOpenGLFunctions_4_3_Core; namespace Qt3DRender { namespace Render { +namespace OpenGL { class Q_AUTOTEST_EXPORT GraphicsHelperGL4 : public GraphicsHelperInterface { @@ -172,6 +173,7 @@ private: QOpenGLFunctions_4_3_Core *m_funcs; }; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender @@ -179,4 +181,4 @@ QT_END_NAMESPACE #endif // !QT_OPENGL_ES_2 -#endif // QT3DRENDER_RENDER_GRAPHICSHELPERGL4_H +#endif // QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERGL4_H diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperinterface_p.h b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperinterface_p.h index 21146c32b..bbbf05ee0 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicshelperinterface_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelperinterface_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_GRAPHICSHELPERINTERFACE_H -#define QT3DRENDER_RENDER_GRAPHICSHELPERINTERFACE_H +#ifndef QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERINTERFACE_H +#define QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERINTERFACE_H // // W A R N I N G @@ -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> @@ -64,6 +64,9 @@ namespace Qt3DRender { namespace Render { struct Attachment; + +namespace OpenGL { + class RenderBuffer; class GraphicsHelperInterface @@ -194,10 +197,10 @@ public: virtual UniformType uniformTypeFromGLType(GLenum glType) = 0; }; - +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_GRAPHICSHELPERINTERFACE_H +#endif // QT3DRENDER_RENDER_OPENGL_GRAPHICSHELPERINTERFACE_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..c2316d81a 100644 --- a/src/render/renderers/opengl/graphicshelpers/imagesubmissioncontext.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/imagesubmissioncontext.cpp @@ -38,10 +38,11 @@ ****************************************************************************/ #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> +#include <logging_p.h> QT_BEGIN_NAMESPACE @@ -58,6 +59,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { class GraphicsContext; class GLTexture; @@ -299,7 +301,7 @@ int ImageSubmissionContext::assignUnitForImage(Qt3DCore::QNodeId shaderImageId) return lowestScoredUnit; } - +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/graphicshelpers/imagesubmissioncontext_p.h b/src/plugins/renderers/opengl/graphicshelpers/imagesubmissioncontext_p.h index 6d39f469b..52a0152f8 100644 --- a/src/render/renderers/opengl/graphicshelpers/imagesubmissioncontext_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/imagesubmissioncontext_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_IMAGESUBMISSIONCONTEXT_P_H -#define QT3DRENDER_RENDER_IMAGESUBMISSIONCONTEXT_P_H +#ifndef QT3DRENDER_RENDER_OPENGL_IMAGESUBMISSIONCONTEXT_P_H +#define QT3DRENDER_RENDER_OPENGL_IMAGESUBMISSIONCONTEXT_P_H // // W A R N I N G @@ -58,9 +58,12 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +class ShaderImage; + +namespace OpenGL { + class GraphicsContext; class GLTexture; -class ShaderImage; class Q_AUTOTEST_EXPORT ImageSubmissionContext { @@ -87,9 +90,10 @@ private: GraphicsContext *m_ctx; }; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_IMAGESUBMISSIONCONTEXT_P_H +#endif // QT3DRENDER_RENDER_OPENGL_IMAGESUBMISSIONCONTEXT_P_H diff --git a/src/render/backend/qgraphicsutils_p.h b/src/plugins/renderers/opengl/graphicshelpers/qgraphicsutils_p.h index 40ff99f0e..a2a995811 100644 --- a/src/render/backend/qgraphicsutils_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/qgraphicsutils_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_QGRAPHICSUTILS_P_H -#define QT3DRENDER_RENDER_QGRAPHICSUTILS_P_H +#ifndef QT3DRENDER_RENDER_OPENGL_QGRAPHICSUTILS_P_H +#define QT3DRENDER_RENDER_OPENGL_QGRAPHICSUTILS_P_H // // W A R N I N G @@ -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 @@ -67,6 +67,8 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + namespace { const int QMatrix2x2Type = qMetaTypeId<QMatrix2x2>(); @@ -401,10 +403,12 @@ public: }; +} // namespace OpenGL + } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_QGRAPHICSUTILS_P_H +#endif // QT3DRENDER_RENDER_OPENGL_QGRAPHICSUTILS_P_H diff --git a/src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp b/src/plugins/renderers/opengl/graphicshelpers/submissioncontext.cpp index 8afec233d..e4b223185 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> @@ -97,6 +97,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { static QHash<unsigned int, SubmissionContext*> static_contexts; @@ -1407,7 +1408,7 @@ HGLBuffer SubmissionContext::createGLBufferFor(Buffer *buffer) // b.setUsagePattern(static_cast<QOpenGLBuffer::UsagePattern>(buffer->usage())); Q_ASSERT(b); if (!b->create(this)) - qCWarning(Render::Io) << Q_FUNC_INFO << "buffer creation failed"; + qCWarning(Io) << Q_FUNC_INFO << "buffer creation failed"; return m_renderer->glResourceManagers()->glBufferManager()->lookupHandle(buffer->peerId()); } @@ -1428,7 +1429,7 @@ bool SubmissionContext::bindGLBuffer(GLBuffer *buffer, GLBuffer::Type type) void SubmissionContext::uploadDataToGLBuffer(Buffer *buffer, GLBuffer *b, bool releaseBuffer) { if (!bindGLBuffer(b, GLBuffer::ArrayBuffer)) // We're uploading, the type doesn't matter here - qCWarning(Render::Io) << Q_FUNC_INFO << "buffer bind failed"; + qCWarning(Io) << Q_FUNC_INFO << "buffer bind failed"; // If the buffer is dirty (hence being called here) // there are two possible cases // * setData was called changing the whole data or functor (or the usage pattern) @@ -1471,13 +1472,13 @@ void SubmissionContext::uploadDataToGLBuffer(Buffer *buffer, GLBuffer *b, bool r b->release(this); m_boundArrayBuffer = nullptr; } - qCDebug(Render::Io) << "uploaded buffer size=" << buffer->data().size(); + qCDebug(Io) << "uploaded buffer size=" << buffer->data().size(); } QByteArray SubmissionContext::downloadDataFromGLBuffer(Buffer *buffer, GLBuffer *b) { if (!bindGLBuffer(b, GLBuffer::ArrayBuffer)) // We're downloading, the type doesn't matter here - qCWarning(Render::Io) << Q_FUNC_INFO << "buffer bind failed"; + qCWarning(Io) << Q_FUNC_INFO << "buffer bind failed"; QByteArray data = b->download(this, buffer->data().size()); return data; @@ -1568,6 +1569,7 @@ void SubmissionContext::blitFramebuffer(Qt3DCore::QNodeId inputRenderTargetId, } } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender of namespace diff --git a/src/render/renderers/opengl/graphicshelpers/submissioncontext_p.h b/src/plugins/renderers/opengl/graphicshelpers/submissioncontext_p.h index e7a31e6ce..b663e47ec 100644 --- a/src/render/renderers/opengl/graphicshelpers/submissioncontext_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/submissioncontext_p.h @@ -38,8 +38,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_SUBMISSIONCONTEXT_H -#define QT3DRENDER_RENDER_SUBMISSIONCONTEXT_H +#ifndef QT3DRENDER_RENDER_OPENGL_SUBMISSIONCONTEXT_H +#define QT3DRENDER_RENDER_OPENGL_SUBMISSIONCONTEXT_H // // W A R N I N G @@ -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 @@ -70,18 +70,21 @@ namespace Qt3DRender { namespace Render { -class Renderer; -class GraphicsHelperInterface; -class RenderStateSet; class Material; -class GLTexture; -class RenderCommand; -class RenderTarget; class AttachmentPack; class Attribute; class Buffer; class ShaderManager; struct StateVariant; +class RenderTarget; +class RenderStateSet; + +namespace OpenGL { + +class Renderer; +class GraphicsHelperInterface; +class GLTexture; +class RenderCommand; typedef QPair<QString, int> NamedUniformLocation; @@ -226,9 +229,10 @@ private: void disableAttribute(const VAOVertexAttribute &attr); }; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_SUBMISSIONCONTEXT_H +#endif // QT3DRENDER_RENDER_OPENGL_SUBMISSIONCONTEXT_H diff --git a/src/render/renderers/opengl/graphicshelpers/texturesubmissioncontext.cpp b/src/plugins/renderers/opengl/graphicshelpers/texturesubmissioncontext.cpp index 67d0f9976..4577d3d10 100644 --- a/src/render/renderers/opengl/graphicshelpers/texturesubmissioncontext.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/texturesubmissioncontext.cpp @@ -39,13 +39,15 @@ #include "texturesubmissioncontext_p.h" -#include <Qt3DRender/private/graphicscontext_p.h> -#include <Qt3DRender/private/gltexture_p.h> +#include <graphicscontext_p.h> +#include <gltexture_p.h> +#include <logging_p.h> QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { class TextureExtRendererLocker { @@ -219,6 +221,7 @@ void TextureSubmissionContext::decayTextureScores() m_activeTextures[u].score = qMax(m_activeTextures[u].score - 1, 0); } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender of namespace diff --git a/src/render/renderers/opengl/graphicshelpers/texturesubmissioncontext_p.h b/src/plugins/renderers/opengl/graphicshelpers/texturesubmissioncontext_p.h index 3c84fe558..d80f6b9e3 100644 --- a/src/render/renderers/opengl/graphicshelpers/texturesubmissioncontext_p.h +++ b/src/plugins/renderers/opengl/graphicshelpers/texturesubmissioncontext_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_TEXTURESUBMISSIONCONTEXT_H -#define QT3DRENDER_RENDER_TEXTURESUBMISSIONCONTEXT_H +#ifndef QT3DRENDER_RENDER_OPENGL_TEXTURESUBMISSIONCONTEXT_H +#define QT3DRENDER_RENDER_OPENGL_TEXTURESUBMISSIONCONTEXT_H // // W A R N I N G @@ -61,6 +61,7 @@ class QOpenGLContext; namespace Qt3DRender { namespace Render { +namespace OpenGL { class GraphicsContext; class GLTexture; @@ -98,9 +99,10 @@ private: QVector<ActiveTexture> m_activeTextures; }; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_TEXTURESUBMISSIONCONTEXT_H +#endif // QT3DRENDER_RENDER_OPENGL_TEXTURESUBMISSIONCONTEXT_H diff --git a/src/render/renderers/opengl/io/glbuffer.cpp b/src/plugins/renderers/opengl/io/glbuffer.cpp index f1b860f03..27f005f01 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 @@ -68,6 +68,8 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + // A UBO is created for each ShaderData Shader Pair // That means a UBO is unique to a shader/shaderdata @@ -162,6 +164,8 @@ void GLBuffer::bindBufferBase(GraphicsContext *ctx, int bindingPoint) ctx->bindBufferBase(m_lastTarget, bindingPoint, m_bufferId); } +} // namespace OpenGL + } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/io/glbuffer_p.h b/src/plugins/renderers/opengl/io/glbuffer_p.h index 676fb00d9..6a2daa287 100644 --- a/src/render/renderers/opengl/io/glbuffer_p.h +++ b/src/plugins/renderers/opengl/io/glbuffer_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_GLBUFFER_P_H -#define QT3DRENDER_RENDER_GLBUFFER_P_H +#ifndef QT3DRENDER_RENDER_OPENGL_GLBUFFER_P_H +#define QT3DRENDER_RENDER_OPENGL_GLBUFFER_P_H // // W A R N I N G @@ -61,6 +61,8 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + class GraphicsContext; class GLBuffer @@ -94,11 +96,6 @@ public: inline bool isCreated() const { return m_isCreated; } inline bool isBound() const { return m_bound; } -#ifdef Q_OS_WIN - // To get MSVC to compile even though we don't need any cleanup - void cleanup() {} -#endif - private: GLuint m_bufferId; bool m_isCreated; @@ -106,10 +103,12 @@ private: GLenum m_lastTarget; }; +} // namespace OpenGL + } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_GLBUFFER_P_H +#endif // QT3DRENDER_RENDER_OPENGL_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..52fd99f52 100644 --- a/src/render/renderers/opengl/jobs/filtercompatibletechniquejob.cpp +++ b/src/plugins/renderers/opengl/jobs/filtercompatibletechniquejob.cpp @@ -40,14 +40,15 @@ #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 namespace Qt3DRender { namespace Render { +namespace OpenGL { FilterCompatibleTechniqueJob::FilterCompatibleTechniqueJob() : m_manager(nullptr) @@ -89,6 +90,7 @@ void FilterCompatibleTechniqueJob::run() } } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/jobs/filtercompatibletechniquejob_p.h b/src/plugins/renderers/opengl/jobs/filtercompatibletechniquejob_p.h index 27b3d4ed2..7191e2933 100644 --- a/src/render/renderers/opengl/jobs/filtercompatibletechniquejob_p.h +++ b/src/plugins/renderers/opengl/jobs/filtercompatibletechniquejob_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_FILTERCOMPATIBLETECHNIQUEJOB_H -#define QT3DRENDER_RENDER_FILTERCOMPATIBLETECHNIQUEJOB_H +#ifndef QT3DRENDER_RENDER_OPENGL_FILTERCOMPATIBLETECHNIQUEJOB_H +#define QT3DRENDER_RENDER_OPENGL_FILTERCOMPATIBLETECHNIQUEJOB_H // // W A R N I N G @@ -62,9 +62,12 @@ namespace Qt3DRender { namespace Render { class TechniqueManager; + +namespace OpenGL { + class Renderer; -class Q_3DRENDERSHARED_PRIVATE_EXPORT FilterCompatibleTechniqueJob : public Qt3DCore::QAspectJob +class Q_AUTOTEST_EXPORT FilterCompatibleTechniqueJob : public Qt3DCore::QAspectJob { public: FilterCompatibleTechniqueJob(); @@ -84,9 +87,10 @@ private: typedef QSharedPointer<FilterCompatibleTechniqueJob> FilterCompatibleTechniqueJobPtr; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_FILTERCOMPATIBLETECHNIQUEJOB_H +#endif // QT3DRENDER_RENDER_OPENGL_FILTERCOMPATIBLETECHNIQUEJOB_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..1f51ceba3 100644 --- a/src/render/renderers/opengl/jobs/materialparametergathererjob.cpp +++ b/src/plugins/renderers/opengl/jobs/materialparametergathererjob.cpp @@ -50,6 +50,8 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + namespace { int materialParameterGathererCounter = 0; @@ -124,6 +126,8 @@ void MaterialParameterGathererJob::run() } } +} // OpenGL + } // Render } // Qt3DRender diff --git a/src/render/renderers/opengl/jobs/materialparametergathererjob_p.h b/src/plugins/renderers/opengl/jobs/materialparametergathererjob_p.h index 6ba060841..139267d9a 100644 --- a/src/render/renderers/opengl/jobs/materialparametergathererjob_p.h +++ b/src/plugins/renderers/opengl/jobs/materialparametergathererjob_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_MATERIALPARAMETERGATHERERJOB_P_H -#define QT3DRENDER_RENDER_MATERIALPARAMETERGATHERERJOB_P_H +#ifndef QT3DRENDER_RENDER_OPENGL_MATERIALPARAMETERGATHERERJOB_P_H +#define QT3DRENDER_RENDER_OPENGL_MATERIALPARAMETERGATHERERJOB_P_H // // W A R N I N G @@ -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 @@ -66,11 +66,13 @@ namespace Render { class NodeManagers; class TechniqueFilter; class RenderPassFilter; + +namespace OpenGL { class Renderer; // TO be executed for each FrameGraph branch with a given RenderPassFilter/TechniqueFilter -class Q_3DRENDERSHARED_PRIVATE_EXPORT MaterialParameterGathererJob : public Qt3DCore::QAspectJob +class Q_AUTOTEST_EXPORT MaterialParameterGathererJob : public Qt3DCore::QAspectJob { public: MaterialParameterGathererJob(); @@ -98,10 +100,12 @@ private: typedef QSharedPointer<MaterialParameterGathererJob> MaterialParameterGathererJobPtr; +} // OpenGL + } // Render } // Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_MATERIALPARAMETERGATHERERJOB_P_H +#endif // QT3DRENDER_RENDER_OPENGL_MATERIALPARAMETERGATHERERJOB_P_H diff --git a/src/plugins/renderers/opengl/jobs/renderviewbuilderjob.cpp b/src/plugins/renderers/opengl/jobs/renderviewbuilderjob.cpp new file mode 100644 index 000000000..468ab9342 --- /dev/null +++ b/src/plugins/renderers/opengl/jobs/renderviewbuilderjob.cpp @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** 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 OpenGL { + +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); + } +} + +} // OpenGL + +} // 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..13e19daf7 --- /dev/null +++ b/src/plugins/renderers/opengl/jobs/renderviewbuilderjob_p.h @@ -0,0 +1,102 @@ +/**************************************************************************** +** +** 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_OPENGL_RENDERVIEWCOMMANDBUILDERJOB_P_H +#define QT3DRENDER_RENDER_OPENGL_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 { + +namespace OpenGL { + +class RenderView; + +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; + +} // OpenGL + +} // Render + +} // Qt3DRender + +QT_END_NAMESPACE + +#endif // QT3DRENDER_RENDER_OPENGL_RENDERVIEWCOMMANDBUILDERJOB_P_H diff --git a/src/render/renderers/opengl/jobs/renderviewcommandbuilderjob.cpp b/src/plugins/renderers/opengl/jobs/renderviewcommandbuilderjob.cpp index 091d49ef5..d8a33b693 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 @@ -47,6 +47,8 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + namespace { int renderViewInstanceCounter = 0; } // anonymous @@ -74,6 +76,8 @@ void RenderViewCommandBuilderJob::run() } } +} // OpenGL + } // Render } // Qt3DRender diff --git a/src/render/renderers/opengl/jobs/renderviewcommandbuilderjob_p.h b/src/plugins/renderers/opengl/jobs/renderviewcommandbuilderjob_p.h index 556c7f241..e9f8bb10a 100644 --- a/src/render/renderers/opengl/jobs/renderviewcommandbuilderjob_p.h +++ b/src/plugins/renderers/opengl/jobs/renderviewcommandbuilderjob_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_RENDERVIEWCOMMANDBUILDERJOB_P_H -#define QT3DRENDER_RENDER_RENDERVIEWCOMMANDBUILDERJOB_P_H +#ifndef QT3DRENDER_RENDER_OPENGL_RENDERVIEWCOMMANDBUILDERJOB_P_H +#define QT3DRENDER_RENDER_OPENGL_RENDERVIEWCOMMANDBUILDERJOB_P_H // // W A R N I N G @@ -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 @@ -61,6 +61,8 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + class Q_AUTOTEST_EXPORT RenderViewCommandBuilderJob : public Qt3DCore::QAspectJob { public: @@ -87,10 +89,12 @@ private: typedef QSharedPointer<RenderViewCommandBuilderJob> RenderViewCommandBuilderJobPtr; +} // OpenGL + } // Render } // Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_RENDERVIEWCOMMANDBUILDERJOB_P_H +#endif // QT3DRENDER_RENDER_OPENGL_RENDERVIEWCOMMANDBUILDERJOB_P_H diff --git a/src/render/renderers/opengl/jobs/renderviewcommandupdaterjob.cpp b/src/plugins/renderers/opengl/jobs/renderviewcommandupdaterjob.cpp index 6772279d7..79a115525 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 @@ -48,10 +48,13 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + namespace { int renderViewInstanceCounter = 0; } // anonymous + RenderViewCommandUpdaterJob::RenderViewCommandUpdaterJob() : Qt3DCore::QAspectJob() , m_offset(0) @@ -75,6 +78,8 @@ void RenderViewCommandUpdaterJob::run() } } +} // OpenGL + } // Render } // Qt3DRender diff --git a/src/render/renderers/opengl/jobs/renderviewcommandupdaterjob_p.h b/src/plugins/renderers/opengl/jobs/renderviewcommandupdaterjob_p.h index d7f424966..2fe5749ad 100644 --- a/src/render/renderers/opengl/jobs/renderviewcommandupdaterjob_p.h +++ b/src/plugins/renderers/opengl/jobs/renderviewcommandupdaterjob_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_RENDERVIEWCOMMANDUPDATEJOB_P_H -#define QT3DRENDER_RENDER_RENDERVIEWCOMMANDUPDATEJOB_P_H +#ifndef QT3DRENDER_RENDER_OPENGL_RENDERVIEWCOMMANDUPDATEJOB_P_H +#define QT3DRENDER_RENDER_OPENGL_RENDERVIEWCOMMANDUPDATEJOB_P_H // // W A R N I N G @@ -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 @@ -61,6 +61,8 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + class RenderView; class Renderer; @@ -94,10 +96,12 @@ private: typedef QSharedPointer<RenderViewCommandUpdaterJob> RenderViewCommandUpdaterJobPtr; +} // OpenGL + } // Render } // Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_RENDERVIEWCOMMANDUPDATEJOB_P_H +#endif // QT3DRENDER_RENDER_OPENGL_RENDERVIEWCOMMANDUPDATEJOB_P_H diff --git a/src/render/renderers/opengl/jobs/renderviewinitializerjob.cpp b/src/plugins/renderers/opengl/jobs/renderviewinitializerjob.cpp index f0f72803c..6be1016f0 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> @@ -52,6 +52,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { namespace { // only accessed in ctor and dtor of RenderViewJob @@ -98,6 +99,7 @@ void RenderViewInitializerJob::run() #endif } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/jobs/renderviewinitializerjob_p.h b/src/plugins/renderers/opengl/jobs/renderviewinitializerjob_p.h index fb4e2c67c..2ebb5dc36 100644 --- a/src/render/renderers/opengl/jobs/renderviewinitializerjob_p.h +++ b/src/plugins/renderers/opengl/jobs/renderviewinitializerjob_p.h @@ -38,8 +38,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_RENDERVIEWINITIALIZERJOB_H -#define QT3DRENDER_RENDER_RENDERVIEWINITIALIZERJOB_H +#ifndef QT3DRENDER_RENDER_OPENGL_RENDERVIEWINITIALIZERJOB_H +#define QT3DRENDER_RENDER_OPENGL_RENDERVIEWINITIALIZERJOB_H // // W A R N I N G @@ -62,8 +62,11 @@ namespace Qt3DRender { namespace Render { -class Renderer; class FrameGraphNode; + +namespace OpenGL { + +class Renderer; class RenderView; class Q_AUTOTEST_EXPORT RenderViewInitializerJob : public Qt3DCore::QAspectJob @@ -99,9 +102,10 @@ private: typedef QSharedPointer<RenderViewInitializerJob> RenderViewInitializerJobPtr; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_RENDERVIEWINITIALIZERJOB_H +#endif // QT3DRENDER_RENDER_OPENGL_RENDERVIEWINITIALIZERJOB_H diff --git a/src/render/renderers/opengl/jobs/renderviewjobutils.cpp b/src/plugins/renderers/opengl/jobs/renderviewjobutils.cpp index 16d449d4a..d4835054b 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 @@ -76,6 +76,7 @@ using namespace Qt3DCore; namespace Qt3DRender { namespace Render { +namespace OpenGL { /*! \internal @@ -568,6 +569,7 @@ bool ParameterInfo::operator<(const int otherNameId) const Q_DECL_NOEXCEPT return nameId < otherNameId; } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/jobs/renderviewjobutils_p.h b/src/plugins/renderers/opengl/jobs/renderviewjobutils_p.h index b2fa59785..5b1413108 100644 --- a/src/render/renderers/opengl/jobs/renderviewjobutils_p.h +++ b/src/plugins/renderers/opengl/jobs/renderviewjobutils_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDERVIEWJOBUTILS_P_H -#define QT3DRENDER_RENDERVIEWJOBUTILS_P_H +#ifndef QT3DRENDER_RENDER_OPENGL_RENDERVIEWJOBUTILS_P_H +#define QT3DRENDER_RENDER_OPENGL_RENDERVIEWJOBUTILS_P_H // // W A R N I N G @@ -59,6 +59,7 @@ #include <Qt3DRender/private/uniform_p.h> #include <Qt3DRender/private/handle_types_p.h> #include <Qt3DRender/private/aligned_malloc_p.h> +#include <shadervariables_p.h> QT_BEGIN_NAMESPACE @@ -75,19 +76,21 @@ class Effect; class Entity; class Material; class RenderPass; -class RenderStateSet; class Technique; -class RenderView; class TechniqueFilter; class RenderPassFilter; -class Renderer; class NodeManagers; class ShaderDataManager; -struct ShaderUniform; class ShaderData; class TextureManager; class RenderStateManager; class RenderStateCollection; +class RenderStateSet; + +namespace OpenGL { +class Renderer; +class RenderView; +struct ShaderUniform; Q_AUTOTEST_EXPORT void setRenderViewConfigFromFrameGraphLeafNode(RenderView *rv, const FrameGraphNode *fgLeaf); @@ -126,7 +129,7 @@ struct RenderPassParameterData RenderPass *pass; ParameterInfoList parameterInfo; }; -QT3D_DECLARE_TYPEINFO_2(Qt3DRender, Render, RenderPassParameterData, Q_MOVABLE_TYPE) +QT3D_DECLARE_TYPEINFO_3(Qt3DRender, Render, OpenGL, RenderPassParameterData, Q_MOVABLE_TYPE) using MaterialParameterGathererData = QHash<Qt3DCore::QNodeId, QVector<RenderPassParameterData>>; @@ -179,9 +182,10 @@ struct Q_AUTOTEST_EXPORT UniformBlockValueBuilder Matrix4x4 viewMatrix; }; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDERVIEWJOBUTILS_P_H +#endif // QT3DRENDER_RENDER_OPENGL_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..a6cd9faf7 --- /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::OpenGL::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..98af4d3b8 100644 --- a/src/render/renderers/opengl/managers/gl_handle_types_p.h +++ b/src/plugins/renderers/opengl/managers/gl_handle_types_p.h @@ -59,6 +59,8 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + class GLBuffer; class GLTexture; class OpenGLVertexArrayObject; @@ -67,6 +69,8 @@ typedef Qt3DCore::QHandle<GLBuffer> HGLBuffer; typedef Qt3DCore::QHandle<OpenGLVertexArrayObject> HVao; typedef Qt3DCore::QHandle<GLTexture> HGLTexture; +} // namespace OpenGL + } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/managers/glresourcemanagers.cpp b/src/plugins/renderers/opengl/managers/glresourcemanagers.cpp index 2b1b87925..e8fd893ee 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 @@ -47,6 +45,7 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { GLResourceManagers::GLResourceManagers() : m_glBufferManager(new GLBufferManager()) @@ -66,6 +65,8 @@ GLResourceManagers::~GLResourceManagers() delete m_glBufferManager; } +} // OpenGL + } // Render } // Qt3DRender diff --git a/src/render/renderers/opengl/managers/glresourcemanagers_p.h b/src/plugins/renderers/opengl/managers/glresourcemanagers_p.h index 8c4c46bca..9472bc33f 100644 --- a/src/render/renderers/opengl/managers/glresourcemanagers_p.h +++ b/src/plugins/renderers/opengl/managers/glresourcemanagers_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_GLRESOURCEMANAGERS_P_H -#define QT3DRENDER_RENDER_GLRESOURCEMANAGERS_P_H +#ifndef QT3DRENDER_RENDER_OPENGL_GLRESOURCEMANAGERS_P_H +#define QT3DRENDER_RENDER_OPENGL_GLRESOURCEMANAGERS_P_H // // W A R N I N G @@ -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 @@ -66,6 +66,8 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + class Q_AUTOTEST_EXPORT GLFenceManager : public QHash<Qt3DCore::QNodeId, GLFence> { }; @@ -124,12 +126,14 @@ private: VAOManager *m_vaoManager; }; +} // OpenGL + } // Render } // Qt3DRender -Q_DECLARE_RESOURCE_INFO(Qt3DRender::Render::OpenGLVertexArrayObject, Q_REQUIRES_CLEANUP) +Q_DECLARE_RESOURCE_INFO(Qt3DRender::Render::OpenGL::OpenGLVertexArrayObject, Q_REQUIRES_CLEANUP) QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_GLRESOURCEMANAGERS_P_H +#endif // QT3DRENDER_RENDER_OPENGL_GLRESOURCEMANAGERS_P_H 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/plugins/renderers/opengl/opengl.pri b/src/plugins/renderers/opengl/opengl.pri new file mode 100644 index 000000000..1682ab7b3 --- /dev/null +++ b/src/plugins/renderers/opengl/opengl.pri @@ -0,0 +1,41 @@ +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 +DEFINES += BUILD_QT3D_MODULE + +# For Q_AUTOTEST_EXPORT to work +DEFINES += QT_BUILDING_QT + +DISTFILES += \ + openglrenderer.json + +include (renderer/renderer.pri) +include (jobs/jobs.pri) +include (io/io.pri) +include (textures/textures.pri) +include (graphicshelpers/graphicshelpers.pri) +include (managers/managers.pri) + +!integrity: include (debug/debug.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 +} + +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 +} diff --git a/src/plugins/renderers/opengl/opengl.pro b/src/plugins/renderers/opengl/opengl.pro new file mode 100644 index 000000000..ebd4ff5d1 --- /dev/null +++ b/src/plugins/renderers/opengl/opengl.pro @@ -0,0 +1,10 @@ +TARGET = openglrenderer + +include(opengl.pri) + +SOURCES += \ + main.cpp + +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..03d5d5a7f 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 @@ -242,11 +242,11 @@ QJsonObject backendNodeToJSon(Handle handle, Manager *manager) return obj; } -QJsonObject parameterPackToJson(const Render::ShaderParameterPack &pack) +QJsonObject parameterPackToJson(const Render::OpenGL::ShaderParameterPack &pack) { QJsonObject obj; - const Render::PackUniformHash &uniforms = pack.uniforms(); + const Render::OpenGL::PackUniformHash &uniforms = pack.uniforms(); QJsonArray uniformsArray; for (int i = 0, m = uniforms.keys.size(); i < m; ++i) { QJsonObject uniformObj; @@ -261,7 +261,7 @@ QJsonObject parameterPackToJson(const Render::ShaderParameterPack &pack) obj.insert(QLatin1String("uniforms"), uniformsArray); QJsonArray texturesArray; - const QVector<Render::ShaderParameterPack::NamedResource> &textures = pack.textures(); + const QVector<Render::OpenGL::ShaderParameterPack::NamedResource> &textures = pack.textures(); for (const auto & texture : textures) { QJsonObject textureObj; textureObj.insert(QLatin1String("name"), Render::StringToInt::lookupString(texture.glslNameId)); @@ -270,7 +270,7 @@ QJsonObject parameterPackToJson(const Render::ShaderParameterPack &pack) } obj.insert(QLatin1String("textures"), texturesArray); - const QVector<Render::BlockToUBO> &ubos = pack.uniformBuffers(); + const QVector<Render::OpenGL::BlockToUBO> &ubos = pack.uniformBuffers(); QJsonArray ubosArray; for (const auto &ubo : ubos) { QJsonObject uboObj; @@ -281,7 +281,7 @@ QJsonObject parameterPackToJson(const Render::ShaderParameterPack &pack) } obj.insert(QLatin1String("ubos"), ubosArray); - const QVector<Render::BlockToSSBO> &ssbos = pack.shaderStorageBuffers(); + const QVector<Render::OpenGL::BlockToSSBO> &ssbos = pack.shaderStorageBuffers(); QJsonArray ssbosArray; for (const auto &ssbo : ssbos) { QJsonObject ssboObj; @@ -296,13 +296,13 @@ QJsonObject parameterPackToJson(const Render::ShaderParameterPack &pack) } // anonymous -CommandExecuter::CommandExecuter(Render::Renderer *renderer) +CommandExecuter::CommandExecuter(Render::OpenGL::Renderer *renderer) : m_renderer(renderer) { } // Render thread -void CommandExecuter::performAsynchronousCommandExecution(const QVector<Render::RenderView *> &views) +void CommandExecuter::performAsynchronousCommandExecution(const QVector<Render::OpenGL::RenderView *> &views) { QMutexLocker lock(&m_pendingCommandsMutex); const QVector<Qt3DCore::Debug::AsynchronousCommandReply *> shellCommands = std::move(m_pendingCommands); @@ -334,7 +334,7 @@ void CommandExecuter::performAsynchronousCommandExecution(const QVector<Render:: QJsonObject replyObj; QJsonArray viewArray; - for (Render::RenderView *v : views) { + for (Render::OpenGL::RenderView *v : views) { QJsonObject viewObj; viewObj.insert(QLatin1String("viewport"), typeToJsonValue(v->viewport())); viewObj.insert(QLatin1String("surfaceSize"), typeToJsonValue(v->surfaceSize())); @@ -346,10 +346,10 @@ void CommandExecuter::performAsynchronousCommandExecution(const QVector<Render:: viewObj.insert(QLatin1String("clearStencilValue"), v->clearStencilValue()); QJsonArray renderCommandsArray; - for (const Render::RenderCommand &c : v->commands()) { + for (Render::OpenGL::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..9aea9fc2f 100644 --- a/src/render/backend/commandexecuter_p.h +++ b/src/plugins/renderers/opengl/renderer/commandexecuter_p.h @@ -65,8 +65,10 @@ class AsynchronousCommandReply; namespace Qt3DRender { namespace Render { +namespace OpenGL { class Renderer; class RenderView; +} // OpenGL } // Render namespace Debug { @@ -74,14 +76,14 @@ namespace Debug { class CommandExecuter { public: - explicit CommandExecuter(Render::Renderer *renderer); + explicit CommandExecuter(Render::OpenGL::Renderer *renderer); - void performAsynchronousCommandExecution(const QVector<Render::RenderView *> &views); + void performAsynchronousCommandExecution(const QVector<Render::OpenGL::RenderView *> &views); QVariant executeCommand(const QStringList &args); private: - Render::Renderer *m_renderer; + Render::OpenGL::Renderer *m_renderer; QVector<Qt3DCore::Debug::AsynchronousCommandReply *> m_pendingCommands; QMutex m_pendingCommandsMutex; }; diff --git a/src/render/backend/frameprofiler_p.h b/src/plugins/renderers/opengl/renderer/frameprofiler_p.h index 59c9b68b6..59c9b68b6 100644 --- a/src/render/backend/frameprofiler_p.h +++ b/src/plugins/renderers/opengl/renderer/frameprofiler_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..5e92d84c2 100644 --- a/src/render/renderers/opengl/renderer/glshader.cpp +++ b/src/plugins/renderers/opengl/renderer/glshader.cpp @@ -39,8 +39,9 @@ #include "glshader_p.h" #include <QMutexLocker> -#include <Qt3DRender/private/graphicscontext_p.h> #include <Qt3DRender/private/stringtoint_p.h> +#include <graphicscontext_p.h> +#include <logging_p.h> QT_BEGIN_NAMESPACE @@ -48,6 +49,8 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + GLShader::GLShader() : m_isLoaded(false) , m_graphicsContext(nullptr) @@ -309,6 +312,8 @@ void GLShader::initializeShaderStorageBlocks(const QVector<ShaderStorageBlock> & } } +} // OpenGL + } // Render } // Qt3DRender diff --git a/src/render/renderers/opengl/renderer/glshader_p.h b/src/plugins/renderers/opengl/renderer/glshader_p.h index dec085291..6bd5400af 100644 --- a/src/render/renderers/opengl/renderer/glshader_p.h +++ b/src/plugins/renderers/opengl/renderer/glshader_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_GLSHADER_P_H -#define QT3DRENDER_RENDER_GLSHADER_P_H +#ifndef QT3DRENDER_RENDER_OPENGL_GLSHADER_P_H +#define QT3DRENDER_RENDER_OPENGL_GLSHADER_P_H // // W A R N I N G @@ -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> @@ -66,6 +66,8 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + class Q_AUTOTEST_EXPORT GLShader { public: @@ -151,10 +153,12 @@ private: QMetaObject::Connection m_contextConnection; }; +} // OpenGL + } // Render } // Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_GLSHADER_P_H +#endif // QT3DRENDER_RENDER_OPENGL_GLSHADER_P_H diff --git a/src/plugins/renderers/opengl/renderer/logging.cpp b/src/plugins/renderers/opengl/renderer/logging.cpp new file mode 100644 index 000000000..0d6ef1211 --- /dev/null +++ b/src/plugins/renderers/opengl/renderer/logging.cpp @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** 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 { + +namespace OpenGL { + +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 OpenGL + +} // 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..69c125195 --- /dev/null +++ b/src/plugins/renderers/opengl/renderer/logging_p.h @@ -0,0 +1,85 @@ +/**************************************************************************** +** +** 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 { + +namespace OpenGL { + +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 OpenGL + +} // 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..b43815f98 100644 --- a/src/render/renderers/opengl/renderer/openglvertexarrayobject.cpp +++ b/src/plugins/renderers/opengl/renderer/openglvertexarrayobject.cpp @@ -38,15 +38,16 @@ ****************************************************************************/ #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 namespace Qt3DRender { namespace Render { +namespace OpenGL { OpenGLVertexArrayObject::OpenGLVertexArrayObject() : m_ctx(nullptr) @@ -159,6 +160,7 @@ void OpenGLVertexArrayObject::saveVertexAttribute(const SubmissionContext::VAOVe } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/renderer/openglvertexarrayobject_p.h b/src/plugins/renderers/opengl/renderer/openglvertexarrayobject_p.h index 362c699da..ff58b3074 100644 --- a/src/render/renderers/opengl/renderer/openglvertexarrayobject_p.h +++ b/src/plugins/renderers/opengl/renderer/openglvertexarrayobject_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef OPENGLVERTEXARRAYOBJECT_H -#define OPENGLVERTEXARRAYOBJECT_H +#ifndef QT3DRENDER_RENDER_OPENGL_OPENGLVERTEXARRAYOBJECT_H +#define QT3DRENDER_RENDER_OPENGL_OPENGLVERTEXARRAYOBJECT_H // // W A R N I N G @@ -52,7 +52,7 @@ // #include <QtGui/qopenglvertexarrayobject.h> -#include <Qt3DRender/private/submissioncontext_p.h> +#include <submissioncontext_p.h> QT_BEGIN_NAMESPACE @@ -60,11 +60,14 @@ namespace Qt3DRender { namespace Render { class GeometryManager; -class GLShaderManager; typedef QPair<HGeometry, Qt3DCore::QNodeId> VAOIdentifier; -class OpenGLVertexArrayObject +namespace OpenGL { + +class GLShaderManager; + +class Q_AUTOTEST_EXPORT OpenGLVertexArrayObject { public: OpenGLVertexArrayObject(); @@ -103,9 +106,10 @@ private: SubmissionContext::VAOIndexAttribute m_indexAttribute; }; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // OPENGLVERTEXARRAYOBJECT_H +#endif // QT3DRENDER_RENDER_OPENGL_OPENGLVERTEXARRAYOBJECT_H diff --git a/src/render/renderers/opengl/renderer/rendercommand.cpp b/src/plugins/renderers/opengl/renderer/rendercommand.cpp index c6d42fde1..d4da1a41b 100644 --- a/src/render/renderers/opengl/renderer/rendercommand.cpp +++ b/src/plugins/renderers/opengl/renderer/rendercommand.cpp @@ -43,6 +43,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { RenderCommand::RenderCommand() : m_glShader(nullptr) @@ -85,6 +86,7 @@ bool operator==(const RenderCommand &a, const RenderCommand &b) noexcept a.m_isValid == b.m_isValid && a.m_computeCommand == b.m_computeCommand); } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/renderer/rendercommand_p.h b/src/plugins/renderers/opengl/renderer/rendercommand_p.h index 44e34ecfb..123ff232b 100644 --- a/src/render/renderers/opengl/renderer/rendercommand_p.h +++ b/src/plugins/renderers/opengl/renderer/rendercommand_p.h @@ -38,8 +38,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_RENDERCOMMAND_H -#define QT3DRENDER_RENDER_RENDERCOMMAND_H +#ifndef QT3DRENDER_RENDER_OPENGL_RENDERCOMMAND_H +#define QT3DRENDER_RENDER_OPENGL_RENDERCOMMAND_H // // W A R N I N G @@ -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> @@ -72,6 +72,9 @@ namespace Render { class RenderStateSet; using RenderStateSetPtr = QSharedPointer<RenderStateSet>; + +namespace OpenGL { + class GLShader; class Q_AUTOTEST_EXPORT RenderCommand @@ -172,6 +175,7 @@ struct EntityRenderCommandData using EntityRenderCommandDataPtr = QSharedPointer<EntityRenderCommandData>; +} // namespace OpenGL } // namespace Render @@ -179,4 +183,4 @@ using EntityRenderCommandDataPtr = QSharedPointer<EntityRenderCommandData>; QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_RENDERCOMMAND_H +#endif // QT3DRENDER_RENDER_OPENGL_RENDERCOMMAND_H diff --git a/src/render/renderers/opengl/renderer/renderer.cpp b/src/plugins/renderers/opengl/renderer/renderer.cpp index 680040f54..d01f22847 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,36 +71,43 @@ #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> #ifndef Q_OS_INTEGRITY -#include <Qt3DRender/private/imguirenderer_p.h> +#include <imguirenderer_p.h> #endif -#include <Qt3DRender/private/glresourcemanagers_p.h> -#include <Qt3DRender/private/resourceaccessor_p.h> - #include <Qt3DRender/qcameralens.h> #include <Qt3DCore/private/qeventfilterservice_p.h> #include <Qt3DCore/private/qabstractaspectjobmanager_p.h> #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> @@ -122,7 +123,7 @@ #include <QThread> #include <QtGui/private/qopenglcontext_p.h> -#include <Qt3DRender/private/frameprofiler_p.h> +#include "frameprofiler_p.h" QT_BEGIN_NAMESPACE @@ -133,6 +134,7 @@ using namespace Qt3DCore; namespace Qt3DRender { namespace Render { +namespace OpenGL { namespace { @@ -208,7 +210,6 @@ private: } // anonymous - /*! \internal @@ -260,7 +261,7 @@ Renderer::Renderer(QRenderAspect::RenderType type) , m_updateSkinningPaletteJob(Render::UpdateSkinningPaletteJobPtr::create()) , m_updateLevelOfDetailJob(Render::UpdateLevelOfDetailJobPtr::create()) , m_updateMeshTriangleListJob(Render::UpdateMeshTriangleListJobPtr::create()) - , m_filterCompatibleTechniqueJob(Render::FilterCompatibleTechniqueJobPtr::create()) + , m_filterCompatibleTechniqueJob(FilterCompatibleTechniqueJobPtr::create()) , m_updateEntityLayersJob(Render::UpdateEntityLayersJobPtr::create()) , m_lightGathererJob(Render::LightGathererPtr::create()) , m_renderableEntityFilterJob(Render::RenderableEntityFilterPtr::create()) @@ -515,7 +516,8 @@ void Renderer::initialize() ctx->setFormat(sf); } - // Create OpenGL context + // Create OpenGL context<<<<<<< HEAD + if (ctx->create()) qCDebug(Backend) << "OpenGL context created with actual format" << ctx->format(); else @@ -793,18 +795,17 @@ void Renderer::doRender(bool swapBuffers) // RenderQueue is complete (but that means it may be of size 0) if (canSubmit && (queueIsComplete && !queueIsEmpty)) { - const QVector<Render::RenderView *> renderViews = m_renderQueue->nextFrameQueue(); + const QVector<Render::OpenGL::RenderView *> renderViews = m_renderQueue->nextFrameQueue(); QTaskLogger submissionStatsPart1(m_services->systemInformation(), {JobTypes::FrameSubmissionPart1, 0}, QTaskLogger::Submission); QTaskLogger submissionStatsPart2(m_services->systemInformation(), {JobTypes::FrameSubmissionPart2, 0}, QTaskLogger::Submission); - if (canRender()) { { // Scoped to destroy surfaceLock QSurface *surface = nullptr; - for (const Render::RenderView *rv: renderViews) { + for (const RenderView *rv: renderViews) { surface = rv->surface(); if (surface) break; @@ -901,7 +902,7 @@ void Renderer::doRender(bool swapBuffers) // Called by RenderViewJobs // When the frameQueue is complete and we are using a renderThread // we allow the render thread to proceed -void Renderer::enqueueRenderView(Render::RenderView *renderView, int submitOrder) +void Renderer::enqueueRenderView(RenderView *renderView, int submitOrder) { QMutexLocker locker(m_renderQueue->mutex()); // Prevent out of order execution // We cannot use a lock free primitive here because: @@ -1538,7 +1539,7 @@ void Renderer::downloadGLBuffers() // Happens in RenderThread context when all RenderViewJobs are done // Returns the id of the last bound FBO -Renderer::ViewSubmissionResultData Renderer::submitRenderViews(const QVector<Render::RenderView *> &renderViews) +Renderer::ViewSubmissionResultData Renderer::submitRenderViews(const QVector<RenderView *> &renderViews) { QElapsedTimer timer; quint64 queueElapsed = 0; @@ -1554,7 +1555,7 @@ Renderer::ViewSubmissionResultData Renderer::submitRenderViews(const QVector<Ren uint lastBoundFBOId = m_submissionContext->boundFrameBufferObject(); QSurface *surface = nullptr; QSurface *previousSurface = nullptr; - for (const Render::RenderView *rv: renderViews) { + for (const RenderView *rv: renderViews) { previousSurface = rv->surface(); if (previousSurface) break; @@ -2452,6 +2453,7 @@ QVector<Qt3DCore::QAspectJobPtr> Renderer::createRenderBufferJobs() const return dirtyBuffersJobs; } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/renderer/renderer.pri b/src/plugins/renderers/opengl/renderer/renderer.pri index 3e2f9fde9..3e3f83c86 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,9 @@ 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 \ + $$PWD/frameprofiler_p.h diff --git a/src/render/renderers/opengl/renderer/renderer_p.h b/src/plugins/renderers/opengl/renderer/renderer_p.h index e8929e67a..f24e77152 100644 --- a/src/render/renderers/opengl/renderer/renderer_p.h +++ b/src/plugins/renderers/opengl/renderer/renderer_p.h @@ -38,8 +38,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_RENDERER_H -#define QT3DRENDER_RENDER_RENDERER_H +#ifndef QT3DRENDER_RENDER_OPENGL_RENDERER_H +#define QT3DRENDER_RENDER_OPENGL_RENDERER_H // // W A R N I N G @@ -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> @@ -137,15 +139,11 @@ class FrameProfiler; } class CameraLens; -class SubmissionContext; class FrameGraphNode; class Material; class Technique; class Shader; class Entity; -class RenderCommand; -class RenderQueue; -class RenderView; class Effect; class RenderPass; class RenderThread; @@ -153,16 +151,11 @@ class RenderStateSet; class VSyncFrameAdvanceService; class PickEventFilter; class NodeManagers; -class GLResourceManagers; -class GLShader; class ResourceAccessor; class UpdateLevelOfDetailJob; typedef QSharedPointer<UpdateLevelOfDetailJob> UpdateLevelOfDetailJobPtr; -using SynchronizerJobPtr = GenericLambdaJobPtr<std::function<void()>>; -using SynchronizerPostFramePtr = GenericLambdaJobAndPostFramePtr<std::function<void ()>, std::function<void (Qt3DCore::QAspectManager *)>>; - template<typename T, typename ... Ts> class FilterEntityByComponentJob; template<typename T, typename ... Ts> @@ -170,11 +163,24 @@ using FilterEntityByComponentJobPtr = QSharedPointer<FilterEntityByComponentJob< using ComputableEntityFilterPtr = FilterEntityByComponentJobPtr<Render::ComputeCommand, Render::Material>; using RenderableEntityFilterPtr = FilterEntityByComponentJobPtr<Render::GeometryRenderer, Render::Material>; +using SynchronizerJobPtr = GenericLambdaJobPtr<std::function<void()>>; +using SynchronizerPostFramePtr = GenericLambdaJobAndPostFramePtr<std::function<void ()>, std::function<void (Qt3DCore::QAspectManager *)>>; + namespace Debug { class ImGuiRenderer; } -class Q_3DRENDERSHARED_PRIVATE_EXPORT Renderer : public AbstractRenderer +namespace OpenGL { + +class CommandThread; +class SubmissionContext; +class RenderCommand; +class RenderQueue; +class RenderView; +class GLShader; +class GLResourceManagers; + +class Q_AUTOTEST_EXPORT Renderer : public AbstractRenderer { public: explicit Renderer(QRenderAspect::RenderType type); @@ -318,7 +324,7 @@ public: QSurface *surface; }; - ViewSubmissionResultData submitRenderViews(const QVector<Render::RenderView *> &renderViews); + ViewSubmissionResultData submitRenderViews(const QVector<RenderView *> &renderViews); RendererCache *cache() { return &m_cache; } void setScreen(QScreen *scr) override; @@ -469,9 +475,10 @@ private: int m_jobsInLastFrame; }; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_RENDERER_H +#endif // QT3DRENDER_RENDER_OPENGL_RENDERER_H diff --git a/src/render/renderers/opengl/renderer/renderercache_p.h b/src/plugins/renderers/opengl/renderer/renderercache_p.h index 02fe4ff41..6b3946002 100644 --- a/src/render/renderers/opengl/renderer/renderercache_p.h +++ b/src/plugins/renderers/opengl/renderer/renderercache_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_RENDERERCACHE_P_H -#define QT3DRENDER_RENDER_RENDERERCACHE_P_H +#ifndef QT3DRENDER_RENDER_OPENGL_RENDERERCACHE_P_H +#define QT3DRENDER_RENDER_OPENGL_RENDERERCACHE_P_H // // W A R N I N G @@ -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 @@ -64,6 +64,8 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + struct RendererCache { struct LeafNodeData @@ -88,10 +90,12 @@ private: QMutex m_mutex; }; +} // namespace OpenGL + } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_RENDERERCACHE_P_H +#endif // QT3DRENDER_RENDER_OPENGL_RENDERERCACHE_P_H diff --git a/src/render/renderers/opengl/renderer/renderqueue.cpp b/src/plugins/renderers/opengl/renderer/renderqueue.cpp index bd9d3ee59..15b89da30 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 @@ -47,6 +47,8 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + RenderQueue::RenderQueue() : m_noRender(false) , m_wasReset(true) @@ -126,6 +128,8 @@ bool RenderQueue::isFrameQueueComplete() const || (m_targetRenderViewCount > 0 && m_targetRenderViewCount == m_currentRenderViewCount)); } +} // namespace OpenGL + } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/renderer/renderqueue_p.h b/src/plugins/renderers/opengl/renderer/renderqueue_p.h index e565115f2..0dcf7b8ee 100644 --- a/src/render/renderers/opengl/renderer/renderqueue_p.h +++ b/src/plugins/renderers/opengl/renderer/renderqueue_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_RENDERQUEUE_H -#define QT3DRENDER_RENDER_RENDERQUEUE_H +#ifndef QT3DRENDER_RENDER_OPENGL_RENDERQUEUE_H +#define QT3DRENDER_RENDER_OPENGL_RENDERQUEUE_H // // W A R N I N G @@ -61,6 +61,8 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + class RenderView; class Q_AUTOTEST_EXPORT RenderQueue @@ -93,10 +95,12 @@ private: QMutex m_mutex; }; +} // namespace OpenGL + } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_RENDERQUEUE_H +#endif // QT3DRENDER_RENDER_OPENGL_RENDERQUEUE_H diff --git a/src/render/renderers/opengl/renderer/renderview.cpp b/src/plugins/renderers/opengl/renderer/renderview.cpp index 6b6de01a7..f18f1a06a 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> @@ -83,6 +85,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { namespace { @@ -1230,6 +1233,7 @@ void RenderView::setIsDownloadBuffersEnable(bool isDownloadBuffersEnable) m_isDownloadBuffersEnable = isDownloadBuffersEnable; } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/renderer/renderview_p.h b/src/plugins/renderers/opengl/renderer/renderview_p.h index f00228c84..a835c17f0 100644 --- a/src/render/renderers/opengl/renderer/renderview_p.h +++ b/src/plugins/renderers/opengl/renderer/renderview_p.h @@ -38,8 +38,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_RENDERVIEW_H -#define QT3DRENDER_RENDER_RENDERVIEW_H +#ifndef QT3DRENDER_RENDER_OPENGL_RENDERVIEW_H +#define QT3DRENDER_RENDER_OPENGL_RENDERVIEW_H // // W A R N I N G @@ -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> @@ -86,31 +86,21 @@ class QRenderPass; namespace Render { -class Renderer; class NodeManagers; -class RenderCommand; class RenderPassFilter; class TechniqueFilter; class ViewportNode; class Effect; class RenderPass; +namespace OpenGL { + +class Renderer; +class RenderCommand; + 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; @@ -402,9 +392,10 @@ private: const QString &structName) const; }; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_RENDERVIEW_H +#endif // QT3DRENDER_RENDER_OPENGL_ENDERVIEW_H diff --git a/src/render/renderers/opengl/renderer/renderviewbuilder.cpp b/src/plugins/renderers/opengl/renderer/renderviewbuilder.cpp index 4034af146..1e16209c6 100644 --- a/src/render/renderers/opengl/renderer/renderviewbuilder.cpp +++ b/src/plugins/renderers/opengl/renderer/renderviewbuilder.cpp @@ -46,6 +46,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { // In some cases having less jobs is better (especially on fast cpus where // splitting just adds more overhead). Ideally, we should try to set the value @@ -554,7 +555,7 @@ void RenderViewBuilder::prepareJobs() m_renderViewCommandBuilderJobs.reserve(RenderViewBuilder::m_optimalParallelJobCount); for (auto i = 0; i < RenderViewBuilder::m_optimalParallelJobCount; ++i) { - auto renderViewCommandBuilder = Render::RenderViewCommandBuilderJobPtr::create(); + auto renderViewCommandBuilder = Render::OpenGL::RenderViewCommandBuilderJobPtr::create(); m_renderViewCommandBuilderJobs.push_back(renderViewCommandBuilder); } m_syncRenderViewPreCommandBuildingJob = SynchronizerJobPtr::create(SyncPreCommandBuilding(m_renderViewJob, @@ -572,7 +573,7 @@ void RenderViewBuilder::prepareJobs() // Estimate the number of jobs to create based on the number of entities m_renderViewCommandUpdaterJobs.reserve(RenderViewBuilder::m_optimalParallelJobCount); for (auto i = 0; i < RenderViewBuilder::m_optimalParallelJobCount; ++i) { - auto renderViewCommandUpdater = Render::RenderViewCommandUpdaterJobPtr::create(); + auto renderViewCommandUpdater = Render::OpenGL::RenderViewCommandUpdaterJobPtr::create(); renderViewCommandUpdater->setRenderer(m_renderer); m_renderViewCommandUpdaterJobs.push_back(renderViewCommandUpdater); } @@ -584,7 +585,7 @@ void RenderViewBuilder::prepareJobs() const int lastRemaingElements = materialHandles.size() % RenderViewBuilder::m_optimalParallelJobCount; m_materialGathererJobs.reserve(RenderViewBuilder::m_optimalParallelJobCount); for (auto i = 0; i < RenderViewBuilder::m_optimalParallelJobCount; ++i) { - auto materialGatherer = Render::MaterialParameterGathererJobPtr::create(); + auto materialGatherer = MaterialParameterGathererJobPtr::create(); materialGatherer->setNodeManagers(m_renderer->nodeManagers()); if (i == RenderViewBuilder::m_optimalParallelJobCount - 1) materialGatherer->setHandles(materialHandles.mid(i * elementsPerJob, elementsPerJob + lastRemaingElements)); @@ -796,6 +797,8 @@ QVector<Entity *> RenderViewBuilder::entitiesInSubset(const QVector<Entity *> &e return intersection; } +} // OpenGL + } // Render } // Qt3DRender diff --git a/src/render/renderers/opengl/renderer/renderviewbuilder_p.h b/src/plugins/renderers/opengl/renderer/renderviewbuilder_p.h index a2ab80e7e..98202670e 100644 --- a/src/render/renderers/opengl/renderer/renderviewbuilder_p.h +++ b/src/plugins/renderers/opengl/renderer/renderviewbuilder_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_RENDERVIEWBUILDER_H -#define QT3DRENDER_RENDER_RENDERVIEWBUILDER_H +#ifndef QT3DRENDER_RENDER_OPENGL_RENDERVIEWBUILDER_H +#define QT3DRENDER_RENDER_OPENGL_RENDERVIEWBUILDER_H // // W A R N I N G @@ -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 @@ -69,6 +70,8 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + class Renderer; using SynchronizerJobPtr = GenericLambdaJobPtr<std::function<void()>>; @@ -138,10 +141,12 @@ private: static const int m_optimalParallelJobCount; }; +} // OpenGL + } // Render } // Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_RENDERVIEWBUILDER_H +#endif // QT3DRENDER_RENDER_OPENGL_RENDERVIEWBUILDER_H diff --git a/src/render/renderers/opengl/renderer/shaderparameterpack.cpp b/src/plugins/renderers/opengl/renderer/shaderparameterpack.cpp index 1cfb59343..8c509f804 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> @@ -54,6 +54,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { ShaderParameterPack::~ShaderParameterPack() { @@ -106,6 +107,7 @@ void ShaderParameterPack::setSubmissionUniform(const ShaderUniform &uniform) m_submissionUniforms.push_back(uniform); } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/renderer/shaderparameterpack_p.h b/src/plugins/renderers/opengl/renderer/shaderparameterpack_p.h index cb599124c..d658d223b 100644 --- a/src/render/renderers/opengl/renderer/shaderparameterpack_p.h +++ b/src/plugins/renderers/opengl/renderer/shaderparameterpack_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_SHADERPARAMETERPACK_P_H -#define QT3DRENDER_RENDER_SHADERPARAMETERPACK_P_H +#ifndef QT3DRENDER_RENDER_OPENGL_SHADERPARAMETERPACK_P_H +#define QT3DRENDER_RENDER_OPENGL_SHADERPARAMETERPACK_P_H // // W A R N I N G @@ -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 @@ -70,6 +70,7 @@ class QFrameAllocator; namespace Qt3DRender { namespace Render { +namespace OpenGL { class GraphicsContext; @@ -79,14 +80,14 @@ struct BlockToUBO { bool m_needsUpdate; QHash<QString, QVariant> m_updatedProperties; }; -QT3D_DECLARE_TYPEINFO_2(Qt3DRender, Render, BlockToUBO, Q_MOVABLE_TYPE) +QT3D_DECLARE_TYPEINFO_3(Qt3DRender, Render, OpenGL, BlockToUBO, Q_MOVABLE_TYPE) struct BlockToSSBO { int m_blockIndex; int m_bindingIndex; Qt3DCore::QNodeId m_bufferID; }; -QT3D_DECLARE_TYPEINFO_2(Qt3DRender, Render, BlockToSSBO, Q_PRIMITIVE_TYPE) +QT3D_DECLARE_TYPEINFO_3(Qt3DRender, Render, OpenGL, BlockToSSBO, Q_PRIMITIVE_TYPE) struct PackUniformHash @@ -209,13 +210,14 @@ private: friend class RenderView; }; -QT3D_DECLARE_TYPEINFO_2(Qt3DRender, Render, ShaderParameterPack::NamedResource, Q_PRIMITIVE_TYPE) +QT3D_DECLARE_TYPEINFO_3(Qt3DRender, Render, OpenGL, ShaderParameterPack::NamedResource, Q_PRIMITIVE_TYPE) +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -Q_DECLARE_METATYPE(Qt3DRender::Render::ShaderParameterPack) +Q_DECLARE_METATYPE(Qt3DRender::Render::OpenGL::ShaderParameterPack) -#endif // QT3DRENDER_RENDER_SHADERPARAMETERPACK_P_H +#endif // QT3DRENDER_RENDER_OPENGL_SHADERPARAMETERPACK_P_H diff --git a/src/render/renderers/opengl/renderer/shadervariables_p.h b/src/plugins/renderers/opengl/renderer/shadervariables_p.h index e0fa07dff..94ea9b7e0 100644 --- a/src/render/renderers/opengl/renderer/shadervariables_p.h +++ b/src/plugins/renderers/opengl/renderer/shadervariables_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_SHADERVARIABLES_P_H -#define QT3DRENDER_RENDER_SHADERVARIABLES_P_H +#ifndef QT3DRENDER_RENDER_OPENGL_SHADERVARIABLES_P_H +#define QT3DRENDER_RENDER_OPENGL_SHADERVARIABLES_P_H // // W A R N I N G @@ -60,6 +60,8 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + struct ShaderAttribute { ShaderAttribute() @@ -75,9 +77,9 @@ struct ShaderAttribute int m_size; int m_location; }; -QT3D_DECLARE_TYPEINFO_2(Qt3DRender, Render, ShaderAttribute, Q_MOVABLE_TYPE) +QT3D_DECLARE_TYPEINFO_3(Qt3DRender, Render, OpenGL, ShaderAttribute, Q_MOVABLE_TYPE) -struct ShaderUniform +struct Q_AUTOTEST_EXPORT ShaderUniform { ShaderUniform() : m_nameId(-1) @@ -103,9 +105,9 @@ struct ShaderUniform uint m_rawByteSize; // contains byte size (size / type / strides) // size, offset and strides are in bytes }; -QT3D_DECLARE_TYPEINFO_2(Qt3DRender, Render, ShaderUniform, Q_MOVABLE_TYPE) +QT3D_DECLARE_TYPEINFO_3(Qt3DRender, Render, OpenGL, ShaderUniform, Q_MOVABLE_TYPE) -struct ShaderUniformBlock +struct Q_AUTOTEST_EXPORT ShaderUniformBlock { ShaderUniformBlock() : m_nameId(-1) @@ -122,9 +124,9 @@ struct ShaderUniformBlock int m_activeUniformsCount; int m_size; }; -QT3D_DECLARE_TYPEINFO_2(Qt3DRender, Render, ShaderUniformBlock, Q_MOVABLE_TYPE) +QT3D_DECLARE_TYPEINFO_3(Qt3DRender, Render, OpenGL, ShaderUniformBlock, Q_MOVABLE_TYPE) -struct ShaderStorageBlock +struct Q_AUTOTEST_EXPORT ShaderStorageBlock { ShaderStorageBlock() : m_nameId(-1) @@ -141,7 +143,9 @@ struct ShaderStorageBlock int m_size; int m_activeVariablesCount; }; -QT3D_DECLARE_TYPEINFO_2(Qt3DRender, Render, ShaderStorageBlock, Q_MOVABLE_TYPE) +QT3D_DECLARE_TYPEINFO_3(Qt3DRender, Render, OpenGL, ShaderStorageBlock, Q_MOVABLE_TYPE) + +} // namespace OpenGL } // namespace Render @@ -149,4 +153,4 @@ QT3D_DECLARE_TYPEINFO_2(Qt3DRender, Render, ShaderStorageBlock, Q_MOVABLE_TYPE) QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_SHADERVARIABLES_P_H +#endif // QT3DRENDER_RENDER_OPENGL_SHADERVARIABLES_P_H diff --git a/src/render/renderers/opengl/textures/gltexture.cpp b/src/plugins/renderers/opengl/textures/gltexture.cpp index 20e6007a0..11b43e085 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> @@ -66,6 +66,7 @@ using namespace Qt3DCore; namespace Qt3DRender { namespace Render { +namespace OpenGL { namespace { @@ -766,6 +767,7 @@ void GLTexture::introspectPropertiesFromSharedTextureId() gl->glBindTexture(m_properties.target, 0); } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/textures/gltexture_p.h b/src/plugins/renderers/opengl/textures/gltexture_p.h index ca851712d..576ef5001 100644 --- a/src/render/renderers/opengl/textures/gltexture_p.h +++ b/src/plugins/renderers/opengl/textures/gltexture_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_GLTEXTURE_H -#define QT3DRENDER_RENDER_GLTEXTURE_H +#ifndef QT3DRENDER_RENDER_OPENGL_GLTEXTURE_H +#define QT3DRENDER_RENDER_OPENGL_GLTEXTURE_H // // W A R N I N G @@ -69,9 +69,14 @@ class QOpenGLTexture; namespace Qt3DRender { namespace Render { +template<class APITexture, class APITextureImage> +class APITextureManager; + class TextureImageManager; class TextureDataManager; class TextureImageDataManager; + +namespace OpenGL { class RenderBuffer; /** @@ -258,9 +263,10 @@ private: bool m_wasTextureRecreated; }; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_GLTEXTURE_H +#endif // QT3DRENDER_RENDER_OPENGL_GLTEXTURE_H diff --git a/src/render/renderers/opengl/textures/renderbuffer.cpp b/src/plugins/renderers/opengl/textures/renderbuffer.cpp index bc5050f73..05d6bd1fa 100644 --- a/src/render/renderers/opengl/textures/renderbuffer.cpp +++ b/src/plugins/renderers/opengl/textures/renderbuffer.cpp @@ -38,13 +38,14 @@ ****************************************************************************/ #include "renderbuffer_p.h" -#include <QtGui/QOpenGLContext> -#include <QtGui/QOpenGLFunctions> +#include <QOpenGLContext> +#include <QOpenGLFunctions> QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { +namespace OpenGL { RenderBuffer::RenderBuffer(int width, int height, QAbstractTexture::TextureFormat format) : m_size(width, height), @@ -106,6 +107,7 @@ void RenderBuffer::release() m_context->functions()->glBindRenderbuffer(GL_RENDERBUFFER, 0); } +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender diff --git a/src/render/renderers/opengl/textures/renderbuffer_p.h b/src/plugins/renderers/opengl/textures/renderbuffer_p.h index 7dc62492a..16fc90e67 100644 --- a/src/render/renderers/opengl/textures/renderbuffer_p.h +++ b/src/plugins/renderers/opengl/textures/renderbuffer_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_RENDER_RENDERBUFFER_P_H -#define QT3DRENDER_RENDER_RENDERBUFFER_P_H +#ifndef QT3DRENDER_RENDER_OPENGL_RENDERBUFFER_P_H +#define QT3DRENDER_RENDER_OPENGL_RENDERBUFFER_P_H // // W A R N I N G @@ -59,6 +59,7 @@ class QOpenGLContext; namespace Qt3DRender { namespace Render { +namespace OpenGL { class Q_AUTOTEST_EXPORT RenderBuffer { @@ -82,9 +83,10 @@ private: QOpenGLContext *m_context; }; +} // namespace OpenGL } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_RENDER_RENDERBUFFER_P_H +#endif // QT3DRENDER_RENDER_OPENGL_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/imports/scene3d/scene3drenderer.cpp b/src/quick3d/imports/scene3d/scene3drenderer.cpp index fafeeedf4..71cf6c240 100644 --- a/src/quick3d/imports/scene3d/scene3drenderer.cpp +++ b/src/quick3d/imports/scene3d/scene3drenderer.cpp @@ -42,8 +42,8 @@ #include <Qt3DCore/qaspectengine.h> #include <Qt3DRender/qrenderaspect.h> #include <QtCore/qthread.h> -#include <QtGui/qopenglcontext.h> -#include <QtGui/qopenglframebufferobject.h> +#include <qopenglcontext.h> +#include <qopenglframebufferobject.h> #include <QtQuick/qquickwindow.h> #include <Qt3DRender/private/qrenderaspect_p.h> diff --git a/src/quick3d/imports/scene3d/scene3dsgmaterialshader.cpp b/src/quick3d/imports/scene3d/scene3dsgmaterialshader.cpp index cfe39e8c7..b7dd03810 100644 --- a/src/quick3d/imports/scene3d/scene3dsgmaterialshader.cpp +++ b/src/quick3d/imports/scene3d/scene3dsgmaterialshader.cpp @@ -39,8 +39,8 @@ #include "scene3dsgmaterialshader_p.h" -#include <QtGui/qopenglcontext.h> -#include <QtGui/qopenglfunctions.h> +#include <qopenglcontext.h> +#include <qopenglfunctions.h> #include <QtGui/qsurfaceformat.h> #include <scene3dsgmaterial_p.h> diff --git a/src/quick3d/quick3dextras/qt3dquickwindow.cpp b/src/quick3d/quick3dextras/qt3dquickwindow.cpp index 043aca8b9..dfe245936 100644 --- a/src/quick3d/quick3dextras/qt3dquickwindow.cpp +++ b/src/quick3d/quick3dextras/qt3dquickwindow.cpp @@ -60,7 +60,7 @@ #include <Qt3DRender/qrendersurfaceselector.h> #include <QtGui/QGuiApplication> #include <QtGui/QScreen> -#include <QtGui/qopenglcontext.h> +#include <qopenglcontext.h> #include <QtQml/QQmlContext> #include <QtQml/qqmlincubator.h> 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/abstractrenderer_p.h b/src/render/backend/abstractrenderer_p.h index 3febf691e..4e25d627f 100644 --- a/src/render/backend/abstractrenderer_p.h +++ b/src/render/backend/abstractrenderer_p.h @@ -58,7 +58,7 @@ #include <Qt3DCore/qnodeid.h> #include <QtGui/qsurfaceformat.h> -#include <QtGui/qopenglcontext.h> +#include <qopenglcontext.h> QT_BEGIN_NAMESPACE 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..4e46aa65b 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 \ @@ -32,13 +31,11 @@ HEADERS += \ $$PWD/backendnode_p.h \ $$PWD/rendertargetoutput_p.h \ $$PWD/uniform_p.h \ - $$PWD/frameprofiler_p.h \ $$PWD/offscreensurfacehelper_p.h \ $$PWD/resourceaccessor_p.h \ $$PWD/visitorutils_p.h \ $$PWD/segmentsvisitor_p.h \ $$PWD/pointsvisitor_p.h \ - $$PWD/commandexecuter_p.h \ $$PWD/apishadermanager_p.h SOURCES += \ @@ -69,5 +66,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 317fca957..af1ee58ec 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 55bede5fd..92d7ae2f1 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/nopicking_p.h b/src/render/framegraph/nopicking_p.h index 4ecf6e33b..f72090ef6 100644 --- a/src/render/framegraph/nopicking_p.h +++ b/src/render/framegraph/nopicking_p.h @@ -39,6 +39,7 @@ #ifndef QT3DRENDER_RENDER_NOPICKING_P_H #define QT3DRENDER_RENDER_NOPICKING_P_H + // // W A R N I N G // ------------- 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 d8551fd1b..fc366b891 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> @@ -103,7 +105,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> @@ -165,6 +167,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> @@ -599,8 +603,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); @@ -689,6 +694,27 @@ 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 QByteArray envTarget = qgetenv("QT3D_RENDERER"); + const QString targetKey = !envTarget.isEmpty() ? QString::fromLatin1(envTarget) : QStringLiteral("opengl"); + const QStringList keys = Render::QRendererPluginFactory::keys(); + for (const QString &key : keys) { + if (key != targetKey) + continue; + Render::AbstractRenderer *renderer = Render::QRendererPluginFactory::create(key, m_renderType); + if (renderer) + return renderer; + } + const QByteArray targetKeyName = targetKey.toLatin1(); + qFatal("Unable to find renderer plugin for %s", targetKeyName.constData()); + 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 0a9f4ec46..0eb04cee9 100644 --- a/src/render/frontend/qrenderaspect_p.h +++ b/src/render/frontend/qrenderaspect_p.h @@ -99,6 +99,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/gltfskeletonloader.cpp b/src/render/geometry/gltfskeletonloader.cpp index 07789cd84..d5d344ce1 100644 --- a/src/render/geometry/gltfskeletonloader.cpp +++ b/src/render/geometry/gltfskeletonloader.cpp @@ -36,7 +36,7 @@ #include "gltfskeletonloader_p.h" -#include <QtGui/qopengl.h> +#include <qopengl.h> #include <QtCore/qdir.h> #include <QtCore/qfile.h> #include <QtCore/qfileinfo.h> 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..eddea12e8 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> @@ -69,9 +68,6 @@ void FrameCleanupJob::setRoot(Entity *root) void FrameCleanupJob::run() { - // mark each ShaderData clean - ShaderData::cleanup(m_managers); - // Debug bounding volume debug updateBoundingVolumesDebug(m_root); } 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 d377ef039..8a14255a8 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 d0069bb4a..94e30a2c0 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> @@ -167,6 +166,12 @@ void Shader::initializeFromReference(const Shader &other) setLog(other.log()); } +// Called by renderer plugin when loading a GL Shader plugins +void Shader::requestCacheRebuild() +{ + markDirty(AbstractRenderer::MaterialDirty); +} + void Shader::setLog(const QString &log) { m_log = log; diff --git a/src/render/materialsystem/shader_p.h b/src/render/materialsystem/shader_p.h index 23d57f25d..5eccc7510 100644 --- a/src/render/materialsystem/shader_p.h +++ b/src/render/materialsystem/shader_p.h @@ -66,7 +66,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; @@ -114,20 +114,22 @@ public: inline bool requiresFrontendSync() const { return m_requiresFrontendSync; } inline void unsetRequiresFrontendSync() { m_requiresFrontendSync = false; } + // Set by Renderer plugin + void setLog(const QString &log); + void setStatus(QShaderProgram::Status status); + void initializeFromReference(const Shader &other); + + void requestCacheRebuild(); + private: QVector<QByteArray> m_shaderCode; QString m_log; - QShaderProgram::Status m_status; bool m_requiresFrontendSync; + QShaderProgram::Status m_status; QShaderProgram::Format m_format; bool m_dirty; - void initializeFromReference(const Shader &other); - void setLog(const QString &log); - void setStatus(QShaderProgram::Status status); - - friend class GraphicsContext; }; #ifndef QT_NO_DEBUG_STREAM diff --git a/src/render/materialsystem/shaderdata.cpp b/src/render/materialsystem/shaderdata.cpp index 34d4641e9..67c8f35f7 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 @@ -164,11 +161,6 @@ ShaderData *ShaderData::lookupResource(QNodeId id) return ShaderData::lookupResource(m_managers, id); } -void ShaderData::cleanup(NodeManagers *managers) -{ - Q_UNUSED(managers) -} - // RenderCommand updater jobs QVariant ShaderData::getTransformedProperty(const QString &name, const Matrix4x4 &viewMatrix) { diff --git a/src/render/materialsystem/shaderdata_p.h b/src/render/materialsystem/shaderdata_p.h index c9cc22939..5c6352eba 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 { @@ -95,13 +94,15 @@ public: // Unit tests purposes only TransformType propertyTransformType(const QString &name) const; - // Called by FrameCleanupJob - static void cleanup(NodeManagers *managers); - void setManagers(NodeManagers *managers); void syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstTime) override; +#ifdef Q_OS_WIN + // To get MSVC to compile even though we don't need any cleanup + void cleanup() {} +#endif + protected: PropertyReaderInterfacePtr m_propertyReader; 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 f8d44151f..bf7ef072f 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 DEFINES += BUILD_QT3D_MODULE @@ -19,7 +18,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 @@ -40,14 +38,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/opengl.pri b/src/render/renderers/opengl/opengl.pri deleted file mode 100644 index ad9d5c79a..000000000 --- a/src/render/renderers/opengl/opengl.pri +++ /dev/null @@ -1,15 +0,0 @@ - -include (renderer/renderer.pri) -include (jobs/jobs.pri) -include (io/io.pri) -include (textures/textures.pri) -include (graphicshelpers/graphicshelpers.pri) -include (renderstates/renderstates.pri) -include (managers/managers.pri) - -!integrity: include (debug/debug.pri) - -gcov { - QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage - QMAKE_LFLAGS += -fprofile-arcs -ftest-coverage -} 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..604046e00 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(); @@ -67,7 +67,6 @@ public: StateMask type() const { return m_impl.type; } StateVariant impl() const { return m_impl; } -protected: void cleanup(); private: 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..119f1edca 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(); @@ -112,7 +112,7 @@ private: }; template<> -void RenderStateSet::addState<StateVariant>(const StateVariant &state); +Q_3DRENDERSHARED_PRIVATE_EXPORT void RenderStateSet::addState<StateVariant>(const StateVariant &state); } // namespace Render } // namespace Qt3DRender 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.h b/src/render/texture/qtextureimagedata.h index 68ceebabc..5bc71480e 100644 --- a/src/render/texture/qtextureimagedata.h +++ b/src/render/texture/qtextureimagedata.h @@ -40,7 +40,7 @@ #ifndef QT3DRENDER_TEXTUREIMAGEDATA_H #define QT3DRENDER_TEXTUREIMAGEDATA_H -#include <QtGui/QOpenGLTexture> +#include <QOpenGLTexture> #include <QtGui/QImage> #include <QtCore/QSharedPointer> #include <Qt3DRender/qt3drender_global.h> 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/core/qresourcemanager/tst_qresourcemanager.cpp b/tests/auto/core/qresourcemanager/tst_qresourcemanager.cpp index 9a387a919..a41ea83b5 100644 --- a/tests/auto/core/qresourcemanager/tst_qresourcemanager.cpp +++ b/tests/auto/core/qresourcemanager/tst_qresourcemanager.cpp @@ -50,6 +50,7 @@ private slots: void heavyDutyMultiThreadedAccessRelease(); void collectResources(); void activeHandles(); + void checkCleanup(); }; class tst_ArrayResource @@ -422,6 +423,26 @@ void tst_QResourceManager::activeHandles() } } +void tst_QResourceManager::checkCleanup() +{ + // GIVEN + Qt3DCore::QResourceManager<tst_ArrayResource, uint> manager; + + // WHEN + tHandle newHandle = manager.getOrAcquireHandle(883U); + tst_ArrayResource *data = manager.data(newHandle); + + data->m_value.ref(); + // THEN + QCOMPARE(data->m_value.load(), 1); + + // WHEN + manager.release(newHandle); + + // THEN + QCOMPARE(data->m_value.load(), 0); +} + diff --git a/tests/auto/extras/qcuboidgeometry/tst_qcuboidgeometry.cpp b/tests/auto/extras/qcuboidgeometry/tst_qcuboidgeometry.cpp index 973a1d613..838e5dea9 100644 --- a/tests/auto/extras/qcuboidgeometry/tst_qcuboidgeometry.cpp +++ b/tests/auto/extras/qcuboidgeometry/tst_qcuboidgeometry.cpp @@ -32,7 +32,7 @@ #include <Qt3DRender/qattribute.h> #include <Qt3DRender/qbuffer.h> #include <Qt3DRender/qbufferdatagenerator.h> -#include <QtGui/qopenglcontext.h> +#include <qopenglcontext.h> #include <QtGui/qvector2d.h> #include <QtGui/qvector3d.h> #include <QtGui/qvector4d.h> diff --git a/tests/auto/extras/qtorusgeometry/tst_qtorusgeometry.cpp b/tests/auto/extras/qtorusgeometry/tst_qtorusgeometry.cpp index 28fe76ae9..bf5651c9c 100644 --- a/tests/auto/extras/qtorusgeometry/tst_qtorusgeometry.cpp +++ b/tests/auto/extras/qtorusgeometry/tst_qtorusgeometry.cpp @@ -32,7 +32,7 @@ #include <Qt3DRender/qattribute.h> #include <Qt3DRender/qbuffer.h> #include <Qt3DRender/qbufferdatagenerator.h> -#include <QtGui/qopenglcontext.h> +#include <qopenglcontext.h> #include <QtGui/qvector2d.h> #include <QtGui/qvector3d.h> #include <QtGui/qvector4d.h> 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..3caf11c8f --- /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::OpenGL::Renderer +{ +public: + tst_Renderer() + : Qt3DRender::Render::OpenGL::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 618709269..e5c34f804 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 @@ -116,9 +116,9 @@ public: renderer()->submissionContext()->beginDrawing(m_window.data()); } - Render::Renderer *renderer() const + Render::OpenGL::Renderer *renderer() const { - return static_cast<Render::Renderer *>(d_func()->m_renderer); + return static_cast<Render::OpenGL::Renderer *>(d_func()->m_renderer); } void onRegistered() { QRenderAspect::onRegistered(); } @@ -196,7 +196,7 @@ private Q_SLOTS: void checkInitialState() { // GIVEN - Qt3DRender::Render::FilterCompatibleTechniqueJob backendFilterCompatibleTechniqueJob; + Qt3DRender::Render::OpenGL::FilterCompatibleTechniqueJob backendFilterCompatibleTechniqueJob; // THEN QVERIFY(backendFilterCompatibleTechniqueJob.manager() == nullptr); @@ -204,7 +204,7 @@ private Q_SLOTS: // WHEN Qt3DRender::Render::TechniqueManager techniqueManager; - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); backendFilterCompatibleTechniqueJob.setManager(&techniqueManager); backendFilterCompatibleTechniqueJob.setRenderer(&renderer); @@ -218,7 +218,7 @@ private Q_SLOTS: void checkRunRendererRunning() { // GIVEN - Qt3DRender::Render::FilterCompatibleTechniqueJob backendFilterCompatibleTechniqueJob; + Qt3DRender::Render::OpenGL::FilterCompatibleTechniqueJob backendFilterCompatibleTechniqueJob; Qt3DRender::TestAspect testAspect(buildTestScene()); const bool unableToCreateContext = !testAspect.contextCreationSuccessful(); 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..6a5bc87ea 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" @@ -46,7 +46,7 @@ private Q_SLOTS: void tst_GLShaderManager::adopt() { // GIVEN - Qt3DRender::Render::GLShaderManager cache; + Qt3DRender::Render::OpenGL::GLShaderManager cache; Qt3DRender::QShaderProgram frontendShader1; Qt3DRender::QShaderProgram frontendShader2; TestRenderer renderer; @@ -64,7 +64,7 @@ void tst_GLShaderManager::adopt() QVERIFY(backendShaderNode1.peerId() != backendShaderNode2.peerId()); // WHEN - Qt3DRender::Render::GLShader *glShader1 = cache.createOrAdoptExisting(&backendShaderNode1); + Qt3DRender::Render::OpenGL::GLShader *glShader1 = cache.createOrAdoptExisting(&backendShaderNode1); // THEN QVERIFY(glShader1 != nullptr); @@ -73,7 +73,7 @@ void tst_GLShaderManager::adopt() QCOMPARE(shaderNodeIds.first(), backendShaderNode1.peerId()); // WHEN - Qt3DRender::Render::GLShader *glShader2 = cache.createOrAdoptExisting(&backendShaderNode2); + Qt3DRender::Render::OpenGL::GLShader *glShader2 = cache.createOrAdoptExisting(&backendShaderNode2); // THEN QCOMPARE(glShader1, glShader2); @@ -87,7 +87,7 @@ void tst_GLShaderManager::adopt() void tst_GLShaderManager::lookupResource() { // GIVEN - Qt3DRender::Render::GLShaderManager cache; + Qt3DRender::Render::OpenGL::GLShaderManager cache; Qt3DRender::QShaderProgram frontendShader1; Qt3DRender::QShaderProgram frontendShader2; TestRenderer renderer; @@ -104,8 +104,8 @@ void tst_GLShaderManager::lookupResource() cache.createOrAdoptExisting(&backendShaderNode2); // THEN - Qt3DRender::Render::GLShader *glShader1 = cache.lookupResource(backendShaderNode1.peerId()); - Qt3DRender::Render::GLShader *glShader2 = cache.lookupResource(backendShaderNode2.peerId()); + Qt3DRender::Render::OpenGL::GLShader *glShader1 = cache.lookupResource(backendShaderNode1.peerId()); + Qt3DRender::Render::OpenGL::GLShader *glShader2 = cache.lookupResource(backendShaderNode2.peerId()); QVERIFY(glShader1 != nullptr); QCOMPARE(glShader1, glShader2); const QVector<Qt3DCore::QNodeId> shaderNodeIds = cache.shaderIdsForProgram(glShader1); @@ -117,7 +117,7 @@ void tst_GLShaderManager::lookupResource() void tst_GLShaderManager::abandon() { // GIVEN - Qt3DRender::Render::GLShaderManager cache; + Qt3DRender::Render::OpenGL::GLShaderManager cache; Qt3DRender::QShaderProgram frontendShader1; Qt3DRender::QShaderProgram frontendShader2; TestRenderer renderer; @@ -132,7 +132,7 @@ void tst_GLShaderManager::abandon() cache.createOrAdoptExisting(&backendShaderNode2); // WHEN - Qt3DRender::Render::GLShader *glShader = cache.lookupResource(backendShaderNode1.peerId()); + Qt3DRender::Render::OpenGL::GLShader *glShader = cache.lookupResource(backendShaderNode1.peerId()); cache.abandon(glShader, &backendShaderNode1); // THEN @@ -147,7 +147,7 @@ void tst_GLShaderManager::abandon() // THEN shaderNodeIds = cache.shaderIdsForProgram(glShader); QCOMPARE(shaderNodeIds.size(), 0); - const QVector<Qt3DRender::Render::GLShader *> releasedShaders = cache.takeAbandonned(); + const QVector<Qt3DRender::Render::OpenGL::GLShader *> releasedShaders = cache.takeAbandonned(); QCOMPARE(releasedShaders.size(), 1); QCOMPARE(releasedShaders.first(), glShader); } @@ -155,7 +155,7 @@ void tst_GLShaderManager::abandon() void tst_GLShaderManager::insertAfterRemoval() { // GIVEN - Qt3DRender::Render::GLShaderManager cache; + Qt3DRender::Render::OpenGL::GLShaderManager cache; Qt3DRender::QShaderProgram frontendShader; TestRenderer renderer; Qt3DRender::Render::Shader backendShaderNode; @@ -165,8 +165,8 @@ void tst_GLShaderManager::insertAfterRemoval() simulateInitialization(&frontendShader, &backendShaderNode); // WHEN - Qt3DRender::Render::GLShader *apiShader1 = cache.createOrAdoptExisting(&backendShaderNode); - const Qt3DRender::Render::GLShader *originalApiShader = apiShader1; + Qt3DRender::Render::OpenGL::GLShader *apiShader1 = cache.createOrAdoptExisting(&backendShaderNode); + const Qt3DRender::Render::OpenGL::GLShader *originalApiShader = apiShader1; // THEN auto apiShader2 = cache.lookupResource(frontendShader.id()); @@ -179,7 +179,7 @@ void tst_GLShaderManager::insertAfterRemoval() cache.abandon(apiShader1, &backendShaderNode); // THEN - Qt3DRender::Render::GLShader *apiShaderEmpty = cache.lookupResource(frontendShader.id()); + Qt3DRender::Render::OpenGL::GLShader *apiShaderEmpty = cache.lookupResource(frontendShader.id()); QVERIFY(apiShaderEmpty == nullptr); // WHEN 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..5a1d22283 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> @@ -47,6 +47,7 @@ QT_BEGIN_NAMESPACE using namespace Qt3DRender; using namespace Qt3DRender::Render; +using namespace Qt3DRender::Render::OpenGL; namespace { 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..08c30dc15 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> @@ -43,6 +43,7 @@ using namespace Qt3DRender; using namespace Qt3DRender::Render; +using namespace Qt3DRender::Render::OpenGL; namespace { 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..b463e6236 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> @@ -42,6 +42,7 @@ using namespace Qt3DRender; using namespace Qt3DRender::Render; +using namespace Qt3DRender::Render::OpenGL; namespace { 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..8f86f38ce 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> @@ -43,6 +43,7 @@ using namespace Qt3DRender; using namespace Qt3DRender::Render; +using namespace Qt3DRender::Render::OpenGL; namespace { 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..efd2c6603 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> @@ -105,9 +107,9 @@ public: d_func()->m_renderer->initialize(); } - Render::MaterialParameterGathererJobPtr materialGathererJob() const + Render::OpenGL::MaterialParameterGathererJobPtr materialGathererJob() const { - Render::MaterialParameterGathererJobPtr job = Render::MaterialParameterGathererJobPtr::create(); + Render::OpenGL::MaterialParameterGathererJobPtr job = Render::OpenGL::MaterialParameterGathererJobPtr::create(); job->setNodeManagers(nodeManagers()); return job; } @@ -230,7 +232,7 @@ private Q_SLOTS: // GIVEN Qt3DCore::QEntity *sceneRoot = buildScene(viewportFrameGraph()); Qt3DRender::TestAspect testAspect(sceneRoot); - Qt3DRender::Render::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); + Qt3DRender::Render::OpenGL::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); testAspect.initializeRenderer(); @@ -250,7 +252,7 @@ private Q_SLOTS: TestMaterial material; Qt3DCore::QEntity *sceneRoot = buildScene(viewportFrameGraph(), &material); Qt3DRender::TestAspect testAspect(sceneRoot); - Qt3DRender::Render::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); + Qt3DRender::Render::OpenGL::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); testAspect.initializeRenderer(); @@ -272,7 +274,7 @@ private Q_SLOTS: material.setEnabled(false); Qt3DCore::QEntity *sceneRoot = buildScene(viewportFrameGraph(), &material); Qt3DRender::TestAspect testAspect(sceneRoot); - Qt3DRender::Render::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); + Qt3DRender::Render::OpenGL::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); testAspect.initializeRenderer(); @@ -304,7 +306,7 @@ private Q_SLOTS: Qt3DCore::QEntity *sceneRoot = buildScene(frameGraphFilter, &material); Qt3DRender::TestAspect testAspect(sceneRoot); - Qt3DRender::Render::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); + Qt3DRender::Render::OpenGL::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); testAspect.initializeRenderer(); @@ -344,7 +346,7 @@ private Q_SLOTS: Qt3DCore::QEntity *sceneRoot = buildScene(frameGraphFilter, &material); Qt3DRender::TestAspect testAspect(sceneRoot); - Qt3DRender::Render::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); + Qt3DRender::Render::OpenGL::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); testAspect.initializeRenderer(); @@ -380,7 +382,7 @@ private Q_SLOTS: Qt3DCore::QEntity *sceneRoot = buildScene(frameGraphFilter, &material); Qt3DRender::TestAspect testAspect(sceneRoot); - Qt3DRender::Render::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); + Qt3DRender::Render::OpenGL::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); testAspect.initializeRenderer(); @@ -414,7 +416,7 @@ private Q_SLOTS: Qt3DCore::QEntity *sceneRoot = buildScene(frameGraphFilter, &material); Qt3DRender::TestAspect testAspect(sceneRoot); - Qt3DRender::Render::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); + Qt3DRender::Render::OpenGL::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); testAspect.initializeRenderer(); @@ -454,7 +456,7 @@ private Q_SLOTS: Qt3DCore::QEntity *sceneRoot = buildScene(frameGraphFilter, &material); Qt3DRender::TestAspect testAspect(sceneRoot); - Qt3DRender::Render::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); + Qt3DRender::Render::OpenGL::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); testAspect.initializeRenderer(); @@ -507,7 +509,7 @@ private Q_SLOTS: material.es2Pass()->addParameter(passParam); Qt3DRender::TestAspect testAspect(sceneRoot); - Qt3DRender::Render::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); + Qt3DRender::Render::OpenGL::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); testAspect.initializeRenderer(); QCOMPARE(testAspect.nodeManagers()->materialManager()->activeHandles().size(), 1); @@ -524,10 +526,10 @@ private Q_SLOTS: // THEN -> RenderPassFilter wins QCOMPARE(gatherer->materialToPassAndParameter().size(), 1); - const QVector<Qt3DRender::Render::RenderPassParameterData> passParameterData = gatherer->materialToPassAndParameter().begin().value(); + const QVector<Qt3DRender::Render::OpenGL::RenderPassParameterData> passParameterData = gatherer->materialToPassAndParameter().begin().value(); QCOMPARE(passParameterData.size(), 1); - const Qt3DRender::Render::RenderPassParameterData data = passParameterData.first(); + const Qt3DRender::Render::OpenGL::RenderPassParameterData data = passParameterData.first(); QCOMPARE(data.parameterInfo.size(), 1); QCOMPARE(data.parameterInfo.first().handle, testAspect.nodeManagers()->parameterManager()->lookupHandle(renderPassParameter->id())); @@ -563,7 +565,7 @@ private Q_SLOTS: material.es2Pass()->addParameter(passParam); Qt3DRender::TestAspect testAspect(sceneRoot); - Qt3DRender::Render::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); + Qt3DRender::Render::OpenGL::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); testAspect.initializeRenderer(); QCOMPARE(testAspect.nodeManagers()->materialManager()->activeHandles().size(), 1); @@ -580,10 +582,10 @@ private Q_SLOTS: // THEN -> TechniqueFilter wins QCOMPARE(gatherer->materialToPassAndParameter().size(), 1); - const QVector<Qt3DRender::Render::RenderPassParameterData> passParameterData = gatherer->materialToPassAndParameter().begin().value(); + const QVector<Qt3DRender::Render::OpenGL::RenderPassParameterData> passParameterData = gatherer->materialToPassAndParameter().begin().value(); QCOMPARE(passParameterData.size(), 1); - const Qt3DRender::Render::RenderPassParameterData data = passParameterData.first(); + const Qt3DRender::Render::OpenGL::RenderPassParameterData data = passParameterData.first(); QCOMPARE(data.parameterInfo.size(), 1); QCOMPARE(data.parameterInfo.first().handle, testAspect.nodeManagers()->parameterManager()->lookupHandle(techniqueFilterParameter->id())); @@ -618,7 +620,7 @@ private Q_SLOTS: material.es2Pass()->addParameter(passParam); Qt3DRender::TestAspect testAspect(sceneRoot); - Qt3DRender::Render::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); + Qt3DRender::Render::OpenGL::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); testAspect.initializeRenderer(); QCOMPARE(testAspect.nodeManagers()->materialManager()->activeHandles().size(), 1); @@ -635,10 +637,10 @@ private Q_SLOTS: // THEN -> TechniqueFilter wins QCOMPARE(gatherer->materialToPassAndParameter().size(), 1); - const QVector<Qt3DRender::Render::RenderPassParameterData> passParameterData = gatherer->materialToPassAndParameter().begin().value(); + const QVector<Qt3DRender::Render::OpenGL::RenderPassParameterData> passParameterData = gatherer->materialToPassAndParameter().begin().value(); QCOMPARE(passParameterData.size(), 1); - const Qt3DRender::Render::RenderPassParameterData data = passParameterData.first(); + const Qt3DRender::Render::OpenGL::RenderPassParameterData data = passParameterData.first(); QCOMPARE(data.parameterInfo.size(), 1); QCOMPARE(data.parameterInfo.first().handle, testAspect.nodeManagers()->parameterManager()->lookupHandle(materialParameter->id())); @@ -672,7 +674,7 @@ private Q_SLOTS: material.es2Pass()->addParameter(passParam); Qt3DRender::TestAspect testAspect(sceneRoot); - Qt3DRender::Render::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); + Qt3DRender::Render::OpenGL::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); testAspect.initializeRenderer(); QCOMPARE(testAspect.nodeManagers()->materialManager()->activeHandles().size(), 1); @@ -689,10 +691,10 @@ private Q_SLOTS: // THEN -> TechniqueFilter wins QCOMPARE(gatherer->materialToPassAndParameter().size(), 1); - const QVector<Qt3DRender::Render::RenderPassParameterData> passParameterData = gatherer->materialToPassAndParameter().begin().value(); + const QVector<Qt3DRender::Render::OpenGL::RenderPassParameterData> passParameterData = gatherer->materialToPassAndParameter().begin().value(); QCOMPARE(passParameterData.size(), 1); - const Qt3DRender::Render::RenderPassParameterData data = passParameterData.first(); + const Qt3DRender::Render::OpenGL::RenderPassParameterData data = passParameterData.first(); QCOMPARE(data.parameterInfo.size(), 1); QCOMPARE(data.parameterInfo.first().handle, testAspect.nodeManagers()->parameterManager()->lookupHandle(effectParameter->id())); @@ -722,7 +724,7 @@ private Q_SLOTS: material.es2Pass()->addParameter(passParam); Qt3DRender::TestAspect testAspect(sceneRoot); - Qt3DRender::Render::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); + Qt3DRender::Render::OpenGL::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); testAspect.initializeRenderer(); QCOMPARE(testAspect.nodeManagers()->materialManager()->activeHandles().size(), 1); @@ -739,10 +741,10 @@ private Q_SLOTS: // THEN -> TechniqueFilter wins QCOMPARE(gatherer->materialToPassAndParameter().size(), 1); - const QVector<Qt3DRender::Render::RenderPassParameterData> passParameterData = gatherer->materialToPassAndParameter().begin().value(); + const QVector<Qt3DRender::Render::OpenGL::RenderPassParameterData> passParameterData = gatherer->materialToPassAndParameter().begin().value(); QCOMPARE(passParameterData.size(), 1); - const Qt3DRender::Render::RenderPassParameterData data = passParameterData.first(); + const Qt3DRender::Render::OpenGL::RenderPassParameterData data = passParameterData.first(); QCOMPARE(data.parameterInfo.size(), 1); QCOMPARE(data.parameterInfo.first().handle, testAspect.nodeManagers()->parameterManager()->lookupHandle(techniqueParam->id())); @@ -766,7 +768,7 @@ private Q_SLOTS: material.es2Pass()->addParameter(passParam); Qt3DRender::TestAspect testAspect(sceneRoot); - Qt3DRender::Render::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); + Qt3DRender::Render::OpenGL::MaterialParameterGathererJobPtr gatherer = testAspect.materialGathererJob(); testAspect.initializeRenderer(); QCOMPARE(testAspect.nodeManagers()->materialManager()->activeHandles().size(), 1); @@ -783,10 +785,10 @@ private Q_SLOTS: // THEN -> TechniqueFilter wins QCOMPARE(gatherer->materialToPassAndParameter().size(), 1); - const QVector<Qt3DRender::Render::RenderPassParameterData> passParameterData = gatherer->materialToPassAndParameter().begin().value(); + const QVector<Qt3DRender::Render::OpenGL::RenderPassParameterData> passParameterData = gatherer->materialToPassAndParameter().begin().value(); QCOMPARE(passParameterData.size(), 1); - const Qt3DRender::Render::RenderPassParameterData data = passParameterData.first(); + const Qt3DRender::Render::OpenGL::RenderPassParameterData data = passParameterData.first(); QCOMPARE(data.parameterInfo.size(), 1); QCOMPARE(data.parameterInfo.first().handle, testAspect.nodeManagers()->parameterManager()->lookupHandle(passParam->id())); 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..50fade878 --- /dev/null +++ b/tests/auto/render/opengl/opengl_render_plugin.pri @@ -0,0 +1,18 @@ +# Found no way of having the test runner include the correct +# library path as runtime + +#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 + +# Instead we link against the sources directly +include(../../../../src/plugins/renderers/opengl/opengl.pri) 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..bd4772045 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 { @@ -44,14 +44,14 @@ private slots: void tst_QGraphicsUtils::fillScalarInDataArray() { - Qt3DRender::Render::ShaderUniform description; + Qt3DRender::Render::OpenGL::ShaderUniform description; description.m_size = 1; description.m_offset = 0; description.m_arrayStride = 10; QVector4D testVector(8.0f, 8.0f, 3.0f, 1.0f); - const GLfloat *vectorData = Qt3DRender::Render::QGraphicsUtils::valueArrayFromVariant<GLfloat>(testVector, 1, 4); + const GLfloat *vectorData = Qt3DRender::Render::OpenGL::QGraphicsUtils::valueArrayFromVariant<GLfloat>(testVector, 1, 4); for (int i = 0; i < 4; i++) { if (i == 0) @@ -68,7 +68,7 @@ void tst_QGraphicsUtils::fillScalarInDataArray() char *innerData = data.data(); // Checked that we are not overflowing - Qt3DRender::Render::QGraphicsUtils::fillDataArray(innerData, vectorData, description, 2); + Qt3DRender::Render::OpenGL::QGraphicsUtils::fillDataArray(innerData, vectorData, description, 2); for (int i = 0; i < 4; ++i) { if (i < 2) QVERIFY(vectorData[i] == ((GLfloat*)innerData)[i]); @@ -77,7 +77,7 @@ void tst_QGraphicsUtils::fillScalarInDataArray() } // Check that all values are copied - Qt3DRender::Render::QGraphicsUtils::fillDataArray(innerData, vectorData, description, 4); + Qt3DRender::Render::OpenGL::QGraphicsUtils::fillDataArray(innerData, vectorData, description, 4); for (int i = 0; i < 4; ++i) QVERIFY(vectorData[i] == ((GLfloat*)innerData)[i]); @@ -86,7 +86,7 @@ void tst_QGraphicsUtils::fillScalarInDataArray() data = QByteArray(description.m_size * 8 * sizeof(GLfloat), 0); innerData = data.data(); - Qt3DRender::Render::QGraphicsUtils::fillDataArray(innerData, vectorData, description, 4); + Qt3DRender::Render::OpenGL::QGraphicsUtils::fillDataArray(innerData, vectorData, description, 4); for (int i = 0; i < 8; ++i) { if (i < 4) QVERIFY(((GLfloat*)innerData)[i] == 0.0f); @@ -102,9 +102,9 @@ void tst_QGraphicsUtils::fillArray() QVector4D testVector3(4.0f, 5.0f, 4.0f, 2.0f); QVariantList variantList = QVariantList() << testVector << testVector2 << testVector3; - const GLfloat *vectorData = Qt3DRender::Render::QGraphicsUtils::valueArrayFromVariant<GLfloat>(QVariant(variantList), 3, 4); + const GLfloat *vectorData = Qt3DRender::Render::OpenGL::QGraphicsUtils::valueArrayFromVariant<GLfloat>(QVariant(variantList), 3, 4); - Qt3DRender::Render::ShaderUniform description; + Qt3DRender::Render::OpenGL::ShaderUniform description; description.m_size = 3; description.m_offset = 16; @@ -112,7 +112,7 @@ void tst_QGraphicsUtils::fillArray() QByteArray data(description.m_size * (4 + description.m_arrayStride) * sizeof(GLfloat) + description.m_offset, 0); char *innerData = data.data(); - Qt3DRender::Render::QGraphicsUtils::fillDataArray(innerData, vectorData, description, 4); + Qt3DRender::Render::OpenGL::QGraphicsUtils::fillDataArray(innerData, vectorData, description, 4); int offset = description.m_offset / sizeof(GLfloat); int stride = description.m_arrayStride / sizeof(GLfloat); @@ -144,25 +144,25 @@ void tst_QGraphicsUtils::fillScalarWithOffsets() QVector4D color(4.0f, 5.0f, 4.0f, 1.0f); float intensity = 1.0f; - Qt3DRender::Render::ShaderUniform posUniform; + Qt3DRender::Render::OpenGL::ShaderUniform posUniform; posUniform.m_size = 1; posUniform.m_arrayStride = 0; posUniform.m_matrixStride = 0; posUniform.m_offset = 0; - Qt3DRender::Render::ShaderUniform dirUniform; + Qt3DRender::Render::OpenGL::ShaderUniform dirUniform; dirUniform.m_size = 1; dirUniform.m_arrayStride = 0; dirUniform.m_matrixStride = 0; dirUniform.m_offset = 16; - Qt3DRender::Render::ShaderUniform colUniform; + Qt3DRender::Render::OpenGL::ShaderUniform colUniform; colUniform.m_size = 1; colUniform.m_arrayStride = 0; colUniform.m_matrixStride = 0; colUniform.m_offset = 32; - Qt3DRender::Render::ShaderUniform intUniform; + Qt3DRender::Render::OpenGL::ShaderUniform intUniform; intUniform.m_size = 1; intUniform.m_arrayStride = 0; intUniform.m_matrixStride = 0; @@ -171,18 +171,18 @@ void tst_QGraphicsUtils::fillScalarWithOffsets() QVector<GLfloat> data(16); void *innerData = data.data(); - Qt3DRender::Render::QGraphicsUtils::fillDataArray(innerData, - Qt3DRender::Render::QGraphicsUtils::valueArrayFromVariant<GLfloat>(position, 1, 3), - posUniform, 3); - Qt3DRender::Render::QGraphicsUtils::fillDataArray(innerData, - Qt3DRender::Render::QGraphicsUtils::valueArrayFromVariant<GLfloat>(direction, 1, 3), - dirUniform, 3); - Qt3DRender::Render::QGraphicsUtils::fillDataArray(innerData, - Qt3DRender::Render::QGraphicsUtils::valueArrayFromVariant<GLfloat>(color, 1, 4), - colUniform, 4); - Qt3DRender::Render::QGraphicsUtils::fillDataArray(innerData, - Qt3DRender::Render::QGraphicsUtils::valueArrayFromVariant<GLfloat>(intensity, 1, 1), - intUniform, 1); + Qt3DRender::Render::OpenGL::QGraphicsUtils::fillDataArray(innerData, + Qt3DRender::Render::OpenGL::QGraphicsUtils::valueArrayFromVariant<GLfloat>(position, 1, 3), + posUniform, 3); + Qt3DRender::Render::OpenGL::QGraphicsUtils::fillDataArray(innerData, + Qt3DRender::Render::OpenGL::QGraphicsUtils::valueArrayFromVariant<GLfloat>(direction, 1, 3), + dirUniform, 3); + Qt3DRender::Render::OpenGL::QGraphicsUtils::fillDataArray(innerData, + Qt3DRender::Render::OpenGL::QGraphicsUtils::valueArrayFromVariant<GLfloat>(color, 1, 4), + colUniform, 4); + Qt3DRender::Render::OpenGL::QGraphicsUtils::fillDataArray(innerData, + Qt3DRender::Render::OpenGL::QGraphicsUtils::valueArrayFromVariant<GLfloat>(intensity, 1, 1), + intUniform, 1); GLfloat *floatData = (GLfloat*)innerData; @@ -214,9 +214,9 @@ void tst_QGraphicsUtils::fillMatrix4x4() QMatrix4x4 mat(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f); // column major - const GLfloat *matData = Qt3DRender::Render::QGraphicsUtils::valueArrayFromVariant<GLfloat>(mat, 1, 16); + const GLfloat *matData = Qt3DRender::Render::OpenGL::QGraphicsUtils::valueArrayFromVariant<GLfloat>(mat, 1, 16); - Qt3DRender::Render::ShaderUniform description; + Qt3DRender::Render::OpenGL::ShaderUniform description; description.m_size = 1; description.m_offset = 0; @@ -226,7 +226,7 @@ void tst_QGraphicsUtils::fillMatrix4x4() QByteArray data(description.m_size * 16 * sizeof(GLfloat), 0); char *innerData = data.data(); - Qt3DRender::Render::QGraphicsUtils::fillDataMatrixArray(innerData, matData, description, 4, 4); + Qt3DRender::Render::OpenGL::QGraphicsUtils::fillDataMatrixArray(innerData, matData, description, 4, 4); // Check for no offset/no stride for (int i = 0; i < 16; ++i) QVERIFY((((GLfloat *)innerData)[i]) == matData[i]); @@ -234,7 +234,7 @@ void tst_QGraphicsUtils::fillMatrix4x4() description.m_offset = 12; data = QByteArray((description.m_size * 16 + description.m_offset) * sizeof(GLfloat), 0); innerData = data.data(); - Qt3DRender::Render::QGraphicsUtils::fillDataMatrixArray(innerData, matData, description, 4, 4); + Qt3DRender::Render::OpenGL::QGraphicsUtils::fillDataMatrixArray(innerData, matData, description, 4, 4); // Check with 12 offset/no stride for (int i = 0; i < 16; ++i) QVERIFY((((GLfloat *)innerData)[3 + i]) == matData[i]); @@ -242,7 +242,7 @@ void tst_QGraphicsUtils::fillMatrix4x4() description.m_matrixStride = 16; data = QByteArray((description.m_size * 16 + 4 * description.m_matrixStride + description.m_offset) * sizeof(GLfloat), 0); innerData = data.data(); - Qt3DRender::Render::QGraphicsUtils::fillDataMatrixArray(innerData, matData, description, 4, 4); + Qt3DRender::Render::OpenGL::QGraphicsUtils::fillDataMatrixArray(innerData, matData, description, 4, 4); // Check with 10 offset/ 16 stride int offset = description.m_offset / sizeof(GLfloat); int matrixStride = description.m_matrixStride / sizeof(GLfloat); @@ -259,9 +259,9 @@ void tst_QGraphicsUtils::fillMatrix3x4() QMatrix3x4 mat; mat.fill(6.0f); - const GLfloat *matData = Qt3DRender::Render::QGraphicsUtils::valueArrayFromVariant<GLfloat>(QVariant::fromValue(mat), 1, 12); + const GLfloat *matData = Qt3DRender::Render::OpenGL::QGraphicsUtils::valueArrayFromVariant<GLfloat>(QVariant::fromValue(mat), 1, 12); - Qt3DRender::Render::ShaderUniform description; + Qt3DRender::Render::OpenGL::ShaderUniform description; description.m_size = 1; description.m_offset = 16; @@ -270,7 +270,7 @@ void tst_QGraphicsUtils::fillMatrix3x4() QByteArray data((description.m_size * 12 + 3 * description.m_matrixStride + description.m_offset) * sizeof(GLfloat), 0); char *innerData = data.data(); - Qt3DRender::Render::QGraphicsUtils::fillDataMatrixArray(innerData, matData, description, 3, 4); + Qt3DRender::Render::OpenGL::QGraphicsUtils::fillDataMatrixArray(innerData, matData, description, 3, 4); // Check with 16 offset/ 12 stride int offset = description.m_offset / sizeof(GLfloat); int matrixStride = description.m_matrixStride / sizeof(GLfloat); @@ -287,9 +287,9 @@ void tst_QGraphicsUtils::fillMatrix4x3() QMatrix4x3 mat; mat.fill(6.0f); - const GLfloat *matData = Qt3DRender::Render::QGraphicsUtils::valueArrayFromVariant<GLfloat>(QVariant::fromValue(mat), 1, 12); + const GLfloat *matData = Qt3DRender::Render::OpenGL::QGraphicsUtils::valueArrayFromVariant<GLfloat>(QVariant::fromValue(mat), 1, 12); - Qt3DRender::Render::ShaderUniform description; + Qt3DRender::Render::OpenGL::ShaderUniform description; description.m_size = 1; description.m_offset = 16; @@ -298,7 +298,7 @@ void tst_QGraphicsUtils::fillMatrix4x3() QByteArray data((description.m_size * 12 + 4 * description.m_matrixStride + description.m_offset) * sizeof(GLfloat), 0); char *innerData = data.data(); - Qt3DRender::Render::QGraphicsUtils::fillDataMatrixArray(innerData, matData, description, 4, 3); + Qt3DRender::Render::OpenGL::QGraphicsUtils::fillDataMatrixArray(innerData, matData, description, 4, 3); // Check with 16 offset/ 16 stride int offset = description.m_offset / sizeof(GLfloat); int matrixStride = description.m_matrixStride / sizeof(GLfloat); @@ -321,9 +321,9 @@ void tst_QGraphicsUtils::fillMatrixArray() QVariantList matrices = QVariantList() << QVariant::fromValue(mat1) << QVariant::fromValue(mat2) << QVariant::fromValue(mat3); - const GLfloat *matData = Qt3DRender::Render::QGraphicsUtils::valueArrayFromVariant<GLfloat>(QVariant::fromValue(matrices), 3, 12); + const GLfloat *matData = Qt3DRender::Render::OpenGL::QGraphicsUtils::valueArrayFromVariant<GLfloat>(QVariant::fromValue(matrices), 3, 12); - Qt3DRender::Render::ShaderUniform description; + Qt3DRender::Render::OpenGL::ShaderUniform description; description.m_size = 3; description.m_offset = 12; @@ -332,7 +332,7 @@ void tst_QGraphicsUtils::fillMatrixArray() QByteArray data((description.m_size * (12 + 4 * description.m_matrixStride + description.m_arrayStride) + description.m_offset) * sizeof(GLfloat), 0); char *innerData = data.data(); - Qt3DRender::Render::QGraphicsUtils::fillDataMatrixArray(innerData, matData, description, 4, 3); + Qt3DRender::Render::OpenGL::QGraphicsUtils::fillDataMatrixArray(innerData, matData, description, 4, 3); // Check with 12 offset/ 4 array stride / 16 matrix stride int offset = description.m_offset / sizeof(GLfloat); int matrixStride = description.m_matrixStride / sizeof(GLfloat); 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..db7a37af1 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 { @@ -51,7 +50,7 @@ private Q_SLOTS: { // GIVEN Qt3DRender::Render::NodeManagers nodeManagers; - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); Qt3DRender::Render::OffscreenSurfaceHelper offscreenHelper(&renderer); Qt3DRender::Render::RenderSettings settings; // owned by FG manager @@ -108,8 +107,8 @@ private Q_SLOTS: { // GIVEN Qt3DRender::Render::NodeManagers nodeManagers; - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); - Qt3DRender::Render::RenderQueue *renderQueue = renderer.renderQueue(); + Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Qt3DRender::Render::OpenGL::RenderQueue *renderQueue = renderer.renderQueue(); Qt3DRender::Render::OffscreenSurfaceHelper offscreenHelper(&renderer); Qt3DRender::Render::RenderSettings settings; // owned by FG manager @@ -130,16 +129,16 @@ private Q_SLOTS: // NOTE: FilterCompatibleTechniqueJob and ShaderGathererJob cannot run because the context // is not initialized in this test - const int renderViewBuilderMaterialCacheJobCount = 1 + Qt3DRender::Render::RenderViewBuilder::optimalJobCount(); + const int renderViewBuilderMaterialCacheJobCount = 1 + Qt3DRender::Render::OpenGL::RenderViewBuilder::optimalJobCount(); // syncMaterialGathererJob // n * materialGathererJob const int layerCacheJobCount = 2; // filterEntityByLayerJob, // syncFilterEntityByLayerJob - const int singleRenderViewCommandRebuildJobCount = 1 + Qt3DRender::Render::RenderViewBuilder::optimalJobCount(); + const int singleRenderViewCommandRebuildJobCount = 1 + Qt3DRender::Render::OpenGL::RenderViewBuilder::optimalJobCount(); - const int singleRenderViewJobCount = 8 + 1 * Qt3DRender::Render::RenderViewBuilder::optimalJobCount(); + const int singleRenderViewJobCount = 8 + 1 * Qt3DRender::Render::OpenGL::RenderViewBuilder::optimalJobCount(); // RenderViewBuilder renderViewJob, // syncRenderViewInitializationJob, // syncFrustumCullingJob, 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..728648a3c 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 { @@ -53,7 +53,7 @@ private Q_SLOTS: void tst_RenderQueue::setRenderViewCount() { // GIVEN - Qt3DRender::Render::RenderQueue renderQueue; + Qt3DRender::Render::OpenGL::RenderQueue renderQueue; // THEN QCOMPARE(renderQueue.wasReset(), true); @@ -70,7 +70,7 @@ void tst_RenderQueue::setRenderViewCount() void tst_RenderQueue::circleQueues() { // GIVEN - Qt3DRender::Render::RenderQueue renderQueue; + Qt3DRender::Render::OpenGL::RenderQueue renderQueue; renderQueue.setTargetRenderViewCount(7); // WHEN @@ -85,9 +85,9 @@ void tst_RenderQueue::circleQueues() QCOMPARE(renderQueue.currentRenderViewCount(), 0); // WHEN - QList<Qt3DRender::Render::RenderView *> renderViews; + QList<Qt3DRender::Render::OpenGL::RenderView *> renderViews; for (int i = 0; i < 7; i++) { - renderViews << new Qt3DRender::Render::RenderView(); + renderViews << new Qt3DRender::Render::OpenGL::RenderView(); renderQueue.queueRenderView(renderViews.at(i), i); } @@ -99,19 +99,19 @@ void tst_RenderQueue::circleQueues() void tst_RenderQueue::checkOrder() { // GIVEN - Qt3DRender::Render::RenderQueue renderQueue; + Qt3DRender::Render::OpenGL::RenderQueue renderQueue; renderQueue.setTargetRenderViewCount(7); - QVector<Qt3DRender::Render::RenderView *> renderViews(7); + QVector<Qt3DRender::Render::OpenGL::RenderView *> renderViews(7); // WHEN for (int i = 0; i < 7; ++i) { int processingOrder = (i % 2 == 0) ? (6 - i) : i; - renderViews[processingOrder] = new Qt3DRender::Render::RenderView(); + renderViews[processingOrder] = new Qt3DRender::Render::OpenGL::RenderView(); renderQueue.queueRenderView(renderViews[processingOrder], processingOrder); } // THEN - QVector<Qt3DRender::Render::RenderView *> frame = renderQueue.nextFrameQueue(); + QVector<Qt3DRender::Render::OpenGL::RenderView *> frame = renderQueue.nextFrameQueue(); for (int i = 0; i < 7; ++i) { QVERIFY(frame[i] == renderViews[i]); } @@ -120,14 +120,14 @@ void tst_RenderQueue::checkOrder() void tst_RenderQueue::checkTimeToSubmit() { // GIVEN - Qt3DRender::Render::RenderQueue renderQueue; + Qt3DRender::Render::OpenGL::RenderQueue renderQueue; renderQueue.setTargetRenderViewCount(7); - QVector<Qt3DRender::Render::RenderView *> renderViews(7); + QVector<Qt3DRender::Render::OpenGL::RenderView *> renderViews(7); // WHEN for (int i = 0; i < 7; i++) { int processingOrder = (i % 2 == 0) ? (6 - i) : i; - renderViews[processingOrder] = new Qt3DRender::Render::RenderView(); + renderViews[processingOrder] = new Qt3DRender::Render::OpenGL::RenderView(); renderQueue.queueRenderView(renderViews[processingOrder], processingOrder); // THEN @@ -144,7 +144,7 @@ class SimpleWorker : public QThread public: QSemaphore m_waitSubmit; QSemaphore m_waitQueue; - Qt3DRender::Render::RenderQueue *m_renderQueues; + Qt3DRender::Render::OpenGL::RenderQueue *m_renderQueues; public Q_SLOTS: @@ -160,7 +160,7 @@ public Q_SLOTS: // THEN QCOMPARE(m_renderQueues->currentRenderViewCount(), j); // WHEN - m_renderQueues->queueRenderView(new Qt3DRender::Render::RenderView(), j); + m_renderQueues->queueRenderView(new Qt3DRender::Render::OpenGL::RenderView(), j); // THEN QVERIFY(m_renderQueues->targetRenderViewCount() == 7); QCOMPARE(m_renderQueues->currentRenderViewCount(), j + 1); @@ -178,7 +178,7 @@ public Q_SLOTS: void tst_RenderQueue::concurrentQueueAccess() { // GIVEN - Qt3DRender::Render::RenderQueue *renderQueue = new Qt3DRender::Render::RenderQueue; + Qt3DRender::Render::OpenGL::RenderQueue *renderQueue = new Qt3DRender::Render::OpenGL::RenderQueue; SimpleWorker *jobsThread = new SimpleWorker(); renderQueue->setTargetRenderViewCount(7); @@ -212,7 +212,7 @@ void tst_RenderQueue::concurrentQueueAccess() void tst_RenderQueue::resetQueue() { // GIVEN - Qt3DRender::Render::RenderQueue renderQueue; + Qt3DRender::Render::OpenGL::RenderQueue renderQueue; for (int j = 0; j < 5; j++) { // WHEN @@ -222,7 +222,7 @@ void tst_RenderQueue::resetQueue() QVERIFY(renderQueue.currentRenderViewCount() == 0); // WHEN - QVector<Qt3DRender::Render::RenderView *> renderViews(5); + QVector<Qt3DRender::Render::OpenGL::RenderView *> renderViews(5); for (int i = 0; i < 5; ++i) { renderQueue.queueRenderView(renderViews.at(i), i); } 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..fe534e243 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> @@ -96,14 +96,14 @@ public: return d_func()->m_renderer->nodeManagers(); } - Render::Renderer *renderer() const + Render::OpenGL::Renderer *renderer() const { - return static_cast<Render::Renderer *>(d_func()->m_renderer); + return static_cast<Render::OpenGL::Renderer *>(d_func()->m_renderer); } - Render::MaterialParameterGathererJobPtr materialGathererJob() const + Render::OpenGL::MaterialParameterGathererJobPtr materialGathererJob() const { - Render::MaterialParameterGathererJobPtr job = Render::MaterialParameterGathererJobPtr::create(); + Render::OpenGL::MaterialParameterGathererJobPtr job = Render::OpenGL::MaterialParameterGathererJobPtr::create(); job->setNodeManagers(nodeManagers()); return job; } @@ -216,7 +216,7 @@ private Q_SLOTS: { // WHEN - Qt3DRender::Render::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); + Qt3DRender::Render::OpenGL::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); // THEN QCOMPARE(renderViewBuilder.renderViewIndex(), 0); @@ -247,14 +247,14 @@ private Q_SLOTS: QVERIFY(renderViewBuilder.filterEntityByLayerJob().isNull()); QVERIFY(renderViewBuilder.syncFilterEntityByLayerJob().isNull()); - QCOMPARE(renderViewBuilder.renderViewCommandUpdaterJobs().size(), Qt3DRender::Render::RenderViewBuilder::optimalJobCount()); + QCOMPARE(renderViewBuilder.renderViewCommandUpdaterJobs().size(), Qt3DRender::Render::OpenGL::RenderViewBuilder::optimalJobCount()); QCOMPARE(renderViewBuilder.materialGathererJobs().size(), 0); - QCOMPARE(renderViewBuilder.buildJobHierachy().size(), 8 + 1 * Qt3DRender::Render::RenderViewBuilder::optimalJobCount()); + QCOMPARE(renderViewBuilder.buildJobHierachy().size(), 8 + 1 * Qt3DRender::Render::OpenGL::RenderViewBuilder::optimalJobCount()); } { // WHEN - Qt3DRender::Render::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); + Qt3DRender::Render::OpenGL::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); renderViewBuilder.setLayerCacheNeedsToBeRebuilt(true); renderViewBuilder.prepareJobs(); @@ -264,22 +264,22 @@ private Q_SLOTS: QVERIFY(!renderViewBuilder.syncFilterEntityByLayerJob().isNull()); // mark jobs dirty and recheck - QCOMPARE(renderViewBuilder.buildJobHierachy().size(), 10 + 1 * Qt3DRender::Render::RenderViewBuilder::optimalJobCount()); + QCOMPARE(renderViewBuilder.buildJobHierachy().size(), 10 + 1 * Qt3DRender::Render::OpenGL::RenderViewBuilder::optimalJobCount()); } { // WHEN - Qt3DRender::Render::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); + Qt3DRender::Render::OpenGL::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); renderViewBuilder.setMaterialGathererCacheNeedsToBeRebuilt(true); renderViewBuilder.prepareJobs(); // THEN QCOMPARE(renderViewBuilder.materialGathererCacheNeedsToBeRebuilt(), true); - QCOMPARE(renderViewBuilder.materialGathererJobs().size(), Qt3DRender::Render::RenderViewBuilder::optimalJobCount()); + QCOMPARE(renderViewBuilder.materialGathererJobs().size(), Qt3DRender::Render::OpenGL::RenderViewBuilder::optimalJobCount()); QVERIFY(!renderViewBuilder.syncMaterialGathererJob().isNull()); // mark jobs dirty and recheck - QCOMPARE(renderViewBuilder.buildJobHierachy().size(), 9 + 2 * Qt3DRender::Render::RenderViewBuilder::optimalJobCount()); + QCOMPARE(renderViewBuilder.buildJobHierachy().size(), 9 + 2 * Qt3DRender::Render::OpenGL::RenderViewBuilder::optimalJobCount()); } } @@ -296,7 +296,7 @@ private Q_SLOTS: { // WHEN - Qt3DRender::Render::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); + Qt3DRender::Render::OpenGL::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); renderViewBuilder.prepareJobs(); renderViewBuilder.buildJobHierachy(); @@ -357,7 +357,7 @@ private Q_SLOTS: } { // WHEN - Qt3DRender::Render::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); + Qt3DRender::Render::OpenGL::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); renderViewBuilder.setLayerCacheNeedsToBeRebuilt(true); renderViewBuilder.setMaterialGathererCacheNeedsToBeRebuilt(true); renderViewBuilder.prepareJobs(); @@ -441,7 +441,7 @@ private Q_SLOTS: QVERIFY(leafNode != nullptr); // WHEN - Qt3DRender::Render::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); + Qt3DRender::Render::OpenGL::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); renderViewBuilder.prepareJobs(); renderViewBuilder.buildJobHierachy(); renderViewBuilder.renderViewJob()->run(); @@ -456,7 +456,7 @@ private Q_SLOTS: Qt3DRender::QViewport *viewport = new Qt3DRender::QViewport(); Qt3DRender::QClearBuffers *clearBuffer = new Qt3DRender::QClearBuffers(viewport); Qt3DRender::TestAspect testAspect(buildSimpleScene(viewport)); - Qt3DRender::Render::Renderer *renderer = testAspect.renderer(); + Qt3DRender::Render::OpenGL::Renderer *renderer = testAspect.renderer(); // THEN Qt3DRender::Render::FrameGraphNode *leafNode = testAspect.nodeManagers()->frameGraphManager()->lookupNode(clearBuffer->id()); @@ -476,7 +476,7 @@ private Q_SLOTS: Qt3DRender::QViewport *viewport = new Qt3DRender::QViewport(); Qt3DRender::QClearBuffers *clearBuffer = new Qt3DRender::QClearBuffers(viewport); Qt3DRender::TestAspect testAspect(buildSimpleScene(viewport)); - Qt3DRender::Render::Renderer *renderer = testAspect.renderer(); + Qt3DRender::Render::OpenGL::Renderer *renderer = testAspect.renderer(); // THEN Qt3DRender::Render::FrameGraphNode *leafNode = testAspect.nodeManagers()->frameGraphManager()->lookupNode(clearBuffer->id()); @@ -495,7 +495,7 @@ private Q_SLOTS: Qt3DRender::QViewport *viewport = new Qt3DRender::QViewport(); Qt3DRender::QClearBuffers *clearBuffer = new Qt3DRender::QClearBuffers(viewport); Qt3DRender::TestAspect testAspect(buildSimpleScene(viewport)); - Qt3DRender::Render::Renderer *renderer = testAspect.renderer(); + Qt3DRender::Render::OpenGL::Renderer *renderer = testAspect.renderer(); // THEN Qt3DRender::Render::FrameGraphNode *leafNode = testAspect.nodeManagers()->frameGraphManager()->lookupNode(clearBuffer->id()); @@ -528,7 +528,7 @@ private Q_SLOTS: { // WHEN - Qt3DRender::Render::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); + Qt3DRender::Render::OpenGL::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); renderViewBuilder.prepareJobs(); renderViewBuilder.buildJobHierachy(); @@ -552,7 +552,7 @@ private Q_SLOTS: } { // WHEN - Qt3DRender::Render::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); + Qt3DRender::Render::OpenGL::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); renderViewBuilder.setLayerCacheNeedsToBeRebuilt(true); renderViewBuilder.prepareJobs(); renderViewBuilder.buildJobHierachy(); @@ -598,7 +598,7 @@ private Q_SLOTS: QVERIFY(leafNode != nullptr); // WHEN - Qt3DRender::Render::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); + Qt3DRender::Render::OpenGL::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); renderViewBuilder.prepareJobs(); renderViewBuilder.buildJobHierachy(); @@ -622,7 +622,7 @@ private Q_SLOTS: Qt3DRender::QLayer *layer = new Qt3DRender::QLayer(); layerFilter->addLayer(layer); Qt3DRender::TestAspect testAspect(buildEntityFilterTestScene(viewport, layer)); - Qt3DRender::Render::Renderer *renderer = testAspect.renderer(); + Qt3DRender::Render::OpenGL::Renderer *renderer = testAspect.renderer(); // THEN Qt3DRender::Render::FrameGraphNode *leafNode = testAspect.nodeManagers()->frameGraphManager()->lookupNode(layerFilter->id()); @@ -631,7 +631,8 @@ private Q_SLOTS: // WHEN renderer->markDirty(Qt3DRender::Render::AbstractRenderer::AllDirty, nullptr); - Qt3DRender::Render::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); + Qt3DRender::Render::OpenGL::RenderViewBuilder renderViewBuilder(leafNode, 0, testAspect.renderer()); + renderViewBuilder.setLayerCacheNeedsToBeRebuilt(true); renderViewBuilder.prepareJobs(); renderViewBuilder.buildJobHierachy(); @@ -653,7 +654,7 @@ private Q_SLOTS: std::sort(renderableEntity.begin(), renderableEntity.end()); // WHEN - renderableEntity = Qt3DRender::Render::RenderViewBuilder::entitiesInSubset(renderableEntity, filteredEntity); + renderableEntity = Qt3DRender::Render::OpenGL::RenderViewBuilder::entitiesInSubset(renderableEntity, filteredEntity); // THEN QCOMPARE(renderableEntity.size(), 100); 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 b434fe83a..0b1e22909 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 @@ -46,6 +48,8 @@ namespace Qt3DRender { namespace Render { +namespace OpenGL { + namespace { void compareShaderParameterPacks(const ShaderParameterPack &t1, @@ -125,7 +129,7 @@ private Q_SLOTS: QCOMPARE(backendBarrier.waitOperations(), barriers); // WHEN - Qt3DRender::Render::setRenderViewConfigFromFrameGraphLeafNode(&renderView, &backendBarrier); + Qt3DRender::Render::OpenGL::setRenderViewConfigFromFrameGraphLeafNode(&renderView, &backendBarrier); // THEN QCOMPARE(backendBarrier.waitOperations(), renderView.memoryBarrier()); @@ -137,7 +141,7 @@ private Q_SLOTS: { // GIVEN Qt3DRender::Render::NodeManagers nodeManagers; - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); RenderView renderView; QVector<RenderCommand> rawCommands; QVector<QSortPolicy::SortType> sortTypes; @@ -172,7 +176,7 @@ private Q_SLOTS: { // GIVEN Qt3DRender::Render::NodeManagers nodeManagers; - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); RenderView renderView; QVector<RenderCommand> rawCommands; QVector<QSortPolicy::SortType> sortTypes; @@ -264,7 +268,7 @@ private Q_SLOTS: QFETCH(QVector<ShaderParameterPack>, expectedMinimizedParameters); Qt3DRender::Render::NodeManagers nodeManagers; - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); renderer.setNodeManagers(&nodeManagers); GLShaderManager *shaderManager = renderer.glResourceManagers()->glShaderManager(); @@ -310,7 +314,7 @@ private Q_SLOTS: { // GIVEN Qt3DRender::Render::NodeManagers nodeManagers; - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); RenderView renderView; QVector<RenderCommand> rawCommands; QVector<QSortPolicy::SortType> sortTypes; @@ -345,7 +349,7 @@ private Q_SLOTS: { // GIVEN Qt3DRender::Render::NodeManagers nodeManagers; - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); RenderView renderView; QVector<RenderCommand> rawCommands; QVector<QSortPolicy::SortType> sortTypes; @@ -380,7 +384,7 @@ private Q_SLOTS: { // GIVEN Qt3DRender::Render::NodeManagers nodeManagers; - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); RenderView renderView; QVector<RenderCommand> rawCommands; QVector<QSortPolicy::SortType> sortTypes; @@ -540,6 +544,8 @@ private Q_SLOTS: private: }; +} // OpenGL + } // Render } // Qt3DRender @@ -547,6 +553,6 @@ private: QT_END_NAMESPACE //APPLESS_ -QTEST_MAIN(Qt3DRender::Render::tst_RenderViews) +QTEST_MAIN(Qt3DRender::Render::OpenGL::tst_RenderViews) #include "tst_renderviews.moc" 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..6b714b9e1 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> @@ -107,11 +108,11 @@ public: return m_scalar; } - QHash<QString, Qt3DRender::Render::ShaderUniform> buildUniformMap(const QString &blockName) + QHash<QString, Qt3DRender::Render::OpenGL::ShaderUniform> buildUniformMap(const QString &blockName) { - QHash<QString, Qt3DRender::Render::ShaderUniform> uniforms; + QHash<QString, Qt3DRender::Render::OpenGL::ShaderUniform> uniforms; - uniforms.insert(blockName + QStringLiteral(".scalar"), Qt3DRender::Render::ShaderUniform()); + uniforms.insert(blockName + QStringLiteral(".scalar"), Qt3DRender::Render::OpenGL::ShaderUniform()); return uniforms; } @@ -148,11 +149,11 @@ public: return m_texture; } - QHash<QString, Qt3DRender::Render::ShaderUniform> buildUniformMap(const QString &blockName) + QHash<QString, Qt3DRender::Render::OpenGL::ShaderUniform> buildUniformMap(const QString &blockName) { - QHash<QString, Qt3DRender::Render::ShaderUniform> uniforms; + QHash<QString, Qt3DRender::Render::OpenGL::ShaderUniform> uniforms; - uniforms.insert(blockName + QStringLiteral(".texture"), Qt3DRender::Render::ShaderUniform()); + uniforms.insert(blockName + QStringLiteral(".texture"), Qt3DRender::Render::OpenGL::ShaderUniform()); return uniforms; } @@ -189,11 +190,11 @@ public: return m_array; } - QHash<QString, Qt3DRender::Render::ShaderUniform> buildUniformMap(const QString &blockName) + QHash<QString, Qt3DRender::Render::OpenGL::ShaderUniform> buildUniformMap(const QString &blockName) { - QHash<QString, Qt3DRender::Render::ShaderUniform> uniforms; + QHash<QString, Qt3DRender::Render::OpenGL::ShaderUniform> uniforms; - uniforms.insert(blockName + QStringLiteral(".array[0]"), Qt3DRender::Render::ShaderUniform()); + uniforms.insert(blockName + QStringLiteral(".array[0]"), Qt3DRender::Render::OpenGL::ShaderUniform()); return uniforms; } @@ -244,12 +245,12 @@ public: return m_array; } - virtual QHash<QString, Qt3DRender::Render::ShaderUniform> buildUniformMap(const QString &blockName) + virtual QHash<QString, Qt3DRender::Render::OpenGL::ShaderUniform> buildUniformMap(const QString &blockName) { - QHash<QString, Qt3DRender::Render::ShaderUniform> uniforms; + QHash<QString, Qt3DRender::Render::OpenGL::ShaderUniform> uniforms; - uniforms.insert(blockName + QStringLiteral(".scalar"), Qt3DRender::Render::ShaderUniform()); - uniforms.insert(blockName + QStringLiteral(".array[0]"), Qt3DRender::Render::ShaderUniform()); + uniforms.insert(blockName + QStringLiteral(".scalar"), Qt3DRender::Render::OpenGL::ShaderUniform()); + uniforms.insert(blockName + QStringLiteral(".array[0]"), Qt3DRender::Render::OpenGL::ShaderUniform()); return uniforms; } @@ -298,17 +299,17 @@ public: return m_inner; } - QHash<QString, Qt3DRender::Render::ShaderUniform> buildUniformMap(const QString &blockName) override + QHash<QString, Qt3DRender::Render::OpenGL::ShaderUniform> buildUniformMap(const QString &blockName) override { - QHash<QString, Qt3DRender::Render::ShaderUniform> innerUniforms; + QHash<QString, Qt3DRender::Render::OpenGL::ShaderUniform> innerUniforms; StructShaderData *innerData = nullptr; if ((innerData = qobject_cast<StructShaderData *>(m_inner)) != nullptr) innerUniforms = innerData->buildUniformMap(QStringLiteral(".inner")); - QHash<QString, Qt3DRender::Render::ShaderUniform> uniforms = StructShaderData::buildUniformMap(blockName); - QHash<QString, Qt3DRender::Render::ShaderUniform>::const_iterator it = innerUniforms.begin(); - const QHash<QString, Qt3DRender::Render::ShaderUniform>::const_iterator end = innerUniforms.end(); + QHash<QString, Qt3DRender::Render::OpenGL::ShaderUniform> uniforms = StructShaderData::buildUniformMap(blockName); + QHash<QString, Qt3DRender::Render::OpenGL::ShaderUniform>::const_iterator it = innerUniforms.begin(); + const QHash<QString, Qt3DRender::Render::OpenGL::ShaderUniform>::const_iterator end = innerUniforms.end(); while (it != end) { uniforms.insert(blockName + it.key(), it.value()); @@ -361,7 +362,7 @@ void tst_RenderViewUtils::topLevelScalarValueNoUniforms() QVERIFY(backendShaderData != nullptr); // WHEB - Qt3DRender::Render::UniformBlockValueBuilder blockBuilder; + Qt3DRender::Render::OpenGL::UniformBlockValueBuilder blockBuilder; blockBuilder.shaderDataManager = manager.data(); blockBuilder.textureManager = textureManager.data(); blockBuilder.updatedPropertiesOnly = false; @@ -390,7 +391,7 @@ void tst_RenderViewUtils::topLevelScalarValue() QVERIFY(backendShaderData != nullptr); // WHEN - Qt3DRender::Render::UniformBlockValueBuilder blockBuilder; + Qt3DRender::Render::OpenGL::UniformBlockValueBuilder blockBuilder; blockBuilder.shaderDataManager = manager.data(); blockBuilder.textureManager = textureManager.data(); blockBuilder.updatedPropertiesOnly = false; @@ -403,8 +404,8 @@ void tst_RenderViewUtils::topLevelScalarValue() QCOMPARE(blockBuilder.activeUniformNamesToValue.count(), 1); // WHEN - Qt3DRender::Render::UniformBlockValueBuilderHash::const_iterator it = blockBuilder.activeUniformNamesToValue.begin(); - const Qt3DRender::Render::UniformBlockValueBuilderHash::const_iterator end = blockBuilder.activeUniformNamesToValue.end(); + Qt3DRender::Render::OpenGL::UniformBlockValueBuilderHash::const_iterator it = blockBuilder.activeUniformNamesToValue.begin(); + const Qt3DRender::Render::OpenGL::UniformBlockValueBuilderHash::const_iterator end = blockBuilder.activeUniformNamesToValue.end(); while (it != end) { // THEN @@ -432,7 +433,7 @@ void tst_RenderViewUtils::topLevelTextureValueNoUniforms() QVERIFY(backendShaderData != nullptr); // WHEB - Qt3DRender::Render::UniformBlockValueBuilder blockBuilder; + Qt3DRender::Render::OpenGL::UniformBlockValueBuilder blockBuilder; blockBuilder.shaderDataManager = manager.data(); blockBuilder.textureManager = textureManager.data(); blockBuilder.updatedPropertiesOnly = false; @@ -463,7 +464,7 @@ void tst_RenderViewUtils::topLevelTextureValue() QVERIFY(backendShaderData != nullptr); // WHEN - Qt3DRender::Render::UniformBlockValueBuilder blockBuilder; + Qt3DRender::Render::OpenGL::UniformBlockValueBuilder blockBuilder; blockBuilder.shaderDataManager = manager.data(); blockBuilder.textureManager = textureManager.data(); blockBuilder.updatedPropertiesOnly = false; @@ -476,8 +477,8 @@ void tst_RenderViewUtils::topLevelTextureValue() QCOMPARE(blockBuilder.activeUniformNamesToValue.count(), 1); // WHEN - Qt3DRender::Render::UniformBlockValueBuilderHash::const_iterator it = blockBuilder.activeUniformNamesToValue.begin(); - const Qt3DRender::Render::UniformBlockValueBuilderHash::const_iterator end = blockBuilder.activeUniformNamesToValue.end(); + Qt3DRender::Render::OpenGL::UniformBlockValueBuilderHash::const_iterator it = blockBuilder.activeUniformNamesToValue.begin(); + const Qt3DRender::Render::OpenGL::UniformBlockValueBuilderHash::const_iterator end = blockBuilder.activeUniformNamesToValue.end(); while (it != end) { // THEN @@ -505,7 +506,7 @@ void tst_RenderViewUtils::topLevelArrayValue() QVERIFY(backendShaderData != nullptr); // WHEN - Qt3DRender::Render::UniformBlockValueBuilder blockBuilder; + Qt3DRender::Render::OpenGL::UniformBlockValueBuilder blockBuilder; blockBuilder.shaderDataManager = manager.data(); blockBuilder.textureManager = textureManager.data(); blockBuilder.updatedPropertiesOnly = false; @@ -518,8 +519,8 @@ void tst_RenderViewUtils::topLevelArrayValue() QCOMPARE(blockBuilder.activeUniformNamesToValue.count(), 1); // WHEN - Qt3DRender::Render::UniformBlockValueBuilderHash::const_iterator it = blockBuilder.activeUniformNamesToValue.begin(); - const Qt3DRender::Render::UniformBlockValueBuilderHash::const_iterator end = blockBuilder.activeUniformNamesToValue.end(); + Qt3DRender::Render::OpenGL::UniformBlockValueBuilderHash::const_iterator it = blockBuilder.activeUniformNamesToValue.begin(); + const Qt3DRender::Render::OpenGL::UniformBlockValueBuilderHash::const_iterator end = blockBuilder.activeUniformNamesToValue.end(); while (it != end) { // THEN @@ -570,13 +571,13 @@ void tst_RenderViewUtils::nestedShaderDataValue() QVERIFY(backendShaderData3 != nullptr); // WHEN - Qt3DRender::Render::UniformBlockValueBuilder blockBuilder; + Qt3DRender::Render::OpenGL::UniformBlockValueBuilder blockBuilder; blockBuilder.shaderDataManager = manager.data(); blockBuilder.textureManager = textureManager.data(); blockBuilder.updatedPropertiesOnly = false; - blockBuilder.uniforms.insert(QStringLiteral("MyBlock.array[0].scalar"), Qt3DRender::Render::ShaderUniform()); - blockBuilder.uniforms.insert(QStringLiteral("MyBlock.array[1].scalar"), Qt3DRender::Render::ShaderUniform()); - blockBuilder.uniforms.insert(QStringLiteral("MyBlock.array[2].scalar"), Qt3DRender::Render::ShaderUniform()); + blockBuilder.uniforms.insert(QStringLiteral("MyBlock.array[0].scalar"), Qt3DRender::Render::OpenGL::ShaderUniform()); + blockBuilder.uniforms.insert(QStringLiteral("MyBlock.array[1].scalar"), Qt3DRender::Render::OpenGL::ShaderUniform()); + blockBuilder.uniforms.insert(QStringLiteral("MyBlock.array[2].scalar"), Qt3DRender::Render::OpenGL::ShaderUniform()); // build name-value map blockBuilder.buildActiveUniformNameValueMapStructHelper(backendArrayShaderData, QStringLiteral("MyBlock")); @@ -646,7 +647,7 @@ void tst_RenderViewUtils::topLevelStructValue() QVERIFY(backendShaderData != nullptr); // WHEN - Qt3DRender::Render::UniformBlockValueBuilder blockBuilder; + Qt3DRender::Render::OpenGL::UniformBlockValueBuilder blockBuilder; blockBuilder.shaderDataManager = manager.data(); blockBuilder.textureManager = textureManager.data(); blockBuilder.updatedPropertiesOnly = false; @@ -659,8 +660,8 @@ void tst_RenderViewUtils::topLevelStructValue() QCOMPARE(blockBuilder.activeUniformNamesToValue.count(), blockBuilder.uniforms.count()); // WHEN - Qt3DRender::Render::UniformBlockValueBuilderHash::const_iterator it = blockBuilder.activeUniformNamesToValue.begin(); - const Qt3DRender::Render::UniformBlockValueBuilderHash::const_iterator end = blockBuilder.activeUniformNamesToValue.end(); + Qt3DRender::Render::OpenGL::UniformBlockValueBuilderHash::const_iterator it = blockBuilder.activeUniformNamesToValue.begin(); + const Qt3DRender::Render::OpenGL::UniformBlockValueBuilderHash::const_iterator end = blockBuilder.activeUniformNamesToValue.end(); while (it != end) { // THEN @@ -692,13 +693,13 @@ void tst_RenderViewUtils::topLevelDynamicProperties() QVERIFY(backendShaderData != nullptr); // WHEN - Qt3DRender::Render::UniformBlockValueBuilder blockBuilder; + Qt3DRender::Render::OpenGL::UniformBlockValueBuilder blockBuilder; blockBuilder.shaderDataManager = manager.data(); blockBuilder.textureManager = textureManager.data(); blockBuilder.updatedPropertiesOnly = false; - blockBuilder.uniforms.insert(QStringLiteral("MyBlock.scalar"), Qt3DRender::Render::ShaderUniform()); - blockBuilder.uniforms.insert(QStringLiteral("MyBlock.array[0]"), Qt3DRender::Render::ShaderUniform()); - blockBuilder.uniforms.insert(QStringLiteral("MyBlock.texture"), Qt3DRender::Render::ShaderUniform()); + blockBuilder.uniforms.insert(QStringLiteral("MyBlock.scalar"), Qt3DRender::Render::OpenGL::ShaderUniform()); + blockBuilder.uniforms.insert(QStringLiteral("MyBlock.array[0]"), Qt3DRender::Render::OpenGL::ShaderUniform()); + blockBuilder.uniforms.insert(QStringLiteral("MyBlock.texture"), Qt3DRender::Render::OpenGL::ShaderUniform()); // build name-value map blockBuilder.buildActiveUniformNameValueMapStructHelper(backendShaderData, QStringLiteral("MyBlock")); 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 12d538772..5343a6fde 100644 --- a/tests/auto/render/textures/tst_textures.cpp +++ b/tests/auto/render/opengl/textures/tst_textures.cpp @@ -37,13 +37,13 @@ QT_WARNING_DISABLE_DEPRECATED #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> @@ -222,7 +222,7 @@ private Q_SLOTS: { QSKIP("Texture Sharing is now disabled"); QScopedPointer<Qt3DRender::Render::NodeManagers> mgrs(new Qt3DRender::Render::NodeManagers()); - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); renderer.setNodeManagers(mgrs.data()); // GIVEN @@ -250,7 +250,7 @@ private Q_SLOTS: void shouldCreateDifferentGLTexturess() { QScopedPointer<Qt3DRender::Render::NodeManagers> mgrs(new Qt3DRender::Render::NodeManagers()); - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); renderer.setNodeManagers(mgrs.data()); // GIVEN @@ -281,7 +281,7 @@ private Q_SLOTS: QVERIFY(renderer.glResourceManagers()->glTextureManager()->lookupResource(backend[i]->peerId()) != renderer.glResourceManagers()->glTextureManager()->lookupResource(backend[k]->peerId())); - QVector<Qt3DRender::Render::GLTexture *> glTextures; + QVector<Qt3DRender::Render::OpenGL::GLTexture *> glTextures; for (Qt3DRender::Render::Texture *t : backend) glTextures.push_back(renderer.glResourceManagers()->glTextureManager()->lookupResource(t->peerId())); @@ -306,10 +306,10 @@ private Q_SLOTS: void shouldCreateDifferentGLTexturesWhenUsingSharedTextureIds() { QScopedPointer<Qt3DRender::Render::NodeManagers> mgrs(new Qt3DRender::Render::NodeManagers()); - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); renderer.setNodeManagers(mgrs.data()); - Qt3DRender::Render::GLResourceManagers *glMgrs = renderer.glResourceManagers(); + Qt3DRender::Render::OpenGL::GLResourceManagers *glMgrs = renderer.glResourceManagers(); // both texture having the same sharedTextureId { @@ -335,8 +335,8 @@ private Q_SLOTS: renderer.updateTexture(bt2); // THEN - Qt3DRender::Render::GLTexture *glt1 = glMgrs->glTextureManager()->lookupResource(bt1->peerId()); - Qt3DRender::Render::GLTexture *glt2 = glMgrs->glTextureManager()->lookupResource(bt2->peerId()); + Qt3DRender::Render::OpenGL::GLTexture *glt1 = glMgrs->glTextureManager()->lookupResource(bt1->peerId()); + Qt3DRender::Render::OpenGL::GLTexture *glt2 = glMgrs->glTextureManager()->lookupResource(bt2->peerId()); QVERIFY(glt1 != glt2); QCOMPARE(glt1->sharedTextureId(), bt1->sharedTextureId()); QCOMPARE(glt2->sharedTextureId(), bt2->sharedTextureId()); @@ -366,8 +366,8 @@ private Q_SLOTS: renderer.updateTexture(bt2); // THEN - Qt3DRender::Render::GLTexture *glt1 = glMgrs->glTextureManager()->lookupResource(bt1->peerId()); - Qt3DRender::Render::GLTexture *glt2 = glMgrs->glTextureManager()->lookupResource(bt2->peerId()); + Qt3DRender::Render::OpenGL::GLTexture *glt1 = glMgrs->glTextureManager()->lookupResource(bt1->peerId()); + Qt3DRender::Render::OpenGL::GLTexture *glt2 = glMgrs->glTextureManager()->lookupResource(bt2->peerId()); QVERIFY(glt1 != glt2); QCOMPARE(glt1->sharedTextureId(), bt1->sharedTextureId()); QCOMPARE(glt2->sharedTextureId(), bt2->sharedTextureId()); @@ -379,7 +379,7 @@ private Q_SLOTS: void generatorsShouldCreateSameData() { QScopedPointer<Qt3DRender::Render::NodeManagers> mgrs(new Qt3DRender::Render::NodeManagers()); - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); renderer.setNodeManagers(mgrs.data()); // GIVEN @@ -438,7 +438,7 @@ private Q_SLOTS: void checkTextureImageCleanupState() { // GIVEN - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); TestTextureImage img(1); img.setLayer(2); img.setMipLevel(3); @@ -462,7 +462,7 @@ private Q_SLOTS: void checkTextureImageInitializeFromPeer() { // GIVEN - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); TestTextureImage img(1); { @@ -594,7 +594,7 @@ private Q_SLOTS: void checkTextureImageProperlyReleaseGenerator() { QScopedPointer<Qt3DRender::Render::NodeManagers> mgrs(new Qt3DRender::Render::NodeManagers()); - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); Qt3DRender::Render::TextureManager *texMgr = mgrs->textureManager(); Qt3DRender::Render::TextureImageManager *texImgMgr = mgrs->textureImageManager(); renderer.setNodeManagers(mgrs.data()); @@ -634,7 +634,7 @@ private Q_SLOTS: void checkTextureIsMarkedForDeletion() { QScopedPointer<Qt3DRender::Render::NodeManagers> mgrs(new Qt3DRender::Render::NodeManagers()); - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); Qt3DRender::Render::TextureManager *texMgr = mgrs->textureManager(); renderer.setNodeManagers(mgrs.data()); @@ -668,7 +668,7 @@ private Q_SLOTS: void checkTextureDestructionReconstructionWithinSameLoop() { QScopedPointer<Qt3DRender::Render::NodeManagers> mgrs(new Qt3DRender::Render::NodeManagers()); - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); Qt3DRender::Render::TextureManager *texMgr = mgrs->textureManager(); renderer.setNodeManagers(mgrs.data()); @@ -707,7 +707,7 @@ private Q_SLOTS: { // GIVEN QScopedPointer<Qt3DRender::Render::NodeManagers> mgrs(new Qt3DRender::Render::NodeManagers()); - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); + Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); Qt3DRender::Render::TextureManager *texMgr = mgrs->textureManager(); Qt3DRender::Render::TextureImageManager *texImgMgr = mgrs->textureImageManager(); renderer.setNodeManagers(mgrs.data()); 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/qgraphicsapifilter/tst_qgraphicsapifilter.cpp b/tests/auto/render/qgraphicsapifilter/tst_qgraphicsapifilter.cpp index bbc5219f8..ea14c27bb 100644 --- a/tests/auto/render/qgraphicsapifilter/tst_qgraphicsapifilter.cpp +++ b/tests/auto/render/qgraphicsapifilter/tst_qgraphicsapifilter.cpp @@ -29,7 +29,7 @@ #include <QtTest/QTest> #include <QObject> #include <Qt3DRender/qgraphicsapifilter.h> -#include <QtGui/qopenglcontext.h> +#include <qopenglcontext.h> #include <QtCore/qsharedpointer.h> #include <QSignalSpy> 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..85b5e8c89 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> @@ -87,32 +87,32 @@ namespace Qt3DRender { QVector<Qt3DCore::QAspectJobPtr> worldTransformJob() { - static_cast<Render::Renderer *>(d_func()->m_renderer)->m_worldTransformJob->setRoot(d_func()->m_renderer->sceneRoot()); - return QVector<Qt3DCore::QAspectJobPtr>() << static_cast<Render::Renderer *>(d_func()->m_renderer)->m_worldTransformJob; + static_cast<Render::OpenGL::Renderer *>(d_func()->m_renderer)->m_worldTransformJob->setRoot(d_func()->m_renderer->sceneRoot()); + return QVector<Qt3DCore::QAspectJobPtr>() << static_cast<Render::OpenGL::Renderer *>(d_func()->m_renderer)->m_worldTransformJob; } QVector<Qt3DCore::QAspectJobPtr> updateBoundingJob() { - static_cast<Render::Renderer *>(d_func()->m_renderer)->m_updateWorldBoundingVolumeJob->setManager(d_func()->m_renderer->nodeManagers()->renderNodesManager()); - return QVector<Qt3DCore::QAspectJobPtr>() << static_cast<Render::Renderer *>(d_func()->m_renderer)->m_updateWorldBoundingVolumeJob; + static_cast<Render::OpenGL::Renderer *>(d_func()->m_renderer)->m_updateWorldBoundingVolumeJob->setManager(d_func()->m_renderer->nodeManagers()->renderNodesManager()); + return QVector<Qt3DCore::QAspectJobPtr>() << static_cast<Render::OpenGL::Renderer *>(d_func()->m_renderer)->m_updateWorldBoundingVolumeJob; } QVector<Qt3DCore::QAspectJobPtr> calculateBoundingVolumeJob() { - static_cast<Render::Renderer *>(d_func()->m_renderer)->m_calculateBoundingVolumeJob->setRoot(d_func()->m_renderer->sceneRoot()); - return QVector<Qt3DCore::QAspectJobPtr>() << static_cast<Render::Renderer *>(d_func()->m_renderer)->m_calculateBoundingVolumeJob; + static_cast<Render::OpenGL::Renderer *>(d_func()->m_renderer)->m_calculateBoundingVolumeJob->setRoot(d_func()->m_renderer->sceneRoot()); + return QVector<Qt3DCore::QAspectJobPtr>() << static_cast<Render::OpenGL::Renderer *>(d_func()->m_renderer)->m_calculateBoundingVolumeJob; } QVector<Qt3DCore::QAspectJobPtr> framePreparationJob() { - static_cast<Render::Renderer *>(d_func()->m_renderer)->m_updateShaderDataTransformJob->setManagers(d_func()->m_renderer->nodeManagers()); - return QVector<Qt3DCore::QAspectJobPtr>() << static_cast<Render::Renderer *>(d_func()->m_renderer)->m_updateShaderDataTransformJob; + static_cast<Render::OpenGL::Renderer *>(d_func()->m_renderer)->m_updateShaderDataTransformJob->setManagers(d_func()->m_renderer->nodeManagers()); + return QVector<Qt3DCore::QAspectJobPtr>() << static_cast<Render::OpenGL::Renderer *>(d_func()->m_renderer)->m_updateShaderDataTransformJob; } QVector<Qt3DCore::QAspectJobPtr> frameCleanupJob() { - static_cast<Render::Renderer *>(d_func()->m_renderer)->m_cleanupJob->setRoot(d_func()->m_renderer->sceneRoot()); - return QVector<Qt3DCore::QAspectJobPtr>() << static_cast<Render::Renderer *>(d_func()->m_renderer)->m_cleanupJob; + static_cast<Render::OpenGL::Renderer *>(d_func()->m_renderer)->m_cleanupJob->setRoot(d_func()->m_renderer->sceneRoot()); + return QVector<Qt3DCore::QAspectJobPtr>() << static_cast<Render::OpenGL::Renderer *>(d_func()->m_renderer)->m_cleanupJob; } QVector<Qt3DCore::QAspectJobPtr> renderBinJobs() @@ -140,7 +140,7 @@ namespace Qt3DRender { for (const auto &node: nodes) d_func()->createBackendNode(node); - static_cast<Qt3DRender::Render::Renderer *>(d_func()->m_renderer)->m_renderSceneRoot = + static_cast<Qt3DRender::Render::OpenGL::Renderer *>(d_func()->m_renderer)->m_renderSceneRoot = d_func()->m_renderer->nodeManagers() ->lookupResource<Qt3DRender::Render::Entity, Qt3DRender::Render::EntityManager>(root->id()); } 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..340bfdda4 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> @@ -90,9 +90,9 @@ public: return d_func()->m_renderer->nodeManagers(); } - Render::MaterialParameterGathererJobPtr materialGathererJob() const + Render::OpenGL::MaterialParameterGathererJobPtr materialGathererJob() const { - Render::MaterialParameterGathererJobPtr job = Render::MaterialParameterGathererJobPtr::create(); + Render::OpenGL::MaterialParameterGathererJobPtr job = Render::OpenGL::MaterialParameterGathererJobPtr::create(); job->setNodeManagers(nodeManagers()); return job; } @@ -136,7 +136,7 @@ private Q_SLOTS: QScopedPointer<Qt3DRender::TestAspect> aspect(new Qt3DRender::TestAspect(buildTestScene(2000))); // WHEN - Qt3DRender::Render::MaterialParameterGathererJobPtr gatheringJob = aspect->materialGathererJob(); + Qt3DRender::Render::OpenGL::MaterialParameterGathererJobPtr gatheringJob = aspect->materialGathererJob(); gatheringJob->setHandles(aspect->nodeManagers()->materialManager()->activeHandles()); QBENCHMARK { |