Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qwindowsdirect2dplatformpixmap.cpp
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
include
"qwindowsdirect2dcontext.h"
6
#
include
"qwindowsdirect2dpaintdevice.h"
7
#
include
"qwindowsdirect2dplatformpixmap.h"
8
#
include
"qwindowsdirect2dbitmap.h"
9
#
include
"qwindowsdirect2dhelpers.h"
10
11
#
include
<
QtGui
/
qpainter
.
h
>
12
#
include
<
QtGui
/
qimage
.
h
>
13
#
include
<
QtGui
/
qpaintdevice
.
h
>
14
#
include
<
QtGui
/
qpaintengine
.
h
>
15
16
QT_BEGIN_NAMESPACE
17
18
class
QWindowsDirect2DPlatformPixmapPrivate
19
{
20
public
:
21
QWindowsDirect2DPlatformPixmapPrivate
()
22
:
owns_bitmap
(
true
)
23
,
bitmap
(
new
QWindowsDirect2DBitmap
)
24
,
device
(
new
QWindowsDirect2DPaintDevice
(
bitmap
,
QInternal
::
Pixmap
))
25
{}
26
27
QWindowsDirect2DPlatformPixmapPrivate
(
QWindowsDirect2DBitmap
*bitmap,
28
QWindowsDirect2DPaintEngine::Flags flags)
29
:
bitmap
(bitmap)
30
,
device
(
new
QWindowsDirect2DPaintDevice
(
bitmap
,
QInternal
::
Pixmap
,
flags
))
31
{}
32
33
~
QWindowsDirect2DPlatformPixmapPrivate
()
34
{
35
if
(
owns_bitmap
)
36
delete
bitmap
;
37
}
38
39
bool
owns_bitmap
=
false
;
40
QWindowsDirect2DBitmap
*
bitmap
;
41
QScopedPointer
<
QWindowsDirect2DPaintDevice
>
device
;
42
qreal
devicePixelRatio
= 1.0;
43
};
44
45
static
int
qt_d2dpixmap_serno
= 0;
46
47
QWindowsDirect2DPlatformPixmap
::QWindowsDirect2DPlatformPixmap(PixelType pixelType)
48
: QPlatformPixmap(pixelType, Direct2DClass)
49
, d_ptr(
new
QWindowsDirect2DPlatformPixmapPrivate)
50
{
51
setSerialNumber(
qt_d2dpixmap_serno
++);
52
}
53
54
QWindowsDirect2DPlatformPixmap
::
QWindowsDirect2DPlatformPixmap
(QPlatformPixmap::PixelType pixelType,
55
QWindowsDirect2DPaintEngine::Flags flags,
56
QWindowsDirect2DBitmap
*bitmap)
57
:
QPlatformPixmap
(
pixelType
,
Direct2DClass
)
58
,
d_ptr
(
new
QWindowsDirect2DPlatformPixmapPrivate
(
bitmap
,
flags
))
59
{
60
setSerialNumber(
qt_d2dpixmap_serno
++);
61
62
is_null =
false
;
63
w = bitmap->size().width();
64
h = bitmap->size().height();
65
this
->d = 32;
66
}
67
68
QWindowsDirect2DPlatformPixmap
::~
QWindowsDirect2DPlatformPixmap
()
69
{
70
71
}
72
73
void
QWindowsDirect2DPlatformPixmap
::
resize
(
int
width,
int
height)
74
{
75
Q_D(QWindowsDirect2DPlatformPixmap);
76
77
if
(!d->bitmap->resize(width, height)) {
78
qWarning(
"%s: Could not resize bitmap"
,
__FUNCTION__
);
79
return
;
80
}
81
82
is_null =
false
;
83
w = width;
84
h = height;
85
this
->d = 32;
86
}
87
88
void
QWindowsDirect2DPlatformPixmap
::fromImage(
const
QImage &image,
89
Qt::ImageConversionFlags flags)
90
{
91
Q_D(QWindowsDirect2DPlatformPixmap);
92
93
if
(!d->bitmap->fromImage(image, flags)) {
94
qWarning(
"%s: Could not init from image"
,
__FUNCTION__
);
95
return
;
96
}
97
98
is_null =
false
;
99
w = image.width();
100
h = image.height();
101
this
->d = 32;
102
}
103
104
int
QWindowsDirect2DPlatformPixmap
::
metric
(QPaintDevice::PaintDeviceMetric metric)
const
105
{
106
Q_D(
const
QWindowsDirect2DPlatformPixmap);
107
return
qt_paint_device_metric(d->device.data(), metric);
108
}
109
110
void
QWindowsDirect2DPlatformPixmap
::fill(
const
QColor &color)
111
{
112
Q_D(QWindowsDirect2DPlatformPixmap);
113
d->bitmap->fill(color);
114
}
115
116
bool
QWindowsDirect2DPlatformPixmap
::
hasAlphaChannel
()
const
117
{
118
return
true
;
119
}
120
121
QImage
QWindowsDirect2DPlatformPixmap
::
toImage
()
const
122
{
123
return
toImage(QRect());
124
}
125
126
QImage
QWindowsDirect2DPlatformPixmap
::
toImage
(
const
QRect &rect)
const
127
{
128
Q_D(
const
QWindowsDirect2DPlatformPixmap);
129
130
QWindowsDirect2DPaintEngineSuspender
suspender(
static_cast
<QWindowsDirect2DPaintEngine *>(d->device->paintEngine()));
131
return
d->bitmap->toImage(rect);
132
}
133
134
QPaintEngine
*
QWindowsDirect2DPlatformPixmap
::
paintEngine
()
const
135
{
136
Q_D(
const
QWindowsDirect2DPlatformPixmap);
137
return
d->device->paintEngine();
138
}
139
140
qreal
QWindowsDirect2DPlatformPixmap
::
devicePixelRatio
()
const
141
{
142
Q_D(
const
QWindowsDirect2DPlatformPixmap);
143
return
d->devicePixelRatio;
144
}
145
146
void
QWindowsDirect2DPlatformPixmap
::
setDevicePixelRatio
(qreal scaleFactor)
147
{
148
Q_D(QWindowsDirect2DPlatformPixmap);
149
d->devicePixelRatio = scaleFactor;
150
}
151
152
QWindowsDirect2DBitmap
*
QWindowsDirect2DPlatformPixmap
::
bitmap
()
const
153
{
154
Q_D(
const
QWindowsDirect2DPlatformPixmap);
155
return
d->bitmap;
156
}
157
158
QT_END_NAMESPACE
QWindowsDirect2DBitmap
Definition
qwindowsdirect2dbitmap.h:25
QWindowsDirect2DPaintEngineSuspender
Definition
qwindowsdirect2dpaintengine.h:95
QWindowsDirect2DPlatformPixmapPrivate
Definition
qwindowsdirect2dplatformpixmap.cpp:19
QWindowsDirect2DPlatformPixmapPrivate::QWindowsDirect2DPlatformPixmapPrivate
QWindowsDirect2DPlatformPixmapPrivate(QWindowsDirect2DBitmap *bitmap, QWindowsDirect2DPaintEngine::Flags flags)
Definition
qwindowsdirect2dplatformpixmap.cpp:27
QWindowsDirect2DPlatformPixmapPrivate::bitmap
QWindowsDirect2DBitmap * bitmap
Definition
qwindowsdirect2dplatformpixmap.cpp:40
QWindowsDirect2DPlatformPixmapPrivate::QWindowsDirect2DPlatformPixmapPrivate
QWindowsDirect2DPlatformPixmapPrivate()
Definition
qwindowsdirect2dplatformpixmap.cpp:21
QWindowsDirect2DPlatformPixmapPrivate::~QWindowsDirect2DPlatformPixmapPrivate
~QWindowsDirect2DPlatformPixmapPrivate()
Definition
qwindowsdirect2dplatformpixmap.cpp:33
QWindowsDirect2DPlatformPixmapPrivate::devicePixelRatio
qreal devicePixelRatio
Definition
qwindowsdirect2dplatformpixmap.cpp:42
QWindowsDirect2DPlatformPixmapPrivate::owns_bitmap
bool owns_bitmap
Definition
qwindowsdirect2dplatformpixmap.cpp:39
QWindowsDirect2DPlatformPixmapPrivate::device
QScopedPointer< QWindowsDirect2DPaintDevice > device
Definition
qwindowsdirect2dplatformpixmap.cpp:41
QWindowsDirect2DPlatformPixmap
Definition
qwindowsdirect2dplatformpixmap.h:18
QWindowsDirect2DPlatformPixmap::toImage
QImage toImage(const QRect &rect) const override
Definition
qwindowsdirect2dplatformpixmap.cpp:126
QWindowsDirect2DPlatformPixmap::resize
void resize(int width, int height) override
Definition
qwindowsdirect2dplatformpixmap.cpp:73
QWindowsDirect2DPlatformPixmap::bitmap
QWindowsDirect2DBitmap * bitmap() const
Definition
qwindowsdirect2dplatformpixmap.cpp:152
QWindowsDirect2DPlatformPixmap::toImage
QImage toImage() const override
Definition
qwindowsdirect2dplatformpixmap.cpp:121
QWindowsDirect2DPlatformPixmap::hasAlphaChannel
bool hasAlphaChannel() const override
Definition
qwindowsdirect2dplatformpixmap.cpp:116
QWindowsDirect2DPlatformPixmap::QWindowsDirect2DPlatformPixmap
QWindowsDirect2DPlatformPixmap(PixelType pixelType, QWindowsDirect2DPaintEngine::Flags flags, QWindowsDirect2DBitmap *bitmap)
Definition
qwindowsdirect2dplatformpixmap.cpp:54
QWindowsDirect2DPlatformPixmap::devicePixelRatio
qreal devicePixelRatio() const override
Definition
qwindowsdirect2dplatformpixmap.cpp:140
QWindowsDirect2DPlatformPixmap::setDevicePixelRatio
void setDevicePixelRatio(qreal scaleFactor) override
Definition
qwindowsdirect2dplatformpixmap.cpp:146
QWindowsDirect2DPlatformPixmap::~QWindowsDirect2DPlatformPixmap
~QWindowsDirect2DPlatformPixmap()
Definition
qwindowsdirect2dplatformpixmap.cpp:68
QWindowsDirect2DPlatformPixmap::paintEngine
QPaintEngine * paintEngine() const override
Definition
qwindowsdirect2dplatformpixmap.cpp:134
QWindowsDirect2DPlatformPixmap::metric
int metric(QPaintDevice::PaintDeviceMetric metric) const override
Definition
qwindowsdirect2dplatformpixmap.cpp:104
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qt_d2dpixmap_serno
static int qt_d2dpixmap_serno
Definition
qwindowsdirect2dplatformpixmap.cpp:45
qtbase
src
plugins
platforms
direct2d
qwindowsdirect2dplatformpixmap.cpp
Generated on
for Qt by
1.18.0