Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_qmic_interface.h
Go to the documentation of this file.
1/*
2 * This file is part of Krita
3 *
4 * SPDX-FileCopyrightText: 2020 L. E. Segovia <amy@amyspark.me>
5 *
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
8
9#ifndef __KIS_IMAGE_INTERFACE_H
10#define __KIS_IMAGE_INTERFACE_H
11
12#include "kritaqmicinterface_export.h"
13
14#include <QDebug>
15#include <QMutex>
16#include <QObject>
17#include <QScopedPointer>
18#include <QSize>
19#include <QVector>
20
21class KisQmicApplicator;
22class KisViewManager;
23
24#define KRITA_QMIC_INTERFACE_VERSION 0x05010001
25
26struct KRITAQMICINTERFACE_EXPORT KisQMicImage {
27 QMutex m_mutex;
28 QString m_layerName;
32 float* m_data;
33
34 KisQMicImage(QString layerName, int width, int height, int spectrum = 4)
35 : m_mutex()
36 , m_layerName(layerName)
37 , m_width(width)
38 , m_height(height)
39 , m_spectrum(spectrum)
40 , m_data(new float[width * height * spectrum])
41 {
42 }
43
45 delete[] m_data;
46 }
47
48 const float* constData() const
49 {
50 return m_data;
51 }
52
53 size_t size() const
54 {
55 return m_width * m_height * m_spectrum * sizeof(float);
56 }
57};
58
59QDebug operator<<(QDebug d, const KisQMicImage &model);
60
62
63class KRITAQMICINTERFACE_EXPORT KisImageInterface : public QObject
64{
65 Q_OBJECT
66
67public:
68 KisImageInterface(KisViewManager *parent = nullptr);
70
71 QSize gmic_qt_get_image_size(int mode);
72 QVector<KisQMicImageSP> gmic_qt_get_cropped_images(int mode, QRectF &cropRect);
73 void gmic_qt_output_images(int mode, QVector<KisQMicImageSP> layers);
74 void gmic_qt_detach();
75
76private:
77 struct Private;
78 const QScopedPointer<Private> p;
79};
80
81#endif
~KisImageInterface() override
const QScopedPointer< Private > p
QDebug operator<<(QDebug d, const KisQMicImage &model)
const float * constData() const
KisQMicImage(QString layerName, int width, int height, int spectrum=4)
size_t size() const