1

私は非常に奇妙な問題に直面しています。

次のコード:

import time
target_time = time.time() + 30.0

C++ から呼び出された Python コード (埋め込み) では機能しません!

target_time は time.time() と同じ値を持ち、それを変更しようとすると、pdb コンソールで値が変更されないままになります...

代替テキスト http://dl.dropbox.com/u/3545118/time_bug.png

Ogre3D グラフィック エンジンで root.initialise() を呼び出した後に発生しますが、OpenGL を使用しているときではなく、Direct3D を使用している場合にのみ発生します。

これはDirect3Dに関連している可能性があります...

4

1 に答える 1

0

そのスレッドで答えを見つけました: http://www.ogre3d.org/forums/viewtopic.php?f=1&t=55013&p=373940&hilit=D3DCREATE_FPU_PRESERVE#p373940

http://msdn.microsoft.com/en-us/library/ee416457%28VS.85%29.aspx

D3DCREATE_FPU_PRESERVE Direct3D 浮動小数点計算の精度を呼び出しスレッドで使用される精度に設定します。このフラグを指定しない場合、次の 2 つの理由により、Direct3D はデフォルトで単精度の最近接丸めモードになります。

  • 倍精度モードでは、Direct3D のパフォーマンスが低下します。
  • Direct3D の一部では、浮動小数点ユニットの例外がマスクされていると想定しています。これらの例外のマスクを解除すると、未定義の動作が発生する可能性があります。
于 2010-02-26T13:52:01.343 に答える