// Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #include QT_BEGIN_NAMESPACE namespace Qt3DRender { namespace Render { namespace Quick { Quick3DRenderTargetOutput::Quick3DRenderTargetOutput(QObject * parent) : QObject(parent) { } QQmlListProperty Quick3DRenderTargetOutput::qmlAttachments() { #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) using qt_size_type = qsizetype; #else using qt_size_type = int; #endif using ListContentType = QRenderTargetOutput; auto appendFunction = [](QQmlListProperty *list, ListContentType *output) { Quick3DRenderTargetOutput *rT = qobject_cast(list->object); if (rT) rT->parentRenderTarget()->addOutput(output); }; auto countFunction = [](QQmlListProperty *list) -> qt_size_type { Quick3DRenderTargetOutput *rT = qobject_cast(list->object); if (rT) return rT->parentRenderTarget()->outputs().size(); return 0; }; auto atFunction = [](QQmlListProperty *list, qt_size_type index) -> ListContentType * { Quick3DRenderTargetOutput *rT = qobject_cast(list->object); if (rT) return rT->parentRenderTarget()->outputs().at(index); return nullptr; }; auto clearFunction = [](QQmlListProperty *list) { Quick3DRenderTargetOutput *rT = qobject_cast(list->object); if (rT) { const auto outputs = rT->parentRenderTarget()->outputs(); for (QRenderTargetOutput *output : outputs) rT->parentRenderTarget()->removeOutput(output); } }; return QQmlListProperty(this, nullptr, appendFunction, countFunction, atFunction, clearFunction); } } // namespace Quick } // namespace Render } // namespace Qt3DRender QT_END_NAMESPACE #include "moc_quick3drendertargetoutput_p.cpp"