File indexing completed on 2025-01-26 04:08:07

0001 /*
0002  *  SPDX-FileCopyrightText: 2017 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef KISASYNCANIMATIONCACHERENDERDIALOG_H
0008 #define KISASYNCANIMATIONCACHERENDERDIALOG_H
0009 
0010 #include "KisAsyncAnimationRenderDialogBase.h"
0011 #include "kis_types.h"
0012 
0013 
0014 class KisAsyncAnimationCacheRenderDialog : public KisAsyncAnimationRenderDialogBase
0015 {
0016 public:
0017     KisAsyncAnimationCacheRenderDialog(KisAnimationFrameCacheSP cache, const KisTimeSpan &range, int busyWait = 200);
0018     virtual ~KisAsyncAnimationCacheRenderDialog();
0019 
0020     static int calcFirstDirtyFrame(KisAnimationFrameCacheSP cache, const KisTimeSpan &playbackRange, const KisTimeSpan &skipRange);
0021 
0022 protected:
0023     QList<int> calcDirtyFrames() const override;
0024     KisAsyncAnimationRendererBase* createRenderer(KisImageSP image) override;
0025     void initializeRendererForFrame(KisAsyncAnimationRendererBase *renderer,
0026                                     KisImageSP image, int frame) override;
0027 
0028 private:
0029     struct Private;
0030     const QScopedPointer<Private> m_d;
0031 };
0032 
0033 #endif // KISASYNCANIMATIONCACHERENDERDIALOG_H