Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
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
10
11#include <QtGui/qpainter.h>
12#include <QtGui/qimage.h>
13#include <QtGui/qpaintdevice.h>
14#include <QtGui/qpaintengine.h>
15
17
44
45static int qt_d2dpixmap_serno = 0;
46
47QWindowsDirect2DPlatformPixmap::QWindowsDirect2DPlatformPixmap(PixelType pixelType)
48 : QPlatformPixmap(pixelType, Direct2DClass)
49 , d_ptr(new QWindowsDirect2DPlatformPixmapPrivate)
50{
51 setSerialNumber(qt_d2dpixmap_serno++);
52}
53
55 QWindowsDirect2DPaintEngine::Flags 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
72
73void 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
88void 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
104int QWindowsDirect2DPlatformPixmap::metric(QPaintDevice::PaintDeviceMetric metric) const
105{
106 Q_D(const QWindowsDirect2DPlatformPixmap);
107 return qt_paint_device_metric(d->device.data(), metric);
108}
109
110void QWindowsDirect2DPlatformPixmap::fill(const QColor &color)
111{
112 Q_D(QWindowsDirect2DPlatformPixmap);
113 d->bitmap->fill(color);
114}
115
117{
118 return true;
119}
120
122{
123 return toImage(QRect());
124}
125
126QImage 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
135{
136 Q_D(const QWindowsDirect2DPlatformPixmap);
137 return d->device->paintEngine();
138}
139
141{
142 Q_D(const QWindowsDirect2DPlatformPixmap);
143 return d->devicePixelRatio;
144}
145
147{
148 Q_D(QWindowsDirect2DPlatformPixmap);
149 d->devicePixelRatio = scaleFactor;
150}
151
153{
154 Q_D(const QWindowsDirect2DPlatformPixmap);
155 return d->bitmap;
156}
157
158QT_END_NAMESPACE
QWindowsDirect2DPlatformPixmapPrivate(QWindowsDirect2DBitmap *bitmap, QWindowsDirect2DPaintEngine::Flags flags)
QScopedPointer< QWindowsDirect2DPaintDevice > device
QImage toImage(const QRect &rect) const override
void resize(int width, int height) override
QWindowsDirect2DPlatformPixmap(PixelType pixelType, QWindowsDirect2DPaintEngine::Flags flags, QWindowsDirect2DBitmap *bitmap)
void setDevicePixelRatio(qreal scaleFactor) override
QPaintEngine * paintEngine() const override
int metric(QPaintDevice::PaintDeviceMetric metric) const override
Combined button and popup list for selecting options.
static int qt_d2dpixmap_serno