首页 > 代码库 > FireBreath设置SDL窗体停靠在网页上面

FireBreath设置SDL窗体停靠在网页上面


    这个针对在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窗体就是停靠在网页上面的。

FireBreath设置SDL窗体停靠在网页上面