1,2,3강 초기화 강의 부분에서 통틀어서
컴인터페이스의 경우 desc가 필요하다고 하셨고
그래서 이니셜라이즈 함수에서
desc 부분을 초기화해주는걸로 이해했습니다.
그리고 그 다음 원래는 device, device_context, swap_chain 각각 따로 만들어주는게 맞지만
지금은 한번에 만드는 함수로 만드는것까지 이해했구여.
그런데 이니셜라이즈 함수에서
왜 swap_chain의 경우만 desc 객체생성해서 초기화해주고
device, device_context는 따로 해주지 않은건가요?
혹시D3D11CreateDeviceAndSwapChain()함수로 3개를 함께 만드는 경우와 동일하게
device, device_context는
DXGI_SWAP_CHAIN_DESC desc 객체로 재사용했다라고 이해하면 될까요..
안녕하세요 온라인게임아카데미 입니다.
문의하신 프로그래밍 관련 내용에 대하여 담당 강사님에게 전달하였습니다.
다음날 오후 6시 이전까지는 답변드릴 수 있도록 하겠습니다.
꿈을 이루시는 그날까지 함께 하겠습니다.
SGA온라인게임아카데미
--------------------------------------------------------------------------------------------------------------------
안녕하세요 온라인게임아카데미 프로그래밍 강사 하민우 입니다.
우선 조금 직설적으로 질문에 대한 답부터 드리자면 아닙니다.
device, device_context, swap_chain 들을 원래 따로 만들어줘야 하는 것이 아니라 따로 만들 수도 있지만
D3D11CreateDeviceAndSwapChain( ) 함수를 사용하여 한번에 생성도 가능하다고 말하는게 맞습니다.
그리고 아래 디바이스와 컨텍스트를 만들어주는 함수와 스왑체인까지 한번에 만들어주는 함수의 인자값들을
보시면 D3D11CreateDeviceAndSwapChain( ) 함수에서도 디바이스와 컨텍스트를 생성하기 위해서 필요한 정보들을
그대로 다 받아서 생성이 됩니다.
HRESULT D3D11CreateDevice(
IDXGIAdapter *pAdapter,
D3D_DRIVER_TYPE DriverType,
HMODULE Software,
UINT Flags,
const D3D_FEATURE_LEVEL *pFeatureLevels,
UINT FeatureLevels,
UINT SDKVersion,
ID3D11Device **ppDevice,
D3D_FEATURE_LEVEL *pFeatureLevel,
ID3D11DeviceContext **ppImmediateContext
);
HRESULT D3D11CreateDeviceAndSwapChain(
IDXGIAdapter *pAdapter,
D3D_DRIVER_TYPE DriverType,
HMODULE Software, UINT Flags,
const D3D_FEATURE_LEVEL *pFeatureLevels,
UINT FeatureLevels,
UINT SDKVersion,
const DXGI_SWAP_CHAIN_DESC *pSwapChainDesc,
IDXGISwapChain **ppSwapChain,
ID3D11Device **ppDevice,
D3D_FEATURE_LEVEL *pFeatureLevel,
ID3D11DeviceContext **ppImmediateContext
);
항상 열공하시고 공부하다가 이해가 안되는 부분이 있을 때는 언제든지 질문 주시기 바랍니다.
감사합니다.