150{
151 size_t total_pairs = 0;
152
154 uint32_t prev_end = 0;
156 const uint32_t
count = end - prev_end;
158 total_pairs +=
count - 1;
159 prev_end = end;
160 }
161 }
162
163 std::vector<Kakshya::LineVertex> verts;
164 verts.reserve(total_pairs * 2);
165
166 for (
size_t gi = 0; gi <
m_outlines.size(); ++gi) {
169
170 uint32_t prev_end = 0;
172 const uint32_t
count = end - prev_end;
174 prev_end = end;
175 continue;
176 }
177
178 for (uint32_t pi = prev_end; pi < end - 1; ++pi) {
179 const glm::vec2
a = ol.points[pi] + off;
180 const glm::vec2
b = ol.points[pi + 1] + off;
183 }
184
185 prev_end = end;
186 }
187 }
188
189 set_vertices<Kakshya::LineVertex>(std::span { verts.data(), verts.size() });
190
192 layout->vertex_count = static_cast<uint32_t>(verts.size());
194
197}
std::vector< uint32_t > * contour_ends
bool m_vertex_data_dirty
Flag: vertex data or layout changed since last GPU upload.
std::optional< Kakshya::VertexLayout > get_vertex_layout() const
Get cached vertex layout.
void set_vertex_layout(const Kakshya::VertexLayout &layout)
Set cached vertex layout.
std::vector< glm::vec2 > m_pen_offsets
std::vector< Portal::Text::GlyphOutline > m_outlines