// Copyright (C) 2016 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 "qtexturedata.h" QT_BEGIN_NAMESPACE namespace Qt3DRender { /*! * \class Qt3DRender::QTextureData * \inheaderfile Qt3DRender/QTextureData * \brief The QTextureData class stores texture information such as * the target, height, width, depth, layers, wrap, and if mipmaps are enabled. * \since 5.7 * \inmodule Qt3DRender */ class QTextureDataPrivate { public: QAbstractTexture::Target m_target; QAbstractTexture::TextureFormat m_format = QAbstractTexture::NoFormat; int m_width = 0; int m_height = 0; int m_depth = 0; int m_layers = 0; bool m_autoMipMap = false; float m_maximumAnisotropy = 0.0f; QAbstractTexture::Filter m_minFilter; QAbstractTexture::Filter m_magFilter; QTextureWrapMode::WrapMode m_wrapModeX; QTextureWrapMode::WrapMode m_wrapModeY; QTextureWrapMode::WrapMode m_wrapModeZ; QAbstractTexture::ComparisonFunction m_comparisonFunction; QAbstractTexture::ComparisonMode m_comparisonMode; QList m_imagesData; }; /*! * Creates a new QTextureData * instance. */ QTextureData::QTextureData() : d_ptr(new QTextureDataPrivate()) { } /*! * \internal */ QTextureData::~QTextureData() { delete d_ptr; } /*! * Returns the texture data target. */ QAbstractTexture::Target QTextureData::target() const { Q_D(const QTextureData); return d->m_target; } /*! * Sets the target texture to \a target. */ void QTextureData::setTarget(QAbstractTexture::Target target) { Q_D(QTextureData); d->m_target = target; } /*! * Returns the texture format */ QAbstractTexture::TextureFormat QTextureData::format() const { Q_D(const QTextureData); return d->m_format; } /*! * Sets the texture format to \a format. */ void QTextureData::setFormat(QAbstractTexture::TextureFormat format) { Q_D(QTextureData); d->m_format = format; } /*! * Returns the texture width. */ int QTextureData::width() const { Q_D(const QTextureData); return d->m_width; } /*! * Sets the texture width to \a width. */ void QTextureData::setWidth(int width) { Q_D(QTextureData); d->m_width = width; } /*! * Returns the texture height. */ int QTextureData::height() const { Q_D(const QTextureData); return d->m_height; } /*! * Sets the target height to \a height. */ void QTextureData::setHeight(int height) { Q_D(QTextureData); d->m_height = height; } /*! * Returns the texture depth. */ int QTextureData::depth() const { Q_D(const QTextureData); return d->m_depth; } /*! * Sets the texture depth to \a depth */ void QTextureData::setDepth(int depth) { Q_D(QTextureData); d->m_depth = depth; } /*! * Returns the texture layers. */ int QTextureData::layers() const { Q_D(const QTextureData); return d->m_layers; } /*! * Sets the texture layers to \a layers. */ void QTextureData::setLayers(int layers) { Q_D(QTextureData); d->m_layers = layers; } /*! * Returns whether the texture has auto mipmap generation enabled. */ bool QTextureData::isAutoMipMapGenerationEnabled() const { Q_D(const QTextureData); return d->m_autoMipMap; } /*! * Sets whether the texture has automatic mipmap generation enabled, to \a autoMipMap. */ void QTextureData::setAutoMipMapGenerationEnabled(bool autoMipMap) { Q_D(QTextureData); d->m_autoMipMap = autoMipMap; } /*! * Returns the current maximum anisotropy. */ float QTextureData::maximumAnisotropy() const { Q_D(const QTextureData); return d->m_maximumAnisotropy; } /*! * Sets the maximum anisotropy to \a maximumAnisotropy. */ void QTextureData::setMaximumAnisotropy(float maximumAnisotropy) { Q_D(QTextureData); d->m_maximumAnisotropy = maximumAnisotropy; } /*! * Returns the current minification filter. */ QAbstractTexture::Filter QTextureData::minificationFilter() const { Q_D(const QTextureData); return d->m_minFilter; } /*! * Sets the minification filter to \a filter. */ void QTextureData::setMinificationFilter(QAbstractTexture::Filter filter) { Q_D(QTextureData); d->m_minFilter = filter; } /*! * Returns the current magnification filter. */ QAbstractTexture::Filter QTextureData::magnificationFilter() const { Q_D(const QTextureData); return d->m_magFilter; } /*! * Sets the magnification filter to \a filter. */ void QTextureData::setMagnificationFilter(QAbstractTexture::Filter filter) { Q_D(QTextureData); d->m_magFilter = filter; } /*! * Returns the current wrap mode X. */ QTextureWrapMode::WrapMode QTextureData::wrapModeX() const { Q_D(const QTextureData); return d->m_wrapModeX; } /*! * Sets the wrap mode X to \a wrapModeX. */ void QTextureData::setWrapModeX(QTextureWrapMode::WrapMode wrapModeX) { Q_D(QTextureData); d->m_wrapModeX = wrapModeX; } /*! * Returns the current wrap mode Y. */ QTextureWrapMode::WrapMode QTextureData::wrapModeY() const { Q_D(const QTextureData); return d->m_wrapModeY; } /*! * Sets the wrap mode Y to \a wrapModeY. */ void QTextureData::setWrapModeY(QTextureWrapMode::WrapMode wrapModeY) { Q_D(QTextureData); d->m_wrapModeY = wrapModeY; } /*! * Returns the current wrap mode Z. */ QTextureWrapMode::WrapMode QTextureData::wrapModeZ() const { Q_D(const QTextureData); return d->m_wrapModeZ; } /*! * Sets the wrap mode Z to \a wrapModeZ. */ void QTextureData::setWrapModeZ(QTextureWrapMode::WrapMode wrapModeZ) { Q_D(QTextureData); d->m_wrapModeZ = wrapModeZ; } /*! * Returns the current comparison function. */ QAbstractTexture::ComparisonFunction QTextureData::comparisonFunction() const { Q_D(const QTextureData); return d->m_comparisonFunction; } /*! * Sets the comparison function to \a comparisonFunction. */ void QTextureData::setComparisonFunction(QAbstractTexture::ComparisonFunction comparisonFunction) { Q_D(QTextureData); d->m_comparisonFunction = comparisonFunction; } /*! * Returns the current comparison mode. */ QAbstractTexture::ComparisonMode QTextureData::comparisonMode() const { Q_D(const QTextureData); return d->m_comparisonMode; } /*! * Sets the comparison mode to \a comparisonMode. */ void QTextureData::setComparisonMode(QAbstractTexture::ComparisonMode comparisonMode) { Q_D(QTextureData); d->m_comparisonMode = comparisonMode; } /*! * Returns the data of the images used by this texture. */ QList QTextureData::imageData() const { Q_D(const QTextureData); return d->m_imagesData; } /*! * Adds an extra image layer to the texture using \a imageData. * * \note The texture image should be loaded with the size specified on the texture. * However, if no size is specified, the size of the first texture image file is used as default. */ void QTextureData::addImageData(const QTextureImageDataPtr &imageData) { Q_D(QTextureData); d->m_imagesData.push_back(imageData); } } // Qt3DRender QT_END_NAMESPACE