Partage
  • Partager sur Facebook
  • Partager sur Twitter

[OpenGL & SDL] Curseur

Changer le curseur

    24 août 2006 à 10:31:17

    Salut les zéros :) ,

    Je voudrais pouvoir changer le curseur a l'intérieur de ma fenêtre , mais je n'ai absolument aucunes idées de comment procéder ( je travail en openGL ) , alors je requiert votre aide pour m'expliquer comment faire .

    Merci pour vos futures réponses !
    • Partager sur Facebook
    • Partager sur Twitter
      24 août 2006 à 10:35:45

      Salut,

      je ne sais pas si ça marche avec OpenGL, mais pour changer de curseur, il te suffit d'effacer le curseur de ta souris (avec SDL_MOUSE_DISABLE -> enfin une fonction qui ressemble à ça, cherches dans le cours sur les évènements), puis tu blittes l'image du curseur que tu veux mettre aux coordonnnées de ta souris (event.motion.x et event.motion.y) !
      • Partager sur Facebook
      • Partager sur Twitter
        24 août 2006 à 10:36:50

        Oui déjà pensé , le seul problème et que l'on ne peut pas blitter d'images en openGL ( en tous cas de la seule façon que je connaisse ... )
        • Partager sur Facebook
        • Partager sur Twitter
          24 août 2006 à 10:37:59

          Oui, cette méthode marche très bien.

          Tu ne sais pas afficher d'image avec OpenGL o_O ? Si non, tu devrais relire des cours.
          • Partager sur Facebook
          • Partager sur Twitter
            24 août 2006 à 10:42:50

            Il y a aussi une fonction SDL_SetCursor().
            • Partager sur Facebook
            • Partager sur Twitter
              24 août 2006 à 11:07:57

              case SDL_MOUSEMOTION:
                              position.x = event.motion.x;
                              position.y = event.motion.y;
                              break;


              error: 'union SDL_Event' has no member named 'x'
              error: 'union SDL_Event' has no member named 'y'


                  SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
              SDL_BlitSurface(curseur, NULL, ecran, &position);
                  SDL_Flip(ecran);


              error: cannot convert `SDL_Event*' to `SDL_Rect*' for argument `4' to `int SDL_UpperBlit(SDL_Surface*, SDL_Rect*, SDL_Surface*, SDL_Rect*)'


              Je vois pas là ...
              • Partager sur Facebook
              • Partager sur Twitter
                24 août 2006 à 11:51:16

                Tiré du tuto de Kayl:

                const char *hand1[] =
                        {
                            /* width height num_colors chars_per_pixel */
                            " 16 16 3 1 ",
                            /* colors */
                            "X c #000000",
                            ". c #ffffff",
                            "  c None",
                            /* pixels */
                            "       XX       ",
                            "   XX X..XXX    ",
                            "  X..XX..X..X   ",
                            "  X..XX..X..X X ",
                            "   X..X..X..XX.X",
                            "   X..X..X..X..X",
                            " XX X.......X..X",
                            "X..XX..........X",
                            "X...X.........X ",
                            " X............X ",
                            "  X...........X ",
                            "  X..........X  ",
                            "   X.........X  ",
                            "    X.......X   ",
                            "     X......X   ",
                            "     X......X   ",
                            "0,0"
                        };

                    const char *hand2[] =
                        {
                            /* width height num_colors chars_per_pixel */
                            " 16 16 3 1 ",
                            /* colors */
                            "X c #000000",
                            ". c #ffffff",
                            "  c None",
                            /* pixels */
                            "                ",
                            "                ",
                            "                ",
                            "                ",
                            "    XX XX XX    ",
                            "   X..X..X..XX  ",
                            "   X........X.X ",
                            "    X.........X ",
                            "   XX.........X ",
                            "  X...........X ",
                            "  X...........X ",
                            "  X..........X  ",
                            "   X.........X  ",
                            "    X.......X   ",
                            "     X......X   ",
                            "     X......X   ",
                            "0,0"
                        };
                    _hand1 = cursorFromXPM(hand1); //création du curseur normal
                    _hand2 = cursorFromXPM(hand2); //création du curseur utilisé quand le bouton est enfoncé
                    SDL_SetCursor(_hand1); //activation du curseur normal

                • Partager sur Facebook
                • Partager sur Twitter

                [OpenGL & SDL] Curseur

                × 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