fix an orc bug
This commit is contained in:
parent
8f6e959133
commit
5ec80bf163
9
TODO
9
TODO
@ -1,13 +1,4 @@
|
|||||||
|
|
||||||
- clean in nip2 is broken
|
|
||||||
|
|
||||||
works if you use --vips-novector
|
|
||||||
|
|
||||||
14.04 is orc-0.4.18, there must have been a change
|
|
||||||
|
|
||||||
nope, still broken with 0.4.11
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- vips_filename_suffix_match() is used by
|
- vips_filename_suffix_match() is used by
|
||||||
vips_foreign_load_new_from_foreign_sub(), but it splits on ':' ... argh!
|
vips_foreign_load_new_from_foreign_sub(), but it splits on ':' ... argh!
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
#define DEBUG_VERBOSE
|
||||||
#define DEBUG
|
#define DEBUG
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -208,8 +209,14 @@ pass_compile_section( Pass *pass, Morph *morph, gboolean first_pass )
|
|||||||
ASM3( "orb", "sum", "sum", "value" );
|
ASM3( "orb", "sum", "sum", "value" );
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if( !mask->coeff[i] )
|
if( !mask->coeff[i] ) {
|
||||||
ASM3( "andnb", "sum", "sum", "value" );
|
/* You'd think we could use andnb, but it
|
||||||
|
* fails on some machines with some orc
|
||||||
|
* versions :(
|
||||||
|
*/
|
||||||
|
ASM3( "xorb", "value", "value", one );
|
||||||
|
ASM3( "andb", "sum", "sum", "value" );
|
||||||
|
}
|
||||||
else
|
else
|
||||||
ASM3( "andb", "sum", "sum", "value" );
|
ASM3( "andb", "sum", "sum", "value" );
|
||||||
}
|
}
|
||||||
@ -454,10 +461,10 @@ dilate_gen( REGION *or, void *vseq, void *a, void *b )
|
|||||||
if( im_prepare( ir, &s ) )
|
if( im_prepare( ir, &s ) )
|
||||||
return( -1 );
|
return( -1 );
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG_VERBOSE
|
||||||
printf( "dilate_gen: preparing %dx%d@%dx%d pixels\n",
|
printf( "dilate_gen: preparing %dx%d@%dx%d pixels\n",
|
||||||
s.width, s.height, s.left, s.top );
|
s.width, s.height, s.left, s.top );
|
||||||
#endif /*DEBUG*/
|
#endif /*DEBUG_VERBOSE*/
|
||||||
|
|
||||||
/* Scan mask, building offsets we check when processing. Only do this
|
/* Scan mask, building offsets we check when processing. Only do this
|
||||||
* if the bpl has changed since the previous im_prepare().
|
* if the bpl has changed since the previous im_prepare().
|
||||||
@ -566,10 +573,10 @@ erode_gen( REGION *or, void *vseq, void *a, void *b )
|
|||||||
if( im_prepare( ir, &s ) )
|
if( im_prepare( ir, &s ) )
|
||||||
return( -1 );
|
return( -1 );
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG_VERBOSE
|
||||||
printf( "erode_gen: preparing %dx%d@%dx%d pixels\n",
|
printf( "erode_gen: preparing %dx%d@%dx%d pixels\n",
|
||||||
s.width, s.height, s.left, s.top );
|
s.width, s.height, s.left, s.top );
|
||||||
#endif /*DEBUG*/
|
#endif /*DEBUG_VERBOSE*/
|
||||||
|
|
||||||
/* Scan mask, building offsets we check when processing. Only do this
|
/* Scan mask, building offsets we check when processing. Only do this
|
||||||
* if the bpl has changed since the previous im_prepare().
|
* if the bpl has changed since the previous im_prepare().
|
||||||
@ -665,10 +672,10 @@ morph_vector_gen( REGION *or, void *vseq, void *a, void *b )
|
|||||||
if( im_prepare( ir, &s ) )
|
if( im_prepare( ir, &s ) )
|
||||||
return( -1 );
|
return( -1 );
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG_VERBOSE
|
||||||
printf( "morph_vector_gen: preparing %dx%d@%dx%d pixels\n",
|
printf( "morph_vector_gen: preparing %dx%d@%dx%d pixels\n",
|
||||||
s.width, s.height, s.left, s.top );
|
s.width, s.height, s.left, s.top );
|
||||||
#endif /*DEBUG*/
|
#endif /*DEBUG_VERBOSE*/
|
||||||
|
|
||||||
for( j = 0; j < morph->n_pass; j++ )
|
for( j = 0; j < morph->n_pass; j++ )
|
||||||
vips_executor_set_program( &executor[j],
|
vips_executor_set_program( &executor[j],
|
||||||
|
Loading…
Reference in New Issue
Block a user