Partage
  • Partager sur Facebook
  • Partager sur Twitter

Sdl probleme avec degrader

    6 juin 2006 à 23:49:47

    salut j'ai un petit probleme... j'essai de faire des degrader mais il ne prend pas toute la fenetre.
    comment faire pour resoudre mon probleme voici les codes


    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>

    void pause();

    int main(int argc, char *argv[])
    {
        SDL_Surface *ecran = NULL, *lignes[256] = {NULL};
        SDL_Rect position;
        int i = 0;

        SDL_Init(SDL_INIT_VIDEO);

        ecran = SDL_SetVideoMode(500, 500, 32, SDL_HWSURFACE); // Hauteur de 256 pixels

        for (i = 0 ; i <= 255 ; i++)
            lignes[i] = SDL_CreateRGBSurface(SDL_HWSURFACE, 500, 1, 32, 0, 0, 0, 0); // Allocation des 256 surfaces

        SDL_WM_SetCaption("Mon dégradé en SDL !", NULL);

        SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));

        for (i = 0 ; i <= 255 ; i++)
        {
            position.x = 0; // Les lignes sont à gauche (abscisse de 0)
            position.y = i; // La position verticale dépend du numéro de la ligne actuelle
            SDL_FillRect(lignes[i], NULL, SDL_MapRGB(ecran->format, i, i, i)); // Remplissage
            SDL_BlitSurface(lignes[i], NULL, ecran, &position); // Collage
        }

        SDL_Flip(ecran);
        pause();

        for (i = 0 ; i <= 255 ; i++) // N'oubliez pas de libérer chacune des 256 surfaces !
            SDL_FreeSurface(lignes[i]);
        SDL_Quit();

        return EXIT_SUCCESS;
    }

    void pause()
    {
        int continuer = 1;
        SDL_Event event;

        while (continuer)
        {
            SDL_WaitEvent(&event);
            switch(event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
            }
        }
    }
    • Partager sur Facebook
    • Partager sur Twitter
      7 juin 2006 à 6:53:48

      Tu crée une fenêtre de 500 px de hauteur et un dégradé qui prend 256 px, c'est logique que le dégradé ne prend pas toute la fenêtre.
      • Partager sur Facebook
      • Partager sur Twitter
        7 juin 2006 à 23:46:42

        oui mais meme si je le change ca ne fonctionne pas pourquoi
        • Partager sur Facebook
        • Partager sur Twitter
          8 juin 2006 à 0:07:30

          J'ai compilé ton prog, tu n'as codé que pour la 1ère partie du dégradé(noir a blanc) sur une hauteur de 256 pixels, avec(comme le fait remarquer Seyz)une hauteur de 500, ça ne fait donc que la moitié..
          2 solutions :
          Ca peut prendre ton écran en entier si tu réduit sa taille
          :
          ecran = SDL_SetVideoMode(500, 256, 32, SDL_HWSURFACE);


          ou alors tu codes la 2eme moitié de ton dégradé (de blanc à noir).

          Ps :n'oublie pas que le double de 256 c'est 512.
          • Partager sur Facebook
          • Partager sur Twitter

          Sdl probleme avec degrader

          × 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