[SDL] Obtenir les dimensions du bureau

9 sujets de 1 à 9 (sur un total de 9)

  • glames

      #6185

      bonjour,

      Je voulais savoir si il existait sous SDL un moyen de récupérer les largeur, hauteur et profondeur actuelles du bureau « hôte », c’est-à-dire du Workbench, Ambient ou Wanderer?

      Merci.

      Glames

      glames

        #102204

        Je me réponds moi-même:

        SDL_GetVideoInfo le permet…

        sayasupacrew

          #102205

          merci pour ta reponse glames ;-)

          https://www.youtube.com/@sayasupa

          glames

            #102206

            De rien ;-)

            corto

              #102207

              Glames : Attention, les champs current_w et current_h de la structure SDL_VideoInfo ne sont pas présents dans la SDL de MorphOS et OS4.

              Pour l’obtenir, tu fais un LockPubScreen et tu récupères les champs Width et Height. Pour la profondeur d’écran :

              GetScreenAttrs(screen, SA_Depth, &depth, sizeof(ULONG));

              Merci, ta question m’a fait recherché dans un exemple que j’avais et j’ai trouvé à y faire une ou deux modifs !

              Edit : Dans la doc, il est dit « Width and height of the current video mode, or of the desktop mode if SDL_GetVideoInfo was called before SDL_SetVideoMode (available since SDL 1.2.10) ». La dernière version pour OS4 est la 1.2.11 donc apparemment tout n’a pas été implémenté vu que c’est assez récent.

              glames

                #102208

                Salut Corto,

                Merci pour toutes ces précisions.

                Glames

                corto

                  #102209

                  Pas de quoi !

                  J’ai vu un nouveau sujet « SDL » et « Développement » alors je me suis précipité mais tu avais déjà répondu. Il fallait bien que je trouve quelque chose à ajouter (et en plus c’est utile).

                  Ah il faut que je commande WordMeUp aussi :) Je te contacte bientôt.

                  Fab1

                    #102210

                    Attention,

                    GetScreenAttrs() est spécifique à OS4. Donc pour les autres OS, en utilisant l’API cgx, ça peut se faire comme ça (y’a pt être plus simple, mais je sais plus :)) :

                    struct Screen * s = LockPubScreen(« Workbench »);

                    ULONG depth = 0;

                    if(s)

                    {

                    struct DrawInfo * dri = GetScreenDrawInfo(s);

                    if(dri)

                    {

                    ULONG id = GetVPModeID(&s->ViewPort);

                    depth = GetCyberIDAttr(CYBRIDATTR_DEPTH, id);

                    }

                    UnlockPubScreen(NULL, s);

                    }

                    Sous MorphOS2, les écrans et fenêtres sont devenus des objets boopsi et donc GetAttr/SetAttrs marchent dessus directement, mais le SDK n’est pas encore dispo. :)

                    [EDIT]: cela dit, il n’y a pas besoin du nouveau SDK pour utiliser ces objets… :)

                    glames

                      #102211

                      @Corto & Fab1,

                      Merci pour vos réponses!

                      Glames

                    9 sujets de 1 à 9 (sur un total de 9)

                    • Vous devez être connecté pour répondre à ce sujet.

                    Forums AmigaOS, MorphOS et AROS Développement [SDL] Obtenir les dimensions du bureau

                    Amiga Impact