Partage
  • Partager sur Facebook
  • Partager sur Twitter

SDL redimensionnement

Sujet résolu
    3 novembre 2006 à 12:08:06

    Salut, je commence la SDL, et j'ai un pb vc le redimensionnement, lorsque j'augmente la taille de ma fenetre, la surface de fond, ecran, ne suis pas, cad qu'elle garde la taille originel, et qu'apparait à la place dans ma fenetre, ce qu'il y a normalement derrière.

    Mon code, au cas où:
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
    #include <SDL/SDL_image.h> /* Inclusion du header de SDL_image */

    int main(int argc, char *argv[])
    {
        int continuer = 1;
        int i =255;
        SDL_Event event;
        SDL_Init(SDL_INIT_VIDEO);
        SDL_Surface *ecran = NULL;

        ecran = SDL_SetVideoMode(640,480,32,SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_RESIZABLE);

        SDL_WM_SetCaption("déplacer ZOZOR", NULL);
        SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format,255,i,i));

        SDL_Flip(ecran);
        while(continuer)
        {
            SDL_WaitEvent(&event);
            switch(event.type)
            {
                case SDL_QUIT:
                continuer = 0;
                break;
            }
        }

        SDL_Quit;
        return EXIT_SUCCESS;
    }


    Je ne sais pas si c'st normal, mais je ne pense pas.

    Merci d'avance.

    @+ :soleil:
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      3 novembre 2006 à 12:19:36

      C'est normal. En fait, à chaque redimmensionnement, il y a un événnement qui lui correspond. Tu dois alors appeler SDL_SetVideoMode avec les nouveaux paramètres de ta fenêtre à chaque fois.
      Pour plus de précision : la Documentation de la SDL.

      Duarna
      • Partager sur Facebook
      • Partager sur Twitter
        3 novembre 2006 à 12:24:18

        ok, merci, je pensais que set mode devait se réinitialiser tout seul.

        Je vais essayer de le faire.
        C bon:

        #include <stdlib.h>
        #include <stdio.h>
        #include <SDL/SDL.h>
        #include <SDL/SDL_image.h> /* Inclusion du header de SDL_image */

        int main(int argc, char *argv[])
        {
            int continuer = 1;
            int i =255;
            SDL_Event event;
            SDL_Init(SDL_INIT_VIDEO);
            SDL_Surface *ecran = NULL;

            ecran = SDL_SetVideoMode(640,480,32,SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_RESIZABLE);

            SDL_WM_SetCaption("déplacer ZOZOR", NULL);
            SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format,255,i,i));

            SDL_Flip(ecran);
            while(continuer)
            {
                SDL_WaitEvent(&event);
                switch(event.type)
                {
                    case SDL_QUIT:
                    continuer = 0;
                    break;
                    case SDL_VIDEORESIZE:
                    ecran=SDL_SetVideoMode(event.resize.w,event.resize.h,32,SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_RESIZABLE);
                     SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format,255,i,i));
                    break;

                }
                SDL_Flip(ecran);
            }

            SDL_Quit;
            return EXIT_SUCCESS;
        }



        @+ :soleil:
        • Partager sur Facebook
        • Partager sur Twitter

        SDL redimensionnement

        × 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