Pergunta

Eu sou novo para U / I de programação, e eu estou tentando começar com OpenGL. Quando eu executar um programa de exemplo que cria uma nova janela OpenGL com GLUT, ele funciona bem. Boa. No entanto, no contexto de outro programa, onde eu tenho que responder desenhar eventos (no Windows), com um contexto de dispositivo passado para mim - e onde eu poderia não ter GLUT disponível - minha confusão é esta:

  1. Quando é um contexto de dispositivo criado e destruído? Posso chamar a qualquer contexto dispositivo dado a mim, ou apenas alguns deles (e como eu sei)?

  2. Eu tenho que criar meu próprio contexto OpenGL e usar isso para chamar, ou eu posso usar uma "corrente" contexto OpenGL? Eu tenho que re-criar o contexto cada vez que um evento de sorteio é enviado?

Basicamente a minha pergunta é, dada uma situação em que eu fui enviado "Empate" eventos, quantas vezes eu tentar criar contextos OpenGL e como isso se relaciona com o ciclo de criação / destruição dos contextos de dispositivo?

Foi útil?

Solução

Em geral, é geralmente segura para pensar em um único contexto OpenGL como uma janela, especialmente nas janelas.

Um contexto dispositivo (tipicamente) mapear a um identificador de janela (HWND). É realmente um DC (HDC é o identificador), mas normalmente você associar um HDC com um único HWND. No Windows, você vai criar uma janela para usar com base fora da janela na tela onde você quer processar.

Normalmente, você reutilizar esse contexto dispositivo para todo o tempo de execução da aplicação. Se você deseja processar em uma janela diferente, você precisa gerar um contexto de dispositivo (HDC) para o novo identificador de janela. Além disso, fora da tela de renderização é um pouco diferente, uma vez que você criar um contexto de dispositivo compatível para isso, também.

Quanto a suas perguntas:

1) Ao criar a janela onde você quer fazer a prestação, você vai pegar um contexto de dispositivo e usá-lo para a vida do que a janela.

2) Você vai querer usar sempre o contexto dispositivo criado para a janela onde estão prestando.

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