1일차
// Direct X는 직접 하드웨어에 접근해서 출력할수 있게 도와주는 라이브러리이다.
(현재 12까지 업그레이드 되었다)
-direct 9부터 3D 가능
-direct 10 Gpu의 등장
엔진을 이해하기 위해서
가장 대중적인 direct 11버젼을 공부할 예정이다.
//////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// ////////////////////////////////////////
Window 어플리케이션에서 사용하는 장소
1) wWinMain
1-1 메세지 루프 장소
기본 메세지 루프인 아래의 코드는 게임과는 적합하지않은 코드
MSG msg;
// 기본 메시지 루프입니다:
while (GetMessage(&msg, nullptr, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return (int) msg.wParam;
따라서 아래의 코드로 바꿔준다.
MSG msg = {};
// 기본 메시지 루프입니다:
while (msg.message!= WM_QUIT)
{
if (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
else
{
//Update, Render
}
}
2)InitInstance
InitInstance
밑의 코드처럼 window 창크기를 잡으면 안맞는부분이 생기기 때문에
RECT windowSize = { 0,0,SCREEN_WIDTH,SCREEN_HEIGHT };
AdjustWindowRect(&windowSize, WS_OVERLAPPEDWINDOW, false);
HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
WIN_START_X, WIN_START_Y, // Window 시작위치
SCREEN_WIDTH, SCREEN_HEIGHT, //WIndow 창크기
nullptr, nullptr, hInstance, nullptr);
Rect의 Window 사이즈를 잡아주고 이를 AdjustWindowRect 함수를 사용해서 알맞게 조정해주는 작업이 필요하다.
//////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// ////////////////////////////////////////
Framework 헤더파일에서
1) 이미 마소에서 제공되어 포함되어있는 #include <d3d11.h> 가 있기때문에 추가해주고
2) cpp 를 따로 추가해주기 위해서 #pragma comment(lib,"d3d11.lib")를 추가해준다.
Main 에서
ID3D11Device* device; //CPU
ID3D11DeviceContext* deviceContext; // GPU 를 정의해준다.
'개인공부 > DirectX' 카테고리의 다른 글
DirectX8일차_RectCollision (0) | 2024.03.07 |
---|---|
DirectX 7일차 _Collision (0) | 2024.03.06 |
DirectX 6일차 (0) | 2024.03.05 |
DirectX 5일차 (0) | 2024.03.04 |
DirectX 4일차 (2) | 2024.03.04 |