OpenGL技術編
その4 テクスチャを貼る:サンプルプログラム
OpenGL技術編その4「テクスチャを貼る」で説明した内容を踏まえたサンプルプログラムです。実行すると煽りぎみの正方形ポリゴンにテクスチャが貼られます:
サンプルスクリーンショット。これはOpenGL版でテクスチャ貼れてます。
サンプルはOpenGLだけでなく、同じテクスチャ情報を用いてDirectX9でも描画しています。もちrんDirectX9側でも上と全く同じ描画結果が得られています!
このサンプルはこちらからダウンロードできます。
アーカイブを解凍すると、codeフォルダ及びprjフォルダが表れます。prjフォルダにはVS2005とVS2008それぞれのソルーションが含まれていますので、お使いの環境に合わせたソルーションを起動して下さい。後はビルドすれば上のスクリーンショットが出現するはずです。
起動直後はDirectX版のメイン関数(dx9main.cpp)を使っています。これをOpenGL版に切り替えるにはdx9main.cppの1行目にある「#if 1」を「#if 0」にし、openglmain.cppの方を「#if 1」にしてメイン関数を切り替えて下さい。同じ結果が出るはずです。
○ ポイント
このサンプルのポイントはOpenGLとDirectX9それぞれで形式が異なるテクスチャを吸収する仕組みです。唯一依存性のあるコードを置いて良いメイン関数内で双方のテクスチャを作成するファクトリクラスを登録し、エンジン側ではそのファクトリクラス(の親クラス)を通して依存部分が隠蔽されたテクスチャクラスを貰います。Applicationクラスの中にDirectX9な情報もOpenGLに特化した情報も無い事に注目してみてください。