forked from KolibriOS/kolibrios
444 lines
17 KiB
PHP
444 lines
17 KiB
PHP
|
|
||
|
; pngstruct.inc - header file for PNG reference library
|
||
|
|
||
|
; Last changed in libpng 1.6.24 [August 4, 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
|
||
|
; and license in png.inc
|
||
|
|
||
|
|
||
|
; The structure that holds the information to read and write PNG files.
|
||
|
; The only people who need to care about what is inside of this are the
|
||
|
; people who will be modifying the library for their own special needs.
|
||
|
; It should NOT be accessed directly by an application.
|
||
|
|
||
|
|
||
|
; zlib.inc defines the structure z_stream, an instance of which is included
|
||
|
; in this structure and is required for decompressing the LZ compressed
|
||
|
; data in PNG files.
|
||
|
|
||
|
include '../../../../../../fs/kfar/trunk/zlib/zlib.inc'
|
||
|
|
||
|
; zlib.inc declares a magic type 'uInt' that limits the amount of data that zlib
|
||
|
; can handle at once. This type need be no larger than 16 bits (so maximum of
|
||
|
; 65535), this define allows us to discover how big it is, but limited by the
|
||
|
; maximuum for png_size_t. The value can be overriden in a library build
|
||
|
; (pngusr.h, or set it in CPPFLAGS) and it works to set it to a considerably
|
||
|
; lower value (e.g. 255 works). A lower value may help memory usage (slightly)
|
||
|
; and may even improve performance on some systems (and degrade it on others.)
|
||
|
|
||
|
|
||
|
ZLIB_IO_MAX equ 0xffff ;-1 ;uInt
|
||
|
|
||
|
|
||
|
; The type of a compression buffer list used by the write code.
|
||
|
struct png_compression_buffer
|
||
|
next dd ? ;struct png_compression_buffer *
|
||
|
output db ? ;byte[1] ;actually zbuf_size
|
||
|
ends
|
||
|
|
||
|
macro PNG_COMPRESSION_BUFFER_SIZE pp
|
||
|
{
|
||
|
mov eax,png_compression_buffer.output
|
||
|
add eax,[pp+png_struct.zbuffer_size]
|
||
|
}
|
||
|
|
||
|
; Colorspace support; structures used in png_struct, png_info and in internal
|
||
|
; functions to hold and communicate information about the color space.
|
||
|
|
||
|
; PNG_COLORSPACE_SUPPORTED is only required if the application will perform
|
||
|
; colorspace corrections, otherwise all the colorspace information can be
|
||
|
; skipped and the size of libpng can be reduced (significantly) by compiling
|
||
|
; out the colorspace support.
|
||
|
|
||
|
if PNG_COLORSPACE_SUPPORTED eq 1
|
||
|
; The chromaticities of the red, green and blue colorants and the chromaticity
|
||
|
; of the corresponding white point (i.e. of rgb(1.0,1.0,1.0)).
|
||
|
|
||
|
struct png_xy
|
||
|
redx dd ? ;png_fixed_point
|
||
|
redy dd ?
|
||
|
greenx dd ?
|
||
|
greeny dd ?
|
||
|
bluex dd ?
|
||
|
bluey dd ?
|
||
|
whitex dd ?
|
||
|
whitey dd ?
|
||
|
ends
|
||
|
|
||
|
; The same data as above but encoded as CIE XYZ values. When this data comes
|
||
|
; from chromaticities the sum of the Y values is assumed to be 1.0
|
||
|
|
||
|
struct png_XYZ
|
||
|
red_X dd ? ;png_fixed_point
|
||
|
red_Y dd ?
|
||
|
red_Z dd ?
|
||
|
green_X dd ?
|
||
|
green_Y dd ?
|
||
|
green_Z dd ?
|
||
|
blue_X dd ?
|
||
|
blue_Y dd ?
|
||
|
blue_Z dd ?
|
||
|
ends
|
||
|
end if ;COLORSPACE
|
||
|
|
||
|
if (PNG_COLORSPACE_SUPPORTED eq 1) | (PNG_GAMMA_SUPPORTED eq 1)
|
||
|
; A colorspace is all the above plus, potentially, profile information;
|
||
|
; however at present libpng does not use the profile internally so it is only
|
||
|
; stored in the png_info struct (if iCCP is supported.) The rendering intent
|
||
|
; is retained here and is checked.
|
||
|
|
||
|
; The file gamma encoding information is also stored here and gamma correction
|
||
|
; is done by libpng, whereas color correction must currently be done by the
|
||
|
; application.
|
||
|
|
||
|
struct png_colorspace
|
||
|
if PNG_GAMMA_SUPPORTED eq 1
|
||
|
gamma dd ? ;png_fixed_point ;File gamma
|
||
|
end if
|
||
|
|
||
|
if PNG_COLORSPACE_SUPPORTED eq 1
|
||
|
end_points_xy png_xy ;End points as chromaticities
|
||
|
end_points_XYZ png_XYZ ;End points as CIE XYZ colorant values
|
||
|
rendering_intent dw ? ;uint_16 ;Rendering intent of a profile
|
||
|
end if
|
||
|
|
||
|
; Flags are always defined to simplify the code.
|
||
|
flags dw ? ;uint_16 ;As defined below
|
||
|
ends
|
||
|
|
||
|
; General flags for the 'flags' field
|
||
|
PNG_COLORSPACE_HAVE_GAMMA equ 0x0001
|
||
|
PNG_COLORSPACE_HAVE_ENDPOINTS equ 0x0002
|
||
|
PNG_COLORSPACE_HAVE_INTENT equ 0x0004
|
||
|
PNG_COLORSPACE_FROM_gAMA equ 0x0008
|
||
|
PNG_COLORSPACE_FROM_cHRM equ 0x0010
|
||
|
PNG_COLORSPACE_FROM_sRGB equ 0x0020
|
||
|
PNG_COLORSPACE_ENDPOINTS_MATCH_sRGB equ 0x0040
|
||
|
PNG_COLORSPACE_MATCHES_sRGB equ 0x0080 ;exact match on profile
|
||
|
PNG_COLORSPACE_INVALID equ 0x8000
|
||
|
macro PNG_COLORSPACE_CANCEL flags {(0xffff xor (flags))}
|
||
|
end if ;COLORSPACE || GAMMA
|
||
|
|
||
|
struct png_struct
|
||
|
if PNG_SETJMP_SUPPORTED eq 1
|
||
|
jmp_buf_local dd ? ;jmp_buf ;New name in 1.6.0 for jmp_buf in png_struct
|
||
|
longjmp_fn dd ? ;png_longjmp_ptr ;setjmp non-local goto function.
|
||
|
jmp_buf_ptr dd ? ;jmp_buf * ;passed to longjmp_fn
|
||
|
jmp_buf_size dd ? ;size_t ;size of the above, if allocated
|
||
|
end if
|
||
|
error_fn dd ? ;png_error_ptr ;function for printing errors and aborting
|
||
|
if PNG_WARNINGS_SUPPORTED eq 1
|
||
|
warning_fn dd ? ;png_error_ptr ;function for printing warnings
|
||
|
end if
|
||
|
error_ptr dd ? ;voidp ;user supplied struct for error functions
|
||
|
write_data_fn dd ? ;png_rw_ptr ;function for writing output data
|
||
|
read_data_fn dd ? ;png_rw_ptr ;function for reading input data
|
||
|
io_ptr dd ? ;voidp ;ptr to application struct for I/O functions
|
||
|
|
||
|
if PNG_READ_USER_TRANSFORM_SUPPORTED eq 1
|
||
|
read_user_transform_fn dd ? ;png_user_transform_ptr ;user read transform
|
||
|
end if
|
||
|
|
||
|
if PNG_WRITE_USER_TRANSFORM_SUPPORTED eq 1
|
||
|
write_user_transform_fn dd ? ;png_user_transform_ptr ; user write transform
|
||
|
end if
|
||
|
|
||
|
; These were added in libpng-1.0.2
|
||
|
if PNG_USER_TRANSFORM_PTR_SUPPORTED eq 1
|
||
|
if (PNG_READ_USER_TRANSFORM_SUPPORTED eq 1) | (PNG_WRITE_USER_TRANSFORM_SUPPORTED eq 1)
|
||
|
user_transform_ptr dd ? ;voidp ;user supplied struct for user transform
|
||
|
user_transform_depth db ? ;byte ;bit depth of user transformed pixels
|
||
|
user_transform_channels db ? ;byte ;channels in user transformed pixels
|
||
|
end if
|
||
|
end if
|
||
|
|
||
|
mode dd ? ;uint_32 ;tells us where we are in the PNG file
|
||
|
flags dd ? ;uint_32 ;flags indicating various things to libpng
|
||
|
transformations dd ? ;uint_32 ;which transformations to perform
|
||
|
|
||
|
zowner dd ? ;uint_32 ;ID (chunk type) of zstream owner, 0 if none
|
||
|
zstream z_stream ;decompression structure
|
||
|
|
||
|
zbuffer_list dd ? ;png_compression_bufferp ;Created on demand during write
|
||
|
zbuffer_size dd ? ;uInt ;size of the actual buffer
|
||
|
|
||
|
zlib_level dd ? ;int ;holds zlib compression level
|
||
|
zlib_method dd ? ;int ;holds zlib compression method
|
||
|
zlib_window_bits dd ? ;int ;holds zlib compression window bits
|
||
|
zlib_mem_level dd ? ;int ;holds zlib compression memory level
|
||
|
zlib_strategy dd ? ;int ;holds zlib compression strategy
|
||
|
; Added at libpng 1.5.4
|
||
|
if PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED eq 1
|
||
|
zlib_text_level dd ? ;int ;holds zlib compression level
|
||
|
zlib_text_method dd ? ;int ;holds zlib compression method
|
||
|
zlib_text_window_bits dd ? ;int ;holds zlib compression window bits
|
||
|
zlib_text_mem_level dd ? ;int ;holds zlib compression memory level
|
||
|
zlib_text_strategy dd ? ;int ;holds zlib compression strategy
|
||
|
end if
|
||
|
;End of material added at libpng 1.5.4
|
||
|
;Added at libpng 1.6.0
|
||
|
zlib_set_level dd ? ;int ;Actual values set into the zstream on write
|
||
|
zlib_set_method dd ? ;int
|
||
|
zlib_set_window_bits dd ? ;int
|
||
|
zlib_set_mem_level dd ? ;int
|
||
|
zlib_set_strategy dd ? ;int
|
||
|
|
||
|
width dd ? ;uint_32 ;width of image in pixels
|
||
|
height dd ? ;uint_32 ;height of image in pixels
|
||
|
num_rows dd ? ;uint_32 ;number of rows in current pass
|
||
|
usr_width dd ? ;uint_32 ;width of row at start of write
|
||
|
rowbytes dd ? ;png_size_t ;size of row in bytes
|
||
|
iwidth dd ? ;uint_32 ;width of current interlaced row in pixels
|
||
|
row_number dd ? ;uint_32 ;current row in interlace pass
|
||
|
chunk_name dd ? ;uint_32 ;PNG_CHUNK() id of current chunk
|
||
|
prev_row dd ? ;bytep ;buffer to save previous (unfiltered) row.
|
||
|
;While reading this is a pointer into
|
||
|
;big_prev_row; while writing it is separately
|
||
|
;allocated if needed.
|
||
|
|
||
|
row_buf dd ? ;bytep ;buffer to save current (unfiltered) row.
|
||
|
;While reading, this is a pointer into
|
||
|
;big_row_buf; while writing it is separately
|
||
|
;allocated.
|
||
|
|
||
|
if PNG_WRITE_FILTER_SUPPORTED eq 1
|
||
|
try_row dd ? ;bytep ;buffer to save trial row when filtering
|
||
|
tst_row dd ? ;bytep ;buffer to save best trial row when filtering
|
||
|
end if
|
||
|
info_rowbytes dd ? ;png_size_t ;Added in 1.5.4: cache of updated row bytes
|
||
|
|
||
|
idat_size dd ? ;uint_32 ;current IDAT size for read
|
||
|
crc dd ? ;uint_32 ;current chunk CRC value
|
||
|
palette dd ? ;png_colorp ;palette from the input file
|
||
|
num_palette dw ? ;uint_16 ;number of color entries in palette
|
||
|
|
||
|
; Added at libpng-1.5.10
|
||
|
if PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED eq 1
|
||
|
num_palette_max dd ? ;int ;maximum palette index found in IDAT
|
||
|
end if
|
||
|
|
||
|
num_trans dw ? ;uint_16 ;number of transparency values
|
||
|
compression db ? ;byte ;file compression type (always 0)
|
||
|
filter db ? ;byte ;file filter type (always 0)
|
||
|
interlaced db ? ;byte ;PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7
|
||
|
pass db ? ;byte ;current interlace pass (0 - 6)
|
||
|
do_filter db ? ;byte ;row filter flags (see PNG_FILTER_ in png.inc)
|
||
|
color_type db ? ;byte ;color type of file
|
||
|
bit_depth db ? ;byte ;bit depth of file
|
||
|
usr_bit_depth db ? ;byte ;bit depth of users row: write only
|
||
|
pixel_depth db ? ;byte ;number of bits per pixel
|
||
|
channels db ? ;byte ;number of channels in file
|
||
|
usr_channels db ? ;byte ;channels at start of write: write only
|
||
|
sig_bytes db ? ;byte ;magic bytes read/written from start of file
|
||
|
maximum_pixel_depth db ? ;byte ;pixel depth used for the row buffers
|
||
|
transformed_pixel_depth db ? ;byte ;pixel depth after read/write transforms
|
||
|
;#if PNG_ZLIB_VERNUM >= 0x1240
|
||
|
zstream_start db ? ;byte ;at start of an input zlib stream
|
||
|
;end if /* Zlib >= 1.2.4 */
|
||
|
if (PNG_READ_FILLER_SUPPORTED eq 1) | (PNG_WRITE_FILLER_SUPPORTED eq 1)
|
||
|
filler dw ? ;uint_16 ; filler bytes for pixel expansion
|
||
|
end if
|
||
|
|
||
|
if (PNG_bKGD_SUPPORTED eq 1) | (PNG_READ_BACKGROUND_SUPPORTED eq 1) | \
|
||
|
(PNG_READ_ALPHA_MODE_SUPPORTED eq 1)
|
||
|
background_gamma_type db ? ;byte
|
||
|
background_gamma dd ? ;png_fixed_point
|
||
|
background png_color_16 ;background color in screen gamma space
|
||
|
if PNG_READ_GAMMA_SUPPORTED eq 1
|
||
|
background_1 png_color_16 ;background normalized to gamma 1.0
|
||
|
end if
|
||
|
end if ;bKGD
|
||
|
|
||
|
if PNG_WRITE_FLUSH_SUPPORTED eq 1
|
||
|
output_flush_fn dd ? ;png_flush_ptr ;Function for flushing output
|
||
|
flush_dist dd ? ;uint_32 ;how many rows apart to flush, 0 - no flush
|
||
|
flush_rows dd ? ;uint_32 ;number of rows written since last flush
|
||
|
end if
|
||
|
|
||
|
if PNG_READ_GAMMA_SUPPORTED eq 1
|
||
|
gamma_shift dd ? ;int ;number of "insignificant" bits in 16-bit gamma
|
||
|
screen_gamma dd ? ;png_fixed_point ;screen gamma value (display_exponent)
|
||
|
|
||
|
gamma_table dd ? ;bytep ;gamma table for 8-bit depth files
|
||
|
gamma_16_table dd ? ;uint_16pp ;gamma table for 16-bit depth files
|
||
|
if (PNG_READ_BACKGROUND_SUPPORTED eq 1) | \
|
||
|
(PNG_READ_ALPHA_MODE_SUPPORTED eq 1) | \
|
||
|
(PNG_READ_RGB_TO_GRAY_SUPPORTED eq 1)
|
||
|
gamma_from_1 dd ? ;bytep ;converts from 1.0 to screen
|
||
|
gamma_to_1 dd ? ;bytep ;converts from file to 1.0
|
||
|
gamma_16_from_1 dd ? ;uint_16pp ;converts from 1.0 to screen
|
||
|
gamma_16_to_1 dd ? ;uint_16pp ;converts from file to 1.0
|
||
|
end if ;READ_BACKGROUND || READ_ALPHA_MODE || RGB_TO_GRAY
|
||
|
end if
|
||
|
|
||
|
if (PNG_READ_GAMMA_SUPPORTED eq 1) | (PNG_sBIT_SUPPORTED eq 1)
|
||
|
sig_bit png_color_8 ;significant bits in each available channel
|
||
|
end if
|
||
|
|
||
|
if (PNG_READ_SHIFT_SUPPORTED eq 1) | (PNG_WRITE_SHIFT_SUPPORTED eq 1)
|
||
|
shift png_color_8 ;shift for significant bit tranformation
|
||
|
end if
|
||
|
|
||
|
if (PNG_tRNS_SUPPORTED eq 1) | (PNG_READ_BACKGROUND_SUPPORTED eq 1) \
|
||
|
| (PNG_READ_EXPAND_SUPPORTED eq 1) | (PNG_READ_BACKGROUND_SUPPORTED eq 1)
|
||
|
trans_alpha dd ? ;bytep ;alpha values for paletted files
|
||
|
trans_color png_color_16 ;transparent color for non-paletted files
|
||
|
end if
|
||
|
|
||
|
read_row_fn dd ? ;png_read_status_ptr ;called after each row is decoded
|
||
|
write_row_fn dd ? ;png_write_status_ptr ;called after each row is encoded
|
||
|
if PNG_PROGRESSIVE_READ_SUPPORTED eq 1
|
||
|
info_fn dd ? ;png_progressive_info_ptr ;called after header data fully read
|
||
|
row_fn dd ? ;png_progressive_row_ptr ;called after a prog. row is decoded
|
||
|
end_fn dd ? ;png_progressive_end_ptr ;called after image is complete
|
||
|
save_buffer_ptr dd ? ;bytep ;current location in save_buffer
|
||
|
save_buffer dd ? ;bytep ;buffer for previously read data
|
||
|
current_buffer_ptr dd ? ;bytep ;current location in current_buffer
|
||
|
current_buffer dd ? ;bytep ;buffer for recently used data
|
||
|
push_length dd ? ;uint_32 ;size of current input chunk
|
||
|
skip_length dd ? ;uint_32 ;bytes to skip in input data
|
||
|
save_buffer_size dd ? ;png_size_t ;amount of data now in save_buffer
|
||
|
save_buffer_max dd ? ;png_size_t ;total size of save_buffer
|
||
|
buffer_size dd ? ;png_size_t ;total amount of available input data
|
||
|
current_buffer_size dd ? ;png_size_t ;amount of data now in current_buffer
|
||
|
process_mode dd ? ;int ;what push library is currently doing
|
||
|
cur_palette dd ? ;int ;current push library palette index
|
||
|
|
||
|
end if ;PROGRESSIVE_READ
|
||
|
|
||
|
if PNG_READ_QUANTIZE_SUPPORTED eq 1
|
||
|
palette_lookup dd ? ;bytep ;lookup table for quantizing
|
||
|
quantize_index dd ? ;bytep ;index translation for palette files
|
||
|
end if
|
||
|
|
||
|
; Options
|
||
|
if PNG_SET_OPTION_SUPPORTED eq 1
|
||
|
options db ? ;byte ;On/off state (up to 4 options)
|
||
|
end if
|
||
|
|
||
|
;#if PNG_LIBPNG_VER < 10700
|
||
|
; To do: remove this from libpng-1.7
|
||
|
if PNG_TIME_RFC1123_SUPPORTED eq 1
|
||
|
time_buffer rb 29 ;char[29] ;String to hold RFC 1123 time text
|
||
|
end if
|
||
|
;end if
|
||
|
|
||
|
; New members added in libpng-1.0.6
|
||
|
|
||
|
free_me dd ? ;uint_32 ;flags items libpng is responsible for freeing
|
||
|
|
||
|
if PNG_USER_CHUNKS_SUPPORTED eq 1
|
||
|
user_chunk_ptr dd ? ;voidp
|
||
|
if PNG_READ_USER_CHUNKS_SUPPORTED eq 1
|
||
|
read_user_chunk_fn dd ? ;png_user_chunk_ptr ;user read chunk handler
|
||
|
end if
|
||
|
end if
|
||
|
|
||
|
if PNG_SET_UNKNOWN_CHUNKS_SUPPORTED eq 1
|
||
|
unknown_default dd ? ;int ; As PNG_HANDLE_*
|
||
|
num_chunk_list dd ? ;unsigned int ; Number of entries in the list
|
||
|
chunk_list dd ? ;bytep ; List of byte[5]; the textual chunk name
|
||
|
; followed by a PNG_HANDLE_* byte
|
||
|
end if
|
||
|
|
||
|
; New members added in libpng-1.0.3
|
||
|
if PNG_READ_RGB_TO_GRAY_SUPPORTED eq 1
|
||
|
rgb_to_gray_status db ? ;byte
|
||
|
; Added in libpng 1.5.5 to record setting of coefficients:
|
||
|
rgb_to_gray_coefficients_set db ? ;byte
|
||
|
; These were changed from byte in libpng-1.0.6
|
||
|
rgb_to_gray_red_coeff dw ? ;uint_16
|
||
|
rgb_to_gray_green_coeff dw ? ;uint_16
|
||
|
; deleted in 1.5.5: rgb_to_gray_blue_coeff;
|
||
|
end if
|
||
|
|
||
|
if PNG_MNG_FEATURES_SUPPORTED eq 1
|
||
|
; New member added in libpng-1.0.4 (renamed in 1.0.9)
|
||
|
; Changed from byte to uint_32 at version 1.2.0
|
||
|
mng_features_permitted dd ? ;uint_32
|
||
|
|
||
|
; New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0
|
||
|
filter_type db ? ;byte
|
||
|
end if
|
||
|
|
||
|
; New members added in libpng-1.2.0
|
||
|
|
||
|
; New members added in libpng-1.0.2 but first enabled by default in 1.2.0
|
||
|
if PNG_USER_MEM_SUPPORTED eq 1
|
||
|
mem_ptr dd ? ;voidp ;user supplied struct for mem functions
|
||
|
malloc_fn dd ? ;malloc_ptr ;function for allocating memory
|
||
|
free_fn dd ? ;free_ptr ;function for freeing memory
|
||
|
end if
|
||
|
|
||
|
; New member added in libpng-1.0.13 and 1.2.0
|
||
|
big_row_buf dd ? ;bytep ;buffer to save current (unfiltered) row
|
||
|
|
||
|
if PNG_READ_QUANTIZE_SUPPORTED eq 1
|
||
|
; The following three members were added at version 1.0.14 and 1.2.4
|
||
|
quantize_sort dd ? ;bytep ;working sort array
|
||
|
index_to_palette dd ? ;bytep ;where the original index currently is in the palette
|
||
|
palette_to_index dd ? ;bytep ;which original index points to this palette color
|
||
|
end if
|
||
|
|
||
|
; New members added in libpng-1.0.16 and 1.2.6
|
||
|
compression_type db ? ;byte
|
||
|
|
||
|
if PNG_USER_LIMITS_SUPPORTED eq 1
|
||
|
user_width_max dd ? ;uint_32
|
||
|
user_height_max dd ? ;uint_32
|
||
|
|
||
|
; Added in libpng-1.4.0: Total number of sPLT, text, and unknown
|
||
|
; chunks that can be stored (0 means unlimited).
|
||
|
|
||
|
user_chunk_cache_max dd ? ;uint_32
|
||
|
|
||
|
; Total memory that a zTXt, sPLT, iTXt, iCCP, or unknown chunk
|
||
|
; can occupy when decompressed. 0 means unlimited.
|
||
|
|
||
|
user_chunk_malloc_max dd ? ;png_alloc_size_t
|
||
|
end if
|
||
|
|
||
|
; New member added in libpng-1.0.25 and 1.2.17
|
||
|
if PNG_READ_UNKNOWN_CHUNKS_SUPPORTED eq 1
|
||
|
; Temporary storage for unknown chunk that the library doesn't recognize,
|
||
|
; used while reading the chunk.
|
||
|
|
||
|
; png_unknown_chunk unknown_chunk;
|
||
|
end if
|
||
|
|
||
|
; New member added in libpng-1.2.26
|
||
|
old_big_row_buf_size dd ? ;png_size_t
|
||
|
|
||
|
if PNG_READ_SUPPORTED eq 1
|
||
|
; New member added in libpng-1.2.30
|
||
|
read_buffer dd ? ;bytep ;buffer for reading chunk data
|
||
|
read_buffer_size dd ? ;png_alloc_size_t ;current size of the buffer
|
||
|
end if
|
||
|
if PNG_SEQUENTIAL_READ_SUPPORTED eq 1
|
||
|
IDAT_read_size dd ? ;uInt ;limit on read buffer size for IDAT
|
||
|
end if
|
||
|
|
||
|
if PNG_IO_STATE_SUPPORTED eq 1
|
||
|
; New member added in libpng-1.4.0
|
||
|
io_state dd ? ;uint_32
|
||
|
end if
|
||
|
|
||
|
; New member added in libpng-1.5.6
|
||
|
big_prev_row dd ? ;bytep
|
||
|
|
||
|
; New member added in libpng-1.5.7
|
||
|
; void (*read_filter[PNG_FILTER_VALUE_LAST-1])(png_row_infop row_info,
|
||
|
; bytep row, bytep prev_row);
|
||
|
|
||
|
if PNG_READ_SUPPORTED eq 1
|
||
|
if (PNG_COLORSPACE_SUPPORTED eq 1) | (PNG_GAMMA_SUPPORTED eq 1)
|
||
|
colorspace png_colorspace
|
||
|
end if
|
||
|
end if
|
||
|
ends
|