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

OpenGL Discussion :

[WXWidegts/Opengl] Problème de clignotement de la souris


Sujet :

OpenGL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 25
    Points : 18
    Points
    18
    Par défaut [WXWidegts/Opengl] Problème de clignotement de la souris
    Salut à tous!

    J'ai un tout petit problème dans mon codeu source... Pourquoi ça fonctionne pas ? J'explique: J'ai fait une application opengl avec WxWindows mais problème: le curseur de la souris clignote... Aussi j'aimerais changer sa belle figure parce que la flêche blanche c'est un peu moche dans un jeu...

    au modérateur: je pense que ça à un rapport avec opengl là...

    Voici mon code source:

    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
    #include <iostream>
    #include <string>
    #include <cassert>
    #include <cmath>
     
    #include <wx/wx.h>
    #include <wx/glcanvas.h>
    #include <wx/wxprec.h>
    #include <SDL/sdl.h>
     
    class GL_Window : public wxGLCanvas
    {
    public:
    	GL_Window(float c, wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style=0,
    			  const wxString& name="GLCanvas", int* attribList = 0, const wxPalette& palette = wxNullPalette)
    		: wxGLCanvas(parent, id, pos, size, style, name, attribList, palette), c_(c), rotate_(c) {}
    	virtual ~GL_Window() {}
     
    	void draw() {
    		rotate_ += 0.01;
     
    		SetCurrent();
    		glClearColor(0.0, 0.0, 0.0, 0.0);
    		glClear(GL_COLOR_BUFFER_BIT);
    		glViewport(0, 0, (GLint)200, (GLint)200);
    		glColor3f(1.0, c_, c_);
     
    		glBegin(GL_POLYGON);
    		glVertex3f(-0.5, -0.5, 5*cos(rotate_));
    		glVertex3f(-0.5, 0.5, 5*cos(rotate_));
    		glVertex3f(0.5, 0.5, -5*cos(rotate_));
    		glVertex3f(0.5, -0.5, -5*cos(rotate_));
    		glEnd();
     
    		SwapBuffers();
    	}
     
    private:
    	void OnIdle(wxIdleEvent& event)	{
    		draw();
    		event.RequestMore();
    	}
     
    	float c_;
    	float rotate_;
     
    	DECLARE_EVENT_TABLE();
    };
     
    class MyApp: public wxApp
    {
    	virtual bool OnInit();
    };
     
    IMPLEMENT_APP(MyApp)
     
    bool MyApp::OnInit()
    {
    	wxFrame *frame = new wxFrame(NULL, 1, _T("OpenGL avec WxWindow"), wxPoint(150, 150), wxSize(480, 220));
    	GL_Window* MyGLCanvas = new GL_Window(1, frame, -1, wxPoint(-1,-1), wxSize(640,480), wxNO_BORDER, "some text");
     
    	frame->ShowFullScreen(TRUE,  wxFULLSCREEN_ALL);
    	frame->Show(TRUE);
    	return TRUE;
    }
     
    BEGIN_EVENT_TABLE(GL_Window, wxGLCanvas)
        EVT_IDLE(GL_Window::OnIdle)
    END_EVENT_TABLE()

  2. #2
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    je ne sait pas trop d'ou ca vient mais par contre j'ai un autre commentaire a faire : tu utilise un GL_POLYGONE pour afficher une forme composée de 4 points( 4 points... carré ) ils faut mieux utiliser un GL_QUADS qui est plus rapide...

    il faut toujours eviter les GL_POLYGONES qui sont les plus lents...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 108
    Points : 128
    Points
    128
    Par défaut
    Pour afficher correctement le curseur de la souris par dessus des entités 3D, il est préférable d'utiliser le mode orthogonale et de désactivé le z buffer.

Discussions similaires

  1. Problème de clignotement de fond d'écran en mode MDI
    Par Tardiff Jean-François dans le forum Composants VCL
    Réponses: 3
    Dernier message: 17/12/2004, 16h19
  2. Problème avec l'affichage de souris INT 33,01h
    Par belgampaul dans le forum Assembleur
    Réponses: 7
    Dernier message: 07/12/2004, 21h37
  3. [OpenGL] Problème de Vitesse d'éxécution
    Par stick059 dans le forum OpenGL
    Réponses: 9
    Dernier message: 19/11/2004, 13h57
  4. [C#] Problème de centrage de la souris dans un formulaire.
    Par aegypius dans le forum Windows Forms
    Réponses: 2
    Dernier message: 29/10/2004, 11h46
  5. Help :Problème de clignotement
    Par LE CHAKAL dans le forum Composants VCL
    Réponses: 6
    Dernier message: 14/08/2002, 10h53

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