Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pixels multicolores à côté de ligne dessinée

Des pixels multicolores apparaissent lorsque je dessine une ligne

Sujet résolu
    24 mars 2023 à 18:35:44

    Une photo sera plus explicite :

    Et voici mon code : 

    #include <SDL.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef int bool;
    #define true 1
    #define false 0
    
    void SDL_ExitWithError(const char *message);
    
    int main()
    {
        bool run = true;
        int screenWidth = 1080;
        int screenHeight = 720;
    
        SDL_Window *window = NULL;
        SDL_Renderer *renderer = NULL;
    
        if(SDL_Init(SDL_INIT_VIDEO) != 0)
            SDL_ExitWithError("Initialisation SDL");
    
        // Execution du programme
    
        // Création de la fenêtre et du rendu
    
        window = SDL_CreateWindow("Fenêtre SDL", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, screenWidth, screenHeight, SDL_WINDOW_SHOWN);
        if (window == NULL)
            SDL_ExitWithError("échec de la création de la fenêtre");
    
        renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
        if (renderer == NULL)
            SDL_ExitWithError("échec de la création du renderer");
        // Changement de la couleur du pinceau
    
    
        if (SDL_SetRenderDrawColor(renderer, 255, 0, 0, SDL_ALPHA_OPAQUE))
            SDL_ExitWithError("Impossible de changer la couleur pour le rendu");
        
        // On dessine la ligne
    
        if (SDL_RenderDrawLine(renderer, 500, 0, 500, screenHeight) != 0)
            SDL_ExitWithError("Impossible de dessiner la ligne");
    
        // On affiche le rendu
        
        SDL_RenderPresent(renderer);
    
        // Attendre jusqu'à ce que l'utilisateur quitte le programme
        SDL_Event event;
        while (run) {
            while (SDL_PollEvent(&event)) {
                if (event.type == SDL_QUIT) {
                    run = false;
                }
            }
        }
    
        // Tout détruire
    
        SDL_DestroyRenderer(renderer);
        SDL_DestroyWindow(window);
        SDL_Quit();
    
        return EXIT_SUCCESS;
    }
    
    void SDL_ExitWithError(const char *message)
    {
        SDL_Log("Erreur : %s > %s\n", message, SDL_GetError());
        SDL_Quit();
        exit(EXIT_FAILURE);
    }
    • Partager sur Facebook
    • Partager sur Twitter
      24 mars 2023 à 19:34:28

      -

      -
      Edité par edgarjacobs 24 mars 2023 à 20:06:25

      • 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 mars 2023 à 20:09:09

        Bonjour,

        Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
        Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

        Pour plus d'informations, nous vous invitons à lire les règles générales du forum

        Manque de Politesse

        Votre message ne comporte pas ou peu de formules de politesse (« Bonjour », « Merci », « Au revoir », etc.). Les règles du site exigent que chaque nouveau message comporte un minimum de politesse. Après tout, les gens qui répondent le font gratuitement, sur leur temps libre. Ils méritent bien un minimum de considération, n'est-ce pas ?

        Manque de précisions

        Vous êtes ici sur un forum d'entraide communautaire et non pas sur un forum de demande de service, le but n'est donc pas de fournir une réponse toute faite ou de directement fournir la solution à quiconque viendrait sans la moindre trace. Afin d'obtenir de l'aide et une solution à votre problème, il est fortement recommandé de présenter clairement l'état actuel du problème en nous fournissant :

        • Un descriptif clair et précis du problème
        • La tentative actuelle de résolution que vous avez effectué
        • Le résultat attendu et le résultat actuel
        • Toutes pistes de recherches pouvant aider à la résolution

        Liens conseillés

        -
        Edité par AbcAbc6 24 mars 2023 à 20:10:14

        • Partager sur Facebook
        • Partager sur Twitter
          25 mars 2023 à 16:17:55

          Re,-

          Attention que pour SDL_RenderDrawLine(), x2 et y2 ne sont pas des longueurs, mais des coordonnées. Or la coordonnée (500,720) n'existe pas. Par contre, (499,719) existe.

          Ayant changé de bécane il y a peu, je ne suis hélas pas en mesure de tester du code avec sdl2.

          • 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

            28 mars 2023 à 18:55:19

            Bonjour, excusez-moi de répondre aussi tard, j'ai en fait résolu le problème en donnant le flag : SDL_RENDERER_SOFTWARE à la fonction SDL_CreateRenderer().

            Au revoir et merci de ta réponse.

            • Partager sur Facebook
            • Partager sur Twitter

            Pixels multicolores à côté de ligne dessinée

            × 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