Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Futur Membre du Club
    Homme Profil pro Quentin
    Étudiant
    Inscrit en
    février 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Nom : Homme Quentin
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : février 2012
    Messages : 16
    Points : 19
    Points
    19

    Par défaut Problème de mémoire dans ma fonction AfficherTexte.

    Bonjour,
    Je viens aujourdh'ui pour vous demander un peu d'aide, car, en changeant mon IDE et mon nom de ma classe, ma fonction s'est mise à me donner des erreurs de compilation assez gênantes... Je cherche depuis 2 heures, je sature...

    Voici ma fonction :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    void DisPlay::AfficherTexte(string texte, int taillePolice, int x, int y, int r, int v, int b)
    {
    	SDL_Rect position;
    	SDL_Surface *text;
    	TTF_Font *police = NULL;
    	if(r<0 || r>255)
    	{
    		r=0;
    		cout << "Valeur entrée pour le niveau de rouge invalide et remise à zéro..." << endl;
    	};
    	if(v<0 || v>255)
    	{
    		v=0;
    		cout << "Valeur entrée pour le niveau de vert invalide et remise à zéro..." << endl;
    	};
    	if(b<0 || b>255)
    	{
    		b=0;
    		cout << "Valeur entrée pour le niveau de bleu invalide et remise à zéro..." << endl;
    	};
    	SDL_Color couleur_finale = {r, v, b};
     
            police = TTF_OpenFont("DejaVuSans.ttf", taillePolice);
    	if(police != NULL)
    	{
    		text = TTF_RenderText_Blended(police, texte.c_str(), couleur_finale);
            	position.x = x;
            	position.y = y;
            	SDL_BlitSurface(text, NULL, screen, &position);
    		SDL_UpdateRects(screen, 1, &position);
    		TTF_CloseFont(police);
    		SDL_FreeSurface(text);
    	}
    	else
    	{
    		cout << "Impossible de charger la police d'écriture..." << endl;
    		TTF_CloseFont(police);
    		SDL_FreeSurface(text);
    	}
    }
    et l'erreur de compilation:

    ../DisPlay/DisPlay.cpp:225:37: attention : missing initializer for member ‘SDL_Color::unused’
    ../DisPlay/DisPlay.cpp: In member function ‘void DisPlay::AfficherTexte(std::string, int, int, int)’:

    Merci d'avoir déjà pris le temps de lire ce message,
    Hedbanging

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mai 2011
    Messages : 262
    Points : 411
    Points
    411

    Par défaut

    Je ne connais pas le c++, néanmoins les membres SDL_Color sont des Uint8 (unsigned char).

    Si ça a pu t'aider...

    Edgar.

  3. #3
    Futur Membre du Club
    Homme Profil pro Quentin
    Étudiant
    Inscrit en
    février 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Nom : Homme Quentin
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : février 2012
    Messages : 16
    Points : 19
    Points
    19

    Par défaut Tout problème a une solution, même si on ne la comprends pas.

    Merci de ta bonne volonté mais apparement toutes mes erreurs de compilation se sont résolus, comme par magie, après que j'ai recompilé à la main les fichiers comme je le faisait avant...
    Ahlàlà, les aléas de l'informatique...

    PS: Je marque résolé.

  4. #4
    Responsable 2D/3D/Jeux

    Avatar de LittleWhite
    Homme Profil pro Alexandre Laurent
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    16 396
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexandre Laurent
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 16 396
    Points : 78 121
    Points
    78 121

    Par défaut

    Bonjour,

    TTF_OpenFont ne devrait pas se trouver dans une fonction d'affichage, mais dans une fonction d'initialisation (et pour fermer correctement, une fonction pour fermer la TTF).
    Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
    La rubrique a aussi un blog !

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •