diff options
Diffstat (limited to 'src/effects/qquickmultieffect_p.h')
-rw-r--r-- | src/effects/qquickmultieffect_p.h | 200 |
1 files changed, 200 insertions, 0 deletions
diff --git a/src/effects/qquickmultieffect_p.h b/src/effects/qquickmultieffect_p.h new file mode 100644 index 0000000000..8438a0947b --- /dev/null +++ b/src/effects/qquickmultieffect_p.h @@ -0,0 +1,200 @@ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QQUICKMULTIEFFECT_H +#define QQUICKMULTIEFFECT_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <private/qtquickglobal_p.h> + +QT_REQUIRE_CONFIG(quick_shadereffect); + +#include "qtquickeffectsglobal_p.h" +#include <QtQuick/qquickitem.h> +#include <QtCore/qrect.h> +#include <QtGui/qvector4d.h> +#include <QtGui/qcolor.h> + +QT_BEGIN_NAMESPACE + +class QQuickMultiEffectPrivate; + +class Q_QUICKEFFECTS_EXPORT QQuickMultiEffect : public QQuickItem +{ + Q_OBJECT + Q_PROPERTY(QQuickItem *source READ source WRITE setSource NOTIFY sourceChanged) + Q_PROPERTY(bool autoPaddingEnabled READ autoPaddingEnabled WRITE setAutoPaddingEnabled NOTIFY autoPaddingEnabledChanged) + Q_PROPERTY(QRectF paddingRect READ paddingRect WRITE setPaddingRect NOTIFY paddingRectChanged) + Q_PROPERTY(qreal brightness READ brightness WRITE setBrightness NOTIFY brightnessChanged) + Q_PROPERTY(qreal contrast READ contrast WRITE setContrast NOTIFY contrastChanged) + Q_PROPERTY(qreal saturation READ saturation WRITE setSaturation NOTIFY saturationChanged) + Q_PROPERTY(qreal colorization READ colorization WRITE setColorization NOTIFY colorizationChanged) + Q_PROPERTY(QColor colorizationColor READ colorizationColor WRITE setColorizationColor NOTIFY colorizationColorChanged) + Q_PROPERTY(bool blurEnabled READ blurEnabled WRITE setBlurEnabled NOTIFY blurEnabledChanged) + Q_PROPERTY(qreal blur READ blur WRITE setBlur NOTIFY blurChanged) + Q_PROPERTY(int blurMax READ blurMax WRITE setBlurMax NOTIFY blurMaxChanged) + Q_PROPERTY(qreal blurMultiplier READ blurMultiplier WRITE setBlurMultiplier NOTIFY blurMultiplierChanged) + Q_PROPERTY(bool shadowEnabled READ shadowEnabled WRITE setShadowEnabled NOTIFY shadowEnabledChanged) + Q_PROPERTY(qreal shadowOpacity READ shadowOpacity WRITE setShadowOpacity NOTIFY shadowOpacityChanged) + Q_PROPERTY(qreal shadowBlur READ shadowBlur WRITE setShadowBlur NOTIFY shadowBlurChanged) + Q_PROPERTY(qreal shadowHorizontalOffset READ shadowHorizontalOffset WRITE setShadowHorizontalOffset NOTIFY shadowHorizontalOffsetChanged) + Q_PROPERTY(qreal shadowVerticalOffset READ shadowVerticalOffset WRITE setShadowVerticalOffset NOTIFY shadowVerticalOffsetChanged) + Q_PROPERTY(QColor shadowColor READ shadowColor WRITE setShadowColor NOTIFY shadowColorChanged) + Q_PROPERTY(qreal shadowScale READ shadowScale WRITE setShadowScale NOTIFY shadowScaleChanged) + Q_PROPERTY(bool maskEnabled READ maskEnabled WRITE setMaskEnabled NOTIFY maskEnabledChanged) + Q_PROPERTY(QQuickItem *maskSource READ maskSource WRITE setMaskSource NOTIFY maskSourceChanged) + Q_PROPERTY(qreal maskThresholdMin READ maskThresholdMin WRITE setMaskThresholdMin NOTIFY maskThresholdMinChanged) + Q_PROPERTY(qreal maskSpreadAtMin READ maskSpreadAtMin WRITE setMaskSpreadAtMin NOTIFY maskSpreadAtMinChanged) + Q_PROPERTY(qreal maskThresholdMax READ maskThresholdMax WRITE setMaskThresholdMax NOTIFY maskThresholdMaxChanged) + Q_PROPERTY(qreal maskSpreadAtMax READ maskSpreadAtMax WRITE setMaskSpreadAtMax NOTIFY maskSpreadAtMaxChanged) + Q_PROPERTY(bool maskInverted READ maskInverted WRITE setMaskInverted NOTIFY maskInvertedChanged) + Q_PROPERTY(QRectF itemRect READ itemRect NOTIFY itemRectChanged) + Q_PROPERTY(QString fragmentShader READ fragmentShader NOTIFY fragmentShaderChanged) + Q_PROPERTY(QString vertexShader READ vertexShader NOTIFY vertexShaderChanged) + Q_PROPERTY(bool hasProxySource READ hasProxySource NOTIFY hasProxySourceChanged) + QML_NAMED_ELEMENT(MultiEffect) + QML_ADDED_IN_VERSION(6, 5) + +public: + QQuickMultiEffect(QQuickItem *parent = nullptr); + ~QQuickMultiEffect() override; + + QQuickItem *source() const; + void setSource(QQuickItem *item); + + bool autoPaddingEnabled() const; + void setAutoPaddingEnabled(bool enabled); + + QRectF paddingRect() const; + void setPaddingRect(const QRectF &rect); + + qreal brightness() const; + void setBrightness(qreal brightness); + + qreal contrast() const; + void setContrast(qreal contrast); + + qreal saturation() const; + void setSaturation(qreal saturation); + + qreal colorization() const; + void setColorization(qreal colorization); + + QColor colorizationColor() const; + void setColorizationColor(const QColor &color); + + bool blurEnabled() const; + void setBlurEnabled(bool enabled); + + qreal blur() const; + void setBlur(qreal blur); + + int blurMax() const; + void setBlurMax(int blurMax); + + qreal blurMultiplier() const; + void setBlurMultiplier(qreal blurMultiplier); + + bool shadowEnabled() const; + void setShadowEnabled(bool enabled); + + qreal shadowOpacity() const; + void setShadowOpacity(qreal shadowOpacity); + + qreal shadowBlur() const; + void setShadowBlur(qreal shadowBlur); + + qreal shadowHorizontalOffset() const; + void setShadowHorizontalOffset(qreal offset); + + qreal shadowVerticalOffset() const; + void setShadowVerticalOffset(qreal offset); + + QColor shadowColor() const; + void setShadowColor(const QColor &color); + + qreal shadowScale() const; + void setShadowScale(qreal shadowScale); + + bool maskEnabled() const; + void setMaskEnabled(bool enabled); + + QQuickItem *maskSource() const; + void setMaskSource(QQuickItem *item); + + qreal maskThresholdMin() const; + void setMaskThresholdMin(qreal threshold); + + qreal maskSpreadAtMin() const; + void setMaskSpreadAtMin(qreal spread); + + qreal maskThresholdMax() const; + void setMaskThresholdMax(qreal threshold); + + qreal maskSpreadAtMax() const; + void setMaskSpreadAtMax(qreal spread); + + bool maskInverted() const; + void setMaskInverted(bool inverted); + + QRectF itemRect() const; + QString fragmentShader() const; + QString vertexShader() const; + bool hasProxySource() const; + +Q_SIGNALS: + void shaderChanged(); + void itemSizeChanged(); + void sourceChanged(); + void autoPaddingEnabledChanged(); + void paddingRectChanged(); + void brightnessChanged(); + void contrastChanged(); + void saturationChanged(); + void colorizationChanged(); + void colorizationColorChanged(); + void blurEnabledChanged(); + void blurChanged(); + void blurMaxChanged(); + void blurMultiplierChanged(); + void shadowEnabledChanged(); + void shadowOpacityChanged(); + void shadowBlurChanged(); + void shadowHorizontalOffsetChanged(); + void shadowVerticalOffsetChanged(); + void shadowColorChanged(); + void shadowScaleChanged(); + void maskEnabledChanged(); + void maskSourceChanged(); + void maskThresholdMinChanged(); + void maskSpreadAtMinChanged(); + void maskThresholdMaxChanged(); + void maskSpreadAtMaxChanged(); + void maskInvertedChanged(); + void itemRectChanged(); + void fragmentShaderChanged(); + void vertexShaderChanged(); + void hasProxySourceChanged(); + +protected: + void componentComplete() override; + void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override; + void itemChange(ItemChange change, const ItemChangeData &value) override; + +private: + Q_DECLARE_PRIVATE(QQuickMultiEffect) +}; + +QT_END_NAMESPACE + +#endif // QQUICKMULTIEFFECT_H |