EasyFAQ/62

Last-modified: 2009-03-12 (木) 23:25:30

「ハードウェアアクセラレータがないため~」というエラーについて

投稿者rain
重要度
状態
カテゴリ
HSPバージョン3.1
E3Dバージョン5.0.3.2
回答

ここから下を自由に編集してください。
上の投稿情報は安易に編集するとFAQリストのリストアップに支障が出るものもあります。
よく分からない方は分かる人に聞いてみてください。

  • ミッション制のゲームを作っているのですが、ミッション1をやったあと(E3DInitを実行した後)ミッション2に移行する(E3DBye→E3DInitwo) -- rain? 2009-03-10 (火) 22:00:28
  • (E3DInit を実行する)と「ハードウェアアクセラレータがないため~」というエラーメッセージが出て終了してしまうのですが、なぜでしょうか? E3DInitは二回呼び出してはいけないのですか? それとも何か別の理由があるのですか?教えてください。 -- rain? 2009-03-10 (火) 22:02:16
  • ヘルプによると、HAL(ハードウェアの機能)が使えない場合は、エラーになります。指定したビット数が使えない場合にも、エラーになります。エラーでアプリケーションが終了するのが嫌な場合は、この命令を呼ぶ前に、E3DCheckFullScreenParamsを呼んでチェックすることをおすすめします。と、ありましたが自分は試してません。スミマセン -- 2009-03-11 (水) 22:49:11
  • そういえば、ゆちボン(あるる)さんが「シーン制御モジュール」を使ってましたね。mainループにてswitch~caseでフラグたったらnextミッションとかもできそう。E3DBye→E3DIniも1回でいいし。 -- 2009-03-11 (水) 22:56:04
  • ↑ 「E3DBye→E3DIni」も でなく「E3DIniも」 orz -- 2009-03-11 (水) 22:57:51
  • ↑ 「E3DBye→E3DIni」も でなく「E3DIniも」 orz -- 2009-03-11 (水) 23:05:24
  • E3Dのサンプルスクリプト「e3dhsp3_0.hsp」でE3DInit E3DBye E3DInit としてもエラーは起きないのでE3DInitを2回呼び出してはいけないというわけではないと思います。それに、一度目はちゃんと実行できているのでHALが使えないというのもありえません。PCを買い換えて、E3Dを5.0(マルチストリームとかいうやつを使うようになってから)にしたとたん起こるようになったのですが・・・ このエラーが出る原因として考えられるものを列挙していただけないでしょうか。 -- rain? 2009-03-12 (木) 00:25:09
  • [ディスプレイドライバが対応してない又はドライバのバージョンが古い。DirectX9が正しくインストールされてない。ですかね…ちなみに途中でE3DBye呼ぶと作成したメモリなどの全部解放されるのでpathbufやらモデルデータやらメモリ確保し直さないといけないと思いますが。 -- 2009-03-12 (木) 23:05:31
  • E3DInitを2回呼び出しE3DBye→E3DInitなど試しましたが問題なく、こちらの環境では再現できませんでした。力不足でスミマセン。どなたか分かる方に託します… -- 2009-03-12 (木) 23:25:29