void CCamera::zoomer(GLfloat zoom) { m_dFar-=zoom; if(m_dFar<2) m_dFar=2; Dessiner(); }
void HeightmapWidget::paintGL() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); // Model view matrix glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0.0, 0.0, -distance, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); glRotatef(x_rot / 16.0f, 1.0f, 0.0f, 0.0f); glRotatef(y_rot / 16.0f, 0.0f, 1.0f, 0.0f); glRotatef(z_rot / 16.0f, 0.0f, 0.0f, 1.0f); // Projection matrix glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(30.0f, 1.0*width()/height(), 0.1f, 100.0f); // On affiche un simple repere glBegin(GL_LINES); qglColor(Qt::white); glVertex3f(0.0f, 0.0f, 0.0f); qglColor(Qt::red); glVertex3f(1.0f, 0.0f, 0.0f); glEnd(); glBegin(GL_LINES); qglColor(Qt::white); glVertex3f(0.0f, 0.0f, 0.0f); qglColor(Qt::blue); glVertex3f(0.0f, 1.0f, 0.0f); glEnd(); glBegin(GL_LINES); qglColor(Qt::white); glVertex3f(0.0f, 0.0f, 0.0f); qglColor(Qt::green); glVertex3f(0.0f, 0.0f, 1.0f); glEnd(); Dessiner(); // FPS count ++frame_count; QTime new_time = QTime::currentTime(); // if 1 sec (1000 msec) ellapsed if (last_time.msecsTo(new_time) >= 1000) { last_count = frame_count; frame_count = 0; last_time = QTime::currentTime(); } // FPS display qglColor(Qt::white); renderText(10, 20, QString("FPS:%1").arg(last_count)); }
int gravityTest(int argc, char *argv[]) { SDL_Event event; const Uint32 time_per_frame = 1000/50; SDL_Init(SDL_INIT_VIDEO); atexit(stop); SDL_WM_SetCaption("SDL GL Application", NULL); SDL_SetVideoMode(1024, 768, 32, SDL_OPENGL); glEnable(GL_DEPTH_TEST); glMatrixMode( GL_PROJECTION ); glLoadIdentity(); gluPerspective(70,(double)1024/768,1,1000); SDL_EnableKeyRepeat(10,10); // Dessiner(); camera = new TrackBallCamera(); camera->setScrollSensivity(0.5); Uint32 start_time, stop_time; Uint32 last_time = SDL_GetTicks(); Uint32 current_time,ellapsed_time; glEnable(GL_DEPTH_TEST); glEnable(GL_TEXTURE_2D); texture1 = loadTexture("/home/phvera/projects/testopengl/crate.jpg"); texture2 = loadTexture("/home/phvera/projects/testopengl/ground.jpg"); texture3 = loadTexture("/home/phvera/projects/testopengl/sky.jpeg"); texture4 = loadTexture("/home/phvera/projects/testopengl/earth.jpg"); // if (texture1 == NULL || texture2 == NULL || texture3 == NULL) // { // std::cout<<"fail"<<std::endl; // } // for (;;) // { // while (SDL_PollEvent(&event)) // { // // switch(event.type) // { // case SDL_QUIT: // exit(0); // break; // case SDLK_UP: // case SDL_KEYDOWN: // switch (event.key.keysym.sym) // { // case SDLK_UP: // angleX += 1; // break; // // case SDLK_DOWN: // angleX -= 1; // break; // // case SDLK_RIGHT: // angleZ += 1; // break; // // case SDLK_LEFT: // angleZ -= 1; // break; // // case SDLK_INSERT: // angleY += 1; // break; // // case SDLK_DELETE: // angleY -= 1; // break; // } // break; // } // } // current_time = SDL_GetTicks(); // ellapsed_time = current_time - last_time; // last_time = current_time; // // // angleZ += 0.05 * ellapsed_time; // // angleX += 0.05 * ellapsed_time; // // angleY += 0.05 * ellapsed_time; // // ellapsed_time = SDL_GetTicks() - start_time; // if (ellapsed_time < 10) // { // SDL_Delay(10 - ellapsed_time); // } // } int cubeHeight = 50; for (;;) { start_time = SDL_GetTicks(); while(SDL_PollEvent(&event)) { switch(event.type) { case SDL_QUIT: exit(0); break; case SDL_KEYDOWN: switch (event.key.keysym.sym) { case SDLK_p: takeScreenshot("test.bmp"); break; case SDLK_ESCAPE: exit(0); break; default : camera->OnKeyboard(event.key); } break; case SDL_MOUSEMOTION: camera->OnMouseMotion(event.motion); break; case SDL_MOUSEBUTTONUP: case SDL_MOUSEBUTTONDOWN: camera->OnMouseButton(event.button); break; } } current_time = SDL_GetTicks(); ellapsed_time = current_time - last_time; last_time = current_time; cubeHeight -= 0.01; Dessiner(cubeHeight); stop_time = SDL_GetTicks(); if ((stop_time - last_time) < time_per_frame) { //SDL_Delay(time_per_frame - (stop_time - last_time)); } } return 0; }
int main(int argc, char *argv[]) { SDL_Event event; int continuer = 1; SDL_Init(SDL_INIT_VIDEO); FSOUND_Init(44100, 32, FSOUND_NORMAL); atexit(SDL_Quit); SDL_WM_SetCaption("Sphere Quantique", NULL); SDL_SetVideoMode(1280/*glutGet(GLUT_SCREEN_WIDTH)*/,720/*glutGet(GLUT_SCREEN_HEIGHT)*/, 32, SDL_OPENGL | SDL_NOFRAME/*| SDL_FULLSCREEN*/); glMatrixMode( GL_PROJECTION ); glLoadIdentity(); gluPerspective(70,(double)glutGet(GLUT_SCREEN_WIDTH)/glutGet(GLUT_SCREEN_HEIGHT),1,1000); glEnable(GL_DEPTH_TEST); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glFlush(); SDL_GL_SwapBuffers(); srand(time(NULL)); for(int i=0;i<MAX_BALL;i++){ int r_x = rand()%(50-1)+10; int r_y = rand()%(50-1)+10; int r_z = rand()%(50-1)+10; int ax_1 = rand()%2; int ax_2 = rand()%2; int angl = rand()%360; int R = rand()%256; int G = rand()%256; int B = rand()%256; sphere[i] = init_sphere(sphere[i],0,0,0,r_x,r_y,r_z,ax_1,ax_2,angl,R,G,B); } //SDL_Delay(10000); while(continuer) { SDL_PollEvent(&event); switch(event.type) { case SDL_QUIT: continuer = 0; break; case SDL_KEYDOWN: switch(event.key.keysym.sym) { case SDLK_ESCAPE: continuer = 0; break; case SDLK_w: cam_x += 1; cam_px += 1; break; case SDLK_a: break; case SDLK_d: break; case SDLK_s: cam_x -= 1; cam_px -= 1; break; default:break; } break; } Dessiner(); SDL_Delay(10); } FSOUND_Close(); return 0; }
int grue(int argc, char *argv[]) { SDL_Event event; SDL_Init(SDL_INIT_VIDEO); atexit(SDL_Quit); SDL_WM_SetCaption("Exercice : une grue", NULL); SDL_SetVideoMode(LARGEUR_ECRAN, HAUTEUR_ECRAN, 32, SDL_OPENGL); glMatrixMode( GL_PROJECTION ); glLoadIdentity( ); gluOrtho2D(0,LARGEUR_ECRAN,0,HAUTEUR_ECRAN); SDL_EnableKeyRepeat(10,10); Dessiner(); while(SDL_WaitEvent(&event)) { switch(event.type) { case SDL_QUIT: exit(0); break; case SDL_KEYDOWN: switch (event.key.keysym.sym) { case SDLK_UP: longueur --; if (longueur < 10) longueur = 10; break; case SDLK_DOWN: longueur ++; if (longueur > 100) longueur = 100; break; case SDLK_LEFT: if ((event.key.keysym.mod & KMOD_LSHIFT) == KMOD_LSHIFT) { angle1++; if (angle1 > 90) angle1 = 90; } else { angle2++; if (angle2 > 90) angle2 = 90; } break; case SDLK_RIGHT: if ((event.key.keysym.mod & KMOD_LSHIFT) == KMOD_LSHIFT) { angle1--; if (angle1 < 10) angle1 = 10; } else { angle2--; if (angle2 < -90) angle2 = -90; } break; } break; } Dessiner(); } return 0; }
int main(int argc, char *argv[]) { SDL_Event event; double cam[3] = {240,240,240}; SDL_Init(SDL_INIT_VIDEO); atexit(SDL_Quit); SDL_WM_SetCaption("BOIDS", NULL); SDL_SetVideoMode(1200, 900, 32, SDL_OPENGL); //SDL_EnableKeyRepeat(10,10); glMatrixMode( GL_PROJECTION ); glLoadIdentity(); gluPerspective(70,(double)1200/900,1,1000); glEnable(GL_DEPTH_TEST); Boids test(220,220,220, NOMBRE_BOIDS); Dessiner(test,cam); lastTime = SDL_GetTicks(); for (;;) { SDL_PollEvent(&event); int startTime = SDL_GetTicks(); switch(event.type) { case SDL_QUIT: exit(0); break; case SDL_KEYDOWN: switch (event.key.keysym.sym) { case SDLK_q: cam[0] += 5; break; case SDLK_a: cam[0] -= 5; break; case SDLK_w: cam[1] += 5; break; case SDLK_s: cam[1] -= 5; break; case SDLK_e: cam[2] += 5; break; case SDLK_d: cam[2] -= 5; break; case SDLK_SPACE: pause = !pause; break; case SDLK_BACKSPACE: test.xa = 0; test.ya = 0; test.za = 0; break; case SDLK_DELETE: test.genereArrive(); break; case SDLK_PLUS: if(intervalle>1) intervalle--; break; case SDLK_MINUS: intervalle++; break; case SDLK_UP: cam[0]--; break; case SDLK_DOWN: cam[0]++; break; case SDLK_LEFT: if ((event.key.keysym.mod & KMOD_LSHIFT) == KMOD_LSHIFT) { cam[0]+=0.1; } else { cam[0]+=10; } break; case SDLK_RIGHT: if ((event.key.keysym.mod & KMOD_LSHIFT) == KMOD_LSHIFT) { cam[0]-=0.1; } else { cam[0]-=10; } break; } break; } Dessiner(test, cam); int timeElapsed = SDL_GetTicks()-startTime; if(1000/nbImageSec>timeElapsed) SDL_Delay(1000/nbImageSec-timeElapsed);//*/ } return 0; }
int main(int argc, char *argv[]) { SDL_Event event; SDL_Init(SDL_INIT_VIDEO); atexit(stop); SDL_WM_SetCaption("Gunvarrel", NULL); SDL_SetVideoMode(800, 600, 32, SDL_OPENGL); //-------------------- //Camera camera = new TrackBallCamera(); //------------------------- glClearColor(1.0f,1.0f,1.0f,1.0f); glMatrixMode( GL_PROJECTION ); glLoadIdentity(); gluPerspective(45,(double)800/600,1,1000); glEnable(GL_DEPTH_TEST); Dessiner(); Uint32 last_time = SDL_GetTicks(); Uint32 current_time,ellapsed_time; Uint32 start_time; for (;;) { start_time = SDL_GetTicks(); while (SDL_PollEvent(&event)) { switch(event.type) { case SDL_QUIT: exit(0); break; case SDL_KEYDOWN: switch(event.key.keysym.sym) { case SDLK_ESCAPE: exit(0); break; default: camera->onKeyboard(event.key); break; } break; case SDL_MOUSEMOTION: camera->onMouseMotion(event.motion); break; case SDL_MOUSEBUTTONUP: case SDL_MOUSEBUTTONDOWN: camera->onMouseButton(event.button); break; } } current_time = SDL_GetTicks(); ellapsed_time = current_time - last_time; last_time = current_time; angleZ += 0.05 * ellapsed_time; angleX += 0.05 * ellapsed_time; Dessiner(); ellapsed_time = SDL_GetTicks() - start_time; if (ellapsed_time < 20) { SDL_Delay(20 - ellapsed_time); } } return 0; }