//Pozzer //---------------------------------------------- Glsl::Glsl(char *vert, char *frag) { isActive = false; if (showInfo == false) { showInfo = true; printf("\nYou are using OpenGL %s\n\n", glGetString(GL_VERSION)); } setShaders(vert, frag); //printShaderInfoLog(v); //printShaderInfoLog(f); printProgramInfoLog(p); //http://www.delorie.com/gnu/docs/gcc/cpp_21.html //http://www.thescripts.com/forum/thread212429.html //http://www.codeguru.com/forum/showthread.php?t=231043 //printf("\n%s %d %s %s \n", __FILE__, __LINE__, __FUNCTION__, __TIMESTAMP__); printOglError(__FILE__, __LINE__); }
void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); printOpenGLError(); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); gluLookAt(m_camera.position.x, m_camera.position.y, m_camera.position.z, m_camera.lookat.x, m_camera.lookat.y, m_camera.lookat.z, m_camera.up.x, m_camera.up.y, m_camera.up.z); printOglError(0,0); if(true) { gl2psEnable(GL2PS_LINE_STIPPLE); if(!noxyz) UIHelper::drawXYZ(); glPolygonMode(GL_FRONT_AND_BACK, polygon_mode); glColor3f(0.1, 0.8, 0); UIHelper::drawBoundingBox(boxobj2); { mat4 rotateMatrix = rotateDeg == 0 ? mat4::Identity : mat4::GetRotate(rotateDeg, rotateAxis); mat4 translateMatrix = mat4::GetTranslate(translatePos); mat4 transformMatrix = translateMatrix * rotateMatrix; { mat4 indentity = mat4::Identity; //double tx = 1.51, ty = 0, tz = 0; double tx = translatePos.x, ty = translatePos.y, tz = translatePos.z; double m [16] = { 1.0, 0, 0, 0, 0.0, 1.0, 0, 0, 0.0, 0, 1.0, 0, tx, ty, tz, 1.0 }; { dtSelectObject(&object1); dtLoadMatrixd(m); //dtLoadIdentity(); //dtTranslate(tx, ty, tz); if(dtTestPair(&object1, &object2)) //if(dtTest() > 0) glColor3f(1.0, 0, 0); else glColor3f(0.1, 0.8, 0); } } } if(rotateDeg != 0) glRotatef(rotateDeg, rotateAxis.x, rotateAxis.y, rotateAxis.z); glTranslatef(translatePos.x, translatePos.y, translatePos.z); UIHelper::drawBoundingBox(boxobj1); gl2psDisable(GL2PS_LINE_STIPPLE); }else { glColor3f(1, 0, 1); glPolygonMode(GL_FRONT_AND_BACK ,GL_LINE); glLineWidth(1.0); GLUquadricObj *qobj = gluNewQuadric(); gluSphere(qobj,3,16,16); glLineWidth(2.0); UIHelper::drawNormals(normals, 3); glPointSize(5.0f); UIHelper::drawPoints(normals); } glPopMatrix(); glFlush(); if( finish_without_update ) glFinish(); else glutSwapBuffers(); }