DirectXの新バージョンが使えなかった | 2022.02.21 09:26 |
約2年ぶりぐらいに知人たちとオンラインで話しましたが、皆元気そう
で良かったです。
完全に思い付きでDirectX新バージョン(プログラミング)を試そうとした
ももの、失敗した話です。
OpenXOPSはDirectX 9.0cを使っており、『本家XOPSを再現する』という
ミッションに対しては十分に達成できているのですが、
ゲームエンジンを使わずにDirectXを直接叩いている人間としては、もっと
新しいDirectXも触っておいた方が良いのではないか? っと思ったため、
最近のDirectXにも触れてみることにしました。
白紙の状態から三角形や適当なモデルを表示して喜ぶだけでも良いのですが、
もう少し実践的に使うべく、せっかくOpenXOPSを持っているので、
いきなりOpenXOPSに乗せようとしていました。
ところが、DirectX自体の初期化は通るものの、シェーダーをコンパイルする
D3DCompileFromFile()関数が使えないのです・・・。
ちゃんと d3dcompiler.h はインクルードしているのですが、関数宣言がされて
いないとエラーになります。 てか、そもそも同ヘッダーに関数がない??
正確な理由は謎ですが、おそらくDirectX SDKのヘッダーファイルには入って
いないのだと思います。
素直に「新しいVisual Studio+Windows SDKを使え」という話なのですが、
他の現行プロジェクト(OpenXOPSとか、XopsAddonCreatorとか、ほか)
との兼ね合いもあり、そうそうホイホイ環境移行できるものでもないため、
どうしたものかと悩んでおりました。
使っていない適当なPCを引っ張り出して、別途新しい環境を構築するか、
D3DCompileFromFile()関数を使わず、シェーダーファイルは予めコンパイル
しておくようにするか ですね。 うーむ・・。
こんな手間かけて新しいDirectXやるぐらいなら
「最初からゲームエンジン使えば良いじゃん(終)」
って話なんですけれども。
で良かったです。
完全に思い付きでDirectX新バージョン(プログラミング)を試そうとした
ももの、失敗した話です。
OpenXOPSはDirectX 9.0cを使っており、『本家XOPSを再現する』という
ミッションに対しては十分に達成できているのですが、
ゲームエンジンを使わずにDirectXを直接叩いている人間としては、もっと
新しいDirectXも触っておいた方が良いのではないか? っと思ったため、
最近のDirectXにも触れてみることにしました。
白紙の状態から三角形や適当なモデルを表示して喜ぶだけでも良いのですが、
もう少し実践的に使うべく、せっかくOpenXOPSを持っているので、
いきなりOpenXOPSに乗せようとしていました。
ところが、DirectX自体の初期化は通るものの、シェーダーをコンパイルする
D3DCompileFromFile()関数が使えないのです・・・。
ちゃんと d3dcompiler.h はインクルードしているのですが、関数宣言がされて
いないとエラーになります。 てか、そもそも同ヘッダーに関数がない??
正確な理由は謎ですが、おそらくDirectX SDKのヘッダーファイルには入って
いないのだと思います。
素直に「新しいVisual Studio+Windows SDKを使え」という話なのですが、
他の現行プロジェクト(OpenXOPSとか、XopsAddonCreatorとか、ほか)
との兼ね合いもあり、そうそうホイホイ環境移行できるものでもないため、
どうしたものかと悩んでおりました。
使っていない適当なPCを引っ張り出して、別途新しい環境を構築するか、
D3DCompileFromFile()関数を使わず、シェーダーファイルは予めコンパイル
しておくようにするか ですね。 うーむ・・。
こんな手間かけて新しいDirectXやるぐらいなら
「最初からゲームエンジン使えば良いじゃん(終)」
って話なんですけれども。
category : ソフト・ツール開発 | comment [0] |