Partage
  • Partager sur Facebook
  • Partager sur Twitter

[SDL] Problème avec SDL_Flip

Celui-ci me fait une erreur de segmentation

Sujet résolu
    7 mai 2008 à 23:36:26

    Bonsoir,

    Je travaille sur un programme où j'utilise la SDL_ttf.
    Voici d'abord le code qui plante:
    void afficheMenu(SDL_Surface *ecran)
    {
    	TTF_Font *police = NULL;
    	SDL_Color couleur = {0, 0, 0};
    	SDL_Surface *texte = NULL;
    	SDL_Rect position;
    	
    	if ( TTF_Init() == -1 )
    	{
    		cout << "Impossible d'initialiser la SDL_ttf." << endl;
    		cout << "Erreur: %s" << TTF_GetError() << endl;
    		
    		exit(EXIT_FAILURE);
    	}
    	
    	police = TTF_OpenFont("fonts/arial.ttf", 16);
    	texte = TTF_RenderUNICODE_Blended(police, (Uint16*)"test", couleur);
    	
    	position.x = 320;
    	position.y = 200;
    	
    	SDL_BlitSurface(texte, NULL, ecran, &position);
    	SDL_Flip(ecran);
    	
    	TTF_CloseFont(police);
    	TTF_Quit();
    }
    


    Et la fonction qui appel celle-ci:
    int main(int argc, char **argv)
    {
    	SDL_Surface *ecran = NULL;
    	
    	if (argc == 2)
    	{
    		if ( strcmp(argv[1], "--help") == 0 )
    		{
    			afficheAide();
    			
    			return EXIT_SUCCESS;
    		}
    		else if (strcmp(argv[1], "--version") == 0 )
    		{
    			afficheVersion();
    			
    			return EXIT_SUCCESS;
    		}
    		else
    		{
    			cout << "Vous avez spécifiez un paramètre non reconnu\n" << endl;
    			afficheAide();
    			
    			return EXIT_SUCCESS;
    		}
    	}
    	
    	if (SDL_Init(SDL_INIT_VIDEO) == -1)
    	{
    		cout << "Impossible d'intialiser la SDL." << endl;
    		return EXIT_FAILURE;
    	}
    	
    	SDL_SetVideoMode(640, 480, 24, SDL_HWSURFACE);
    	SDL_WM_SetCaption((char*)ecritVersion, NULL);
    	
    	afficheMenu(ecran);
    	
    	SDL_Quit();
    	
    	return EXIT_SUCCESS;
    }
    


    La première fonction se trouve dans le fichier jeu.cpp alors que le main se trouve dans main.cpp.

    Mon problème se passe au moment du SDL_Flip, en effet celui-ci me renvoi l'erreur suivante au lancement:
    christophedlr@ubuntu:~/prog/Cpp/code-lyoko/clgame$ ./LyokoGame
    Erreur de segmentation (core dumped)


    En commentant mon SDL_Flip, j'ai pu lancer le programme sans aucune erreur ni plantage, j'en conclus donc que c'est lui le problème.
    Je suppose que c'est parce que je travaille sur un pointeur passé à la fonction mais j'en suis pas sur.

    Merci d'avance à celui qui pourra m'aider.
    • Partager sur Facebook
    • Partager sur Twitter
    Mon site internet : http://www.chrissoftware.fr.nf
      7 mai 2008 à 23:56:46

      c'est normal vu que ta variable ecran n'est pas initialisée ;)
      • Partager sur Facebook
      • Partager sur Twitter
        8 mai 2008 à 0:00:34

        J'avais pas vu que j'avais oublié cela, merci de me l'avoir fait remarqué.
        Problème résolu alors ;)
        • Partager sur Facebook
        • Partager sur Twitter
        Mon site internet : http://www.chrissoftware.fr.nf

        [SDL] Problème avec SDL_Flip

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown