はかせのラボ

私の頭の中を書いていく雑記ブログです

DirectX触ってみた

今回からDirectX11を触り始めました。

理由は単純で以前から色々なところでゲーム開発といえばC++
DirectXOpenGLを使って全部自分で作るもんだよねという話を聞いていて
じゃ自分もできるようになろうと思ったからです。

ということで触ってみたんですが、書く量がとにかく多いです。

初期化して画面を表示するということだけに
↓こんな構造体とか

        DXGI_SWAP_CHAIN_DESC sd;
	ZeroMemory(&sd,sizeof(sd));
	sd.BufferCount = 1;
	sd.BufferDesc.Width = width;
	sd.BufferDesc.Height = height;
	sd.BufferDesc.RefreshRate.Numerator = 60;
	sd.BufferDesc.RefreshRate.Denominator = 1;
	sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
	sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
	sd.OutputWindow = mHwnd;
	sd.SampleDesc.Count = 1;
	sd.SampleDesc.Quality = 0;
	sd.Windowed = true;

↓こんなにたくさん引数があるやつとか

        hr = D3D11CreateDeviceAndSwapChain
	(NULL,mDriverType,NULL,flags,&fLevel,1,D3D11_SDK_VERSION,&sd,&mSwapChain,&mDevice,&mLevel,&mDeviceContext);

ただの初期化処理がこんなに大変だとは・・・
これは世間でDirectXは難しいとか面倒くさいとか言われますねw

自分はプログラミング初心者であるということもあって
これだけで3時間ぐらいかかってしまいましたorz

ただ出来たときはやった!って思いましたし
関数名や型名も何をするのかわかりやすいものが多かったりと
慣れたらサクサク作れるかもなとは思いました。

今回作ったものはgithubに上げました。
https://github.com/hakase0724/DirectX