gpt4 book ai didi

c++ - 无法在 C++ 中嵌入的 Python 代码中修改 time.time() 返回的值

转载 作者:太空宇宙 更新时间:2023-11-04 14:27:51 24 4
gpt4 key购买 nike

我遇到了一个非常奇怪的问题。

以下代码:

import time
target_time = time.time() + 30.0

在从 C++(嵌入)调用的 Python 代码中不起作用!

target_time 与 time.time() 具有相同的值,任何修改它的尝试都会使 pdb 控制台中的值保持不变...

alt text http://dl.dropbox.com/u/3545118/time_bug.png

它发生在我在 Ogre3D 图形引擎中调用 root.initialise() 之后,但仅在使用 Direct3D 时发生,而不是在使用 OpenGL 时发生。

所以这可能与 Direct3D 有关...

最佳答案

在该线程中找到了答案: 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 浮点计算的精度设置为调用线程使用的精度。如果不指定此标志,Direct3D 默认为单精度舍入到最近模式,原因有两个:

  • double 模式会降低 Direct3D 性能。
  • 部分 Direct3D 假定浮点单元异常被屏蔽;揭露这些异常可能会导致未定义的行为。

关于c++ - 无法在 C++ 中嵌入的 Python 代码中修改 time.time() 返回的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2333848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com