ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 게임 기본 루프 & DX11
    Study/3D 2018. 4. 13. 20:51

    1. 윈도우 생성, 디바이스 초기화


    2. 메세지 루프

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    MSG msg;
     
    // Message Loop
    while (m_bLoop)
    {
        if (PeekMessage(&msg, NULL00, PM_REMOVE))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        else
        {
            Logic();
        }
    }
     
    return (int)msg.wParam;
    cs

    PeekMessage()를 통해 메세지 대기열을 확인하고, 없으면 게임 업데이트

    메세지가 있으면, TranslateMessage()를 통해 메세지 변환 후, DispatchMessage()를 통해 WinProc()에 메세지 전달.


    DX11 초기화

    1. D3D11CreateDevice() : Device, DeviceContext 생성.

    2. Feature Level 확인 : GPU가 지원 가능한 기능을 확인, 하위는 상위에 포함된다.

    3. CreateSwapChain()

    4. CreateRenderTargetView() : swapchain의 백버퍼를 device의 랜더 타겟으로 설정

    5. CreateDepthStencilView()

    6. OMSetRenderTargets() : OutputMerger로 렌더 타겟 뷰와 깊이스텐실 뷰 설정

    7. RSSetViewports() : viewport 구조체 활성화

    8. ClearRenderTargetView(), ClearDepthStencilView() : 랜더타겟뷰, 깊이스텐실뷰 초기화

    9. Present() : swapchain(백버퍼와 프론트버퍼 스왑)이 실행되고, 실제 그려진다.

    'Study > 3D' 카테고리의 다른 글

    랜더링 파이프라인  (0) 2016.09.05

    댓글

Designed by Tistory.