Partage
  • Partager sur Facebook
  • Partager sur Twitter

erreur avec "SDL_SetVideoMode"

Sujet résolu
    24 février 2023 à 3:37:35

    Bonjours, il y a même pas une semaine j'ai commencer a apprendre a coder en C avec la bibliothèque de la SDL et la c'est déjà mon deuxième problème, bon le premier c'était juste moi qui avais oublier de mettre quelque chose dans les parenthèses du main, mais la par contre je vois pas se que sa peut être, pour commencer, voici mon code : 
    #include <exception>
    #include <string>
    #include <iostream>
    #include <SDL.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])//BIEN PENSER A METTRE SA ENTRE LES PARANTHESES SINON SA NE VA PAS FONCTIONNER, RETIENT LE BIEN MORGAD!!!!
    {
    
        if(SDL_Init(SDL_INIT_VIDEO) == -1)
        {
            fprintf(stderr, "Erreur de l'initialisation de la SDL : %s\n", SDL_GetError());
            exit(EXIT_FAILURE);
        }
    
        SDL_Quit();
    
        SDL_Init(SDL_INIT_VIDEO);
    
    
        SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
    
        SDL_Quit();
    
        return EXIT_SUCCESS;
    }

    Et donc le problème, c'est que quand je lance le programme, sa m'affiche deux erreur : "error : 'SDL_HWSURFACE' was not declared in this scope" et "error : 'SDL_SetVideoMode' was not declared in this scope"

    Je vois pas se que peut être l'erreur, après sa viens peut être du fait que le cour que j'utilise date pas mal et que le type dans le cour utilise SDL 1.2 alors que moi j'utilise SDL 2, de toute façon même si je voudrais utiliser SDL 1.2 je pourrais pas vu que c'est plus disponible sur le site officiel, en tous cas je l'ai pas trouver. 

    Et je tien à préciser que je ne veux pas changer de cour, donc que l'on vienne pas me marquer comme réponse "Utilise plutôt le cour (nom de cour), il est plus récent" ou un truc comme sa.

    • Partager sur Facebook
    • Partager sur Twitter
      24 février 2023 à 5:52:59

      Bonjour,

      Dans la version SDL2 la fonction

      SDL_SetVideoMode

      a été remplacée par la fonction

      SDL_CreateWindow

       ...

      • Partager sur Facebook
      • Partager sur Twitter
        24 février 2023 à 9:08:05

        Ja t'ai dit pas plus tard que hier de trouver un cours de SDL 2.0 à jour et de laisser tomber celui de la SDL 1.2.
        • Partager sur Facebook
        • Partager sur Twitter

        git is great because Linus did it, mercurial is better because he didn't.

          24 février 2023 à 14:44:31

          A ok, je me doutais de toute façon que à un moment j'allais tomber sur une fonction qui n'existe plus ou qui a été remplacer, la j'ai réussie à trouver un guide qui montre toute les fonction qui ont été modifier donc je devrait plus avoir de problème comme, ou en tous cas je devrais pouvoir y résoudre moi même.

          Et Markand, j'ai dis que je voulais pas changer de cour, je sais que se n'ai pas une très bonne idée de rester avec se vieux cour, mais au moins je suis sur que le cour sera sur le même système d'exploitation, que le logiciel pour coder restera bien codeBlock, que sa me parlera pas de truc que j'ai pas appris dans se cour et que donc sa m'oblige à retourner en arrière ou retourner en avant si sa me parle juste de truc que je sais déjà et que donc je finisse par me perdre. 

          edit : Par contre je fait comme pour le "SDL_HWSURFACE" car je comprend pas très bien se qu'il sont entrain de m'expliquer sur le site que j'ai trouver.

          -
          Edité par MorgadPrudhon 24 février 2023 à 14:52:29

          • Partager sur Facebook
          • Partager sur Twitter
            24 février 2023 à 16:32:33

            SDL_HWSURFACE veut dire Hardware surface : ça veut dire que ta surface sera stockée si possible sur la carte graphique, donc ira plus vite pour être affichée, alors que SDL_SWSURFACE (software), elle est stockée en RAM, et ira plus doucement à s'afficher car elle devra transiter sur le bus. Cependant, elle sera modifiable si elle est en RAM. (on pourra parler des fonctions Lock et Unlock surface si besoin)
            • Partager sur Facebook
            • Partager sur Twitter

            Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

              24 février 2023 à 18:46:45

              @MorgadPrudhon:

              Si j'ai bien compris (mais je débarque dans la discussion), tu suis un cours pour SDL1.2, mais tu as la SDL2 installée.

              Si tel est le cas, tu devrais lire : https://wiki.libsdl.org/SDL2/MigrationGuide à chaque fois que tu rencontres un problème de ce type pour déterminer comment faire ce qui se faisait avant en SDL1.2 en SDL2.

              Il y a aussi ceci en français : https://jeux.developpez.com/tutoriels/sdl-2/guide-migration/

              • Partager sur Facebook
              • Partager sur Twitter
                24 février 2023 à 19:34:16

                Fvirtman je demandais pas se que voulais dire HWSURFACE et SWSURFACE, sa c'est expliquer dans mon cour, je demandais pas quoi a été remplacer HWSURFACE dans SDL 2 car moi sa me mais une erreur comme quoi HWSURFACE n'existe pas, alors que j'ai bien inclus toute les fonctions de la SDL, mais merci quand.

                Dlks, c'est un peut près sa, plus précisément enfaite je suis un cour ou sa m'apprend comme coder en C de A à Z (bon peut être pas jusqu'à Z) et le type utilise SDL 1.2 vus que le cour est un peut vieux. Merci pour le guide, j'en avais trouver un autre mais j'ai pas trouver par quoi a été remplacer HWSURFACE donc j'espère que je vais trouver dans se guide.

                • Partager sur Facebook
                • Partager sur Twitter
                  24 février 2023 à 20:58:46

                  Quitte à me faire incendier, il est ridicule de suivre un cour sdl 1.x et de tenter de compiler les programmes avec sdl 2.x. Cela ne fonctionnera jamais.

                  Tu ferais mieux de suivre les conseils donnés: passe immédiatement à sdl 2.

                  Un bon tutoriel: zeste de savoir

                  -
                  Edité par edgarjacobs 24 février 2023 à 21:01:20

                  • Partager sur Facebook
                  • Partager sur Twitter

                  On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                    24 février 2023 à 21:34:39

                    MorgadPrudhon a écrit:

                    Et Markand, j'ai dis que je voulais pas changer de cour, je sais que se n'ai pas une très bonne idée de rester avec se vieux cour


                    D'accord. Ma prochaine application je la code en Qt 3.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    git is great because Linus did it, mercurial is better because he didn't.

                      25 février 2023 à 0:42:44

                      MorgadPrudhon a écrit:

                      (....) je demandais pas quoi a été remplacer HWSURFACE dans SDL 2 car moi sa me mais une erreur comme quoi HWSURFACE n'existe pas (....)

                      (....) Merci pour le guide, j'en avais trouver un autre mais j'ai pas trouver par quoi a été remplacer HWSURFACE donc j'espère que je vais trouver dans se guide.


                      Ben non, tu ne trouveras rien. HWSURFACE n'existe pas en sdl2 (ainsi que bien d'autres choses). Et la manière de travailler est totalement différente: pour l'affichage, par exemple, on travaille avec un renderer et des textures, plus avec des surfaces....

                      -
                      Edité par edgarjacobs 25 février 2023 à 0:43:17

                      • Partager sur Facebook
                      • Partager sur Twitter

                      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                        25 février 2023 à 0:57:42

                        j'ai toujours pas trouver par quoi à été remplacer SDL_HWSURFACE donc je pense qu'il a peut être été supprimer, bon je pense que je vais vous écouté et utiliser un cour plus récent. Si quelqu'un connait un bon cour qui apprend à utiliser SDL 2 avec code block sur windows je veux bien car normalement temps que sa utilise codeBlock (car flemme de changer de logiciel de codage pour l'instant), que sa fonctionne sur windows 10 (se qui devrait être forcément le cas vus que SDL est multiplateforme) et que c'est gratuit sa devrai aller.

                        edit : désoler j'avais pas vu on message, donc ouai c'est bien sa, il a été supprimer, bon bas je vais vraiment pas pouvoir continuer avec le cour que j'utilisais actuellement si y'a des fonctions qui existe plus.

                        re edit : je viens de regarder le tutoriel que tu as mis edgarjacobs et il m'a l'air pas mal, je pense que sa devrait suffire.

                        -
                        Edité par MorgadPrudhon 25 février 2023 à 1:19:41

                        • Partager sur Facebook
                        • Partager sur Twitter

                        erreur avec "SDL_SetVideoMode"

                        × 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