Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1455 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [OpenGL 4.4 / VS2013] Retrouver l'instance de mon WndProc surchargé

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[OpenGL 4.4 / VS2013] Retrouver l'instance de mon WndProc surchargé

n°2221861
iceteapech​e
www.iceteapeche.com
Posté le 08-03-2014 à 10:32:17  profilanswer
 

Salut tout le monde,
avec les differentes évolution d'OpenGL depuis le 1.0 mon Hello World win32/openGL ressemblait à de la soupe, du coup j'ai décidé de faire le ménage et de virer toutes mes (infâmes) variables globales dans un objet singleton. Je fais essentiellement du win32 sans MFC, et je me suis inventé un nouveau problème dont j'ai du mal à me sortir.
Pour faire simple j'ai surchargé le callback WndProc en rajoutant un pointeur vers mon objet d'application (qui est sensé avoir les handle de ma fenetre, le device context, le rendering context, etc). La définition ressemble à  :
 

Code :
  1. static LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM, CBasicOpenGL*); // Declaration du WndProc


 
 
ensuite dans ma classe CBasicOpenGL j'ai ma fonction d'initialisation qui crée la classe WNDCLASS et l'enregistre mais c'est là que ca couille :  
 

Code :
  1. GLuint  PixelFormat;
  2. WNDCLASS wc;
  3. DWORD  dwExStyle;
  4. DWORD  dwStyle;
  5. RECT  WindowRect;
  6. WindowRect.left = (long)0;
  7. WindowRect.right = (long)width;
  8. WindowRect.top = (long)0;
  9. WindowRect.bottom = (long)height;
  10. set_fullscreen(fullscreenflag);
  11. *get_hInstance() = GetModuleHandle(NULL);
  12. wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
  13. wc.lpfnWndProc = (WNDPROC)WndProc;
  14. wc.cbClsExtra = 0;
  15. wc.cbWndExtra = 0;
  16. wc.hInstance = *get_hInstance();
  17. wc.hIcon = LoadIcon(NULL, IDI_WINLOGO);
  18. wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  19. wc.hbrBackground = NULL;
  20. wc.lpszMenuName = NULL;
  21. wc.lpszClassName = (LPCWSTR)L"BasicOpenGL";
  22. if (!RegisterClass(&wc))
  23.        {
  24.             //revoit ton code espèce de malpoli
  25.        }


 
le voyou me dit ne pas savoir quelle instance de WndProc assigner à wc.lpfnWndProc
 
des idées ? Sinon je passe simplement mon objet app en variable globale et je vire le pointeur rajouté en argument dans la WndProc surchargée ?
 
mici missié les gourous !


Message édité par iceteapeche le 08-03-2014 à 10:44:12
mood
Publicité
Posté le 08-03-2014 à 10:32:17  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [OpenGL 4.4 / VS2013] Retrouver l'instance de mon WndProc surchargé

 

Sujets relatifs
[C/OpenGl] Entretien téléphonique[OpenGL][JEU] Elbow Manipulator
réutilisation d'une meme instance d'une classe[PHP / JS] jquery file upload : retrouver nom du fichier uploadé ?
Gestion des pointeurs sur instancede 3dsmax à OpenGL ES sous IOS, un tutorial
Retrouver les pages 404 d'un siteRendu de plusieurs "plans d'eau" non aligné en OpenGL
Mail de mon hébergeur : Surcharge sur le serveur, menace de coupure[OpenGL] Spécifications des cartes graphiques et signification
Plus de sujets relatifs à : [OpenGL 4.4 / VS2013] Retrouver l'instance de mon WndProc surchargé


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR