KoreanFoodie's Study
DirectX 11 2D 게임 프로그래밍 - 2. Direct SDK 연결, Double Buffering 본문
Game Dev/DirectX
DirectX 11 2D 게임 프로그래밍 - 2. Direct SDK 연결, Double Buffering
GoldGiver 2021. 10. 22. 20:37
DirectX 11 2D 게임 프로그래밍 - 2. Direct SDK 연결, Double Buffering
이번 시간에는 기본적인 개념과 Graphics를 다루는 기초 개념에 대해 학습한다. Direct SDK연결은 라이브러리 연결과 Graphics.h의 코드 주석을 통해 익힐 수 있다.
알아두어야 할 개념으로는 Double Buffering이 있다.
stdafx.h
stdafx.h에 Graphics.h에서 사용할 라이브러리들을 연결해 준다.
#pragma once
//Window
#include <Windows.h>
#include <assert.h>
//DirectX
#include <D3Dcompiler.h>
#include <d3d11.h>
#include <D3DX10math.h>
// 라이브러리를 연결하는 전처리기 코드의 표현
#pragma comment(lib, "dxgi.lib")
#pragma comment(lib, "d3d11.lib")
#pragma comment(lib, "d3dcompiler.lib")
Graphics.h
Graphics.h에 어떤 그림을 보여줄 것인지 세부 스펙을 설정한다.
#pragma once
// final : 더는 상속될 수 없다
class Graphics final
{
public:
Graphics();
~Graphics();
private:
// I가 붙은 녀석들 - COM interface(Component Object Model), 내가 만든 게 아니라 가져다 쓰는 것만 가능 (4개)
// COM Interface는 Description을 가진다!
ID3D11Device* device = nullptr;
ID3D11DeviceContext* device_context = nullptr;
// DXGI : DirectX Graphics Infrastructure : 하부구조, 제조사마다 GPU 구조가 다른데, 프로그래머가 편하게 기능을 사용할 수 있게 해 준다.
// SwapChain : 여러 DXGI 객체 중 하나. 두 개의 버퍼를 번갈아 가며 렌더링하여 깜빡임, 찢어짐 현상 방지! (더블 버퍼링) -> 이게 사슬처럼 생김
// 백 버퍼를 관리한다고 보면 편함
IDXGISwapChain* swap_chain = nullptr;
// RenderTarget 이 도화지라고 보면 된다. View는 ResourceView라는 의미
ID3D11RenderTargetView* render_target_view = nullptr;
// viewport : 어떤 영역에 그릴 것인가. 이미지의 방향이나 위치 등
D3D11_VIEWPORT viewport = { 0 };
// {r, g, b, a} 의 구조체. a는 투명도 정보 (각 타입은 float임 -> 그래서 정규화라는 과정을 거친다.)
// 뭔가 지울 만한 것이 생겼다? -> 같은 색깔로 칠하는 것이 더 빠르다. 그래서 clear라고 이해하자.
// 내부에서 16진수를 처리하는 녀석이 있다. unsigned int 형식임!
// 직관적으로 4바이트임을 잘 알 수 있다.
D3DXCOLOR clear_color = 0xff555566;
};
// DirectX - API들의 집합, 그런데 렌더링에 관여를 함
// OpenGL
// GPU
더 자세한 내용이 궁금하시다면 직접 들어보시는 걸 추천드립니다!
'Game Dev > DirectX' 카테고리의 다른 글
DirectX 11 2D 게임 프로그래밍 - 7. Vertex Shader Stage (0) | 2021.10.25 |
---|---|
DirectX 11 2D 게임 프로그래밍 - 6. Input Assembler Stage 세팅하기 (0) | 2021.10.24 |
DirectX 11 2D 게임 프로그래밍 - 5. Window 창에 DirectX 연결(연동)하기 (0) | 2021.10.24 |
DirectX 11 2D 게임 프로그래밍 - 3, 4. ID3D11Device, SwapChain, Resource View 개념 및 간단한 초기화 (0) | 2021.10.23 |
DirectX 11 2D 게임 프로그래밍 - 1. Window 창 띄우기, Calling Convention, Casting, inline (0) | 2021.10.22 |
Comments