1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QDRAWHELPER_NEON_P_H
5#define QDRAWHELPER_NEON_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <private/qdrawhelper_p.h>
19
20QT_BEGIN_NAMESPACE
21
22#ifdef __ARM_NEON__
23
24void qt_blend_argb32_on_argb32_neon(uchar *destPixels, int dbpl,
25 const uchar *srcPixels, int sbpl,
26 int w, int h,
27 int const_alpha);
28
29void qt_blend_rgb32_on_rgb32_neon(uchar *destPixels, int dbpl,
30 const uchar *srcPixels, int sbpl,
31 int w, int h,
32 int const_alpha);
33
34void qt_blend_argb32_on_rgb16_neon(uchar *destPixels, int dbpl,
35 const uchar *srcPixels, int sbpl,
36 int w, int h,
37 int const_alpha);
38
39void qt_blend_argb32_on_argb32_scanline_neon(uint *dest,
40 const uint *src,
41 int length,
42 uint const_alpha);
43
44void qt_blend_rgb16_on_argb32_neon(uchar *destPixels, int dbpl,
45 const uchar *srcPixels, int sbpl,
46 int w, int h,
47 int const_alpha);
48
49void qt_blend_rgb16_on_rgb16_neon(uchar *destPixels, int dbpl,
50 const uchar *srcPixels, int sbpl,
51 int w, int h,
52 int const_alpha);
53
54void qt_alphamapblit_quint16_neon(QRasterBuffer *rasterBuffer,
55 int x, int y, const QRgba64 &color,
56 const uchar *bitmap,
57 int mapWidth, int mapHeight, int mapStride,
58 const QClipData *clip, bool /*useGammaCorrection*/);
59
60void qt_scale_image_argb32_on_rgb16_neon(uchar *destPixels, int dbpl,
61 const uchar *srcPixels, int sbpl, int srch,
62 const QRectF &targetRect,
63 const QRectF &sourceRect,
64 const QRect &clip,
65 int const_alpha);
66
67void qt_scale_image_rgb16_on_rgb16_neon(uchar *destPixels, int dbpl,
68 const uchar *srcPixels, int sbpl, int srch,
69 const QRectF &targetRect,
70 const QRectF &sourceRect,
71 const QRect &clip,
72 int const_alpha);
73
74void qt_transform_image_argb32_on_rgb16_neon(uchar *destPixels, int dbpl,
75 const uchar *srcPixels, int sbpl,
76 const QRectF &targetRect,
77 const QRectF &sourceRect,
78 const QRect &clip,
79 const QTransform &targetRectTransform,
80 int const_alpha);
81
82void qt_transform_image_rgb16_on_rgb16_neon(uchar *destPixels, int dbpl,
83 const uchar *srcPixels, int sbpl,
84 const QRectF &targetRect,
85 const QRectF &sourceRect,
86 const QRect &clip,
87 const QTransform &targetRectTransform,
88 int const_alpha);
89
90void qt_memfill32_neon(quint32 *dest, quint32 value, qsizetype count);
91void qt_memrotate90_16_neon(const uchar *srcPixels, int w, int h, int sbpl, uchar *destPixels, int dbpl);
92void qt_memrotate270_16_neon(const uchar *srcPixels, int w, int h, int sbpl, uchar *destPixels, int dbpl);
93
94uint * QT_FASTCALL qt_destFetchRGB16_neon(uint *buffer,
95 QRasterBuffer *rasterBuffer,
96 int x, int y, int length);
97
98void QT_FASTCALL qt_destStoreRGB16_neon(QRasterBuffer *rasterBuffer,
99 int x, int y, const uint *buffer, int length);
100
101void QT_FASTCALL comp_func_solid_SourceOver_neon(uint *destPixels, int length, uint color, uint const_alpha);
102void QT_FASTCALL comp_func_Plus_neon(uint *dst, const uint *src, int length, uint const_alpha);
103
104const uint * QT_FASTCALL qt_fetchUntransformed_888_neon(uint *buffer, const Operator *, const QSpanData *data,
105 int y, int x, int length);
106
107#endif // __ARM_NEON__
108
109QT_END_NAMESPACE
110
111#endif // QDRAWHELPER_NEON_P_H
112

source code of qtbase/src/gui/painting/qdrawhelper_neon_p.h