提问人:HEMA RAMANA 提问时间:1/30/2023 更新时间:1/30/2023 访问量:50
多次调用 QOpenGLWidget::update() 通常只会导致一个 QOpenGLWidget::p aintGL() 调用
Calling QOpenGLWidget::update() several times normally results in just one QOpenGLWidget::paintGL() call
问:
我已经实现了一个小部件,它扩展到 QOpenGLWidget 以显示 YUV 帧缓冲区,这些帧缓冲区来自硬件相机。在覆盖的 paintGL() 函数中实现了 YUV 到 RGB 的转换逻辑。
当我从硬件收到一个帧时,我会调用 QOpenGLWidget 上的 update() 函数,而 paintGL() 函数将由 QT 调用。我从硬件获得 60 FPS 速率的 YUV 帧缓冲区,所以我在一秒钟内调用了 60 个 update() 函数。但观察到 paintGL() 函数不会在一秒钟内调用 60 次。
我有以下两个问题:
- Update() 函数不会立即导致 paintGL()
- update() 几次通常只产生一个 QOpenGLWidget::p aintGL()
由于这两个原因,某些帧丢失以显示。
我需要一个函数来立即调用 paintGL() 函数。如何解决这些问题或有其他更好的解决方案?
答: 暂无答案
评论
QWidget::repaint()
?update()