#ifndef RENDERERDOWNLOADTHREAD_H #define RENDERERDOWNLOADTHREAD_H #include "rendererthreadbase.h" class RendererDownloadThread : public RendererThreadBase { Q_OBJECT public: RendererDownloadThread(QOpenGLContext* share_ctx, const int& width, const int& height, const olive::PixelFormat& format, const olive::RenderMode& mode); void Queue(RenderTexturePtr texture, const QString &fn, const rational &time); signals: void Downloaded(const rational& time); protected: virtual void ProcessLoop() override; private: GLuint read_buffer_; QVector texture_queue_; QVector download_filenames_; QVector texture_times_; QMutex texture_queue_lock_; }; using RendererDownloadThreadPtr = std::shared_ptr; #endif // RENDERERDOWNLOADTHREAD_H