RenderBegin() & RenderEnd()
void Game::RenderBegine()
{
// RenderTargetView PipeLine에 설정.
m_DeviceContext->OMSetRenderTargets(1, m_RenderTargetView.GetAddressOf(), nullptr);
// BackGround Color 초기화
m_DeviceContext->ClearRenderTargetView(m_RenderTargetView.Get(), m_ClearColor);
// Viewport를 PipeLine에 설정.
m_DeviceContext->RSSetViewports(1, &m_Viewport);
}
void Game::RenderEnd()
{
// 후면버퍼에 그린 그림을 전면버퍼로 보여달라는 의미.
m_SwapChain->Present(1, 0);
}
장치초기화 단계에선 기본적인 Rendering 구조를 설정하는 것이기 때문에 RenderBegine()과 RenderEnd() 사이에 Objects를 설정하진 않는다.
RenderBegin()
ID3D11DeviceContext::OMSetRenderTargets 메소드로 RenderTargetView를 설정한다.
OMSetRenderTargets 메소드에서는 DepthStencilView(깊이버퍼)도 같이 설정하지만, 장치초기화단계이기 때문에 nullptr로 설정해준다.
ID3D11DeviceContext::ClearRenderTargetView 메소드로 기본 배경색을 설정해 주었다.
매게변수인 Color값은 Vec4값으로 코드상에선 검정색으로 설정해두었다.
ID3D11DeviceContext::RSSetViewports 메소드로 Viewport를 설정해 주었다.
RenderEnd()
IDXGISwapChain::Present 메서드로 후면버퍼에 그린 그림을 전면버퍼로 보이도록 설정.
이전에 RenderTargetView를 만들때 SwapChain의 BackBuffer를 동기화시켜줬기 때문에
RenderBegin()에서 RenderTargetView를 이용하여 SwapChain의 BackBuffer에 접근하여 그림을 그려줄 수 있었다.
'DirectX' 카테고리의 다른 글
DX2D) #3 텍스처와 UV (0) | 2024.12.03 |
---|---|
DX2D) #2 삼각형 띄우기 (0) | 2024.10.22 |
DX2D) #1-3 장치초기화_Viewport (1) | 2024.10.07 |
DX2D) #1-2 장치초기화_RenderTargetView (0) | 2024.10.07 |
DX2D) #1-1 장치초기화_Device & SwapChain (0) | 2024.10.07 |