2020 이전/DirectX 12

DirectX input 시스템

다이렉트X에서 지원해주는 input 라이브러리 dinput.h을 이용한다. fucntional은 c++11부터 추가된 표준 라이브러리이다. 전역함수 기준으로 함수명은 그 자체가 주소가 되므로 함수명을 쓰고 인자를 넘겨주면 함수가 호출이된다. 이것이 함수포인터의 개념인데 멤버함수를 함수포인터로 호출하기는 까다로웠다. c++11부터는 functional을 지원하여 같은 interface로 전역과 멤버함수에 접근 가능하게끔 해준다. 이를 통해 멤버클래스의 멤버함수를 bind하여 키가 입력되면 호출할 수 있도록 한다. 키를 얻어오는 방법에는 GetAsyncKeyState도 있지만 GetAsyncKeyState는 윈도우 메세지를 후킹하는 방법이라 시간 효율이 썩 좋지않아 DirectX Input을 사용한다. 다이..

2020 이전/DirectX 2019.01.22

DirectX 11 렌더링 파이프라인

다이렉트11에서 그래픽 파이프라인을 정의하는 인터페이스는 ID3D11Device, ID3D11DeviceContext 이다. ID3D11Device: GPU와 GPU의 자원의 virtual representation을 제공.ID3D11DeviceContext: 파이프라인에 대한 그래픽처리를 나타낸다. ID3D11Device 인스턴스로 장면에서의 그래픽을 처리하는 GPU 자원으로 구성하고 획득하며, ID3D11DeviceContext로 그래픽 파이프라인에서의 적절한 쉐이더 단계에서 자원들을 처리한다. ID3D11Device 메소드는 씬을 setup하거나 device가 바뀔때 호출되지만 ID3D11DeviceContext는 매 프레임마다 호출한다. 1. Input Assembler 단계user-filled ..

2020 이전/DirectX 2019.01.09