D3DXライブラリの数学関数

ActiveBasicのバグと思われる不具合を発見された方は、こちらから知らせていただけると助かります。
返信する
メッセージ
作成者
pmh
記事: 3
登録日時: 2005年9月20日(火) 02:20

D3DXライブラリの数学関数

#1 投稿記事 by pmh »

D3DXライブラリのSingle型の値を返す関数の戻り値が、他の関数同様
最初の引数のアドレスになってしまっています。
dx9abm.dllに問題があるような気がするのですが、どうでしょうか?

コード: 全て選択

#prompt
#include <directx9\d3dx9.sbp>

Dim v0 = [2, 2, 1] As D3DXVECTOR3
Dim v1 = [1, 2, 0] As D3DXVECTOR3
Dim s As Single
Dim p As VoidPtr

s = D3DXVec3Dot(VarPtr(v0), VarPtr(v1))
memcpy(VarPtr(p), VarPtr(s), SizeOf(VoidPtr))
Print s
Print p, VarPtr(v0) '同じ値になる
AB Ver4.10.00
山本
Site Admin
記事: 535
登録日時: 2005年5月30日(月) 15:08
連絡する:

#2 投稿記事 by 山本 »

ご報告ありがとうございます。

こちらで調査したところ、Single型の戻り値を持つ関数において、その戻り値をFPUレジスタを介して受け渡されずに、eaxレジスタを介してしまっているという不具合を発見しました。ご迷惑をおかけしてしまい、申し訳ないですm(__)m

本来の呼び出し規約では、Double型/Single型はFPUレジスタを介しての受け渡しとなりますので、次回のバージョンアップでそのように修正します。

なるべく即急に対応しますので、今しばらくお待ちください。
返信する