2017-03-05 2 views
-2

J'apprends OpenGL en Java avec LWJGL et je voudrais l'utiliser pour simuler des modèles physiques et je voudrais donc avoir un ensemble d'affichages et de contrôles comme des boutons, des curseurs, J'ai l'expérience de créer ce genre de choses dans AWT, et à mon avis, il semble logique d'intégrer une fenêtre GLFW dans une fenêtre AWT afin de n'utiliser que le contexte openGL pour rendre les choses qui doivent être rendues. Pourtant, tout ce que j'ai trouvé en ligne semble vouloir que je crée mon propre HUD à l'intérieur de la fenêtre openGL, et je ne trouve aucune information utile sur le GLFW intégré dans une autre chose existante comme un JPanel ou quelque chose? Je suis encore assez nouveau sur le sujet et j'apprécierais d'être pointé dans la bonne direction.Comment éviter de réinventer la roue avec les éléments de formulaire/texte LWJGL

+0

Vous devrez rendre votre IUG en une image hors écran puis le rendre en utilisant opengl, ou simplement chercher une bibliothèque lwjgl gui – Mehdi

+0

Je crois que LWJGL vous permet seulement de créer un contexte OpenGL pour une fenêtre entière. Vous pourriez être en mesure de trouver une bibliothèque qui vous permet de créer un comme un contrôle AWT/Swing. Je sais que vous pouvez le faire avec SWT par exemple (mais SWT est assez gros et vous pourriez être en mesure de trouver une bibliothèque plus petite qui fait cela) – immibis

Répondre

0

L'intégration de composants graphiques avec LWJGL3 (si c'est ce que vous utilisez) est assez difficile, surtout si vous ne voulez pas le coder vous-même. Cependant, voici quelques solutions que vous pouvez penser:

  • Utilisez LWJGL 2 (toujours maintenu, mais vieux), qui est connu pour être en mesure d'intégrer des composants AWT/Swing (mais avec quelques problèmes)
  • Utilisez une bibliothèque telle que lwjglx qui fournit une couche de compatibilité entre LWJGL 2 et utilisez-la avec une bibliothèque GUI pour LWJGL 2 (je ne pense pas qu'il existe des bibliothèques GUI disponibles pour LWJGL 3, mais il est fort possible que cela ait changé)

Si vous choisissez la première solution, vous pouvez vous référer à ces questions avant de commencer:

Pour mettre un LWJGL 2 Affichage dans un java.awt.Canvas, vous pouvez faire quelque chose comme ceci:

try { 
    Display.setDisplayMode(new DisplayMode(width, height)); 
    Display.setParent(canvas); 
    Display.create(); 
} catch (LWJGLException e) { 
    e.printStackTrace(); 
    System.exit(0); 
}