【发布时间】:2010-10-22 04:29:41
【问题描述】:
首先,我不是任何语言的资深程序员。但在过去的几个月里,我一直在大量地修补 python,所以我也不认为自己完全是绿色的。
为您提供一些关键字:
- 窗户
- Python 2.6
- Pygame,CGKit
好的,我得到了 CGKit 模块,它包含一个用于从 Wacom 数位板捕获数据的 WinTab 包装器。 WinTab 需要某个窗口处于活动状态才能开始捕获,为此我正在使用 PyGame。然而,PyGame 在 CPU 上的表现相当残酷,在绘制简单文本和矩形(wacom 输入数据的米)时,我的速度在 100-200 fps 之间,而在不“blitting”任何东西时,速度大约为 200-400 fps。
现在,平板电脑硬件和 WinTab API 支持 200hz 的传输速率,这一切都很好。问题是我从 WinTab 获得的数据不是 200hz(每个数据包 5 毫秒),而是我的 PyGame 窗口的当前帧速率,最重要的是,它不是静态的。
所以你看到了问题。为了让 WinTab 获取任何数据,它必须有一个分配给它的窗口并且它需要是“活动的”。但是打开 PyGame 窗口意味着数据流受限于 pygame 窗口的帧速率。
我确信我可以使用其他不会占用任何或很少 CPU 的窗口管理器,但我真正想要的是 WinTab 以恒定 200hz 的速率获取数据而没有任何依赖关系。
我在考虑线程。分解收集数据和绘图部分,但由于 WinTab 首先需要一个窗口来获取任何数据,我不知道这怎么可能。
另外请注意,我以前从未线程过任何东西,尽管我确实理解这个概念。
所以,希望我把问题讲得很清楚。
问题是,我怎样才能获得至少 200hz 的数据,同时仍然能够在我的 PyGame 窗口上以 20-30 fps 的速度运行?
【问题讨论】:
-
我在 stackovfw 上的第一个问题显然太薄了。当您的问题过于具体时,就会发生这种情况:)