diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-04-03 09:35:23 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-04-10 21:09:23 +0000 |
commit | 2290501e3b1f2f3dfd2751a23f77aec80d4964cc (patch) | |
tree | 8e496fedacad0b4f5f44be1ed85ba0886ecbbe96 | |
parent | ea1848bf0a3436ad32f38413e609de81e20d3d5b (diff) |
QAlphaState creates creation changes
Change-Id: I3c12a75146fc8753f6c8dbfc2026dffa896fb67f
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r-- | src/render/renderstates/qalphatest.cpp | 30 | ||||
-rw-r--r-- | src/render/renderstates/qalphatest.h | 1 | ||||
-rw-r--r-- | src/render/renderstates/qalphatest_p.h | 83 | ||||
-rw-r--r-- | src/render/renderstates/renderstates.pri | 3 |
4 files changed, 98 insertions, 19 deletions
diff --git a/src/render/renderstates/qalphatest.cpp b/src/render/renderstates/qalphatest.cpp index 3532bd493..676e30008 100644 --- a/src/render/renderstates/qalphatest.cpp +++ b/src/render/renderstates/qalphatest.cpp @@ -39,29 +39,13 @@ ****************************************************************************/ #include "qalphatest.h" -#include "qrenderstate_p.h" -#include <private/qnode_p.h> -#include <Qt3DCore/qscenepropertychange.h> +#include "qalphatest_p.h" +#include <Qt3DRender/private/qrenderstatecreatedchange_p.h> QT_BEGIN_NAMESPACE namespace Qt3DRender { -class QAlphaTestPrivate : public QRenderStatePrivate -{ -public: - QAlphaTestPrivate() - : QRenderStatePrivate(QRenderStatePrivate::AlphaTest) - , m_alphaFunction(QAlphaTest::Never) - , m_referenceValue(0.0f) - { - } - - Q_DECLARE_PUBLIC(QAlphaTest) - QAlphaTest::AlphaFunction m_alphaFunction; - float m_referenceValue; -}; - QAlphaTest::QAlphaTest(QNode *parent) : QRenderState(*new QAlphaTestPrivate, parent) { @@ -110,6 +94,16 @@ void QAlphaTest::setReferenceValue(float referenceValue) } } +Qt3DCore::QNodeCreatedChangeBasePtr QAlphaTest::createNodeCreationChange() const +{ + auto creationChange = QRenderStateCreatedChangePtr<QAlphaTestData>::create(this); + auto &data = creationChange->data; + Q_D(const QAlphaTest); + data.alphaFunction = d->m_alphaFunction; + data.referenceValue = d->m_referenceValue; + return creationChange; +} + } // namespace Qt3DRender QT_END_NAMESPACE diff --git a/src/render/renderstates/qalphatest.h b/src/render/renderstates/qalphatest.h index 4bab6e196..7ce2f0138 100644 --- a/src/render/renderstates/qalphatest.h +++ b/src/render/renderstates/qalphatest.h @@ -88,6 +88,7 @@ protected: private: Q_DECLARE_PRIVATE(QAlphaTest) QT3D_CLONEABLE(QAlphaTest) + Qt3DCore::QNodeCreatedChangeBasePtr createNodeCreationChange() const Q_DECL_OVERRIDE; }; } // namespace Qt3DRender diff --git a/src/render/renderstates/qalphatest_p.h b/src/render/renderstates/qalphatest_p.h new file mode 100644 index 000000000..991da67ff --- /dev/null +++ b/src/render/renderstates/qalphatest_p.h @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://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.LGPLv3 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.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 later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QT3DRENDER_QALPHATEST_P_H +#define QT3DRENDER_QALPHATEST_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/qrenderstate_p.h> +#include <Qt3DRender/qalphatest.h> + +QT_BEGIN_NAMESPACE + +namespace Qt3DRender { + +class QAlphaTestPrivate : public QRenderStatePrivate +{ +public: + QAlphaTestPrivate() + : QRenderStatePrivate(QRenderStatePrivate::AlphaTest) + , m_alphaFunction(QAlphaTest::Never) + , m_referenceValue(0.0f) + { + } + + Q_DECLARE_PUBLIC(QAlphaTest) + QAlphaTest::AlphaFunction m_alphaFunction; + float m_referenceValue; +}; + +struct QAlphaTestData +{ + QAlphaTest::AlphaFunction alphaFunction; + float referenceValue; +}; + +} // namespace Qt3DRender + +QT_END_NAMESPACE + +#endif // QT3DRENDER_QALPHATEST_P_H diff --git a/src/render/renderstates/renderstates.pri b/src/render/renderstates/renderstates.pri index 3b234fb6d..501dfffb6 100644 --- a/src/render/renderstates/renderstates.pri +++ b/src/render/renderstates/renderstates.pri @@ -27,7 +27,8 @@ HEADERS += \ $$PWD/renderstatecollection_p.h \ $$PWD/qseamlesscubemap.h \ $$PWD/qdepthtest.h \ - $$PWD/qnodepthmask.h + $$PWD/qnodepthmask.h \ + $$PWD/qalphatest_p.h SOURCES += \ |