Condividi tramite


Contesti di rendering

Un contesto di rendering OpenGL è una porta attraverso cui passano tutti i comandi OpenGL. Ogni thread che effettua chiamate OpenGL deve avere un contesto di rendering corrente. Il rendering dei contesti collega OpenGL ai sistemi di finestra di Windows.

Un'applicazione specifica un contesto di dispositivo Windows quando crea un contesto di rendering. Questo contesto di rendering è adatto per il disegno sul dispositivo a cui fa riferimento il contesto del dispositivo specificato. In particolare, il contesto di rendering ha lo stesso formato pixel del contesto del dispositivo. Per altre informazioni, vedere Funzioni di contesto di rendering.

Nonostante questa relazione, un contesto di rendering non è uguale a un contesto del dispositivo. Un contesto del dispositivo contiene informazioni pertinenti al componente grafico (GDI) di Windows. Un contesto di rendering contiene informazioni pertinenti a OpenGL. Un contesto del dispositivo deve essere specificato in modo esplicito in una chiamata GDI. Un contesto di rendering è implicito in una chiamata OpenGL. È necessario impostare il formato pixel del contesto del dispositivo prima di creare un contesto di rendering.

Un thread che effettua chiamate OpenGL deve avere un contesto di rendering corrente. Se un'applicazione effettua chiamate OpenGL da un thread che manca di un contesto di rendering corrente, non accade nulla; la chiamata non ha alcun effetto. Un'applicazione crea comunemente un contesto di rendering, lo imposta come contesto di rendering corrente di un thread e quindi chiama funzioni OpenGL. Al termine della chiamata alle funzioni OpenGL, l'applicazione annulla il contesto di rendering dal thread e quindi elimina il contesto di rendering. Una finestra può avere più contesti di rendering contemporaneamente, ma un thread può avere un solo contesto di rendering corrente e attivo.

Un contesto di rendering corrente ha un contesto del dispositivo associato. Tale contesto del dispositivo non deve essere lo stesso contesto del dispositivo usato quando è stato creato il contesto di rendering, ma deve fare riferimento allo stesso dispositivo e avere lo stesso formato pixel.

Un thread può avere un solo contesto di rendering corrente. Un contesto di rendering può essere corrente a un solo thread.