【发布时间】:2011-11-16 02:12:11
【问题描述】:
我有一个应用程序使用 GTK+ 显示一些不错的 GUI,但我使用 SDL 在 GTK+ 中显示一个小的 RGB 帧缓冲区
我使用以下代码将 SDL 导入 GTK+:
char SDL_windowhack[32];
sprintf(SDL_windowhack, "SDL_WINDOWID=%ld", GDK_WINDOW_XWINDOW(deviceWindow->window));
putenv(SDL_windowhack);
不幸的是,我也将 SDL 用于键盘和鼠标事件。使用 SDL 更新图像的主线程产生以下线程:
void *SDLEvent(void *arg)
{
SDL_Event event;
while (1) {
fprintf(stderr, "Test\n");
SDL_WaitEvent(&event);
switch (event.type) {
/* ... */
}
}
}
我看到打印语句执行了两次,然后没有。一旦我终止 SDL 用来更新屏幕(显示)的线程,SDLEvent 中的循环就会再次开始快速执行。
在我将 SDL 集成到 GTK+ 之前,这段代码可以正常工作,所以我认为 GTK+ 可能会在某些方面阻止 SDL?
请问大家有什么建议吗?
非常感谢!
【问题讨论】: