From: John Tsiombikas Date: Mon, 19 Feb 2018 02:29:26 +0000 (+0200) Subject: I need to go deeper X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=dosdemo;a=commitdiff_plain;h=e5393153629cb39ea6af0ca4a35370442127c5c2 I need to go deeper --- diff --git a/src/bsptree.c b/src/bsptree.c index 30f67ef..334e530 100644 --- a/src/bsptree.c +++ b/src/bsptree.c @@ -239,6 +239,22 @@ static struct bspnode *add_poly_tree(struct bspnode *n, struct g3d_vertex *v, in return n; } +void debug_draw_poly(struct g3d_vertex *varr, int vcount) +{ + int i, nfaces = vcount - 2; + int vbuf_size = nfaces * 3; + struct g3d_vertex *vbuf = alloca(vbuf_size * sizeof *vbuf); + struct g3d_vertex *vptr = varr + 1; + + for(i=0; ix * n->plane.nx + vdir->y * n->plane.ny + vdir->z * n->plane.nz; if(dot >= 0.0f) { draw_bsp_tree(n->front, vdir); - g3d_draw_indexed(n->vcount, n->verts, n->vcount, 0, 0); + //g3d_draw_indexed(n->vcount, n->verts, n->vcount, 0, 0); + debug_draw_poly(n->verts, n->vcount); draw_bsp_tree(n->back, vdir); } else { draw_bsp_tree(n->back, vdir); - g3d_draw_indexed(n->vcount, n->verts, n->vcount, 0, 0); + //g3d_draw_indexed(n->vcount, n->verts, n->vcount, 0, 0); + debug_draw_poly(n->verts, n->vcount); draw_bsp_tree(n->front, vdir); } } diff --git a/tools/gltest/Makefile b/tools/gltest/Makefile index 74a0203..9eec850 100644 --- a/tools/gltest/Makefile +++ b/tools/gltest/Makefile @@ -15,7 +15,7 @@ incpath = -I$(root)/src libpath = -L$(root)/libs/imago -L$(root)/libs/mikmod CFLAGS = -pedantic -Wall -g $(incpath) -LDFLAGS = -lGL -lGLU -lglut -lm -limago -lmikmod +LDFLAGS = $(libpath) -lGL -lGLU -lglut -lm -limago -lmikmod $(bin): $(obj) $(CC) -o $@ $(obj) $(LDFLAGS) diff --git a/tools/gltest/src/g3demu.c b/tools/gltest/src/g3demu.c index 1068615..c38e288 100644 --- a/tools/gltest/src/g3demu.c +++ b/tools/gltest/src/g3demu.c @@ -78,6 +78,12 @@ void g3d_draw_indexed(int prim, const struct g3d_vertex *varr, int varr_size, const uint16_t *iptr = iarr; switch(prim) { + case G3D_POINTS: + glprim = GL_POINTS; + break; + case G3D_LINES: + glprim = GL_LINES; + break; case G3D_TRIANGLES: glprim = GL_TRIANGLES; break;