[libpng16] Enabled png_get_sCAL_fixed() if floating point APIs are enabled.

Previously it was disabled whenever internal fixed point arithmetic was
selected, which meant it didn't exist even on systems where FP was available
but not preferred.
This commit is contained in:
John Bowler 2011-12-24 07:57:43 -06:00 committed by Glenn Randers-Pehrson
parent df477e4652
commit 29fca0d497
4 changed files with 25 additions and 12 deletions

View File

@ -79,8 +79,12 @@ Version 1.6.0beta03 [December 22, 2011]
Version 1.6.0beta04 [December 24, 2011]
Regenerated configure scripts with automake-1.11.2
Eliminated png_info_destroy. It is now used only in png.c and only calls one
other internal functions and memset.
Eliminated png_info_destroy(). It is now used only in png.c and only calls
one other internal function and memset().
Enabled png_get_sCAL_fixed() if floating point APIs are enabled. Previously
it was disabled whenever internal fixed point arithmetic was selected,
which meant it didn't exist even on systems where FP was available but not
preferred.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit

View File

@ -3830,8 +3830,12 @@ Version 1.6.0beta03 [December 22, 2011]
Version 1.6.0beta04 [December 24, 2011]
Regenerated configure scripts with automake-1.11.2
Eliminated png_info_destroy. It is now used only in png.c and only calls one
other internal functions and memset.
Eliminated png_info_destroy(). It is now used only in png.c and only calls
one other internal function and memset().
Enabled png_get_sCAL_fixed() if floating point APIs are enabled. Previously
it was disabled whenever internal fixed point arithmetic was selected,
which meant it didn't exist even on systems where FP was available but not
preferred.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit

13
png.h
View File

@ -1,7 +1,7 @@
/* png.h - header file for PNG reference library
*
* libpng version 1.6.0beta04 - December 22, 2011
* libpng version 1.6.0beta04 - December 24, 2011
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
@ -11,7 +11,7 @@
* Authors and maintainers:
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
* libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
* libpng versions 0.97, January 1998, through 1.6.0beta04 - December 22, 2011: Glenn
* libpng versions 0.97, January 1998, through 1.6.0beta04 - December 24, 2011: Glenn
* See also "Contributing Authors", below.
*
* Note about libpng version numbers:
@ -198,7 +198,7 @@
*
* This code is released under the libpng license.
*
* libpng versions 1.2.6, August 15, 2004, through 1.6.0beta04, December 22, 2011, are
* libpng versions 1.2.6, August 15, 2004, through 1.6.0beta04, December 24, 2011, are
* Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
* distributed according to the same disclaimer and license as libpng-1.2.5
* with the following individual added to the list of Contributing Authors:
@ -310,7 +310,7 @@
* Y2K compliance in libpng:
* =========================
*
* December 22, 2011
* December 24, 2011
*
* Since the PNG Development group is an ad-hoc body, we can't make
* an official declaration.
@ -376,7 +376,7 @@
/* Version information for png.h - this should match the version in png.c */
#define PNG_LIBPNG_VER_STRING "1.6.0beta04"
#define PNG_HEADER_VERSION_STRING \
" libpng version 1.6.0beta04 - December 22, 2011\n"
" libpng version 1.6.0beta04 - December 24, 2011\n"
#define PNG_LIBPNG_VER_SONUM 16
#define PNG_LIBPNG_VER_DLLNUM 16
@ -2265,7 +2265,8 @@ PNG_EXPORT(167, void, png_set_tRNS, (png_structp png_ptr, png_infop info_ptr,
#ifdef PNG_sCAL_SUPPORTED
PNG_FP_EXPORT(168, png_uint_32, png_get_sCAL, (png_const_structp png_ptr,
png_const_infop info_ptr, int *unit, double *width, double *height));
#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
#if (defined PNG_FLOATING_ARITHMETIC_SUPPORTED) || \
(defined PNG_FLOATING_POINT_SUPPORTED)
/* NOTE: this API is currently implemented using floating point arithmetic,
* consequently it can only be used on systems with floating point support.
* In any case the range of values supported by png_fixed_point is small and it

View File

@ -818,7 +818,8 @@ png_get_pCAL(png_const_structp png_ptr, png_const_infop info_ptr,
#ifdef PNG_sCAL_SUPPORTED
# ifdef PNG_FIXED_POINT_SUPPORTED
# ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
# if (defined PNG_FLOATING_ARITHMETIC_SUPPORTED) || \
(defined PNG_FLOATING_POINT_SUPPORTED)
png_uint_32 PNGAPI
png_get_sCAL_fixed(png_const_structp png_ptr, png_const_infop info_ptr,
int *unit, png_fixed_point *width, png_fixed_point *height)
@ -827,7 +828,10 @@ png_get_sCAL_fixed(png_const_structp png_ptr, png_const_infop info_ptr,
(info_ptr->valid & PNG_INFO_sCAL))
{
*unit = info_ptr->scal_unit;
/*TODO: make this work without FP support */
/*TODO: make this work without FP support; the API is currently eliminated
* if neither floating point APIs nor internal floating point arithmetic
* are enabled.
*/
*width = png_fixed(png_ptr, atof(info_ptr->scal_s_width), "sCAL width");
*height = png_fixed(png_ptr, atof(info_ptr->scal_s_height),
"sCAL height");