我目前正在用C编写一个模拟器,它完全基于SDL运行,使用SDL曲面来呈现和SDL事件。不过,现在我已经完成了模拟部分,我希望在窗口顶部添加一个菜单,比如窗口上的"File,Edit,Help“菜单。因此,我可以添加设置,加载rom等选项。
我见过一些实现,但它们都需要c++ (我知道c++,但从未与c++结合使用),或与windows交互。理想情况下,我想要的是使用一个多平台的图形用户界面,比如GTK+ (因为我已经有一些使用它的经验,这个程序可以在linux和windows上运行)。
我还读过一些关于能够将SDL表面作为GTK小部件的父函数,但是这似乎也不允许我使用SDL事件。
有谁知道实现这一目标的方法吗?
好的,所以我决定重新考虑几件事,一次只做一件事。目前,我正试图让Surface显示在GTK中,但是,由于SDL停留在其窗口,而不是gtk,它现在似乎没有什么不同。
GtkWidget *sdlsock;
gui.sdlsock = gtk_event_box_new();
gtk_widget_set_size_request(gui.sdlsock, 500, 300);
char winhack[1024];
sprintf( winhack, "SDL_WINDOWID=%ld", gtk_widget_get_window(sdlsock));
SDL_putenv( winhack );
screen = SDL_SetVideoMode(500, 300, 16, SDL_SWSURFACE);我在这段代码中使用了Windows3.0
发布于 2013-02-26 12:37:38
看来,根据这个答案:Embedding SDL into GTK需要做一些黑客操作才能将gtk事件注入SDL。除此之外,这看起来不太可能。
https://stackoverflow.com/questions/15088419
复制相似问题