Pergunta

Eu criei um controle do OpenGL Viewer que pode ser simplesmente descartado em um formulário do Windows (no momento do design) e atribuí uma lista de exibição do OpenGL (no tempo de execução).

O controle do visualizador lida com a navegação, opções de exibição (por exemplo, cor de fundo), etc. Também é responsável por criar e destruir contextos de renderização e dispositivo, conforme necessário.

Obviamente, cada instância de controle do visualizador possui seu próprio contexto de dispositivo, a 'janela' onde a imagem é desenhada.

Perguntas:

  • Como cada instância de controle do visualizador deve gerenciar contextos de renderização?
  • Cada instância deve ter seu próprio contexto ou compartilhar um contexto de renderização global?

Estou particularmente preocupado com a forma como isso afeta a criação de fontes WGL (WGLuseFontBitmaps e WGluseFontOutLines), que requer um contexto de renderização (seja qual for o contexto atual) e um contexto de dispositivo.

  • Preciso criar cada fonte WGL para cada combinação de contexto de renderização/dispositivo?

Talvez minha abordagem seja falha.

Foi útil?

Solução

Eu iria com o contexto por abordagem de controle. Você precisa se lembrar de que as extensões são baseadas em contexto, para que você precise vinculá -las para cada um que você faz (eu uso GLEW_MX para lidar com isso).

Além disso, você pode compartilhar listas de exibição entre os contextos (desde que estejam na mesma GPU) e a criação de fontes WGL cria listas de exibição para que você esteja bem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top