diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-04-03 11:28:20 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-04-10 21:09:47 +0000 |
commit | 8c2c20e465f20c61a577b3786154222a2173acd6 (patch) | |
tree | 3a5a83114914c3a1a0548b7f46b1d6b6c2a8b4af | |
parent | eeb1938e70d64ae7eddcb34001045ef965e3d421 (diff) |
QScissorTest creates creation changes
Change-Id: I5e476276cb7b7f1e12859df708be5fe3077419bc
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r-- | src/render/renderstates/qscissortest.cpp | 37 | ||||
-rw-r--r-- | src/render/renderstates/qscissortest.h | 1 | ||||
-rw-r--r-- | src/render/renderstates/qscissortest_p.h | 89 | ||||
-rw-r--r-- | src/render/renderstates/renderstates.pri | 3 |
4 files changed, 106 insertions, 24 deletions
diff --git a/src/render/renderstates/qscissortest.cpp b/src/render/renderstates/qscissortest.cpp index a0d637119..322b323da 100644 --- a/src/render/renderstates/qscissortest.cpp +++ b/src/render/renderstates/qscissortest.cpp @@ -39,34 +39,13 @@ ****************************************************************************/ #include "qscissortest.h" -#include "qrenderstate_p.h" -#include <private/qnode_p.h> -#include <Qt3DCore/qscenepropertychange.h> - +#include "qscissortest_p.h" +#include <Qt3DRender/private/qrenderstatecreatedchange_p.h> QT_BEGIN_NAMESPACE namespace Qt3DRender { -class QScissorTestPrivate : public QRenderStatePrivate -{ -public: - QScissorTestPrivate() - : QRenderStatePrivate(QRenderStatePrivate::ScissorTest) - , m_left(0) - , m_bottom(0) - , m_width(0) - , m_height(0) - { - } - - Q_DECLARE_PUBLIC(QScissorTest) - int m_left; - int m_bottom; - int m_width; - int m_height; -}; - QScissorTest::QScissorTest(QNode *parent) : QRenderState(*new QScissorTestPrivate, parent) { @@ -147,6 +126,18 @@ void QScissorTest::setHeight(int height) } } +Qt3DCore::QNodeCreatedChangeBasePtr QScissorTest::createNodeCreationChange() const +{ + auto creationChange = QRenderStateCreatedChangePtr<QScissorTestData>::create(this); + auto &data = creationChange->data; + Q_D(const QScissorTest); + data.left = d->m_left; + data.bottom = d->m_bottom; + data.width = d->m_width; + data.height = d->m_height; + return creationChange; +} + } // namespace Qt3DRender QT_END_NAMESPACE diff --git a/src/render/renderstates/qscissortest.h b/src/render/renderstates/qscissortest.h index 4d3e437fb..08291a0e8 100644 --- a/src/render/renderstates/qscissortest.h +++ b/src/render/renderstates/qscissortest.h @@ -84,6 +84,7 @@ protected: private: Q_DECLARE_PRIVATE(QScissorTest) QT3D_CLONEABLE(QScissorTest) + Qt3DCore::QNodeCreatedChangeBasePtr createNodeCreationChange() const Q_DECL_OVERRIDE; }; } // namespace Qt3DRender diff --git a/src/render/renderstates/qscissortest_p.h b/src/render/renderstates/qscissortest_p.h new file mode 100644 index 000000000..101ca7b25 --- /dev/null +++ b/src/render/renderstates/qscissortest_p.h @@ -0,0 +1,89 @@ +/**************************************************************************** +** +** 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_QSCISSORTEST_P_H +#define QT3DRENDER_QSCISSORTEST_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/qscissortest.h> + +QT_BEGIN_NAMESPACE + +namespace Qt3DRender { + +class QScissorTestPrivate : public QRenderStatePrivate +{ +public: + QScissorTestPrivate() + : QRenderStatePrivate(QRenderStatePrivate::ScissorTest) + , m_left(0) + , m_bottom(0) + , m_width(0) + , m_height(0) + { + } + + Q_DECLARE_PUBLIC(QScissorTest) + int m_left; + int m_bottom; + int m_width; + int m_height; +}; + +struct QScissorTestData +{ + int left; + int bottom; + int width; + int height; +}; + +} // namespace Qt3DRender + +QT_END_NAMESPACE + +#endif // QT3DRENDER_QSCISSORTEST_P_H diff --git a/src/render/renderstates/renderstates.pri b/src/render/renderstates/renderstates.pri index 6abb57f88..6b31cca2e 100644 --- a/src/render/renderstates/renderstates.pri +++ b/src/render/renderstates/renderstates.pri @@ -37,7 +37,8 @@ HEADERS += \ $$PWD/qdepthtest_p.h \ $$PWD/qfrontface_p.h \ $$PWD/qpointsize_p.h \ - $$PWD/qpolygonoffset_p.h + $$PWD/qpolygonoffset_p.h \ + $$PWD/qscissortest_p.h SOURCES += \ |