acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
image.h
1
//
2
// Created by camilo on 2024-09-27 18:10 <3ThomasBorregaardSorensen!!
3
//
4
#pragma once
5
6
7
#include "acme/graphics/image/pixmap.h"
8
9
#include <QPainter>
10
11
12
class
qimage_paintable_pixmap :
13
public
pixmap
14
{
15
protected
:
16
17
18
QImage * m_pqimage;
19
QImage m_qimageArgb32;
20
QImage * m_pqimageArgb32;
21
22
bool
m_bConvert;
23
24
25
public
:
26
27
qimage_paintable_pixmap(QImage * pqimage)
28
{
29
30
m_pqimage = pqimage;
31
32
m_bConvert = pqimage->format() != QImage::Format_ARGB32_Premultiplied;
33
34
if
(m_bConvert)
35
{
36
37
m_qimageArgb32 = pqimage->convertToFormat(QImage::Format_ARGB32_Premultiplied);
38
39
m_pqimageArgb32 = &m_qimageArgb32;
40
41
}
42
else
43
{
44
45
m_pqimageArgb32 = m_pqimage;
46
47
}
48
49
::pixmap
&
pixmap
= *
this
;
50
51
pixmap
.m_pimage32Raw = (
image32_t
*) m_pqimageArgb32->bits();
52
pixmap
.m_sizeRaw.cx = m_pqimageArgb32->width();
53
pixmap
.m_sizeRaw.cy = m_pqimageArgb32->height();
54
pixmap
.m_iScan = m_pqimageArgb32->bytesPerLine();
55
56
map({API_CHANGED_ARGUMENT, (::i32)m_pqimageArgb32->width(), (::i32)m_pqimageArgb32->height()});
57
58
}
59
60
61
~qimage_paintable_pixmap()
62
{
63
64
if
(m_bConvert)
65
{
66
67
auto
qimage = m_pqimageArgb32->convertToFormat(m_pqimage->format());
68
69
QPainter painter(m_pqimage);
70
71
painter.drawImage(0, 0, qimage);
// Paint at position (0, 0)
72
73
}
74
75
}
76
77
78
};
79
80
image32_t
Definition
image32.h:30
pixmap
Definition
pixmap.h:25
integrate
qt
image.h
Generated by
1.17.0