I want to render a movie clip(YUV format) in a window created by java swt, so i wrote a render function which accept a handle parameter,
my system is ubuntu 10.04 and i use gtk-2.0 lib to convert the handle.
when i use SDL_CreateRenderer(pwindow, -1, SDL_RENDERER_SOFTWARE), my function works, but the vedio quality is bad.
then i use SDL_CreateRenderer(pwindow, -1, SDL_RENDERER_ACCELERATED), it seems my function is blocked in SDL_CreateRenderer.
How can i use opengl accleration mode in my function? I hope anyone can give me a suggestion.
my code as below:
Code:
extern “C” int TW_init(int iHandle)
{
SDL_Init(SDL_INIT_EVERYTHING);
GtkWidget* pWidget = (GtkWidget*)((int)iHandle);
GdkWindow* pgdkWindow = pWidget->window;
Window x11id = GDK_WINDOW_XWINDOW(pgdkWindow);
SDL_Window *pwindow=NULL;
pwindow=SDL_CreateWindowFrom((void*)x11id);
if(!pwindow)
{
printf("error when create window:%s\n", SDL_GetError());
return 0;
}
printf("create window\n");
SDL_RendererInfo info;
int num;
SDL_Renderer *prenderer=NULL;
printf("ready to create renderer\n");
prenderer=SDL_CreateRenderer(pwindow, -1, SDL_RENDERER_SOFTWARE);
if(!prenderer)
{
SDL_DestroyWindow(pwindow);
printf( "error when create renderer:%s\n", SDL_GetError());
return 0;
}
/*other rendering code*/
return 0;
}