Je suis novice en programmation U/I et j'essaie de démarrer avec OpenGL. Quand je lance un exemple de programme qui crée une nouvelle fenêtre OpenGL avec GLUT, cela fonctionne très bien. Bien. Cependant, dans le cadre d'un autre programme, où je dois répondre à dessiner les événements (sous Windows), avec un contexte de périphérique m'a passé - et où je ne pourrais pas avoir GLUT disponible - ma confusion est la suivante:Comment fonctionnent les contextes OpenGL et les contextes de périphériques?
Quand un contexte de périphérique est-il créé et détruit? Est-ce que je peux dessiner selon le contexte de l'appareil qui m'est donné, ou seulement certains d'entre eux (et comment le savoir)? Dois-je créer mon propre contexte OpenGL et l'utiliser pour dessiner, ou puis-je utiliser un contexte OpenGL "actuel"? Dois-je recréer le contexte chaque fois qu'un événement de tirage est envoyé?
Au fond ma question est, étant donné une situation où je suis envoyé des événements « Draw », à quelle fréquence dois-je essayer de créer des contextes OpenGL et comment est-ce lié à la création/cycle de destruction des contextes de l'appareil?
Super - Je pense que cela répond à ma question. Alors le contexte OpenGL sera à peu près associé au DC, n'est-ce pas? Je me souviens d'avoir lu qu'il n'y avait qu'un seul contexte par fil aussi. Je suppose donc que des fils différents auront aussi des DC différents? –
Le problème de threading est différent - lorsque vous créez un contrôleur de domaine, vous devez toujours utiliser ce thread pour tous les appels dans ce contrôleur de domaine. En général, cela signifie un graphique/thread de rendu par contexte de périphérique (par exemple: par fenêtre). –