Partage
  • Partager sur Facebook
  • Partager sur Twitter

SDL 2 Surfaces ou Textures

    18 janvier 2018 à 8:30:34

    Bonjour,

    Je développe actuellement un programme pour faire défiler des images et des vidéos dans un certains ordre. 

    J'étais sur la SDL1.2 mais je viens de passer sur la SDL 2.0, et n'y connaissant pas grand chose en OpenGL j'aimerai savoir dans mon cas ce qui serait le plus intéressant. D'après ce que j'ai vu il faudrait utiliser les textures pour pouvoir utiliser le GPU, c'est cela ?

    L'affichage d'une image l'une à la suite de l'autre n'est pas un problème, mais la transition que j'utilise entre les deux est lourd (arrivée par le haut, le bas, ...), et je ne sais pas si l'utilisation d'OpenGL serait utile dans ce cas là. 

    En vous remerciant par avance ! :)

    • Partager sur Facebook
    • Partager sur Twitter
      18 janvier 2018 à 13:43:28

      Avec la SDL2 tu peux stocker une image dans un SDL_Texture*.
      L'utilisation du GPU est alors implicite.

      Comment fais-tu la transition de tes images ?
      La lourdeur pourrait aussi provenir d'une mauvaise manière de faire (comme charger à chaque fois la nouvelle image en mémoire)

      • Partager sur Facebook
      • Partager sur Twitter
        18 janvier 2018 à 14:23:19

        EDIT 1 : Je viens de modifier le format de l'image en .bmp, et ça marche, par contre .png impossible. Pourtant la fonction IMG_Load vient de SDL_Image, elle devrait pouvoir charger tous les formats les plus communs comme sur la SDL 1.2, non ?

        _________________________________________________________________________________________

        EDIT 2 : Ok apparemment je n'ai pas bien linké les dll, il manquait libjpeg-9.dll, libpng, ... Je les ai donc copiées dans mon projet et plus de problème.

        Résolu grâce à : 

        if(!image)
        {
            printf("Erreur de chargement de l'image : %s", SDL_GetError());
            return -1;
        }

        -
        Edité par SoucheDeBois 18 janvier 2018 à 15:40:38

        • Partager sur Facebook
        • Partager sur Twitter
          18 janvier 2018 à 20:19:25

          Salut,

          À noter qu’avec SDL_Image, tu as la fonction IMG_LoadTexture qui te donne directement une texture et pas une surface.

          • Partager sur Facebook
          • Partager sur Twitter
          Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
            19 janvier 2018 à 9:48:44

            yo@n97one a écrit:

            Salut,

            À noter qu’avec SDL_Image, tu as la fonction IMG_LoadTexture qui te donne directement une texture et pas une surface.


            Ah je n'avais pas connaissance de cette fonction, merci beaucoup !

            -
            Edité par SoucheDeBois 19 janvier 2018 à 11:08:39

            • Partager sur Facebook
            • Partager sur Twitter
              20 janvier 2018 à 17:48:28

              yo@n97one a écrit:

              Salut,

              À noter qu’avec SDL_Image, tu as la fonction IMG_LoadTexture qui te donne directement une texture et pas une surface.

              Bonjour,

              C'est super, ça fait longtemps que je suis à la recherche de cette fonction. Elle est introuvable dans la doc, tu aurais des exemples, des liens pour l'utilisation de cette fonction? Merci :)

              -
              Edité par Kasewa 20 janvier 2018 à 17:49:53

              • Partager sur Facebook
              • Partager sur Twitter
                20 janvier 2018 à 17:56:44

                En effet, elle n'est pas dans la documentation. Elle prend en paramètre un renderer et le chemin de l'image à charger et renvoie la texture chargée (NULL en cas d'erreur).

                • Partager sur Facebook
                • Partager sur Twitter
                Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs

                SDL 2 Surfaces ou Textures

                × 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