~プログラミング~ DirectXTexライブラリを導入しよう

DirectX 9の時代にはD3DXCreateTextureFromFileのような画像ファイルを簡単に読み込む為の関数がありました。しかし、時代が進み DirectX SDKWindows SDK へ統合されたタイミングからD3DXは廃止され使う事が出来なくなってしまいました。

 

 

D3DXは廃止されましたが代わりとなる DirectXMath・DirectX Tool Kit・DirectXTexといったライブラリが作られており、D3DXにあったテクスチャ関連の関数は DirectXTex に引き継がれています。

 

ここでは、DirectXTexライブラリを導入する方法について解説します。

DirectXTexライブラリをダウンロード

DirectXTexライブラリは WindowsSDK には含まれていません。

使うためにはライブラリをダウンロードする必要があります。

 

DirectXTexライブラリはサイト http://directxtex.codeplex.com/ で管理されています。

サイトからまずプロジェクトファイルを入手しましょう。

プロジェクトはGitHub https://github.com/Microsoft/DirectXTex からダウンロードします。

 

 

[Clone or download▼]ボタンからプロジェクト一式をダウンロードする事が出来ます。

DirectXTexライブラリをコンパイル

プロジェクトがダウンロード出来たらコンパイルします。

ダウンロードしただけではlibファイルは存在しません。自身でコンパイルしてlibファイルを作成する必要があります。

 

ダウンロードしたファイルの中にVisual Studioのバージョンに合わせたソリューションファイルがあります。自身の環境にあったソリューションファイルを使ってプロジェクトを開きビルドしましょう。

 

 

正しくビルド出来たらDirectXTex\Binフォルダの下にDirectXTex.libファイルが出来上がります。

自身のプロジェクトへライブラリを追加

 ライブラリファイルが作成できたら自身のプロジェクトへ追加しましょう。

 

自身のプロジェクトを開きメニューから[プロジェクト(P)]→[プロパティ(P)]を開きます。

[C/C++]→[全般]にある「追加のインクルードディレクトリ」へDirectXTex.hがあるフォルダを、

[リンカー]→[全般]にある「追加のライブラリディレクトリ」へDirectXTex.libがあるフォルダを追加します。

 

※DirectXTex.libはDebugとReleaseでそれぞれのフォルダへ作成されるので「構成(C)」毎に参照するフォルダを変えておくと良いでしょう。

DDSTextureLoaderとWICTextureLoader

ダウンロードしたファイルの中には、画像の読み込みをさらに簡単にしてくれるDDSTextureLoaderWICTextureLoaderというファイルがあります。

 

DDSフォーマットの画像を読み込む場合はDDSTextureLoaderを、それ以外のJPEG・PNG・BMPなどの画像を読み込む場合はWICTextureLoaderをという感じで使い分けます。

 

 

これらを使う場合はプロジェクトのプロパティから「追加のインクルードディレクトリ」へDDSTextureLoaderフォルダとWICTextureLoaderフォルダをそれぞれ追加しましょう。

 

 

プリコンパイル済みヘッダー(stdafx.h、stdafx.cpp)を使っている場合は、

stdafx.hの中でxxxTextureLoader.hを、

stdafx.cppの中でxxxTextureLoader.cppをインクルードするのが良さそうです。

stdafx.h

  :
 :
#include "DDSTextureLoader.h"
#include "WICTextureLoader.h"

using namespace DirectX;
  :
 :

stdafx.cpp

  :
 :
#include "DDSTextureLoader.cpp"
#include "WICTextureLoader.cpp"
  :
 :