20#include "output2dpngpriv.h"
30static int modversion[] =
31 {STICK2XYZ_VER_MAJOR, STICK2XYZ_VER_MINOR, STICK2XYZ_VER_REVISION};
33static FILE * modttyout = NULL;
34static FILE * modttyerr = NULL;
35#if defined(HAVE_THREADS_H) | defined(__WINDOWS__)
36static int canmultithread = 0;
38static const int canmultithread = 0;
40static volatile int modreferences = 0;
42#ifndef STICK2XYZ_NO_MODLANGPACKS
44stick2xyz_print_ptr stick2xyz_lang_lib_output2dpng = NULL;
48 stick2xyz_lang_lib_output2dpng = newval;
56 return stick2xyz_output2dpng_modname();
61 return stick2xyz_output2dpng_moddesc();
66 dest[0] = modversion[0];
67 dest[1] = modversion[1];
68 dest[2] = modversion[2];
91#if defined(HAVE_THREADS_H) | defined(__WINDOWS__)
93 if ( ( multithread ) && ( modreferences == 0 ) )
96 if ( output2dpng_enablemultithread() )
110 return modreferences;
115#if defined(HAVE_THREADS_H) | defined(__WINDOWS__)
117 if ( modreferences == 1 )
120 if ( output2dpng_disablemultithread() )
132 if ( modreferences == 0 )
135 stick2xyz_set_errno(EAGAIN);
144 return modreferences;
150 modttyout = (FILE *)fildescout;
151 modttyerr = (FILE *)fildescerr;
154FILE * output2dpng_get_ttyout (
void )
156 if ( modttyout == NULL )
162FILE * output2dpng_get_ttyerr (
void )
164 if ( modttyerr == NULL )
179 stick2xyz_image_data image;
190 image = dupdata(pane, use_rgb);
198 return output2dpng_to_png_internal(image, use_rgb, x, y);
209 stick2xyz_image_data image;
220 image = dupimage(pane, use_rgb);
228 return output2dpng_image_to_png_internal(
229 image, use_rgb, x, y, pane,
246 stick2xyz_image16_data image;
287#if defined(HAVE_EVENTFD) | defined(__WINDOWS__)
296 image = funclist.dupimage(pane, use_rgb);
301 funclist.dupxy(pane, &x, &y);
303 return output2dpng_image16_to_png_internal(
304 image, use_rgb, x, y, pane,
307 funclist.colorinfo(),
335 stick2xyz_image_data image;
370#if defined(HAVE_EVENTFD) | defined(__WINDOWS__)
379 image = funclist.dupimage(pane, use_rgb);
384 funclist.dupxy(pane, &x, &y);
386 return output2dpng_image_to_png_internal(
387 image, use_rgb, x, y, pane,
390 funclist.colorinfo(),
407 return canmultithread;
415#if defined(HAVE_THREADS_H) | defined(__WINDOWS__)
417 if ( !canmultithread )
419 stick2xyz_set_errno(ENOSYS);
424 return output2dpng_getnewdata_internal(handle, filnum);
426 stick2xyz_set_errno(ENOSYS);
489 if ( ( value == 8 ) | ( value == 16 ) )
491 if ( ( value == 24 ) | ( value == 48 ) )
504#ifndef STICK2XYZ_STATIC
924 const wchar_t * filnam,
938#ifndef STICK2XYZ_NO_MODLANGPACKS
1002#if defined(HAVE_THREADS_H) | defined(DOXYGEN_BUILD)
1052#ifdef HAVE_THREADS_H
void output2dbmp_lang(stick2xyz_print_ptr newval)
stick2xyz_pctchar output2dbmp_desc(void)
int output2dbmp_bpp_supported(const int value)
int output2dbmp_sigterm(output2d_sigterm_ready func, int modnumber)
output2d_handle output2dbmp_bybmptype(pane2d_handle pane, pane2d_dupfunc_getlist duplist, int use_rgb, unsigned int filnum)
size_t output2dbmp_bpp_list(int *array)
int output2dbmp_getnewdata(output2d_handle handle, unsigned int filnum)
int output2dbmp_bpp_default(void)
void output2dbmp_set_tty(void *fildescout, void *fildescerr)
int output2dbmp_type(void)
int output2dbmp_multithread_safe(void)
stick2xyz_pctchar output2dbmp_name(void)
int output2dbmp_write(output2d_handle handle, const char *filnam, unsigned int filnum, int compression)
void output2dbmp_free(output2d_handle handle)
int output2dbmp_write_w(output2d_handle handle, stick2xyz_pctchar filnam, unsigned int filnum, int compression)
void output2dbmp_version(int *dest)
uint32_t output2dbmp_qualityvalid(const int value)
int output2dbmp_qualityrange(struct output2d_qualityinfo *dest)
void output2djpeg_version(int *dest)
int output2djpeg_getnewdata(output2d_handle handle, unsigned int filnum)
int output2djpeg_bpp_supported(const int value)
int output2djpeg_write(output2d_handle handle, const char *filnam, unsigned int filnum, int compression)
int output2djpeg_sigterm(output2d_sigterm_ready func, int modnumber)
int output2djpeg_qualityrange(struct output2d_qualityinfo *dest)
int output2djpeg_type(void)
int output2djpeg_multithread_safe(void)
uint32_t output2djpeg_qualityvalid(const int value)
size_t output2djpeg_bpp_list(int *array)
void output2djpeg_lang(stick2xyz_print_ptr newval)
stick2xyz_pctchar output2djpeg_name(void)
int output2djpeg_write_w(output2d_handle handle, stick2xyz_pctchar filnam, unsigned int filnum, int compression)
void output2djpeg_set_tty(void *fildescout, void *fildescerr)
stick2xyz_pctchar output2djpeg_desc(void)
void output2djpeg_free(output2d_handle handle)
output2d_handle output2djpeg_byjpegtype(pane2d_handle pane, pane2d_dupfunc_getlist duplist, int use_rgb, unsigned int filnum)
int output2djpeg_bpp_default(void)
int mod_output2d_write_w(output2d_handle handle, const wchar_t *filnam, unsigned int filnum, int compression)
void mod_output2d_free_handle(output2d_handle handle)
void mod_output2d_read(const char *filetoread)
int mod_output2d_sigterm(output2d_sigterm_ready func, int modnumber)
size_t mod_output2d_bpp_list(int *array)
uint32_t mod_output2d_quality_valid(const int value)
int mod_output2d_init(int multithread)
stick2xyz_pctchar mod_output2d_name(void)
output2d_handle mod_panebytype_to_output2d(pane2d_handle pane, pane2d_dupfunc_getlist duplist, int use_rgb, unsigned int filnum)
int mod_output2d_release(void)
int mod_output2d_type(void)
int mod_output2d_bpp_default(void)
int mod_output2d_quality_range(struct output2d_qualityinfo *dest)
int mod_output2d_multithread_safe(void)
output2d_handle mod_paneimage_to_output2d(pane2d_handle pane, pane2d_dupimage dupimage, pane2d_freeimage freedata, pane2d_dupxy dupxy, int use_rgb)
void mod_output2d_version(int *dest)
output2d_handle mod_pane16bytype_to_output2d(pane2d_handle pane, pane2d_dupfunc_getlist duplist, int use_rgb, unsigned int filnum)
int mod_output2d_bpp_supported(const int value)
int mod_output2d_getnewdata(output2d_handle handle, unsigned int filnum)
void mod_output2d_set_tty(void *fildescout, void *fildescerr)
stick2xyz_pctchar mod_output2d_desc(void)
output2d_handle mod_pane_to_output2d(pane2d_handle pane, pane2d_dupdata dupdata, pane2d_dupxy dupxy, int use_rgb)
int mod_output2d_write(output2d_handle handle, const char *filnam, unsigned int filnum, int compression)
void mod_output2d_lang(stick2xyz_print_ptr newval)
void output2dpng_lang(stick2xyz_print_ptr newval)
void output2dpng_set_tty(void *fildescout, void *fildescerr)
int output2dpng_bpp_default(void)
int output2dpng_write(output2d_handle handle, const char *filnam, unsigned int filnum, int compression)
void output2dpng_free(output2d_handle handle)
uint32_t output2dpng_quality_valid(const int value)
int output2dpng_bpp_supported(const int value)
int output2dpng_sigterm(output2d_sigterm_ready func, int modnumber)
int output2dpng_init(int multithread)
int output2dpng_write_w(output2d_handle handle, const wchar_t *filnam, unsigned int filnum, int compression)
output2d_handle output2dpng_bypng16type(pane2d_handle pane, pane2d_dupfunc_getlist duplist, int use_rgb, unsigned int filnum)
void output2dpng_read(const char *filetoread)
stick2xyz_pctchar output2dpng_desc(void)
void output2dpng_version(int *dest)
size_t output2dpng_bpp_list(int *array)
output2d_handle output2dpng_bypngtype(pane2d_handle pane, pane2d_dupfunc_getlist duplist, int use_rgb, unsigned int filnum)
int output2dpng_type(void)
output2d_handle output2dpng_image_to_png(pane2d_handle pane, pane2d_dupimage dupimage, pane2d_freeimage freedata, pane2d_dupxy dupxy, int use_rgb)
output2d_handle output2dpng_to_png(pane2d_handle pane, pane2d_dupdata dupdata, pane2d_dupxy dupxy, int use_rgb)
int output2dpng_multithread_safe(void)
stick2xyz_pctchar output2dpng_name(void)
int output2dpng_release(void)
int output2dpng_quality_range(struct output2d_qualityinfo *dest)
int output2dpng_getnewdata(output2d_handle handle, unsigned int filnum)
void(* pane2d_freeimage)(pane2d_handle, uint8_t **)
#define STICK2XYZ_MODTYPE_OUTPUT2D
#define STICK2XYZ_OUTPUT2D_QUALITY_TOOLOW
void(* output2d_sigterm_ready)(int)
#define STICK2XYZ_PANE2D_REQUEST_UINT16PP
#define STICK2XYZ_MODTYPE_OUTPUT2D_UNICODE_DEBUG
int(* pane2d_dupfunc_getlist)(uint32_t, struct pane2d_dupgen_funcs *)
uint8_t **(* pane2d_dupimage)(pane2d_handle, int)
#define STICK2XYZ_MODTYPE_OUTPUT2D_UNICODE
#define STICK2XYZ_OUTPUT2D_QUALITY_VALID
#define STICK2XYZ_MODTYPE_OUTPUT2D_DEBUG
const wchar_t * stick2xyz_pctchar
#define STICK2XYZ_PANE2D_REQUEST_UINT8PP
uint8_t **(* pane2d_dupdata)(pane2d_handle, int)
#define STICK2XYZ_PANE2D_COLORTYPE_GRAY
#define STICK2XYZ_OUTPUT2D_QUALITY_TOOHIGH
void(* pane2d_dupxy)(pane2d_handle, int *, int *)
output2d_modid_name output2d_funcptrs_name
output2d_bpp_supported output2d_funcptrs_bpp_supported
paneimage_to_output2d output2d_funcptrs_paneimage_to_output2d
output2d_modid_desc output2d_funcptrs_desc
output2d_release output2d_funcptrs_release
output2d_init output2d_funcptrs_init
output2d_free_handle output2d_funcptrs_free_handle
output2d_sigterm output2d_funcptrs_sigterm
output2d_write_w output2d_funcptrs_write_w
output2d_bpp_list output2d_funcptrs_bpp_list
output2d_modid_version output2d_funcptrs_version
output2d_quality_valid output2d_funcptrs_quality_valid
output2d_read output2d_funcptrs_read
output2d_bpp_default output2d_funcptrs_bpp_default
output2d_modid_type output2d_funcptrs_type
output2d_quality_range output2d_funcptrs_quality_range
output2d_set_tty output2d_funcptrs_set_tty
output2d_getnewdata output2d_funcptrs_getnewdata
pane16_to_output2d_bytype output2d_funcptrs_pane16_to_output2d_bytype
pane_to_output2d output2d_funcptrs_pane_to_output2d
pane_to_output2d_bytype output2d_funcptrs_pane_to_output2d_bytype
output2d_multithread_safe output2d_funcptrs_multithread_safe
output2d_write output2d_funcptrs_write
pane2d_is_multithreaded multithreading
pane2d_eventreleased eventreleased
pane2d_is_multithreaded multithreading
pane2d_eventreleased eventreleased