50 void setFillTextureProvider(QSGTextureProvider *provider)
52 if (provider == m_textureProvider)
55 if (m_textureProvider !=
nullptr) {
56 disconnect(m_textureProvider, &QSGTextureProvider::textureChanged,
57 this, &QSGCurveFillNode::handleTextureChanged);
58 disconnect(m_textureProvider, &QSGTextureProvider::destroyed,
59 this, &QSGCurveFillNode::handleTextureProviderDestroyed);
62 m_textureProvider = provider;
63 markDirty(DirtyMaterial);
65 if (m_textureProvider !=
nullptr) {
66 connect(m_textureProvider, &QSGTextureProvider::textureChanged,
67 this, &QSGCurveFillNode::handleTextureChanged);
68 connect(m_textureProvider, &QSGTextureProvider::destroyed,
69 this, &QSGCurveFillNode::handleTextureProviderDestroyed);
122 void appendTriangle(
const std::array<QVector2D, 3> &v,
123 const std::array<QVector2D, 3> &n,
124 std::function<QVector3D(QVector2D)> uvForPoint
127 QVector3D uv1 = uvForPoint(v[0]);
128 QVector3D uv2 = uvForPoint(v[1]);
129 QVector3D uv3 = uvForPoint(v[2]);
131 QVector2D duvdx = QVector2D(uvForPoint(v[0] + QVector2D(1, 0))) - QVector2D(uv1);
132 QVector2D duvdy = QVector2D(uvForPoint(v[0] + QVector2D(0, 1))) - QVector2D(uv1);
134 m_uncookedIndexes.append(m_uncookedVertexes.size());
135 m_uncookedVertexes.append( { v[0].x(), v[0].y(),
136 uv1.x(), uv1.y(), uv1.z(),
137 duvdx.x(), duvdx.y(),
138 duvdy.x(), duvdy.y(),
142 m_uncookedIndexes.append(m_uncookedVertexes.size());
143 m_uncookedVertexes.append( { v[1].x(), v[1].y(),
144 uv2.x(), uv2.y(), uv2.z(),
145 duvdx.x(), duvdx.y(),
146 duvdy.x(), duvdy.y(),
150 m_uncookedIndexes.append(m_uncookedVertexes.size());
151 m_uncookedVertexes.append( { v[2].x(), v[2].y(),
152 uv3.x(), uv3.y(), uv3.z(),
153 duvdx.x(), duvdx.y(),
154 duvdy.x(), duvdy.y(),
159 void appendTriangle(
const QVector2D &v1,
162 const QVector3D &uv1,
163 const QVector3D &uv2,
164 const QVector3D &uv3,
168 const QVector2D &duvdx,
169 const QVector2D &duvdy)
171 m_uncookedIndexes.append(m_uncookedVertexes.size());
172 m_uncookedVertexes.append( { v1.x(), v1.y(),
173 uv1.x(), uv1.y(), uv1.z(),
174 duvdx.x(), duvdx.y(),
175 duvdy.x(), duvdy.y(),
179 m_uncookedIndexes.append(m_uncookedVertexes.size());
180 m_uncookedVertexes.append( { v2.x(), v2.y(),
181 uv2.x(), uv2.y(), uv2.z(),
182 duvdx.x(), duvdx.y(),
183 duvdy.x(), duvdy.y(),
187 m_uncookedIndexes.append(m_uncookedVertexes.size());
188 m_uncookedVertexes.append( { v3.x(), v3.y(),
189 uv3.x(), uv3.y(), uv3.z(),
190 duvdx.x(), duvdx.y(),
191 duvdy.x(), duvdy.y(),