// this function is called each frame void glutDisplay (void) { glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Setup the OpenGL viewpoint glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); XnMapOutputMode mode; g_DepthGenerator.GetMapOutputMode(mode); #ifdef USE_GLUT glOrtho(0, mode.nXRes, mode.nYRes, 0, -1.0, 1.0); #elif defined(USE_GLES) glOrthof(0, mode.nXRes, mode.nYRes, 0, -1.0, 1.0); #endif glDisable(GL_TEXTURE_2D); if (!g_bPause) { // Read next available data g_Context.WaitOneUpdateAll(g_DepthGenerator); // Update NITE tree g_pSessionManager->Update(&g_Context); #ifdef USE_GLUT PrintSessionState(g_SessionState); #endif } #ifdef USE_GLUT glutSwapBuffers(); #endif }
// this function is called each frame void glutDisplay (void) { glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); XnMapOutputMode mode; g_DepthGenerator.GetMapOutputMode(mode); glOrtho(0, mode.nXRes, mode.nYRes, 0, -1.0, 1.0); glDisable(GL_TEXTURE_2D); g_Context.WaitAndUpdateAll(); g_pSessionManager->Update(&g_Context); PrintSessionState(g_SessionState); glutSwapBuffers(); }
void draw() { glClear( GL_COLOR_BUFFER_BIT ); Matrix4f projectionMatrix = Matrix4f(); if( useKinect){ XnMapOutputMode mode; g_DepthGenerator.GetMapOutputMode(mode); projectionMatrix.Ortho(0, mode.nXRes, mode.nYRes, 0, -1.0, 1.0); }else{ projectionMatrix.Ortho(0, 640, 480, 0, -1.0, 1.0); } Vector primaryPoint; if( useKinect){ primaryPoint = pointHandler->getPrimaryPoint(); }else{ int x,y; SDL_GetMouseState( &x, &y); primaryPoint.setX((GLfloat)x); primaryPoint.setY((GLfloat)y); } // Use our shader glUseProgram(programObject); for( std::vector<Particle*>::iterator it = particles.begin(); it != particles.end(); it++){ Vector movement = primaryPoint - (*it)->getPosition(); movement.normalize(); (*it)->setVelocity(movement); (*it)->update(); //(*it)->getPosition().print(); (*it)->draw(vPos, matLoc, projectionMatrix); } if( useKinect){ g_Context.WaitOneUpdateAll(g_DepthGenerator); // Update NITE tree g_pSessionManager->Update(&g_Context); PrintSessionState(g_SessionState); } SDL_GL_SwapBuffers(); }
void draw() { glClear( GL_COLOR_BUFFER_BIT ); XnMapOutputMode mode; g_DepthGenerator.GetMapOutputMode(mode); Matrix4f projectionMatrix = Matrix4f(); projectionMatrix.Ortho(0, mode.nXRes, mode.nYRes, 0, -1.0, 1.0); Vector primaryPoint; primaryPoint = pointHandler->getPrimaryPoint(); Vector movement = primaryPoint - position; movement.normalize(); position += movement; position.print(); Matrix4f modelViewMatrix; modelViewMatrix.translate(position.getX(), position.getY(), 0); Matrix4f modelViewProjectionMatrix; modelViewProjectionMatrix = projectionMatrix * modelViewMatrix; //glUniformMatrix4fv(matLoc, 1, GL_FALSE, modelViewProjectionMatrix); // Use our shader glUseProgram(programObject); modelViewProjectionMatrix.uniformMatrix(matLoc); // Draw the triangle glDrawArrays(GL_LINE_LOOP, 0, 3); g_Context.WaitOneUpdateAll(g_DepthGenerator); // Update NITE tree g_pSessionManager->Update(&g_Context); PrintSessionState(g_SessionState); SDL_GL_SwapBuffers(); }