X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=vrtris;a=blobdiff_plain;f=src%2Fcmesh.c;h=6cf9b31f1e0a2ab75c17af5c95acc24d5e50aa66;hp=31905761ac1e37f082d4d8411cdd46fa6c3fee39;hb=81ba28d6379707c51aa82e9fa75f42843c7a751f;hpb=06a83976694c970fcf42bfdfc91832e780ca4747 diff --git a/src/cmesh.c b/src/cmesh.c index 3190576..6cf9b31 100644 --- a/src/cmesh.c +++ b/src/cmesh.c @@ -49,6 +49,7 @@ static void update_wire_ibo(struct cmesh *cm); static void calc_aabb(struct cmesh *cm); static void calc_bsph(struct cmesh *cm); +static int def_nelem[CMESH_NUM_ATTR] = {3, 3, 3, 2, 4, 4, 4, 2}; static int sdr_loc[CMESH_NUM_ATTR] = {0, 1, 2, 3, 4, 5, 6, 7}; static int use_custom_sdr_attr; @@ -378,9 +379,15 @@ int cmesh_push_attrib(struct cmesh *cm, int attr, float *v) } 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; return 0; } @@ -500,6 +507,8 @@ int cmesh_push_index(struct cmesh *cm, unsigned int idx) return -1; } cm->idata = iptr; + cm->idata_valid = 1; + cm->ibo_valid = 0; return 0; }