File indexing completed on 2024-05-12 16:01:43
0001 /* 0002 * SPDX-FileCopyrightText: 2018 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #ifndef KISABSTRACTFRAMECACHESWAPPER_H 0007 #define KISABSTRACTFRAMECACHESWAPPER_H 0008 0009 #include "kritaui_export.h" 0010 0011 class QRect; 0012 0013 template<class T> 0014 class KisSharedPtr; 0015 0016 class KisOpenGLUpdateInfo; 0017 typedef KisSharedPtr<KisOpenGLUpdateInfo> KisOpenGLUpdateInfoSP; 0018 0019 0020 class KRITAUI_EXPORT KisAbstractFrameCacheSwapper 0021 { 0022 public: 0023 virtual ~KisAbstractFrameCacheSwapper(); 0024 0025 // WARNING: after transferring \p info to saveFrame() the object becomes invalid 0026 virtual void saveFrame(int frameId, KisOpenGLUpdateInfoSP info, const QRect &imageBounds) = 0; 0027 virtual KisOpenGLUpdateInfoSP loadFrame(int frameId) = 0; 0028 0029 virtual void moveFrame(int srcFrameId, int dstFrameId) = 0; 0030 virtual void forgetFrame(int frameId) = 0; 0031 0032 virtual bool hasFrame(int frameId) const = 0; 0033 0034 virtual int frameLevelOfDetail(int frameId) const = 0; 0035 virtual QRect frameDirtyRect(int frameId) const = 0; 0036 }; 0037 0038 #endif // KISABSTRACTFRAMECACHESWAPPER_H