ref: f0ab207b60950e7b7748e919f599b0e1406d0895
parent: aa8e41b4038d137edf5827ef6bb4330cab9f4768
author: rodri <rgl@antares-labs.eu>
date: Fri Feb 20 15:21:09 EST 2026
render: registerize iterators in assembleprim()
--- a/render.c
+++ b/render.c
@@ -544,20 +544,21 @@
assembleprim(BPrimitive *d, Primitive *s, Model *m)
{Vertex *v;
- int i;
+ BVertex *dv;
+ usize *sv;
d->type = s->type;
d->tangent = s->tangent == NaI? ZP3: *(Point3*)itemarrayget(m->tangents, s->tangent);
d->mtl = s->mtl;
- for(i = 0; i < s->type+1; i++){- v = itemarrayget(m->verts, s->v[i]);
- d->v[i].p = *(Point3*)itemarrayget(m->positions, v->p);
- d->v[i].n = v->n == NaI? ZP3: *(Point3*)itemarrayget(m->normals, v->n);
- d->v[i].uv = v->uv == NaI? ZP2: *(Point2*)itemarrayget(m->texcoords, v->uv);
- d->v[i].c = v->c == NaI? ZP3: *(Color*)itemarrayget(m->colors, v->c);
- d->v[i].tangent = d->tangent;
- d->v[i].mtl = d->mtl;
- d->v[i].nattrs = 0;
+ for(dv = &d->v[0], sv = &s->v[0]; dv < d->v + s->type+1; dv++, sv++){+ v = itemarrayget(m->verts, *sv);
+ dv->p = *(Point3*)itemarrayget(m->positions, v->p);
+ dv->n = v->n == NaI? ZP3: *(Point3*)itemarrayget(m->normals, v->n);
+ dv->uv = v->uv == NaI? ZP2: *(Point2*)itemarrayget(m->texcoords, v->uv);
+ dv->c = v->c == NaI? ZP3: *(Color*)itemarrayget(m->colors, v->c);
+ dv->tangent = d->tangent;
+ dv->mtl = d->mtl;
+ dv->nattrs = 0;
}
return d;
}
--
⑨