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
9
10#include <QtGui/qpainter.h>
11#include <QtGui/qimage.h>
12#include <QtGui/qpaintdevice.h>
13#include <QtGui/qpaintengine.h>
14
16
43
44static int qt_d2dpixmap_serno = 0;
45
46QWindowsDirect2DPlatformPixmap::QWindowsDirect2DPlatformPixmap(PixelType pixelType)
47 : QPlatformPixmap(pixelType, Direct2DClass)
48 , d_ptr(new QWindowsDirect2DPlatformPixmapPrivate)
49{
50 setSerialNumber(qt_d2dpixmap_serno++);
51}
52
54 QWindowsDirect2DPaintEngine::Flags flags,
58{
59 setSerialNumber(qt_d2dpixmap_serno++);
60
61 is_null = false;
62 w = bitmap->size().width();
63 h = bitmap->size().height();
64 this->d = 32;
65}
66
71
72void QWindowsDirect2DPlatformPixmap::resize(int width, int height)
73{
74 Q_D(QWindowsDirect2DPlatformPixmap);
75
76 if (!d->bitmap->resize(width, height)) {
77 qWarning("%s: Could not resize bitmap", __FUNCTION__);
78 return;
79 }
80
81 is_null = false;
82 w = width;
83 h = height;
84 this->d = 32;
85}
86
87void QWindowsDirect2DPlatformPixmap::fromImage(const QImage &image,
88 Qt::ImageConversionFlags flags)
89{
90 Q_D(QWindowsDirect2DPlatformPixmap);
91
92 if (!d->bitmap->fromImage(image, flags)) {
93 qWarning("%s: Could not init from image", __FUNCTION__);
94 return;
95 }
96
97 is_null = false;
98 w = image.width();
99 h = image.height();
100 this->d = 32;
101}
102
103int QWindowsDirect2DPlatformPixmap::metric(QPaintDevice::PaintDeviceMetric metric) const
104{
105 Q_D(const QWindowsDirect2DPlatformPixmap);
106 return qt_paint_device_metric(d->device.data(), metric);
107}
108
109void QWindowsDirect2DPlatformPixmap::fill(const QColor &color)
110{
111 Q_D(QWindowsDirect2DPlatformPixmap);
112 d->bitmap->fill(color);
113}
114
116{
117 return true;
118}
119
121{
122 return toImage(QRect());
123}
124
125QImage QWindowsDirect2DPlatformPixmap::toImage(const QRect &rect) const
126{
127 Q_D(const QWindowsDirect2DPlatformPixmap);
128
129 QWindowsDirect2DPaintEngineSuspender suspender(static_cast<QWindowsDirect2DPaintEngine *>(d->device->paintEngine()));
130 return d->bitmap->toImage(rect);
131}
132
134{
135 Q_D(const QWindowsDirect2DPlatformPixmap);
136 return d->device->paintEngine();
137}
138
140{
141 Q_D(const QWindowsDirect2DPlatformPixmap);
142 return d->devicePixelRatio;
143}
144
146{
147 Q_D(QWindowsDirect2DPlatformPixmap);
148 d->devicePixelRatio = scaleFactor;
149}
150
152{
153 Q_D(const QWindowsDirect2DPlatformPixmap);
154 return d->bitmap;
155}
156
157QT_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
static int qt_d2dpixmap_serno