Programming/D3D11

[메모용] 프로그램 구조와 D3D의 com 변수 관리 단계

Dorasima 2023. 11. 23. 15:59

이제 슬슬 

리팩토링(?) 캡슐화(?) 같은거를 해야할 때가 왔다.

일단 뇌피셜로 시도해보자.

 

1. com 변수를 어디서 관리해줄지

1_1. main 단

- ID3D11Device

- ID3D11DeviceContext

- IDXGISwapChain (1)

 

1_2. Scene 단

- IDXGISwapChain (2)

- ID3D11RasterizerState

- ID3D11BlendState

- ID3D11DepthStencilState

- ID3D11RenderTargetView

- ID3D11DepthStencilView

 

1_3. Object 단

- ID3D11VertexShader

- ID3D11InputLayout

- ID3D11PixelShader

- ID3D11ShaderResourceView

- ID3D11SamplerState

 

1_4. 공통

- ID3D11Buffer

 

2. 대충 내가 원하는 프로그램 구조

main 에서 core 돌림

- core에서 각종 manager 돌림 (Time, Input 등등)

- - Scene manager에서 Scene을 그림

- - - Scene에 포함되어 있는 Object들을 (초기화) 업데이트 / 그리기

 

3. 요약

3_1. main에서 window와 d3ddevice를 초기화

3_2. Scene에서 파이프라인의 각종 효과(?)들을 세팅 

3_3. Object 중에 Render Asset이 쓸 법한 친구들을 세팅

3_4. 없어질 때는 각 단계에서 Release() 하기