본문 바로가기

Win32

<Win32>더블 버퍼링

https://www.youtube.com/watch?v=VwVWMC_kqFg&list=PL4SIC1d_ab-YhAo-VE51_yxBHd6yZOFHu&index=23 를 보고 배움



더블 버퍼링은 메인 화면 DC에 바로 출력해주는 것이 아니라, 'BackBuffer' 텍스처의 DC에 먼저 그려준 뒤에,


BackBuffer DC를 BitBlt() 를 통해 메인 DC에 그려주는 형태이다.


BitBlt( 메인 DC, 0, 0, 화면 너비, 화면 높이, BackBuffer DC, 0, 0, SRCCOPY );


위와 같이 더블 버퍼링 처리를 하면 매 프레임마다 한 번씩만 출력되므로 화면의 깜빡임을 해결할 수 있다.


BackBuffer는 맨 뒤에 출력될 이미지로, 화면의 크기에 맞는 bmp 파일로 만들어 두면 된다.


BackBuffer에 그리기 전에 뒤에 출력될 스테이지나, 스테이지가 없을 경우 메인화면만큼의 Rect를 그려주면


잔상과 같은 것들을 없앨 수 있다.


삼중 버퍼링은 BackBuffer를 두 개 이용하는 것으로, BackBuffer 두 개를 번갈아 가며 이용한다.