|
Krita Source Code Documentation
|
#include <kis_tile_compressor_2.h>
Inheritance diagram for KisTileCompressor2:Public Member Functions | |
| void | compressTileData (KisTileData *tileData, quint8 *buffer, qint32 bufferSize, qint32 &bytesWritten) override |
| bool | decompressTileData (quint8 *buffer, qint32 bufferSize, KisTileData *tileData) override |
| KisTileCompressor2 () | |
| bool | readTile (QIODevice *io, KisTiledDataManager *dm) override |
| qint32 | tileDataBufferSize (KisTileData *tileData) override |
| bool | writeTile (KisTileSP tile, KisPaintDeviceWriter &store) override |
| ~KisTileCompressor2 () override | |
Public Member Functions inherited from KisAbstractTileCompressor | |
| KisAbstractTileCompressor () | |
| virtual | ~KisAbstractTileCompressor () |
Public Member Functions inherited from KisShared | |
| bool | deref () |
| bool | ref () |
| int | refCount () |
| QAtomicInt * | sharedWeakReference () |
Private Member Functions | |
| QString | getHeader (KisTileSP tile, qint32 compressedSize) |
| qint32 | maxHeaderLength () |
| void | prepareStreamingBuffer (qint32 tileDataSize) |
| void | prepareWorkBuffers (qint32 tileDataSize) |
Private Attributes | |
| KisAbstractCompression * | m_compression |
| QByteArray | m_compressionBuffer |
| QByteArray | m_linearizationBuffer |
| QByteArray | m_streamingBuffer |
Static Private Attributes | |
| static const qint8 | COMPRESSED_DATA_FLAG = 1 |
| static const QString | m_compressionName = "LZF" |
| static const qint8 | RAW_DATA_FLAG = 0 |
Additional Inherited Members | |
Protected Member Functions inherited from KisAbstractTileCompressor | |
| qint32 | pixelSize (KisTiledDataManager *dm) |
| qint32 | xToCol (KisTiledDataManager *dm, qint32 x) |
| qint32 | yToRow (KisTiledDataManager *dm, qint32 y) |
Protected Member Functions inherited from KisShared | |
| KisShared () | |
| ~KisShared () | |
Definition at line 14 of file kis_tile_compressor_2.h.
| KisTileCompressor2::KisTileCompressor2 | ( | ) |
Definition at line 16 of file kis_tile_compressor_2.cpp.
References m_compression.
|
override |
Definition at line 21 of file kis_tile_compressor_2.cpp.
References m_compression.
|
overridevirtual |
Compresses a tileData and writes it into the buffer. The buffer must be at least tileDataBufferSize() bytes long. Actual number of bytes written is returned using out-parameter bytesWritten
| tileData | an existing tile data. It should be created and acquired by the caller. |
| buffer | the buffer |
| bufferSize | the size of the buffer |
| bytesWritten | the number of written bytes |
Implements KisAbstractTileCompressor.
Definition at line 105 of file kis_tile_compressor_2.cpp.
References KisAbstractCompression::compress(), COMPRESSED_DATA_FLAG, KisTileData::data(), KisAbstractCompression::linearizeColors(), m_compression, m_compressionBuffer, m_linearizationBuffer, KisTileData::pixelSize(), KisAbstractTileCompressor::pixelSize(), prepareWorkBuffers(), RAW_DATA_FLAG, and TILE_DATA_SIZE.
|
overridevirtual |
Decompresses a tileData from a given buffer.
| buffer | the buffer |
| bufferSize | the size of the buffer |
| tileData | an existing tile data where the result will be written to. It should be created and acquired by the caller. |
Implements KisAbstractTileCompressor.
Definition at line 137 of file kis_tile_compressor_2.cpp.
References COMPRESSED_DATA_FLAG, KisTileData::data(), KisAbstractCompression::decompress(), KisAbstractCompression::delinearizeColors(), m_compression, m_linearizationBuffer, KisTileData::pixelSize(), KisAbstractTileCompressor::pixelSize(), prepareWorkBuffers(), and TILE_DATA_SIZE.
|
inlineprivate |
Definition at line 180 of file kis_tile_compressor_2.cpp.
References KisTile::extent(), and m_compressionName.
|
inlineprivate |
Quite self describing
Definition at line 171 of file kis_tile_compressor_2.cpp.
|
private |
TODO: delete this buffer! It is better to use one of other two buffers to store streams
Definition at line 83 of file kis_tile_compressor_2.cpp.
References m_streamingBuffer.
|
private |
Definition at line 92 of file kis_tile_compressor_2.cpp.
References m_compression, m_compressionBuffer, m_linearizationBuffer, and KisAbstractCompression::outputBufferSize().
|
overridevirtual |
Decompresses the tile from the stream. Used by datamanager in load/save routines
Implements KisAbstractTileCompressor.
Definition at line 51 of file kis_tile_compressor_2.cpp.
References decompressTileData(), KisTiledDataManager::getTile(), KisTile::lockForWrite(), m_compressionName, m_streamingBuffer, maxHeaderLength(), KisAbstractTileCompressor::pixelSize(), prepareStreamingBuffer(), TILE_DATA_SIZE, KisTile::tileData(), KisTile::unlockForWrite(), KisAbstractTileCompressor::xToCol(), and KisAbstractTileCompressor::yToRow().
|
overridevirtual |
Return the number of bytes needed for compressing one tile
Implements KisAbstractTileCompressor.
Definition at line 166 of file kis_tile_compressor_2.cpp.
References KisTileData::pixelSize(), and TILE_DATA_SIZE.
|
overridevirtual |
Compresses the tile and writes it into the stream. Used by datamanager in load/save routines
Implements KisAbstractTileCompressor.
Definition at line 26 of file kis_tile_compressor_2.cpp.
References compressTileData(), getHeader(), KisTile::lockForRead(), m_streamingBuffer, KisTile::pixelSize(), prepareStreamingBuffer(), TILE_DATA_SIZE, KisTile::tileData(), KisTile::unlockForRead(), warnFile, and KisPaintDeviceWriter::write().
|
staticprivate |
Definition at line 42 of file kis_tile_compressor_2.h.
|
private |
Definition at line 48 of file kis_tile_compressor_2.h.
|
private |
Definition at line 46 of file kis_tile_compressor_2.h.
|
staticprivate |
Definition at line 49 of file kis_tile_compressor_2.h.
|
private |
Definition at line 45 of file kis_tile_compressor_2.h.
|
private |
Definition at line 47 of file kis_tile_compressor_2.h.
|
staticprivate |
Definition at line 41 of file kis_tile_compressor_2.h.