Double Buffering

김태훈·2024년 1월 8일
0

Win32API

목록 보기
7/24
post-custom-banner

화면 clear

윈도우에 테도리 1픽셀로 있기 때문에
화면 clear에서 -(1,-1)에서 시작하여 (해상도 좌표+1)의 좌표로 사각형을 만듦

이중 버퍼링

이유

한 프레임을 그려내는 과정을 사용자가 볼 필요 없음.
한 프레임을 다 그린 결과만 보여 주면 됨

수행 과정

1.그리기 작업을 수행하는 bitmap과 연결된 dc에 그림을 그린다
2. 다 그린 그림을 윈도우 핸들 bitmap에 복사한다
3.작업 수행 하는 dc를 클리어 한다.
4.다시 1번 부터 반복

bitmap,dc

이중 버퍼링을 위해 같은 크기의 bitmap을 만든다
만든 bitmap을 window의 bitmap을 목적지로 하는 dc와 호환 시킬수 있게
CreatCompatibleBitmap 함수 사용

윈도우 내부에 bitmap이 존재
내부 bitmap을 목적지로 하는 dc를 받아 그림을 그리면 출력 장치인 화면에 나타내짐

윈도우 내부 bitmap을 목적지로 하는 dc( Getdc(윈도우 핸들) 함수 )로 그림을 그렸듯이
dc를 새로 만들어서 만든 bitmap을 목적지로 하게 SelectObject를 하고 이 dc로 그림을 그려야 한다

dc Select

dc생성하면 기본적으로 1bit짜리 bitmap목적지 아이디를 들고있음,
select obj하면 이것이 반환

dc Delete

compatile로 만들어진 dc는 ReleaseDC 함수를 사용하여 커널오브젝트 지우고
window handle을 통해 만들어진 dc는 DeleteObject 함수를 사용

profile
복습을 위한 핵심 내용 및 모작
post-custom-banner

0개의 댓글