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 :

l'adresse du pixel que l'on veut modifier


Sujet :

SDL

  1. #1
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut l'adresse du pixel que l'on veut modifier
    Bonjour

    Je regarde et essaie de comprendre des sources SDL !
    Je tombe sur la source http://jeux.developpez.com/faq/sdl/?...odifier_pixels

    J'ai la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        /* p est l'adresse du pixel que l'on veut modifier */
        Uint8 *p = (Uint8*)Surface->pixels + y * Surface->pitch + x * bpp;
    Et bpp n'a pas été initialisé ! C'est quoi ? Une erreur ?

    Peut-être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Uint8 bpp = surface->format->BytesPerPixel;
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  2. #2
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 076
    Points : 2 328
    Points
    2 328
    Par défaut
    Bonjour,

    effectivement, c'est une erreur de la part de la FAQ C de developpez.
    Le code se situe dans la doc SDL, lorsque l'on est dans full table of content, section "example 2 - 4"

    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
    27
    28
    29
    30
    31
     
    /*
     * Return the pixel value at (x, y)
     * NOTE: The surface must be locked before calling this!
     */
    Uint32 getpixel(SDL_Surface *surface, int x, int y)
    {
        int bpp = surface->format->BytesPerPixel;
        /* Here p is the address to the pixel we want to retrieve */
        Uint8 *p = (Uint8 *)surface->pixels + y * surface->pitch + x * bpp;
     
        switch(bpp) {
        case 1:
            return *p;
     
        case 2:
            return *(Uint16 *)p;
     
        case 3:
            if(SDL_BYTEORDER == SDL_BIG_ENDIAN)
                return p[0] << 16 | p[1] << 8 | p[2];
            else
                return p[0] | p[1] << 8 | p[2] << 16;
     
        case 4:
            return *(Uint32 *)p;
     
        default:
            return 0;       /* shouldn't happen, but avoids warnings */
        }
    }
    Bonne continuation.

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/05/2008, 10h23
  2. Trigger que Oracle ne veut même pas regarder
    Par Borni Gloim dans le forum PL/SQL
    Réponses: 8
    Dernier message: 09/01/2008, 22h37
  3. Réponses: 5
    Dernier message: 14/02/2007, 15h29
  4. [Débutant] Placer ce que l'on veut où on le veut
    Par rockelite dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 1
    Dernier message: 14/09/2006, 09h14

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