这个针对在FireBreath里面使用SDL的窗体的一个说明。
当时在FireBreath使用SDL播放视频,视频窗体没有停靠网页上面,而是想一个对话框一样的在外面漂浮着的
找了好久,找到了一个相关的文章:
在onWindowAttached里面调用set_sdl_window ();
bool YourPlugin::onWindowAttached(FB::AttachedEvent *evt, FB::PluginWindow *win) { // The window is attached; act appropriately FB::PluginWindowWin *wnd = dynamic_cast<FB::PluginWindowWin*>(win); set_sdl_window (wnd->getHWND()); // then run your code // ... }
set_sdl_window
()的定义:
int set_sdl_window(HWND window) { char windowid[20] = {0}; char env[100] = {0}; if (window != NULL) { SDL_ulltoa((Uint64)window, windowid, 10); sprintf(env, "SDL_WINDOWID=%s", windowid); SDL_putenv (env); return 0; } return 1; }
然后创建出来的SDL窗体就是停靠在网页上面的。
时间: 2024-10-10 07:30:50