File indexing completed on 2024-05-19 04:29:14
0001 /* 0002 * SPDX-FileCopyrightText: 2018 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #ifndef KISINMEMORYFRAMECACHESWAPPER_H 0007 #define KISINMEMORYFRAMECACHESWAPPER_H 0008 0009 #include <QScopedPointer> 0010 0011 #include "KisAbstractFrameCacheSwapper.h" 0012 #include "opengl/kis_texture_tile_info_pool.h" 0013 0014 class KisOpenGLUpdateInfoBuilder; 0015 0016 0017 class KRITAUI_EXPORT KisInMemoryFrameCacheSwapper : public KisAbstractFrameCacheSwapper 0018 { 0019 public: 0020 KisInMemoryFrameCacheSwapper(); 0021 ~KisInMemoryFrameCacheSwapper(); 0022 0023 // WARNING: after transferring \p info to saveFrame() the object becomes invalid 0024 void saveFrame(int frameId, KisOpenGLUpdateInfoSP info, const QRect &imageBounds) override; 0025 KisOpenGLUpdateInfoSP loadFrame(int frameId) override; 0026 0027 void moveFrame(int srcFrameId, int dstFrameId) override; 0028 0029 void forgetFrame(int frameId) override; 0030 bool hasFrame(int frameId) const override; 0031 0032 int frameLevelOfDetail(int frameId) const override; 0033 0034 QRect frameDirtyRect(int frameId) const override; 0035 0036 private: 0037 struct Private; 0038 const QScopedPointer<Private> m_d; 0039 }; 0040 0041 #endif // KISINMEMORYFRAMECACHESWAPPER_H