qcompositionfunctions.cpp

Absolute File Name:/home/qt/qt5_coco/qt5/qtbase/src/gui/painting/qcompositionfunctions.cpp
Source codeSwitch to Preprocessed file
LineSourceCount
1/****************************************************************************-
2**-
3** Copyright (C) 2015 The Qt Company Ltd.-
4** Contact: http://www.qt.io/licensing/-
5**-
6** This file is part of the QtGui module of the Qt Toolkit.-
7**-
8** $QT_BEGIN_LICENSE:LGPL21$-
9** Commercial License Usage-
10** Licensees holding valid commercial Qt licenses may use this file in-
11** accordance with the commercial license agreement provided with the-
12** Software or, alternatively, in accordance with the terms contained in-
13** a written agreement between you and The Qt Company. For licensing terms-
14** and conditions see http://www.qt.io/terms-conditions. For further-
15** information use the contact form at http://www.qt.io/contact-us.-
16**-
17** GNU Lesser General Public License Usage-
18** Alternatively, this file may be used under the terms of the GNU Lesser-
19** General Public License version 2.1 or version 3 as published by the Free-
20** Software Foundation and appearing in the file LICENSE.LGPLv21 and-
21** LICENSE.LGPLv3 included in the packaging of this file. Please review the-
22** following information to ensure the GNU Lesser General Public License-
23** requirements will be met: https://www.gnu.org/licenses/lgpl.html and-
24** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.-
25**-
26** As a special exception, The Qt Company gives you certain additional-
27** rights. These rights are described in The Qt Company LGPL Exception-
28** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.-
29**-
30** $QT_END_LICENSE$-
31**-
32****************************************************************************/-
33-
34#include <qglobal.h>-
35#include <private/qdrawhelper_p.h>-
36#include <private/qrgba64_p.h>-
37-
38QT_BEGIN_NAMESPACE-
39-
40# define PRELOAD_INIT(x)-
41# define PRELOAD_INIT2(x,y)-
42# define PRELOAD_COND(x)-
43# define PRELOAD_COND2(x,y)-
44-
45/* The constant alpha factor describes an alpha factor that gets applied-
46 to the result of the composition operation combining it with the destination.-
47-
48 The intent is that if const_alpha == 0. we get back dest, and if const_alpha == 1.-
49 we get the unmodified operation-
50-
51 result = src op dest-
52 dest = result * const_alpha + dest * (1. - const_alpha)-
53-
54 This means that in the comments below, the first line is the const_alpha==255 case, the-
55 second line the general one.-
56-
57 In the lines below:-
58 s == src, sa == alpha(src), sia = 1 - alpha(src)-
59 d == dest, da == alpha(dest), dia = 1 - alpha(dest)-
60 ca = const_alpha, cia = 1 - const_alpha-
61-
62 The methods exist in two variants. One where we have a constant source, the other-
63 where the source is an array of pixels.-
64*/-
65-
66/*-
67 result = 0-
68 d = d * cia-
69*/-
70#define comp_func_Clear_impl(dest, length, const_alpha)\-
71{\-
72 if (const_alpha == 255) {\-
73 QT_MEMFILL_UINT(dest, length, 0);\-
74 } else {\-
75 int ialpha = 255 - const_alpha;\-
76 PRELOAD_INIT(dest)\-
77 for (int i = 0; i < length; ++i) {\-
78 PRELOAD_COND(dest)\-
79 dest[i] = BYTE_MUL(dest[i], ialpha);\-
80 }\-
81 }\-
82}-
83-
84void QT_FASTCALL comp_func_solid_Clear(uint *dest, int length, uint, uint const_alpha)-
85{-
86 comp_func_Clear_impl(dest, length, const_alpha);
never executed: end of block
never executed: end of block
never executed: end of block
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
87}-
88-
89void QT_FASTCALL comp_func_solid_Clear_rgb64(QRgba64 *dest, int length, QRgba64, uint const_alpha)-
90{-
91 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
92 qt_memfill64((quint64*)dest, 0, length);
never executed: qt_memfill64((quint64*)dest, 0, length);
0
93 else {-
94 int ialpha = 255 - const_alpha;-
95 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
96 dest[i] = multiplyAlpha255(dest[i], ialpha);-
97 }
never executed: end of block
0
98 }
never executed: end of block
0
99}-
100-
101void QT_FASTCALL comp_func_Clear(uint *dest, const uint *, int length, uint const_alpha)-
102{-
103 comp_func_Clear_impl(dest, length, const_alpha);
never executed: end of block
never executed: end of block
never executed: end of block
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
104}-
105-
106void QT_FASTCALL comp_func_Clear_rgb64(QRgba64 *dest, const QRgba64 *, int length, uint const_alpha)-
107{-
108 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
109 qt_memfill64((quint64*)dest, 0, length);
never executed: qt_memfill64((quint64*)dest, 0, length);
0
110 else {-
111 int ialpha = 255 - const_alpha;-
112 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
113 dest[i] = multiplyAlpha255(dest[i], ialpha);-
114 }
never executed: end of block
0
115 }
never executed: end of block
0
116}-
117-
118/*-
119 result = s-
120 dest = s * ca + d * cia-
121*/-
122void QT_FASTCALL comp_func_solid_Source(uint *dest, int length, uint color, uint const_alpha)-
123{-
124 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
125 QT_MEMFILL_UINT(dest, length, color);-
126 } else {
never executed: end of block
0
127 int ialpha = 255 - const_alpha;-
128 color = BYTE_MUL(color, const_alpha);-
129 PRELOAD_INIT(dest)-
130 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
131 PRELOAD_COND(dest)-
132 dest[i] = color + BYTE_MUL(dest[i], ialpha);-
133 }
never executed: end of block
0
134 }
never executed: end of block
0
135}-
136-
137void QT_FASTCALL comp_func_solid_Source_rgb64(QRgba64 *dest, int length, QRgba64 color, uint const_alpha)-
138{-
139 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
140 qt_memfill64((quint64*)dest, color, length);
never executed: qt_memfill64((quint64*)dest, color, length);
0
141 else {-
142 int ialpha = 255 - const_alpha;-
143 color = multiplyAlpha255(color, const_alpha);-
144 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
145 dest[i] = color + multiplyAlpha255(dest[i], ialpha);-
146 }
never executed: end of block
0
147 }
never executed: end of block
0
148}-
149-
150void QT_FASTCALL comp_func_Source(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
151{-
152 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
153 ::memcpy(dest, src, length * sizeof(uint));-
154 } else {
never executed: end of block
0
155 int ialpha = 255 - const_alpha;-
156 PRELOAD_INIT2(dest, src)-
157 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
158 PRELOAD_COND2(dest, src)-
159 dest[i] = INTERPOLATE_PIXEL_255(src[i], const_alpha, dest[i], ialpha);-
160 }
never executed: end of block
0
161 }
never executed: end of block
0
162}-
163-
164void QT_FASTCALL comp_func_Source_rgb64(QRgba64 *Q_DECL_RESTRICT dest, const QRgba64 *Q_DECL_RESTRICT src, int length, uint const_alpha)-
165{-
166 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
167 ::memcpy(dest, src, length * sizeof(quint64));
never executed: ::memcpy(dest, src, length * sizeof(quint64));
0
168 else {-
169 int ialpha = 255 - const_alpha;-
170 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
171 dest[i] = interpolate255(src[i], const_alpha, dest[i], ialpha);-
172 }
never executed: end of block
0
173 }
never executed: end of block
0
174}-
175-
176void QT_FASTCALL comp_func_solid_Destination(uint *, int, uint, uint)-
177{-
178}-
179-
180void QT_FASTCALL comp_func_solid_Destination_rgb64(QRgba64 *, int, QRgba64, uint)-
181{-
182}-
183-
184void QT_FASTCALL comp_func_Destination(uint *, const uint *, int, uint)-
185{-
186}-
187-
188void QT_FASTCALL comp_func_Destination_rgb64(QRgba64 *, const QRgba64 *, int, uint)-
189{-
190}-
191-
192/*-
193 result = s + d * sia-
194 dest = (s + d * sia) * ca + d * cia-
195 = s * ca + d * (sia * ca + cia)-
196 = s * ca + d * (1 - sa*ca)-
197*/-
198void QT_FASTCALL comp_func_solid_SourceOver(uint *dest, int length, uint color, uint const_alpha)-
199{-
200 if ((const_alpha & qAlpha(color)) == 255) {
(const_alpha &...color)) == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
201 QT_MEMFILL_UINT(dest, length, color);-
202 } else {
never executed: end of block
0
203 if (const_alpha != 255)
const_alpha != 255Description
TRUEnever evaluated
FALSEnever evaluated
0
204 color = BYTE_MUL(color, const_alpha);
never executed: color = BYTE_MUL(color, const_alpha);
0
205 PRELOAD_INIT(dest)-
206 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
207 PRELOAD_COND(dest)-
208 dest[i] = color + BYTE_MUL(dest[i], qAlpha(~color));-
209 }
never executed: end of block
0
210 }
never executed: end of block
0
211}-
212-
213void QT_FASTCALL comp_func_solid_SourceOver_rgb64(QRgba64 *dest, int length, QRgba64 color, uint const_alpha)-
214{-
215 if (const_alpha == 255 && color.isOpaque()) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
color.isOpaque()Description
TRUEnever evaluated
FALSEnever evaluated
0
216 qt_memfill64((quint64*)dest, color, length);-
217 } else {
never executed: end of block
0
218 if (const_alpha != 255)
const_alpha != 255Description
TRUEnever evaluated
FALSEnever evaluated
0
219 color = multiplyAlpha255(color, const_alpha);
never executed: color = multiplyAlpha255(color, const_alpha);
0
220 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
221 dest[i] = color + multiplyAlpha65535(dest[i], 65535 - color.alpha());-
222 }
never executed: end of block
0
223 }
never executed: end of block
0
224}-
225-
226void QT_FASTCALL comp_func_SourceOver(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
227{-
228 PRELOAD_INIT2(dest, src)-
229 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
230 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
231 PRELOAD_COND2(dest, src)-
232 uint s = src[i];-
233 if (s >= 0xff000000)
s >= 0xff000000Description
TRUEnever evaluated
FALSEnever evaluated
0
234 dest[i] = s;
never executed: dest[i] = s;
0
235 else if (s != 0)
s != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
236 dest[i] = s + BYTE_MUL(dest[i], qAlpha(~s));
never executed: dest[i] = s + BYTE_MUL(dest[i], qAlpha(~s));
0
237 }
never executed: end of block
0
238 } else {
never executed: end of block
0
239 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
240 PRELOAD_COND2(dest, src)-
241 uint s = BYTE_MUL(src[i], const_alpha);-
242 dest[i] = s + BYTE_MUL(dest[i], qAlpha(~s));-
243 }
never executed: end of block
0
244 }
never executed: end of block
0
245}-
246-
247void QT_FASTCALL comp_func_SourceOver_rgb64(QRgba64 *Q_DECL_RESTRICT dest, const QRgba64 *Q_DECL_RESTRICT src, int length, uint const_alpha)-
248{-
249 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
250 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
251 QRgba64 s = src[i];-
252 if (s.isOpaque())
s.isOpaque()Description
TRUEnever evaluated
FALSEnever evaluated
0
253 dest[i] = s;
never executed: dest[i] = s;
0
254 else if (!s.isTransparent())
!s.isTransparent()Description
TRUEnever evaluated
FALSEnever evaluated
0
255 dest[i] = s + multiplyAlpha65535(dest[i], 65535 - s.alpha());
never executed: dest[i] = s + multiplyAlpha65535(dest[i], 65535 - s.alpha());
0
256 }
never executed: end of block
0
257 } else {
never executed: end of block
0
258 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
259 QRgba64 s = multiplyAlpha255(src[i], const_alpha);-
260 dest[i] = s + multiplyAlpha65535(dest[i], 65535 - s.alpha());-
261 }
never executed: end of block
0
262 }
never executed: end of block
0
263}-
264-
265/*-
266 result = d + s * dia-
267 dest = (d + s * dia) * ca + d * cia-
268 = d + s * dia * ca-
269*/-
270void QT_FASTCALL comp_func_solid_DestinationOver(uint *dest, int length, uint color, uint const_alpha)-
271{-
272 if (const_alpha != 255)
const_alpha != 255Description
TRUEnever evaluated
FALSEnever evaluated
0
273 color = BYTE_MUL(color, const_alpha);
never executed: color = BYTE_MUL(color, const_alpha);
0
274 PRELOAD_INIT(dest)-
275 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
276 PRELOAD_COND(dest)-
277 uint d = dest[i];-
278 dest[i] = d + BYTE_MUL(color, qAlpha(~d));-
279 }
never executed: end of block
0
280}
never executed: end of block
0
281-
282void QT_FASTCALL comp_func_solid_DestinationOver_rgb64(QRgba64 *dest, int length, QRgba64 color, uint const_alpha)-
283{-
284 if (const_alpha != 255)
const_alpha != 255Description
TRUEnever evaluated
FALSEnever evaluated
0
285 color = multiplyAlpha255(color, const_alpha);
never executed: color = multiplyAlpha255(color, const_alpha);
0
286 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
287 QRgba64 d = dest[i];-
288 dest[i] = d + multiplyAlpha65535(color, 65535 - d.alpha());-
289 }
never executed: end of block
0
290}
never executed: end of block
0
291-
292void QT_FASTCALL comp_func_DestinationOver(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
293{-
294 PRELOAD_INIT2(dest, src)-
295 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
296 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
297 PRELOAD_COND2(dest, src)-
298 uint d = dest[i];-
299 dest[i] = d + BYTE_MUL(src[i], qAlpha(~d));-
300 }
never executed: end of block
0
301 } else {
never executed: end of block
0
302 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
303 PRELOAD_COND2(dest, src)-
304 uint d = dest[i];-
305 uint s = BYTE_MUL(src[i], const_alpha);-
306 dest[i] = d + BYTE_MUL(s, qAlpha(~d));-
307 }
never executed: end of block
0
308 }
never executed: end of block
0
309}-
310-
311void QT_FASTCALL comp_func_DestinationOver_rgb64(QRgba64 *Q_DECL_RESTRICT dest, const QRgba64 *Q_DECL_RESTRICT src, int length, uint const_alpha)-
312{-
313 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
314 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
315 QRgba64 d = dest[i];-
316 dest[i] = d + multiplyAlpha65535(src[i], 65535 - d.alpha());-
317 }
never executed: end of block
0
318 } else {
never executed: end of block
0
319 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
320 QRgba64 d = dest[i];-
321 QRgba64 s = multiplyAlpha255(src[i], const_alpha);-
322 dest[i] = d + multiplyAlpha65535(s, 65535 - d.alpha());-
323 }
never executed: end of block
0
324 }
never executed: end of block
0
325}-
326-
327/*-
328 result = s * da-
329 dest = s * da * ca + d * cia-
330*/-
331void QT_FASTCALL comp_func_solid_SourceIn(uint *dest, int length, uint color, uint const_alpha)-
332{-
333 PRELOAD_INIT(dest)-
334 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
335 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
336 PRELOAD_COND(dest)-
337 dest[i] = BYTE_MUL(color, qAlpha(dest[i]));-
338 }
never executed: end of block
0
339 } else {
never executed: end of block
0
340 color = BYTE_MUL(color, const_alpha);-
341 uint cia = 255 - const_alpha;-
342 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
343 PRELOAD_COND(dest)-
344 uint d = dest[i];-
345 dest[i] = INTERPOLATE_PIXEL_255(color, qAlpha(d), d, cia);-
346 }
never executed: end of block
0
347 }
never executed: end of block
0
348}-
349-
350void QT_FASTCALL comp_func_solid_SourceIn_rgb64(QRgba64 *dest, int length, QRgba64 color, uint const_alpha)-
351{-
352 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
353 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
354 dest[i] = multiplyAlpha65535(color, dest[i].alpha());-
355 }
never executed: end of block
0
356 } else {
never executed: end of block
0
357 uint ca = const_alpha * 257;-
358 uint cia = 65535 - ca;-
359 color = multiplyAlpha65535(color, ca);-
360 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
361 QRgba64 d = dest[i];-
362 dest[i] = interpolate65535(color, d.alpha(), d, cia);-
363 }
never executed: end of block
0
364 }
never executed: end of block
0
365}-
366-
367void QT_FASTCALL comp_func_SourceIn(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
368{-
369 PRELOAD_INIT2(dest, src)-
370 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
371 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
372 PRELOAD_COND2(dest, src)-
373 dest[i] = BYTE_MUL(src[i], qAlpha(dest[i]));-
374 }
never executed: end of block
0
375 } else {
never executed: end of block
0
376 uint cia = 255 - const_alpha;-
377 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
378 PRELOAD_COND2(dest, src)-
379 uint d = dest[i];-
380 uint s = BYTE_MUL(src[i], const_alpha);-
381 dest[i] = INTERPOLATE_PIXEL_255(s, qAlpha(d), d, cia);-
382 }
never executed: end of block
0
383 }
never executed: end of block
0
384}-
385-
386void QT_FASTCALL comp_func_SourceIn_rgb64(QRgba64 *Q_DECL_RESTRICT dest, const QRgba64 *Q_DECL_RESTRICT src, int length, uint const_alpha)-
387{-
388 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
389 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
390 dest[i] = multiplyAlpha65535(src[i], dest[i].alpha());-
391 }
never executed: end of block
0
392 } else {
never executed: end of block
0
393 uint ca = const_alpha * 257;-
394 uint cia = 65535 - ca;-
395 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
396 QRgba64 d = dest[i];-
397 QRgba64 s = multiplyAlpha65535(src[i], ca);-
398 dest[i] = interpolate65535(s, d.alpha(), d, cia);-
399 }
never executed: end of block
0
400 }
never executed: end of block
0
401}-
402-
403/*-
404 result = d * sa-
405 dest = d * sa * ca + d * cia-
406 = d * (sa * ca + cia)-
407*/-
408void QT_FASTCALL comp_func_solid_DestinationIn(uint *dest, int length, uint color, uint const_alpha)-
409{-
410 uint a = qAlpha(color);-
411 if (const_alpha != 255) {
const_alpha != 255Description
TRUEnever evaluated
FALSEnever evaluated
0
412 a = BYTE_MUL(a, const_alpha) + 255 - const_alpha;-
413 }
never executed: end of block
0
414 PRELOAD_INIT(dest)-
415 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
416 PRELOAD_COND(dest)-
417 dest[i] = BYTE_MUL(dest[i], a);-
418 }
never executed: end of block
0
419}
never executed: end of block
0
420-
421void QT_FASTCALL comp_func_solid_DestinationIn_rgb64(QRgba64 *dest, int length, QRgba64 color, uint const_alpha)-
422{-
423 uint a = color.alpha();-
424 uint ca64k = const_alpha * 257;-
425 if (const_alpha != 255)
const_alpha != 255Description
TRUEnever evaluated
FALSEnever evaluated
0
426 a = qt_div_65535(a * ca64k) + 65535 - ca64k;
never executed: a = qt_div_65535(a * ca64k) + 65535 - ca64k;
0
427 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
428 dest[i] = multiplyAlpha65535(dest[i], a);-
429 }
never executed: end of block
0
430}
never executed: end of block
0
431-
432void QT_FASTCALL comp_func_DestinationIn(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
433{-
434 PRELOAD_INIT2(dest, src)-
435 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
436 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
437 PRELOAD_COND2(dest, src)-
438 dest[i] = BYTE_MUL(dest[i], qAlpha(src[i]));-
439 }
never executed: end of block
0
440 } else {
never executed: end of block
0
441 int cia = 255 - const_alpha;-
442 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
443 PRELOAD_COND2(dest, src)-
444 uint a = BYTE_MUL(qAlpha(src[i]), const_alpha) + cia;-
445 dest[i] = BYTE_MUL(dest[i], a);-
446 }
never executed: end of block
0
447 }
never executed: end of block
0
448}-
449-
450void QT_FASTCALL comp_func_DestinationIn_rgb64(QRgba64 *Q_DECL_RESTRICT dest, const QRgba64 *Q_DECL_RESTRICT src, int length, uint const_alpha)-
451{-
452 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
453 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
454 dest[i] = multiplyAlpha65535(dest[i], src[i].alpha());-
455 }
never executed: end of block
0
456 } else {
never executed: end of block
0
457 uint ca = const_alpha * 257;-
458 uint cia = 65535 - ca;-
459 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
460 uint a = qt_div_65535(src[i].alpha() * ca) + cia;-
461 dest[i] = multiplyAlpha65535(dest[i], a);-
462 }
never executed: end of block
0
463 }
never executed: end of block
0
464}-
465-
466/*-
467 result = s * dia-
468 dest = s * dia * ca + d * cia-
469*/-
470-
471void QT_FASTCALL comp_func_solid_SourceOut(uint *dest, int length, uint color, uint const_alpha)-
472{-
473 PRELOAD_INIT(dest)-
474 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
475 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
476 PRELOAD_COND(dest)-
477 dest[i] = BYTE_MUL(color, qAlpha(~dest[i]));-
478 }
never executed: end of block
0
479 } else {
never executed: end of block
0
480 color = BYTE_MUL(color, const_alpha);-
481 int cia = 255 - const_alpha;-
482 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
483 PRELOAD_COND(dest)-
484 uint d = dest[i];-
485 dest[i] = INTERPOLATE_PIXEL_255(color, qAlpha(~d), d, cia);-
486 }
never executed: end of block
0
487 }
never executed: end of block
0
488}-
489-
490void QT_FASTCALL comp_func_solid_SourceOut_rgb64(QRgba64 *dest, int length, QRgba64 color, uint const_alpha)-
491{-
492 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
493 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
494 dest[i] = multiplyAlpha65535(color, 65535 - dest[i].alpha());-
495 }
never executed: end of block
0
496 } else {
never executed: end of block
0
497 uint ca = const_alpha * 257;-
498 uint cia = 65535 - ca;-
499 color = multiplyAlpha65535(color, ca);-
500 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
501 QRgba64 d = dest[i];-
502 dest[i] = interpolate65535(color, 65535 - d.alpha(), d, cia);-
503 }
never executed: end of block
0
504 }
never executed: end of block
0
505}-
506-
507void QT_FASTCALL comp_func_SourceOut(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
508{-
509 PRELOAD_INIT2(dest, src)-
510 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
511 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
512 PRELOAD_COND2(dest, src)-
513 dest[i] = BYTE_MUL(src[i], qAlpha(~dest[i]));-
514 }
never executed: end of block
0
515 } else {
never executed: end of block
0
516 int cia = 255 - const_alpha;-
517 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
518 PRELOAD_COND2(dest, src)-
519 uint s = BYTE_MUL(src[i], const_alpha);-
520 uint d = dest[i];-
521 dest[i] = INTERPOLATE_PIXEL_255(s, qAlpha(~d), d, cia);-
522 }
never executed: end of block
0
523 }
never executed: end of block
0
524}-
525-
526void QT_FASTCALL comp_func_SourceOut_rgb64(QRgba64 *Q_DECL_RESTRICT dest, const QRgba64 *Q_DECL_RESTRICT src, int length, uint const_alpha)-
527{-
528 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
529 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
530 dest[i] = multiplyAlpha65535(src[i], 65535 - dest[i].alpha());-
531 }
never executed: end of block
0
532 } else {
never executed: end of block
0
533 uint ca = const_alpha * 257;-
534 uint cia = 65535 - ca;-
535 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
536 QRgba64 d = dest[i];-
537 QRgba64 s = multiplyAlpha65535(src[i], ca);-
538 dest[i] = interpolate65535(s, 65535 - d.alpha(), d, cia);-
539 }
never executed: end of block
0
540 }
never executed: end of block
0
541}-
542-
543/*-
544 result = d * sia-
545 dest = d * sia * ca + d * cia-
546 = d * (sia * ca + cia)-
547*/-
548void QT_FASTCALL comp_func_solid_DestinationOut(uint *dest, int length, uint color, uint const_alpha)-
549{-
550 uint a = qAlpha(~color);-
551 if (const_alpha != 255)
const_alpha != 255Description
TRUEnever evaluated
FALSEnever evaluated
0
552 a = BYTE_MUL(a, const_alpha) + 255 - const_alpha;
never executed: a = BYTE_MUL(a, const_alpha) + 255 - const_alpha;
0
553 PRELOAD_INIT(dest)-
554 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
555 PRELOAD_COND(dest)-
556 dest[i] = BYTE_MUL(dest[i], a);-
557 }
never executed: end of block
0
558}
never executed: end of block
0
559-
560void QT_FASTCALL comp_func_solid_DestinationOut_rgb64(QRgba64 *dest, int length, QRgba64 color, uint const_alpha)-
561{-
562 uint a = 65535 - color.alpha();-
563 uint ca64k = const_alpha * 257;-
564 if (const_alpha != 255)
const_alpha != 255Description
TRUEnever evaluated
FALSEnever evaluated
0
565 a = qt_div_65535(a * ca64k) + 65535 - ca64k;
never executed: a = qt_div_65535(a * ca64k) + 65535 - ca64k;
0
566 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
567 dest[i] = multiplyAlpha65535(dest[i], a);-
568 }
never executed: end of block
0
569}
never executed: end of block
0
570-
571void QT_FASTCALL comp_func_DestinationOut(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
572{-
573 PRELOAD_INIT2(dest, src)-
574 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
575 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
576 PRELOAD_COND2(dest, src)-
577 dest[i] = BYTE_MUL(dest[i], qAlpha(~src[i]));-
578 }
never executed: end of block
0
579 } else {
never executed: end of block
0
580 int cia = 255 - const_alpha;-
581 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
582 PRELOAD_COND2(dest, src)-
583 uint sia = BYTE_MUL(qAlpha(~src[i]), const_alpha) + cia;-
584 dest[i] = BYTE_MUL(dest[i], sia);-
585 }
never executed: end of block
0
586 }
never executed: end of block
0
587}-
588-
589void QT_FASTCALL comp_func_DestinationOut_rgb64(QRgba64 *Q_DECL_RESTRICT dest, const QRgba64 *Q_DECL_RESTRICT src, int length, uint const_alpha)-
590{-
591 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
592 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
593 dest[i] = multiplyAlpha65535(dest[i], 65535 - src[i].alpha());-
594 }
never executed: end of block
0
595 } else {
never executed: end of block
0
596 uint ca = const_alpha * 257;-
597 uint cia = 65535 - ca;-
598 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
599 uint a = qt_div_65535((65535 - src[i].alpha()) * ca) + cia;-
600 dest[i] = multiplyAlpha65535(dest[i], a);-
601 }
never executed: end of block
0
602 }
never executed: end of block
0
603}-
604-
605/*-
606 result = s*da + d*sia-
607 dest = s*da*ca + d*sia*ca + d *cia-
608 = s*ca * da + d * (sia*ca + cia)-
609 = s*ca * da + d * (1 - sa*ca)-
610*/-
611void QT_FASTCALL comp_func_solid_SourceAtop(uint *dest, int length, uint color, uint const_alpha)-
612{-
613 if (const_alpha != 255) {
const_alpha != 255Description
TRUEnever evaluated
FALSEnever evaluated
0
614 color = BYTE_MUL(color, const_alpha);-
615 }
never executed: end of block
0
616 uint sia = qAlpha(~color);-
617 PRELOAD_INIT(dest)-
618 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
619 PRELOAD_COND(dest)-
620 dest[i] = INTERPOLATE_PIXEL_255(color, qAlpha(dest[i]), dest[i], sia);-
621 }
never executed: end of block
0
622}
never executed: end of block
0
623-
624void QT_FASTCALL comp_func_solid_SourceAtop_rgb64(QRgba64 *dest, int length, QRgba64 color, uint const_alpha)-
625{-
626 if (const_alpha != 255)
const_alpha != 255Description
TRUEnever evaluated
FALSEnever evaluated
0
627 color = multiplyAlpha255(color, const_alpha);
never executed: color = multiplyAlpha255(color, const_alpha);
0
628 uint sia = 65535 - color.alpha();-
629 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
630 dest[i] = interpolate65535(color, dest[i].alpha(), dest[i], sia);-
631 }
never executed: end of block
0
632}
never executed: end of block
0
633-
634void QT_FASTCALL comp_func_SourceAtop(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
635{-
636 PRELOAD_INIT2(dest, src)-
637 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
638 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
639 PRELOAD_COND2(dest, src)-
640 uint s = src[i];-
641 uint d = dest[i];-
642 dest[i] = INTERPOLATE_PIXEL_255(s, qAlpha(d), d, qAlpha(~s));-
643 }
never executed: end of block
0
644 } else {
never executed: end of block
0
645 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
646 PRELOAD_COND2(dest, src)-
647 uint s = BYTE_MUL(src[i], const_alpha);-
648 uint d = dest[i];-
649 dest[i] = INTERPOLATE_PIXEL_255(s, qAlpha(d), d, qAlpha(~s));-
650 }
never executed: end of block
0
651 }
never executed: end of block
0
652}-
653-
654void QT_FASTCALL comp_func_SourceAtop_rgb64(QRgba64 *Q_DECL_RESTRICT dest, const QRgba64 *Q_DECL_RESTRICT src, int length, uint const_alpha)-
655{-
656 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
657 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
658 QRgba64 s = src[i];-
659 QRgba64 d = dest[i];-
660 dest[i] = interpolate65535(s, d.alpha(), d, 65535 - s.alpha());-
661 }
never executed: end of block
0
662 } else {
never executed: end of block
0
663 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
664 QRgba64 s = multiplyAlpha255(src[i], const_alpha);-
665 QRgba64 d = dest[i];-
666 dest[i] = interpolate65535(s, d.alpha(), d, 65535 - s.alpha());-
667 }
never executed: end of block
0
668 }
never executed: end of block
0
669}-
670-
671/*-
672 result = d*sa + s*dia-
673 dest = d*sa*ca + s*dia*ca + d *cia-
674 = s*ca * dia + d * (sa*ca + cia)-
675*/-
676void QT_FASTCALL comp_func_solid_DestinationAtop(uint *dest, int length, uint color, uint const_alpha)-
677{-
678 uint a = qAlpha(color);-
679 if (const_alpha != 255) {
const_alpha != 255Description
TRUEnever evaluated
FALSEnever evaluated
0
680 color = BYTE_MUL(color, const_alpha);-
681 a = qAlpha(color) + 255 - const_alpha;-
682 }
never executed: end of block
0
683 PRELOAD_INIT(dest)-
684 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
685 PRELOAD_COND(dest)-
686 uint d = dest[i];-
687 dest[i] = INTERPOLATE_PIXEL_255(d, a, color, qAlpha(~d));-
688 }
never executed: end of block
0
689}
never executed: end of block
0
690-
691void QT_FASTCALL comp_func_solid_DestinationAtop_rgb64(QRgba64 *dest, int length, QRgba64 color, uint const_alpha)-
692{-
693 uint a = color.alpha();-
694 if (const_alpha != 255) {
const_alpha != 255Description
TRUEnever evaluated
FALSEnever evaluated
0
695 color = multiplyAlpha255(color, const_alpha);-
696 a = color.alpha() + 65535 - (const_alpha * 257);-
697 }
never executed: end of block
0
698 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
699 QRgba64 d = dest[i];-
700 dest[i] = interpolate65535(d, a, color, 65535 - d.alpha());-
701 }
never executed: end of block
0
702}
never executed: end of block
0
703-
704void QT_FASTCALL comp_func_DestinationAtop(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
705{-
706 PRELOAD_INIT2(dest, src)-
707 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
708 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
709 PRELOAD_COND2(dest, src)-
710 uint s = src[i];-
711 uint d = dest[i];-
712 dest[i] = INTERPOLATE_PIXEL_255(d, qAlpha(s), s, qAlpha(~d));-
713 }
never executed: end of block
0
714 } else {
never executed: end of block
0
715 int cia = 255 - const_alpha;-
716 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
717 PRELOAD_COND2(dest, src)-
718 uint s = BYTE_MUL(src[i], const_alpha);-
719 uint d = dest[i];-
720 uint a = qAlpha(s) + cia;-
721 dest[i] = INTERPOLATE_PIXEL_255(d, a, s, qAlpha(~d));-
722 }
never executed: end of block
0
723 }
never executed: end of block
0
724}-
725-
726void QT_FASTCALL comp_func_DestinationAtop_rgb64(QRgba64 *Q_DECL_RESTRICT dest, const QRgba64 *Q_DECL_RESTRICT src, int length, uint const_alpha)-
727{-
728 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
729 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
730 QRgba64 s = src[i];-
731 QRgba64 d = dest[i];-
732 dest[i] = interpolate65535(d, s.alpha(), s, 65535 - d.alpha());-
733 }
never executed: end of block
0
734 } else {
never executed: end of block
0
735 int ca = const_alpha * 257;-
736 int cia = 65535 - ca;-
737 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
738 QRgba64 s = multiplyAlpha65535(src[i], ca);-
739 QRgba64 d = dest[i];-
740 uint a = s.alpha() + cia;-
741 dest[i] = interpolate65535(d, a, s, 65535 - d.alpha());-
742 }
never executed: end of block
0
743 }
never executed: end of block
0
744}-
745-
746/*-
747 result = d*sia + s*dia-
748 dest = d*sia*ca + s*dia*ca + d *cia-
749 = s*ca * dia + d * (sia*ca + cia)-
750 = s*ca * dia + d * (1 - sa*ca)-
751*/-
752void QT_FASTCALL comp_func_solid_XOR(uint *dest, int length, uint color, uint const_alpha)-
753{-
754 if (const_alpha != 255)
const_alpha != 255Description
TRUEnever evaluated
FALSEnever evaluated
0
755 color = BYTE_MUL(color, const_alpha);
never executed: color = BYTE_MUL(color, const_alpha);
0
756 uint sia = qAlpha(~color);-
757-
758 PRELOAD_INIT(dest)-
759 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
760 PRELOAD_COND(dest)-
761 uint d = dest[i];-
762 dest[i] = INTERPOLATE_PIXEL_255(color, qAlpha(~d), d, sia);-
763 }
never executed: end of block
0
764}
never executed: end of block
0
765-
766void QT_FASTCALL comp_func_solid_XOR_rgb64(QRgba64 *dest, int length, QRgba64 color, uint const_alpha)-
767{-
768 if (const_alpha != 255)
const_alpha != 255Description
TRUEnever evaluated
FALSEnever evaluated
0
769 color = multiplyAlpha255(color, const_alpha);
never executed: color = multiplyAlpha255(color, const_alpha);
0
770 uint sia = 65535 - color.alpha();-
771 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
772 QRgba64 d = dest[i];-
773 dest[i] = interpolate65535(color, 65535 - d.alpha(), d, sia);-
774 }
never executed: end of block
0
775}
never executed: end of block
0
776-
777void QT_FASTCALL comp_func_XOR(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
778{-
779 PRELOAD_INIT2(dest, src)-
780 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
781 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
782 PRELOAD_COND2(dest, src)-
783 uint d = dest[i];-
784 uint s = src[i];-
785 dest[i] = INTERPOLATE_PIXEL_255(s, qAlpha(~d), d, qAlpha(~s));-
786 }
never executed: end of block
0
787 } else {
never executed: end of block
0
788 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
789 PRELOAD_COND2(dest, src)-
790 uint d = dest[i];-
791 uint s = BYTE_MUL(src[i], const_alpha);-
792 dest[i] = INTERPOLATE_PIXEL_255(s, qAlpha(~d), d, qAlpha(~s));-
793 }
never executed: end of block
0
794 }
never executed: end of block
0
795}-
796-
797void QT_FASTCALL comp_func_XOR_rgb64(QRgba64 *Q_DECL_RESTRICT dest, const QRgba64 *Q_DECL_RESTRICT src, int length, uint const_alpha)-
798{-
799 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
800 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
801 QRgba64 d = dest[i];-
802 QRgba64 s = src[i];-
803 dest[i] = interpolate65535(s, 65535 - d.alpha(), d, 65535 - s.alpha());-
804 }
never executed: end of block
0
805 } else {
never executed: end of block
0
806 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
807 QRgba64 d = dest[i];-
808 QRgba64 s = multiplyAlpha255(src[i], const_alpha);-
809 dest[i] = interpolate65535(s, 65535 - d.alpha(), d, 65535 - s.alpha());-
810 }
never executed: end of block
0
811 }
never executed: end of block
0
812}-
813-
814struct QFullCoverage {-
815 inline void store(uint *dest, const uint src) const-
816 {-
817 *dest = src;-
818 }
never executed: end of block
0
819};-
820-
821struct QPartialCoverage {-
822 inline QPartialCoverage(uint const_alpha)-
823 : ca(const_alpha)-
824 , ica(255 - const_alpha)-
825 {-
826 }
never executed: end of block
0
827-
828 inline void store(uint *dest, const uint src) const-
829 {-
830 *dest = INTERPOLATE_PIXEL_255(src, ca, *dest, ica);-
831 }
never executed: end of block
0
832-
833private:-
834 const uint ca;-
835 const uint ica;-
836};-
837-
838static inline int mix_alpha(int da, int sa)-
839{-
840 return 255 - ((255 - sa) * (255 - da) >> 8);
never executed: return 255 - ((255 - sa) * (255 - da) >> 8);
0
841}-
842-
843/*-
844 Dca' = Sca.Da + Dca.Sa + Sca.(1 - Da) + Dca.(1 - Sa)-
845 = Sca + Dca-
846*/-
847template <typename T>-
848Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_Plus_impl(uint *dest, int length, uint color, const T &coverage)-
849{-
850 uint s = color;-
851-
852 PRELOAD_INIT(dest)-
853 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
854 PRELOAD_COND(dest)-
855 uint d = dest[i];-
856 d = comp_func_Plus_one_pixel(d, s);-
857 coverage.store(&dest[i], d);-
858 }
never executed: end of block
0
859}
never executed: end of block
0
860-
861template <typename T>-
862Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_Plus_impl_rgb64(QRgba64 *dest, int length, QRgba64 color, const T &coverage)-
863{-
864 QRgba64 s = color;-
865 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
866 QRgba64 d = dest[i];-
867 d = comp_func_Plus_one_pixel(d, s);-
868 coverage.store(&dest[i], d);-
869 }
never executed: end of block
0
870}
never executed: end of block
0
871-
872void QT_FASTCALL comp_func_solid_Plus(uint *dest, int length, uint color, uint const_alpha)-
873{-
874 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
875 comp_func_solid_Plus_impl(dest, length, color, QFullCoverage());
never executed: comp_func_solid_Plus_impl(dest, length, color, QFullCoverage());
0
876 else-
877 comp_func_solid_Plus_impl(dest, length, color, QPartialCoverage(const_alpha));
never executed: comp_func_solid_Plus_impl(dest, length, color, QPartialCoverage(const_alpha));
0
878}-
879-
880void QT_FASTCALL comp_func_solid_Plus_rgb64(QRgba64 *dest, int length, QRgba64 color, uint const_alpha)-
881{-
882 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
883 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
884 dest[i] = addWithSaturation(dest[i], color);-
885 }
never executed: end of block
0
886 } else {
never executed: end of block
0
887 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
888 QRgba64 d = addWithSaturation(dest[i], color);-
889 dest[i] = interpolate255(d, const_alpha, dest[i], 255 - const_alpha);-
890 }
never executed: end of block
0
891 }
never executed: end of block
0
892}-
893-
894template <typename T>-
895Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_Plus_impl(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, const T &coverage)-
896{-
897 PRELOAD_INIT2(dest, src)-
898 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
899 PRELOAD_COND2(dest, src)-
900 uint d = dest[i];-
901 uint s = src[i];-
902-
903 d = comp_func_Plus_one_pixel(d, s);-
904-
905 coverage.store(&dest[i], d);-
906 }
never executed: end of block
0
907}
never executed: end of block
0
908-
909void QT_FASTCALL comp_func_Plus(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
910{-
911 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
912 comp_func_Plus_impl(dest, src, length, QFullCoverage());
never executed: comp_func_Plus_impl(dest, src, length, QFullCoverage());
0
913 else-
914 comp_func_Plus_impl(dest, src, length, QPartialCoverage(const_alpha));
never executed: comp_func_Plus_impl(dest, src, length, QPartialCoverage(const_alpha));
0
915}-
916-
917void QT_FASTCALL comp_func_Plus_rgb64(QRgba64 *Q_DECL_RESTRICT dest, const QRgba64 *Q_DECL_RESTRICT src, int length, uint const_alpha)-
918{-
919 if (const_alpha == 255) {
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
920 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
921 dest[i] = addWithSaturation(dest[i], src[i]);-
922 }
never executed: end of block
0
923 } else {
never executed: end of block
0
924 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
925 QRgba64 d = addWithSaturation(dest[i], src[i]);-
926 dest[i] = interpolate255(d, const_alpha, dest[i], 255 - const_alpha);-
927 }
never executed: end of block
0
928 }
never executed: end of block
0
929}-
930-
931/*-
932 Dca' = Sca.Dca + Sca.(1 - Da) + Dca.(1 - Sa)-
933*/-
934static inline int multiply_op(int dst, int src, int da, int sa)-
935{-
936 return qt_div_255(src * dst + src * (255 - da) + dst * (255 - sa));
never executed: return qt_div_255(src * dst + src * (255 - da) + dst * (255 - sa));
0
937}-
938-
939template <typename T>-
940Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_Multiply_impl(uint *dest, int length, uint color, const T &coverage)-
941{-
942 int sa = qAlpha(color);-
943 int sr = qRed(color);-
944 int sg = qGreen(color);-
945 int sb = qBlue(color);-
946-
947 PRELOAD_INIT(dest)-
948 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
949 PRELOAD_COND(dest)-
950 uint d = dest[i];-
951 int da = qAlpha(d);-
952-
953#define OP(a, b) multiply_op(a, b, da, sa)-
954 int r = OP( qRed(d), sr);-
955 int b = OP( qBlue(d), sb);-
956 int g = OP(qGreen(d), sg);-
957 int a = mix_alpha(da, sa);-
958#undef OP-
959-
960 coverage.store(&dest[i], qRgba(r, g, b, a));-
961 }
never executed: end of block
0
962}
never executed: end of block
0
963-
964void QT_FASTCALL comp_func_solid_Multiply(uint *dest, int length, uint color, uint const_alpha)-
965{-
966 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
967 comp_func_solid_Multiply_impl(dest, length, color, QFullCoverage());
never executed: comp_func_solid_Multiply_impl(dest, length, color, QFullCoverage());
0
968 else-
969 comp_func_solid_Multiply_impl(dest, length, color, QPartialCoverage(const_alpha));
never executed: comp_func_solid_Multiply_impl(dest, length, color, QPartialCoverage(const_alpha));
0
970}-
971-
972template <typename T>-
973Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_Multiply_impl(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, const T &coverage)-
974{-
975 PRELOAD_INIT2(dest, src)-
976 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
977 PRELOAD_COND2(dest, src)-
978 uint d = dest[i];-
979 uint s = src[i];-
980-
981 int da = qAlpha(d);-
982 int sa = qAlpha(s);-
983-
984#define OP(a, b) multiply_op(a, b, da, sa)-
985 int r = OP( qRed(d), qRed(s));-
986 int b = OP( qBlue(d), qBlue(s));-
987 int g = OP(qGreen(d), qGreen(s));-
988 int a = mix_alpha(da, sa);-
989#undef OP-
990-
991 coverage.store(&dest[i], qRgba(r, g, b, a));-
992 }
never executed: end of block
0
993}
never executed: end of block
0
994-
995void QT_FASTCALL comp_func_Multiply(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
996{-
997 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
998 comp_func_Multiply_impl(dest, src, length, QFullCoverage());
never executed: comp_func_Multiply_impl(dest, src, length, QFullCoverage());
0
999 else-
1000 comp_func_Multiply_impl(dest, src, length, QPartialCoverage(const_alpha));
never executed: comp_func_Multiply_impl(dest, src, length, QPartialCoverage(const_alpha));
0
1001}-
1002-
1003/*-
1004 Dca' = (Sca.Da + Dca.Sa - Sca.Dca) + Sca.(1 - Da) + Dca.(1 - Sa)-
1005 = Sca + Dca - Sca.Dca-
1006*/-
1007template <typename T>-
1008Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_Screen_impl(uint *dest, int length, uint color, const T &coverage)-
1009{-
1010 int sa = qAlpha(color);-
1011 int sr = qRed(color);-
1012 int sg = qGreen(color);-
1013 int sb = qBlue(color);-
1014-
1015 PRELOAD_INIT(dest)-
1016 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1017 PRELOAD_COND(dest)-
1018 uint d = dest[i];-
1019 int da = qAlpha(d);-
1020-
1021#define OP(a, b) 255 - qt_div_255((255-a) * (255-b))-
1022 int r = OP( qRed(d), sr);-
1023 int b = OP( qBlue(d), sb);-
1024 int g = OP(qGreen(d), sg);-
1025 int a = mix_alpha(da, sa);-
1026#undef OP-
1027-
1028 coverage.store(&dest[i], qRgba(r, g, b, a));-
1029 }
never executed: end of block
0
1030}
never executed: end of block
0
1031-
1032void QT_FASTCALL comp_func_solid_Screen(uint *dest, int length, uint color, uint const_alpha)-
1033{-
1034 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1035 comp_func_solid_Screen_impl(dest, length, color, QFullCoverage());
never executed: comp_func_solid_Screen_impl(dest, length, color, QFullCoverage());
0
1036 else-
1037 comp_func_solid_Screen_impl(dest, length, color, QPartialCoverage(const_alpha));
never executed: comp_func_solid_Screen_impl(dest, length, color, QPartialCoverage(const_alpha));
0
1038}-
1039-
1040template <typename T>-
1041Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_Screen_impl(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, const T &coverage)-
1042{-
1043 PRELOAD_INIT2(dest, src)-
1044 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1045 PRELOAD_COND2(dest, src)-
1046 uint d = dest[i];-
1047 uint s = src[i];-
1048-
1049 int da = qAlpha(d);-
1050 int sa = qAlpha(s);-
1051-
1052#define OP(a, b) 255 - (((255-a) * (255-b)) >> 8)-
1053 int r = OP( qRed(d), qRed(s));-
1054 int b = OP( qBlue(d), qBlue(s));-
1055 int g = OP(qGreen(d), qGreen(s));-
1056 int a = mix_alpha(da, sa);-
1057#undef OP-
1058-
1059 coverage.store(&dest[i], qRgba(r, g, b, a));-
1060 }
never executed: end of block
0
1061}
never executed: end of block
0
1062-
1063void QT_FASTCALL comp_func_Screen(uint *dest, const uint *src, int length, uint const_alpha)-
1064{-
1065 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1066 comp_func_Screen_impl(dest, src, length, QFullCoverage());
never executed: comp_func_Screen_impl(dest, src, length, QFullCoverage());
0
1067 else-
1068 comp_func_Screen_impl(dest, src, length, QPartialCoverage(const_alpha));
never executed: comp_func_Screen_impl(dest, src, length, QPartialCoverage(const_alpha));
0
1069}-
1070-
1071/*-
1072 if 2.Dca < Da-
1073 Dca' = 2.Sca.Dca + Sca.(1 - Da) + Dca.(1 - Sa)-
1074 otherwise-
1075 Dca' = Sa.Da - 2.(Da - Dca).(Sa - Sca) + Sca.(1 - Da) + Dca.(1 - Sa)-
1076*/-
1077static inline int overlay_op(int dst, int src, int da, int sa)-
1078{-
1079 const int temp = src * (255 - da) + dst * (255 - sa);-
1080 if (2 * dst < da)
2 * dst < daDescription
TRUEnever evaluated
FALSEnever evaluated
0
1081 return qt_div_255(2 * src * dst + temp);
never executed: return qt_div_255(2 * src * dst + temp);
0
1082 else-
1083 return qt_div_255(sa * da - 2 * (da - dst) * (sa - src) + temp);
never executed: return qt_div_255(sa * da - 2 * (da - dst) * (sa - src) + temp);
0
1084}-
1085-
1086template <typename T>-
1087Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_Overlay_impl(uint *dest, int length, uint color, const T &coverage)-
1088{-
1089 int sa = qAlpha(color);-
1090 int sr = qRed(color);-
1091 int sg = qGreen(color);-
1092 int sb = qBlue(color);-
1093-
1094 PRELOAD_INIT(dest)-
1095 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1096 PRELOAD_COND(dest)-
1097 uint d = dest[i];-
1098 int da = qAlpha(d);-
1099-
1100#define OP(a, b) overlay_op(a, b, da, sa)-
1101 int r = OP( qRed(d), sr);-
1102 int b = OP( qBlue(d), sb);-
1103 int g = OP(qGreen(d), sg);-
1104 int a = mix_alpha(da, sa);-
1105#undef OP-
1106-
1107 coverage.store(&dest[i], qRgba(r, g, b, a));-
1108 }
never executed: end of block
0
1109}
never executed: end of block
0
1110-
1111void QT_FASTCALL comp_func_solid_Overlay(uint *dest, int length, uint color, uint const_alpha)-
1112{-
1113 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1114 comp_func_solid_Overlay_impl(dest, length, color, QFullCoverage());
never executed: comp_func_solid_Overlay_impl(dest, length, color, QFullCoverage());
0
1115 else-
1116 comp_func_solid_Overlay_impl(dest, length, color, QPartialCoverage(const_alpha));
never executed: comp_func_solid_Overlay_impl(dest, length, color, QPartialCoverage(const_alpha));
0
1117}-
1118-
1119template <typename T>-
1120Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_Overlay_impl(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, const T &coverage)-
1121{-
1122 PRELOAD_INIT2(dest, src)-
1123 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1124 PRELOAD_COND2(dest, src)-
1125 uint d = dest[i];-
1126 uint s = src[i];-
1127-
1128 int da = qAlpha(d);-
1129 int sa = qAlpha(s);-
1130-
1131#define OP(a, b) overlay_op(a, b, da, sa)-
1132 int r = OP( qRed(d), qRed(s));-
1133 int b = OP( qBlue(d), qBlue(s));-
1134 int g = OP(qGreen(d), qGreen(s));-
1135 int a = mix_alpha(da, sa);-
1136#undef OP-
1137-
1138 coverage.store(&dest[i], qRgba(r, g, b, a));-
1139 }
never executed: end of block
0
1140}
never executed: end of block
0
1141-
1142void QT_FASTCALL comp_func_Overlay(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
1143{-
1144 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1145 comp_func_Overlay_impl(dest, src, length, QFullCoverage());
never executed: comp_func_Overlay_impl(dest, src, length, QFullCoverage());
0
1146 else-
1147 comp_func_Overlay_impl(dest, src, length, QPartialCoverage(const_alpha));
never executed: comp_func_Overlay_impl(dest, src, length, QPartialCoverage(const_alpha));
0
1148}-
1149-
1150/*-
1151 Dca' = min(Sca.Da, Dca.Sa) + Sca.(1 - Da) + Dca.(1 - Sa)-
1152 Da' = Sa + Da - Sa.Da-
1153*/-
1154static inline int darken_op(int dst, int src, int da, int sa)-
1155{-
1156 return qt_div_255(qMin(src * da, dst * sa) + src * (255 - da) + dst * (255 - sa));
never executed: return qt_div_255(qMin(src * da, dst * sa) + src * (255 - da) + dst * (255 - sa));
0
1157}-
1158-
1159template <typename T>-
1160Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_Darken_impl(uint *dest, int length, uint color, const T &coverage)-
1161{-
1162 int sa = qAlpha(color);-
1163 int sr = qRed(color);-
1164 int sg = qGreen(color);-
1165 int sb = qBlue(color);-
1166-
1167 PRELOAD_INIT(dest)-
1168 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1169 PRELOAD_COND(dest)-
1170 uint d = dest[i];-
1171 int da = qAlpha(d);-
1172-
1173#define OP(a, b) darken_op(a, b, da, sa)-
1174 int r = OP( qRed(d), sr);-
1175 int b = OP( qBlue(d), sb);-
1176 int g = OP(qGreen(d), sg);-
1177 int a = mix_alpha(da, sa);-
1178#undef OP-
1179-
1180 coverage.store(&dest[i], qRgba(r, g, b, a));-
1181 }
never executed: end of block
0
1182}
never executed: end of block
0
1183-
1184void QT_FASTCALL comp_func_solid_Darken(uint *dest, int length, uint color, uint const_alpha)-
1185{-
1186 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1187 comp_func_solid_Darken_impl(dest, length, color, QFullCoverage());
never executed: comp_func_solid_Darken_impl(dest, length, color, QFullCoverage());
0
1188 else-
1189 comp_func_solid_Darken_impl(dest, length, color, QPartialCoverage(const_alpha));
never executed: comp_func_solid_Darken_impl(dest, length, color, QPartialCoverage(const_alpha));
0
1190}-
1191-
1192template <typename T>-
1193Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_Darken_impl(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, const T &coverage)-
1194{-
1195 PRELOAD_INIT2(dest, src)-
1196 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1197 PRELOAD_COND2(dest, src)-
1198 uint d = dest[i];-
1199 uint s = src[i];-
1200-
1201 int da = qAlpha(d);-
1202 int sa = qAlpha(s);-
1203-
1204#define OP(a, b) darken_op(a, b, da, sa)-
1205 int r = OP( qRed(d), qRed(s));-
1206 int b = OP( qBlue(d), qBlue(s));-
1207 int g = OP(qGreen(d), qGreen(s));-
1208 int a = mix_alpha(da, sa);-
1209#undef OP-
1210-
1211 coverage.store(&dest[i], qRgba(r, g, b, a));-
1212 }
never executed: end of block
0
1213}
never executed: end of block
0
1214-
1215void QT_FASTCALL comp_func_Darken(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
1216{-
1217 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1218 comp_func_Darken_impl(dest, src, length, QFullCoverage());
never executed: comp_func_Darken_impl(dest, src, length, QFullCoverage());
0
1219 else-
1220 comp_func_Darken_impl(dest, src, length, QPartialCoverage(const_alpha));
never executed: comp_func_Darken_impl(dest, src, length, QPartialCoverage(const_alpha));
0
1221}-
1222-
1223/*-
1224 Dca' = max(Sca.Da, Dca.Sa) + Sca.(1 - Da) + Dca.(1 - Sa)-
1225 Da' = Sa + Da - Sa.Da-
1226*/-
1227static inline int lighten_op(int dst, int src, int da, int sa)-
1228{-
1229 return qt_div_255(qMax(src * da, dst * sa) + src * (255 - da) + dst * (255 - sa));
never executed: return qt_div_255(qMax(src * da, dst * sa) + src * (255 - da) + dst * (255 - sa));
0
1230}-
1231-
1232template <typename T>-
1233Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_Lighten_impl(uint *dest, int length, uint color, const T &coverage)-
1234{-
1235 int sa = qAlpha(color);-
1236 int sr = qRed(color);-
1237 int sg = qGreen(color);-
1238 int sb = qBlue(color);-
1239-
1240 PRELOAD_INIT(dest)-
1241 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1242 PRELOAD_COND(dest)-
1243 uint d = dest[i];-
1244 int da = qAlpha(d);-
1245-
1246#define OP(a, b) lighten_op(a, b, da, sa)-
1247 int r = OP( qRed(d), sr);-
1248 int b = OP( qBlue(d), sb);-
1249 int g = OP(qGreen(d), sg);-
1250 int a = mix_alpha(da, sa);-
1251#undef OP-
1252-
1253 coverage.store(&dest[i], qRgba(r, g, b, a));-
1254 }
never executed: end of block
0
1255}
never executed: end of block
0
1256-
1257void QT_FASTCALL comp_func_solid_Lighten(uint *dest, int length, uint color, uint const_alpha)-
1258{-
1259 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1260 comp_func_solid_Lighten_impl(dest, length, color, QFullCoverage());
never executed: comp_func_solid_Lighten_impl(dest, length, color, QFullCoverage());
0
1261 else-
1262 comp_func_solid_Lighten_impl(dest, length, color, QPartialCoverage(const_alpha));
never executed: comp_func_solid_Lighten_impl(dest, length, color, QPartialCoverage(const_alpha));
0
1263}-
1264-
1265template <typename T>-
1266Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_Lighten_impl(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, const T &coverage)-
1267{-
1268 PRELOAD_INIT2(dest, src)-
1269 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1270 PRELOAD_COND2(dest, src)-
1271 uint d = dest[i];-
1272 uint s = src[i];-
1273-
1274 int da = qAlpha(d);-
1275 int sa = qAlpha(s);-
1276-
1277#define OP(a, b) lighten_op(a, b, da, sa)-
1278 int r = OP( qRed(d), qRed(s));-
1279 int b = OP( qBlue(d), qBlue(s));-
1280 int g = OP(qGreen(d), qGreen(s));-
1281 int a = mix_alpha(da, sa);-
1282#undef OP-
1283-
1284 coverage.store(&dest[i], qRgba(r, g, b, a));-
1285 }
never executed: end of block
0
1286}
never executed: end of block
0
1287-
1288void QT_FASTCALL comp_func_Lighten(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
1289{-
1290 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1291 comp_func_Lighten_impl(dest, src, length, QFullCoverage());
never executed: comp_func_Lighten_impl(dest, src, length, QFullCoverage());
0
1292 else-
1293 comp_func_Lighten_impl(dest, src, length, QPartialCoverage(const_alpha));
never executed: comp_func_Lighten_impl(dest, src, length, QPartialCoverage(const_alpha));
0
1294}-
1295-
1296/*-
1297 if Sca.Da + Dca.Sa >= Sa.Da-
1298 Dca' = Sa.Da + Sca.(1 - Da) + Dca.(1 - Sa)-
1299 otherwise-
1300 Dca' = Dca.Sa/(1-Sca/Sa) + Sca.(1 - Da) + Dca.(1 - Sa)-
1301*/-
1302static inline int color_dodge_op(int dst, int src, int da, int sa)-
1303{-
1304 const int sa_da = sa * da;-
1305 const int dst_sa = dst * sa;-
1306 const int src_da = src * da;-
1307-
1308 const int temp = src * (255 - da) + dst * (255 - sa);-
1309 if (src_da + dst_sa >= sa_da)
src_da + dst_sa >= sa_daDescription
TRUEnever evaluated
FALSEnever evaluated
0
1310 return qt_div_255(sa_da + temp);
never executed: return qt_div_255(sa_da + temp);
0
1311 else-
1312 return qt_div_255(255 * dst_sa / (255 - 255 * src / sa) + temp);
never executed: return qt_div_255(255 * dst_sa / (255 - 255 * src / sa) + temp);
0
1313}-
1314-
1315template <typename T>-
1316Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_ColorDodge_impl(uint *dest, int length, uint color, const T &coverage)-
1317{-
1318 int sa = qAlpha(color);-
1319 int sr = qRed(color);-
1320 int sg = qGreen(color);-
1321 int sb = qBlue(color);-
1322-
1323 PRELOAD_INIT(dest)-
1324 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1325 PRELOAD_COND(dest)-
1326 uint d = dest[i];-
1327 int da = qAlpha(d);-
1328-
1329#define OP(a,b) color_dodge_op(a, b, da, sa)-
1330 int r = OP( qRed(d), sr);-
1331 int b = OP( qBlue(d), sb);-
1332 int g = OP(qGreen(d), sg);-
1333 int a = mix_alpha(da, sa);-
1334#undef OP-
1335-
1336 coverage.store(&dest[i], qRgba(r, g, b, a));-
1337 }
never executed: end of block
0
1338}
never executed: end of block
0
1339-
1340void QT_FASTCALL comp_func_solid_ColorDodge(uint *dest, int length, uint color, uint const_alpha)-
1341{-
1342 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1343 comp_func_solid_ColorDodge_impl(dest, length, color, QFullCoverage());
never executed: comp_func_solid_ColorDodge_impl(dest, length, color, QFullCoverage());
0
1344 else-
1345 comp_func_solid_ColorDodge_impl(dest, length, color, QPartialCoverage(const_alpha));
never executed: comp_func_solid_ColorDodge_impl(dest, length, color, QPartialCoverage(const_alpha));
0
1346}-
1347-
1348template <typename T>-
1349Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_ColorDodge_impl(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, const T &coverage)-
1350{-
1351 PRELOAD_INIT2(dest, src)-
1352 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1353 PRELOAD_COND2(dest, src)-
1354 uint d = dest[i];-
1355 uint s = src[i];-
1356-
1357 int da = qAlpha(d);-
1358 int sa = qAlpha(s);-
1359-
1360#define OP(a, b) color_dodge_op(a, b, da, sa)-
1361 int r = OP( qRed(d), qRed(s));-
1362 int b = OP( qBlue(d), qBlue(s));-
1363 int g = OP(qGreen(d), qGreen(s));-
1364 int a = mix_alpha(da, sa);-
1365#undef OP-
1366-
1367 coverage.store(&dest[i], qRgba(r, g, b, a));-
1368 }
never executed: end of block
0
1369}
never executed: end of block
0
1370-
1371void QT_FASTCALL comp_func_ColorDodge(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
1372{-
1373 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1374 comp_func_ColorDodge_impl(dest, src, length, QFullCoverage());
never executed: comp_func_ColorDodge_impl(dest, src, length, QFullCoverage());
0
1375 else-
1376 comp_func_ColorDodge_impl(dest, src, length, QPartialCoverage(const_alpha));
never executed: comp_func_ColorDodge_impl(dest, src, length, QPartialCoverage(const_alpha));
0
1377}-
1378-
1379/*-
1380 if Sca.Da + Dca.Sa <= Sa.Da-
1381 Dca' = Sca.(1 - Da) + Dca.(1 - Sa)-
1382 otherwise-
1383 Dca' = Sa.(Sca.Da + Dca.Sa - Sa.Da)/Sca + Sca.(1 - Da) + Dca.(1 - Sa)-
1384*/-
1385static inline int color_burn_op(int dst, int src, int da, int sa)-
1386{-
1387 const int src_da = src * da;-
1388 const int dst_sa = dst * sa;-
1389 const int sa_da = sa * da;-
1390-
1391 const int temp = src * (255 - da) + dst * (255 - sa);-
1392-
1393 if (src == 0 || src_da + dst_sa <= sa_da)
src == 0Description
TRUEnever evaluated
FALSEnever evaluated
src_da + dst_sa <= sa_daDescription
TRUEnever evaluated
FALSEnever evaluated
0
1394 return qt_div_255(temp);
never executed: return qt_div_255(temp);
0
1395 return qt_div_255(sa * (src_da + dst_sa - sa_da) / src + temp);
never executed: return qt_div_255(sa * (src_da + dst_sa - sa_da) / src + temp);
0
1396}-
1397-
1398template <typename T>-
1399Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_ColorBurn_impl(uint *dest, int length, uint color, const T &coverage)-
1400{-
1401 int sa = qAlpha(color);-
1402 int sr = qRed(color);-
1403 int sg = qGreen(color);-
1404 int sb = qBlue(color);-
1405-
1406 PRELOAD_INIT(dest)-
1407 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1408 PRELOAD_COND(dest)-
1409 uint d = dest[i];-
1410 int da = qAlpha(d);-
1411-
1412#define OP(a, b) color_burn_op(a, b, da, sa)-
1413 int r = OP( qRed(d), sr);-
1414 int b = OP( qBlue(d), sb);-
1415 int g = OP(qGreen(d), sg);-
1416 int a = mix_alpha(da, sa);-
1417#undef OP-
1418-
1419 coverage.store(&dest[i], qRgba(r, g, b, a));-
1420 }
never executed: end of block
0
1421}
never executed: end of block
0
1422-
1423void QT_FASTCALL comp_func_solid_ColorBurn(uint *dest, int length, uint color, uint const_alpha)-
1424{-
1425 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1426 comp_func_solid_ColorBurn_impl(dest, length, color, QFullCoverage());
never executed: comp_func_solid_ColorBurn_impl(dest, length, color, QFullCoverage());
0
1427 else-
1428 comp_func_solid_ColorBurn_impl(dest, length, color, QPartialCoverage(const_alpha));
never executed: comp_func_solid_ColorBurn_impl(dest, length, color, QPartialCoverage(const_alpha));
0
1429}-
1430-
1431template <typename T>-
1432Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_ColorBurn_impl(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, const T &coverage)-
1433{-
1434 PRELOAD_INIT2(dest, src)-
1435 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1436 PRELOAD_COND2(dest, src)-
1437 uint d = dest[i];-
1438 uint s = src[i];-
1439-
1440 int da = qAlpha(d);-
1441 int sa = qAlpha(s);-
1442-
1443#define OP(a, b) color_burn_op(a, b, da, sa)-
1444 int r = OP( qRed(d), qRed(s));-
1445 int b = OP( qBlue(d), qBlue(s));-
1446 int g = OP(qGreen(d), qGreen(s));-
1447 int a = mix_alpha(da, sa);-
1448#undef OP-
1449-
1450 coverage.store(&dest[i], qRgba(r, g, b, a));-
1451 }
never executed: end of block
0
1452}
never executed: end of block
0
1453-
1454void QT_FASTCALL comp_func_ColorBurn(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
1455{-
1456 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1457 comp_func_ColorBurn_impl(dest, src, length, QFullCoverage());
never executed: comp_func_ColorBurn_impl(dest, src, length, QFullCoverage());
0
1458 else-
1459 comp_func_ColorBurn_impl(dest, src, length, QPartialCoverage(const_alpha));
never executed: comp_func_ColorBurn_impl(dest, src, length, QPartialCoverage(const_alpha));
0
1460}-
1461-
1462/*-
1463 if 2.Sca < Sa-
1464 Dca' = 2.Sca.Dca + Sca.(1 - Da) + Dca.(1 - Sa)-
1465 otherwise-
1466 Dca' = Sa.Da - 2.(Da - Dca).(Sa - Sca) + Sca.(1 - Da) + Dca.(1 - Sa)-
1467*/-
1468static inline uint hardlight_op(int dst, int src, int da, int sa)-
1469{-
1470 const uint temp = src * (255 - da) + dst * (255 - sa);-
1471-
1472 if (2 * src < sa)
2 * src < saDescription
TRUEnever evaluated
FALSEnever evaluated
0
1473 return qt_div_255(2 * src * dst + temp);
never executed: return qt_div_255(2 * src * dst + temp);
0
1474 else-
1475 return qt_div_255(sa * da - 2 * (da - dst) * (sa - src) + temp);
never executed: return qt_div_255(sa * da - 2 * (da - dst) * (sa - src) + temp);
0
1476}-
1477-
1478template <typename T>-
1479Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_HardLight_impl(uint *dest, int length, uint color, const T &coverage)-
1480{-
1481 int sa = qAlpha(color);-
1482 int sr = qRed(color);-
1483 int sg = qGreen(color);-
1484 int sb = qBlue(color);-
1485-
1486 PRELOAD_INIT(dest)-
1487 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1488 PRELOAD_COND(dest)-
1489 uint d = dest[i];-
1490 int da = qAlpha(d);-
1491-
1492#define OP(a, b) hardlight_op(a, b, da, sa)-
1493 int r = OP( qRed(d), sr);-
1494 int b = OP( qBlue(d), sb);-
1495 int g = OP(qGreen(d), sg);-
1496 int a = mix_alpha(da, sa);-
1497#undef OP-
1498-
1499 coverage.store(&dest[i], qRgba(r, g, b, a));-
1500 }
never executed: end of block
0
1501}
never executed: end of block
0
1502-
1503void QT_FASTCALL comp_func_solid_HardLight(uint *dest, int length, uint color, uint const_alpha)-
1504{-
1505 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1506 comp_func_solid_HardLight_impl(dest, length, color, QFullCoverage());
never executed: comp_func_solid_HardLight_impl(dest, length, color, QFullCoverage());
0
1507 else-
1508 comp_func_solid_HardLight_impl(dest, length, color, QPartialCoverage(const_alpha));
never executed: comp_func_solid_HardLight_impl(dest, length, color, QPartialCoverage(const_alpha));
0
1509}-
1510-
1511template <typename T>-
1512Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_HardLight_impl(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, const T &coverage)-
1513{-
1514 PRELOAD_INIT2(dest, src)-
1515 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1516 PRELOAD_COND2(dest, src)-
1517 uint d = dest[i];-
1518 uint s = src[i];-
1519-
1520 int da = qAlpha(d);-
1521 int sa = qAlpha(s);-
1522-
1523#define OP(a, b) hardlight_op(a, b, da, sa)-
1524 int r = OP( qRed(d), qRed(s));-
1525 int b = OP( qBlue(d), qBlue(s));-
1526 int g = OP(qGreen(d), qGreen(s));-
1527 int a = mix_alpha(da, sa);-
1528#undef OP-
1529-
1530 coverage.store(&dest[i], qRgba(r, g, b, a));-
1531 }
never executed: end of block
0
1532}
never executed: end of block
0
1533-
1534void QT_FASTCALL comp_func_HardLight(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
1535{-
1536 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1537 comp_func_HardLight_impl(dest, src, length, QFullCoverage());
never executed: comp_func_HardLight_impl(dest, src, length, QFullCoverage());
0
1538 else-
1539 comp_func_HardLight_impl(dest, src, length, QPartialCoverage(const_alpha));
never executed: comp_func_HardLight_impl(dest, src, length, QPartialCoverage(const_alpha));
0
1540}-
1541-
1542/*-
1543 if 2.Sca <= Sa-
1544 Dca' = Dca.(Sa + (2.Sca - Sa).(1 - Dca/Da)) + Sca.(1 - Da) + Dca.(1 - Sa)-
1545 otherwise if 2.Sca > Sa and 4.Dca <= Da-
1546 Dca' = Dca.Sa + Da.(2.Sca - Sa).(4.Dca/Da.(4.Dca/Da + 1).(Dca/Da - 1) + 7.Dca/Da) + Sca.(1 - Da) + Dca.(1 - Sa)-
1547 otherwise if 2.Sca > Sa and 4.Dca > Da-
1548 Dca' = Dca.Sa + Da.(2.Sca - Sa).((Dca/Da)^0.5 - Dca/Da) + Sca.(1 - Da) + Dca.(1 - Sa)-
1549*/-
1550static inline int soft_light_op(int dst, int src, int da, int sa)-
1551{-
1552 const int src2 = src << 1;-
1553 const int dst_np = da != 0 ? (255 * dst) / da : 0;
da != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1554 const int temp = (src * (255 - da) + dst * (255 - sa)) * 255;-
1555-
1556 if (src2 < sa)
src2 < saDescription
TRUEnever evaluated
FALSEnever evaluated
0
1557 return (dst * (sa * 255 + (src2 - sa) * (255 - dst_np)) + temp) / 65025;
never executed: return (dst * (sa * 255 + (src2 - sa) * (255 - dst_np)) + temp) / 65025;
0
1558 else if (4 * dst <= da)
4 * dst <= daDescription
TRUEnever evaluated
FALSEnever evaluated
0
1559 return (dst * sa * 255 + da * (src2 - sa) * ((((16 * dst_np - 12 * 255) * dst_np + 3 * 65025) * dst_np) / 65025) + temp) / 65025;
never executed: return (dst * sa * 255 + da * (src2 - sa) * ((((16 * dst_np - 12 * 255) * dst_np + 3 * 65025) * dst_np) / 65025) + temp) / 65025;
0
1560 else {-
1561 return (dst * sa * 255 + da * (src2 - sa) * (int(qSqrt(qreal(dst_np * 255))) - dst_np) + temp) / 65025;
never executed: return (dst * sa * 255 + da * (src2 - sa) * (int(qSqrt(qreal(dst_np * 255))) - dst_np) + temp) / 65025;
0
1562 }-
1563}-
1564-
1565template <typename T>-
1566Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_SoftLight_impl(uint *dest, int length, uint color, const T &coverage)-
1567{-
1568 int sa = qAlpha(color);-
1569 int sr = qRed(color);-
1570 int sg = qGreen(color);-
1571 int sb = qBlue(color);-
1572-
1573 PRELOAD_INIT(dest)-
1574 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1575 PRELOAD_COND(dest)-
1576 uint d = dest[i];-
1577 int da = qAlpha(d);-
1578-
1579#define OP(a, b) soft_light_op(a, b, da, sa)-
1580 int r = OP( qRed(d), sr);-
1581 int b = OP( qBlue(d), sb);-
1582 int g = OP(qGreen(d), sg);-
1583 int a = mix_alpha(da, sa);-
1584#undef OP-
1585-
1586 coverage.store(&dest[i], qRgba(r, g, b, a));-
1587 }
never executed: end of block
0
1588}
never executed: end of block
0
1589-
1590void QT_FASTCALL comp_func_solid_SoftLight(uint *dest, int length, uint color, uint const_alpha)-
1591{-
1592 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1593 comp_func_solid_SoftLight_impl(dest, length, color, QFullCoverage());
never executed: comp_func_solid_SoftLight_impl(dest, length, color, QFullCoverage());
0
1594 else-
1595 comp_func_solid_SoftLight_impl(dest, length, color, QPartialCoverage(const_alpha));
never executed: comp_func_solid_SoftLight_impl(dest, length, color, QPartialCoverage(const_alpha));
0
1596}-
1597-
1598template <typename T>-
1599Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_SoftLight_impl(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, const T &coverage)-
1600{-
1601 PRELOAD_INIT2(dest, src)-
1602 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1603 PRELOAD_COND2(dest, src)-
1604 uint d = dest[i];-
1605 uint s = src[i];-
1606-
1607 int da = qAlpha(d);-
1608 int sa = qAlpha(s);-
1609-
1610#define OP(a, b) soft_light_op(a, b, da, sa)-
1611 int r = OP( qRed(d), qRed(s));-
1612 int b = OP( qBlue(d), qBlue(s));-
1613 int g = OP(qGreen(d), qGreen(s));-
1614 int a = mix_alpha(da, sa);-
1615#undef OP-
1616-
1617 coverage.store(&dest[i], qRgba(r, g, b, a));-
1618 }
never executed: end of block
0
1619}
never executed: end of block
0
1620-
1621void QT_FASTCALL comp_func_SoftLight(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
1622{-
1623 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1624 comp_func_SoftLight_impl(dest, src, length, QFullCoverage());
never executed: comp_func_SoftLight_impl(dest, src, length, QFullCoverage());
0
1625 else-
1626 comp_func_SoftLight_impl(dest, src, length, QPartialCoverage(const_alpha));
never executed: comp_func_SoftLight_impl(dest, src, length, QPartialCoverage(const_alpha));
0
1627}-
1628-
1629/*-
1630 Dca' = abs(Dca.Sa - Sca.Da) + Sca.(1 - Da) + Dca.(1 - Sa)-
1631 = Sca + Dca - 2.min(Sca.Da, Dca.Sa)-
1632*/-
1633static inline int difference_op(int dst, int src, int da, int sa)-
1634{-
1635 return src + dst - qt_div_255(2 * qMin(src * da, dst * sa));
never executed: return src + dst - qt_div_255(2 * qMin(src * da, dst * sa));
0
1636}-
1637-
1638template <typename T>-
1639Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_solid_Difference_impl(uint *dest, int length, uint color, const T &coverage)-
1640{-
1641 int sa = qAlpha(color);-
1642 int sr = qRed(color);-
1643 int sg = qGreen(color);-
1644 int sb = qBlue(color);-
1645-
1646 PRELOAD_INIT(dest)-
1647 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1648 PRELOAD_COND(dest)-
1649 uint d = dest[i];-
1650 int da = qAlpha(d);-
1651-
1652#define OP(a, b) difference_op(a, b, da, sa)-
1653 int r = OP( qRed(d), sr);-
1654 int b = OP( qBlue(d), sb);-
1655 int g = OP(qGreen(d), sg);-
1656 int a = mix_alpha(da, sa);-
1657#undef OP-
1658-
1659 coverage.store(&dest[i], qRgba(r, g, b, a));-
1660 }
never executed: end of block
0
1661}
never executed: end of block
0
1662-
1663void QT_FASTCALL comp_func_solid_Difference(uint *dest, int length, uint color, uint const_alpha)-
1664{-
1665 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1666 comp_func_solid_Difference_impl(dest, length, color, QFullCoverage());
never executed: comp_func_solid_Difference_impl(dest, length, color, QFullCoverage());
0
1667 else-
1668 comp_func_solid_Difference_impl(dest, length, color, QPartialCoverage(const_alpha));
never executed: comp_func_solid_Difference_impl(dest, length, color, QPartialCoverage(const_alpha));
0
1669}-
1670-
1671template <typename T>-
1672Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_Difference_impl(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, const T &coverage)-
1673{-
1674 PRELOAD_INIT2(dest, src)-
1675 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1676 PRELOAD_COND2(dest, src)-
1677 uint d = dest[i];-
1678 uint s = src[i];-
1679-
1680 int da = qAlpha(d);-
1681 int sa = qAlpha(s);-
1682-
1683#define OP(a, b) difference_op(a, b, da, sa)-
1684 int r = OP( qRed(d), qRed(s));-
1685 int b = OP( qBlue(d), qBlue(s));-
1686 int g = OP(qGreen(d), qGreen(s));-
1687 int a = mix_alpha(da, sa);-
1688#undef OP-
1689-
1690 coverage.store(&dest[i], qRgba(r, g, b, a));-
1691 }
never executed: end of block
0
1692}
never executed: end of block
0
1693-
1694void QT_FASTCALL comp_func_Difference(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
1695{-
1696 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1697 comp_func_Difference_impl(dest, src, length, QFullCoverage());
never executed: comp_func_Difference_impl(dest, src, length, QFullCoverage());
0
1698 else-
1699 comp_func_Difference_impl(dest, src, length, QPartialCoverage(const_alpha));
never executed: comp_func_Difference_impl(dest, src, length, QPartialCoverage(const_alpha));
0
1700}-
1701-
1702/*-
1703 Dca' = (Sca.Da + Dca.Sa - 2.Sca.Dca) + Sca.(1 - Da) + Dca.(1 - Sa)-
1704*/-
1705template <typename T>-
1706Q_STATIC_TEMPLATE_FUNCTION inline void QT_FASTCALL comp_func_solid_Exclusion_impl(uint *dest, int length, uint color, const T &coverage)-
1707{-
1708 int sa = qAlpha(color);-
1709 int sr = qRed(color);-
1710 int sg = qGreen(color);-
1711 int sb = qBlue(color);-
1712-
1713 PRELOAD_INIT(dest)-
1714 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1715 PRELOAD_COND(dest)-
1716 uint d = dest[i];-
1717 int da = qAlpha(d);-
1718-
1719#define OP(a, b) (a + b - qt_div_255(2*(a*b)))-
1720 int r = OP( qRed(d), sr);-
1721 int b = OP( qBlue(d), sb);-
1722 int g = OP(qGreen(d), sg);-
1723 int a = mix_alpha(da, sa);-
1724#undef OP-
1725-
1726 coverage.store(&dest[i], qRgba(r, g, b, a));-
1727 }
never executed: end of block
0
1728}
never executed: end of block
0
1729-
1730void QT_FASTCALL comp_func_solid_Exclusion(uint *dest, int length, uint color, uint const_alpha)-
1731{-
1732 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1733 comp_func_solid_Exclusion_impl(dest, length, color, QFullCoverage());
never executed: comp_func_solid_Exclusion_impl(dest, length, color, QFullCoverage());
0
1734 else-
1735 comp_func_solid_Exclusion_impl(dest, length, color, QPartialCoverage(const_alpha));
never executed: comp_func_solid_Exclusion_impl(dest, length, color, QPartialCoverage(const_alpha));
0
1736}-
1737-
1738template <typename T>-
1739Q_STATIC_TEMPLATE_FUNCTION inline void comp_func_Exclusion_impl(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, const T &coverage)-
1740{-
1741 PRELOAD_INIT2(dest, src)-
1742 for (int i = 0; i < length; ++i) {
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
0
1743 PRELOAD_COND2(dest, src)-
1744 uint d = dest[i];-
1745 uint s = src[i];-
1746-
1747 int da = qAlpha(d);-
1748 int sa = qAlpha(s);-
1749-
1750#define OP(a, b) (a + b - ((a*b) >> 7))-
1751 int r = OP( qRed(d), qRed(s));-
1752 int b = OP( qBlue(d), qBlue(s));-
1753 int g = OP(qGreen(d), qGreen(s));-
1754 int a = mix_alpha(da, sa);-
1755#undef OP-
1756-
1757 coverage.store(&dest[i], qRgba(r, g, b, a));-
1758 }
never executed: end of block
0
1759}
never executed: end of block
0
1760-
1761void QT_FASTCALL comp_func_Exclusion(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)-
1762{-
1763 if (const_alpha == 255)
const_alpha == 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1764 comp_func_Exclusion_impl(dest, src, length, QFullCoverage());
never executed: comp_func_Exclusion_impl(dest, src, length, QFullCoverage());
0
1765 else-
1766 comp_func_Exclusion_impl(dest, src, length, QPartialCoverage(const_alpha));
never executed: comp_func_Exclusion_impl(dest, src, length, QPartialCoverage(const_alpha));
0
1767}-
1768-
1769void QT_FASTCALL rasterop_solid_SourceOrDestination(uint *dest,-
1770 int length,-
1771 uint color,-
1772 uint const_alpha)-
1773{-
1774 Q_UNUSED(const_alpha);-
1775 while (length--)
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1776 *dest++ |= color;
never executed: *dest++ |= color;
0
1777}
never executed: end of block
0
1778-
1779void QT_FASTCALL rasterop_SourceOrDestination(uint *Q_DECL_RESTRICT dest,-
1780 const uint *Q_DECL_RESTRICT src,-
1781 int length,-
1782 uint const_alpha)-
1783{-
1784 Q_UNUSED(const_alpha);-
1785 while (length--)
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1786 *dest++ |= *src++;
never executed: *dest++ |= *src++;
0
1787}
never executed: end of block
0
1788-
1789void QT_FASTCALL rasterop_solid_SourceAndDestination(uint *dest,-
1790 int length,-
1791 uint color,-
1792 uint const_alpha)-
1793{-
1794 Q_UNUSED(const_alpha);-
1795 color |= 0xff000000;-
1796 while (length--)
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1797 *dest++ &= color;
never executed: *dest++ &= color;
0
1798}
never executed: end of block
0
1799-
1800void QT_FASTCALL rasterop_SourceAndDestination(uint *Q_DECL_RESTRICT dest,-
1801 const uint *Q_DECL_RESTRICT src,-
1802 int length,-
1803 uint const_alpha)-
1804{-
1805 Q_UNUSED(const_alpha);-
1806 while (length--) {
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1807 *dest = (*src & *dest) | 0xff000000;-
1808 ++dest; ++src;-
1809 }
never executed: end of block
0
1810}
never executed: end of block
0
1811-
1812void QT_FASTCALL rasterop_solid_SourceXorDestination(uint *dest,-
1813 int length,-
1814 uint color,-
1815 uint const_alpha)-
1816{-
1817 Q_UNUSED(const_alpha);-
1818 color &= 0x00ffffff;-
1819 while (length--)
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1820 *dest++ ^= color;
never executed: *dest++ ^= color;
0
1821}
never executed: end of block
0
1822-
1823void QT_FASTCALL rasterop_SourceXorDestination(uint *Q_DECL_RESTRICT dest,-
1824 const uint *Q_DECL_RESTRICT src,-
1825 int length,-
1826 uint const_alpha)-
1827{-
1828 Q_UNUSED(const_alpha);-
1829 while (length--) {
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1830 *dest = (*src ^ *dest) | 0xff000000;-
1831 ++dest; ++src;-
1832 }
never executed: end of block
0
1833}
never executed: end of block
0
1834-
1835void QT_FASTCALL rasterop_solid_NotSourceAndNotDestination(uint *dest,-
1836 int length,-
1837 uint color,-
1838 uint const_alpha)-
1839{-
1840 Q_UNUSED(const_alpha);-
1841 color = ~color;-
1842 while (length--) {
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1843 *dest = (color & ~(*dest)) | 0xff000000;-
1844 ++dest;-
1845 }
never executed: end of block
0
1846}
never executed: end of block
0
1847-
1848void QT_FASTCALL rasterop_NotSourceAndNotDestination(uint *Q_DECL_RESTRICT dest,-
1849 const uint *Q_DECL_RESTRICT src,-
1850 int length,-
1851 uint const_alpha)-
1852{-
1853 Q_UNUSED(const_alpha);-
1854 while (length--) {
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1855 *dest = (~(*src) & ~(*dest)) | 0xff000000;-
1856 ++dest; ++src;-
1857 }
never executed: end of block
0
1858}
never executed: end of block
0
1859-
1860void QT_FASTCALL rasterop_solid_NotSourceOrNotDestination(uint *dest,-
1861 int length,-
1862 uint color,-
1863 uint const_alpha)-
1864{-
1865 Q_UNUSED(const_alpha);-
1866 color = ~color | 0xff000000;-
1867 while (length--) {
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1868 *dest = color | ~(*dest);-
1869 ++dest;-
1870 }
never executed: end of block
0
1871}
never executed: end of block
0
1872-
1873void QT_FASTCALL rasterop_NotSourceOrNotDestination(uint *Q_DECL_RESTRICT dest,-
1874 const uint *Q_DECL_RESTRICT src,-
1875 int length,-
1876 uint const_alpha)-
1877{-
1878 Q_UNUSED(const_alpha);-
1879 while (length--) {
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1880 *dest = ~(*src) | ~(*dest) | 0xff000000;-
1881 ++dest; ++src;-
1882 }
never executed: end of block
0
1883}
never executed: end of block
0
1884-
1885void QT_FASTCALL rasterop_solid_NotSourceXorDestination(uint *dest,-
1886 int length,-
1887 uint color,-
1888 uint const_alpha)-
1889{-
1890 Q_UNUSED(const_alpha);-
1891 color = ~color & 0x00ffffff;-
1892 while (length--) {
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1893 *dest = color ^ (*dest);-
1894 ++dest;-
1895 }
never executed: end of block
0
1896}
never executed: end of block
0
1897-
1898void QT_FASTCALL rasterop_NotSourceXorDestination(uint *Q_DECL_RESTRICT dest,-
1899 const uint *Q_DECL_RESTRICT src,-
1900 int length,-
1901 uint const_alpha)-
1902{-
1903 Q_UNUSED(const_alpha);-
1904 while (length--) {
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1905 *dest = ((~(*src)) ^ (*dest)) | 0xff000000;-
1906 ++dest; ++src;-
1907 }
never executed: end of block
0
1908}
never executed: end of block
0
1909-
1910void QT_FASTCALL rasterop_solid_NotSource(uint *dest, int length,-
1911 uint color, uint const_alpha)-
1912{-
1913 Q_UNUSED(const_alpha);-
1914 qt_memfill(dest, ~color | 0xff000000, length);-
1915}
never executed: end of block
0
1916-
1917void QT_FASTCALL rasterop_NotSource(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src,-
1918 int length, uint const_alpha)-
1919{-
1920 Q_UNUSED(const_alpha);-
1921 while (length--)
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1922 *dest++ = ~(*src++) | 0xff000000;
never executed: *dest++ = ~(*src++) | 0xff000000;
0
1923}
never executed: end of block
0
1924-
1925void QT_FASTCALL rasterop_solid_NotSourceAndDestination(uint *dest,-
1926 int length,-
1927 uint color,-
1928 uint const_alpha)-
1929{-
1930 Q_UNUSED(const_alpha);-
1931 color = ~color | 0xff000000;-
1932 while (length--) {
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1933 *dest = color & *dest;-
1934 ++dest;-
1935 }
never executed: end of block
0
1936}
never executed: end of block
0
1937-
1938void QT_FASTCALL rasterop_NotSourceAndDestination(uint *Q_DECL_RESTRICT dest,-
1939 const uint *Q_DECL_RESTRICT src,-
1940 int length,-
1941 uint const_alpha)-
1942{-
1943 Q_UNUSED(const_alpha);-
1944 while (length--) {
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1945 *dest = (~(*src) & *dest) | 0xff000000;-
1946 ++dest; ++src;-
1947 }
never executed: end of block
0
1948}
never executed: end of block
0
1949-
1950void QT_FASTCALL rasterop_solid_SourceAndNotDestination(uint *dest,-
1951 int length,-
1952 uint color,-
1953 uint const_alpha)-
1954{-
1955 Q_UNUSED(const_alpha);-
1956 while (length--) {
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1957 *dest = (color & ~(*dest)) | 0xff000000;-
1958 ++dest;-
1959 }
never executed: end of block
0
1960}
never executed: end of block
0
1961-
1962void QT_FASTCALL rasterop_SourceAndNotDestination(uint *Q_DECL_RESTRICT dest,-
1963 const uint *Q_DECL_RESTRICT src,-
1964 int length,-
1965 uint const_alpha)-
1966{-
1967 Q_UNUSED(const_alpha);-
1968 while (length--) {
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1969 *dest = (*src & ~(*dest)) | 0xff000000;-
1970 ++dest; ++src;-
1971 }
never executed: end of block
0
1972}
never executed: end of block
0
1973-
1974void QT_FASTCALL rasterop_NotSourceOrDestination(uint *Q_DECL_RESTRICT dest,-
1975 const uint *Q_DECL_RESTRICT src,-
1976 int length,-
1977 uint const_alpha)-
1978{-
1979 Q_UNUSED(const_alpha);-
1980 while (length--) {
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1981 *dest = (~(*src) | *dest) | 0xff000000;-
1982 ++dest; ++src;-
1983 }
never executed: end of block
0
1984}
never executed: end of block
0
1985-
1986void QT_FASTCALL rasterop_solid_NotSourceOrDestination(uint *Q_DECL_RESTRICT dest,-
1987 int length,-
1988 uint color,-
1989 uint const_alpha)-
1990{-
1991 Q_UNUSED(const_alpha);-
1992 color = ~color | 0xff000000;-
1993 while (length--)
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
1994 *dest++ |= color;
never executed: *dest++ |= color;
0
1995}
never executed: end of block
0
1996-
1997void QT_FASTCALL rasterop_SourceOrNotDestination(uint *Q_DECL_RESTRICT dest,-
1998 const uint *Q_DECL_RESTRICT src,-
1999 int length,-
2000 uint const_alpha)-
2001{-
2002 Q_UNUSED(const_alpha);-
2003 while (length--) {
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
2004 *dest = (*src | ~(*dest)) | 0xff000000;-
2005 ++dest; ++src;-
2006 }
never executed: end of block
0
2007}
never executed: end of block
0
2008-
2009void QT_FASTCALL rasterop_solid_SourceOrNotDestination(uint *Q_DECL_RESTRICT dest,-
2010 int length,-
2011 uint color,-
2012 uint const_alpha)-
2013{-
2014 Q_UNUSED(const_alpha);-
2015 while (length--) {
length--Description
TRUEnever evaluated
FALSEnever evaluated
0
2016 *dest = (color | ~(*dest)) | 0xff000000;-
2017 ++dest;-
2018 }
never executed: end of block
0
2019}
never executed: end of block
0
2020-
2021void QT_FASTCALL rasterop_ClearDestination(uint *Q_DECL_RESTRICT dest,-
2022 const uint *Q_DECL_RESTRICT src,-
2023 int length,-
2024 uint const_alpha)-
2025{-
2026 Q_UNUSED(src);-
2027 comp_func_solid_SourceOver (dest, length, 0xff000000, const_alpha);-
2028}
never executed: end of block
0
2029-
2030void QT_FASTCALL rasterop_solid_ClearDestination(uint *Q_DECL_RESTRICT dest,-
2031 int length,-
2032 uint color,-
2033 uint const_alpha)-
2034{-
2035 Q_UNUSED(color);-
2036 comp_func_solid_SourceOver (dest, length, 0xff000000, const_alpha);-
2037}
never executed: end of block
0
2038-
2039void QT_FASTCALL rasterop_SetDestination(uint *Q_DECL_RESTRICT dest,-
2040 const uint *Q_DECL_RESTRICT src,-
2041 int length,-
2042 uint const_alpha)-
2043{-
2044 Q_UNUSED(src);-
2045 comp_func_solid_SourceOver (dest, length, 0xffffffff, const_alpha);-
2046}
never executed: end of block
0
2047-
2048void QT_FASTCALL rasterop_solid_SetDestination(uint *Q_DECL_RESTRICT dest,-
2049 int length,-
2050 uint color,-
2051 uint const_alpha)-
2052{-
2053 Q_UNUSED(color);-
2054 comp_func_solid_SourceOver (dest, length, 0xffffffff, const_alpha);-
2055}
never executed: end of block
0
2056-
2057void QT_FASTCALL rasterop_NotDestination(uint *Q_DECL_RESTRICT dest,-
2058 const uint *Q_DECL_RESTRICT src,-
2059 int length,-
2060 uint const_alpha)-
2061{-
2062 Q_UNUSED(src);-
2063 rasterop_solid_SourceXorDestination (dest, length, 0x00ffffff, const_alpha);-
2064}
never executed: end of block
0
2065-
2066void QT_FASTCALL rasterop_solid_NotDestination(uint *Q_DECL_RESTRICT dest,-
2067 int length,-
2068 uint color,-
2069 uint const_alpha)-
2070{-
2071 Q_UNUSED(color);-
2072 rasterop_solid_SourceXorDestination (dest, length, 0x00ffffff, const_alpha);-
2073}
never executed: end of block
0
2074-
2075CompositionFunctionSolid qt_functionForModeSolid_C[] = {-
2076 comp_func_solid_SourceOver,-
2077 comp_func_solid_DestinationOver,-
2078 comp_func_solid_Clear,-
2079 comp_func_solid_Source,-
2080 comp_func_solid_Destination,-
2081 comp_func_solid_SourceIn,-
2082 comp_func_solid_DestinationIn,-
2083 comp_func_solid_SourceOut,-
2084 comp_func_solid_DestinationOut,-
2085 comp_func_solid_SourceAtop,-
2086 comp_func_solid_DestinationAtop,-
2087 comp_func_solid_XOR,-
2088 comp_func_solid_Plus,-
2089 comp_func_solid_Multiply,-
2090 comp_func_solid_Screen,-
2091 comp_func_solid_Overlay,-
2092 comp_func_solid_Darken,-
2093 comp_func_solid_Lighten,-
2094 comp_func_solid_ColorDodge,-
2095 comp_func_solid_ColorBurn,-
2096 comp_func_solid_HardLight,-
2097 comp_func_solid_SoftLight,-
2098 comp_func_solid_Difference,-
2099 comp_func_solid_Exclusion,-
2100 rasterop_solid_SourceOrDestination,-
2101 rasterop_solid_SourceAndDestination,-
2102 rasterop_solid_SourceXorDestination,-
2103 rasterop_solid_NotSourceAndNotDestination,-
2104 rasterop_solid_NotSourceOrNotDestination,-
2105 rasterop_solid_NotSourceXorDestination,-
2106 rasterop_solid_NotSource,-
2107 rasterop_solid_NotSourceAndDestination,-
2108 rasterop_solid_SourceAndNotDestination,-
2109 rasterop_solid_NotSourceOrDestination,-
2110 rasterop_solid_SourceOrNotDestination,-
2111 rasterop_solid_ClearDestination,-
2112 rasterop_solid_SetDestination,-
2113 rasterop_solid_NotDestination-
2114};-
2115-
2116CompositionFunctionSolid64 qt_functionForModeSolid64_C[] = {-
2117 comp_func_solid_SourceOver_rgb64,-
2118 comp_func_solid_DestinationOver_rgb64,-
2119 comp_func_solid_Clear_rgb64,-
2120 comp_func_solid_Source_rgb64,-
2121 comp_func_solid_Destination_rgb64,-
2122 comp_func_solid_SourceIn_rgb64,-
2123 comp_func_solid_DestinationIn_rgb64,-
2124 comp_func_solid_SourceOut_rgb64,-
2125 comp_func_solid_DestinationOut_rgb64,-
2126 comp_func_solid_SourceAtop_rgb64,-
2127 comp_func_solid_DestinationAtop_rgb64,-
2128 comp_func_solid_XOR_rgb64,-
2129 comp_func_solid_Plus_rgb64,-
2130 0, 0, 0, 0, 0,-
2131 0, 0, 0, 0, 0, 0,-
2132 0, 0, 0, 0, 0, 0,-
2133 0, 0, 0, 0, 0, 0, 0, 0-
2134};-
2135-
2136CompositionFunction qt_functionForMode_C[] = {-
2137 comp_func_SourceOver,-
2138 comp_func_DestinationOver,-
2139 comp_func_Clear,-
2140 comp_func_Source,-
2141 comp_func_Destination,-
2142 comp_func_SourceIn,-
2143 comp_func_DestinationIn,-
2144 comp_func_SourceOut,-
2145 comp_func_DestinationOut,-
2146 comp_func_SourceAtop,-
2147 comp_func_DestinationAtop,-
2148 comp_func_XOR,-
2149 comp_func_Plus,-
2150 comp_func_Multiply,-
2151 comp_func_Screen,-
2152 comp_func_Overlay,-
2153 comp_func_Darken,-
2154 comp_func_Lighten,-
2155 comp_func_ColorDodge,-
2156 comp_func_ColorBurn,-
2157 comp_func_HardLight,-
2158 comp_func_SoftLight,-
2159 comp_func_Difference,-
2160 comp_func_Exclusion,-
2161 rasterop_SourceOrDestination,-
2162 rasterop_SourceAndDestination,-
2163 rasterop_SourceXorDestination,-
2164 rasterop_NotSourceAndNotDestination,-
2165 rasterop_NotSourceOrNotDestination,-
2166 rasterop_NotSourceXorDestination,-
2167 rasterop_NotSource,-
2168 rasterop_NotSourceAndDestination,-
2169 rasterop_SourceAndNotDestination,-
2170 rasterop_NotSourceOrDestination,-
2171 rasterop_SourceOrNotDestination,-
2172 rasterop_ClearDestination,-
2173 rasterop_SetDestination,-
2174 rasterop_NotDestination-
2175};-
2176-
2177CompositionFunction64 qt_functionForMode64_C[] = {-
2178 comp_func_SourceOver_rgb64,-
2179 comp_func_DestinationOver_rgb64,-
2180 comp_func_Clear_rgb64,-
2181 comp_func_Source_rgb64,-
2182 comp_func_Destination_rgb64,-
2183 comp_func_SourceIn_rgb64,-
2184 comp_func_DestinationIn_rgb64,-
2185 comp_func_SourceOut_rgb64,-
2186 comp_func_DestinationOut_rgb64,-
2187 comp_func_SourceAtop_rgb64,-
2188 comp_func_DestinationAtop_rgb64,-
2189 comp_func_XOR_rgb64,-
2190 comp_func_Plus_rgb64,-
2191 0, 0, 0, 0, 0,-
2192 0, 0, 0, 0, 0, 0,-
2193 0, 0, 0, 0, 0, 0,-
2194 0, 0, 0, 0, 0, 0, 0, 0-
2195};-
2196-
2197QT_END_NAMESPACE-
Source codeSwitch to Preprocessed file

Generated by Squish Coco Non-Commercial 4.3.0-BETA-master-30-08-2018-4cb69e9