본문 바로가기

C++

더블 버퍼링과 스왑 체인

더블 버퍼링에 대해 질문을 받았는데 스왑 체인 썼던 것밖에 기억이 안나서 스왑 체인에 대해서 설명해도 되겠냐고 물어보고 설명을 했었다. 지금 생각해보니 API 때는 (스왑체인이 아닌) 더블 버퍼링, DirectX 때는 스왑 체인 방식을 썼었는데 API 배워놓고서 까먹었던 것 같다.

 

더블 버퍼링

화면이 갱신될 때마다 깜빡거리는 현상을 방지하기 위해 back buffer(오프 스크린)에 먼저 이미지를 그리고, 이미지가 완성되면 기존 화면(실제 화면)에 옮겨그리는 방법이다.

 

스왑 체인

스왑 체인도 더블 버퍼링의 일종이다. front buffer와 back buffer 두 개를 가지면서 실제 화면에는 front buffer를 출력하고 이미지는 back buffer에 그리는 방식이다. 포인터를 통해 접근하며 back buffer가 완성되면 back buffer와 front buffer의 포인터를 교환하여 그림이 완성된 back buffer가 front buffer가 되고, front buffer는 back buffer가 되어 이미지를 그리기 시작한다.

'C++' 카테고리의 다른 글

렌더링 파이프라인  (0) 2020.02.17
게임에 디자인 패턴 적용하기  (0) 2020.02.17
정적 바인딩, 동적 바인딩, 가상 함수 테이블  (0) 2020.02.16
BFS 구현 (큐)  (0) 2020.02.16
DFS 구현 (재귀, 스택)  (0) 2020.02.16