본문 바로가기
DirectX

DX2D) #1-4 장치초기화_Rendering

by 준모 2024. 10. 9.

 

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