forked from enlightenment/efl
Use the new runtime cpu detection functions to determine the correct drawing
routines. Some stubs for altivec support can be seen here, those are unreachable code paths until the corresponding functions are complete and committed. SVN revision: 7191
This commit is contained in:
parent
f212675a33
commit
7af9c3bf45
|
@ -486,11 +486,6 @@ evas_common_draw_context_cutout_split(Cutout_Rect *in, Cutout_Rect *split)
|
||||||
Gfx_Func_Blend_Src_Dst
|
Gfx_Func_Blend_Src_Dst
|
||||||
evas_common_draw_func_blend_get(RGBA_Image *src, RGBA_Image *dst, int pixels)
|
evas_common_draw_func_blend_get(RGBA_Image *src, RGBA_Image *dst, int pixels)
|
||||||
{
|
{
|
||||||
#ifdef BUILD_MMX
|
|
||||||
int mmx, sse, sse2;
|
|
||||||
|
|
||||||
evas_common_cpu_can_do(&mmx, &sse, &sse2);
|
|
||||||
#endif
|
|
||||||
if (src->flags & RGBA_IMAGE_HAS_ALPHA)
|
if (src->flags & RGBA_IMAGE_HAS_ALPHA)
|
||||||
{
|
{
|
||||||
if (dst->flags & RGBA_IMAGE_HAS_ALPHA)
|
if (dst->flags & RGBA_IMAGE_HAS_ALPHA)
|
||||||
|
@ -501,7 +496,7 @@ evas_common_draw_func_blend_get(RGBA_Image *src, RGBA_Image *dst, int pixels)
|
||||||
{
|
{
|
||||||
#ifdef BUILD_MMX
|
#ifdef BUILD_MMX
|
||||||
# ifdef BUILD_C
|
# ifdef BUILD_C
|
||||||
if (mmx)
|
if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
|
||||||
# endif
|
# endif
|
||||||
return evas_common_blend_pixels_rgba_to_rgb_mmx;
|
return evas_common_blend_pixels_rgba_to_rgb_mmx;
|
||||||
# ifdef BUILD_C
|
# ifdef BUILD_C
|
||||||
|
@ -522,7 +517,7 @@ evas_common_draw_func_blend_get(RGBA_Image *src, RGBA_Image *dst, int pixels)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef BUILD_SSE
|
#ifdef BUILD_SSE
|
||||||
if ((sse) && (pixels > 256 * 256))
|
if (evas_common_cpu_has_feature(CPU_FEATURE_SSE) && (pixels > 256 * 256))
|
||||||
return evas_common_copy_pixels_rgba_to_rgba_sse;
|
return evas_common_copy_pixels_rgba_to_rgba_sse;
|
||||||
# ifdef BUILD_MMX
|
# ifdef BUILD_MMX
|
||||||
else
|
else
|
||||||
|
@ -530,7 +525,7 @@ evas_common_draw_func_blend_get(RGBA_Image *src, RGBA_Image *dst, int pixels)
|
||||||
#endif
|
#endif
|
||||||
#ifdef BUILD_MMX
|
#ifdef BUILD_MMX
|
||||||
# ifdef BUILD_C
|
# ifdef BUILD_C
|
||||||
if (mmx)
|
if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
|
||||||
# endif
|
# endif
|
||||||
return evas_common_copy_pixels_rgba_to_rgba_mmx;
|
return evas_common_copy_pixels_rgba_to_rgba_mmx;
|
||||||
# ifdef BUILD_C
|
# ifdef BUILD_C
|
||||||
|
@ -549,11 +544,6 @@ evas_common_draw_func_blend_get(RGBA_Image *src, RGBA_Image *dst, int pixels)
|
||||||
Gfx_Func_Blend_Color_Dst
|
Gfx_Func_Blend_Color_Dst
|
||||||
evas_common_draw_func_blend_color_get(DATA32 src, RGBA_Image *dst, int pixels)
|
evas_common_draw_func_blend_color_get(DATA32 src, RGBA_Image *dst, int pixels)
|
||||||
{
|
{
|
||||||
#ifdef BUILD_MMX
|
|
||||||
int mmx, sse, sse2;
|
|
||||||
|
|
||||||
evas_common_cpu_can_do(&mmx, &sse, &sse2);
|
|
||||||
#endif
|
|
||||||
if (A_VAL(&src) != 0xff)
|
if (A_VAL(&src) != 0xff)
|
||||||
{
|
{
|
||||||
if (dst->flags & RGBA_IMAGE_HAS_ALPHA)
|
if (dst->flags & RGBA_IMAGE_HAS_ALPHA)
|
||||||
|
@ -562,13 +552,20 @@ evas_common_draw_func_blend_color_get(DATA32 src, RGBA_Image *dst, int pixels)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
#ifdef BUILD_ALTIVEC
|
||||||
|
if (evas_common_cpu_has_feature(CPU_FEATURE_ALTIVEC))
|
||||||
|
return evas_common_blend_color_rgba_to_rgb_altivec;
|
||||||
|
#endif
|
||||||
#ifdef BUILD_MMX
|
#ifdef BUILD_MMX
|
||||||
if (mmx)
|
if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
|
||||||
return evas_common_blend_color_rgba_to_rgb_mmx;
|
return evas_common_blend_color_rgba_to_rgb_mmx;
|
||||||
#endif
|
#endif
|
||||||
#ifdef BUILD_C
|
#ifdef BUILD_C
|
||||||
# ifdef BUILD_MMX
|
# ifdef BUILD_MMX
|
||||||
else
|
else
|
||||||
|
# endif
|
||||||
|
# ifdef BUILD_ALTIVEC
|
||||||
|
else
|
||||||
# endif
|
# endif
|
||||||
return evas_common_blend_color_rgba_to_rgb_c;
|
return evas_common_blend_color_rgba_to_rgb_c;
|
||||||
#endif
|
#endif
|
||||||
|
@ -583,14 +580,18 @@ evas_common_draw_func_blend_color_get(DATA32 src, RGBA_Image *dst, int pixels)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef BUILD_SSE
|
#ifdef BUILD_SSE
|
||||||
if ((sse) && (pixels > 256 * 256))
|
if (evas_common_cpu_has_feature(CPU_FEATURE_SSE) && (pixels > 256 * 256))
|
||||||
return evas_common_copy_color_rgba_to_rgba_sse;
|
return evas_common_copy_color_rgba_to_rgba_sse;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef BUILD_ALTIVEC
|
||||||
|
if (evas_common_cpu_has_feature(CPU_FEATURE_ALTIVEC))
|
||||||
|
return evas_common_copy_color_rgba_to_rgba_altivec;
|
||||||
|
#endif
|
||||||
#ifdef BUILD_MMX
|
#ifdef BUILD_MMX
|
||||||
# ifdef BUILD_SSE
|
# ifdef BUILD_SSE
|
||||||
else
|
else
|
||||||
# endif
|
# endif
|
||||||
if (mmx)
|
if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
|
||||||
return evas_common_copy_color_rgba_to_rgba_mmx;
|
return evas_common_copy_color_rgba_to_rgba_mmx;
|
||||||
#endif
|
#endif
|
||||||
#ifdef BUILD_C
|
#ifdef BUILD_C
|
||||||
|
@ -608,11 +609,6 @@ evas_common_draw_func_blend_color_get(DATA32 src, RGBA_Image *dst, int pixels)
|
||||||
Gfx_Func_Blend_Src_Cmod_Dst
|
Gfx_Func_Blend_Src_Cmod_Dst
|
||||||
evas_common_draw_func_blend_cmod_get(RGBA_Image *src, RGBA_Image *dst, int pixels)
|
evas_common_draw_func_blend_cmod_get(RGBA_Image *src, RGBA_Image *dst, int pixels)
|
||||||
{
|
{
|
||||||
#ifdef BUILD_MMX
|
|
||||||
int mmx, sse, sse2;
|
|
||||||
|
|
||||||
evas_common_cpu_can_do(&mmx, &sse, &sse2);
|
|
||||||
#endif
|
|
||||||
if (src->flags & RGBA_IMAGE_HAS_ALPHA)
|
if (src->flags & RGBA_IMAGE_HAS_ALPHA)
|
||||||
{
|
{
|
||||||
if (dst->flags & RGBA_IMAGE_HAS_ALPHA)
|
if (dst->flags & RGBA_IMAGE_HAS_ALPHA)
|
||||||
|
@ -642,11 +638,6 @@ evas_common_draw_func_blend_cmod_get(RGBA_Image *src, RGBA_Image *dst, int pixel
|
||||||
Gfx_Func_Blend_Src_Mul_Dst
|
Gfx_Func_Blend_Src_Mul_Dst
|
||||||
evas_common_draw_func_blend_mul_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels)
|
evas_common_draw_func_blend_mul_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels)
|
||||||
{
|
{
|
||||||
#ifdef BUILD_MMX
|
|
||||||
int mmx, sse, sse2;
|
|
||||||
|
|
||||||
evas_common_cpu_can_do(&mmx, &sse, &sse2);
|
|
||||||
#endif
|
|
||||||
if (src->flags & RGBA_IMAGE_HAS_ALPHA)
|
if (src->flags & RGBA_IMAGE_HAS_ALPHA)
|
||||||
{
|
{
|
||||||
if (dst->flags & RGBA_IMAGE_HAS_ALPHA)
|
if (dst->flags & RGBA_IMAGE_HAS_ALPHA)
|
||||||
|
@ -656,7 +647,7 @@ evas_common_draw_func_blend_mul_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef BUILD_MMX
|
#ifdef BUILD_MMX
|
||||||
if (mmx)
|
if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
|
||||||
return evas_common_blend_pixels_mul_color_rgba_to_rgb_mmx;
|
return evas_common_blend_pixels_mul_color_rgba_to_rgb_mmx;
|
||||||
#endif
|
#endif
|
||||||
#ifdef BUILD_C
|
#ifdef BUILD_C
|
||||||
|
@ -676,7 +667,7 @@ evas_common_draw_func_blend_mul_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef BUILD_MMX
|
#ifdef BUILD_MMX
|
||||||
if (mmx)
|
if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
|
||||||
return evas_common_blend_pixels_mul_color_rgba_to_rgb_mmx;
|
return evas_common_blend_pixels_mul_color_rgba_to_rgb_mmx;
|
||||||
#endif
|
#endif
|
||||||
#ifdef BUILD_C
|
#ifdef BUILD_C
|
||||||
|
@ -695,11 +686,6 @@ evas_common_draw_func_blend_mul_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst
|
||||||
Gfx_Func_Blend_Src_Alpha_Mul_Dst
|
Gfx_Func_Blend_Src_Alpha_Mul_Dst
|
||||||
evas_common_draw_func_blend_alpha_get(RGBA_Image *dst)
|
evas_common_draw_func_blend_alpha_get(RGBA_Image *dst)
|
||||||
{
|
{
|
||||||
#ifdef BUILD_MMX
|
|
||||||
int mmx, sse, sse2;
|
|
||||||
|
|
||||||
evas_common_cpu_can_do(&mmx, &sse, &sse2);
|
|
||||||
#endif
|
|
||||||
if (dst->flags & RGBA_IMAGE_HAS_ALPHA)
|
if (dst->flags & RGBA_IMAGE_HAS_ALPHA)
|
||||||
{
|
{
|
||||||
return evas_common_blend_alpha_color_rgba_to_rgba_c;
|
return evas_common_blend_alpha_color_rgba_to_rgba_c;
|
||||||
|
@ -707,15 +693,22 @@ evas_common_draw_func_blend_alpha_get(RGBA_Image *dst)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef BUILD_MMX
|
#ifdef BUILD_MMX
|
||||||
if (mmx)
|
if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
|
||||||
return evas_common_blend_alpha_color_rgba_to_rgb_mmx;
|
return evas_common_blend_alpha_color_rgba_to_rgb_mmx;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef BUILD_ALTIVEC
|
||||||
|
if (evas_common_cpu_has_feature(CPU_FEATURE_ALTIVEC))
|
||||||
|
return evas_common_blend_alpha_color_rgba_to_rgb_altivec;
|
||||||
|
#endif
|
||||||
#ifdef BUILD_C
|
#ifdef BUILD_C
|
||||||
# ifdef BUILD_MMX
|
# ifdef BUILD_MMX
|
||||||
else
|
else
|
||||||
# endif
|
# endif
|
||||||
|
# ifdef BUILD_ALTIVEC
|
||||||
|
else
|
||||||
|
# endif
|
||||||
return evas_common_blend_alpha_color_rgba_to_rgb_c;
|
return evas_common_blend_alpha_color_rgba_to_rgb_c;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#ifdef BUILD_C
|
#ifdef BUILD_C
|
||||||
return evas_common_blend_alpha_color_rgba_to_rgba_c;
|
return evas_common_blend_alpha_color_rgba_to_rgba_c;
|
||||||
|
@ -727,22 +720,17 @@ evas_common_draw_func_blend_alpha_get(RGBA_Image *dst)
|
||||||
Gfx_Func_Blend_Src_Dst
|
Gfx_Func_Blend_Src_Dst
|
||||||
evas_common_draw_func_copy_get(int pixels, int reverse)
|
evas_common_draw_func_copy_get(int pixels, int reverse)
|
||||||
{
|
{
|
||||||
#ifdef BUILD_MMX
|
|
||||||
int mmx, sse, sse2;
|
|
||||||
|
|
||||||
evas_common_cpu_can_do(&mmx, &sse, &sse2);
|
|
||||||
#endif
|
|
||||||
if (reverse)
|
if (reverse)
|
||||||
{
|
{
|
||||||
#ifdef BUILD_SSE
|
#ifdef BUILD_SSE
|
||||||
if ((sse) && (pixels > 256 * 256))
|
if (evas_common_cpu_has_feature(CPU_FEATURE_SSE) && (pixels > 256 * 256))
|
||||||
return evas_common_copy_pixels_rev_rgba_to_rgba_sse;
|
return evas_common_copy_pixels_rev_rgba_to_rgba_sse;
|
||||||
#endif
|
#endif
|
||||||
#ifdef BUILD_MMX
|
#ifdef BUILD_MMX
|
||||||
# ifdef BUILD_SSE
|
# ifdef BUILD_SSE
|
||||||
else
|
else
|
||||||
# endif
|
# endif
|
||||||
if (mmx)
|
if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
|
||||||
return evas_common_copy_pixels_rev_rgba_to_rgba_mmx;
|
return evas_common_copy_pixels_rev_rgba_to_rgba_mmx;
|
||||||
#endif
|
#endif
|
||||||
#ifdef BUILD_C
|
#ifdef BUILD_C
|
||||||
|
@ -755,14 +743,14 @@ evas_common_draw_func_copy_get(int pixels, int reverse)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef BUILD_SSE
|
#ifdef BUILD_SSE
|
||||||
if ((sse) && (pixels > 256 * 256))
|
if (evas_common_cpu_has_feature(CPU_FEATURE_SSE) && (pixels > 256 * 256))
|
||||||
return evas_common_copy_pixels_rgba_to_rgba_sse;
|
return evas_common_copy_pixels_rgba_to_rgba_sse;
|
||||||
#endif
|
#endif
|
||||||
#ifdef BUILD_MMX
|
#ifdef BUILD_MMX
|
||||||
# ifdef BUILD_SSE
|
# ifdef BUILD_SSE
|
||||||
else
|
else
|
||||||
# endif
|
# endif
|
||||||
if (mmx)
|
if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
|
||||||
return evas_common_copy_pixels_rgba_to_rgba_mmx;
|
return evas_common_copy_pixels_rgba_to_rgba_mmx;
|
||||||
#endif
|
#endif
|
||||||
#ifdef BUILD_C
|
#ifdef BUILD_C
|
||||||
|
|
Loading…
Reference in New Issue