diff options
Diffstat (limited to 'src/quick3d/quick3drender/items')
-rw-r--r-- | src/quick3d/quick3drender/items/items.pri | 4 | ||||
-rw-r--r-- | src/quick3d/quick3drender/items/quick3dbuffer.cpp | 145 | ||||
-rw-r--r-- | src/quick3d/quick3drender/items/quick3dbuffer_p.h | 106 | ||||
-rw-r--r-- | src/quick3d/quick3drender/items/quick3dgeometry.cpp | 93 | ||||
-rw-r--r-- | src/quick3d/quick3drender/items/quick3dgeometry_p.h | 92 |
5 files changed, 0 insertions, 440 deletions
diff --git a/src/quick3d/quick3drender/items/items.pri b/src/quick3d/quick3drender/items/items.pri index e264624b3..4bfb1ae4a 100644 --- a/src/quick3d/quick3drender/items/items.pri +++ b/src/quick3d/quick3drender/items/items.pri @@ -1,8 +1,6 @@ HEADERS += \ $$PWD/quick3dtechniquefilter_p.h \ - $$PWD/quick3dbuffer_p.h \ $$PWD/quick3deffect_p.h \ - $$PWD/quick3dgeometry_p.h \ $$PWD/quick3dlayerfilter_p.h \ $$PWD/quick3dmaterial_p.h \ $$PWD/quick3drenderpass_p.h \ @@ -40,8 +38,6 @@ SOURCES += \ $$PWD/quick3dshaderdataarray.cpp \ $$PWD/quick3dstateset.cpp \ $$PWD/quick3drendertargetselector.cpp \ - $$PWD/quick3dgeometry.cpp \ - $$PWD/quick3dbuffer.cpp \ $$PWD/quick3drendertargetoutput.cpp \ $$PWD/quick3dmemorybarrier.cpp \ $$PWD/quick3draycaster.cpp \ diff --git a/src/quick3d/quick3drender/items/quick3dbuffer.cpp b/src/quick3d/quick3drender/items/quick3dbuffer.cpp deleted file mode 100644 index 9ff349118..000000000 --- a/src/quick3d/quick3drender/items/quick3dbuffer.cpp +++ /dev/null @@ -1,145 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 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 <QtQml/QJSValue> -#include <QtQml/QQmlEngine> - -#include <Qt3DQuickRender/private/quick3dbuffer_p.h> -#include <QtQml/private/qqmlengine_p.h> -#include <QtQml/private/qjsvalue_p.h> -#include <QtQml/private/qv4typedarray_p.h> -#include <QtQml/private/qv4arraybuffer_p.h> -#include <Qt3DRender/private/qurlhelper_p.h> -#include <QtCore/qfile.h> - -QT_BEGIN_NAMESPACE - -namespace Qt3DRender { - -namespace Render { - -namespace Quick { - -namespace { -const int jsValueTypeId = qMetaTypeId<QJSValue>(); -} - -Quick3DBuffer::Quick3DBuffer(Qt3DCore::QNode *parent) - : Qt3DRender::QBuffer(parent) - , m_engine(nullptr) - , m_v4engine(nullptr) -{ - QObject::connect(this, &Qt3DRender::QBuffer::dataChanged, this, &Quick3DBuffer::bufferDataChanged); -} - -QByteArray Quick3DBuffer::convertToRawData(const QJSValue &jsValue) -{ - initEngines(); - Q_ASSERT(m_v4engine); - QV4::Scope scope(m_v4engine); - QV4::Scoped<QV4::TypedArray> typedArray(scope, - QJSValuePrivate::convertedToValue(m_v4engine, jsValue)); - if (!typedArray) - return QByteArray(); - - char *dataPtr = reinterpret_cast<char *>(typedArray->arrayData()->data()); - dataPtr += typedArray->d()->byteOffset; - uint byteLength = typedArray->byteLength(); - return QByteArray(dataPtr, byteLength); -} - -QVariant Quick3DBuffer::bufferData() const -{ - return QVariant::fromValue(data()); -} - -void Quick3DBuffer::setBufferData(const QVariant &bufferData) -{ - if (bufferData.userType() == QMetaType::QByteArray) { - QBuffer::setData(bufferData.toByteArray()); - } else if (bufferData.userType() == jsValueTypeId) { - QJSValue jsValue = bufferData.value<QJSValue>(); - QBuffer::setData(convertToRawData(jsValue)); - } -} - -void Quick3DBuffer::updateData(int offset, const QVariant &bufferData) -{ - if (bufferData.userType() == QMetaType::QByteArray) { - QBuffer::updateData(offset, bufferData.toByteArray()); - } else if (bufferData.userType() == jsValueTypeId) { - QJSValue jsValue = bufferData.value<QJSValue>(); - QBuffer::updateData(offset, convertToRawData(jsValue)); - } -} - -/*! - \qmlmethod string Quick3DBuffer::readBinaryFile(url &fileUrl) - - Reads the binary at \a fileUrl and return it as a QByteArray wrapped in a - QVariant - - \note this is provided as convenience for QML where reading files and creating - QByteArray is not possible - */ -QVariant Quick3DBuffer::readBinaryFile(const QUrl &fileUrl) -{ - QFile f(Qt3DRender::QUrlHelper::urlToLocalFileOrQrc(fileUrl)); - QByteArray data; - - if (f.open(QIODevice::ReadOnly)) - data = f.readAll(); - return QVariant(data); -} - -void Quick3DBuffer::initEngines() -{ - if (m_engine == nullptr) { - m_engine = qmlEngine(parent()); - m_v4engine = QQmlEnginePrivate::getV4Engine(m_engine); - } -} - -} // Quick - -} // Render - -} // Qt3DRender - -QT_END_NAMESPACE diff --git a/src/quick3d/quick3drender/items/quick3dbuffer_p.h b/src/quick3d/quick3drender/items/quick3dbuffer_p.h deleted file mode 100644 index 233cc3faf..000000000 --- a/src/quick3d/quick3drender/items/quick3dbuffer_p.h +++ /dev/null @@ -1,106 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 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_QUICK_QUICK3DBUFFER_P_H -#define QT3DRENDER_RENDER_QUICK_QUICK3DBUFFER_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/QBuffer> - -#include <Qt3DQuickRender/private/qt3dquickrender_global_p.h> - -QT_BEGIN_NAMESPACE - -class QQmlEngine; -class QJSValue; - -namespace QV4 { -struct ExecutionEngine; -} - -namespace Qt3DRender { - -namespace Render { - -namespace Quick { - -class Q_3DQUICKRENDERSHARED_PRIVATE_EXPORT Quick3DBuffer : public Qt3DRender::QBuffer -{ - Q_OBJECT - Q_PROPERTY(QVariant data READ bufferData WRITE setBufferData NOTIFY bufferDataChanged) -public: - explicit Quick3DBuffer(Qt3DCore::QNode *parent = nullptr); - - QVariant bufferData() const; - void setBufferData(const QVariant &bufferData); - - Q_INVOKABLE QVariant readBinaryFile(const QUrl &fileUrl); - -public Q_SLOTS: - void updateData(int offset, const QVariant &bytes); - -Q_SIGNALS: - void bufferDataChanged(); - -private: - QQmlEngine *m_engine; - QV4::ExecutionEngine *m_v4engine; - void initEngines(); - QByteArray convertToRawData(const QJSValue &jsValue); -}; - -} // Quick - -} // Render - -} // Qt3DRender - -QT_END_NAMESPACE - -#endif // QT3DRENDER_RENDER_QUICK_QUICK3DBUFFER_P_H diff --git a/src/quick3d/quick3drender/items/quick3dgeometry.cpp b/src/quick3d/quick3drender/items/quick3dgeometry.cpp deleted file mode 100644 index 3f70ea572..000000000 --- a/src/quick3d/quick3drender/items/quick3dgeometry.cpp +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 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 <Qt3DQuickRender/private/quick3dgeometry_p.h> - -QT_BEGIN_NAMESPACE - -namespace Qt3DRender { -namespace Render { -namespace Quick { - -Quick3DGeometry::Quick3DGeometry(QObject *parent) - : QObject(parent) -{ -} - -QQmlListProperty<Qt3DRender::QAttribute> Quick3DGeometry::attributeList() -{ - return QQmlListProperty<Qt3DRender::QAttribute>(this, 0, - &Quick3DGeometry::appendAttribute, - &Quick3DGeometry::attributesCount, - &Quick3DGeometry::attributeAt, - &Quick3DGeometry::clearAttributes); -} - -void Quick3DGeometry::appendAttribute(QQmlListProperty<Qt3DRender::QAttribute> *list, Qt3DRender::QAttribute *attribute) -{ - Quick3DGeometry *geometry = static_cast<Quick3DGeometry *>(list->object); - geometry->m_managedAttributes.append(attribute); - geometry->parentGeometry()->addAttribute(attribute); -} - -Qt3DRender::QAttribute *Quick3DGeometry::attributeAt(QQmlListProperty<Qt3DRender::QAttribute> *list, int index) -{ - Quick3DGeometry *geometry = static_cast<Quick3DGeometry *>(list->object); - return geometry->parentGeometry()->attributes().at(index); -} - -int Quick3DGeometry::attributesCount(QQmlListProperty<Qt3DRender::QAttribute> *list) -{ - Quick3DGeometry *geometry = static_cast<Quick3DGeometry *>(list->object); - return geometry->parentGeometry()->attributes().count(); -} - -void Quick3DGeometry::clearAttributes(QQmlListProperty<Qt3DRender::QAttribute> *list) -{ - Quick3DGeometry *geometry = static_cast<Quick3DGeometry *>(list->object); - for (Qt3DRender::QAttribute *attribute : qAsConst(geometry->m_managedAttributes)) - geometry->parentGeometry()->removeAttribute(attribute); - geometry->m_managedAttributes.clear(); -} - -} // namespace Quick -} // namespace Render -} // namespace Qt3DRender - -QT_END_NAMESPACE diff --git a/src/quick3d/quick3drender/items/quick3dgeometry_p.h b/src/quick3d/quick3drender/items/quick3dgeometry_p.h deleted file mode 100644 index 19a308076..000000000 --- a/src/quick3d/quick3drender/items/quick3dgeometry_p.h +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 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 QT3D_QUICK3DGEOMETRY_P_H -#define QT3D_QUICK3DGEOMETRY_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/QGeometry> -#include <QtQml/QQmlListProperty> - -#include <Qt3DQuickRender/private/qt3dquickrender_global_p.h> - -QT_BEGIN_NAMESPACE - -namespace Qt3DRender { -namespace Render { -namespace Quick { - -class Q_3DQUICKRENDERSHARED_PRIVATE_EXPORT Quick3DGeometry : public QObject -{ - Q_OBJECT - Q_PROPERTY(QQmlListProperty<Qt3DRender::QAttribute> attributes READ attributeList) - Q_CLASSINFO("DefaultProperty", "attributes") - -public: - explicit Quick3DGeometry(QObject *parent = 0); - inline QGeometry *parentGeometry() const { return qobject_cast<QGeometry *>(parent()); } - - QQmlListProperty<Qt3DRender::QAttribute> attributeList(); - -private: - static void appendAttribute(QQmlListProperty<Qt3DRender::QAttribute> *list, Qt3DRender::QAttribute *provider); - static Qt3DRender::QAttribute *attributeAt(QQmlListProperty<Qt3DRender::QAttribute> *list, int index); - static int attributesCount(QQmlListProperty<Qt3DRender::QAttribute> *list); - static void clearAttributes(QQmlListProperty<Qt3DRender::QAttribute> *list); - - QVector<Qt3DRender::QAttribute *> m_managedAttributes; -}; - -} // namespace Quick -} // namespace Render -} // namespace Qt3DRender - -QT_END_NAMESPACE - -#endif // QT3D_QUICK3DGEOMETRY_P_H |