小编Asi*_*out的帖子

如何将SDL2纹理渲染到GTK3+窗口中?

我正在创建一个音乐播放器并尝试使用 GTK3+ 来创建用户界面。我正在使用 SDL_CreateWindowFrom 函数让 SDL2 使用 GTK3+ 窗口而不是创建一个窗口,但无法弄清楚将 SDL2 纹理渲染到 GTK3+ 窗口中需要遵循的步骤。

获取 GTK3 窗口 ID 的代码

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "---");
gtk_widget_show(window);
gdkWin = gtk_widget_get_window(GTK_WIDGET(window));
data->playContext->winID = GDK_WINDOW_XID(gdkWin);
gtk_main(); 
Run Code Online (Sandbox Code Playgroud)

代码设置SDL2窗口

playContext->display->window = SDL_CreateWindowFrom((const void *)playContext->winID);
playContext->display->renderer = SDL_CreateRenderer(playContext->display->window, -1, playContext->display->render_flags);
Run Code Online (Sandbox Code Playgroud)

代码渲染SDL2纹理

SDL_RenderClear(playContext->display->renderer);
SDL_RenderCopy(playContext->display->renderer, playContext->textureQ.head->bmp, NULL, NULL);
SDL_RenderPresent(playContext->display->renderer);
Run Code Online (Sandbox Code Playgroud)

gtk3 sdl-2

2
推荐指数
1
解决办法
2331
查看次数

标签 统计

gtk3 ×1

sdl-2 ×1