프로그래밍/MFC

더블 버퍼링

이재만박사 2016. 12. 1. 11:28

* 더블 버퍼링


- 화면에 보여줄 버퍼와 내부 작업에 사용할 버퍼를 따로 유지

- 내부 버퍼에 미리 그림을 그린 후 화면 버퍼로 고속 전송

- 그리는 중간 과정을 숨겨진 내부 버퍼에서 처리



- 더블 버퍼링에 사용되는 내부 버퍼는 구체적으로 메모리 영역인데 

  이 메모리의 영역은 외부 버퍼, 즉 화면의 포맷과 호환되어야 한다

- 그래야 내부 버퍼에 그린 그림을 별도의 조작없이 외부 버퍼로 고속 전송 가능


- 윈도우즈에서는 내부 버퍼를 메모리에 직접 작성할 필요가 없는데

  왜냐하면 비트맵이 내부 버퍼 역할을 멋지게 대신함


- 화면 DC 와 호환되는 비트맵(색상 포맷이 같고 크기가 동일)을 생성한 후

  이 비트맵에 그림을 긜면 비트맵  자체가 내부 버퍼 역할을 함

- 비트맵에 그려진 화면을 전송할 때는 BitBlt 함수 사용