-
WinAPI 더블 버퍼링Code 2020. 5. 16. 23:01
더블버퍼링 (스왑체인)
* DC를 2개를 만들어서 바꿔가며 디스플레이 함.
* memory DC / Compatible DC
메모리 DC에서 그림을 그리고 콤페터블 DC에서 메모리 DC에서 그린 그림을 복사해서 가져가서 디스플레이 함.
hDC = GetDC(hWinMain);
hMemDC = CreateCompatibleDC(hdc);
hBit => 도화지 = CreateCompatableBitmap(hdc,화면가로,화면세로);
* hBit 도 DlelteObject 로 반환해줘야 함.
hOldBit => 이전 도화지 저장 = SelectObject 의 반환값을 저장할 것이므로 함수를 만들지 않아도 됨.
* Old 를 저장하는 이유 -> 윈도우 운영체제에서 지정한 기본값을 보존시키기 위해.
WM_Paint : (<- 여기에서 hdc를 스왑해줌.)
BitBlt(hdc, 0, 0, 화면가로크기, 화면세로크기, hMemDC, 0, 0, SRCCOPY); <- Memdc 에서 hdc로 복사해서 띄워주는 과정.
SRCCOPY = 소스를 카피함.
* Timer (타이머) - 일정 틱마다 신호를 발생시킨다. (1/1000초 = 1000이 1초임.)
WM_TIMER 메세지가 발생함.
SetTimer() hwnd, 타이머 넘버, 틱 수, NULL
KillTimer() 타이머 넘버로 없앰. 반드시 킬해줘야 함.
'Code' 카테고리의 다른 글
HDC, HBITMAP (0) 2020.06.06 TransparentBlt 함수 참고 사이트 (0) 2020.05.29 1학기 C언어 중간과제 (0) 2020.05.05 Zombie TRPG 중간진행사항 8 (0) 2020.04.29 Zombie TRPG 중간진행사항 7 (0) 2020.04.27