2010-03-31 3 views
1

J'ai construit un contrôle OpenGL Viewer qui peut simplement être déposé sur un formulaire Windows (au moment du design) et assigné une liste d'affichage OpenGL (au moment de l'exécution).Contextes de contrôle et de rendu OpenGL Viewer

Le contrôle de la visionneuse gère la navigation, les options d'affichage (par exemple, la couleur de fond), etc. Il est également responsable de la création et de la destruction des contextes de rendu et de périphérique si nécessaire.

De toute évidence, chaque instance de contrôle de visionneuse a son propre contexte de périphérique, la «fenêtre» où l'image est dessinée.

Questions:

  • Comment chaque instance de contrôle du spectateur doit gérer le rendu des contextes?
  • Chaque instance doit-elle avoir son propre contexte ou partager un contexte de rendu global? Je suis particulièrement concerné par la façon dont cela affecte la création de polices WGL (wglUseFontBitmaps and wglUseFontOutlines), ce qui nécessite un contexte de rendu (quel que soit le contexte actuel) et un contexte de périphérique. Ai-je besoin de créer chaque police WGL pour chaque combinaison de contexte de rendu/périphérique?

Peut-être que mon approche est erronée.

Répondre

1

Je voudrais aller avec l'approche de contexte par contrôle. Vous devez vous rappeler que les extensions sont basées sur le contexte, donc vous devrez les lier pour chacune d'entre elles (j'utilise glew_MX pour gérer cela).

De plus, vous pouvez partager des listes d'affichage dans des contextes (à condition qu'ils soient sur le même GPU) et la création de polices wgl crée des listes d'affichage, donc ça devrait aller.