< prev index next >

src/java.desktop/share/native/libsplashscreen/libpng/pngpriv.h

Print this page

        

*** 27,38 **** * This file is available under and governed by the GNU General Public * License version 2 only, as published by the Free Software Foundation. * However, the following notice accompanied the original version of this * file and, per its terms, should not be removed: * ! * Last changed in libpng 1.6.26 [October 20, 2016] ! * Copyright (c) 1998-2002,2004,2006-2016 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.) * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer --- 27,38 ---- * This file is available under and governed by the GNU General Public * License version 2 only, as published by the Free Software Foundation. * However, the following notice accompanied the original version of this * file and, per its terms, should not be removed: * ! * Last changed in libpng 1.6.32 [August 24, 2017] ! * Copyright (c) 1998-2002,2004,2006-2017 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.) * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer
*** 61,71 **** * These macros only have an effect if the operating system supports either * POSIX 1003.1 or C99, or both. On other operating systems (particularly * Windows/Visual Studio) there is no effect; the OS specific tests below are * still required (as of 2011-05-02.) */ ! #define _POSIX_SOURCE 1 /* Just the POSIX 1003.1 and C89 APIs */ #ifndef PNG_VERSION_INFO_ONLY /* Standard library headers not required by png.h: */ # include <stdlib.h> # include <string.h> --- 61,73 ---- * These macros only have an effect if the operating system supports either * POSIX 1003.1 or C99, or both. On other operating systems (particularly * Windows/Visual Studio) there is no effect; the OS specific tests below are * still required (as of 2011-05-02.) */ ! #ifndef _POSIX_SOURCE ! # define _POSIX_SOURCE 1 /* Just the POSIX 1003.1 and C89 APIs */ ! #endif #ifndef PNG_VERSION_INFO_ONLY /* Standard library headers not required by png.h: */ # include <stdlib.h> # include <string.h>
*** 216,225 **** --- 218,271 ---- # else # define PNG_MIPS_MSA_OPT 0 # endif #endif + #ifndef PNG_POWERPC_VSX_OPT + # if defined(__PPC64__) && defined(__ALTIVEC__) && defined(__VSX__) + # define PNG_POWERPC_VSX_OPT 2 + # else + # define PNG_POWERPC_VSX_OPT 0 + # endif + #endif + + #ifndef PNG_INTEL_SSE_OPT + # ifdef PNG_INTEL_SSE + /* Only check for SSE if the build configuration has been modified to + * enable SSE optimizations. This means that these optimizations will + * be off by default. See contrib/intel for more details. + */ + # if defined(__SSE4_1__) || defined(__AVX__) || defined(__SSSE3__) || \ + defined(__SSE2__) || defined(_M_X64) || defined(_M_AMD64) || \ + (defined(_M_IX86_FP) && _M_IX86_FP >= 2) + # define PNG_INTEL_SSE_OPT 1 + # endif + # endif + #endif + + #if PNG_INTEL_SSE_OPT > 0 + # ifndef PNG_INTEL_SSE_IMPLEMENTATION + # if defined(__SSE4_1__) || defined(__AVX__) + /* We are not actually using AVX, but checking for AVX is the best + way we can detect SSE4.1 and SSSE3 on MSVC. + */ + # define PNG_INTEL_SSE_IMPLEMENTATION 3 + # elif defined(__SSSE3__) + # define PNG_INTEL_SSE_IMPLEMENTATION 2 + # elif defined(__SSE2__) || defined(_M_X64) || defined(_M_AMD64) || \ + (defined(_M_IX86_FP) && _M_IX86_FP >= 2) + # define PNG_INTEL_SSE_IMPLEMENTATION 1 + # else + # define PNG_INTEL_SSE_IMPLEMENTATION 0 + # endif + # endif + + # if PNG_INTEL_SSE_IMPLEMENTATION > 0 + # define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_sse2 + # endif + #endif + #if PNG_MIPS_MSA_OPT > 0 # define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_msa # ifndef PNG_MIPS_MSA_IMPLEMENTATION # if defined(__mips_msa) # if defined(__clang__)
*** 236,245 **** --- 282,296 ---- # ifndef PNG_MIPS_MSA_IMPLEMENTATION # define PNG_MIPS_MSA_IMPLEMENTATION 1 # endif #endif /* PNG_MIPS_MSA_OPT > 0 */ + #if PNG_POWERPC_VSX_OPT > 0 + # define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_vsx + # define PNG_POWERPC_VSX_IMPLEMENTATION 1 + #endif + /* Is this a build of a DLL where compilation of the object modules requires * different preprocessor settings to those required for a simple library? If * so PNG_BUILD_DLL must be set. *
*** 429,438 **** --- 480,504 ---- #endif #ifndef PNG_ERROR_TEXT_SUPPORTED # define png_fixed_error(s1,s2) png_err(s1) #endif + /* Some fixed point APIs are still required even if not exported because + * they get used by the corresponding floating point APIs. This magic + * deals with this: + */ + #ifdef PNG_FIXED_POINT_SUPPORTED + # define PNGFAPI PNGAPI + #else + # define PNGFAPI /* PRIVATE */ + #endif + + #ifndef PNG_VERSION_INFO_ONLY + /* Other defines specific to compilers can go here. Try to keep + * them inside an appropriate ifdef/endif pair for portability. + */ + /* C allows up-casts from (void*) to any pointer and (const void*) to any * pointer to a const object. C++ regards this as a type error and requires an * explicit, static, cast and provides the static_cast<> rune to ensure that * const is not cast away. */
*** 443,471 **** static_cast<type>(static_cast<void*>(value)) # define png_aligncastconst(type, value) \ static_cast<type>(static_cast<const void*>(value)) #else # define png_voidcast(type, value) (value) ! # define png_constcast(type, value) ((type)(value)) # define png_aligncast(type, value) ((void*)(value)) # define png_aligncastconst(type, value) ((const void*)(value)) #endif /* __cplusplus */ - /* Some fixed point APIs are still required even if not exported because - * they get used by the corresponding floating point APIs. This magic - * deals with this: - */ - #ifdef PNG_FIXED_POINT_SUPPORTED - # define PNGFAPI PNGAPI - #else - # define PNGFAPI /* PRIVATE */ - #endif - - #ifndef PNG_VERSION_INFO_ONLY - /* Other defines specific to compilers can go here. Try to keep - * them inside an appropriate ifdef/endif pair for portability. - */ #if defined(PNG_FLOATING_POINT_SUPPORTED) ||\ defined(PNG_FLOATING_ARITHMETIC_SUPPORTED) /* png.c requires the following ANSI-C constants if the conversion of * floating point to ASCII is implemented therein: * --- 509,532 ---- static_cast<type>(static_cast<void*>(value)) # define png_aligncastconst(type, value) \ static_cast<type>(static_cast<const void*>(value)) #else # define png_voidcast(type, value) (value) ! # ifdef _WIN64 ! # ifdef __GNUC__ ! typedef unsigned long long png_ptruint; ! # else ! typedef unsigned __int64 png_ptruint; ! # endif ! # else ! typedef unsigned long png_ptruint; ! # endif ! # define png_constcast(type, value) ((type)(png_ptruint)(const void*)(value)) # define png_aligncast(type, value) ((void*)(value)) # define png_aligncastconst(type, value) ((const void*)(value)) #endif /* __cplusplus */ #if defined(PNG_FLOATING_POINT_SUPPORTED) ||\ defined(PNG_FLOATING_ARITHMETIC_SUPPORTED) /* png.c requires the following ANSI-C constants if the conversion of * floating point to ASCII is implemented therein: *
*** 807,816 **** --- 868,878 ---- #define png_IEND PNG_U32( 73, 69, 78, 68) #define png_IHDR PNG_U32( 73, 72, 68, 82) #define png_PLTE PNG_U32( 80, 76, 84, 69) #define png_bKGD PNG_U32( 98, 75, 71, 68) #define png_cHRM PNG_U32( 99, 72, 82, 77) + #define png_eXIf PNG_U32(101, 88, 73, 102) /* registered July 2017 */ #define png_fRAc PNG_U32(102, 82, 65, 99) /* registered, not defined */ #define png_gAMA PNG_U32(103, 65, 77, 65) #define png_gIFg PNG_U32(103, 73, 70, 103) #define png_gIFt PNG_U32(103, 73, 70, 116) /* deprecated */ #define png_gIFx PNG_U32(103, 73, 70, 120)
*** 1107,1116 **** --- 1169,1183 ---- #ifdef PNG_WRITE_sRGB_SUPPORTED PNG_INTERNAL_FUNCTION(void,png_write_sRGB,(png_structrp png_ptr, int intent),PNG_EMPTY); #endif + #ifdef PNG_WRITE_eXIf_SUPPORTED + PNG_INTERNAL_FUNCTION(void,png_write_eXIf,(png_structrp png_ptr, + png_bytep exif, int num_exif),PNG_EMPTY); + #endif + #ifdef PNG_WRITE_iCCP_SUPPORTED PNG_INTERNAL_FUNCTION(void,png_write_iCCP,(png_structrp png_ptr, png_const_charp name, png_const_bytep profile), PNG_EMPTY); /* The profile must have been previously validated for correctness, the * length comes from the first four bytes. Only the base, deflate,
*** 1282,1291 **** --- 1349,1390 ---- row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_msa,(png_row_infop row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); #endif + #if PNG_POWERPC_VSX_OPT > 0 + PNG_INTERNAL_FUNCTION(void,png_read_filter_row_up_vsx,(png_row_infop row_info, + png_bytep row, png_const_bytep prev_row),PNG_EMPTY); + PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub3_vsx,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); + PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub4_vsx,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); + PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg3_vsx,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); + PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg4_vsx,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); + PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth3_vsx,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); + PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_vsx,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); + #endif + + #if PNG_INTEL_SSE_IMPLEMENTATION > 0 + PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub3_sse2,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); + PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub4_sse2,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); + PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg3_sse2,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); + PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg4_sse2,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); + PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth3_sse2,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); + PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_sse2,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); + #endif + /* Choose the best filter to use and filter the row data */ PNG_INTERNAL_FUNCTION(void,png_write_find_filter,(png_structrp png_ptr, png_row_infop row_info),PNG_EMPTY); #ifdef PNG_SEQUENTIAL_READ_SUPPORTED
*** 1374,1383 **** --- 1473,1487 ---- #ifdef PNG_READ_cHRM_SUPPORTED PNG_INTERNAL_FUNCTION(void,png_handle_cHRM,(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); #endif + #ifdef PNG_READ_eXIf_SUPPORTED + PNG_INTERNAL_FUNCTION(void,png_handle_eXIf,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); + #endif + #ifdef PNG_READ_gAMA_SUPPORTED PNG_INTERNAL_FUNCTION(void,png_handle_gAMA,(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); #endif
*** 1449,1460 **** #ifdef PNG_READ_zTXt_SUPPORTED PNG_INTERNAL_FUNCTION(void,png_handle_zTXt,(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); #endif ! PNG_INTERNAL_FUNCTION(void,png_check_chunk_name,(png_structrp png_ptr, ! png_uint_32 chunk_name),PNG_EMPTY); PNG_INTERNAL_FUNCTION(void,png_handle_unknown,(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length, int keep),PNG_EMPTY); /* This is the function that gets called for unknown chunks. The 'keep' * argument is either non-zero for a known chunk that has been set to be --- 1553,1567 ---- #ifdef PNG_READ_zTXt_SUPPORTED PNG_INTERNAL_FUNCTION(void,png_handle_zTXt,(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); #endif ! PNG_INTERNAL_FUNCTION(void,png_check_chunk_name,(png_const_structrp png_ptr, ! const png_uint_32 chunk_name),PNG_EMPTY); ! ! PNG_INTERNAL_FUNCTION(void,png_check_chunk_length,(png_const_structrp png_ptr, ! const png_uint_32 chunk_length),PNG_EMPTY); PNG_INTERNAL_FUNCTION(void,png_handle_unknown,(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length, int keep),PNG_EMPTY); /* This is the function that gets called for unknown chunks. The 'keep' * argument is either non-zero for a known chunk that has been set to be
*** 2017,2026 **** --- 2124,2138 ---- #if PNG_MIPS_MSA_OPT > 0 PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_msa, (png_structp png_ptr, unsigned int bpp), PNG_EMPTY); #endif + + # if PNG_INTEL_SSE_IMPLEMENTATION > 0 + PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_sse2, + (png_structp png_ptr, unsigned int bpp), PNG_EMPTY); + # endif #endif PNG_INTERNAL_FUNCTION(png_uint_32, png_check_keyword, (png_structrp png_ptr, png_const_charp key, png_bytep new_key), PNG_EMPTY);
< prev index next >