gba-trycatch
diff src/ggen.c @ 14:c398d834d64a
fixed the rendering bugs
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Mon, 23 Jun 2014 10:33:24 +0300 |
parents | 2070a81127f2 |
children | b755fb002f17 |
line diff
1.1 --- a/src/ggen.c Mon Jun 23 08:28:28 2014 +0300 1.2 +++ b/src/ggen.c Mon Jun 23 10:33:24 2014 +0300 1.3 @@ -20,8 +20,8 @@ 1.4 int gen_box(struct mesh *m) 1.5 { 1.6 int i; 1.7 - int num_faces = 8; 1.8 - int num_verts = num_faces * 4; 1.9 + int num_faces = 12; 1.10 + int num_verts = num_faces * 3; 1.11 int32_t v[8][3] = { 1.12 {-X1, -X1, -X1}, {X1, -X1, -X1}, {X1, -X1, X1}, {-X1, -X1, X1}, 1.13 {-X1, X1, -X1}, {X1, X1, -X1}, {X1, X1, X1}, {-X1, X1, X1} 1.14 @@ -29,7 +29,7 @@ 1.15 int32_t *vptr, *cptr; 1.16 1.17 1.18 - m->prim = X3D_QUADS; 1.19 + m->prim = X3D_TRIANGLES; 1.20 m->nverts = num_verts; 1.21 if(!(m->verts = malloc(num_verts * 3 * sizeof *m->verts))) { 1.22 return -1; 1.23 @@ -45,43 +45,67 @@ 1.24 VERTEX(v[0][0], v[0][1], v[0][2]); 1.25 VERTEX(v[1][0], v[1][1], v[1][2]); 1.26 VERTEX(v[2][0], v[2][1], v[2][2]); 1.27 + for(i=0; i<3; i++) COLOR(32768, 0, 32768); 1.28 + 1.29 + VERTEX(v[0][0], v[0][1], v[0][2]); 1.30 + VERTEX(v[2][0], v[2][1], v[2][2]); 1.31 VERTEX(v[3][0], v[3][1], v[3][2]); 1.32 - for(i=0; i<4; i++) COLOR(65536, 0, 65536); 1.33 + for(i=0; i<3; i++) COLOR(65536, 0, 65536); 1.34 1.35 /* +Y */ 1.36 + VERTEX(v[7][0], v[7][1], v[7][2]); 1.37 + VERTEX(v[6][0], v[6][1], v[6][2]); 1.38 + VERTEX(v[5][0], v[5][1], v[5][2]); 1.39 + for(i=0; i<3; i++) COLOR(0, 32768, 0); 1.40 + 1.41 + VERTEX(v[7][0], v[7][1], v[7][2]); 1.42 + VERTEX(v[5][0], v[5][1], v[5][2]); 1.43 VERTEX(v[4][0], v[4][1], v[4][2]); 1.44 - VERTEX(v[5][0], v[5][1], v[5][2]); 1.45 - VERTEX(v[6][0], v[6][1], v[6][2]); 1.46 - VERTEX(v[7][0], v[7][1], v[7][2]); 1.47 - for(i=0; i<4; i++) COLOR(0, 65536, 0); 1.48 + for(i=0; i<3; i++) COLOR(0, 65536, 0); 1.49 1.50 /* -Z */ 1.51 VERTEX(v[0][0], v[0][1], v[0][2]); 1.52 VERTEX(v[4][0], v[4][1], v[4][2]); 1.53 VERTEX(v[5][0], v[5][1], v[5][2]); 1.54 + for(i=0; i<3; i++) COLOR(32768, 32768, 0); 1.55 + 1.56 + VERTEX(v[0][0], v[0][1], v[0][2]); 1.57 + VERTEX(v[5][0], v[5][1], v[5][2]); 1.58 VERTEX(v[1][0], v[1][1], v[1][2]); 1.59 - for(i=0; i<4; i++) COLOR(65536, 65536, 0); 1.60 + for(i=0; i<3; i++) COLOR(65536, 65536, 0); 1.61 1.62 /* +Z */ 1.63 VERTEX(v[2][0], v[2][1], v[2][2]); 1.64 VERTEX(v[6][0], v[6][1], v[6][2]); 1.65 VERTEX(v[7][0], v[7][1], v[7][2]); 1.66 + for(i=0; i<3; i++) COLOR(0, 0, 32768); 1.67 + 1.68 + VERTEX(v[2][0], v[2][1], v[2][2]); 1.69 + VERTEX(v[7][0], v[7][1], v[7][2]); 1.70 VERTEX(v[3][0], v[3][1], v[3][2]); 1.71 - for(i=0; i<4; i++) COLOR(0, 0, 65536); 1.72 + for(i=0; i<3; i++) COLOR(0, 0, 65536); 1.73 1.74 /* +X */ 1.75 VERTEX(v[1][0], v[1][1], v[1][2]); 1.76 VERTEX(v[5][0], v[5][1], v[5][2]); 1.77 VERTEX(v[6][0], v[6][1], v[6][2]); 1.78 + for(i=0; i<3; i++) COLOR(32768, 0, 0); 1.79 + 1.80 + VERTEX(v[1][0], v[1][1], v[1][2]); 1.81 + VERTEX(v[6][0], v[6][1], v[6][2]); 1.82 VERTEX(v[2][0], v[2][1], v[2][2]); 1.83 - for(i=0; i<4; i++) COLOR(65536, 0, 0); 1.84 + for(i=0; i<3; i++) COLOR(65536, 0, 0); 1.85 1.86 /* -X */ 1.87 VERTEX(v[3][0], v[3][1], v[3][2]); 1.88 VERTEX(v[7][0], v[7][1], v[7][2]); 1.89 VERTEX(v[4][0], v[4][1], v[4][2]); 1.90 + for(i=0; i<3; i++) COLOR(0, 32768, 32768); 1.91 + 1.92 + VERTEX(v[3][0], v[3][1], v[3][2]); 1.93 + VERTEX(v[4][0], v[4][1], v[4][2]); 1.94 VERTEX(v[0][0], v[0][1], v[0][2]); 1.95 - for(i=0; i<4; i++) COLOR(0, 65536, 65536); 1.96 + for(i=0; i<3; i++) COLOR(0, 65536, 65536); 1.97 1.98 return 0; 1.99 }