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 :

Problème fonction SDL


Sujet :

SDL

  1. #1
    Membre éclairé Avatar de seeme
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    430
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 430
    Points : 791
    Points
    791
    Par défaut Problème fonction SDL
    Me revoilà avec de nouveaux problèmes ^^

    J'essaye de simplfier mes appels de fonctions dans la SDL pour simplifier certaines tâches.

    Je voudrais créer une fonction qui crée et affiche un rectangle sur l'écran.

    Voilà ma fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void AffichRect (int x, int y, int w, int h, int p, int r, int g, int b, int a)
    {
         SDL_Surface *Surf = SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, p, r, g, b, a);
         SDL_Rect rRect = Rect(x, y, w, h);
         SDL_BlitSurface(Surf, NULL, screen, &rRect);
         SDL_FreeSurface(Surf);
    }
    Et un appel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AffichRect(10, 10, 10, 10, 32, 0, 0, 0, 1);
    Mais elle n'affiche rien :S ...
    Pour le proto, w, h, c'ets les dimensions du rectangle, x, y, c'est les coordonées, p la profondeur (32 bits), r, g, b, c'ets la couleurs, et a le canal alpha

    Vous pouvez m'aider???
    Merci

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Aucune idée, par contre si tu t'amuses à créer une nouvelle surface à chaque appel de la fonction tu n'auras pas des performances génialissimes.

    Tu devrais en faire une classe, plutôt qu'une fonction. Ainsi tu pourras distinguer les initialisations, les actions à faire en temps réel (le blit), et les libérations.

  3. #3
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Hello,

    Pour dessiner un rectangle tu peux simplement employer SDL_FillRect() non ?

    Sinon quelle est cette fonction Rect()? Ce n'est pas de SDL en tout cas.

    Effectivement il n'y a pas besoin de créer de nouvel surface à moins que tu veux blitter une texture et dans ce cas tu n'as qu'à employer SDL_LoadBMP() qui renvoie une surface
    Fiquet
    - FAQ SDL
    - FAQ C++

Discussions similaires

  1. Problème fonction SDL
    Par kimimsc dans le forum Débuter
    Réponses: 12
    Dernier message: 14/11/2009, 21h07
  2. Problème fonction PL/SQL
    Par SSJ17Vegeta dans le forum PL/SQL
    Réponses: 2
    Dernier message: 29/10/2005, 22h14
  3. Petit problème avec SDL
    Par Nyarlathotep dans le forum C
    Réponses: 10
    Dernier message: 01/07/2005, 10h10
  4. Problème fonction et trigger sous 7.2
    Par anoukhan dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/06/2005, 23h53
  5. Réponses: 2
    Dernier message: 20/08/2004, 18h10

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