在网上看到许多人用qt做播放器只用了SDL2的音频部分,然后就图片刷新。这种方案好处是简单,坏处是没有利用到sdl2 的硬件加速。
搜了一下发现大多数没有这方面的记录,所以就写下这篇文章,直接上代码吧。
SDL_Window* sdlWindow = SDL_CreateWindowFrom((void*) (w.GetQWidget()->winId()));
这个就是利用SDL_CreateWindowFrom这个函数,将窗口句柄给予就可以。
如果在sdl一开始可以渲染出画面,但ctrl+alt+.后你发现画面卡死,但程序还一直跑,就是渲染失败的情况,这是有可能你将sdl的资源初始化到main线程,而你渲染的线程不是main导致的,解决方案最好是放到不是main线程上渲染。