pixman_implementation_t * _pixman_implementation_create_vmx128 (pixman_implementation_t *fallback) { pixman_implementation_t *imp = _pixman_implementation_create (fallback, vmx128_fast_paths); /* Set up function pointers */ imp->combine_32[PIXMAN_OP_OVER] = vmx128_combine_over_u; imp->combine_32[PIXMAN_OP_OVER_REVERSE] = vmx128_combine_over_reverse_u; imp->combine_32[PIXMAN_OP_IN] = vmx128_combine_in_u; imp->combine_32[PIXMAN_OP_IN_REVERSE] = vmx128_combine_in_reverse_u; imp->combine_32[PIXMAN_OP_OUT] = vmx128_combine_out_u; imp->combine_32[PIXMAN_OP_OUT_REVERSE] = vmx128_combine_out_reverse_u; imp->combine_32[PIXMAN_OP_ATOP] = vmx128_combine_atop_u; imp->combine_32[PIXMAN_OP_ATOP_REVERSE] = vmx128_combine_atop_reverse_u; imp->combine_32[PIXMAN_OP_XOR] = vmx128_combine_xor_u; imp->combine_32[PIXMAN_OP_ADD] = vmx128_combine_add_u; imp->combine_32_ca[PIXMAN_OP_SRC] = vmx128_combine_src_ca; imp->combine_32_ca[PIXMAN_OP_OVER] = vmx128_combine_over_ca; imp->combine_32_ca[PIXMAN_OP_OVER_REVERSE] = vmx128_combine_over_reverse_ca; imp->combine_32_ca[PIXMAN_OP_IN] = vmx128_combine_in_ca; imp->combine_32_ca[PIXMAN_OP_IN_REVERSE] = vmx128_combine_in_reverse_ca; imp->combine_32_ca[PIXMAN_OP_OUT] = vmx128_combine_out_ca; imp->combine_32_ca[PIXMAN_OP_OUT_REVERSE] = vmx128_combine_out_reverse_ca; imp->combine_32_ca[PIXMAN_OP_ATOP] = vmx128_combine_atop_ca; imp->combine_32_ca[PIXMAN_OP_ATOP_REVERSE] = vmx128_combine_atop_reverse_ca; imp->combine_32_ca[PIXMAN_OP_XOR] = vmx128_combine_xor_ca; imp->combine_32_ca[PIXMAN_OP_ADD] = vmx128_combine_add_ca; return imp; }
pixman_implementation_t * _pixman_implementation_create_arm_simd (pixman_implementation_t *fallback) { pixman_implementation_t *imp = _pixman_implementation_create (fallback, arm_simd_fast_paths); imp->blt = arm_simd_blt; imp->fill = arm_simd_fill; return imp; }
pixman_implementation_t * _pixman_implementation_create_arm_simd (void) { pixman_implementation_t *general = _pixman_implementation_create_fast_path (); pixman_implementation_t *imp = _pixman_implementation_create (general); imp->composite = arm_simd_composite; return imp; }
pixman_implementation_t * _pixman_implementation_create_ssse3 (pixman_implementation_t *fallback) { pixman_implementation_t *imp = _pixman_implementation_create (fallback, ssse3_fast_paths); imp->iter_info = ssse3_iters; return imp; }
pixman_implementation_t * _pixman_implementation_create_noop (pixman_implementation_t *fallback) { pixman_implementation_t *imp = _pixman_implementation_create (fallback, noop_fast_paths); imp->src_iter_init = noop_src_iter_init; imp->dest_iter_init = noop_dest_iter_init; return imp; }
pixman_implementation_t * _pixman_implementation_create_general (void) { pixman_implementation_t *imp = _pixman_implementation_create (NULL, general_fast_path); _pixman_setup_combiner_functions_32 (imp); _pixman_setup_combiner_functions_float (imp); imp->iter_info = general_iters; return imp; }
pixman_implementation_t * _pixman_implementation_create_mips_dspr2 (pixman_implementation_t *fallback) { pixman_implementation_t *imp = _pixman_implementation_create (fallback, mips_dspr2_fast_paths); imp->combine_32[PIXMAN_OP_OVER] = mips_dspr2_combine_over_u; imp->blt = mips_dspr2_blt; imp->fill = mips_dspr2_fill; return imp; }
pixman_implementation_t * _pixman_implementation_create_general (void) { pixman_implementation_t *imp = _pixman_implementation_create (NULL, general_fast_path); _pixman_setup_combiner_functions_32 (imp); _pixman_setup_combiner_functions_64 (imp); imp->blt = general_blt; imp->fill = general_fill; return imp; }
pixman_implementation_t * _pixman_implementation_create_general (void) { pixman_implementation_t *imp = _pixman_implementation_create (NULL, general_fast_path); _pixman_setup_combiner_functions_16 (imp); _pixman_setup_combiner_functions_32 (imp); _pixman_setup_combiner_functions_float (imp); imp->src_iter_init = general_src_iter_init; imp->dest_iter_init = general_dest_iter_init; return imp; }
pixman_implementation_t * _pixman_implementation_create_arm_neon (pixman_implementation_t *fallback) { pixman_implementation_t *imp = _pixman_implementation_create (fallback, arm_neon_fast_paths); imp->combine_32[PIXMAN_OP_OVER] = neon_combine_over_u; imp->combine_32[PIXMAN_OP_ADD] = neon_combine_add_u; imp->combine_32[PIXMAN_OP_OUT_REVERSE] = neon_combine_out_reverse_u; imp->blt = arm_neon_blt; imp->fill = arm_neon_fill; return imp; }
pixman_implementation_t * _pixman_implementation_create_arm_neon (void) { #ifdef USE_ARM_SIMD pixman_implementation_t *fallback = _pixman_implementation_create_arm_simd (); #else pixman_implementation_t *fallback = _pixman_implementation_create_fast_path (); #endif pixman_implementation_t *imp = _pixman_implementation_create (fallback, arm_neon_fast_paths); imp->combine_32[PIXMAN_OP_OVER] = neon_combine_over_u; imp->combine_32[PIXMAN_OP_ADD] = neon_combine_add_u; imp->combine_32[PIXMAN_OP_OUT_REVERSE] = neon_combine_out_reverse_u; imp->blt = arm_neon_blt; imp->fill = arm_neon_fill; return imp; }