Coverage Report

Created: 2025-07-01 06:46

/src/FreeRDP/libfreerdp/primitives/prim_internal.h
Line
Count
Source (jump to first uncovered line)
1
/* prim_internal.h
2
 * vi:ts=4 sw=4
3
 *
4
 * (c) Copyright 2012 Hewlett-Packard Development Company, L.P.
5
 * Licensed under the Apache License, Version 2.0 (the "License"); you may
6
 * not use this file except in compliance with the License. You may obtain
7
 * a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
8
 * Unless required by applicable law or agreed to in writing, software
9
 * distributed under the License is distributed on an "AS IS" BASIS,
10
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11
 * or implied. See the License for the specific language governing
12
 * permissions and limitations under the License.  Algorithms used by
13
 * this code may be covered by patents by HP, Microsoft, or other parties.
14
 *
15
 */
16
17
#ifndef FREERDP_LIB_PRIM_INTERNAL_H
18
#define FREERDP_LIB_PRIM_INTERNAL_H
19
20
#include <winpr/platform.h>
21
#include <freerdp/config.h>
22
23
#include <freerdp/primitives.h>
24
#include <freerdp/api.h>
25
26
#include "../core/simd.h"
27
28
#ifdef __GNUC__
29
#define PRIM_ALIGN_128 __attribute__((aligned(16)))
30
#else
31
#ifdef _WIN32
32
#define PRIM_ALIGN_128 __declspec(align(16))
33
#endif
34
#endif
35
36
#if defined(SSE_AVX_INTRINSICS_ENABLED) || defined(NEON_INTRINSICS_ENABLED) || defined(WITH_OPENCL)
37
#define HAVE_OPTIMIZED_PRIMITIVES 1
38
#endif
39
40
#if defined(SSE_AVX_INTRINSICS_ENABLED) || defined(NEON_INTRINSICS_ENABLED)
41
#define HAVE_CPU_OPTIMIZED_PRIMITIVES 1
42
#endif
43
44
static INLINE BYTE* writePixelBGRA(BYTE* dst, DWORD formatSize, UINT32 format, BYTE R, BYTE G,
45
                                   BYTE B, BYTE A)
46
0
{
47
0
  WINPR_UNUSED(formatSize);
48
0
  WINPR_UNUSED(format);
49
50
0
  *dst++ = B;
51
0
  *dst++ = G;
52
0
  *dst++ = R;
53
0
  *dst++ = A;
54
0
  return dst;
55
0
}
Unexecuted instantiation: primitives.c:writePixelBGRA
Unexecuted instantiation: prim_add.c:writePixelBGRA
Unexecuted instantiation: prim_andor.c:writePixelBGRA
Unexecuted instantiation: prim_alphaComp.c:writePixelBGRA
Unexecuted instantiation: prim_colors.c:writePixelBGRA
Unexecuted instantiation: prim_copy.c:writePixelBGRA
Unexecuted instantiation: prim_set.c:writePixelBGRA
Unexecuted instantiation: prim_shift.c:writePixelBGRA
Unexecuted instantiation: prim_sign.c:writePixelBGRA
Unexecuted instantiation: prim_YUV.c:writePixelBGRA
Unexecuted instantiation: prim_YCoCg.c:writePixelBGRA
Unexecuted instantiation: prim_colors_neon.c:writePixelBGRA
Unexecuted instantiation: prim_YCoCg_neon.c:writePixelBGRA
Unexecuted instantiation: prim_YUV_neon.c:writePixelBGRA
Unexecuted instantiation: prim_colors_sse2.c:writePixelBGRA
Unexecuted instantiation: prim_set_sse2.c:writePixelBGRA
Unexecuted instantiation: prim_add_sse3.c:writePixelBGRA
Unexecuted instantiation: prim_alphaComp_sse3.c:writePixelBGRA
Unexecuted instantiation: prim_andor_sse3.c:writePixelBGRA
Unexecuted instantiation: prim_shift_sse3.c:writePixelBGRA
Unexecuted instantiation: prim_sign_ssse3.c:writePixelBGRA
Unexecuted instantiation: prim_YCoCg_ssse3.c:writePixelBGRA
Unexecuted instantiation: prim_copy_sse4_1.c:writePixelBGRA
Unexecuted instantiation: prim_YUV_sse4.1.c:writePixelBGRA
Unexecuted instantiation: prim_copy_avx2.c:writePixelBGRA
56
57
static INLINE BYTE* writePixelBGRX(BYTE* dst, DWORD formatSize, UINT32 format, BYTE R, BYTE G,
58
                                   BYTE B, BYTE A)
59
0
{
60
0
  WINPR_UNUSED(formatSize);
61
0
  WINPR_UNUSED(format);
62
0
  WINPR_UNUSED(A);
63
64
0
  *dst++ = B;
65
0
  *dst++ = G;
66
0
  *dst++ = R;
67
0
  dst++; /* Do not touch alpha */
68
69
0
  return dst;
70
0
}
Unexecuted instantiation: primitives.c:writePixelBGRX
Unexecuted instantiation: prim_add.c:writePixelBGRX
Unexecuted instantiation: prim_andor.c:writePixelBGRX
Unexecuted instantiation: prim_alphaComp.c:writePixelBGRX
Unexecuted instantiation: prim_colors.c:writePixelBGRX
Unexecuted instantiation: prim_copy.c:writePixelBGRX
Unexecuted instantiation: prim_set.c:writePixelBGRX
Unexecuted instantiation: prim_shift.c:writePixelBGRX
Unexecuted instantiation: prim_sign.c:writePixelBGRX
Unexecuted instantiation: prim_YUV.c:writePixelBGRX
Unexecuted instantiation: prim_YCoCg.c:writePixelBGRX
Unexecuted instantiation: prim_colors_neon.c:writePixelBGRX
Unexecuted instantiation: prim_YCoCg_neon.c:writePixelBGRX
Unexecuted instantiation: prim_YUV_neon.c:writePixelBGRX
Unexecuted instantiation: prim_colors_sse2.c:writePixelBGRX
Unexecuted instantiation: prim_set_sse2.c:writePixelBGRX
Unexecuted instantiation: prim_add_sse3.c:writePixelBGRX
Unexecuted instantiation: prim_alphaComp_sse3.c:writePixelBGRX
Unexecuted instantiation: prim_andor_sse3.c:writePixelBGRX
Unexecuted instantiation: prim_shift_sse3.c:writePixelBGRX
Unexecuted instantiation: prim_sign_ssse3.c:writePixelBGRX
Unexecuted instantiation: prim_YCoCg_ssse3.c:writePixelBGRX
Unexecuted instantiation: prim_copy_sse4_1.c:writePixelBGRX
Unexecuted instantiation: prim_YUV_sse4.1.c:writePixelBGRX
Unexecuted instantiation: prim_copy_avx2.c:writePixelBGRX
71
72
static INLINE BYTE* writePixelRGBA(BYTE* dst, DWORD formatSize, UINT32 format, BYTE R, BYTE G,
73
                                   BYTE B, BYTE A)
74
0
{
75
0
  WINPR_UNUSED(formatSize);
76
0
  WINPR_UNUSED(format);
77
78
0
  *dst++ = R;
79
0
  *dst++ = G;
80
0
  *dst++ = B;
81
0
  *dst++ = A;
82
0
  return dst;
83
0
}
Unexecuted instantiation: primitives.c:writePixelRGBA
Unexecuted instantiation: prim_add.c:writePixelRGBA
Unexecuted instantiation: prim_andor.c:writePixelRGBA
Unexecuted instantiation: prim_alphaComp.c:writePixelRGBA
Unexecuted instantiation: prim_colors.c:writePixelRGBA
Unexecuted instantiation: prim_copy.c:writePixelRGBA
Unexecuted instantiation: prim_set.c:writePixelRGBA
Unexecuted instantiation: prim_shift.c:writePixelRGBA
Unexecuted instantiation: prim_sign.c:writePixelRGBA
Unexecuted instantiation: prim_YUV.c:writePixelRGBA
Unexecuted instantiation: prim_YCoCg.c:writePixelRGBA
Unexecuted instantiation: prim_colors_neon.c:writePixelRGBA
Unexecuted instantiation: prim_YCoCg_neon.c:writePixelRGBA
Unexecuted instantiation: prim_YUV_neon.c:writePixelRGBA
Unexecuted instantiation: prim_colors_sse2.c:writePixelRGBA
Unexecuted instantiation: prim_set_sse2.c:writePixelRGBA
Unexecuted instantiation: prim_add_sse3.c:writePixelRGBA
Unexecuted instantiation: prim_alphaComp_sse3.c:writePixelRGBA
Unexecuted instantiation: prim_andor_sse3.c:writePixelRGBA
Unexecuted instantiation: prim_shift_sse3.c:writePixelRGBA
Unexecuted instantiation: prim_sign_ssse3.c:writePixelRGBA
Unexecuted instantiation: prim_YCoCg_ssse3.c:writePixelRGBA
Unexecuted instantiation: prim_copy_sse4_1.c:writePixelRGBA
Unexecuted instantiation: prim_YUV_sse4.1.c:writePixelRGBA
Unexecuted instantiation: prim_copy_avx2.c:writePixelRGBA
84
85
static INLINE BYTE* writePixelRGBX(BYTE* dst, DWORD formatSize, UINT32 format, BYTE R, BYTE G,
86
                                   BYTE B, BYTE A)
87
0
{
88
0
  WINPR_UNUSED(formatSize);
89
0
  WINPR_UNUSED(format);
90
0
  WINPR_UNUSED(A);
91
92
0
  *dst++ = R;
93
0
  *dst++ = G;
94
0
  *dst++ = B;
95
0
  dst++; /* Do not touch alpha */
96
97
0
  return dst;
98
0
}
Unexecuted instantiation: primitives.c:writePixelRGBX
Unexecuted instantiation: prim_add.c:writePixelRGBX
Unexecuted instantiation: prim_andor.c:writePixelRGBX
Unexecuted instantiation: prim_alphaComp.c:writePixelRGBX
Unexecuted instantiation: prim_colors.c:writePixelRGBX
Unexecuted instantiation: prim_copy.c:writePixelRGBX
Unexecuted instantiation: prim_set.c:writePixelRGBX
Unexecuted instantiation: prim_shift.c:writePixelRGBX
Unexecuted instantiation: prim_sign.c:writePixelRGBX
Unexecuted instantiation: prim_YUV.c:writePixelRGBX
Unexecuted instantiation: prim_YCoCg.c:writePixelRGBX
Unexecuted instantiation: prim_colors_neon.c:writePixelRGBX
Unexecuted instantiation: prim_YCoCg_neon.c:writePixelRGBX
Unexecuted instantiation: prim_YUV_neon.c:writePixelRGBX
Unexecuted instantiation: prim_colors_sse2.c:writePixelRGBX
Unexecuted instantiation: prim_set_sse2.c:writePixelRGBX
Unexecuted instantiation: prim_add_sse3.c:writePixelRGBX
Unexecuted instantiation: prim_alphaComp_sse3.c:writePixelRGBX
Unexecuted instantiation: prim_andor_sse3.c:writePixelRGBX
Unexecuted instantiation: prim_shift_sse3.c:writePixelRGBX
Unexecuted instantiation: prim_sign_ssse3.c:writePixelRGBX
Unexecuted instantiation: prim_YCoCg_ssse3.c:writePixelRGBX
Unexecuted instantiation: prim_copy_sse4_1.c:writePixelRGBX
Unexecuted instantiation: prim_YUV_sse4.1.c:writePixelRGBX
Unexecuted instantiation: prim_copy_avx2.c:writePixelRGBX
99
100
static INLINE BYTE* writePixelABGR(BYTE* dst, DWORD formatSize, UINT32 format, BYTE R, BYTE G,
101
                                   BYTE B, BYTE A)
102
0
{
103
0
  WINPR_UNUSED(formatSize);
104
0
  WINPR_UNUSED(format);
105
106
0
  *dst++ = A;
107
0
  *dst++ = B;
108
0
  *dst++ = G;
109
0
  *dst++ = R;
110
0
  return dst;
111
0
}
Unexecuted instantiation: primitives.c:writePixelABGR
Unexecuted instantiation: prim_add.c:writePixelABGR
Unexecuted instantiation: prim_andor.c:writePixelABGR
Unexecuted instantiation: prim_alphaComp.c:writePixelABGR
Unexecuted instantiation: prim_colors.c:writePixelABGR
Unexecuted instantiation: prim_copy.c:writePixelABGR
Unexecuted instantiation: prim_set.c:writePixelABGR
Unexecuted instantiation: prim_shift.c:writePixelABGR
Unexecuted instantiation: prim_sign.c:writePixelABGR
Unexecuted instantiation: prim_YUV.c:writePixelABGR
Unexecuted instantiation: prim_YCoCg.c:writePixelABGR
Unexecuted instantiation: prim_colors_neon.c:writePixelABGR
Unexecuted instantiation: prim_YCoCg_neon.c:writePixelABGR
Unexecuted instantiation: prim_YUV_neon.c:writePixelABGR
Unexecuted instantiation: prim_colors_sse2.c:writePixelABGR
Unexecuted instantiation: prim_set_sse2.c:writePixelABGR
Unexecuted instantiation: prim_add_sse3.c:writePixelABGR
Unexecuted instantiation: prim_alphaComp_sse3.c:writePixelABGR
Unexecuted instantiation: prim_andor_sse3.c:writePixelABGR
Unexecuted instantiation: prim_shift_sse3.c:writePixelABGR
Unexecuted instantiation: prim_sign_ssse3.c:writePixelABGR
Unexecuted instantiation: prim_YCoCg_ssse3.c:writePixelABGR
Unexecuted instantiation: prim_copy_sse4_1.c:writePixelABGR
Unexecuted instantiation: prim_YUV_sse4.1.c:writePixelABGR
Unexecuted instantiation: prim_copy_avx2.c:writePixelABGR
112
113
static INLINE BYTE* writePixelXBGR(BYTE* dst, DWORD formatSize, UINT32 format, BYTE R, BYTE G,
114
                                   BYTE B, BYTE A)
115
0
{
116
0
  WINPR_UNUSED(formatSize);
117
0
  WINPR_UNUSED(format);
118
0
  WINPR_UNUSED(A);
119
120
0
  dst++; /* Do not touch alpha */
121
0
  *dst++ = B;
122
0
  *dst++ = G;
123
0
  *dst++ = R;
124
0
  return dst;
125
0
}
Unexecuted instantiation: primitives.c:writePixelXBGR
Unexecuted instantiation: prim_add.c:writePixelXBGR
Unexecuted instantiation: prim_andor.c:writePixelXBGR
Unexecuted instantiation: prim_alphaComp.c:writePixelXBGR
Unexecuted instantiation: prim_colors.c:writePixelXBGR
Unexecuted instantiation: prim_copy.c:writePixelXBGR
Unexecuted instantiation: prim_set.c:writePixelXBGR
Unexecuted instantiation: prim_shift.c:writePixelXBGR
Unexecuted instantiation: prim_sign.c:writePixelXBGR
Unexecuted instantiation: prim_YUV.c:writePixelXBGR
Unexecuted instantiation: prim_YCoCg.c:writePixelXBGR
Unexecuted instantiation: prim_colors_neon.c:writePixelXBGR
Unexecuted instantiation: prim_YCoCg_neon.c:writePixelXBGR
Unexecuted instantiation: prim_YUV_neon.c:writePixelXBGR
Unexecuted instantiation: prim_colors_sse2.c:writePixelXBGR
Unexecuted instantiation: prim_set_sse2.c:writePixelXBGR
Unexecuted instantiation: prim_add_sse3.c:writePixelXBGR
Unexecuted instantiation: prim_alphaComp_sse3.c:writePixelXBGR
Unexecuted instantiation: prim_andor_sse3.c:writePixelXBGR
Unexecuted instantiation: prim_shift_sse3.c:writePixelXBGR
Unexecuted instantiation: prim_sign_ssse3.c:writePixelXBGR
Unexecuted instantiation: prim_YCoCg_ssse3.c:writePixelXBGR
Unexecuted instantiation: prim_copy_sse4_1.c:writePixelXBGR
Unexecuted instantiation: prim_YUV_sse4.1.c:writePixelXBGR
Unexecuted instantiation: prim_copy_avx2.c:writePixelXBGR
126
127
static INLINE BYTE* writePixelARGB(BYTE* dst, DWORD formatSize, UINT32 format, BYTE R, BYTE G,
128
                                   BYTE B, BYTE A)
129
0
{
130
0
  WINPR_UNUSED(formatSize);
131
0
  WINPR_UNUSED(format);
132
133
0
  *dst++ = A;
134
0
  *dst++ = R;
135
0
  *dst++ = G;
136
0
  *dst++ = B;
137
0
  return dst;
138
0
}
Unexecuted instantiation: primitives.c:writePixelARGB
Unexecuted instantiation: prim_add.c:writePixelARGB
Unexecuted instantiation: prim_andor.c:writePixelARGB
Unexecuted instantiation: prim_alphaComp.c:writePixelARGB
Unexecuted instantiation: prim_colors.c:writePixelARGB
Unexecuted instantiation: prim_copy.c:writePixelARGB
Unexecuted instantiation: prim_set.c:writePixelARGB
Unexecuted instantiation: prim_shift.c:writePixelARGB
Unexecuted instantiation: prim_sign.c:writePixelARGB
Unexecuted instantiation: prim_YUV.c:writePixelARGB
Unexecuted instantiation: prim_YCoCg.c:writePixelARGB
Unexecuted instantiation: prim_colors_neon.c:writePixelARGB
Unexecuted instantiation: prim_YCoCg_neon.c:writePixelARGB
Unexecuted instantiation: prim_YUV_neon.c:writePixelARGB
Unexecuted instantiation: prim_colors_sse2.c:writePixelARGB
Unexecuted instantiation: prim_set_sse2.c:writePixelARGB
Unexecuted instantiation: prim_add_sse3.c:writePixelARGB
Unexecuted instantiation: prim_alphaComp_sse3.c:writePixelARGB
Unexecuted instantiation: prim_andor_sse3.c:writePixelARGB
Unexecuted instantiation: prim_shift_sse3.c:writePixelARGB
Unexecuted instantiation: prim_sign_ssse3.c:writePixelARGB
Unexecuted instantiation: prim_YCoCg_ssse3.c:writePixelARGB
Unexecuted instantiation: prim_copy_sse4_1.c:writePixelARGB
Unexecuted instantiation: prim_YUV_sse4.1.c:writePixelARGB
Unexecuted instantiation: prim_copy_avx2.c:writePixelARGB
139
140
static INLINE BYTE* writePixelXRGB(BYTE* dst, DWORD formatSize, UINT32 format, BYTE R, BYTE G,
141
                                   BYTE B, BYTE A)
142
0
{
143
0
  WINPR_UNUSED(formatSize);
144
0
  WINPR_UNUSED(format);
145
0
  WINPR_UNUSED(A);
146
147
0
  dst++; /* Do not touch alpha */
148
0
  *dst++ = R;
149
0
  *dst++ = G;
150
0
  *dst++ = B;
151
0
  return dst;
152
0
}
Unexecuted instantiation: primitives.c:writePixelXRGB
Unexecuted instantiation: prim_add.c:writePixelXRGB
Unexecuted instantiation: prim_andor.c:writePixelXRGB
Unexecuted instantiation: prim_alphaComp.c:writePixelXRGB
Unexecuted instantiation: prim_colors.c:writePixelXRGB
Unexecuted instantiation: prim_copy.c:writePixelXRGB
Unexecuted instantiation: prim_set.c:writePixelXRGB
Unexecuted instantiation: prim_shift.c:writePixelXRGB
Unexecuted instantiation: prim_sign.c:writePixelXRGB
Unexecuted instantiation: prim_YUV.c:writePixelXRGB
Unexecuted instantiation: prim_YCoCg.c:writePixelXRGB
Unexecuted instantiation: prim_colors_neon.c:writePixelXRGB
Unexecuted instantiation: prim_YCoCg_neon.c:writePixelXRGB
Unexecuted instantiation: prim_YUV_neon.c:writePixelXRGB
Unexecuted instantiation: prim_colors_sse2.c:writePixelXRGB
Unexecuted instantiation: prim_set_sse2.c:writePixelXRGB
Unexecuted instantiation: prim_add_sse3.c:writePixelXRGB
Unexecuted instantiation: prim_alphaComp_sse3.c:writePixelXRGB
Unexecuted instantiation: prim_andor_sse3.c:writePixelXRGB
Unexecuted instantiation: prim_shift_sse3.c:writePixelXRGB
Unexecuted instantiation: prim_sign_ssse3.c:writePixelXRGB
Unexecuted instantiation: prim_YCoCg_ssse3.c:writePixelXRGB
Unexecuted instantiation: prim_copy_sse4_1.c:writePixelXRGB
Unexecuted instantiation: prim_YUV_sse4.1.c:writePixelXRGB
Unexecuted instantiation: prim_copy_avx2.c:writePixelXRGB
153
154
static INLINE BYTE* writePixelGenericAlpha(BYTE* dst, DWORD formatSize, UINT32 format, BYTE R,
155
                                           BYTE G, BYTE B, BYTE A)
156
0
{
157
0
  UINT32 color = FreeRDPGetColor(format, R, G, B, A);
158
0
  FreeRDPWriteColor(dst, format, color);
159
0
  return dst + formatSize;
160
0
}
Unexecuted instantiation: primitives.c:writePixelGenericAlpha
Unexecuted instantiation: prim_add.c:writePixelGenericAlpha
Unexecuted instantiation: prim_andor.c:writePixelGenericAlpha
Unexecuted instantiation: prim_alphaComp.c:writePixelGenericAlpha
Unexecuted instantiation: prim_colors.c:writePixelGenericAlpha
Unexecuted instantiation: prim_copy.c:writePixelGenericAlpha
Unexecuted instantiation: prim_set.c:writePixelGenericAlpha
Unexecuted instantiation: prim_shift.c:writePixelGenericAlpha
Unexecuted instantiation: prim_sign.c:writePixelGenericAlpha
Unexecuted instantiation: prim_YUV.c:writePixelGenericAlpha
Unexecuted instantiation: prim_YCoCg.c:writePixelGenericAlpha
Unexecuted instantiation: prim_colors_neon.c:writePixelGenericAlpha
Unexecuted instantiation: prim_YCoCg_neon.c:writePixelGenericAlpha
Unexecuted instantiation: prim_YUV_neon.c:writePixelGenericAlpha
Unexecuted instantiation: prim_colors_sse2.c:writePixelGenericAlpha
Unexecuted instantiation: prim_set_sse2.c:writePixelGenericAlpha
Unexecuted instantiation: prim_add_sse3.c:writePixelGenericAlpha
Unexecuted instantiation: prim_alphaComp_sse3.c:writePixelGenericAlpha
Unexecuted instantiation: prim_andor_sse3.c:writePixelGenericAlpha
Unexecuted instantiation: prim_shift_sse3.c:writePixelGenericAlpha
Unexecuted instantiation: prim_sign_ssse3.c:writePixelGenericAlpha
Unexecuted instantiation: prim_YCoCg_ssse3.c:writePixelGenericAlpha
Unexecuted instantiation: prim_copy_sse4_1.c:writePixelGenericAlpha
Unexecuted instantiation: prim_YUV_sse4.1.c:writePixelGenericAlpha
Unexecuted instantiation: prim_copy_avx2.c:writePixelGenericAlpha
161
162
static INLINE BYTE* writePixelGeneric(BYTE* dst, DWORD formatSize, UINT32 format, BYTE R, BYTE G,
163
                                      BYTE B, BYTE A)
164
0
{
165
0
  UINT32 color = FreeRDPGetColor(format, R, G, B, A);
166
0
  FreeRDPWriteColorIgnoreAlpha(dst, format, color);
167
0
  return dst + formatSize;
168
0
}
Unexecuted instantiation: primitives.c:writePixelGeneric
Unexecuted instantiation: prim_add.c:writePixelGeneric
Unexecuted instantiation: prim_andor.c:writePixelGeneric
Unexecuted instantiation: prim_alphaComp.c:writePixelGeneric
Unexecuted instantiation: prim_colors.c:writePixelGeneric
Unexecuted instantiation: prim_copy.c:writePixelGeneric
Unexecuted instantiation: prim_set.c:writePixelGeneric
Unexecuted instantiation: prim_shift.c:writePixelGeneric
Unexecuted instantiation: prim_sign.c:writePixelGeneric
Unexecuted instantiation: prim_YUV.c:writePixelGeneric
Unexecuted instantiation: prim_YCoCg.c:writePixelGeneric
Unexecuted instantiation: prim_colors_neon.c:writePixelGeneric
Unexecuted instantiation: prim_YCoCg_neon.c:writePixelGeneric
Unexecuted instantiation: prim_YUV_neon.c:writePixelGeneric
Unexecuted instantiation: prim_colors_sse2.c:writePixelGeneric
Unexecuted instantiation: prim_set_sse2.c:writePixelGeneric
Unexecuted instantiation: prim_add_sse3.c:writePixelGeneric
Unexecuted instantiation: prim_alphaComp_sse3.c:writePixelGeneric
Unexecuted instantiation: prim_andor_sse3.c:writePixelGeneric
Unexecuted instantiation: prim_shift_sse3.c:writePixelGeneric
Unexecuted instantiation: prim_sign_ssse3.c:writePixelGeneric
Unexecuted instantiation: prim_YCoCg_ssse3.c:writePixelGeneric
Unexecuted instantiation: prim_copy_sse4_1.c:writePixelGeneric
Unexecuted instantiation: prim_YUV_sse4.1.c:writePixelGeneric
Unexecuted instantiation: prim_copy_avx2.c:writePixelGeneric
169
170
typedef BYTE* (*fkt_writePixel)(BYTE*, DWORD, UINT32, BYTE, BYTE, BYTE, BYTE);
171
172
static INLINE fkt_writePixel getPixelWriteFunction(DWORD format, BOOL useAlpha)
173
0
{
174
0
  switch (format)
175
0
  {
176
0
    case PIXEL_FORMAT_ARGB32:
177
0
    case PIXEL_FORMAT_XRGB32:
178
0
      return useAlpha ? writePixelARGB : writePixelXRGB;
179
180
0
    case PIXEL_FORMAT_ABGR32:
181
0
    case PIXEL_FORMAT_XBGR32:
182
0
      return useAlpha ? writePixelABGR : writePixelXBGR;
183
184
0
    case PIXEL_FORMAT_RGBA32:
185
0
    case PIXEL_FORMAT_RGBX32:
186
0
      return useAlpha ? writePixelRGBA : writePixelRGBX;
187
188
0
    case PIXEL_FORMAT_BGRA32:
189
0
    case PIXEL_FORMAT_BGRX32:
190
0
      return useAlpha ? writePixelBGRA : writePixelBGRX;
191
192
0
    default:
193
0
      return useAlpha ? writePixelGenericAlpha : writePixelGeneric;
194
0
  }
195
0
}
Unexecuted instantiation: primitives.c:getPixelWriteFunction
Unexecuted instantiation: prim_add.c:getPixelWriteFunction
Unexecuted instantiation: prim_andor.c:getPixelWriteFunction
Unexecuted instantiation: prim_alphaComp.c:getPixelWriteFunction
Unexecuted instantiation: prim_colors.c:getPixelWriteFunction
Unexecuted instantiation: prim_copy.c:getPixelWriteFunction
Unexecuted instantiation: prim_set.c:getPixelWriteFunction
Unexecuted instantiation: prim_shift.c:getPixelWriteFunction
Unexecuted instantiation: prim_sign.c:getPixelWriteFunction
Unexecuted instantiation: prim_YUV.c:getPixelWriteFunction
Unexecuted instantiation: prim_YCoCg.c:getPixelWriteFunction
Unexecuted instantiation: prim_colors_neon.c:getPixelWriteFunction
Unexecuted instantiation: prim_YCoCg_neon.c:getPixelWriteFunction
Unexecuted instantiation: prim_YUV_neon.c:getPixelWriteFunction
Unexecuted instantiation: prim_colors_sse2.c:getPixelWriteFunction
Unexecuted instantiation: prim_set_sse2.c:getPixelWriteFunction
Unexecuted instantiation: prim_add_sse3.c:getPixelWriteFunction
Unexecuted instantiation: prim_alphaComp_sse3.c:getPixelWriteFunction
Unexecuted instantiation: prim_andor_sse3.c:getPixelWriteFunction
Unexecuted instantiation: prim_shift_sse3.c:getPixelWriteFunction
Unexecuted instantiation: prim_sign_ssse3.c:getPixelWriteFunction
Unexecuted instantiation: prim_YCoCg_ssse3.c:getPixelWriteFunction
Unexecuted instantiation: prim_copy_sse4_1.c:getPixelWriteFunction
Unexecuted instantiation: prim_YUV_sse4.1.c:getPixelWriteFunction
Unexecuted instantiation: prim_copy_avx2.c:getPixelWriteFunction
196
197
static INLINE BYTE CLIP(INT64 X)
198
0
{
199
0
  if (X > 255L)
200
0
    return 255L;
201
202
0
  if (X < 0L)
203
0
    return 0L;
204
205
0
  return (BYTE)X;
206
0
}
Unexecuted instantiation: primitives.c:CLIP
Unexecuted instantiation: prim_add.c:CLIP
Unexecuted instantiation: prim_andor.c:CLIP
Unexecuted instantiation: prim_alphaComp.c:CLIP
Unexecuted instantiation: prim_colors.c:CLIP
Unexecuted instantiation: prim_copy.c:CLIP
Unexecuted instantiation: prim_set.c:CLIP
Unexecuted instantiation: prim_shift.c:CLIP
Unexecuted instantiation: prim_sign.c:CLIP
Unexecuted instantiation: prim_YUV.c:CLIP
Unexecuted instantiation: prim_YCoCg.c:CLIP
Unexecuted instantiation: prim_colors_neon.c:CLIP
Unexecuted instantiation: prim_YCoCg_neon.c:CLIP
Unexecuted instantiation: prim_YUV_neon.c:CLIP
Unexecuted instantiation: prim_colors_sse2.c:CLIP
Unexecuted instantiation: prim_set_sse2.c:CLIP
Unexecuted instantiation: prim_add_sse3.c:CLIP
Unexecuted instantiation: prim_alphaComp_sse3.c:CLIP
Unexecuted instantiation: prim_andor_sse3.c:CLIP
Unexecuted instantiation: prim_shift_sse3.c:CLIP
Unexecuted instantiation: prim_sign_ssse3.c:CLIP
Unexecuted instantiation: prim_YCoCg_ssse3.c:CLIP
Unexecuted instantiation: prim_copy_sse4_1.c:CLIP
Unexecuted instantiation: prim_YUV_sse4.1.c:CLIP
Unexecuted instantiation: prim_copy_avx2.c:CLIP
207
208
static INLINE BYTE CONDITIONAL_CLIP(INT32 in, BYTE original)
209
0
{
210
0
  BYTE out = CLIP(in);
211
0
  BYTE diff = 0;
212
0
  if (out > original)
213
0
    diff = out - original;
214
0
  else
215
0
    diff = original - out;
216
0
  if (diff < 30)
217
0
    return original;
218
0
  return out;
219
0
}
Unexecuted instantiation: primitives.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_add.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_andor.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_alphaComp.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_colors.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_copy.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_set.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_shift.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_sign.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_YUV.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_YCoCg.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_colors_neon.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_YCoCg_neon.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_YUV_neon.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_colors_sse2.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_set_sse2.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_add_sse3.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_alphaComp_sse3.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_andor_sse3.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_shift_sse3.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_sign_ssse3.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_YCoCg_ssse3.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_copy_sse4_1.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_YUV_sse4.1.c:CONDITIONAL_CLIP
Unexecuted instantiation: prim_copy_avx2.c:CONDITIONAL_CLIP
220
221
/**
222
 * | R |   ( | 256     0    403 | |    Y    | )
223
 * | G | = ( | 256   -48   -120 | | U - 128 | ) >> 8
224
 * | B |   ( | 256   475      0 | | V - 128 | )
225
 */
226
static INLINE INT32 C(INT32 Y)
227
0
{
228
0
  return (Y)-0;
229
0
}
Unexecuted instantiation: primitives.c:C
Unexecuted instantiation: prim_add.c:C
Unexecuted instantiation: prim_andor.c:C
Unexecuted instantiation: prim_alphaComp.c:C
Unexecuted instantiation: prim_colors.c:C
Unexecuted instantiation: prim_copy.c:C
Unexecuted instantiation: prim_set.c:C
Unexecuted instantiation: prim_shift.c:C
Unexecuted instantiation: prim_sign.c:C
Unexecuted instantiation: prim_YUV.c:C
Unexecuted instantiation: prim_YCoCg.c:C
Unexecuted instantiation: prim_colors_neon.c:C
Unexecuted instantiation: prim_YCoCg_neon.c:C
Unexecuted instantiation: prim_YUV_neon.c:C
Unexecuted instantiation: prim_colors_sse2.c:C
Unexecuted instantiation: prim_set_sse2.c:C
Unexecuted instantiation: prim_add_sse3.c:C
Unexecuted instantiation: prim_alphaComp_sse3.c:C
Unexecuted instantiation: prim_andor_sse3.c:C
Unexecuted instantiation: prim_shift_sse3.c:C
Unexecuted instantiation: prim_sign_ssse3.c:C
Unexecuted instantiation: prim_YCoCg_ssse3.c:C
Unexecuted instantiation: prim_copy_sse4_1.c:C
Unexecuted instantiation: prim_YUV_sse4.1.c:C
Unexecuted instantiation: prim_copy_avx2.c:C
230
231
static INLINE INT32 D(INT32 U)
232
0
{
233
0
  return (U)-128;
234
0
}
Unexecuted instantiation: primitives.c:D
Unexecuted instantiation: prim_add.c:D
Unexecuted instantiation: prim_andor.c:D
Unexecuted instantiation: prim_alphaComp.c:D
Unexecuted instantiation: prim_colors.c:D
Unexecuted instantiation: prim_copy.c:D
Unexecuted instantiation: prim_set.c:D
Unexecuted instantiation: prim_shift.c:D
Unexecuted instantiation: prim_sign.c:D
Unexecuted instantiation: prim_YUV.c:D
Unexecuted instantiation: prim_YCoCg.c:D
Unexecuted instantiation: prim_colors_neon.c:D
Unexecuted instantiation: prim_YCoCg_neon.c:D
Unexecuted instantiation: prim_YUV_neon.c:D
Unexecuted instantiation: prim_colors_sse2.c:D
Unexecuted instantiation: prim_set_sse2.c:D
Unexecuted instantiation: prim_add_sse3.c:D
Unexecuted instantiation: prim_alphaComp_sse3.c:D
Unexecuted instantiation: prim_andor_sse3.c:D
Unexecuted instantiation: prim_shift_sse3.c:D
Unexecuted instantiation: prim_sign_ssse3.c:D
Unexecuted instantiation: prim_YCoCg_ssse3.c:D
Unexecuted instantiation: prim_copy_sse4_1.c:D
Unexecuted instantiation: prim_YUV_sse4.1.c:D
Unexecuted instantiation: prim_copy_avx2.c:D
235
236
static INLINE INT32 E(INT32 V)
237
0
{
238
0
  return (V)-128;
239
0
}
Unexecuted instantiation: primitives.c:E
Unexecuted instantiation: prim_add.c:E
Unexecuted instantiation: prim_andor.c:E
Unexecuted instantiation: prim_alphaComp.c:E
Unexecuted instantiation: prim_colors.c:E
Unexecuted instantiation: prim_copy.c:E
Unexecuted instantiation: prim_set.c:E
Unexecuted instantiation: prim_shift.c:E
Unexecuted instantiation: prim_sign.c:E
Unexecuted instantiation: prim_YUV.c:E
Unexecuted instantiation: prim_YCoCg.c:E
Unexecuted instantiation: prim_colors_neon.c:E
Unexecuted instantiation: prim_YCoCg_neon.c:E
Unexecuted instantiation: prim_YUV_neon.c:E
Unexecuted instantiation: prim_colors_sse2.c:E
Unexecuted instantiation: prim_set_sse2.c:E
Unexecuted instantiation: prim_add_sse3.c:E
Unexecuted instantiation: prim_alphaComp_sse3.c:E
Unexecuted instantiation: prim_andor_sse3.c:E
Unexecuted instantiation: prim_shift_sse3.c:E
Unexecuted instantiation: prim_sign_ssse3.c:E
Unexecuted instantiation: prim_YCoCg_ssse3.c:E
Unexecuted instantiation: prim_copy_sse4_1.c:E
Unexecuted instantiation: prim_YUV_sse4.1.c:E
Unexecuted instantiation: prim_copy_avx2.c:E
240
241
static INLINE BYTE YUV2R(INT32 Y, INT32 U, INT32 V)
242
0
{
243
0
  const INT32 r = (256 * C(Y) + 0 * D(U) + 403 * E(V));
244
0
  const INT32 r8 = r >> 8;
245
0
  return CLIP(r8);
246
0
}
Unexecuted instantiation: primitives.c:YUV2R
Unexecuted instantiation: prim_add.c:YUV2R
Unexecuted instantiation: prim_andor.c:YUV2R
Unexecuted instantiation: prim_alphaComp.c:YUV2R
Unexecuted instantiation: prim_colors.c:YUV2R
Unexecuted instantiation: prim_copy.c:YUV2R
Unexecuted instantiation: prim_set.c:YUV2R
Unexecuted instantiation: prim_shift.c:YUV2R
Unexecuted instantiation: prim_sign.c:YUV2R
Unexecuted instantiation: prim_YUV.c:YUV2R
Unexecuted instantiation: prim_YCoCg.c:YUV2R
Unexecuted instantiation: prim_colors_neon.c:YUV2R
Unexecuted instantiation: prim_YCoCg_neon.c:YUV2R
Unexecuted instantiation: prim_YUV_neon.c:YUV2R
Unexecuted instantiation: prim_colors_sse2.c:YUV2R
Unexecuted instantiation: prim_set_sse2.c:YUV2R
Unexecuted instantiation: prim_add_sse3.c:YUV2R
Unexecuted instantiation: prim_alphaComp_sse3.c:YUV2R
Unexecuted instantiation: prim_andor_sse3.c:YUV2R
Unexecuted instantiation: prim_shift_sse3.c:YUV2R
Unexecuted instantiation: prim_sign_ssse3.c:YUV2R
Unexecuted instantiation: prim_YCoCg_ssse3.c:YUV2R
Unexecuted instantiation: prim_copy_sse4_1.c:YUV2R
Unexecuted instantiation: prim_YUV_sse4.1.c:YUV2R
Unexecuted instantiation: prim_copy_avx2.c:YUV2R
247
248
static INLINE BYTE YUV2G(INT32 Y, INT32 U, INT32 V)
249
0
{
250
0
  const INT32 g = (256 * C(Y) - 48 * D(U) - 120 * E(V));
251
0
  const INT32 g8 = g >> 8;
252
0
  return CLIP(g8);
253
0
}
Unexecuted instantiation: primitives.c:YUV2G
Unexecuted instantiation: prim_add.c:YUV2G
Unexecuted instantiation: prim_andor.c:YUV2G
Unexecuted instantiation: prim_alphaComp.c:YUV2G
Unexecuted instantiation: prim_colors.c:YUV2G
Unexecuted instantiation: prim_copy.c:YUV2G
Unexecuted instantiation: prim_set.c:YUV2G
Unexecuted instantiation: prim_shift.c:YUV2G
Unexecuted instantiation: prim_sign.c:YUV2G
Unexecuted instantiation: prim_YUV.c:YUV2G
Unexecuted instantiation: prim_YCoCg.c:YUV2G
Unexecuted instantiation: prim_colors_neon.c:YUV2G
Unexecuted instantiation: prim_YCoCg_neon.c:YUV2G
Unexecuted instantiation: prim_YUV_neon.c:YUV2G
Unexecuted instantiation: prim_colors_sse2.c:YUV2G
Unexecuted instantiation: prim_set_sse2.c:YUV2G
Unexecuted instantiation: prim_add_sse3.c:YUV2G
Unexecuted instantiation: prim_alphaComp_sse3.c:YUV2G
Unexecuted instantiation: prim_andor_sse3.c:YUV2G
Unexecuted instantiation: prim_shift_sse3.c:YUV2G
Unexecuted instantiation: prim_sign_ssse3.c:YUV2G
Unexecuted instantiation: prim_YCoCg_ssse3.c:YUV2G
Unexecuted instantiation: prim_copy_sse4_1.c:YUV2G
Unexecuted instantiation: prim_YUV_sse4.1.c:YUV2G
Unexecuted instantiation: prim_copy_avx2.c:YUV2G
254
255
static INLINE BYTE YUV2B(INT32 Y, INT32 U, INT32 V)
256
0
{
257
0
  const INT32 b = (256 * C(Y) + 475 * D(U) + 0 * E(V));
258
0
  const INT32 b8 = b >> 8;
259
0
  return CLIP(b8);
260
0
}
Unexecuted instantiation: primitives.c:YUV2B
Unexecuted instantiation: prim_add.c:YUV2B
Unexecuted instantiation: prim_andor.c:YUV2B
Unexecuted instantiation: prim_alphaComp.c:YUV2B
Unexecuted instantiation: prim_colors.c:YUV2B
Unexecuted instantiation: prim_copy.c:YUV2B
Unexecuted instantiation: prim_set.c:YUV2B
Unexecuted instantiation: prim_shift.c:YUV2B
Unexecuted instantiation: prim_sign.c:YUV2B
Unexecuted instantiation: prim_YUV.c:YUV2B
Unexecuted instantiation: prim_YCoCg.c:YUV2B
Unexecuted instantiation: prim_colors_neon.c:YUV2B
Unexecuted instantiation: prim_YCoCg_neon.c:YUV2B
Unexecuted instantiation: prim_YUV_neon.c:YUV2B
Unexecuted instantiation: prim_colors_sse2.c:YUV2B
Unexecuted instantiation: prim_set_sse2.c:YUV2B
Unexecuted instantiation: prim_add_sse3.c:YUV2B
Unexecuted instantiation: prim_alphaComp_sse3.c:YUV2B
Unexecuted instantiation: prim_andor_sse3.c:YUV2B
Unexecuted instantiation: prim_shift_sse3.c:YUV2B
Unexecuted instantiation: prim_sign_ssse3.c:YUV2B
Unexecuted instantiation: prim_YCoCg_ssse3.c:YUV2B
Unexecuted instantiation: prim_copy_sse4_1.c:YUV2B
Unexecuted instantiation: prim_YUV_sse4.1.c:YUV2B
Unexecuted instantiation: prim_copy_avx2.c:YUV2B
261
262
/**
263
 * | Y |    ( |  54   183     18 | | R | )        |  0  |
264
 * | U | =  ( | -29   -99    128 | | G | ) >> 8 + | 128 |
265
 * | V |    ( | 128  -116    -12 | | B | )        | 128 |
266
 */
267
static INLINE BYTE RGB2Y(INT32 R, INT32 G, INT32 B)
268
0
{
269
0
  const INT32 val = ((54 * R + 183 * G + 18 * B) >> 8);
270
0
  return WINPR_ASSERTING_INT_CAST(BYTE, val);
271
0
}
Unexecuted instantiation: primitives.c:RGB2Y
Unexecuted instantiation: prim_add.c:RGB2Y
Unexecuted instantiation: prim_andor.c:RGB2Y
Unexecuted instantiation: prim_alphaComp.c:RGB2Y
Unexecuted instantiation: prim_colors.c:RGB2Y
Unexecuted instantiation: prim_copy.c:RGB2Y
Unexecuted instantiation: prim_set.c:RGB2Y
Unexecuted instantiation: prim_shift.c:RGB2Y
Unexecuted instantiation: prim_sign.c:RGB2Y
Unexecuted instantiation: prim_YUV.c:RGB2Y
Unexecuted instantiation: prim_YCoCg.c:RGB2Y
Unexecuted instantiation: prim_colors_neon.c:RGB2Y
Unexecuted instantiation: prim_YCoCg_neon.c:RGB2Y
Unexecuted instantiation: prim_YUV_neon.c:RGB2Y
Unexecuted instantiation: prim_colors_sse2.c:RGB2Y
Unexecuted instantiation: prim_set_sse2.c:RGB2Y
Unexecuted instantiation: prim_add_sse3.c:RGB2Y
Unexecuted instantiation: prim_alphaComp_sse3.c:RGB2Y
Unexecuted instantiation: prim_andor_sse3.c:RGB2Y
Unexecuted instantiation: prim_shift_sse3.c:RGB2Y
Unexecuted instantiation: prim_sign_ssse3.c:RGB2Y
Unexecuted instantiation: prim_YCoCg_ssse3.c:RGB2Y
Unexecuted instantiation: prim_copy_sse4_1.c:RGB2Y
Unexecuted instantiation: prim_YUV_sse4.1.c:RGB2Y
Unexecuted instantiation: prim_copy_avx2.c:RGB2Y
272
273
static INLINE BYTE RGB2U(INT32 R, INT32 G, INT32 B)
274
0
{
275
0
  const INT32 val = (((-29 * R - 99 * G + 128 * B) >> 8) + 128);
276
0
  return WINPR_ASSERTING_INT_CAST(BYTE, val);
277
0
}
Unexecuted instantiation: primitives.c:RGB2U
Unexecuted instantiation: prim_add.c:RGB2U
Unexecuted instantiation: prim_andor.c:RGB2U
Unexecuted instantiation: prim_alphaComp.c:RGB2U
Unexecuted instantiation: prim_colors.c:RGB2U
Unexecuted instantiation: prim_copy.c:RGB2U
Unexecuted instantiation: prim_set.c:RGB2U
Unexecuted instantiation: prim_shift.c:RGB2U
Unexecuted instantiation: prim_sign.c:RGB2U
Unexecuted instantiation: prim_YUV.c:RGB2U
Unexecuted instantiation: prim_YCoCg.c:RGB2U
Unexecuted instantiation: prim_colors_neon.c:RGB2U
Unexecuted instantiation: prim_YCoCg_neon.c:RGB2U
Unexecuted instantiation: prim_YUV_neon.c:RGB2U
Unexecuted instantiation: prim_colors_sse2.c:RGB2U
Unexecuted instantiation: prim_set_sse2.c:RGB2U
Unexecuted instantiation: prim_add_sse3.c:RGB2U
Unexecuted instantiation: prim_alphaComp_sse3.c:RGB2U
Unexecuted instantiation: prim_andor_sse3.c:RGB2U
Unexecuted instantiation: prim_shift_sse3.c:RGB2U
Unexecuted instantiation: prim_sign_ssse3.c:RGB2U
Unexecuted instantiation: prim_YCoCg_ssse3.c:RGB2U
Unexecuted instantiation: prim_copy_sse4_1.c:RGB2U
Unexecuted instantiation: prim_YUV_sse4.1.c:RGB2U
Unexecuted instantiation: prim_copy_avx2.c:RGB2U
278
279
static INLINE BYTE RGB2V(INT32 R, INT32 G, INT32 B)
280
0
{
281
0
  const INT32 val = (((128 * R - 116 * G - 12 * B) >> 8) + 128);
282
0
  return WINPR_ASSERTING_INT_CAST(BYTE, val);
283
0
}
Unexecuted instantiation: primitives.c:RGB2V
Unexecuted instantiation: prim_add.c:RGB2V
Unexecuted instantiation: prim_andor.c:RGB2V
Unexecuted instantiation: prim_alphaComp.c:RGB2V
Unexecuted instantiation: prim_colors.c:RGB2V
Unexecuted instantiation: prim_copy.c:RGB2V
Unexecuted instantiation: prim_set.c:RGB2V
Unexecuted instantiation: prim_shift.c:RGB2V
Unexecuted instantiation: prim_sign.c:RGB2V
Unexecuted instantiation: prim_YUV.c:RGB2V
Unexecuted instantiation: prim_YCoCg.c:RGB2V
Unexecuted instantiation: prim_colors_neon.c:RGB2V
Unexecuted instantiation: prim_YCoCg_neon.c:RGB2V
Unexecuted instantiation: prim_YUV_neon.c:RGB2V
Unexecuted instantiation: prim_colors_sse2.c:RGB2V
Unexecuted instantiation: prim_set_sse2.c:RGB2V
Unexecuted instantiation: prim_add_sse3.c:RGB2V
Unexecuted instantiation: prim_alphaComp_sse3.c:RGB2V
Unexecuted instantiation: prim_andor_sse3.c:RGB2V
Unexecuted instantiation: prim_shift_sse3.c:RGB2V
Unexecuted instantiation: prim_sign_ssse3.c:RGB2V
Unexecuted instantiation: prim_YCoCg_ssse3.c:RGB2V
Unexecuted instantiation: prim_copy_sse4_1.c:RGB2V
Unexecuted instantiation: prim_YUV_sse4.1.c:RGB2V
Unexecuted instantiation: prim_copy_avx2.c:RGB2V
284
285
static inline BYTE* writeYUVPixel(BYTE* dst, UINT32 DstFormat, INT32 y, INT32 u, INT32 v,
286
                                  fkt_writePixel fkt)
287
0
{
288
0
  WINPR_ASSERT(fkt);
289
0
  const BYTE r = YUV2R(y, u, v);
290
0
  const BYTE g = YUV2G(y, u, v);
291
0
  const BYTE b = YUV2B(y, u, v);
292
0
  const DWORD formatSize = FreeRDPGetBytesPerPixel(DstFormat);
293
0
  return fkt(dst, formatSize, DstFormat, r, g, b, 0);
294
0
}
Unexecuted instantiation: primitives.c:writeYUVPixel
Unexecuted instantiation: prim_add.c:writeYUVPixel
Unexecuted instantiation: prim_andor.c:writeYUVPixel
Unexecuted instantiation: prim_alphaComp.c:writeYUVPixel
Unexecuted instantiation: prim_colors.c:writeYUVPixel
Unexecuted instantiation: prim_copy.c:writeYUVPixel
Unexecuted instantiation: prim_set.c:writeYUVPixel
Unexecuted instantiation: prim_shift.c:writeYUVPixel
Unexecuted instantiation: prim_sign.c:writeYUVPixel
Unexecuted instantiation: prim_YUV.c:writeYUVPixel
Unexecuted instantiation: prim_YCoCg.c:writeYUVPixel
Unexecuted instantiation: prim_colors_neon.c:writeYUVPixel
Unexecuted instantiation: prim_YCoCg_neon.c:writeYUVPixel
Unexecuted instantiation: prim_YUV_neon.c:writeYUVPixel
Unexecuted instantiation: prim_colors_sse2.c:writeYUVPixel
Unexecuted instantiation: prim_set_sse2.c:writeYUVPixel
Unexecuted instantiation: prim_add_sse3.c:writeYUVPixel
Unexecuted instantiation: prim_alphaComp_sse3.c:writeYUVPixel
Unexecuted instantiation: prim_andor_sse3.c:writeYUVPixel
Unexecuted instantiation: prim_shift_sse3.c:writeYUVPixel
Unexecuted instantiation: prim_sign_ssse3.c:writeYUVPixel
Unexecuted instantiation: prim_YCoCg_ssse3.c:writeYUVPixel
Unexecuted instantiation: prim_copy_sse4_1.c:writeYUVPixel
Unexecuted instantiation: prim_YUV_sse4.1.c:writeYUVPixel
Unexecuted instantiation: prim_copy_avx2.c:writeYUVPixel
295
296
FREERDP_LOCAL void general_RGBToAVC444YUV_BGRX_DOUBLE_ROW(
297
    size_t offset, const BYTE* WINPR_RESTRICT srcEven, const BYTE* WINPR_RESTRICT srcOdd,
298
    BYTE* WINPR_RESTRICT b1Even, BYTE* WINPR_RESTRICT b1Odd, BYTE* WINPR_RESTRICT b2,
299
    BYTE* WINPR_RESTRICT b3, BYTE* WINPR_RESTRICT b4, BYTE* WINPR_RESTRICT b5,
300
    BYTE* WINPR_RESTRICT b6, BYTE* WINPR_RESTRICT b7, UINT32 width);
301
302
FREERDP_LOCAL void general_RGBToAVC444YUVv2_BGRX_DOUBLE_ROW(
303
    size_t offset, const BYTE* WINPR_RESTRICT pSrcEven, const BYTE* WINPR_RESTRICT pSrcOdd,
304
    BYTE* WINPR_RESTRICT yLumaDstEven, BYTE* WINPR_RESTRICT yLumaDstOdd,
305
    BYTE* WINPR_RESTRICT uLumaDst, BYTE* WINPR_RESTRICT vLumaDst,
306
    BYTE* WINPR_RESTRICT yEvenChromaDst1, BYTE* WINPR_RESTRICT yEvenChromaDst2,
307
    BYTE* WINPR_RESTRICT yOddChromaDst1, BYTE* WINPR_RESTRICT yOddChromaDst2,
308
    BYTE* WINPR_RESTRICT uChromaDst1, BYTE* WINPR_RESTRICT uChromaDst2,
309
    BYTE* WINPR_RESTRICT vChromaDst1, BYTE* WINPR_RESTRICT vChromaDst2, UINT32 width);
310
311
/* Function prototypes for all the init/deinit routines. */
312
FREERDP_LOCAL void primitives_init_copy(primitives_t* WINPR_RESTRICT prims);
313
FREERDP_LOCAL void primitives_init_set(primitives_t* WINPR_RESTRICT prims);
314
FREERDP_LOCAL void primitives_init_add(primitives_t* WINPR_RESTRICT prims);
315
FREERDP_LOCAL void primitives_init_andor(primitives_t* WINPR_RESTRICT prims);
316
FREERDP_LOCAL void primitives_init_shift(primitives_t* WINPR_RESTRICT prims);
317
FREERDP_LOCAL void primitives_init_sign(primitives_t* WINPR_RESTRICT prims);
318
FREERDP_LOCAL void primitives_init_alphaComp(primitives_t* WINPR_RESTRICT prims);
319
FREERDP_LOCAL void primitives_init_colors(primitives_t* WINPR_RESTRICT prims);
320
FREERDP_LOCAL void primitives_init_YCoCg(primitives_t* WINPR_RESTRICT prims);
321
FREERDP_LOCAL void primitives_init_YUV(primitives_t* WINPR_RESTRICT prims);
322
323
FREERDP_LOCAL void primitives_init_copy_opt(primitives_t* WINPR_RESTRICT prims);
324
FREERDP_LOCAL void primitives_init_set_opt(primitives_t* WINPR_RESTRICT prims);
325
FREERDP_LOCAL void primitives_init_add_opt(primitives_t* WINPR_RESTRICT prims);
326
FREERDP_LOCAL void primitives_init_andor_opt(primitives_t* WINPR_RESTRICT prims);
327
FREERDP_LOCAL void primitives_init_shift_opt(primitives_t* WINPR_RESTRICT prims);
328
FREERDP_LOCAL void primitives_init_sign_opt(primitives_t* WINPR_RESTRICT prims);
329
FREERDP_LOCAL void primitives_init_alphaComp_opt(primitives_t* WINPR_RESTRICT prims);
330
FREERDP_LOCAL void primitives_init_colors_opt(primitives_t* WINPR_RESTRICT prims);
331
FREERDP_LOCAL void primitives_init_YCoCg_opt(primitives_t* WINPR_RESTRICT prims);
332
FREERDP_LOCAL void primitives_init_YUV_opt(primitives_t* WINPR_RESTRICT prims);
333
334
#if defined(WITH_OPENCL)
335
FREERDP_LOCAL BOOL primitives_init_opencl(primitives_t* WINPR_RESTRICT prims);
336
#endif
337
338
#endif /* FREERDP_LIB_PRIM_INTERNAL_H */