remove vips__image_sizeof_bandformat
we had main API macros which used an array behind the scenes, vips__image_sizeof_bandformat[]. Swap this for a function, vips_format_sizeof(), to help DLLs. the array symbol is still there for compatibility
This commit is contained in:
parent
46259f934f
commit
7495690cd6
@ -97,7 +97,7 @@ histogram_new( VipsProject *project )
|
|||||||
VipsStatistic *statistic = VIPS_STATISTIC( project );
|
VipsStatistic *statistic = VIPS_STATISTIC( project );
|
||||||
VipsImage *in = statistic->ready;
|
VipsImage *in = statistic->ready;
|
||||||
VipsBandFormat outfmt = vips_project_format_table[in->BandFmt];
|
VipsBandFormat outfmt = vips_project_format_table[in->BandFmt];
|
||||||
int psize = vips__image_sizeof_bandformat[outfmt] * in->Bands;
|
int psize = vips_format_sizeof( outfmt ) * in->Bands;
|
||||||
|
|
||||||
Histogram *hist;
|
Histogram *hist;
|
||||||
|
|
||||||
|
@ -92,8 +92,7 @@ make_pixel( VipsObject *obj,
|
|||||||
VipsPel *q;
|
VipsPel *q;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if( !(q = VIPS_ARRAY( obj,
|
if( !(q = VIPS_ARRAY( obj, m * vips_format_sizeof( fmt ), VipsPel )) )
|
||||||
m * vips__image_sizeof_bandformat[fmt], VipsPel )) )
|
|
||||||
return( NULL );
|
return( NULL );
|
||||||
|
|
||||||
switch( fmt ) {
|
switch( fmt ) {
|
||||||
|
@ -350,12 +350,10 @@ GType vips_image_get_type( void );
|
|||||||
/* Has to be guint64 and not size_t/off_t since we have to be able to address
|
/* Has to be guint64 and not size_t/off_t since we have to be able to address
|
||||||
* huge images on platforms with 32-bit files.
|
* huge images on platforms with 32-bit files.
|
||||||
*/
|
*/
|
||||||
extern const guint64 vips__image_sizeof_bandformat[];
|
|
||||||
|
|
||||||
/* Pixel address calculation macros.
|
/* Pixel address calculation macros.
|
||||||
*/
|
*/
|
||||||
#define VIPS_IMAGE_SIZEOF_ELEMENT( I ) \
|
#define VIPS_IMAGE_SIZEOF_ELEMENT( I ) \
|
||||||
(vips__image_sizeof_bandformat[(I)->BandFmt])
|
(vips_format_sizeof((I)->BandFmt))
|
||||||
#define VIPS_IMAGE_SIZEOF_PEL( I ) \
|
#define VIPS_IMAGE_SIZEOF_PEL( I ) \
|
||||||
(VIPS_IMAGE_SIZEOF_ELEMENT( I ) * (I)->Bands)
|
(VIPS_IMAGE_SIZEOF_ELEMENT( I ) * (I)->Bands)
|
||||||
#define VIPS_IMAGE_SIZEOF_LINE( I ) \
|
#define VIPS_IMAGE_SIZEOF_LINE( I ) \
|
||||||
|
@ -182,7 +182,7 @@ extern "C" {
|
|||||||
|
|
||||||
/* Renamed externs.
|
/* Renamed externs.
|
||||||
*/
|
*/
|
||||||
|
extern const guint64 vips__image_sizeof_bandformat[];
|
||||||
#define im__sizeof_bandfmt vips__image_sizeof_bandformat
|
#define im__sizeof_bandfmt vips__image_sizeof_bandformat
|
||||||
|
|
||||||
/* Renamed functions.
|
/* Renamed functions.
|
||||||
|
@ -165,10 +165,12 @@ static HeaderField old_double_field[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* This is used by (eg.) VIPS_IMAGE_SIZEOF_ELEMENT() to calculate object
|
/* This is used by (eg.) VIPS_IMAGE_SIZEOF_ELEMENT() to calculate object
|
||||||
* size.
|
* size via vips_format_sizeof().
|
||||||
*
|
*
|
||||||
* It needs to be guint64 and not size_t since we use this as the basis for
|
* It needs to be guint64 and not size_t since we use this as the basis for
|
||||||
* image address calcs and they have to be 64-bit, even on 32-bit machines.
|
* image address calcs and they have to be 64-bit, even on 32-bit machines.
|
||||||
|
*
|
||||||
|
* Can't be static, we need this to be visible for vips7 compat.
|
||||||
*/
|
*/
|
||||||
const guint64 vips__image_sizeof_bandformat[] = {
|
const guint64 vips__image_sizeof_bandformat[] = {
|
||||||
sizeof( unsigned char ), /* VIPS_FORMAT_UCHAR */
|
sizeof( unsigned char ), /* VIPS_FORMAT_UCHAR */
|
||||||
@ -187,15 +189,15 @@ const guint64 vips__image_sizeof_bandformat[] = {
|
|||||||
* vips_format_sizeof:
|
* vips_format_sizeof:
|
||||||
* @format: format type
|
* @format: format type
|
||||||
*
|
*
|
||||||
* Returns: number of bytes for a band format, or -1 on error.
|
* Returns: number of bytes for a band format.
|
||||||
*/
|
*/
|
||||||
guint64
|
guint64
|
||||||
vips_format_sizeof( VipsBandFormat format )
|
vips_format_sizeof( VipsBandFormat format )
|
||||||
{
|
{
|
||||||
return( (format < 0 || format > VIPS_FORMAT_DPCOMPLEX) ?
|
g_assert( format >= 0 &&
|
||||||
vips_error( "vips_format_sizeof",
|
format < VIPS_FORMAT_LAST );
|
||||||
_( "unknown band format %d" ), format ), -1 :
|
|
||||||
vips__image_sizeof_bandformat[format] );
|
return( vips__image_sizeof_bandformat[format] );
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
Loading…
Reference in New Issue
Block a user