12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 * version 2 for more details (a copy is included in the LICENSE file that
14 * accompanied this code).
15 *
16 * You should have received a copy of the GNU General Public License version
17 * 2 along with this work; if not, write to the Free Software Foundation,
18 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19 *
20 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21 * or visit www.oracle.com if you need additional information or have any
22 * questions.
23 */
24
25 /* pngstruct.h - header file for PNG reference library
26 *
27 * This file is available under and governed by the GNU General Public
28 * License version 2 only, as published by the Free Software Foundation.
29 * However, the following notice accompanied the original version of this
30 * file and, per its terms, should not be removed:
31 *
32 * Last changed in libpng 1.6.35 [July 15, 2018]
33 * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
34 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
35 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
36 *
37 * This code is released under the libpng license.
38 * For conditions of distribution and use, see the disclaimer
39 * and license in png.h
40 */
41
42 /* The structure that holds the information to read and write PNG files.
43 * The only people who need to care about what is inside of this are the
44 * people who will be modifying the library for their own special needs.
45 * It should NOT be accessed directly by an application.
46 */
47
48 #ifndef PNGSTRUCT_H
49 #define PNGSTRUCT_H
50 /* zlib.h defines the structure z_stream, an instance of which is included
51 * in this structure and is required for decompressing the LZ compressed
52 * data in PNG files.
53 */
54 #ifndef ZLIB_CONST
55 /* We must ensure that zlib uses 'const' in declarations. */
401 png_user_chunk_ptr read_user_chunk_fn; /* user read chunk handler */
402 #endif
403 #endif
404
405 #ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED
406 int unknown_default; /* As PNG_HANDLE_* */
407 unsigned int num_chunk_list; /* Number of entries in the list */
408 png_bytep chunk_list; /* List of png_byte[5]; the textual chunk name
409 * followed by a PNG_HANDLE_* byte */
410 #endif
411
412 /* New members added in libpng-1.0.3 */
413 #ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
414 png_byte rgb_to_gray_status;
415 /* Added in libpng 1.5.5 to record setting of coefficients: */
416 png_byte rgb_to_gray_coefficients_set;
417 /* These were changed from png_byte in libpng-1.0.6 */
418 png_uint_16 rgb_to_gray_red_coeff;
419 png_uint_16 rgb_to_gray_green_coeff;
420 /* deleted in 1.5.5: rgb_to_gray_blue_coeff; */
421 #endif
422
423 /* New member added in libpng-1.0.4 (renamed in 1.0.9) */
424 #if defined(PNG_MNG_FEATURES_SUPPORTED)
425 /* Changed from png_byte to png_uint_32 at version 1.2.0 */
426 png_uint_32 mng_features_permitted;
427 #endif
428
429 /* New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0 */
430 #ifdef PNG_MNG_FEATURES_SUPPORTED
431 png_byte filter_type;
432 #endif
433
434 /* New members added in libpng-1.2.0 */
435
436 /* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */
437 #ifdef PNG_USER_MEM_SUPPORTED
438 png_voidp mem_ptr; /* user supplied struct for mem functions */
439 png_malloc_ptr malloc_fn; /* function for allocating memory */
440 png_free_ptr free_fn; /* function for freeing memory */
|
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 * version 2 for more details (a copy is included in the LICENSE file that
14 * accompanied this code).
15 *
16 * You should have received a copy of the GNU General Public License version
17 * 2 along with this work; if not, write to the Free Software Foundation,
18 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19 *
20 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21 * or visit www.oracle.com if you need additional information or have any
22 * questions.
23 */
24
25 /* pngstruct.h - header file for PNG reference library
26 *
27 * This file is available under and governed by the GNU General Public
28 * License version 2 only, as published by the Free Software Foundation.
29 * However, the following notice accompanied the original version of this
30 * file and, per its terms, should not be removed:
31 *
32 * Copyright (c) 2018-2019 Cosmin Truta
33 * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
34 * Copyright (c) 1996-1997 Andreas Dilger
35 * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
36 *
37 * This code is released under the libpng license.
38 * For conditions of distribution and use, see the disclaimer
39 * and license in png.h
40 */
41
42 /* The structure that holds the information to read and write PNG files.
43 * The only people who need to care about what is inside of this are the
44 * people who will be modifying the library for their own special needs.
45 * It should NOT be accessed directly by an application.
46 */
47
48 #ifndef PNGSTRUCT_H
49 #define PNGSTRUCT_H
50 /* zlib.h defines the structure z_stream, an instance of which is included
51 * in this structure and is required for decompressing the LZ compressed
52 * data in PNG files.
53 */
54 #ifndef ZLIB_CONST
55 /* We must ensure that zlib uses 'const' in declarations. */
401 png_user_chunk_ptr read_user_chunk_fn; /* user read chunk handler */
402 #endif
403 #endif
404
405 #ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED
406 int unknown_default; /* As PNG_HANDLE_* */
407 unsigned int num_chunk_list; /* Number of entries in the list */
408 png_bytep chunk_list; /* List of png_byte[5]; the textual chunk name
409 * followed by a PNG_HANDLE_* byte */
410 #endif
411
412 /* New members added in libpng-1.0.3 */
413 #ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
414 png_byte rgb_to_gray_status;
415 /* Added in libpng 1.5.5 to record setting of coefficients: */
416 png_byte rgb_to_gray_coefficients_set;
417 /* These were changed from png_byte in libpng-1.0.6 */
418 png_uint_16 rgb_to_gray_red_coeff;
419 png_uint_16 rgb_to_gray_green_coeff;
420 /* deleted in 1.5.5: rgb_to_gray_blue_coeff; */
421 #endif
422
423 /* New member added in libpng-1.6.36 */
424 #if defined(PNG_READ_EXPAND_SUPPORTED) && \
425 defined(PNG_ARM_NEON_IMPLEMENTATION)
426 png_bytep riffled_palette; /* buffer for accelerated palette expansion */
427 #endif
428
429 /* New member added in libpng-1.0.4 (renamed in 1.0.9) */
430 #if defined(PNG_MNG_FEATURES_SUPPORTED)
431 /* Changed from png_byte to png_uint_32 at version 1.2.0 */
432 png_uint_32 mng_features_permitted;
433 #endif
434
435 /* New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0 */
436 #ifdef PNG_MNG_FEATURES_SUPPORTED
437 png_byte filter_type;
438 #endif
439
440 /* New members added in libpng-1.2.0 */
441
442 /* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */
443 #ifdef PNG_USER_MEM_SUPPORTED
444 png_voidp mem_ptr; /* user supplied struct for mem functions */
445 png_malloc_ptr malloc_fn; /* function for allocating memory */
446 png_free_ptr free_fn; /* function for freeing memory */
|