2016-02-03 4 views
0

J'ai des problèmes pour créer un contexte GL 4.x en utilisant GLX simple et GLEW (1.12). Toutes les solutions que j'ai trouvées ici ne fonctionnent pas pour moi. Ce que j'essaie de faire (et ce que j'ai trouvé dans d'autres questions): Créez un contexte GL 'base', appelez glewInit(), puis créez le contexte GL 4.x approprié en utilisant glXCreateContextAttribsARB (...). Cela n'a pas fonctionné pour moi, puisque glXChooseFBConfig maintient la segfaulting. J'ai lu que je dois d'abord appeler glxewInit, mais cela n'a pas fonctionné. La construction sans GLEW_MX définie a entraîné la non-disponibilité de glxewInit. Bâtiment avec GLEW_MX défini a entraîné l'erreur de compilation suivante:GLX crée un contexte GL 4.x avec des plantages GLEW glXChooseFBConfig

error: 'glxewGetContext' was not declared in this scope #define glxewInit() glxewContextInit(glxewGetContext()) 
note: in expansion of macro 'glewxInit' auto result = glxewInit() 

Quand j'OMMISSIONS appeler glxewInit() l'application se bloque lors de l'appel glXChooseFBConfig (...)

Je suis plutôt coincé ici. Quelle est la bonne façon d'obtenir un contexte GL 4.x en utilisant GLX simple? (Je ne peux pas utiliser glfw ou quelque chose de similaire, je travaille sur une application donnée, et j'obtiens un pointeur d'affichage et un identifiant de fenêtre, la fenêtre est déjà là)

+0

Vous pouvez regarder le code de GLFW pour voir comment ils le font. –

Répondre

0

Grâce à l'indice de Nicol j'ai pu pour résoudre le problème moi-même. En regardant le code de glfw j'ai fait ce qui suit (peut ne pas s'appliquer à tout le monde).

  • Créez un contexte GL par défaut/ancien à l'aide du pointeur d'affichage et de l'ID de fenêtre donnés. J'appelle également glXQueryExtension pour vérifier le support de glX.
  • Après avoir créé le contexte par défaut, j'appelle glewInit mais crée des pointeurs de fonction à glXChooseFBConfigSGIX 'à la main'. Je ne sais pas vraiment pourquoi j'ai dû utiliser l'extension SGIX, n'a pas pris la peine de regarder de plus près.
  • De cette façon, j'ai pu obtenir une structure fbconfig appropriée pour appeler glXCreateContextAttribsARB et de créer un nouveau contexte après avoir détruit l'ancien
  • Et voilá, je reçois mon travail GL contexte 4.x

Merci againg à Nicol, je ne sais pas pourquoi je n'ai pas pensé à regarder d'autres codes.