gpt4 book ai didi

c++ - 什么可能导致 OpenGL 在 "Start Debugging"和 "Start without debugging"选项下表现不同?

转载 作者:可可西里 更新时间:2023-11-01 10:40:40 31 4
gpt4 key购买 nike

我用 C++ 编写了一个 3D 立体 OpenGL 程序。我在 timeBeginPeriod(1) 之后使用 timeGetTime 跟踪显示中对象的位置。当我使用“开始调试”运行程序时,我的对象在显示器上平滑移动(正如它们应该的那样)。当我使用“开始而不调试”运行程序时,对象偶尔会卡住几次屏幕刷新,然后跳转到新位置。关于可能导致此问题的原因以及如何解决它的任何想法?

编辑:如果我单击鼠标按钮运行“不调试启动”,那么在短暂的延迟后似乎可以解决抖动问题。我的应用程序是一个控制台应用程序(我在程序第一次启动时接受了一些参数)。这两个选项之间的窗口焦点可能有所不同吗?当我完成从控制台窗口的输入后,是否有明确的方法将焦点强制到 OpenGL 窗口(通过 glutFullScreen(); 全屏显示)?

谢谢。

最佳答案

timeGetTime API 的精度只有 10 毫秒左右。如果您测量的间隔小于 50 毫秒左右,您可能只是看到了系统计时器中预期变化的影响。我不知道为什么调试器会对此产生影响,但系统的整个运作都是一个黑盒子。你可以使用 QueryPerformanceCounter以获得更高分辨率的计时,这可能会有所帮助。

关于c++ - 什么可能导致 OpenGL 在 "Start Debugging"和 "Start without debugging"选项下表现不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1799070/

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