|
Krita Source Code Documentation
|
#include <KisFrameCacheStore.h>
Inheritance diagram for KisFrameCacheStore:Public Member Functions | |
| void | forgetFrame (int frameId) |
| QRect | frameDirtyRect (int frameId) const |
| int | frameLevelOfDetail (int frameId) const |
| bool | hasFrame (int frameId) const |
| KisFrameCacheStore () | |
| KisFrameCacheStore (const QString &frameCachePath) | |
| KisOpenGLUpdateInfoSP | loadFrame (int frameId, const KisOpenGLUpdateInfoBuilder &builder) |
| void | moveFrame (int srcFrameId, int dstFrameId) |
| Private (const QString &frameCachePath) | |
| void | saveFrame (int frameId, KisOpenGLUpdateInfoSP info, const QRect &imageBounds) |
| ~KisFrameCacheStore () | |
Public Member Functions inherited from Private | |
| Private (KisCanvas2 *c) | |
Public Attributes | |
| KisFrameDataSerializer::Frame | lastLoadedBaseFrame |
| FrameInfoSP | lastLoadedBaseFrameInfo |
| KisFrameDataSerializer::Frame | lastSavedFullFrame |
| int | lastSavedFullFrameId = -1 |
| QMap< int, FrameInfoSP > | savedFrames |
| KisFrameDataSerializer | serializer |
Public Attributes inherited from Private | |
| KisCanvas2 * | canvas |
| int | displayedFrame |
| int | intendedFrame |
Private Attributes | |
| const QScopedPointer< Private > | m_d |
KisFrameCacheStore is a middle-level class for reading/writing animation frames on disk. Its main responsibilities:
1) Convert frames from KisOpenGLUpdateInfo format into a serializable KisFrameDataSerializer::Frame format.
2) Calculate differences between the frames and decide which frame will be a keyframe for other frames.
3) The keyframes will be used as a base for difference calculation and stored in a short in-memory cache to avoid fetching them from disk too often.
4) The in-memory cache of the keyframes is stored in serializable KisFrameDataSerializer::Frame format.
Definition at line 116 of file KisFrameCacheStore.cpp.
| KisFrameCacheStore::KisFrameCacheStore | ( | ) |
Definition at line 136 of file KisFrameCacheStore.cpp.
| KisFrameCacheStore::KisFrameCacheStore | ( | const QString & | frameCachePath | ) |
Definition at line 141 of file KisFrameCacheStore.cpp.
| KisFrameCacheStore::~KisFrameCacheStore | ( | ) |
Definition at line 147 of file KisFrameCacheStore.cpp.
| void KisFrameCacheStore::forgetFrame | ( | int | frameId | ) |
Definition at line 345 of file KisFrameCacheStore.cpp.
References KIS_SAFE_ASSERT_RECOVER_NOOP, and m_d.
| QRect KisFrameCacheStore::frameDirtyRect | ( | int | frameId | ) | const |
Definition at line 368 of file KisFrameCacheStore.cpp.
References KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, and m_d.
| int KisFrameCacheStore::frameLevelOfDetail | ( | int | frameId | ) | const |
Definition at line 362 of file KisFrameCacheStore.cpp.
References KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, and m_d.
| bool KisFrameCacheStore::hasFrame | ( | int | frameId | ) | const |
Definition at line 357 of file KisFrameCacheStore.cpp.
References m_d.
| KisOpenGLUpdateInfoSP KisFrameCacheStore::loadFrame | ( | int | frameId, |
| const KisOpenGLUpdateInfoBuilder & | builder ) |
Definition at line 245 of file KisFrameCacheStore.cpp.
References KisFrameDataSerializer::addFrames(), KisOpenGLUpdateInfo::assignDirtyImageRect(), KisOpenGLUpdateInfo::assignLevelOfDetail(), KisOpenGLUpdateInfoBuilder::calculatePhysicalTileRect(), KisFrameDataSerializer::Frame::clone(), KisFrameDataSerializer::FrameTile::col, KisFrameDataSerializer::FrameTile::data, KisOpenGLUpdateInfoBuilder::destinationColorSpace(), KisFrameDataSerializer::Frame::frameTiles, KisFrameDataSerializer::Frame::isValid(), KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, m_d, KisFrameDataSerializer::FrameTile::rect, KisFrameDataSerializer::FrameTile::row, KisOpenGLUpdateInfoBuilder::textureInfoPool(), KisOpenGLUpdateInfo::tileList, and KisLodTransformBase::upscaledRect().
| void KisFrameCacheStore::moveFrame | ( | int | srcFrameId, |
| int | dstFrameId ) |
Definition at line 327 of file KisFrameCacheStore.cpp.
References KIS_SAFE_ASSERT_RECOVER, KIS_SAFE_ASSERT_RECOVER_RETURN, and m_d.
|
inline |
Definition at line 118 of file KisFrameCacheStore.cpp.
| void KisFrameCacheStore::saveFrame | ( | int | frameId, |
| KisOpenGLUpdateInfoSP | info, | ||
| const QRect & | imageBounds ) |
The full-copying code is disabled intentionally:
We should never remove user-visible data on basis of statistics. On smaller images, like 32x32 pixels, there might be really subtle changes that are important for the user. So we should use difference instead of dumb copying.
Definition at line 151 of file KisFrameCacheStore.cpp.
References KisFrameDataSerializer::FrameTile::col, KisFrameDataSerializer::FrameTile::data, DataBuffer::data(), KisOpenGLUpdateInfo::dirtyImageRect(), KisFrameDataSerializer::estimateFrameUniqueness(), KisFrameDataSerializer::Frame::frameTiles, KIS_SAFE_ASSERT_RECOVER, KIS_SAFE_ASSERT_RECOVER_RETURN, KisOpenGLUpdateInfo::levelOfDetail(), m_d, KisFrameDataSerializer::Frame::pixelSize, KisFrameDataSerializer::FrameTile::rect, KisFrameDataSerializer::FrameTile::row, KisFrameDataSerializer::subtractFrames(), KisOpenGLUpdateInfo::tileList, and toQShared().
| KisFrameDataSerializer::Frame KisFrameCacheStore::lastLoadedBaseFrame |
Definition at line 130 of file KisFrameCacheStore.cpp.
| FrameInfoSP KisFrameCacheStore::lastLoadedBaseFrameInfo |
Definition at line 131 of file KisFrameCacheStore.cpp.
| KisFrameDataSerializer::Frame KisFrameCacheStore::lastSavedFullFrame |
Definition at line 127 of file KisFrameCacheStore.cpp.
| int KisFrameCacheStore::lastSavedFullFrameId = -1 |
Definition at line 128 of file KisFrameCacheStore.cpp.
|
private |
Definition at line 60 of file KisFrameCacheStore.h.
| QMap<int, FrameInfoSP> KisFrameCacheStore::savedFrames |
Definition at line 133 of file KisFrameCacheStore.cpp.
| KisFrameDataSerializer KisFrameCacheStore::serializer |
Definition at line 125 of file KisFrameCacheStore.cpp.