Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_abstract_compression.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2010 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __KIS_ABSTRACT_COMPRESSION_H
8#define __KIS_ABSTRACT_COMPRESSION_H
9
10#include "kritaimage_export.h"
11#include <QtGlobal>
12
17class KRITAIMAGE_EXPORT KisAbstractCompression
18{
19public:
22
36 virtual qint32 compress(const quint8* input, qint32 inputLength, quint8* output, qint32 outputLength) = 0;
37
48 virtual qint32 decompress(const quint8* input, qint32 inputLength, quint8* output, qint32 outputLength) = 0;
49
53 virtual qint32 outputBufferSize(qint32 dataSize) = 0;
54
60 virtual void adjustForDataSize(qint32 dataSize);
61
62public:
71 static void linearizeColors(quint8 *input, quint8 *output,
72 qint32 dataSize, qint32 pixelSize);
77 static void delinearizeColors(quint8 *input, quint8 *output,
78 qint32 dataSize, qint32 pixelSize);
79};
80
81#endif /* __KIS_ABSTRACT_COMPRESSION_H */
82
virtual qint32 decompress(const quint8 *input, qint32 inputLength, quint8 *output, qint32 outputLength)=0
virtual qint32 outputBufferSize(qint32 dataSize)=0
virtual qint32 compress(const quint8 *input, qint32 inputLength, quint8 *output, qint32 outputLength)=0