ABOUT ME

Today
Yesterday
Total
  • 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
Designed by Tistory.