From babbbd298a1c5b7379a4339a706113af851ae9f4 Mon Sep 17 00:00:00 2001 From: John Tsiombikas Date: Fri, 1 Mar 2019 04:34:16 +0200 Subject: [PATCH] probably fixed loading --- src/cmesh.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/cmesh.c b/src/cmesh.c index 6cf9b31..115f778 100644 --- a/src/cmesh.c +++ b/src/cmesh.c @@ -370,25 +370,29 @@ int cmesh_attrib_count(struct cmesh *cm, int attr) int cmesh_push_attrib(struct cmesh *cm, int attr, float *v) { float *vptr; - int i; - int cursz = dynarr_size(cm->vattr[attr].data); - int newsz = cursz + cm->vattr[attr].nelem; + int i, cursz, newsz; + + if(!cm->vattr[attr].nelem) { + cm->vattr[attr].nelem = def_nelem[attr]; + } + cursz = dynarr_size(cm->vattr[attr].data); + newsz = cursz + cm->vattr[attr].nelem; if(!(vptr = dynarr_resize(cm->vattr[attr].data, newsz))) { return -1; } cm->vattr[attr].data = vptr; vptr += cursz; - if(!cm->vattr[attr].nelem) { - cm->vattr[attr].nelem = def_nelem[attr]; - } - for(i=0; ivattr[attr].nelem; i++) { *vptr++ = *v++; } cm->vattr[attr].data_valid = 1; cm->vattr[attr].vbo_valid = 0; + + if(attr == CMESH_ATTR_VERTEX) { + cm->nverts = newsz / cm->vattr[attr].nelem; + } return 0; } @@ -509,6 +513,8 @@ int cmesh_push_index(struct cmesh *cm, unsigned int idx) cm->idata = iptr; cm->idata_valid = 1; cm->ibo_valid = 0; + + cm->nfaces = dynarr_size(cm->idata) / 3; return 0; } -- 1.7.10.4