49 void setFillTextureProvider(QSGTextureProvider *provider)
51 if (provider == m_textureProvider)
54 if (m_textureProvider !=
nullptr) {
55 disconnect(m_textureProvider, &QSGTextureProvider::textureChanged,
56 this, &QSGCurveFillNode::handleTextureChanged);
57 disconnect(m_textureProvider, &QSGTextureProvider::destroyed,
58 this, &QSGCurveFillNode::handleTextureProviderDestroyed);
61 m_textureProvider = provider;
62 markDirty(DirtyMaterial);
64 if (m_textureProvider !=
nullptr) {
65 connect(m_textureProvider, &QSGTextureProvider::textureChanged,
66 this, &QSGCurveFillNode::handleTextureChanged);
67 connect(m_textureProvider, &QSGTextureProvider::destroyed,
68 this, &QSGCurveFillNode::handleTextureProviderDestroyed);
121 void appendTriangle(
const std::array<QVector2D, 3> &v,
122 const std::array<QVector2D, 3> &n,
123 std::function<QVector3D(QVector2D)> uvForPoint
126 QVector3D uv1 = uvForPoint(v[0]);
127 QVector3D uv2 = uvForPoint(v[1]);
128 QVector3D uv3 = uvForPoint(v[2]);
130 QVector2D duvdx = QVector2D(uvForPoint(v[0] + QVector2D(1, 0))) - QVector2D(uv1);
131 QVector2D duvdy = QVector2D(uvForPoint(v[0] + QVector2D(0, 1))) - QVector2D(uv1);
133 m_uncookedIndexes.append(m_uncookedVertexes.size());
134 m_uncookedVertexes.append( { v[0].x(), v[0].y(),
135 uv1.x(), uv1.y(), uv1.z(),
136 duvdx.x(), duvdx.y(),
137 duvdy.x(), duvdy.y(),
141 m_uncookedIndexes.append(m_uncookedVertexes.size());
142 m_uncookedVertexes.append( { v[1].x(), v[1].y(),
143 uv2.x(), uv2.y(), uv2.z(),
144 duvdx.x(), duvdx.y(),
145 duvdy.x(), duvdy.y(),
149 m_uncookedIndexes.append(m_uncookedVertexes.size());
150 m_uncookedVertexes.append( { v[2].x(), v[2].y(),
151 uv3.x(), uv3.y(), uv3.z(),
152 duvdx.x(), duvdx.y(),
153 duvdy.x(), duvdy.y(),
158 void appendTriangle(
const QVector2D &v1,
161 const QVector3D &uv1,
162 const QVector3D &uv2,
163 const QVector3D &uv3,
167 const QVector2D &duvdx,
168 const QVector2D &duvdy)
170 m_uncookedIndexes.append(m_uncookedVertexes.size());
171 m_uncookedVertexes.append( { v1.x(), v1.y(),
172 uv1.x(), uv1.y(), uv1.z(),
173 duvdx.x(), duvdx.y(),
174 duvdy.x(), duvdy.y(),
178 m_uncookedIndexes.append(m_uncookedVertexes.size());
179 m_uncookedVertexes.append( { v2.x(), v2.y(),
180 uv2.x(), uv2.y(), uv2.z(),
181 duvdx.x(), duvdx.y(),
182 duvdy.x(), duvdy.y(),
186 m_uncookedIndexes.append(m_uncookedVertexes.size());
187 m_uncookedVertexes.append( { v3.x(), v3.y(),
188 uv3.x(), uv3.y(), uv3.z(),
189 duvdx.x(), duvdx.y(),
190 duvdy.x(), duvdy.y(),