음악 플레이어를 만들고 GTK3 +를 사용하여 사용자 인터페이스를 만들려고합니다. SDL2가 GTK3 + 창을 사용하는 대신 SDL2를 사용하도록하기 위해 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();
코드 설정 SDL2 창
playContext->display->window = SDL_CreateWindowFrom((const void *)playContext->winID);
playContext->display->renderer = SDL_CreateRenderer(playContext->display->window, -1, playContext->display->render_flags);
코드 렌더링 SDL2 텍스처
SDL_RenderClear(playContext->display->renderer);
SDL_RenderCopy(playContext->display->renderer, playContext->textureQ.head->bmp, NULL, NULL);
SDL_RenderPresent(playContext->display->renderer);
당신은 당신이 그렇게하려고 한 것을 설명하기위한 최소한의 예를 게시한다 멀리 그리고 당신이 성취하려는 것. 코드 없이는 무엇을하고 있는지보기가 어렵습니다. SDL2에 'SDL_WINDOWID'가 없으므로 설정 만해도 효과가 없습니다. SDL 소스의'tests/testnative.c'에서 볼 수 있듯이'SDL_CreateWindowFrom'을 사용해야하지만, OpenGL과 함께 사용하는 것은 다소 까다 롭습니다. – keltar
많은 수색을 한 후 SDL_WINDOWID이 (가) 내 마음에 머물렀다. –