sto cercando di mostrare il video a 60fps in un QPainter (in un OpenGLwidget)QPainter prestazioni ad alta frequenza di fotogrammi
Sto avendo un problema che a volte il disegno richiede troppo tempo e il prossimo evento ridisegno accade mentre QPainter è in use - che genera un avviso e arresti anomali casuali.
Un paio di domande:
C'è un 'modo Qt' di interblocco modo efficiente le chiamate a ridisegnare, in quanto presumibilmente QPainter sa che viene utilizzato - o devo basta usare il mio sostegno piattaforme mutex?
C'è un modo migliore per disegnare a frame rate elevati (che ovviamente deve anche essere bloccato su VSync) rispetto a un semplice timer che chiama repaint()?
Qual è esattamente l'istruzione che si chiama quando il timer scocca? Oppure, se non si chiama nulla da soli, come si fa a rinforzare il 60fps? –
repaint(), quindi sovraccarico paintEvent() per ottenere i dati dell'immagine e inserirli in una QImage che viene sottoposta a rendering –
Bene, è possibile creare QImages in un thread separato, quindi il thread di pittura avrà bisogno di meno tempo su ogni paintEvent. – smerlin