31 Q_PROPERTY(
QUrl fragmentShader READ fragmentShader WRITE setFragmentShader NOTIFY fragmentShaderChanged)
32 Q_PROPERTY(
QUrl vertexShader READ vertexShader WRITE setVertexShader NOTIFY vertexShaderChanged)
35 Q_PROPERTY(
BlendMode sourceAlphaBlend READ srcAlphaBlend WRITE setSrcAlphaBlend NOTIFY srcAlphaBlendChanged REVISION(6, 7))
36 Q_PROPERTY(
BlendMode destinationAlphaBlend READ dstAlphaBlend WRITE setDstAlphaBlend NOTIFY dstAlphaBlendChanged REVISION(6, 7))
37 Q_PROPERTY(
bool alwaysDirty READ alwaysDirty WRITE setAlwaysDirty NOTIFY alwaysDirtyChanged)
64 OneMinusConstantColor,
66 OneMinusConstantAlpha,
74 ShadingMode shadingMode()
const;
75 QUrl vertexShader()
const;
76 QUrl fragmentShader()
const;
77 BlendMode srcBlend()
const;
78 BlendMode dstBlend()
const;
81 bool alwaysDirty() const;
82 float lineWidth() const;
86 void setVertexShader(const
QUrl &
url);
87 void setFragmentShader(const
QUrl &
url);
92 void setAlwaysDirty(
bool alwaysDirty);
96 void shadingModeChanged();
97 void vertexShaderChanged();
98 void fragmentShaderChanged();
99 void srcBlendChanged();
100 void dstBlendChanged();
103 void alwaysDirtyChanged();
104 void lineWidthChanged();
110 ShaderSettingsDirty = 0x4,
111 DynamicPropertiesDirty = 0x8,
112 AllDirty = std::numeric_limits<quint32>::max() ^ DynamicPropertiesDirty
116 void itemChange(ItemChange,
const ItemChangeData &)
override;
117 void markAllDirty()
override;
121 void onPropertyDirty();
122 void onTextureDirty();
130 QSet<QQuick3DShaderUtilsTextureInput *> m_dynamicTextureMaps;
131 quint32 m_dirtyAttributes = Dirty::AllDirty;
132 BlendMode m_srcBlend = BlendMode::NoBlend;
133 BlendMode m_dstBlend = BlendMode::NoBlend;
134 BlendMode m_srcAlphaBlend = BlendMode::NoBlend;
135 BlendMode m_dstAlphaBlend = BlendMode::NoBlend;
138 QUrl m_fragmentShader;
139 bool m_alwaysDirty =
false;
140 float m_lineWidth = 1.0f;