2017-04-20 2 views
0

J'ai un problème très inhabituel. J'ai ce projet OpenTK (sur lequel j'ai travaillé pour la dernière fois il y a quelques mois sur une machine Linux différente, à l'époque tout fonctionnait bien).SDL2 ne parvient pas à créer le contexte GL lorsque le programme est exécuté dans Monodevelop, fonctionne bien sinon

Mon projet se compile très bien et quand je lance l'exécutable moi-même à partir du terminal, tout fonctionne parfaitement - la fenêtre est créée et ainsi de suite.

Cependant, quand je lance le même programme exact de l'intérieur Monodevelop en appuyant sur la touche Run (avec ou sans débogage activé), une exception est levée en raison de l'erreur de SDL2 suivante: "Could not create GL context: BadValue (integer parameter out of range for operation)"

Je l'ai déjà essayé à peu près tout, de la modification des paramètres de création de contexte, à la modification des versions OpenTK, mais rien n'a vraiment aidé. la sortie de OpenTK (avant que l'erreur de SDL2 se produit est:

Creating GraphicsContext. 
    GraphicsMode: Index: , Color: 32 (8888), Depth: 16, Stencil: 0, Samples: 0, Accum: 0 (0000), Buffers: 2, Stereo: False 
    IWindowInfo: OpenTK.Platform.SDL2.Sdl2WindowInfo 
    GraphicsContextFlags: Default 
    Requested version: 3.2 

Ces paramètres sont les mêmes, que je lance manuellement ou à partir Monodevelop le programme Je suppose que ma question est - ce qui pourrait être la différence entre le démarrage du programme. manuellement et en cours d'exécution dans Monodevelop, ce qui provoque cette erreur se produise?

(ce qui se passe sur Ubuntu 16 avec Monodevelop 6, OpenTK 1.1 (également 2.0) et SDL 2.0.4)

+0

Pourrait-il être exécuté par ex. Version 32 bits mono, ou juste version différente? Faites ralentir votre processus (sommeil, blocage d'appel, interruption par débogueur) et vérifiez où/proc//exe pointe vers, pour les deux versions. – keltar

+0

Le processus monodevelop est en cours d'exécution "/ app/bin/mono --debug --debugger-agent = transport = dt_socket, adresse = xxx /path/to/executable.exe", quand je lance moi-même l'exécutable, le chemin du processus est simplement "mono chemin/vers/executable.exe"./app/bin/mono n'existe pas ... – Max

Répondre

0

Eh bien, je plus ou moins résolu mon problème.Comme fortement recommandé sur le site Web de Monodevelop, je l'ai installé avec flatpak, qui fonctionne dans certains k ind de sandbox qui a probablement eu des problèmes avec SDL. J'ai réinstallé Monodevelop normalement et maintenant tout fonctionne comme il se doit.