Tôi cố gắng để hiển thị video ở 60fps trong một QPainter (trong một OpenGLwidget)QPainter mức độ hoạt động khung hình cao
Tôi gặp một vấn đề mà đôi khi các bản vẽ phải mất quá nhiều thời gian và sự kiện repaint tiếp theo sẽ xảy ra trong khi QPainter là trong sử dụng - tạo cảnh báo và các sự cố ngẫu nhiên.
Một vài câu hỏi:
Có cách 'Qt' để thực hiện các cuộc gọi liên động hiệu quả hay không, vì có lẽ QPainter biết nó đang được sử dụng - hay tôi chỉ sử dụng hỗ trợ mutex nền tảng của mình?
Có cách nào tốt hơn để vẽ ở tốc độ khung hình cao (mà tất nhiên cũng cần phải được khóa vào VSync) chứ không chỉ là một bộ hẹn giờ gọi repaint()?
Hướng dẫn chính xác mà bạn gọi khi hẹn giờ kích hoạt là gì? Hoặc, nếu bạn không gọi bất cứ điều gì cho mình, làm thế nào để bạn thực thi 60fps? –
repaint(), sau đó tôi quá tải paintEvent() để lấy dữ liệu hình ảnh của tôi và đưa nó vào một QImage được trả lại –
Bạn có thể tạo QImages trong một Thread riêng biệt, vì vậy chủ đề vẽ sẽ cần ít thời gian hơn trên mỗi paintEvent. – smerlin