Partage
  • Partager sur Facebook
  • Partager sur Twitter

SDL : position de la fenêtre

par rapport à l'écran

    17 avril 2006 à 12:52:58

    Bonjour à toutes et à tous... J'aurais juste une petite question concernant la bibliothèque SDL, lors de l'ouverture d'une fenêtre: est-il possible (je pense que oui) de définir la position de la fenêtre à l'écran ?

    Merci d'avance pour votre aide...

    Bonne journée à tous...

    Question subsidiaire :p : est-il possible de récupérer les variables "hauteur de l'écran" et "largeur de l'écran" ? (qui peuvent changer d'un utilisateur à un autre)
    • Partager sur Facebook
    • Partager sur Twitter
      21 avril 2006 à 14:01:37

      Moi, j'ai le même problème :

      Je voudrais quela fenêtre SDL s'ouvre au milieu de l'écran, mais je ne sais pas comment faire ?

      A++ ^^
      • Partager sur Facebook
      • Partager sur Twitter
        21 avril 2006 à 14:07:26

        Bonjour, il me semble qu'il est impossible de positionner la fenetre dans l'écran, après avoir fait un tour dans la documentation SDL.
        • Partager sur Facebook
        • Partager sur Twitter
          21 avril 2006 à 15:20:09

          C'est tout à fait impossible.
          • Partager sur Facebook
          • Partager sur Twitter

          If you'd like to join us, read "How do we work at OpenClassrooms"! :)

            21 avril 2006 à 15:46:38

            ok, merci pour ces precisions :(
            • Partager sur Facebook
            • Partager sur Twitter
              21 avril 2006 à 15:58:35

              Par contre en API WIN32 , c'est possible , n'est ce pas ? :)
              • Partager sur Facebook
              • Partager sur Twitter
                21 avril 2006 à 16:07:29

                récupérer la hauteur et la largueur de l'écran par contre c'est possible, je l'ai vu en farfouillant dans les structures.

                Normalement tu as tapé ce bout de code dans ton prog:
                    SDL_Surface *ecran;
                   
                    SDL_Init(SDL_INIT_VIDEO);
                    ecran = SDL_SetVideoMode(1280, 1024, 32, SDL_HWSURFACE | SDL_FULLSCREEN | SDL_DOUBLEBUF);

                Ou un truc similaire.
                Et bien normalement, si je ne dis pas de bêtises, ecran.w te donne la largueur (ici 1280), et ecran.h te donne la hauteur (ici 1024)
                (Par contre il faut peut etre remplacer le '.' par '->' je confond tout le temps les deux écritures)

                Par contre, je voudrais savoir, comment on fait pour récuperer l'information qui nous dis si on est en fullscreen ou pas??
                Sinon ba je vais devoir créer ma propre scructure, qui contient l'écran, et une variable qui me dit si c'est en fullscreen ou pas

                EDIT: vu que ecran est un pointeur sur une SDL_Surface (et non pas une SDL_Surface lui même), ça doit être ecran->w et ecran->h
                • Partager sur Facebook
                • Partager sur Twitter
                  21 avril 2006 à 17:52:54

                  Ouais, mais là c'est la hauteur et la largeur de la fenetre SDL, pas de l'écran de l'utilisateur ;)

                  Enfin, c'est utile, mais ce n'est pas ce qu'il cherchait je pense ! Je pense pas que ce soit possible de récupérer la résolution de l'écran de la personne, mieux vaut demander de proposer plusieurs résolutions ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 avril 2006 à 20:30:08

                    Ben de toute façon quand tu lances l'application, c'est toi, programmeur, qui fixe la résolution par défaut. Après c'est pas dur de la récupérer (celle en cour d'utilisation) (enfin, sauf si tu demandes à l'utilisateur sa résolution d'écran en argument de la fonction main)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      21 avril 2006 à 20:40:28

                      SDL_GetVideoInfo
                      champ vfmt
                      pour avoir quelques infos sur l'écran mais ça ne permet pas pour autant de positionner la fenêtre.

                      Et voilà au passage un code pour faire un fullscreen propre cad qui embete pas l'utilisateur à changer sa résolution :

                      #include <SDL/SDL.h>

                      #include <cstdlib>

                      void Dessiner();

                      int main(int argc, char *argv[])
                      {
                          SDL_Event event;
                          Uint16 width,height,bits;
                          SDL_Rect **modes;

                          SDL_Init(SDL_INIT_VIDEO);
                          atexit(SDL_Quit);

                          bits =  SDL_GetVideoInfo()->vfmt->BitsPerPixel;
                          modes = SDL_ListModes(NULL,SDL_HWSURFACE | SDL_FULLSCREEN | SDL_DOUBLEBUF);

                          if(modes == (SDL_Rect **)0)
                          {
                              printf("Impossible d'initialiser en fullscreen!\n");
                              exit(-1);
                          }
                          else if (modes == (SDL_Rect **)-1)
                          {
                              printf("Impossible de choisir une résolution en fullscreen!\n");
                              exit(-1);
                          }

                          width = modes[0]->w;
                          height = modes[0]->h;

                          if (SDL_SetVideoMode(width,
                                               height,
                                               bits,
                                               SDL_HWSURFACE | SDL_FULLSCREEN | SDL_DOUBLEBUF) == NULL)
                          {
                              printf("Impossible de créer la fenêtre en fullscreen (%d x %d x %d)\n",
                                     width,
                                     height,
                                     bits);
                              exit(-1);
                          }

                          Dessiner();

                          for (;;)
                          {
                              SDL_WaitEvent(&event);

                              switch(event.type)
                              {
                                  case SDL_QUIT:
                                  exit(0);
                                  break;
                                  case SDL_KEYDOWN:
                                  exit(0);
                                  break;
                              }
                              Dessiner();
                          }

                          return 0;
                      }
                      • Partager sur Facebook
                      • Partager sur Twitter

                      SDL : position de la fenêtre

                      × 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