fix(core): Fix missing symbols/glyphs (#4554)

This commit is contained in:
Adrian Cojocaru
2026-09-04 22:42:09 +03:00
committed by GitHub
parent 96e806931d
commit 0b342a1209
2 changed files with 9 additions and 6 deletions

View File

@@ -1231,9 +1231,12 @@ size_t SymbolLayout::addSymbol(SymbolBucket::Buffer& buffer,
float sortKey) {
constexpr const uint16_t instanceCount = 1;
const uint16_t baseInstance = buffer.segments.empty() ? 0 : buffer.segments.back().instanceCount;
if (buffer.segments.empty() || baseInstance + instanceCount > std::numeric_limits<uint16_t>::max() ||
if (buffer.segments.empty() ||
buffer.segments.back().instanceCount + instanceCount > std::numeric_limits<uint16_t>::max() ||
std::fabs(buffer.segments.back().sortKey - sortKey) > std::numeric_limits<float>::epsilon()) {
const uint16_t baseInstance = buffer.segments.empty()
? 0
: buffer.segments.back().baseInstance + buffer.segments.back().instanceCount;
buffer.segments.emplace_back(RenderStaticData::symbolSegment(baseInstance, sortKey));
}

View File

@@ -363,7 +363,7 @@ public:
using PaintPropertyBinder<T, T, PossiblyEvaluatedPropertyValue<T>, A>::setInterleavedBuffer;
void setInterleavedBuffer(InterleavedVertexBuffer& buffer) override {
this->template setInterleavedBuffer<BaseVertex>(buffer);
this->template setInterleavedBuffer<ZoomInterpolatedVertexType<A>>(buffer);
}
private:
@@ -479,7 +479,7 @@ public:
using PaintPropertyBinder<T, T, PossiblyEvaluatedPropertyValue<T>, A>::setInterleavedBuffer;
void setInterleavedBuffer(InterleavedVertexBuffer& buffer) override {
this->template setInterleavedBuffer<Vertex>(buffer);
this->template setInterleavedBuffer<ZoomInterpolatedVertexType<A>>(buffer);
}
std::tuple<ZoomInterpolatedVertexType<A>> getVertexValue(std::size_t index) const override {
@@ -579,7 +579,7 @@ public:
using PaintPropertyBinder<T, std::array<uint16_t, 4>, PossiblyEvaluatedPropertyValue<Faded<T>>, A1, A2>::
setInterleavedBuffer;
void setInterleavedBuffer(InterleavedVertexBuffer& buffer) override {
this->template setInterleavedBuffer<Vertex>(buffer);
this->template setInterleavedBuffer<ZoomInterpolatedVertexType<A1>>(buffer);
}
private:
@@ -699,7 +699,7 @@ public:
interleavedVertexBuffer = std::move(other.interleavedVertexBuffer);
(([&] {
binders.template get<Ps>()->setInterleavedBuffer(interleavedVertexBuffer);
binders.template get<Ps>()->interleavedVertexBuffer = &interleavedVertexBuffer;
}()),
...);
}