image/qpixmap_raster.cpp

Switch to Source codePreprocessed file
LineSource CodeCoverage
1 -
2 -
3 -
4 -
5 -
6 -
7 -
8QPixmap qt_toRasterPixmap(const QImage &image) -
9{ -
10 QPlatformPixmap *data = -
11 new QRasterPlatformPixmap(image.depth() == 1 -
12 ? QPlatformPixmap::BitmapType -
13 : QPlatformPixmap::PixmapType); -
14 -
15 data->fromImage(image, Qt::AutoColor); -
16 -
17 return QPixmap(data);
never executed: return QPixmap(data);
0
18} -
19 -
20QPixmap qt_toRasterPixmap(const QPixmap &pixmap) -
21{ -
22 if (pixmap.isNull())
never evaluated: pixmap.isNull()
0
23 return QPixmap();
never executed: return QPixmap();
0
24 -
25 if (QPixmap(pixmap).data_ptr()->classId() == QPlatformPixmap::RasterClass)
never evaluated: QPixmap(pixmap).data_ptr()->classId() == QPlatformPixmap::RasterClass
0
26 return pixmap;
never executed: return pixmap;
0
27 -
28 return qt_toRasterPixmap(pixmap.toImage());
never executed: return qt_toRasterPixmap(pixmap.toImage());
0
29} -
30 -
31QRasterPlatformPixmap::QRasterPlatformPixmap(PixelType type) -
32 : QPlatformPixmap(type, RasterClass) -
33{ -
34}
executed: }
Execution Count:4936
4936
35 -
36QRasterPlatformPixmap::~QRasterPlatformPixmap() -
37{ -
38} -
39 -
40QPlatformPixmap *QRasterPlatformPixmap::createCompatiblePlatformPixmap() const -
41{ -
42 return new QRasterPlatformPixmap(pixelType());
executed: return new QRasterPlatformPixmap(pixelType());
Execution Count:19
19
43} -
44 -
45void QRasterPlatformPixmap::resize(int width, int height) -
46{ -
47 QImage::Format format; -
48 if (pixelType() == BitmapType)
evaluated: pixelType() == BitmapType
TRUEFALSE
yes
Evaluation Count:130
yes
Evaluation Count:764
130-764
49 format = QImage::Format_MonoLSB;
executed: format = QImage::Format_MonoLSB;
Execution Count:130
130
50 else -
51 format = QNativeImage::systemFormat();
executed: format = QNativeImage::systemFormat();
Execution Count:764
764
52 -
53 image = QImage(width, height, format); -
54 w = width; -
55 h = height; -
56 d = image.depth(); -
57 is_null = (w <= 0 || h <= 0);
evaluated: w <= 0
TRUEFALSE
yes
Evaluation Count:237
yes
Evaluation Count:657
partially evaluated: h <= 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:657
0-657
58 -
59 if (pixelType() == BitmapType && !image.isNull()) {
evaluated: pixelType() == BitmapType
TRUEFALSE
yes
Evaluation Count:130
yes
Evaluation Count:764
evaluated: !image.isNull()
TRUEFALSE
yes
Evaluation Count:17
yes
Evaluation Count:113
17-764
60 image.setColorCount(2); -
61 image.setColor(0, QColor(Qt::color0).rgba()); -
62 image.setColor(1, QColor(Qt::color1).rgba()); -
63 }
executed: }
Execution Count:17
17
64 -
65 setSerialNumber(image.cacheKey() >> 32); -
66}
executed: }
Execution Count:894
894
67 -
68bool QRasterPlatformPixmap::fromData(const uchar *buffer, uint len, const char *format, -
69 Qt::ImageConversionFlags flags) -
70{ -
71 QByteArray a = QByteArray::fromRawData(reinterpret_cast<const char *>(buffer), len); -
72 QBuffer b(&a); -
73 b.open(QIODevice::ReadOnly); -
74 QImage image = QImageReader(&b, format).read(); -
75 if (image.isNull())
partially evaluated: image.isNull()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:18
0-18
76 return false;
never executed: return false;
0
77 -
78 createPixmapForImage(image, flags, true); -
79 return !isNull();
executed: return !isNull();
Execution Count:18
18
80} -
81 -
82void QRasterPlatformPixmap::fromImage(const QImage &sourceImage, -
83 Qt::ImageConversionFlags flags) -
84{ -
85 (void)flags;; -
86 QImage image = sourceImage; -
87 createPixmapForImage(image, flags, false); -
88}
executed: }
Execution Count:4191
4191
89 -
90void QRasterPlatformPixmap::fromImageReader(QImageReader *imageReader, -
91 Qt::ImageConversionFlags flags) -
92{ -
93 (void)flags;; -
94 QImage image = imageReader->read(); -
95 if (image.isNull())
partially evaluated: image.isNull()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
96 return;
never executed: return;
0
97 -
98 createPixmapForImage(image, flags, true); -
99}
executed: }
Execution Count:15
15
100 -
101 -
102extern void qt_scrollRectInImage(QImage &img, const QRect &rect, const QPoint &offset); -
103 -
104void QRasterPlatformPixmap::copy(const QPlatformPixmap *data, const QRect &rect) -
105{ -
106 fromImage(data->toImage(rect).copy(), Qt::NoOpaqueDetection); -
107}
executed: }
Execution Count:9
9
108 -
109bool QRasterPlatformPixmap::scroll(int dx, int dy, const QRect &rect) -
110{ -
111 if (!image.isNull())
partially evaluated: !image.isNull()
TRUEFALSE
yes
Evaluation Count:12
no
Evaluation Count:0
0-12
112 qt_scrollRectInImage(image, rect, QPoint(dx, dy));
executed: qt_scrollRectInImage(image, rect, QPoint(dx, dy));
Execution Count:12
12
113 return true;
executed: return true;
Execution Count:12
12
114} -
115 -
116void QRasterPlatformPixmap::fill(const QColor &color) -
117{ -
118 uint pixel; -
119 -
120 if (image.depth() == 1) {
evaluated: image.depth() == 1
TRUEFALSE
yes
Evaluation Count:14
yes
Evaluation Count:349
14-349
121 int gray = qGray(color.rgba()); -
122 -
123 if (qAbs(qGray(image.color(0)) - gray) < qAbs(qGray(image.color(1)) - gray))
evaluated: qAbs(qGray(image.color(0)) - gray) < qAbs(qGray(image.color(1)) - gray)
TRUEFALSE
yes
Evaluation Count:8
yes
Evaluation Count:6
6-8
124 pixel = 0;
executed: pixel = 0;
Execution Count:8
8
125 else -
126 pixel = 1;
executed: pixel = 1;
Execution Count:6
6
127 } else if (image.depth() >= 15) {
partially evaluated: image.depth() >= 15
TRUEFALSE
yes
Evaluation Count:349
no
Evaluation Count:0
0-349
128 int alpha = color.alpha(); -
129 if (alpha != 255) {
evaluated: alpha != 255
TRUEFALSE
yes
Evaluation Count:78
yes
Evaluation Count:271
78-271
130 if (!image.hasAlphaChannel()) {
partially evaluated: !image.hasAlphaChannel()
TRUEFALSE
yes
Evaluation Count:78
no
Evaluation Count:0
0-78
131 QImage::Format toFormat; -
132 toFormat = QImage::Format_ARGB32_Premultiplied; -
133 -
134 if (!image.isNull() && qt_depthForFormat(image.format()) == qt_depthForFormat(toFormat)) {
partially evaluated: !image.isNull()
TRUEFALSE
yes
Evaluation Count:78
no
Evaluation Count:0
partially evaluated: qt_depthForFormat(image.format()) == qt_depthForFormat(toFormat)
TRUEFALSE
yes
Evaluation Count:78
no
Evaluation Count:0
0-78
135 image.detach(); -
136 image.d->format = toFormat; -
137 } else {
executed: }
Execution Count:78
78
138 image = QImage(image.width(), image.height(), toFormat); -
139 }
never executed: }
0
140 } -
141 }
executed: }
Execution Count:78
78
142 pixel = PREMUL(color.rgba()); -
143 const QPixelLayout *layout = &qPixelLayouts[image.format()]; -
144 layout->convertFromARGB32PM(&pixel, &pixel, 1, layout, 0); -
145 } else {
executed: }
Execution Count:349
349
146 pixel = 0; -
147 -
148 }
never executed: }
0
149 -
150 image.fill(pixel); -
151}
executed: }
Execution Count:363
363
152 -
153bool QRasterPlatformPixmap::hasAlphaChannel() const -
154{ -
155 return image.hasAlphaChannel();
executed: return image.hasAlphaChannel();
Execution Count:89
89
156} -
157 -
158QImage QRasterPlatformPixmap::toImage() const -
159{ -
160 if (!image.isNull()) {
partially evaluated: !image.isNull()
TRUEFALSE
yes
Evaluation Count:2025
no
Evaluation Count:0
0-2025
161 QImageData *data = const_cast<QImage &>(image).data_ptr(); -
162 if (data->paintEngine && data->paintEngine->isActive()
evaluated: data->paintEngine
TRUEFALSE
yes
Evaluation Count:253
yes
Evaluation Count:1772
evaluated: data->paintEngine->isActive()
TRUEFALSE
yes
Evaluation Count:7
yes
Evaluation Count:246
7-1772
163 && data->paintEngine->paintDevice() == &image)
partially evaluated: data->paintEngine->paintDevice() == &image
TRUEFALSE
yes
Evaluation Count:7
no
Evaluation Count:0
0-7
164 { -
165 return image.copy();
executed: return image.copy();
Execution Count:7
7
166 } -
167 }
executed: }
Execution Count:2018
2018
168 -
169 return image;
executed: return image;
Execution Count:2018
2018
170} -
171 -
172QImage QRasterPlatformPixmap::toImage(const QRect &rect) const -
173{ -
174 if (rect.isNull())
partially evaluated: rect.isNull()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
0-9
175 return image;
never executed: return image;
0
176 -
177 QRect clipped = rect.intersected(QRect(0, 0, w, h)); -
178 if (d % 8 == 0)
evaluated: d % 8 == 0
TRUEFALSE
yes
Evaluation Count:8
yes
Evaluation Count:1
1-8
179 return QImage(image.scanLine(clipped.y()) + clipped.x() * (d / 8), 8
180 clipped.width(), clipped.height(), 8
181 image.bytesPerLine(), image.format());
executed: return QImage(image.scanLine(clipped.y()) + clipped.x() * (d / 8), clipped.width(), clipped.height(), image.bytesPerLine(), image.format());
Execution Count:8
8
182 else -
183 return image.copy(clipped);
executed: return image.copy(clipped);
Execution Count:1
1
184} -
185 -
186QPaintEngine* QRasterPlatformPixmap::paintEngine() const -
187{ -
188 return image.paintEngine();
executed: return image.paintEngine();
Execution Count:1899
1899
189} -
190 -
191int QRasterPlatformPixmap::metric(QPaintDevice::PaintDeviceMetric metric) const -
192{ -
193 QImageData *d = image.d; -
194 if (!d)
partially evaluated: !d
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1916
0-1916
195 return 0;
never executed: return 0;
0
196 -
197 -
198 switch (metric) { -
199 case QPaintDevice::PdmWidth: -
200 return w;
executed: return w;
Execution Count:469
469
201 case QPaintDevice::PdmHeight: -
202 return h;
executed: return h;
Execution Count:469
469
203 case QPaintDevice::PdmWidthMM: -
204 return qRound(d->width * 25.4 / qt_defaultDpiX());
never executed: return qRound(d->width * 25.4 / qt_defaultDpiX());
0
205 case QPaintDevice::PdmHeightMM: -
206 return qRound(d->height * 25.4 / qt_defaultDpiY());
never executed: return qRound(d->height * 25.4 / qt_defaultDpiY());
0
207 case QPaintDevice::PdmNumColors: -
208 return d->colortable.size();
never executed: return d->colortable.size();
0
209 case QPaintDevice::PdmDepth: -
210 return this->d;
never executed: return this->d;
0
211 case QPaintDevice::PdmDpiX: -
212 return qt_defaultDpiX();
executed: return qt_defaultDpiX();
Execution Count:6
6
213 case QPaintDevice::PdmPhysicalDpiX: -
214 return qt_defaultDpiX() * image.devicePixelRatio();
never executed: return qt_defaultDpiX() * image.devicePixelRatio();
0
215 case QPaintDevice::PdmDpiY: -
216 return qt_defaultDpiX();
executed: return qt_defaultDpiX();
Execution Count:972
972
217 case QPaintDevice::PdmPhysicalDpiY: -
218 return qt_defaultDpiY() * image.devicePixelRatio();
never executed: return qt_defaultDpiY() * image.devicePixelRatio();
0
219 default: -
220 QMessageLogger("image/qpixmap_raster.cpp", 284, __PRETTY_FUNCTION__).warning("QRasterPlatformPixmap::metric(): Unhandled metric type %d", metric); -
221 break;
never executed: break;
0
222 } -
223 -
224 return 0;
never executed: return 0;
0
225} -
226 -
227void QRasterPlatformPixmap::createPixmapForImage(QImage &sourceImage, Qt::ImageConversionFlags flags, bool inPlace) -
228{ -
229 QImage::Format format; -
230 if (flags & Qt::NoFormatConversion)
partially evaluated: flags & Qt::NoFormatConversion
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4224
0-4224
231 format = sourceImage.format();
never executed: format = sourceImage.format();
0
232 else -
233 if (pixelType() == BitmapType) {
evaluated: pixelType() == BitmapType
TRUEFALSE
yes
Evaluation Count:212
yes
Evaluation Count:4012
212-4012
234 format = QImage::Format_MonoLSB; -
235 } else {
executed: }
Execution Count:212
212
236 if (sourceImage.depth() == 1) {
evaluated: sourceImage.depth() == 1
TRUEFALSE
yes
Evaluation Count:4
yes
Evaluation Count:4008
4-4008
237 format = sourceImage.hasAlphaChannel()
partially evaluated: sourceImage.hasAlphaChannel()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
238 ? QImage::Format_ARGB32_Premultiplied -
239 : QImage::Format_RGB32; -
240 } else {
executed: }
Execution Count:4
4
241 QImage::Format opaqueFormat = QNativeImage::systemFormat(); -
242 QImage::Format alphaFormat = QImage::Format_ARGB32_Premultiplied; -
243 if (!sourceImage.hasAlphaChannel()) {
evaluated: !sourceImage.hasAlphaChannel()
TRUEFALSE
yes
Evaluation Count:137
yes
Evaluation Count:3871
137-3871
244 format = opaqueFormat; -
245 } else if ((flags & Qt::NoOpaqueDetection) == 0
executed: }
Execution Count:137
partially evaluated: (flags & Qt::NoOpaqueDetection) == 0
TRUEFALSE
yes
Evaluation Count:3871
no
Evaluation Count:0
0-3871
246 && !const_cast<QImage &>(sourceImage).data_ptr()->checkForAlphaPixels())
evaluated: !const_cast<QImage &>(sourceImage).data_ptr()->checkForAlphaPixels()
TRUEFALSE
yes
Evaluation Count:1104
yes
Evaluation Count:2767
1104-2767
247 { -
248 format = opaqueFormat; -
249 } else {
executed: }
Execution Count:1104
1104
250 format = alphaFormat; -
251 }
executed: }
Execution Count:2767
2767
252 } -
253 } -
254 -
255 -
256 -
257 if (format == QImage::Format_RGB32 && (sourceImage.format() == QImage::Format_ARGB32
evaluated: sourceImage.format() == QImage::Format_ARGB32
TRUEFALSE
yes
Evaluation Count:121
yes
Evaluation Count:1124
evaluated: format == QImage::Format_RGB32
TRUEFALSE
yes
Evaluation Count:1245
yes
Evaluation Count:2979
121-2979
258 || sourceImage.format() == QImage::Format_ARGB32_Premultiplied))
evaluated: sourceImage.format() == QImage::Format_ARGB32_Premultiplied
TRUEFALSE
yes
Evaluation Count:983
yes
Evaluation Count:141
141-983
259 { -
260 image = sourceImage; -
261 if (!inPlace)
evaluated: !inPlace
TRUEFALSE
yes
Evaluation Count:1101
yes
Evaluation Count:3
3-1101
262 image.detach();
executed: image.detach();
Execution Count:1101
1101
263 if (image.d)
partially evaluated: image.d
TRUEFALSE
yes
Evaluation Count:1104
no
Evaluation Count:0
0-1104
264 image.d->format = QImage::Format_RGB32;
executed: image.d->format = QImage::Format_RGB32;
Execution Count:1104
1104
265 } else if (inPlace && sourceImage.d->convertInPlace(format, flags)) {
evaluated: inPlace
TRUEFALSE
yes
Evaluation Count:30
yes
Evaluation Count:3090
evaluated: sourceImage.d->convertInPlace(format, flags)
TRUEFALSE
yes
Evaluation Count:25
yes
Evaluation Count:5
executed: }
Execution Count:1104
5-3090
266 image = sourceImage; -
267 } else {
executed: }
Execution Count:25
25
268 image = sourceImage.convertToFormat(format); -
269 }
executed: }
Execution Count:3095
3095
270 -
271 if (image.d) {
partially evaluated: image.d
TRUEFALSE
yes
Evaluation Count:4224
no
Evaluation Count:0
0-4224
272 w = image.d->width; -
273 h = image.d->height; -
274 d = image.d->depth; -
275 } else {
executed: }
Execution Count:4224
4224
276 w = h = d = 0; -
277 }
never executed: }
0
278 is_null = (w <= 0 || h <= 0);
partially evaluated: w <= 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4224
partially evaluated: h <= 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4224
0-4224
279 -
280 image.d->devicePixelRatio = sourceImage.devicePixelRatio(); -
281 setSerialNumber(image.cacheKey() >> 32); -
282}
executed: }
Execution Count:4224
4224
283 -
284QImage* QRasterPlatformPixmap::buffer() -
285{ -
286 return &image;
executed: return &image;
Execution Count:799
799
287} -
288 -
289qreal QRasterPlatformPixmap::devicePixelRatio() const -
290{ -
291 return image.devicePixelRatio();
executed: return image.devicePixelRatio();
Execution Count:4370
4370
292} -
293 -
294void QRasterPlatformPixmap::setDevicePixelRatio(qreal scaleFactor) -
295{ -
296 image.setDevicePixelRatio(scaleFactor); -
297}
executed: }
Execution Count:8
8
298 -
299 -
300 -
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial