4
我有一个使用GTK +显示一些漂亮的GUI的应用程序,但我使用SDL来显示内部的小RGB帧缓冲器GTK +嵌入SDL成GTK +
我已经使用以下代码来获得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?
有没有人有任何建议吗?
非常感谢!
谢谢,这看起来像一个很棒的解决方案!它还没有工作,但我会捣鼓它,非常感谢! – Jary
我在你给我的链接上使用了“SDL_WINDOWID hack”。我刚刚看到:“您没有收到这个解决方案通常的SDL事件。”我猜我是不吉利:( – Jary
@Jary:嗯,那很糟糕,你不能使用Gtk事件循环中的键盘和鼠标事件吗? –