일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- DP
- Stored Procedure
- SQL
- Two Points
- binary search
- 그래프
- 스토어드 프로시저
- Trie
- Brute Force
- String
- two pointer
- 다익스트라
- Hash
- 이진탐색
- Dijkstra
- MYSQL
- union find
- Today
- Total
목록전체 글 (425)
codingfarm
어떤 자원을 파이프라인의 단계에 직접 묶는것이 아니다. 대신 자원에 대한 뷰를 생성하고 그 뷰를 파이프라인 단계에 묶어야 한다. 좀더 구체적으로, 후면 버퍼를 파이프라인의 출력 병합기(output merger) 단계에 묶으려면(그래야 Direct3D가 버퍼에 뭔가를 그릴 수 있다) 우선 후면 버퍼에 대한 렌더 대상 뷰를 생성해야 한다. 다음은 렌더대상뷰를 생성하는 코드의 예이다. ID3D11RenderTargetView* mRenderTargetView; ID3D11Texture2D* backBuffer; mSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), reinterpret_cast(&backBuffer)); md3dDevice->CreateRenderTarg..
교환 사슬의 생성 초기화 공정 이후에는 교환 사슬을 생성해야한다. 이를 위해선 우선 DXGI_SWAP_CHAIN_DESC 구조체의 인스턴스를 만들어서 원하는 교화 ㄴ사슬의 특성들을 설정해야 한다. 이 구조체의 정의는 다음과 같다. typedef struct DXGI_SWAP_CHAIN_DESC { DXGI_MODE_DESC BufferDesc; DXGI_SAMPLE_DESC SampleDesc; DXGI_USAGE BufferUsage; UINT BufferCount; HWND OutputWindow; BOOL Windowed; DXGI_SWAP_EFFECT SwapEffect; UINT Flags; } DXGI_SWAP_CHAIN_DESC; DXGI_MODE_DESC 형식은 아래와 같이 정의되는 또 다..
장치 생성 이후에는 하드웨어가 4X MSAA를 위한 품질 수준을 지원하는지 점검할 수 있다. 앞에서 말했듯이 모든 Direct3D 11 대응 장치는 모든 렌더 대상 형식에 대해 4X MSAA를 지원한다.(지원하는 품질 수준은 서로 다를 수 있다.) UINT m4xMsaaQuality; HR(md3dDevice->CheckMultisampleQualityLevels( DXGI_FORMAT_R8G8B8A8_UNORM, 4, & m4xMsaaQuality)); assert(m4xMsaaQuality > 0); 4X MSAA가 항상 지원되므로, 반환된 품질 수준값은 반드시 0보다 커야하며, 이를 강제하기 위해 assert를 사용했다.
Direct3D 초기화의 시작은 direct3D 11 장치(ID3D11Device)와 그 문맥(ID3D11Device Context)를 생성하는 것이다. 이 두 인터페이스는 Direct3D의 주된 인터페이스로, 물리적인 그래픽 장치 하드웨어에 대한 소프트웨어 제어기라고 생각하면 될 것이다. 즉, 응용 프로그램은 이 인터페이스들을 통해서 하드웨어에게 할 일(GPU 메모리에 자원 할당, 후면 버퍼 지우기, 자원을 여러 파이프 라인 단계에 묶기, 기하구조 그리기 등)을 지시한다. 좀 더 구체적으로 말하면, 1. ID3D11Device 인터페이스는 기능 지원 점검과 자원 할당에 쓰인다. 2. ID3D11DeviceContext 인터페이스는 렌더 대상을 설정하고, 자원을 그래픽 파이프 라인에 묶고, GPU가 수행..