IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

Problème pour trouver comment afficher une image jpg ou png avec SDL3 en langage C


Sujet :

SDL

  1. #1
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 316
    Par défaut Problème pour trouver comment afficher une image jpg ou png avec SDL3 en langage C
    Bonjour
    je cherche depuis plusieurs jours un code simple permettant d'afficher une image autre que BMP avec la SDL3 en langage C.

    Les tutos que je trouve sont soit pour BMP, soit pour le C++, soit font intervenir des tas de fonctions compliquées, et la plupart des tutos sont en anglais.

    je débute en langage C et avec la SDL3, et je viens juste d'apprendre à faire le make d'un affichage de fenetre SDL3, mais je sais pas encore comment je dois faire pour le make de SDL3_image.

    J'ai téléchargé la SDL3 et la SDL3_image, et j'utilise w64DevKit.exe

    Pour le moment j'ai fais un fichier cmakeList.txt de ce genre (je sais pas s'il est bon) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    cmake_minimum_required(VERSION 3.10)
    project(SDL3Image)
     
    set(CMAKE_CXX_STANDARD 11)
    set(CMAKE_CXX_STANDARD_REQUIRED True)
     
    find_package(SDL3 REQUIRED)
    find_package(SDL3_image REQUIRED)
     
    target_link_libraries( ${Exemple_C_Background} SDL3::SDL3  SDL3_image::SDL3_image)
     
    add_executable(${Exemple_C_Background} main.cpp)

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 263
    Billets dans le blog
    176
    Par défaut
    Bonjour,

    Le CMakeList.txt à l'air correct. Maintenant, vous devez ajouter un #include <SDL_image.h> dans votre code (ou SDL/SDL_image.h), puis vous pouvez utiliser les fonctions de la SDL_image. La documentation officielle est ici : https://wiki.libsdl.org/SDL3_image/FrontPage
    Globalement, ce qui vous intéresse, c'est IMG_Load qui vous donnera une SDL_Surface .
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 627
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 627
    Par défaut
    Citation Envoyé par nouby Voir le message
    J'ai téléchargé la SDL3 et la SDL3_image, et j'utilise w64DevKit.exe
    salut je conseille de commencer par utiliser Visual Studio ou CodeBlocks plutôt quitte à optimiser finalement avec cet outil
    VS et CodeBlocks sont des éditeurs de développement intégrés qui prennent en charge la gestion des fichiers de Makefile

  4. #4
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 316
    Par défaut
    Merci beaucoup pour vos conseils !
    Je galère depuis une semaine pour trouver comment afficher une image JPG avec SDL3,
    J'arrive à afficher une fenetre simple de SDL3 c'est tout.
    Mais quand je veux ajouter l'entête SDL3_image.h le cmake build trouve des erreurs.

    Mon problème vient de comment ajouter la librairie image à mon projet.

    J'ai trafiqué mon makeList dans tous les sens et utilisé w64DevKit de plein de façons, en suivant mal des infos en anglais que je comprenais mal ou n'étaient pas adaptées à mon cas.
    je sais plus quoi faire.

    Merci pour la confirmation de ce makeList, je dois trouver maintenant comment y arriver car meme avec makeList je n'y arrive pas.

    Surtout que je travaille en version portable, alors SDL3 n'est pas installée sur mon PC, j'ai seulement un dossier SDL3 et un dossier SDL3_image.
    Et bien sur un dossier de mon projet.

    Je veux essayer de travailler seulement avec notepad++ car il prend pas de place sur une clef usb alors que j'avais pas trouvé de codeblock portable.
    Donc si je peux faire avec notepad++ tant mieux.

    Dossiers de SDL3 :

    Nom : Dossiers_SDL3.jpg
Affichages : 80
Taille : 4,1 Ko

    Dossiers de SDL3_image :

    Nom : Dossiers_SDL3_image.jpg
Affichages : 82
Taille : 3,2 Ko

    Dossier Outils :
    Nom : merde.jpg
Affichages : 80
Taille : 7,9 Ko

    Mon source C : (Une salade je crois)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    #include <iostream>
    #include <SDL.h>
    #include <SDL_image.h>
    //#include <SDL3/SDL_mixer.h>
    //#include <SDL3/SDL_ttf.h>
     
    int main(int argc, char*args[])
    {
     SDL_Init(SDL_INIT_EVERYTHING);
    }
     
     
    int main(int argc, char* argv[]) {
        SDL_Init(SDL_INIT_VIDEO);
     
        SDL_Window* win = SDL_CreateWindow("SDL3 Image",640, 480, 0);
        if (win == nullptr) {
            std::cerr << "SDL_CreateWindow Error: " << SDL_GetError() << std::endl;
            SDL_Quit();
            return 1;
        }
     
        SDL_Renderer* ren = SDL_CreateRenderer(win, NULL);
        if (ren == nullptr) {
            std::cerr << "SDL_CreateRenderer Error: " << SDL_GetError() << std::endl;
            SDL_DestroyWindow(win);
            SDL_Quit();
            return 1;
        }
     
        SDL_Surface* bmp = SDL_LoadBMP("img/Paysage_01.bmp");
        if (bmp == nullptr) {
            std::cerr << "SDL_LoadBMP Error: " << SDL_GetError() << std::endl;
            SDL_DestroyRenderer(ren);
            SDL_DestroyWindow(win);
            SDL_Quit();
            return 1;
        }
     
        SDL_Texture* tex = SDL_CreateTextureFromSurface(ren, bmp);
        SDL_DestroySurface(bmp);
     
        if (tex == nullptr) {
            std::cerr << "SDL_CreateTextureFromSurface Error: " << SDL_GetError() << std::endl;
            SDL_DestroyRenderer(ren);
            SDL_DestroyWindow(win);
            SDL_Quit();
            return 1;
        }
     
        SDL_Event e;
        bool quit = false;
     
        while (!quit) {
            while (SDL_PollEvent(&e)) {
                if (e.type == SDL_EVENT_QUIT) {
                    quit = true;
                }
            }
     
            SDL_RenderClear(ren);
            SDL_RenderTexture(ren, tex, NULL, NULL);
            SDL_RenderPresent(ren);
        }
     
        SDL_DestroyTexture(tex);
        SDL_DestroyRenderer(ren);
        SDL_DestroyWindow(win);
        SDL_Quit();
     
        return 0;
    }
    Oui je sais que mon code utilise une BMP là mais c'est parce que je savais pas comment afficher une jpg

    La commande cmake me donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    C:/Prog/Prog_C/Exemple_C_Fenetre/Fenetre_C $ cmake -S . -B ../Fenetre_C_BUILD
    -- Building for: Ninja
    -- The C compiler identification is GNU 16.1.0
    -- The CXX compiler identification is GNU 16.1.0
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: C:/Prog/Prog_C/Outils_C/w64devkit/bin/cc.exe - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: C:/Prog/Prog_C/Outils_C/w64devkit/bin/c++.exe - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    CMake Error at CMakeLists.txt:7 (find_package):
      By not providing "FindSDL3.cmake" in CMAKE_MODULE_PATH this project has
      asked CMake to find a package configuration file provided by "SDL3", but
      CMake did not find one.
    
      Could not find a package configuration file provided by "SDL3" with any of
      the following names:
    
        SDL3.cps
        sdl3.cps
        SDL3Config.cmake
        sdl3-config.cmake
    
      Add the installation prefix of "SDL3" to CMAKE_PREFIX_PATH or set
      "SDL3_DIR" to a directory containing one of the above files.  If "SDL3"
      provides a separate development package or SDK, be sure it has been
      installed.
    
    Mon dossier projet contient deux dossiers :

    - Fenetre_C (contient le code C et les dossiers img, inc (les .h), lib (les dll)
    - Fenetre_C_BUILD (ne contient rien)

    Nom : dossier_projet.jpg
Affichages : 87
Taille : 22,3 Ko

  5. #5
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 316
    Par défaut
    Salut !
    je sais toujours pas comment programmer en C avec SDL3 de manière PORTABLE sur clef usb, sans rien installer sur le pc ni en changer le path.

    Si quelqu'un peut m'aider à ça, je pourrais faire de grands pas en programmation de jeux 2D en C, ce qui m'interesse beaucoup.

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 263
    Billets dans le blog
    176
    Par défaut
    Bonjour,

    Les templates que l'ont peut trouver ici sont déjà une première étape : https://jeux.developpez.com/telechar.../709/Templates (en tout cas, ce sont des projets prêt à être utiliser, il suffirait de les mettre sur la clé USB).
    Ensuite, sur votre clé USB, il faut y placer votre éditeur de code et votre compilateur. L'éditeur de code doit être configuré pour utiliser le compilateur qui est sur la clé. Je conseillerai d'utiliser des chemins relatifs pour cela (du style ../mon_compilateur/gcc.exe), car il pourrait arriver un jour que la clé USB que vous insérez se retrouve attribuer à une lettre différente de celle de la configuration.
    Et, après ça, je pense que c'est bon (enfin, si l'éditeur de code enregistre ces fichiers de configurations sur la clé).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 316
    Par défaut
    Merci beaucoup !
    je vais commencer cette semaine qui vient à faire ça !

    j'espère y arriver

    Pour l'éditeur pour le moment c'est notepad ++ car j'aime pas les editeurs proprietaires comme visual machin.

    sinon faudrait que je teste aussi un autre petit éditeur de texte dont je me souviens plus le nom et que j'ai déjà.

    pour le compilateur, j'ai prix un mingw du net en zip mais sinon tu me conseillerais quoi sous windows 10 ?
    Quoique dans le lien des templates je viens de voir un template linux sdl2, ça m'a donné l'idée que ce serait peut-etre mieux que je sois sous linux avec ma clef usb, j'aurais moins de problème pour le lancer sur des pc qui ne m'appartiennent pas .

    J'ai DL le template sdl2 linux, mais pour info il y a un lien qui est bloqu" avec mon navigateur firefox :
    Le lien se trouve ici : "Ce template a été créé pour accompagner le Voir la suite"

  8. #8
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 263
    Billets dans le blog
    176
    Par défaut
    Notepad++ c'est correct, mais pour votre cas, je pense qu'il faut avancer vers Zed, Qt Creator, Sublime Text (il doit y en avoir d'autres ).
    Après, encore une fois, vous pouvez configurer Notepad++ pour obtenir une expérience déjà satisfaisante.
    Pour MinGW, je pense que c'est un bon choix, déjà vous avez GCC (le compilateur), surement GDB (le débogueur) et Make (pour lire les Makefile). Par contre, cela nécessite d'utiliser la ligne de commande (ou bien, de mettre en place des scripts, ou bien, de bien configurer votre éditeur pour lancer les commandes adéquates).
    Vous parlez du zip de MinGW, moi, j'irai même jusqu'à extraire les fichiers sur la clé (ou les installer en choisissant la clé comme destination). Par contre, suivant les débits de la clé, cela peut vous ralentir lors de l'utilisation.
    Quoique dans le lien des templates je viens de voir un template linux sdl2, ça m'a donné l'idée que ce serait peut-etre mieux que je sois sous linux avec ma clef usb, j'aurais moins de problème pour le lancer sur des pc qui ne m'appartiennent pas
    Pour lancer Linux, à partir d'une clé live USB, il faudrait aller dans le BIOS et démarrer le PC sur la clé. Cela peut fonctionner, mais il est aussi possible que l'accès au BIOS soit juste bloqué.

    Pour les template à télécharger, il y a bouton en haut à gauche (bouton vert) et de mon côté, ça télécharge normalement.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  9. #9
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 316
    Par défaut
    Merci beaucoup de tes conseils bien utiles !
    je t'ai signalé un lien inactif concernant le descriptif du template, mais le template lui-meme se DL très bien.

  10. #10
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2023
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Novembre 2023
    Messages : 263
    Par défaut
    Salut, il peut utilisé l'éditeur qu'il veut et c'est ce que je fais, pour info je compile en mode console avec CMake en utilisant l'éditeur que je veux pour éditer le texte. (VsCode, MSVC, code-bloks, notepad++), c'est le principal avantage de CMake. Par contre SDL je ne l'ai pas utilisée depuis longtemps. Je me rappelle juste de la SFML qui a des tutoriels clair et une classe standart sf::Image pour charger n'importe quel format d'image ou galères tu ? (Compilation avec make ? Code pour charger l'image et l'afficher ?) Je ne pourrais malheureusement pas te fournir un code pour l'instant pour faire ça, car je n'utilise plus la SDL, j'utilise des classes SFML que j'ai réécrite pour faire cela. Mes fichiers CMake sont trop complexe pour ce que tu veux faire avec la config pour le support des modules c++20. Mais en gros tu dois :
    -Créer une target cmake. (un exécutble)
    -Ajouter tes sources à ta target CMake. (.cpp, .hpp)
    -Définir les dossiers d'includes des dépendances pour ta target. (Ceux ou tu as installé SDL3 dans ton cas)
    -Définir les dossiers ou se trouvent les librairies des dépendances que tu utilise pour ta target.
    -Lier les libs de tes dépendances à ta target CMake.

    Et n'oublie pas non plus d'ajouté ton compilateur c à cmake. Ensuite tu tapes les commandes CMake, pour généré le cache, tu vas dans ton dossier de build et tu compiles avec ton générateur. (je ne sais pas lequel tu utilises, moi j'utilise Ninja) Dans ton dossier de build toujours tu exécute l'exécutable généré, tu as une image chargée avec SDL3 qui s'affiche si tout est bon, normalement SDL3 peut chargé beaucoup de format d'images. Comment as tu installé SDL3, as tu utilisé un système de package manager (vcpkg ou conan) ou l'a tu installé à la main ? Pour que find_package fonctionne, tu dois avoir un fichier de configuration CMake. Quel compilateur utilises tu ? Si find package échoue, ça veut dire que CMake ne trouve pas ses fichiers de configuration pour SDL3 (l'erreur que tu as montré plus tôt dans ton message) et si ils ne sont pas fournis y'a moyen de solutionné ça avec pkg_config ce que j'ai dû faire pour msys qui ne fourni pas les fichiers de configuration CMake, lors de l'installation des deps. Voici par exemple comment je lie mes dépendances, pour mon projet : (Par exemple pour vulkan)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    find_package(PkgConfig REQUIRED)
    pkg_check_modules(VULKAN REQUIRED vulkan)
    #find_package(Vulkan REQUIRED) //Ne fonctionne pas avec msys2, pas de fichiers config CMake, j'ai dû utiliser PkgConfig.
    target_include_directories(odfaeg-window-mod PRIVATE ${VULKAN_INCLUDE_DIRS})
    target_link_libraries(odfaeg-graphics-mod PUBLIC odfaeg-window-mod odfaeg-physics-mod odfaeg-entity-mod odfaeg-entity-mod odfaeg-math-mod odfaeg-core-mod PUBLIC ${VULKAN_LIBRARIES})
    Donc, tu dois vérifier, les fichiers de config cmake présent dans ton intallation de SDL3 et là tu pourra décidé si tu dois spécifier manuellement les fichiers à cmake, ou bien si tu peux find_package ou PkgConfig, n'étant pas sur ta machine, je ne peux pas savoir. Mais chez moi PkgConfig avec cmake version 4.4.0-rc3

  11. #11
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 316
    Par défaut
    Merci beaucoup Laurent !

    -Créer une target cmake. (un exécutble)
    -Ajouter tes sources à ta target CMake. (.cpp, .hpp)
    -Définir les dossiers d'includes des dépendances pour ta target. (Ceux ou tu as installé SDL3 dans ton cas)
    -Définir les dossiers ou se trouvent les librairies des dépendances que tu utilise pour ta target.
    -Lier les libs de tes dépendances à ta target CMake.

    Et n'oublie pas non plus d'ajouté ton compilateur c à cmake. Ensuite tu tapes les commandes CMake, pour généré le cache, tu vas dans ton dossier de build et tu compiles avec ton générateur. (je ne sais pas lequel tu utilises, moi j'utilise Ninja)
    Je comprends clairement ce que tu as décris, mais je ne sais pas faire ces tâches, je débute en compilation C, alors il faut que j'apprenne chacune de ces tâches que tu as cité.

    Comment as tu installé SDL3, as tu utilisé un système de package manager (vcpkg ou conan) ou l'a tu installé à la main
    J'ai fais à la main mais je sais pas du tout comment on fait, certains exemples du net donnaient une façon et d'autres une autre façon mais aucune n'était adaptée à une configuration portable sur clef usb.

  12. #12
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2023
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Novembre 2023
    Messages : 263
    Par défaut
    Surtout que tu veux développer/exécuter ton futur jeux à part d'une clé USB ? Je n'ai jamais fait ça. En effet faut que tu apprennes comme tu dis. Tu aurais plus facile avec linux en utilisant un live USB, surtout que si tu n'exécte ou ne développe sur ta machine t'a pas besoin d'un os spécifique lié à la machine, et une chose que je dois souligné aussi, avec notepad++ t'a pas de complétion pour le code et certaines fonctionnalité d'éditeur plus avancées.

    EDIT : Mais attention, le live USB de linux, ne sauvegarde rien, donc tu dois ton installer dans in dossier à part, pas à partir de linux live. Et tu dois utiliser linux live juste comme enviroment d'exécution. Je n'ai jamais fais ça, dôle de façon, tu veux probablement exécuté le jeux sur une machine qui n'est pas la tienne sans l'installer sur la machine, comme un live linux pour ton jeu, si j'ai bien compris.

    EDIT : bien que ton idée, est, irréalisable je pense, faut la compatilibité des drivers graphique qui n'est pas garantie, tu ne peux pas les installer su rune clé USB, le noyaux linux il me semble doit pouvoir les charger et la lib graphique de linux (x11) aussi. Pour windows, même problème.

  13. #13
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 316
    Par défaut
    Surtout que tu veux développer/exécuter ton futur jeux à part d'une clé USB ?
    oui c'est exactement ça, je veux pouvoir programmer mon jeu sur des pc qui ne m'appartiennent pas, comme chez la famille ou des amis, ou en voyage, etc...

  14. #14
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2023
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Novembre 2023
    Messages : 263
    Par défaut
    Programmer sur clé USB tu peux, exécuter ton jeux à partir d'une clé USB, pas vraiment non, les drivers font partie du kernel (sur windows et linux), tu ne peux pas les installer sur ta clé USB parce que le kernel de l'os doivent les charger. C'est tout le problème, tu pourra programmer mais pas tester. Tu vas devoir utiliser les drivers du live en espérant que le kernel soit compatible, sur linux ils ne supportent pas toutes les features et sont pas forcément compatible avec toutes les features utilisées dans ton jeu. Tu as l'air de débuter. De ne pas vraiment connaître les environement système et leur fonctionnement. Que ce soit au niveau de la compilation avec CMake ou l'exécution du jeux. Et un OS qui permet de charger des drivers de façon portable à partir d'une média externe, ça n'existe pas, et je ne crois pas que tu aies les compétences pour le faire toi même, et moi non plus je serai incpable de faire cela.

  15. #15
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 316
    Par défaut
    sur linux ils ne supportent pas toutes les features et sont pas forcément compatible avec toutes les features utilisées dans ton jeu.
    Mais c'est pas justement les codes de la sdl2 qui vont gérer ça à ma place ?
    l'affichage d'une image se fera toujours quelque soit le pc non ? meme si c'est un simple vga.

  16. #16
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2023
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Novembre 2023
    Messages : 263
    Par défaut
    Non le code la SDL ne gère pas l'affichage, il utilise les drivers du système installé et ce sont eux qui gèrent l'affichage. Normalement pour afficher une simple image les drivers du live devrait suffire mais pour des features avancées, c'est à dire l'accélaration matérielle et extensions vulkan avancée gérée uniquement par un driver propriétaire, tu ne pourras pas, à chaque reboot e live repart avec un système vierge. Pour le mieux, dans ton cas, il faudrait un os avec un kernel capable de charger les drivers à partir d'un média externe. Mais ça n'existe pas et je ne pense pas que tu aies les compétences pour le faire toi même et moi non plus d'ailleurs. Je me demande même si c'est possible.

  17. #17
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 316
    Par défaut
    Ah d'accord, alors cela ne me concerne pas, car je n'utilise pas l'acceleration matérielle ni vulkan dans mes projets de jeux en 2D, car je n'en ai pas besoin et parfois c'est même contre-productif, comme l'a expliqué l'auteur de pygame.

    je n'aurais à faire que de l'affichage de base en svga et du son de base que tout pc sait faire.

  18. #18
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 316
    Par défaut
    Laurent, c'est bien toi qui est sur un nouveau moteur 3D, alors je me disais si cet article pouvait te servir ?

    https://vulkan.developpez.com/tutori...plet-debutant/

    Même si je sais que tu n'es pas un débutant lol


    Voilà les trois logiciels que j'ai DL pour commencer la programmation de jeux 2D sur usb.

    Nom : Clipboard.png
Affichages : 39
Taille : 5,7 Ko


    Mais je vais les RE-DL en version Linux live si je peux trouver...

  19. #19
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2023
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Novembre 2023
    Messages : 263
    Par défaut
    Oui merci, je lis toujours des tutoriels vulkan malgré tout parce que parfois il y a de bonne idées auxquel je ne pense pas, en effet, c'est bien moi qui développe un nouveau moteur 3D avec vulkan et ce n'est pas un projet pour un débutant. Tu dois probablement coder des jeux comme snake ou pong si tu n'utilises pas, l'accélération 3D ou vulkan, mais si tu voulais les utiliser, avec ton idée j'ai peut être une solution pour toi, quelque chose auxquel je viens de penser ce matin, l'IA me dis que ça ne va pas marché mais parfois les IA se trompent donc faut essayer pour en être sûr.

    Si j'étais toi je tenterai un hack pour contourner cette limitation du kernel linux, en créant des liens symboliques vers les modules de tes drivers, qui sont sur ta clé. Mais, je suis pas sûr que le kernel va pouvoir les charger malgré tout. De plus il faut que les modules soient compatible avec la version du kernel.

    De plus l'IA me dit que le montage de la clé USB, se fait après le chargement des modules par le kernel, un OS qui permet de faire ça n'existe pas mais si ça venait à exister ça serait une vraie révolution.

    Mais c'est un projet gigantesque que personne n'est encore parvenu à faire, faudrait carrément recréer un nouvel OS, pour pouvoir lancer des jeux, sans installer quoi que ce soit sur le PC hôte.

    Et puis même si un tel OS existerait, il faudrait absolument que nvidia et amd suivent pour adapté leur code, avec les fonctions du kernel, total dépendance envers les fabriquants. Et si tu ne veux pas dépendre des fabriquant il te faudrait inventer carrément une nouvelle console et un nouveau GPU car sans connaître le fonctionnement des GPU nvidia impossible de coder un driver compatible avec le nouveau kernel. Ce qui tu veux faire est donc, irréalisable avec features modernes. C'est la conclusion à laquelle je suis arrivée. La raison pour laquelle la plupart des os/projets amateur comme le tiens se cassent la gueule.

  20. #20
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 316
    Par défaut
    je me contente d'un affichage 2D et de sons de base, deux choses que tout pc peut faire, même un raspberry py.
    il me suffit d'avoir une clef usb linux passe-partout et son double version windows, ensuite j'insère la clef usb qui correspond au système du pc sur lequel je veux travailler, ainsi j'aurais pas besoin de booter sur une clef usb.
    j'ai aussi une autre solution : Celle de programmer mon jeu en javascript, il sera accepté sur n'importe quel pc

    EDIT :

    J'ai trouvé la meilleure solution pour mon but de programmer de façon portable sans emporter de PC portable.

    C'est de programmer mon jeu sur le linux d'un raspberry-py et ensuite soit d'utiliser un ecran adapté à ce micro-pc, soit d'emprunter l'écran de la personne chez qui je suis, mais la meilleure solution en fait c'est d'avoir son propre petit écran, c'est de la taille d'une mini console de jeu.
    ça rentre dans une poche ou dans un sac banane.
    Je veux éviter de porter un pc avec moi aussi car je suis pas vehiculé et pour une autre raison aussi.
    l'idéal c'est le micro-pc avec son écran et un linux dedans.

    Maintenant faut que je regle mon problème principal qui est d'apprendre la compilation et edition de liens en C avec SDL2 ou 3.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Comment afficher une image en assembleur ?
    Par byte dans le forum Assembleur
    Réponses: 26
    Dernier message: 03/03/2005, 13h25
  2. Réponses: 6
    Dernier message: 22/12/2004, 11h00
  3. PL/SQL - Comment afficher une image avec HTP ?
    Par patmaba dans le forum PL/SQL
    Réponses: 2
    Dernier message: 08/07/2004, 09h28
  4. Afficher une image JPG qui se trouve dans une bdd
    Par Harry dans le forum Bases de données
    Réponses: 6
    Dernier message: 27/02/2004, 10h51
  5. Charger et afficher une image jpg avec les mfc
    Par glop - pas glop dans le forum MFC
    Réponses: 3
    Dernier message: 11/02/2004, 18h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo