23 #ifdef PNG_WRITE_SUPPORTED
36 if (png_ptr->write_data_fn !=
NULL )
37 (*(png_ptr->write_data_fn))(png_ptr, (
png_bytep)data, length);
40 png_error(png_ptr,
"Call to NULL write function");
43 #ifdef PNG_STDIO_SUPPORTED
49 #ifndef USE_FAR_KEYWORD
58 check = fwrite(data, 1, length, (png_FILE_p)(png_ptr->io_ptr));
69 #define NEAR_BUF_SIZE 1024
70 #define MIN(a,b) (a <= b ? a : b)
84 io_ptr = (png_FILE_p)
CVT_PTR(png_ptr->io_ptr);
88 check = fwrite(near_data, 1, length, io_ptr);
100 written =
MIN(NEAR_BUF_SIZE, remaining);
102 err = fwrite(buf, 1, written, io_ptr);
111 remaining -= written;
113 while (remaining != 0);
127 #ifdef PNG_WRITE_FLUSH_SUPPORTED
131 if (png_ptr->output_flush_fn !=
NULL)
132 (*(png_ptr->output_flush_fn))(png_ptr);
135 # ifdef PNG_STDIO_SUPPORTED
144 io_ptr = (png_FILE_p)
CVT_PTR((png_ptr->io_ptr));
181 png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)
186 png_ptr->io_ptr = io_ptr;
188 #ifdef PNG_STDIO_SUPPORTED
189 if (write_data_fn !=
NULL)
190 png_ptr->write_data_fn = write_data_fn;
195 png_ptr->write_data_fn = write_data_fn;
198 #ifdef PNG_WRITE_FLUSH_SUPPORTED
199 # ifdef PNG_STDIO_SUPPORTED
201 if (output_flush_fn !=
NULL)
202 png_ptr->output_flush_fn = output_flush_fn;
208 png_ptr->output_flush_fn = output_flush_fn;
213 if (png_ptr->read_data_fn !=
NULL)
215 png_ptr->read_data_fn =
NULL;
218 "Can't set both read_data_fn and write_data_fn in the"
223 #ifdef USE_FAR_KEYWORD
229 FP_OFF(near_ptr) = FP_OFF(ptr);
230 far_ptr = (
void FAR *)near_ptr;
233 if (FP_SEG(ptr) != FP_SEG(far_ptr))
234 png_error(png_ptr,
"segment lost in conversion");
243 near_ptr = (
void FAR *)ptr;
244 far_ptr = (
void FAR *)near_ptr;
248 png_error(png_ptr,
"segment lost in conversion");
#define CVT_PTR_NOCHECK(ptr)
png_error(png_ptr,"Missing IHDR before iCCP")
void PNGCBAPI png_default_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
void PNGAPI png_set_write_fn(png_structp png_ptr, png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)
void png_flush(png_structp png_ptr)
void png_write_data(png_structp png_ptr, png_const_bytep data, png_size_t length)
png_struct FAR * png_structp
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
void PNGAPI png_warning(png_structp png_ptr, png_const_charp warning_message)
void PNGCBAPI png_default_flush(png_structp png_ptr)
PNG_CONST png_byte FAR * png_const_bytep
GLenum GLuint GLsizei const GLchar * buf