FreeRDP
Loading...
Searching...
No Matches
prim_YCoCg.h
1
21#ifndef FREERDP_LIB_PRIM_YCoCg_H
22#define FREERDP_LIB_PRIM_YCoCg_H
23
24#include <winpr/wtypes.h>
25#include <winpr/sysinfo.h>
26
27#include <freerdp/config.h>
28#include <freerdp/primitives.h>
29
30#include "prim_internal.h"
31
32FREERDP_LOCAL void primitives_init_YCoCg_ssse3_int(primitives_t* WINPR_RESTRICT prims);
33
34static inline void primitives_init_YCoCg_ssse3(primitives_t* WINPR_RESTRICT prims)
35{
36 if (!IsProcessorFeaturePresentEx(PF_EX_SSSE3) ||
37 !IsProcessorFeaturePresent(PF_SSE2_INSTRUCTIONS_AVAILABLE) ||
38 !IsProcessorFeaturePresent(PF_SSE3_INSTRUCTIONS_AVAILABLE))
39 return;
40
41 primitives_init_YCoCg_ssse3_int(prims);
42}
43
44FREERDP_LOCAL void primitives_init_YCoCg_neon_int(primitives_t* WINPR_RESTRICT prims);
45
46static inline void primitives_init_YCoCg_neon(primitives_t* WINPR_RESTRICT prims)
47{
48 if (!IsProcessorFeaturePresent(PF_ARM_NEON_INSTRUCTIONS_AVAILABLE))
49 return;
50 primitives_init_YCoCg_neon_int(prims);
51}
52
53#endif