最近在使用Qt封装播放器。播放器在封装D2D的时候出了问题。主要问题为渲染的时候大部分时候是白色的,有小部分时间可以看到渲染出画面。
实际上,如果要使用Qt封装底层的渲染引擎,需要重写函数paintEngine() 返回空
/* WA_PaintOnScreen: To render outside of Qt's paint system, e.g. If you require
* native painting primitives, you need to reimplement QWidget::paintEngine() to
* return 0 and set this flag
* 重要, 否则画面闪烁,无法渲染!!!
*/
QPaintEngine* paintEngine() const Q_DECL_OVERRIDE {
return nullptr;
}
代码就不放了,可以参考别人的开源大作:QtAV