Ejemplo n.º 1
0
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));
}
Ejemplo n.º 3
0
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;
}
Ejemplo n.º 4
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;
}
Ejemplo n.º 5
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;
}
Ejemplo n.º 6
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;
}
Ejemplo n.º 7
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;
}