diff options
Diffstat (limited to 'src/quick/scenegraph/util')
-rw-r--r-- | src/quick/scenegraph/util/qsgengine.cpp | 5 | ||||
-rw-r--r-- | src/quick/scenegraph/util/qsgengine.h | 5 | ||||
-rw-r--r-- | src/quick/scenegraph/util/qsgengine_p.h | 2 | ||||
-rw-r--r-- | src/quick/scenegraph/util/qsgopenglatlastexture.cpp | 5 | ||||
-rw-r--r-- | src/quick/scenegraph/util/qsgplaintexture.cpp | 19 | ||||
-rw-r--r-- | src/quick/scenegraph/util/qsgrhiatlastexture.cpp | 6 | ||||
-rw-r--r-- | src/quick/scenegraph/util/qsgrhinativetextureimporter.cpp | 104 | ||||
-rw-r--r-- | src/quick/scenegraph/util/qsgrhinativetextureimporter_p.h | 70 | ||||
-rw-r--r-- | src/quick/scenegraph/util/qsgsimplematerial.cpp | 4 | ||||
-rw-r--r-- | src/quick/scenegraph/util/qsgsimplematerial.h | 7 |
10 files changed, 47 insertions, 180 deletions
diff --git a/src/quick/scenegraph/util/qsgengine.cpp b/src/quick/scenegraph/util/qsgengine.cpp index 4880d98871..aec981871b 100644 --- a/src/quick/scenegraph/util/qsgengine.cpp +++ b/src/quick/scenegraph/util/qsgengine.cpp @@ -51,6 +51,7 @@ QT_BEGIN_NAMESPACE +#if QT_DEPRECATED_SINCE(5, 15) /*! \class QSGEngine @@ -58,6 +59,8 @@ QT_BEGIN_NAMESPACE \inmodule QtQuick \since 5.4 + \deprecated + A QSGEngine can be used to render a tree of QSGNode directly on a QWindow or QOpenGLFramebufferObject without any integration with QML, QQuickWindow or QQuickItem and the convenience that they provide. @@ -285,6 +288,8 @@ QSGNinePatchNode *QSGEngine::createNinePatchNode() const return d->sgRenderContext->isValid() ? d->sgRenderContext->sceneGraphContext()->createNinePatchNode() : nullptr; } +#endif + QT_END_NAMESPACE #include "moc_qsgengine.cpp" diff --git a/src/quick/scenegraph/util/qsgengine.h b/src/quick/scenegraph/util/qsgengine.h index c5a59b47e7..f00b7a0b6f 100644 --- a/src/quick/scenegraph/util/qsgengine.h +++ b/src/quick/scenegraph/util/qsgengine.h @@ -54,8 +54,7 @@ class QSGRectangleNode; class QSGImageNode; class QSGNinePatchNode; -// ### Qt 6: Remove or redesign. - +#if QT_DEPRECATED_SINCE(5, 15) class Q_QUICK_EXPORT QSGEngine : public QObject { Q_OBJECT @@ -73,6 +72,7 @@ public: explicit QSGEngine(QObject *parent = nullptr); ~QSGEngine() override; + QT_DEPRECATED_X("QSGEngine is going to be removed in Qt 6.0. Use QQuickRenderControl instead.") void initialize(QOpenGLContext *context); void invalidate(); @@ -84,6 +84,7 @@ public: QSGImageNode *createImageNode() const; QSGNinePatchNode *createNinePatchNode() const; }; +#endif QT_END_NAMESPACE diff --git a/src/quick/scenegraph/util/qsgengine_p.h b/src/quick/scenegraph/util/qsgengine_p.h index c5b5c695bd..662c32d3d9 100644 --- a/src/quick/scenegraph/util/qsgengine_p.h +++ b/src/quick/scenegraph/util/qsgengine_p.h @@ -59,6 +59,7 @@ QT_BEGIN_NAMESPACE class QSGContext; class QSGRenderContext; +#if QT_DEPRECATED_SINCE(5, 15) class QSGEnginePrivate : public QObjectPrivate { Q_DECLARE_PUBLIC(QSGEngine) @@ -69,6 +70,7 @@ public: QScopedPointer<QSGContext> sgContext; QScopedPointer<QSGRenderContext> sgRenderContext; }; +#endif QT_END_NAMESPACE diff --git a/src/quick/scenegraph/util/qsgopenglatlastexture.cpp b/src/quick/scenegraph/util/qsgopenglatlastexture.cpp index 75a874424a..18c72286d1 100644 --- a/src/quick/scenegraph/util/qsgopenglatlastexture.cpp +++ b/src/quick/scenegraph/util/qsgopenglatlastexture.cpp @@ -59,6 +59,8 @@ #include <private/qquickprofiler_p.h> +#include <qtquick_tracepoints_p.h> + QT_BEGIN_NAMESPACE #ifndef GL_BGRA @@ -250,14 +252,17 @@ void AtlasBase::bind(QSGTexture::Filtering filtering) if (profileFrames) qsg_renderer_timer.start(); + Q_TRACE_SCOPE(QSG_texture_prepare); Q_QUICK_SG_PROFILE_START(QQuickProfiler::SceneGraphTexturePrepare); // Skip bind, convert, swizzle; they're irrelevant Q_QUICK_SG_PROFILE_SKIP(QQuickProfiler::SceneGraphTexturePrepare, QQuickProfiler::SceneGraphTexturePrepareStart, 3); + Q_TRACE(QSG_texture_upload_entry); uploadPendingTexture(i); + Q_TRACE(QSG_texture_upload_exit); Q_QUICK_SG_PROFILE_RECORD(QQuickProfiler::SceneGraphTexturePrepare, QQuickProfiler::SceneGraphTexturePrepareUpload); diff --git a/src/quick/scenegraph/util/qsgplaintexture.cpp b/src/quick/scenegraph/util/qsgplaintexture.cpp index fdebe03494..f00918bb4e 100644 --- a/src/quick/scenegraph/util/qsgplaintexture.cpp +++ b/src/quick/scenegraph/util/qsgplaintexture.cpp @@ -38,7 +38,6 @@ ****************************************************************************/ #include "qsgplaintexture_p.h" -#include "qsgrhinativetextureimporter_p.h" #include <QtQuick/private/qsgcontext_p.h> #include <qmath.h> #include <private/qquickprofiler_p.h> @@ -53,6 +52,8 @@ #endif #include <QtGui/private/qrhi_p.h> +#include <qtquick_tracepoints_p.h> + #if QT_CONFIG(opengl) static QElapsedTimer qsg_renderer_timer; #endif @@ -150,9 +151,11 @@ void QSGPlainTexture::setTextureId(int id) // legacy (GL-only) void QSGPlainTexture::bind() // legacy (GL-only) { #if QT_CONFIG(opengl) + Q_TRACE_SCOPE(QSG_texture_prepare); QOpenGLContext *context = QOpenGLContext::currentContext(); QOpenGLFunctions *funcs = context->functions(); if (!m_dirty_texture) { + Q_TRACE_SCOPE(QSG_texture_bind); funcs->glBindTexture(GL_TEXTURE_2D, m_texture_id); if (mipmapFiltering() != QSGTexture::None && !m_mipmaps_generated) { funcs->glGenerateMipmap(GL_TEXTURE_2D); @@ -174,6 +177,7 @@ void QSGPlainTexture::bind() // legacy (GL-only) if (m_image.isNull()) { if (m_texture_id && m_owns_texture) { + Q_TRACE_SCOPE(QSG_texture_delete); funcs->glDeleteTextures(1, &m_texture_id); qCDebug(QSG_LOG_TIME_TEXTURE, "plain texture deleted in %dms - %dx%d", (int) qsg_renderer_timer.elapsed(), @@ -189,6 +193,8 @@ void QSGPlainTexture::bind() // legacy (GL-only) return; } + Q_TRACE(QSG_texture_bind_entry); + if (m_texture_id == 0) funcs->glGenTextures(1, &m_texture_id); funcs->glBindTexture(GL_TEXTURE_2D, m_texture_id); @@ -196,8 +202,10 @@ void QSGPlainTexture::bind() // legacy (GL-only) qint64 bindTime = 0; if (profileFrames) bindTime = qsg_renderer_timer.nsecsElapsed(); + Q_TRACE(QSG_texture_bind_exit); Q_QUICK_SG_PROFILE_RECORD(QQuickProfiler::SceneGraphTexturePrepare, QQuickProfiler::SceneGraphTexturePrepareBind); + Q_TRACE(QSG_texture_upload_entry); // ### TODO: check for out-of-memory situations... @@ -232,8 +240,10 @@ void QSGPlainTexture::bind() // legacy (GL-only) qint64 uploadTime = 0; if (profileFrames) uploadTime = qsg_renderer_timer.nsecsElapsed(); + Q_TRACE(QSG_texture_upload_exit); Q_QUICK_SG_PROFILE_RECORD(QQuickProfiler::SceneGraphTexturePrepare, QQuickProfiler::SceneGraphTexturePrepareUpload); + Q_TRACE(QSG_texture_mipmap_entry); if (mipmapFiltering() != QSGTexture::None) { funcs->glGenerateMipmap(GL_TEXTURE_2D); @@ -252,6 +262,7 @@ void QSGPlainTexture::bind() // legacy (GL-only) int((mipmapTime - uploadTime)/1000000), m_texture_size != m_image.size() ? " (scaled to GL_MAX_TEXTURE_SIZE)" : ""); } + Q_TRACE(QSG_texture_mipmap_exit); Q_QUICK_SG_PROFILE_END(QQuickProfiler::SceneGraphTexturePrepare, QQuickProfiler::SceneGraphTexturePrepareMipmap); @@ -281,14 +292,14 @@ void QSGPlainTexture::setTextureFromNativeObject(QRhi *rhi, QQuickWindow::Native { Q_UNUSED(type); - QRhiTexture::Flags flags = 0; + QRhiTexture::Flags flags; if (mipmap) flags |= QRhiTexture::MipMapped | QRhiTexture::UsedWithGenerateMips; QRhiTexture *t = rhi->newTexture(QRhiTexture::RGBA8, size, 1, flags); // ownership of the native object is never taken - QSGRhiNativeTextureImporter::buildWrapper(rhi, t, nativeObjectPtr, nativeLayout); + t->buildFrom({nativeObjectPtr, nativeLayout}); setTexture(t); } @@ -421,7 +432,7 @@ void QSGPlainTexturePrivate::updateRhiTexture(QRhi *rhi, QRhiResourceUpdateBatch } if (!q->m_texture) { - QRhiTexture::Flags f = 0; + QRhiTexture::Flags f; if (hasMipMaps) f |= QRhiTexture::MipMapped | QRhiTexture::UsedWithGenerateMips; diff --git a/src/quick/scenegraph/util/qsgrhiatlastexture.cpp b/src/quick/scenegraph/util/qsgrhiatlastexture.cpp index 3dc1f5f526..6b5f1aec4f 100644 --- a/src/quick/scenegraph/util/qsgrhiatlastexture.cpp +++ b/src/quick/scenegraph/util/qsgrhiatlastexture.cpp @@ -49,6 +49,9 @@ #include <private/qquickprofiler_p.h> #include <private/qsgdefaultrendercontext_p.h> #include <private/qsgtexture_p.h> + +#include <qtquick_tracepoints_p.h> + #if 0 #include <private/qsgcompressedtexture_p.h> #include <private/qsgcompressedatlastexture_p.h> @@ -197,14 +200,17 @@ void AtlasBase::updateRhiTexture(QRhiResourceUpdateBatch *resourceUpdates) if (profileFrames) qsg_renderer_timer.start(); + Q_TRACE_SCOPE(QSG_texture_prepare); Q_QUICK_SG_PROFILE_START(QQuickProfiler::SceneGraphTexturePrepare); // Skip bind, convert, swizzle; they're irrelevant Q_QUICK_SG_PROFILE_SKIP(QQuickProfiler::SceneGraphTexturePrepare, QQuickProfiler::SceneGraphTexturePrepareStart, 3); + Q_TRACE(QSG_texture_upload_entry); enqueueTextureUpload(t, resourceUpdates); + Q_TRACE(QSG_texture_upload_exit); Q_QUICK_SG_PROFILE_RECORD(QQuickProfiler::SceneGraphTexturePrepare, QQuickProfiler::SceneGraphTexturePrepareUpload); diff --git a/src/quick/scenegraph/util/qsgrhinativetextureimporter.cpp b/src/quick/scenegraph/util/qsgrhinativetextureimporter.cpp deleted file mode 100644 index 7a7c19f587..0000000000 --- a/src/quick/scenegraph/util/qsgrhinativetextureimporter.cpp +++ /dev/null @@ -1,104 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2019 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtQuick 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 "qsgrhinativetextureimporter_p.h" -#include <private/qsgrhisupport_p.h> // to get all the relevant qrhi headers - -QT_BEGIN_NAMESPACE - -void QSGRhiNativeTextureImporter::buildWrapper(QRhi *rhi, QRhiTexture *t, - const void *nativeObjectPtr, int nativeLayout) -{ -#if !QT_CONFIG(vulkan) - Q_UNUSED(nativeLayout); -#endif -#if !QT_CONFIG(opengl) && !QT_CONFIG(vulkan) && !defined(Q_OS_WIN) && !defined(Q_OS_DARWIN) - Q_UNUSED(nativeObjectPtr); -#endif - - switch (rhi->backend()) { - case QRhi::OpenGLES2: - { -#if QT_CONFIG(opengl) - QRhiGles2TextureNativeHandles h; - h.texture = *reinterpret_cast<const uint *>(nativeObjectPtr); - t->buildFrom(&h); -#endif - } - break; - case QRhi::Vulkan: - { -#if QT_CONFIG(vulkan) - QRhiVulkanTextureNativeHandles h; - h.image = *reinterpret_cast<const VkImage *>(nativeObjectPtr); - h.layout = VkImageLayout(nativeLayout); - t->buildFrom(&h); -#endif - } - break; - case QRhi::D3D11: - { -#ifdef Q_OS_WIN - QRhiD3D11TextureNativeHandles h; - h.texture = *reinterpret_cast<void * const *>(nativeObjectPtr); - t->buildFrom(&h); -#endif - } - break; - case QRhi::Metal: - { -#ifdef Q_OS_DARWIN - QRhiMetalTextureNativeHandles h; - h.texture = *reinterpret_cast<void * const *>(nativeObjectPtr); - t->buildFrom(&h); -#endif - } - break; - case QRhi::Null: - t->build(); - break; - default: - qWarning("QSGRhiNativeTextureImporter: encountered an unsupported QRhi backend (%d)", - int(rhi->backend())); - t->build(); - break; - } -} - -QT_END_NAMESPACE diff --git a/src/quick/scenegraph/util/qsgrhinativetextureimporter_p.h b/src/quick/scenegraph/util/qsgrhinativetextureimporter_p.h deleted file mode 100644 index e811109a94..0000000000 --- a/src/quick/scenegraph/util/qsgrhinativetextureimporter_p.h +++ /dev/null @@ -1,70 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2019 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtQuick 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 QSGRHINATIVETEXTUREIMPORTER_P_H -#define QSGRHINATIVETEXTUREIMPORTER_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include <QtQuick/private/qtquickglobal_p.h> - -QT_BEGIN_NAMESPACE - -class QRhi; -class QRhiTexture; - -class QSGRhiNativeTextureImporter -{ -public: - static void buildWrapper(QRhi *rhi, QRhiTexture *t, - const void *nativeObjectPtr, int nativeLayout); -}; - -QT_END_NAMESPACE - -#endif // QSGRHINATIVETEXTUREIMPORTER_P_H diff --git a/src/quick/scenegraph/util/qsgsimplematerial.cpp b/src/quick/scenegraph/util/qsgsimplematerial.cpp index 1064caccc7..4bbc2b17ba 100644 --- a/src/quick/scenegraph/util/qsgsimplematerial.cpp +++ b/src/quick/scenegraph/util/qsgsimplematerial.cpp @@ -46,6 +46,8 @@ \inmodule QtQuick \ingroup qtquick-scenegraph-materials + \deprecated + \warning This utility class is only functional when running with the legacy OpenGL renderer of the Qt Quick scenegraph. Its usage is not recommended in new application code. @@ -234,6 +236,8 @@ /*! \class QSGSimpleMaterial + \deprecated + \inmodule QtQuick \ingroup qtquick-scenegraph-materials diff --git a/src/quick/scenegraph/util/qsgsimplematerial.h b/src/quick/scenegraph/util/qsgsimplematerial.h index 79180ca8e2..78cd05f2d8 100644 --- a/src/quick/scenegraph/util/qsgsimplematerial.h +++ b/src/quick/scenegraph/util/qsgsimplematerial.h @@ -44,6 +44,8 @@ QT_BEGIN_NAMESPACE +#if QT_DEPRECATED_SINCE(5, 15) + template <typename State> class QSGSimpleMaterialShader : public QSGMaterialShader { @@ -77,6 +79,7 @@ public: void updateState(const RenderState &state, QSGMaterial *newMaterial, QSGMaterial *oldMaterial) override; + QT_DEPRECATED_X("QSGSimpleMaterialShader is going to be removed in Qt 6.0. Use QSGMaterialShader instead.") virtual void updateState(const State *newState, const State *oldState) = 0; virtual void resolveUniforms() {} @@ -139,12 +142,14 @@ class QSGSimpleMaterial : public QSGMaterial { public: #ifndef Q_CLANG_QDOC + QT_DEPRECATED_X("QSGSimpleMaterial is going to be removed in Qt 6.0. Use QSGMaterial instead.") QSGSimpleMaterial(const State &aState, PtrShaderCreateFunc func) : m_state(aState) , m_func(func) { } + QT_DEPRECATED_X("QSGSimpleMaterial is going to be removed in Qt 6.0. Use QSGMaterial instead.") QSGSimpleMaterial(PtrShaderCreateFunc func) : m_func(func) { @@ -213,6 +218,8 @@ Q_INLINE_TEMPLATE void QSGSimpleMaterialShader<State>::updateState(const RenderS updateState(ns, old); } +#endif + QT_END_NAMESPACE |