From e5393153629cb39ea6af0ca4a35370442127c5c2 Mon Sep 17 00:00:00 2001 From: John Tsiombikas Date: Mon, 19 Feb 2018 04:29:26 +0200 Subject: [PATCH 1/1] I need to go deeper --- src/bsptree.c | 22 ++++++++++++++++++++-- tools/gltest/Makefile | 2 +- tools/gltest/src/g3demu.c | 6 ++++++ 3 files changed, 27 insertions(+), 3 deletions(-) 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; -- 1.7.10.4