Direct3D 초기화 예제
2022. 9. 25. 23:07ㆍPublic/GraphicsAPI
현재까지의 응용 프로그램 프레임워크를 사용해서 간단한 예제 응용 프로그램을 만들것이다.
주된 기능은 부모 클래스 D3DApp이 대부분 담당하기 때문에 이 예제만의 코드는 거의 없다.
이 예제의 의의는 D3DApp에서 클래스를 하나 파생하고 이 예제만의 고유한 코드로 프레임워크 메서드들을 구현하는 방법을 보여주는 것이다.
class InitDirect3DApp : public D3DApp
{
public:
InitDirect3DApp(HINSTANCE hInstance);
~InitDirect3DApp();
bool Init();
void OnResize();
void UpdateScene(float dt);
void DrawScene();
};
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance,
PSTR cmdLine, int showCmd)
{
// Enable run-time memory check for debug builds.
#if defined(DEBUG) | defined(_DEBUG)
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
#endif
InitDirect3DApp theApp(hInstance);
if( !theApp.Init() )
return 0;
return theApp.Run();
}
InitDirect3DApp::InitDirect3DApp(HINSTANCE hInstance)
: D3DApp(hInstance)
{
}
InitDirect3DApp::~InitDirect3DApp()
{
}
bool InitDirect3DApp::Init()
{
if(!D3DApp::Init())
return false;
return true;
}
void InitDirect3DApp::OnResize()
{
D3DApp::OnResize();
}
void InitDirect3DApp::UpdateScene(float dt)
{
}
void InitDirect3DApp::DrawScene()
{
assert(md3dImmediateContext);
assert(mSwapChain);
md3dImmediateContext->ClearRenderTargetView(mRenderTargetView, reinterpret_cast<const float*>(&Colors::Blue));
md3dImmediateContext->ClearDepthStencilView(mDepthStencilView, D3D11_CLEAR_DEPTH|D3D11_CLEAR_STENCIL, 1.0f, 0);
HR(mSwapChain->Present(0, 0));
}
'Public > GraphicsAPI' 카테고리의 다른 글
Direct3D 첫번째 요약 (0) | 2022.09.25 |
---|---|
Direct3D 응용 프로그램의 디버깅 (0) | 2022.09.25 |
DX11 Tutorial02 코드 설명 (0) | 2022.08.22 |
광원 (0) | 2022.08.15 |
행렬 01 (0) | 2022.08.15 |