begin process at 2012 05 30 05:40:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

Problemes OpenGl avec SDL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problemes OpenGl avec SDL

mardi 14 juin 2005 à 02:43:31 | Problemes OpenGl avec SDL

ToNtOnYoYo



bonjour bonjour...
voila mon prob.. j'essaye d'afficher une simple ligne nooire ds ma fenetre ( créé avec SDL)
et ca ne marche pas ..
je vous laisse le code..
svp help , dites moi ce qui va pas.. j'ai essayé énormement de choses, sans succès

------>


#include <windows.h>
#include <stdlib.h>

#include <SDL.h>
#include <GL/gl.h>
#include <GL/glu.h>


SDL_Surface *Screen;


int Init( void )
{
   if ( SDL_Init( SDL_INIT_VIDEO ) == -1 )
   {
      fprintf(stderr,"Echec lors du chargement de la vidéo : %s", SDL_GetError() );
      SDL_Quit();
   } 

    SDL_GL_SetAttribute (SDL_GL_DOUBLEBUFFER, 1);
    SDL_GL_SetAttribute (SDL_GL_DEPTH_SIZE, 32);   

       if ( Screen = SDL_SetVideoMode( 640, 480, 32, SDL_OPENGL ) )
       {

        SDL_WM_SetCaption ("Test", "Test");
       

        glShadeModel(GL_SMOOTH);                           
        glClearColor (1.0f, 1.0f, 1.0f, 1.0f);               
        glClearDepth(1.0f);                               
        glEnable(GL_DEPTH_TEST);                       
        glDepthFunc(GL_LEQUAL);                               
        glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
         return 1;
       } 
  
   return 0;
}


void Afficher(void)
{
   
    glClear(GL_COLOR_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    glTranslatef(-1.5f, 0.0f, -10.0f);
           
    glBegin(GL_LINES);   
    glColor3f(0.0, 0.0, 0.0);

    glVertex2i(100,0);
    glVertex2i(100,480);

    glEnd();

    glFlush();   
    SDL_GL_SwapBuffers ();
   
   
  

}


int main(int argc, char* argv[])
{
   //si l'initialisation se passe normalement on pousuit
    if (Init())
    {
        //on afficher notre forme
       
        Afficher();
       
        while (1)
        {

             SDL_Event event;
             SDL_WaitEvent(&event);

            //on attend un evenement .. click sur la croix pour sortir par exemple
             switch (event.type)
             {
             case SDL_QUIT:
                 SDL_Quit();
                 return 0;
             }

           
        }

    }

return 0;
}
 ---->

merci d'avance

mardi 14 juin 2005 à 19:06:59 | Re : Problemes OpenGl avec SDL

Pamaury

déjà, un depth buffer de 32-bit, çà existe pas . Le max c'est 24-bit(je sais plus pourquoi mais c'est un fait) .
Ensuite, tu peux faire SDL_GL_SwparBuffers mais si t'as pas spécifier qu'il faut utiliser le dobule buffering, çà va être dur:
SDL_OPENGL|SDL_DOUBLEBUF .
De plus, glFlush() est inutile .
Enfin, faudrait spécifier la vue que tu utilise genre:

void GL_Resize(int width,int height)
{
    // on défini la taille du viewport
    glViewport(0,0,width,height);
    // on passe en mode matrice pour la projection
    glMatrixMode(GL_PROJECTION);
    // on remet la matrice à l'identité
    glLoadIdentity();
    // vue 2D à la taille de l'écran
    gluOrtho2D(0,width,height,0);
    // on repasse en mode matrice modélisation
    glMatrixMode(GL_MODELVIEW);
    // remet la matrice à l'identité
    glLoadIdentity();
}

bah oui, parce que si tu dis pas à opengl le viewport, il va pas savoir où dessiner .
donc au final çà devrait faire:

#include <windows.h>
#include <stdlib.h>

#include <SDL.h>
#include <GL/gl.h>
#include <GL/glu.h>

void GL_Resize(int width,int height)
{
    // on défini la taille du viewport
    glViewport(0,0,width,height);
    // on passe en mode matrice pour la projection
    glMatrixMode(GL_PROJECTION);
    // on remet la matrice à l'identité
    glLoadIdentity();
    // vue 2D à la taille de l'écran
    gluOrtho2D(0,width,height,0);
    // on repasse en mode matrice modélisation
    glMatrixMode(GL_MODELVIEW);
    // remet la matrice à l'identité
    glLoadIdentity();
}


SDL_Surface *Screen;


int Init( void )
{
   if ( SDL_Init( SDL_INIT_VIDEO ) == -1 )
   {
      fprintf(stderr,"Echec lors du chargement de la vidéo : %s", SDL_GetError() );
      SDL_Quit();
   } 

    SDL_GL_SetAttribute (SDL_GL_DOUBLEBUFFER, 1);
    SDL_GL_SetAttribute (SDL_GL_DEPTH_SIZE, 32);   

       if ( Screen = SDL_SetVideoMode( 640, 480, 32, SDL_OPENGL ) )
       {

        SDL_WM_SetCaption ("Test", "Test");
        GL_Resize(640,480);

        glShadeModel(GL_SMOOTH);                           
        glClearColor (1.0f, 1.0f, 1.0f, 1.0f);               
        glClearDepth(1.0f);                               
        glEnable(GL_DEPTH_TEST);                       
        glDepthFunc(GL_LEQUAL);                               
        glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
         return 1;
       } 
  
   return 0;
}


void Afficher(void)
{
   
    glClear(GL_COLOR_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    glTranslatef(-1.5f, 0.0f, -10.0f);
           
    glBegin(GL_LINES);   
    glColor3f(0.0, 0.0, 0.0);

    glVertex2i(100,0);
    glVertex2i(100,480);

    glEnd();

    glFlush();   
    SDL_GL_SwapBuffers ();
   
   
  

}


int main(int argc, char* argv[])
{
   //si l'initialisation se passe normalement on pousuit
    if (Init())
    {
        //on afficher notre forme
       
        Afficher();
       
        while (1)
        {

             SDL_Event event;
             SDL_WaitEvent(&event);

            //on attend un evenement .. click sur la croix pour sortir par exemple
             switch (event.type)
             {
             case SDL_QUIT:
                 SDL_Quit();
                 return 0;
             }

           
        }

    }

return 0;
}


voilà

A m a u r y
mercredi 15 juin 2005 à 12:22:13 | Re : Problemes OpenGl avec SDL

ToNtOnYoYo

j'ai lu de la doc, et j'ai pu corrigé mes erreurs tout seul !, mais merci de ton aide ;)   
A+  






Cette discussion est classée dans : afficher, include, sdl, gl, 0f


Répondre à ce message

Sujets en rapport avec ce message

[C++] Problème en POO [ par Tijee ] Bonjour à tous.Voila, j'ai fait un petit moteur 2D avec SDL compilé avec Dev-Cpp, il est simple mais fonctionne très bien. J'aimerais parvenir au même SDL Opengl lumiere [ par xian240482 ] Alors là, je comprend pas!Voila un mon code (ultra simplifier) et il ne marche pas : Il plante sur le glend() !Si c'est ,comme je le crois, une erreur TEXTURE SDL_IMAGE JPEG [ par Batman60 ] salutquelqu'un peut me dire ce qui cloche dans mon bout de code utilisé pour charger une texture jpeg j'utilise la lib SDL_IMAGE pour celaest-ce que c Probleme d'alpha avec SDL_ttf [ par vladisback ] Je suis entrain de m'arracher les cheuveux avec SDL_ttf, j'essai simplement d'afficher du texte de n'importe quelle couleur opaque sur un fond transpa Texte openGL/Glut [ par thomasvd ] Bonjour!J'ai découvert openglgmut sdl et tout le tralala il y a quelques jours et j'avoue que je m'y perd un peu.En fait je voudrais afficher du texte aide moi dans la SDL [ par iliassh ] je veux vos aide pour cree mon jeux en SDL,et je suis trop charger pourque je le rend avant la fin du mois courantje vai l'aide de qq de votre part po pb avec les rotations [ par ET29 ] Bonjour,je bute sur un petit pb de rotations :je voudrais faire pivoter une pyramide avec la souris autour des axes X et Y de l'ecran (soit horizontal Lecture fichier impossible avec SDL [ par CCJ ] Hello.j'utilise SDL pour me faire un petit jeu 2D. Seulement je recontre actuellement un petit probleme. Il semblerait en effet qu'il bloque l'utilisa Texture transparente [ par F0ra ] Bonjour,Je voudrais aff Problème de placage de texture [ par unrealgun ] Bonjour,Je suis en train de développer uGUI en C++ sous linux avec SDL et OpenGL.Voila mon probleme : je charge une image PNG transparente avec SDL_Im


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,120 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales