다음을 통해 공유


이중 버퍼를 사용하여 그리기

이중 버퍼는 화면의 한 이미지와 다른 이미지 간의 전환을 부드럽게 합니다. 버퍼 교환은 일반적으로 그리기 명령 시퀀스의 끝에 있습니다. 기본적으로 Windows에서 OpenGL의 Microsoft 구현은 화면 끄기 버퍼에 그립니다. 그리기가 완료되면 SwapBuffers 함수를 호출하여 화면 오프 스크린 버퍼를 화면 버퍼에 복사합니다. 다음 코드 샘플에서는 그리기를 준비하고 그리기 함수를 호출한 다음 이중 버퍼링을 사용할 수 있는 경우 완성된 이미지를 화면에 복사합니다.

void myRedraw(void) 
{ 
    // set up for drawing commands  
    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 
    gluPerspective(45, 1.0, 0.1, 100.0); 
 
    // draw our objects  
    myDrawAllObjects(GL_FALSE); 
 
    // if we're double-buffering ...  
    if (bDoubleBuffering)  
 
        // ...draw the copied image to the screen  
        SwapBuffers(hdc); 
}

다음 코드 샘플은 창 디바이스 컨텍스트를 가져오고, 장면을 렌더링하고, 이미지를 화면에 복사하여 렌더링을 표시한 다음, 디바이스 컨텍스트를 해제합니다.

hdc = GetDC(hwnd); 
mySceneRenderingFunction(); 
SwapBuffers(hdc); 
ReleaseDC(hWnd, hdc);