Krita Source Code Documentation
Loading...
Searching...
No Matches
KisLzfCompression Class Reference

#include <kis_lzf_compression.h>

+ Inheritance diagram for KisLzfCompression:

Public Member Functions

qint32 compress (const quint8 *input, qint32 inputLength, quint8 *output, qint32 outputLength) override
 
qint32 decompress (const quint8 *input, qint32 inputLength, quint8 *output, qint32 outputLength) override
 
 KisLzfCompression ()
 
qint32 outputBufferSize (qint32 dataSize) override
 
 ~KisLzfCompression () override
 
- Public Member Functions inherited from KisAbstractCompression
virtual void adjustForDataSize (qint32 dataSize)
 
 KisAbstractCompression ()
 
virtual ~KisAbstractCompression ()
 

Additional Inherited Members

- Static Public Member Functions inherited from KisAbstractCompression
static void delinearizeColors (quint8 *input, quint8 *output, qint32 dataSize, qint32 pixelSize)
 
static void linearizeColors (quint8 *input, quint8 *output, qint32 dataSize, qint32 pixelSize)
 

Detailed Description

Definition at line 12 of file kis_lzf_compression.h.

Constructor & Destructor Documentation

◆ KisLzfCompression()

KisLzfCompression::KisLzfCompression ( )

TODO: make working memory htab[HASH_SIZE] be in heap and shared inside the class

Definition at line 240 of file kis_lzf_compression.cpp.

241{
247}

◆ ~KisLzfCompression()

KisLzfCompression::~KisLzfCompression ( )
override

Definition at line 249 of file kis_lzf_compression.cpp.

250{
251}

Member Function Documentation

◆ compress()

qint32 KisLzfCompression::compress ( const quint8 * input,
qint32 inputLength,
quint8 * output,
qint32 outputLength )
overridevirtual

Compresses input buffer into output buffer. WARNING: Be careful, output buffer must be at least outputBufferSize(inputLength) size!

Parameters
inputthe input
inputLengththe input length
outputthe output
outputLengthis not used!
Returns
number of bytes written to the output buffer and 0 if error occurred.
See also
outputBufferSize()

Implements KisAbstractCompression.

Definition at line 253 of file kis_lzf_compression.cpp.

254{
255 return lzff_compress(input, inputLength, output, outputLength);
256}
int lzff_compress(const void *input, int length, void *output, int)

References lzff_compress().

◆ decompress()

qint32 KisLzfCompression::decompress ( const quint8 * input,
qint32 inputLength,
quint8 * output,
qint32 outputLength )
overridevirtual

Decompresses input buffer into output buffer. WARNING: output buffer must be able to fit the input data

Parameters
inputthe input
inputLengththe input length
outputthe output
outputLengthis not used!
Returns
number of bytes written to the output buffer and 0 if error occurred.

Implements KisAbstractCompression.

Definition at line 258 of file kis_lzf_compression.cpp.

259{
260 return lzff_decompress(input, inputLength, output, outputLength);
261}
int lzff_decompress(const void *input, int length, void *output, int maxout)

References lzff_decompress().

◆ outputBufferSize()

qint32 KisLzfCompression::outputBufferSize ( qint32 dataSize)
overridevirtual

Returns minimal allowed size of output buffer for compression

Implements KisAbstractCompression.

Definition at line 263 of file kis_lzf_compression.cpp.

264{
265 // WARNING: Copy-pasted from LZO samples, do not know how to prove it
266 return dataSize + dataSize / 16 + 64 + 3;
267}

The documentation for this class was generated from the following files: