summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pixman/pixman-cpu.c2
-rw-r--r--pixman/pixman-orc.c13
-rw-r--r--pixman/pixman-private.h2
-rw-r--r--test/Makefile.am2
4 files changed, 10 insertions, 9 deletions
diff --git a/pixman/pixman-cpu.c b/pixman/pixman-cpu.c
index 9112278..92cc649 100644
--- a/pixman/pixman-cpu.c
+++ b/pixman/pixman-cpu.c
@@ -582,7 +582,7 @@ _pixman_choose_implementation (void)
imp = _pixman_implementation_create_fast_path (imp);
#ifdef HAVE_ORC
- return _pixman_implementation_create_orc ();
+ return _pixman_implementation_create_orc (imp);
#endif
#ifdef USE_MMX
if (pixman_have_mmx ())
diff --git a/pixman/pixman-orc.c b/pixman/pixman-orc.c
index df00568..988aae9 100644
--- a/pixman/pixman-orc.c
+++ b/pixman/pixman-orc.c
@@ -353,7 +353,7 @@ orc_composite_add_n_8_8 (pixman_implementation_t *imp,
PIXMAN_IMAGE_GET_LINE (
mask_image, mask_x, mask_y, uint8_t, mask_stride, mask_line, 1);
- src = _pixman_image_get_solid (src_image, dst_image->bits.format);
+ src = _pixman_image_get_solid (imp, src_image, dst_image->bits.format);
while (height--) {
dst = dst_line;
@@ -424,7 +424,7 @@ orc_composite_over_n_8888_8888_ca (pixman_implementation_t *imp,
int dst_stride, mask_stride;
uint32_t src;
- src = _pixman_image_get_solid (src_image, dst_image->bits.format);
+ src = _pixman_image_get_solid (imp, src_image, dst_image->bits.format);
if (src == 0) return;
@@ -477,10 +477,12 @@ static const pixman_fast_path_t orc_fast_paths[] =
PIXMAN_STD_FAST_PATH( OVER, a8b8g8r8, solid, a8b8g8r8, orc_composite_over_8888_n_8888 ),
PIXMAN_STD_FAST_PATH( OVER, a8b8g8r8, solid, x8b8g8r8, orc_composite_over_8888_n_8888 ),
#endif
+#ifdef broken
PIXMAN_STD_FAST_PATH_CA( OVER, solid, a8r8g8b8, a8r8g8b8, orc_composite_over_n_8888_8888_ca ),
PIXMAN_STD_FAST_PATH_CA( OVER, solid, a8r8g8b8, x8r8g8b8, orc_composite_over_n_8888_8888_ca ),
PIXMAN_STD_FAST_PATH_CA( OVER, solid, a8b8g8r8, a8b8g8r8, orc_composite_over_n_8888_8888_ca ),
PIXMAN_STD_FAST_PATH_CA( OVER, solid, a8b8g8r8, x8b8g8r8, orc_composite_over_n_8888_8888_ca ),
+#endif
#if 0
PIXMAN_STD_FAST_PATH( OVER, solid, a8r8g8b8_ca, r5g6b5, orc_composite_over_n_8888_0565_ca ),
PIXMAN_STD_FAST_PATH( OVER, solid, a8b8g8r8_ca, b5g6r5, orc_composite_over_n_8888_0565_ca ),
@@ -611,17 +613,16 @@ orc_fill (pixman_implementation_t *imp,
pixman_implementation_t *
-_pixman_implementation_create_orc (void)
+_pixman_implementation_create_orc (pixman_implementation_t * fallback)
{
- pixman_implementation_t *general = _pixman_implementation_create_fast_path ();
- pixman_implementation_t *imp = _pixman_implementation_create (general,
+ pixman_implementation_t *imp = _pixman_implementation_create (fallback,
orc_fast_paths);
orc_init ();
imp->combine_32[PIXMAN_OP_OVER] = orc_combine_over_u;
//imp->combine_32[PIXMAN_OP_OVER_REVERSE] = orc_combine_over_reverse_u;
- if (0) imp->combine_32[PIXMAN_OP_IN] = orc_combine_in_u;
+ imp->combine_32[PIXMAN_OP_IN] = orc_combine_in_u;
//imp->combine_32[PIXMAN_OP_IN_REVERSE] = orc_combine_in_reverse_u;
imp->combine_32[PIXMAN_OP_OUT] = orc_combine_out_u;
//imp->combine_32[PIXMAN_OP_OUT_REVERSE] = orc_combine_out_reverse_u;
diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h
index 9887646..2ef0f8b 100644
--- a/pixman/pixman-private.h
+++ b/pixman/pixman-private.h
@@ -550,7 +550,7 @@ _pixman_implementation_create_vmx (pixman_implementation_t *fallback);
#ifdef HAVE_ORC
pixman_implementation_t *
-_pixman_implementation_create_orc (void);
+_pixman_implementation_create_orc (pixman_implementation_t *fallback);
#endif
pixman_implementation_t *
diff --git a/test/Makefile.am b/test/Makefile.am
index 031b70e..19fb232 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -30,7 +30,7 @@ region_test_SOURCES = region-test.c utils.c utils.h
blitters_test_SOURCES = blitters-test.c utils.c utils.h
composite_traps_test_SOURCES = composite-traps-test.c utils.c utils.h
-ds_LDADD = $(TEST_LDADD)
+ds_LDADD = $(TEST_LDADD) -lorc-0.4
ds_SOURCES = ds.c ../pixman/tmp-orc.c
scaling_test_SOURCES = scaling-test.c utils.c utils.h