IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

Surface dans fonction


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2013
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 26
    Par défaut Surface dans fonction
    Bonjours,

    Je suis en train se programmer un jeu avec la bibliothèque SDL (un puissance 4) et j'ai créer un fonction qui afficher le tableau (pour l'instant elle n'affiche que la grille : ce n'est pas finit). Je l'utilise souvent (2 fois par tour de boucle qui tourne avec un PollEvent.
    Mais voilà je me demandais si c'était optimisé et correcte de déclarer les surfaces et de libérer la mémoire à la fin de la fonction.
    Sinon, comment peut on faire autrement ?

    Pour ceux qui saurait merci de penser à moi

    Code de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    void dessinerGrille(SDL_Surface* ecran)
    {
        SDL_Surface *ligneH, *ligneV;
        SDL_Rect posH, posV;
        int i;
     
        ligneH = SDL_CreateRGBSurface(SDL_HWSURFACE, 420, 5, 32, 0, 0, 0, 0);
        ligneV = SDL_CreateRGBSurface(SDL_HWSURFACE, 5, 360, 32, 0, 0, 0, 0);
     
        posV.y = 60;
        posH.x = 140;
        for (i=0 ; i<=420 ; i=i+60)
        {
            posV.x = i+140;
            SDL_BlitSurface(ligneV, NULL, ecran, &posV);
        }
     
        for (i=0 ; i<=360 ; i=i+60)
        {
            posH.y = i+60;
            SDL_BlitSurface(ligneH, NULL, ecran, &posH);
        }
     
        SDL_FreeSurface(ligneH);
        SDL_FreeSurface(ligneV);
    }

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 158
    Billets dans le blog
    152
    Par défaut
    Bonjour,

    Dans un jeu, il faut presque tout le temps éviter de faire des allocations/libération de mémoire dans la boucle principale. Sinon, vous allez killer les performances sur certaines machines.
    L'idée sera donc de faire une fonction d'initialisation dans laquelle vous allez créer vos surface. Une fonction de libération de mémoire dans laquelle vous ferez vos free et vous la fonction de dessin, vous allez passer les surfaces à afficher par paramètre de la fonction.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

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

  3. #3
    Membre averti
    Inscrit en
    Mai 2013
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 26
    Par défaut
    Ok merci du conseil ! Ça me semblait aussi étrange d'allouer et de libérer des surfaces à chaque appel de fonctions...

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

Discussions similaires

  1. Déclarer SDL surface dans fonctions
    Par guillaume40 dans le forum SDL
    Réponses: 12
    Dernier message: 15/11/2010, 21h03
  2. Problème de date dans fonction utlisateur
    Par lutin2003 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2005, 16h25
  3. Switch dans fonction membre
    Par Raish dans le forum C++
    Réponses: 11
    Dernier message: 30/03/2005, 14h41
  4. Réponses: 5
    Dernier message: 13/08/2004, 15h40
  5. Sauvegarder une surface dans un fichier
    Par Freakazoid dans le forum DirectX
    Réponses: 6
    Dernier message: 18/08/2002, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo