dungeon_crawler
diff prototype/src/mesh.cc @ 10:22562582c82d
foo
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sat, 18 Aug 2012 03:47:13 +0300 |
parents | 8fb37db44fd8 |
children | e5567ddbf2ef |
line diff
1.1 --- a/prototype/src/mesh.cc Fri Aug 17 17:25:42 2012 +0300 1.2 +++ b/prototype/src/mesh.cc Sat Aug 18 03:47:13 2012 +0300 1.3 @@ -1,6 +1,13 @@ 1.4 +#include <stdio.h> 1.5 +#include <stdlib.h> 1.6 #include "mesh.h" 1.7 #include "opengl.h" 1.8 1.9 +/* 1.10 +#define DBG_NORMALS 1.11 +#define NSZ 0.1 1.12 +*/ 1.13 + 1.14 Mesh::Mesh() 1.15 { 1.16 nverts = nfaces = 0; 1.17 @@ -146,5 +153,39 @@ 1.18 glDisableVertexAttribArray(tang_loc); 1.19 } 1.20 1.21 +#ifdef DBG_NORMALS 1.22 + glPushAttrib(GL_ENABLE_BIT); 1.23 + glDisable(GL_LIGHTING); 1.24 + 1.25 + int prog; 1.26 + glGetIntegerv(GL_CURRENT_PROGRAM, &prog); 1.27 + glUseProgram(0); 1.28 + 1.29 + Vector3 *varr, *narr; 1.30 + 1.31 + glBindBuffer(GL_ARRAY_BUFFER, vbo[MESH_ATTR_VERTEX]); 1.32 + varr = (Vector3*)glMapBuffer(GL_ARRAY_BUFFER, GL_READ_ONLY); 1.33 + 1.34 + glBindBuffer(GL_ARRAY_BUFFER, vbo[MESH_ATTR_NORMAL]); 1.35 + narr = (Vector3*)glMapBuffer(GL_ARRAY_BUFFER, GL_READ_ONLY); 1.36 + 1.37 + glBegin(GL_LINES); 1.38 + for(unsigned int i=0; i<nverts; i++) { 1.39 + glColor3f(0, 1, 0); 1.40 + glVertex3f(varr->x, varr->y, varr->z); 1.41 + glVertex3f(varr->x + narr->x * NSZ, varr->y + narr->y * NSZ, varr->z + narr->z * NSZ); 1.42 + varr++; 1.43 + narr++; 1.44 + } 1.45 + glEnd(); 1.46 + 1.47 + glUnmapBuffer(GL_ARRAY_BUFFER); 1.48 + glBindBuffer(GL_ARRAY_BUFFER, vbo[MESH_ATTR_VERTEX]); 1.49 + glUnmapBuffer(GL_ARRAY_BUFFER); 1.50 + 1.51 + glUseProgram(prog); 1.52 + glPopAttrib(); 1.53 +#endif 1.54 + 1.55 glPopMatrix(); 1.56 }