我正在尝试在OSX上使用带有Ogre的SDL2并且渲染工作正常,但我没有收到任何键盘和鼠标事件。
对于渲染循环,我使用NSTimer
0.001s
间隔。
如果我在循环中执行了SDL_PumpEvents();
或SDL_PollEvent(&event)
,那么我会得到一些键盘事件但不完美且鼠标工作正常。
导致这种奇怪行为的原因是什么?
谢谢!
self.timer = [NSTimer scheduledTimerWithTimeInterval:0.001
target:self
selector:@selector(step)
userInfo:NULL repeats:YES];
[self.timer fire];
...
-(void) step {
renderOneFrame();
SDL_GL_SwapWindow(sdlWindow);
SDL_PumpEvents();
// or
SDL_Event event;
while (SDL_PollEvent(&event)) { }
}
如果我添加SDL_AddEventWatch(_eventFilter, this);
来监听事件鼠标和其他事件(例如退出)在没有轮询或其他事情的情况下工作!
但仍未收到键盘事件。