Domanda

Sono nuovo di programmazione U / I, e sto cercando di iniziare con OpenGL. Quando eseguo un programma di esempio che crea una nuova finestra OpenGL con GLUT, funziona benissimo. Buono. Tuttavia, nel contesto di un altro programma, dove devo rispondere disegnare eventi (su Windows), con un contesto di periferica passato a me - e dove non avessi GLUT disponibile - la mia confusione è questa:

  1. Quando viene un contesto di periferica creato e distrutto? Posso disegnare a qualsiasi contesto di dispositivo dato a me, o solo alcuni di essi (e come faccio a sapere)?

  2. Devo creare il mio contesto OpenGL e l'uso che per attirare a, o posso utilizzare un contesto OpenGL "corrente"? Devo ricreare il contesto ogni volta che un evento di pareggio viene inviato?

In pratica la mia domanda è, dato una situazione in cui io sono stato mandato "disegnare" gli eventi, come spesso tento di creare contesti di OpenGL e di come questo si riferisce al ciclo di creazione / distruzione di contesti di periferica?

È stato utile?

Soluzione

In generale, è di solito sicuro di pensare a un contesto OpenGL sola come una finestra, in particolare su Windows.

Un contesto di dispositivo (tipicamente) mappare a un handle di finestra (HWND). In realtà è una corrente continua (HDC è la maniglia), ma normalmente si associano uno HDC con un singolo HWND. In Windows, si creerà una finestra da utilizzare in base al largo della finestra sullo schermo in cui si desidera eseguire il rendering.

In genere, si riutilizza questo contesto di dispositivo per l'intera fase di esecuzione dell'applicazione. Se si vuole rendere in una finestra diversa, è necessario generare un contesto di periferica (HDC) per la nuova maniglia della finestra. Inoltre, il rendering fuori campo è un po 'diverso, dal momento che ci si crea un contesto di dispositivo compatibile per questo, pure.

Per quanto riguarda le vostre domande:

1) Quando si crea la finestra in cui si vuole fare il rendering, si afferra un contesto di periferica, e utilizzarlo per tutta la durata di quella finestra.

2) Ti consigliamo di utilizzare sempre il contesto di dispositivo creato per la finestra in cui si sta renderizzando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top