【发布时间】:2010-12-20 10:07:45
【问题描述】:
我用 C++ 编写了一个 3D 立体 OpenGL 程序。我在 timeBeginPeriod(1) 之后使用 timeGetTime 跟踪显示中的位置对象。当我使用“开始调试”运行程序时,我的对象在显示器上平滑移动(它们应该如此)。当我使用“开始而不调试”运行程序时,对象偶尔会冻结几次屏幕刷新,然后跳转到新位置。关于可能导致此问题的原因以及如何解决此问题的任何想法?
编辑:如果我单击鼠标按钮,当我运行“不调试就开始”时,似乎可以在短暂的延迟后解决抖动问题。我的应用程序是一个控制台应用程序(我在程序第一次启动时接受了一些参数)。这两个选项之间的窗口焦点可能有所不同吗?当我从控制台窗口完成输入后,是否有一种明确的方法可以将焦点强制到 OpenGL 窗口(通过 glutFullScreen(); 全屏显示)?
谢谢。
【问题讨论】:
-
您的发布版本表现如何,您的整体 CPU 使用情况如何?
-
由于我几乎完全在开发环境中工作,而且我渲染的简单显示不应该成为 CPU 使用率的问题,因此我从未构建过发布版本。我最近这样做的尝试被我一直在使用的一个屏幕捕获库阻止了,该库拒绝正确链接。运行进程的核心的 CPU 利用率很高,但很少固定。
标签: c++ windows opengl timer stereo-3d