The stick2xyz Documentation 1.14.1
stick2xyz.h
Go to the documentation of this file.
1/***************************************************************************
2 * stick2xyz - Can create and convert stick figure animations for CG. *
3 * Copyright (C) 2021 by Kevin McBride <dolphindddd@aol.com> *
4 * *
5 * This program is free software: you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation, either version 3 of the License, or *
8 * (at your option) any later version. *
9 * *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
14 * *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
17 ***************************************************************************/
18
19
20#ifndef STICK2XYZ_H
21#define STICK2XYZ_H
22
23#if defined(WIN32) | defined(WIN64) | defined(_WIN32) | defined(_WIN64)
24#ifndef __WINDOWS__
25#define __WINDOWS__ (1)
26#endif /* not __WINDOWS__ */
27#endif /* defined(WIN32) | defined(WIN64) | defined(_WIN32) | defined(_WIN64) */
28
29#ifdef UNICODE
30#ifdef T
31#undef T
32#endif /* T */
33#define T(s) L"s"
34#define STICK2XYZ_LANGPACK_UTF8_16(d, v) \
35wchar_t * d; \
36if ( v != NULL ) { \
37d = (wchar_t *)alloca((strlen(v) + 1) * sizeof(wchar_t)); \
38mbstowcs(d, v, strlen(v) + 1); \
39} else { d = NULL; }
40#else /* not UNICODE */
41#ifdef T
42#undef T
43#endif /* T */
44#define T(s) "s"
45#define STICK2XYZ_LANGPACK_UTF8_16(d, v) \
46const char * d; d = v;
47#endif /* not UNICODE */
48
49#ifdef __cplusplus
50#ifndef _cplusplus
51#define _cplusplus (1)
52#endif /* not _cplusplus */
53#endif /* __cplusplus */
54
55/* Make sure we're definitely in ordinary "C" mode. */
56#ifdef _cplusplus
57extern "C"
58{
59#endif /* _cplusplus */
60
61/* Perform the #define sanity checks. */
62#ifdef STICK2XYZ_NO_MODULARIZATION
63#ifndef STICK2XYZ_NO_MODLANGPACKS
64#error You can not modularize language packs on static builds.
65#endif /* not STICK2XYZ_NO_MODLANGPACKS */
66#endif /* STICK2XYZ_NO_MODULARIZATION */
67
68#ifdef __WINDOWS__
69#ifndef UNICODE
70#error Windows builds of stick2xyz program and modules must be compiled in Unicode.
71#endif /* not UNICODE */
72
73#ifdef HAVE_EVENTFD
74#error __WINDOWS__ and HAVE_EVENTFD are not compatible with each other.
75#endif /* HAVE_EVENTFD */
76#endif /* __WINDOWS__ */
77
78/* First, include the inttypes; this file depends heavily on those. */
79#ifdef HAVE_STDLIB_H
80#include <stdlib.h>
81#endif /* HAVE_STDLIB_H */
82#ifdef HAVE_STRING_H
83#include <string.h>
84#endif /* HAVE_STRING_H */
85#ifdef HAVE_STDINT_H
86#include <stdint.h>
87#endif /* HAVE_STDINT_H */
88#ifdef HAVE_INTTYPES_H
89#include <inttypes.h>
90#endif /* HAVE_INTTYPES_H */
91
92/* This code is necessary for making sure we can use alloca(). */
93#if HAVE_ALLOCA_H
94#include <alloca.h>
95#elif defined __GNUC__
96#ifndef alloca
97#define alloca __builtin_alloca
98#endif /* not alloca */
99#elif defined _AIX
100#define alloca __alloca
101#elif defined _MSC_VER
102#include <malloc.h>
103#define alloca _alloca
104#else
105#include <stddef.h>
106void *alloca (size_t);
107#endif
108
109/* Second, include some other system headers that are necessary
110 for stick2xyz to compile.
111 Include the dlsym linker if the modules will be compiled
112 as shared libraries. Otherwise, define STICK2XYZ_STATIC. */
113#ifdef STICK2XYZ_NO_MODULARIZATION
114#define STICK2XYZ_STATIC (1)
115#ifdef HAVE_STDLIB_H
116#include <stdlib.h>
117#endif /* HAVE_STDLIB_H */
118#else /* not STICK2XYZ_NO_MODULARIZATION */
119#ifndef __WINDOWS__
120#include <ltdl.h>
121#endif /* not __WINDOWS__ */
122#endif /* not STICK2XYZ_NO_MODULARIZATION */
123
124#ifdef HAVE_ERRNO_H
125#include <errno.h>
126#endif /* HAVE_ERRNO_H */
127#ifdef HAVE_THREADS_H
128#include <threads.h>
129#endif /* HAVE_THREADS_H */
130#ifdef HAVE_EVENTFD
131#include <sys/eventfd.h>
132#endif /* HAVE_EVENTFD */
133#ifdef HAVE_POLL_H
134#include <poll.h>
135#endif /* HAVE_POLL_H */
136
137#if !defined(Z_NO_COMPRESSION) & defined(HAVE_ZLIB_H)
138#include <zlib.h>
139#endif /* !defined(Z_NO_COMPRESSION) & defined(HAVE_ZLIB_H) */
140
141/* Third, include wchar.t and define 'tchar' character as ASCII or UNICODE. */
142#ifdef UNICODE
143#include <wchar.h>
144
145typedef const wchar_t * stick2xyz_pctchar;
146typedef const wchar_t stick2xyz_ctchar;
147typedef wchar_t * stick2xyz_ptchar;
148typedef wchar_t stick2xyz_tchar;
149
150#define stick2xyz_strlen wcslen
151#define stick2xyz_strcat wcscat
152#define stick2xyz_strcpy wcscpy
153#define stick2xyz_strncpy wcsncpy
154#define stick2xyz_strcmp wcscmp
155#define stick2xyz_strncmp wcsncmp
156#define stick2xyz_strcasecmp wcscasecmp
157
158#define stick2xyz_fprintf fwprintf
159#define stick2xyz_fputs fputws
160#define stick2xyz_fputc fputwc
161
162#define stick2xyz_snprintf swprintf
163#else /* not UNICODE */
164
165typedef const char * stick2xyz_pctchar;
166typedef const char stick2xyz_ctchar;
167typedef char * stick2xyz_ptchar;
168typedef char stick2xyz_tchar;
169
170#define stick2xyz_strlen strlen
171#define stick2xyz_strcat strcat
172#define stick2xyz_strcpy strcpy
173#define stick2xyz_strncpy strncpy
174#define stick2xyz_strcmp strcmp
175#define stick2xyz_strncmp strncmp
176#define stick2xyz_strcasecmp strcasecmp
177
178#define stick2xyz_fprintf fprintf
179#define stick2xyz_fputs fputs
180#define stick2xyz_fputc fputc
181
182#ifdef HAVE_SNPRINTF
183#define stick2xyz_snprintf snprintf
184#else /* not HAVE_SNPRINTF */
185#define stick2xyz_snprintf(s,l,f,d) snprintf(s,f,d)
186#endif /* not HAVE_SNPRINTF */
187#endif /* not UNICODE */
188
189/* Fourth, define our custom errno macros and functions. */
190#ifdef __WINDOWS__
191#define stick2xyz_set_errno(err) _set_errno(err)
192#define stick2xyz_get_errno(retval) _get_errno(retval)
193#else /* not __WINDOWS__ */
194#ifndef HAVE_ERRNO_T
195typedef int errno_t;
196#endif /* not HAVE_ERRNO_T */
197
198static inline errno_t stick2xyz_set_errno ( int errcode )
199{
200 /* Set errno to errcode. */
201 errno = errcode;
202 /* Return success to caller. */
203 return 0;
204}
205
206static inline errno_t stick2xyz_get_errno ( int * errcode )
207{
208 /* If errcode address is NULL, we can't do anything. */
209 if ( errcode == NULL )
210 return EINVAL;
211
212 /* Set the variable errcode to errno. */
213 *errcode = errno;
214 /* Return success to caller. */
215 return 0;
216}
217#endif /* not __WINDOWS__ */
218
219#ifndef STICK2XYZ_HUMAN_LANGUAGE
220/* Fifth, create the library type enum. */
221
222#define STICK2XYZ_MODTYPE_NONE 0x00000000
223#define STICK2XYZ_MODTYPE_PANE2D 0x00000001
224#define STICK2XYZ_MODTYPE_PANE2D_DEBUG 0x00000002
225#define STICK2XYZ_MODTYPE_PANE2D_UNICODE 0x00000004
226#define STICK2XYZ_MODTYPE_PANE2D_UNICODE_DEBUG 0x00000008
227#define STICK2XYZ_MODTYPE_OUTPUT2D 0x00000010
228#define STICK2XYZ_MODTYPE_OUTPUT2D_DEBUG 0x00000020
229#define STICK2XYZ_MODTYPE_OUTPUT2D_UNICODE 0x00000040
230#define STICK2XYZ_MODTYPE_OUTPUT2D_UNICODE_DEBUG 0x00000080
231#define STICK2XYZ_MODTYPE_INPUT 0x00000100
232#define STICK2XYZ_MODTYPE_INPUT_DEBUG 0x00000200
233#define STICK2XYZ_MODTYPE_INPUT_UNICODE 0x00000400
234#define STICK2XYZ_MODTYPE_INPUT_UNICODE_DEBUG 0x00000800
235
236/* This is also a good time to set the '0' compression default. */
237#ifndef DOXYGEN_BUILD
238#ifndef STICK2XYZ_COMPRESSION
239#define STICK2XYZ_COMPRESSION Z_NO_COMPRESSION
240#endif /* not STICK2XYZ_COMPRESSION */
241#endif /* not DOXYGEN_BUILD */
242
243/* Sixth, we need to define the input type defines. */
244#define STICK2XYZ_MAXBUFLEN 64
245#define STICK2XYZ_MAXBUFPARAMS 16
246
247#define STICK2XYZ_INPUTTYPE_UNKNOWN 0x00000000
248#define STICK2XYZ_INPUTTYPE_IS_PANE2D 0x00000001
249#define STICK2XYZ_INPUTTYPE_IS_PANE3D 0x00000002
250
251#define STICK2XYZ_INPUTTYPE_OUTPUTPANE 0x00000004
252#define STICK2XYZ_INPUTTYPE_CLEARPANE 0x00000008
253
254#define STICK2XYZ_INPUTTYPE_DRAWPIXEL 0x00000010
255#define STICK2XYZ_INPUTTYPE_DRAWLINE 0x00000020
256
257#define STICK2XYZ_INPUTTYPE_DRAWCIRCLE 0x00000100
258#define STICK2XYZ_INPUTTYPE_FILLCIRCLE 0x00000200
259#define STICK2XYZ_INPUTTYPE_DRAWELLIPSE 0x00000400
260#define STICK2XYZ_INPUTTYPE_FILLELLIPSE 0x00000800
261
262#define STICK2XYZ_INPUTTYPE_DRAWRECT 0x00001000
263#define STICK2XYZ_INPUTTYPE_DRAWRECTANGLE 0x00001000
264#define STICK2XYZ_INPUTTYPE_FILLRECT 0x00002000
265#define STICK2XYZ_INPUTTYPE_FILLRECTANGLE 0x00002000
266#define STICK2XYZ_INPUTTYPE_DRAWSQUARE 0x00004000
267#define STICK2XYZ_INPUTTYPE_FILLSQUARE 0x00008000
268
269#define STICK2XYZ_INPUTTYPE_DRAWTRIANGLE 0x00010000
270#define STICK2XYZ_INPUTTYPE_FILLTRIANGLE 0x00020000
271#define STICK2XYZ_INPUTTYPE_DRAW90TRIANGLE 0x00040000
272#define STICK2XYZ_INPUTTYPE_FILL90TRIANGLE 0x00080000
273
274#define STICK2XYZ_INPUTTYPE_TEXTUREGRAY 0x00100000
275#define STICK2XYZ_INPUTTYPE_TEXTUREGRAY16 0x02100000
276#define STICK2XYZ_INPUTTYPE_TEXTUREGRAYIMAGE 0x00200000
277#define STICK2XYZ_INPUTTYPE_TEXTUREGRAYIMAGE16 0x02200000
278#define STICK2XYZ_INPUTTYPE_TEXTURERGB 0x00400000
279#define STICK2XYZ_INPUTTYPE_TEXTURERGB16 0x02400000
280#define STICK2XYZ_INPUTTYPE_TEXTURERGBIMAGE 0x00800000
281#define STICK2XYZ_INPUTTYPE_TEXTURERGBIMAGE16 0x02800000
282
283#define STICK2XYZ_INPUTTYPE_CLEARTEXTURES 0x01000000
284#define STICK2XYZ_INPUTTYPE_TEXTURE16BIT 0x02000000
285
286/* Seventh, we need to define the pane2d vertex options. */
287#define STICK2XYZ_PANE2D_VERTEX_DRAW 0x00000001
288#define STICK2XYZ_PANE2D_VERTEX_STRUCT 0x00000002
289#define STICK2XYZ_PANE2D_VERTEX_NODRAW 0x00000004
290#define STICK2XYZ_PANE2D_VERTEX_DRAWSTRUCT \
291 ( STICK2XYZ_PANE2D_VERTEX_DRAW | STICK2XYZ_PANE2D_VERTEX_STRUCT )
292
293#define STICK2XYZ_PANE2D_PIXEL STICK2XYZ_INPUTTYPE_DRAWPIXEL
294#define STICK2XYZ_PANE2D_LINE STICK2XYZ_INPUTTYPE_DRAWLINE
295#define STICK2XYZ_PANE2D_CIRCLE STICK2XYZ_INPUTTYPE_DRAWCIRCLE
296#define STICK2XYZ_PANE2D_CIRCLE_WT STICK2XYZ_INPUTTYPE_FILLCIRCLE
297#define STICK2XYZ_PANE2D_ELLIPSE STICK2XYZ_INPUTTYPE_DRAWELLIPSE
298#define STICK2XYZ_PANE2D_ELLIPSE_WT STICK2XYZ_INPUTTYPE_FILLELLIPSE
299#define STICK2XYZ_PANE2D_RECTANGLE STICK2XYZ_INPUTTYPE_DRAWRECTANGLE
300#define STICK2XYZ_PANE2D_RECTANGLE_WT STICK2XYZ_INPUTTYPE_FILLRECTANGLE
301#define STICK2XYZ_PANE2D_SQUARE STICK2XYZ_INPUTTYPE_DRAWSQUARE
302#define STICK2XYZ_PANE2D_SQUARE_WT STICK2XYZ_INPUTTYPE_FILLSQUARE
303#define STICK2XYZ_PANE2D_TRIANGLE STICK2XYZ_INPUTTYPE_DRAWTRIANGLE
304#define STICK2XYZ_PANE2D_TRIANGLE_WT STICK2XYZ_INPUTTYPE_FILLTRIANGLE
305#define STICK2XYZ_PANE2D_90TRIANGLE STICK2XYZ_INPUTTYPE_DRAW90TRIANGLE
306#define STICK2XYZ_PANE2D_90TRIANGLE_WT STICK2XYZ_INPUTTYPE_FILL90TRIANGLE
307
308
309/* Eighth, create the definitions for event handling. */
310
311#ifdef __WINDOWS__
312typedef HANDLE stick2xyz_eventhandle;
313
314static inline int stick2xyz_event_occured ( HANDLE src )
315{
316 /* Check if HANDLE is valid, then if valid, check to see
317 if the event is signaled. */
318 if ( ( src != NULL ) && ( src != INVALID_HANDLE_VALUE ) )
319 if ( WaitForSingleObject(src, 0) == WAIT_OBJECT_0 )
320 return 1; /* Event is signaled. */
321
322 /* Event is not signaled or is invalid. */
323 return 0;
324}
325#else /* not __WINDOWS__ */
327
328#ifdef HAVE_EVENTFD
329static inline int stick2xyz_event_occured ( int src )
330{
331 struct pollfd pfd;
332
333 if ( src > -1 )
334 {
335 /* Set up the polling structure. */
336 pfd.fd = src;
337 pfd.events = POLLIN;
338 pfd.revents = 0;
339
340 /* Check if the event is signaled. */
341 if ( poll(&pfd, 1, 0) > 0 )
342 return 1; /* Event is signaled. */
343 }
344
345 /* Event is not signaled or is invalid. */
346 return 0;
347}
348#else /* not HAVE_EVENTFD */
349static inline int stick2xyz_event_occured ( int src )
350{
351 return 0;
352}
353#endif /* not HAVE_EVENTFD */
354#endif /* not __WINDOWS__ */
355
356
357/* Lastly, create the generic typedefs for each function in the modules.
358 After this, the module prototypes, with their structs, will be
359 defined. */
360
373typedef int (*modid_type)(void);
374
379typedef void (*modid_lang)(void *);
380
381
382#ifndef DOXYGEN_BUILD
383typedef void * (*stick2xyz_print_ptr)(unsigned int, const void **);
384typedef const char * (*stick2xyz_lang_ptr)(void);
385typedef unsigned int (*stick2xyz_lang_type)(void);
386
387struct langpack_funcptrs
388{
389 stick2xyz_print_ptr langpack_funcptrs_print;
390 unsigned int langpack_funcptrs_type;
391 const char * langpack_funcptrs_lang;
392};
393#endif /* not DOXYGEN_BUILD */
394
395
396/* ----- Drawing Pane (2-D) BEGIN ----- */
397
398/* Drawing Pane (2-D) Multithread Alloc Enumeration */
399
400#define STICK2XYZ_PANE2D_ALLOC_NONE 0x00000000
401#define STICK2XYZ_PANE2D_ALLOC_GRAY 0x00000001
402#define STICK2XYZ_PANE2D_ALLOC_GRAY16 0x00000002
403#define STICK2XYZ_PANE2D_ALLOC_RGB 0x00000004
404#define STICK2XYZ_PANE2D_ALLOC_RGB16 0x00000008
405#define STICK2XYZ_PANE2D_ALLOC_ALL 0x0000000F
406
407/* Drawing Pane (2-D) Change Owner Enumeration */
408
409#define STICK2XYZ_PANE2D_ACCESSCTRL_NONE 0x00000000
410#define STICK2XYZ_PANE2D_ACCESSCTRL_ADDREF 0x00000001
411#define STICK2XYZ_PANE2D_ACCESSCTRL_NONBLOCK 0x00000002
412#define STICK2XYZ_PANE2D_ACCESSCTRL_CHANGEOWNER 0x00000004
413#define STICK2XYZ_PANE2D_ACCESSCTRL_ACLDRAWSET 0x00000010
414
415#define STICK2XYZ_PANE2D_ACCESSCTRL_READONLY 0
416#define STICK2XYZ_PANE2D_ACCESSCTRL_EVERYONE -1
417
418/* Drawing Pane (2-D) Image Request Enumeration */
419
420#define STICK2XYZ_PANE2D_REQUEST_UNKNOWN 0x0000
421#define STICK2XYZ_PANE2D_REQUEST_UINT8PP 0x0001
422#define STICK2XYZ_PANE2D_REQUEST_UINT8P 0x0002
423#define STICK2XYZ_PANE2D_REQUEST_UINT16PP 0x0004
424#define STICK2XYZ_PANE2D_REQUEST_UINT16P 0x0008
425
426/* Drawing Pane (2-D) Texture Enumeration */
427
428#define STICK2XYZ_PANE2D_TEXTURE_INVALID 0x0000
429#define STICK2XYZ_PANE2D_TEXTURE_GRAY 0x0001
430#define STICK2XYZ_PANE2D_TEXTURE_GRAYIMAGE 0x0002
431#define STICK2XYZ_PANE2D_TEXTURE_RGB 0x0004
432#define STICK2XYZ_PANE2D_TEXTURE_RGBIMAGE 0x0008
433
434/* Drawing Pane (2-D) Color Type Enumeration */
435
436#define STICK2XYZ_PANE2D_COLORTYPE_GRAY 0x00000001
437#define STICK2XYZ_PANE2D_COLORTYPE_RGB 0x00000002
438#define STICK2XYZ_PANE2D_COLORTYPE_ALPHA 0x00000010
439#define STICK2XYZ_PANE2D_COLORTYPE_16BIT 0x00000020
440
441/* Drawing Pane (2-D) Types */
442
447typedef void * pane2d_handle;
448
454
465{
469 uint32_t len;
470
482 uint32_t modtype;
483
488 void * dupimage;
489
493 void * freeimage;
494
499 void * dupxy;
500
505 void * colorinfo;
506
512
520};
521
532{
536 uint32_t len;
537
549 uint32_t modtype;
550
555 void * dupimage;
556
560 void * freeimage;
561
566 void * dupxy;
567
572 void * colorinfo;
573
579};
580
591{
595 uint32_t len;
596
608 uint32_t modtype;
609
614 void * dupimage;
615
619 void * freeimage;
620
625 void * dupxy;
626
631 void * colorinfo;
632};
633
644{
648 uint32_t len;
649
657 uint32_t modtype;
658
663 void * dupimage;
664
668 void * freeimage;
669
674 void * dupxy;
675};
676
682{
687 uint32_t vertex_type;
688
699
706};
707
714{
719 uint32_t vertex_type;
720
731
738
743
748};
749
750#if defined(DOXYGEN_BUILD) | defined(__WINDOWS__)
759{
764
770
776
782
787
792};
793
804{
810
816
822
828
833
838
843};
844#endif /* defined(DOXYGEN_BUILD) | defined(__WINDOWS__) */
845
846
847/* Drawing Pane (2-D) Module Identification */
848#ifdef UNICODE
852typedef const wchar_t * (*pane2d_modid_name)(void);
856typedef const wchar_t * (*pane2d_modid_desc)(void);
857#else /* not UNICODE */
858typedef const char * (*pane2d_modid_name)(void);
859typedef const char * (*pane2d_modid_desc)(void);
860#endif /* not UNICODE */
864typedef void (*pane2d_modid_version)(int *);
868typedef int (*pane2d_modid_type)(void);
872typedef void (*pane2d_modid_lang)(void *);
876typedef void (*pane2d_set_tty)(void *,void *);
877
878/* Drawing Pane (2-D) Module Initializers/Destructors */
882typedef int (*pane2d_init)(int);
886typedef int (*pane2d_release)(void);
887#if !defined(__WINDOWS__) | defined(DOXYGEN_BUILD)
893typedef void (*pane2d_sigterm_ready)(int);
900#endif /* !defined(__WINDOWS) | defined(DOXYGEN_BUILD) */
901
902/* Drawing Pane (2-D) Multithread Information */
903
907typedef int (*pane2d_can_multithread)(void);
912
913/* Drawing Pane (2-D) Bits Per Pixel Information */
914
918typedef int (*pane2d_get_bpp)(void);
919
920/* Drawing Pane (2-D) Access Control Functions */
921
925typedef void (*pane2d_getref)(pane2d_handle, int *, int *);
933typedef int (*pane2d_releaseref)(pane2d_handle, int, int);
950
951#if defined(__WINDOWS__) | defined(DOXYGEN_BUILD)
957typedef DWORD (*pane2d_getownerinfo_windows)(pane2d_handle, LPHANDLE);
965 struct pane2d_drawacl *
966);
974 struct pane2d_drawacl *
975);
981 PHANDLE,
982 int,
983 uint32_t
984);
988typedef int (*pane2d_changeowningthread)(pane2d_handle, HANDLE, int);
993#else /* not defined(__WINDOWS__) | defined(DOXYGEN_BUILD) */
994typedef int (*pane2d_eventreleased)(pane2d_handle);
995#ifdef HAVE_THREADS_H
996typedef int (*pane2d_changeaccesscontrol)(
998 thrd_t *,
999 int,
1000 uint32_t
1001);
1002typedef int (*pane2d_changeowningthread)(pane2d_handle, thrd_t, int);
1003#else /* not HAVE_THREADS_H */
1004typedef int (*pane2d_changeaccesscontrol)(
1006 void *,
1007 int,
1008 uint32_t
1009);
1010typedef int (*pane2d_changeowningthread)(pane2d_handle, void *, int);
1011#endif /* not HAVE_THREADS_H */
1012#endif /* not defined(__WINDOWS__) | defined(DOXYGEN_BUILD) */
1013
1014/* Drawing Pane (2-D) Vertex Functions */
1015
1023typedef void (*pane2d_vertex_setopts)(pane2d_handle, uint32_t);
1033 int,
1034 struct pane2d_vertex_elm_v2 *
1035);
1036
1037/* Drawing Pane (2-D) Texture Functions */
1038
1042typedef uint64_t (*pane2d_texture_add_gray)(
1044 uint8_t,
1045 uint8_t,
1047);
1051typedef uint64_t (*pane2d_texture_add_gray16)(
1053 uint16_t,
1054 uint16_t,
1056);
1060typedef uint64_t (*pane2d_texture_add_rgb)(
1062 uint8_t,
1063 uint8_t,
1064 uint8_t,
1065 uint8_t,
1067);
1071typedef uint64_t (*pane2d_texture_add_rgb16)(
1073 uint16_t,
1074 uint16_t,
1075 uint16_t,
1076 uint16_t,
1078);
1082typedef int (*pane2d_texture_enum)(
1085 uint64_t
1086);
1094typedef uint32_t (*pane2d_colortype)(void);
1095
1096/* Drawing Pane (2-D) Allocation Functions */
1097
1101typedef pane2d_handle (*pane2d_alloc)(int, int);
1106 int,
1107 int,
1108 size_t,
1109 uint32_t
1110);
1119
1120/* Drawing Pane (2-D) Handle Data Access Functions */
1121
1125typedef uint8_t ** (*pane2d_dupdata)(pane2d_handle, int);
1129typedef uint8_t ** (*pane2d_dupimage)(pane2d_handle, int);
1133typedef void (*pane2d_freeimage)(pane2d_handle, uint8_t **);
1137typedef uint16_t ** (*pane2d_dupimage16)(pane2d_handle, int);
1141typedef void (*pane2d_freeimage16)(pane2d_handle, uint16_t **);
1145typedef uint8_t * (*pane2d_dupdatap)(pane2d_handle, int);
1149typedef void (*pane2d_freedatap)(pane2d_handle, uint8_t *);
1153typedef uint16_t * (*pane2d_dupdata16p)(pane2d_handle, int);
1157typedef void (*pane2d_freedata16p)(pane2d_handle, uint16_t *);
1161typedef void (*pane2d_dupxy)(pane2d_handle, int *, int *);
1165typedef int (*pane2d_dupfunc_getlist)(uint32_t, struct pane2d_dupgen_funcs *);
1166
1167
1168/* Drawing Pane (2-D) Debug Functions */
1169
1174
1175
1176/* Drawing Pane (2-D) Drawing Functions */
1177
1181typedef void (*pane2d_drawpixel)(pane2d_handle, int , int);
1185typedef void (*pane2d_drawline)(pane2d_handle, int, int, int, int, int);
1186
1190typedef void (*pane2d_drawcircle)(pane2d_handle, int, int, int, int);
1194typedef void (*pane2d_fillcircle)(
1197 int,
1198 int,
1199 int
1200);
1204typedef void (*pane2d_drawellipse)(pane2d_handle, int, int, int, int, int);
1208typedef void (*pane2d_fillellipse)(
1211 int,
1212 int,
1213 int,
1214 int
1215);
1216
1220typedef void (*pane2d_drawrect)(pane2d_handle, int, int, int, int, int);
1224typedef void (*pane2d_fillrect)(
1227 int,
1228 int,
1229 int,
1230 int
1231);
1235typedef void (*pane2d_drawsquare)(pane2d_handle, int, int, int, int);
1239typedef void (*pane2d_fillsquare)(
1242 int,
1243 int,
1244 int
1245);
1246
1250typedef void (*pane2d_drawtriangle)(
1252 int,
1253 int,
1254 int,
1255 int,
1256 int,
1257 int,
1258 int
1259);
1263typedef void (*pane2d_filltriangle)(
1266 int,
1267 int,
1268 int,
1269 int,
1270 int,
1271 int
1272);
1278 int,
1279 int,
1280 int,
1281 int,
1282 int,
1283 int
1284);
1291 int,
1292 int,
1293 int,
1294 int,
1295 int
1296);
1302 int,
1303 int,
1304 int,
1305 int,
1306 int,
1307 int
1308);
1309
1310
1311/* Drawing Pane (2-D) Static/Shared Function Pointer Loaders. */
1313{
1320
1323#if !defined(__WINDOWS__) | defined(DOXYGEN_BUILD)
1325#endif /* not defined(__WINDOWS__) | defined(DOXYGEN_BUILD) */
1326
1335#if defined(__WINDOWS__) | defined(DOXYGEN_BUILD)
1339#endif /* defined(__WINDOWS__) | defined(DOXYGEN_BUILD) */
1345
1350
1355
1363
1375
1378
1383
1388
1394
1396};
1397
1403{
1407 uint32_t len;
1408
1412 uint32_t modtype;
1413
1419
1424
1430
1436
1442
1450};
1451
1457{
1461 uint32_t len;
1462
1466 uint32_t modtype;
1467
1473
1478
1484
1490
1496
1504};
1505
1511{
1515 uint32_t len;
1516
1520 uint32_t modtype;
1521
1527
1532
1538
1544
1550
1558};
1559
1565{
1569 uint32_t len;
1570
1574 uint32_t modtype;
1575
1581
1586
1592
1598
1604
1612};
1613/* ----- Drawing Pane (2-D) END ----- */
1614
1615
1616
1617/* ----- Output (2-D) BEGIN ----- */
1618
1619/* Output (2-D) Quality Enumeration */
1620#define STICK2XYZ_OUTPUT2D_QUALITY_VALID 0x00
1621#define STICK2XYZ_OUTPUT2D_QUALITY_INVALID 0x01
1622#define STICK2XYZ_OUTPUT2D_QUALITY_TOOLOW 0x03
1623#define STICK2XYZ_OUTPUT2D_QUALITY_TOOHIGH 0x05
1624
1625/* Output (2-D) Types */
1630typedef void * output2d_handle;
1631
1636{
1643
1648
1653
1659
1665
1670};
1671
1672/* Output (2-D) Module Identification */
1673
1674#ifdef UNICODE
1678typedef const wchar_t * (*output2d_modid_name)(void);
1682typedef const wchar_t * (*output2d_modid_desc)(void);
1683#else /* not UNICODE */
1684typedef const char * (*output2d_modid_name)(void);
1685typedef const char * (*output2d_modid_desc)(void);
1686#endif /* not UNICODE */
1690typedef void (*output2d_modid_version)(int *);
1694typedef int (*output2d_modid_type)(void);
1698typedef void (*output2d_modid_lang)(void *);
1702typedef int (*output2d_multithread_safe)(void);
1706typedef void (*output2d_set_tty)(void *,void *);
1707
1708/* Output (2-D) Module Initializers/Destructors */
1712typedef int (*output2d_init)(int);
1716typedef int (*output2d_release)(void);
1717
1718#if !defined(__WINDOWS__) | defined(DOXYGEN_BUILD)
1724typedef void (*output2d_sigterm_ready)(int);
1731#endif /* !defined(__WINDOWS__) | defined(DOXYGEN_BUILD) */
1732
1733/* Output (2-D) Quality Functions */
1734
1739 struct output2d_qualityinfo *
1740);
1744typedef uint32_t (*output2d_quality_valid)(const int);
1745
1746/* Output (2-D) Bits Per Pixel Functions */
1747
1751typedef size_t (*output2d_bpp_list)(int *);
1755typedef int (*output2d_bpp_supported)(const int);
1759typedef int (*output2d_bpp_default)(void);
1760
1761/* Output (2-D) Allocation Functions */
1762
1770 int
1771);
1780 int
1781);
1788 int,
1789 unsigned int
1790);
1797 int,
1798 unsigned int
1799);
1807typedef int (*output2d_getnewdata)(output2d_handle, unsigned int);
1808
1809/* Output (2-D) I/O Functions */
1810
1811#ifdef UNICODE
1815typedef int (*output2d_write_w)(
1817 const wchar_t*,
1818 unsigned int,
1819 int
1820 );
1821#endif /* UNICODE */
1825typedef int (*output2d_write)(
1827 const char *,
1828 unsigned int,
1829 int
1830);
1831
1832/* PNG Debug Functions */
1833
1837typedef void (*output2d_read)(const char *);
1838
1839/* Output (2-D) Static/Shared Function Pointer Loaders. */
1841{
1847
1852#if !defined(__WINDOWS__) | defined(DOXYGEN_BUILD)
1854#endif /* !defined(__WINDOWS__) | defined(DOXYGEN_BUILD) */
1855
1858
1862
1868
1870
1871#ifdef UNICODE
1873#endif /* UNICODE */
1875
1877};
1878
1879
1880/* ----- Output (2-D) END ----- */
1881
1882
1883
1884/* ----- Input BEGIN ----- */
1885
1886
1887/* Input Types */
1892typedef void * input_handle;
1893
1898#define STICK2XYZ_INPUT_OPEN_INVALID (input_handle)-1
1899
1907#define STICK2XYZ_INPUT_OPEN_ENOENT (input_handle)-2
1908
1915#define STICK2XYZ_INPUT_OPEN_ERROR (input_handle)-2
1916
1921#define STICK2XYZ_INPUT_OPEN_MEMORY NULL
1922
1927#define STICK2XYZ_INPUT_TYPE_AUTO 0x00000000
1928
1935#define STICK2XYZ_INPUT_TYPE_NOTSUPP 0x00000001
1936
1941#define STICK2XYZ_INPUT_TYPE_PLAIN 0x00000010
1942
1948#define STICK2XYZ_INPUT_TYPE_BINARY 0x00000020
1949
1953#define STICK2XYZ_INPUT_TYPE_GZIP 0x00000100
1954
1958#define STICK2XYZ_INPUT_TYPE_BZIP2 0x00000200
1959
1969#define STICK2XYZ_INPUT_TYPE_LZMA2 0x00000400
1970
1974#define STICK2XYZ_INPUT_TYPE_IS_UTF8(v) \
1975 ( ! ( v & 0x0000F000 ) )
1976
1983#define STICK2XYZ_INPUT_TYPE_UTF8 0x00000000
1984
1993#define STICK2XYZ_INPUT_TYPE_UTF16BE 0x00001000
1994
2003#define STICK2XYZ_INPUT_TYPE_UTF16LE 0x00002000
2004
2013#define STICK2XYZ_INPUT_TYPE_UTF32BE 0x00004000
2014
2023#define STICK2XYZ_INPUT_TYPE_UTF32LE 0x00008000
2024
2038#define STICK2XYZ_INPUT_TYPE_SMALL 0x10000000
2039
2045{
2051
2066
2073};
2074
2075/* Input Module Identification */
2076
2077#ifdef UNICODE
2081typedef const wchar_t * (*input_modid_name)(void);
2085typedef const wchar_t * (*input_modid_desc)(void);
2086#else /* not UNICODE */
2087typedef const char * (*input_modid_name)(void);
2088typedef const char * (*input_modid_desc)(void);
2089#endif /* not UNICODE */
2093typedef void (*input_modid_version)(int *);
2097typedef int (*input_modid_type)(void);
2101typedef void (*input_modid_lang)(void *);
2102
2103/* Input Module Initializers/Destructors */
2104
2108typedef int (*input_init)(int);
2112typedef int (*input_release)(void);
2113
2117typedef void (*input_set_tty)(void *,void *);
2118
2119#if !defined(__WINDOWS__) | defined(DOXYGEN_BUILD)
2125typedef void (*input_sigterm_ready)(int);
2132#endif /* !defined(__WINDOWS__) | defined(DOXYGEN_BUILD) */
2133
2137typedef int (*input_type_supported)(uint32_t);
2141typedef uint32_t (*input_get_supportedalgorithm)(void);
2142
2146typedef input_handle (*input_open)(void *);
2150typedef input_handle (*input_open_bt)(void *, uint32_t *);
2154typedef input_handle (*input_fopen)(const char *);
2158typedef input_handle (*input_fopen_bt)(const char *, uint32_t *);
2166typedef input_handle (*input_fdopen_bt)(int, uint32_t *);
2167#ifdef UNICODE
2171typedef input_handle (*input_fwopen)(const wchar_t *);
2175typedef input_handle (*input_fwopen_bt)(const wchar_t *, uint32_t *);
2176#endif /* UNICODE */
2180typedef void (*input_close)(input_handle);
2181
2189typedef uint32_t (*input_get_utftype)(input_handle);
2193typedef uint64_t (*input_get_lineno)(input_handle);
2194
2198typedef int (*input_read)(input_handle, struct input_buf *, size_t, size_t);
2199
2201{
2208
2210
2213#if !defined(__WINDOWS__) | defined(DOXYGEN_BUILD)
2215#endif /* !defined(__WINDOWS__) | defined(DOXYGEN_BUILD)*/
2216
2224
2229
2231
2232#ifdef UNICODE
2235#endif /* UNICODE */
2236};
2237
2238
2239/* ----- Input END ----- */
2240
2241
2242
2243#ifdef STICK2XYZ_STATIC
2244/* ----- Static Module List BEGIN ----- */
2245void pane2dgray_funcptrs_setup ( struct pane2d_funcptrs * ptr );
2246void pane2dgray16_funcptrs_setup ( struct pane2d_funcptrs * ptr );
2247void pane2drgb_funcptrs_setup ( struct pane2d_funcptrs * ptr );
2248void pane2drgb16_funcptrs_setup ( struct pane2d_funcptrs * ptr );
2249void output2djpeg_funcptrs_setup ( struct output2d_funcptrs * ptr );
2250void output2dpng_funcptrs_setup ( struct output2d_funcptrs * ptr );
2251void output2dbmp_funcptrs_setup ( struct output2d_funcptrs * ptr );
2252void inputbasic_funcptrs_setup ( struct input_funcptrs * ptr );
2253/* ----- Static Module List END ----- */
2254#endif /* STICK2XYZ_STATIC */
2255
2256
2257/* Make sure we have closed the "human language only" ifdef statement. */
2258#endif /* not STICK2XYZ_HUMAN_LANGUAGE */
2259
2260
2261/* Exit back to C++ (or other language) if we used extern above. */
2262#ifdef _cplusplus
2263}
2264#endif /* _cplusplus */
2265
2266/* Terminate the double-inclusion avoidance ifdef here. */
2267#endif /* not STICK2XYZ_H */
2268
2269
uint64_t(* pane2d_texture_add_gray)(pane2d_handle, uint8_t, uint8_t, pane2d_texture_handle *)
Definition: stick2xyz.h:1042
int(* pane2d_waituntilowner)(pane2d_handle, int)
Definition: stick2xyz.h:945
int(* pane2d_init)(int)
Definition: stick2xyz.h:882
uint32_t(* input_get_utftype)(input_handle)
Definition: stick2xyz.h:2189
void(* pane2d_fillellipse)(pane2d_handle, pane2d_texture_handle, int, int, int, int)
Definition: stick2xyz.h:1208
const wchar_t *(* input_modid_name)(void)
Definition: stick2xyz.h:2081
void(* pane2d_freeimage)(pane2d_handle, uint8_t **)
Definition: stick2xyz.h:1133
input_handle(* input_fwopen)(const wchar_t *)
Definition: stick2xyz.h:2171
int(* pane2d_changeowningthread)(pane2d_handle, HANDLE, int)
Definition: stick2xyz.h:988
input_handle(* input_fopen)(const char *)
Definition: stick2xyz.h:2154
int(* pane2d_termwaituntilowner)(pane2d_handle)
Definition: stick2xyz.h:949
pane2d_handle(* pane2d_alloc)(int, int)
Definition: stick2xyz.h:1101
void(* input_modid_version)(int *)
Definition: stick2xyz.h:2093
int(* output2d_write_w)(output2d_handle, const wchar_t *, unsigned int, int)
Definition: stick2xyz.h:1815
wchar_t stick2xyz_tchar
Definition: stick2xyz.h:148
void(* input_modid_lang)(void *)
Definition: stick2xyz.h:2101
uint32_t(* output2d_quality_valid)(const int)
Definition: stick2xyz.h:1744
int(* output2d_bpp_default)(void)
Definition: stick2xyz.h:1759
uint32_t(* pane2d_colortype)(void)
Definition: stick2xyz.h:1094
void(* output2d_sigterm_ready)(int)
Definition: stick2xyz.h:1724
const wchar_t *(* pane2d_modid_desc)(void)
Definition: stick2xyz.h:856
int(* output2d_quality_range)(struct output2d_qualityinfo *)
Definition: stick2xyz.h:1738
void(* pane2d_drawsquare)(pane2d_handle, int, int, int, int)
Definition: stick2xyz.h:1235
void(* pane2d_texture_clear)(pane2d_handle)
Definition: stick2xyz.h:1090
void(* output2d_modid_version)(int *)
Definition: stick2xyz.h:1690
const wchar_t *(* input_modid_desc)(void)
Definition: stick2xyz.h:2085
input_handle(* input_fwopen_bt)(const wchar_t *, uint32_t *)
Definition: stick2xyz.h:2175
void(* pane2d_drawcircle)(pane2d_handle, int, int, int, int)
Definition: stick2xyz.h:1190
int(* pane2d_dupfunc_getlist)(uint32_t, struct pane2d_dupgen_funcs *)
Definition: stick2xyz.h:1165
int(* pane2d_vertex_get)(pane2d_handle, int, struct pane2d_vertex_elm *)
Definition: stick2xyz.h:1027
void(* pane2d_print_segment)(pane2d_handle, int)
Definition: stick2xyz.h:1173
int(* pane2d_releaseref)(pane2d_handle, int, int)
Definition: stick2xyz.h:933
input_handle(* input_open)(void *)
Definition: stick2xyz.h:2146
int(* input_type_supported)(uint32_t)
Definition: stick2xyz.h:2137
int(* pane2d_is_multithreaded)(pane2d_handle)
Definition: stick2xyz.h:911
void(* pane2d_getref)(pane2d_handle, int *, int *)
Definition: stick2xyz.h:925
int errno_t
Definition: stick2xyz.h:195
void(* input_close)(input_handle)
Definition: stick2xyz.h:2180
uint8_t **(* pane2d_dupimage)(pane2d_handle, int)
Definition: stick2xyz.h:1129
uint8_t *(* pane2d_dupdatap)(pane2d_handle, int)
Definition: stick2xyz.h:1145
uint64_t(* pane2d_texture_add_rgb)(pane2d_handle, uint8_t, uint8_t, uint8_t, uint8_t, pane2d_texture_handle *)
Definition: stick2xyz.h:1060
void(* modid_lang)(void *)
Definition: stick2xyz.h:379
void * alloca(size_t)
uint32_t(* pane2d_vertex_getopts)(pane2d_handle)
Definition: stick2xyz.h:1019
void(* pane2d_set_tty)(void *, void *)
Definition: stick2xyz.h:876
int(* output2d_multithread_safe)(void)
Definition: stick2xyz.h:1702
void(* pane2d_freedatap)(pane2d_handle, uint8_t *)
Definition: stick2xyz.h:1149
const wchar_t stick2xyz_ctchar
Definition: stick2xyz.h:146
const wchar_t *(* output2d_modid_desc)(void)
Definition: stick2xyz.h:1682
int(* output2d_write)(output2d_handle, const char *, unsigned int, int)
Definition: stick2xyz.h:1825
int(* input_release)(void)
Definition: stick2xyz.h:2112
int(* output2d_sigterm)(output2d_sigterm_ready, int)
Definition: stick2xyz.h:1730
output2d_handle(* paneimage_to_output2d)(pane2d_handle, pane2d_dupimage, pane2d_freeimage, pane2d_dupxy, int)
Definition: stick2xyz.h:1775
int(* pane2d_candraw)(pane2d_handle)
Definition: stick2xyz.h:941
input_handle(* input_fdopen_bt)(int, uint32_t *)
Definition: stick2xyz.h:2166
void(* pane2d_fillrighttriangle)(pane2d_handle, pane2d_texture_handle, int, int, int, int, int)
Definition: stick2xyz.h:1288
void(* pane2d_drawellipse)(pane2d_handle, int, int, int, int, int)
Definition: stick2xyz.h:1204
void(* pane2d_vertex_setopts)(pane2d_handle, uint32_t)
Definition: stick2xyz.h:1023
void * input_handle
Definition: stick2xyz.h:1892
output2d_handle(* pane_to_output2d)(pane2d_handle, pane2d_dupdata, pane2d_dupxy, int)
Definition: stick2xyz.h:1766
void(* output2d_read)(const char *)
Definition: stick2xyz.h:1837
void(* pane2d_freedata16p)(pane2d_handle, uint16_t *)
Definition: stick2xyz.h:1157
output2d_handle(* pane_to_output2d_bytype)(pane2d_handle, pane2d_dupfunc_getlist, int, unsigned int)
Definition: stick2xyz.h:1794
HANDLE(* pane2d_eventreleased)(pane2d_handle)
Definition: stick2xyz.h:992
void(* pane2d_fillsquare)(pane2d_handle, pane2d_texture_handle, int, int, int)
Definition: stick2xyz.h:1239
void(* pane2d_drawtriangle)(pane2d_handle, int, int, int, int, int, int, int)
Definition: stick2xyz.h:1250
void(* pane2d_modid_lang)(void *)
Definition: stick2xyz.h:872
void(* output2d_free_handle)(output2d_handle)
Definition: stick2xyz.h:1803
void * output2d_handle
Definition: stick2xyz.h:1630
int(* pane2d_texture_enum)(pane2d_handle, pane2d_texture_handle *, uint64_t)
Definition: stick2xyz.h:1082
const wchar_t *(* pane2d_modid_name)(void)
Definition: stick2xyz.h:852
BOOL(* pane2d_freedrawaclinfo_windows)(pane2d_handle, struct pane2d_drawacl *)
Definition: stick2xyz.h:972
int(* pane2d_vertex_get_v2)(pane2d_handle, int, struct pane2d_vertex_elm_v2 *)
Definition: stick2xyz.h:1031
int(* pane2d_get_bpp)(void)
Definition: stick2xyz.h:918
uint32_t(* input_get_supportedalgorithm)(void)
Definition: stick2xyz.h:2141
void(* pane2d_drawrighttriangle)(pane2d_handle, int, int, int, int, int, int)
Definition: stick2xyz.h:1276
uint64_t(* pane2d_texture_add_rgb16)(pane2d_handle, uint16_t, uint16_t, uint16_t, uint16_t, pane2d_texture_handle *)
Definition: stick2xyz.h:1071
void(* output2d_modid_lang)(void *)
Definition: stick2xyz.h:1698
#define STICK2XYZ_MAXBUFPARAMS
Definition: stick2xyz.h:245
int(* pane2d_sigterm)(pane2d_sigterm_ready, int)
Definition: stick2xyz.h:899
int(* pane2d_isowner)(pane2d_handle)
Definition: stick2xyz.h:937
int(* input_read)(input_handle, struct input_buf *, size_t, size_t)
Definition: stick2xyz.h:2198
void(* pane2d_drawtworighttriangles)(pane2d_handle, int, int, int, int, int, int)
Definition: stick2xyz.h:1300
void(* pane2d_sigterm_ready)(int)
Definition: stick2xyz.h:893
size_t(* output2d_bpp_list)(int *)
Definition: stick2xyz.h:1751
const wchar_t * stick2xyz_pctchar
Definition: stick2xyz.h:145
void(* pane2d_drawline)(pane2d_handle, int, int, int, int, int)
Definition: stick2xyz.h:1185
uint8_t **(* pane2d_dupdata)(pane2d_handle, int)
Definition: stick2xyz.h:1125
const wchar_t *(* output2d_modid_name)(void)
Definition: stick2xyz.h:1678
BOOL(* pane2d_getdrawaclinfo_windows)(pane2d_handle, struct pane2d_drawacl *)
Definition: stick2xyz.h:963
int(* pane2d_changeaccesscontrol)(pane2d_handle, PHANDLE, int, uint32_t)
Definition: stick2xyz.h:979
uint64_t(* pane2d_texture_add_gray16)(pane2d_handle, uint16_t, uint16_t, pane2d_texture_handle *)
Definition: stick2xyz.h:1051
void(* input_sigterm_ready)(int)
Definition: stick2xyz.h:2125
int stick2xyz_eventhandle
Definition: stick2xyz.h:326
uint32_t(* input_get_algorithm)(input_handle)
Definition: stick2xyz.h:2185
void(* output2d_set_tty)(void *, void *)
Definition: stick2xyz.h:1706
void * pane2d_texture_handle
Definition: stick2xyz.h:453
void(* pane2d_modid_version)(int *)
Definition: stick2xyz.h:864
output2d_handle(* pane16_to_output2d_bytype)(pane2d_handle, pane2d_dupfunc_getlist, int, unsigned int)
Definition: stick2xyz.h:1785
void(* pane2d_clear)(pane2d_handle)
Definition: stick2xyz.h:1114
void(* pane2d_freeimage16)(pane2d_handle, uint16_t **)
Definition: stick2xyz.h:1141
pane2d_handle(* pane2d_alloc_multithread)(int, int, size_t, uint32_t)
Definition: stick2xyz.h:1105
void(* pane2d_filltriangle)(pane2d_handle, pane2d_texture_handle, int, int, int, int, int, int)
Definition: stick2xyz.h:1263
int(* pane2d_addref)(pane2d_handle)
Definition: stick2xyz.h:929
void(* pane2d_dupxy)(pane2d_handle, int *, int *)
Definition: stick2xyz.h:1161
int(* output2d_bpp_supported)(const int)
Definition: stick2xyz.h:1755
input_handle(* input_fopen_bt)(const char *, uint32_t *)
Definition: stick2xyz.h:2158
int(* pane2d_modid_type)(void)
Definition: stick2xyz.h:868
void * pane2d_handle
Definition: stick2xyz.h:447
int(* output2d_getnewdata)(output2d_handle, unsigned int)
Definition: stick2xyz.h:1807
void(* pane2d_free)(pane2d_handle)
Definition: stick2xyz.h:1118
int(* output2d_init)(int)
Definition: stick2xyz.h:1712
wchar_t * stick2xyz_ptchar
Definition: stick2xyz.h:147
input_handle(* input_open_bt)(void *, uint32_t *)
Definition: stick2xyz.h:2150
void(* input_set_tty)(void *, void *)
Definition: stick2xyz.h:2117
int(* output2d_modid_type)(void)
Definition: stick2xyz.h:1694
void(* pane2d_fillrect)(pane2d_handle, pane2d_texture_handle, int, int, int, int)
Definition: stick2xyz.h:1224
int(* input_init)(int)
Definition: stick2xyz.h:2108
void(* pane2d_drawrect)(pane2d_handle, int, int, int, int, int)
Definition: stick2xyz.h:1220
void(* pane2d_drawpixel)(pane2d_handle, int, int)
Definition: stick2xyz.h:1181
int(* modid_type)(void)
Definition: stick2xyz.h:373
int(* pane2d_can_multithread)(void)
Definition: stick2xyz.h:907
int(* output2d_release)(void)
Definition: stick2xyz.h:1716
int(* pane2d_release)(void)
Definition: stick2xyz.h:886
uint16_t **(* pane2d_dupimage16)(pane2d_handle, int)
Definition: stick2xyz.h:1137
DWORD(* pane2d_getownerinfo_windows)(pane2d_handle, LPHANDLE)
Definition: stick2xyz.h:957
int(* input_modid_type)(void)
Definition: stick2xyz.h:2097
uint64_t(* input_get_lineno)(input_handle)
Definition: stick2xyz.h:2193
void(* pane2d_fillcircle)(pane2d_handle, pane2d_texture_handle, int, int, int)
Definition: stick2xyz.h:1194
input_handle(* input_fdopen)(int)
Definition: stick2xyz.h:2162
int(* input_sigterm)(input_sigterm_ready, int)
Definition: stick2xyz.h:2131
uint16_t *(* pane2d_dupdata16p)(pane2d_handle, int)
Definition: stick2xyz.h:1153
uint32_t input_buf_type
Definition: stick2xyz.h:2050
stick2xyz_ptchar input_buf_str
Definition: stick2xyz.h:2065
int input_buf_params[STICK2XYZ_MAXBUFPARAMS]
Definition: stick2xyz.h:2072
input_open_bt input_funcptrs_open_bt
Definition: stick2xyz.h:2218
input_fwopen input_funcptrs_fwopen
Definition: stick2xyz.h:2233
input_fwopen_bt input_funcptrs_fwopen_bt
Definition: stick2xyz.h:2234
input_read input_funcptrs_read
Definition: stick2xyz.h:2230
input_close input_funcptrs_close
Definition: stick2xyz.h:2223
input_modid_lang input_funcptrs_lang
Definition: stick2xyz.h:2206
input_type_supported input_funcptrs_type_supported
Definition: stick2xyz.h:2209
input_set_tty input_funcptrs_set_tty
Definition: stick2xyz.h:2207
input_get_algorithm input_funcptrs_get_algorithm
Definition: stick2xyz.h:2225
input_sigterm input_funcptrs_sigterm
Definition: stick2xyz.h:2214
input_get_utftype input_funcptrs_get_utftype
Definition: stick2xyz.h:2226
input_modid_desc input_funcptrs_desc
Definition: stick2xyz.h:2203
input_fdopen_bt input_funcptrs_fdopen_bt
Definition: stick2xyz.h:2222
input_modid_version input_funcptrs_version
Definition: stick2xyz.h:2204
input_get_supportedalgorithm input_funcptrs_get_supportedalgorithm
Definition: stick2xyz.h:2227
input_fopen_bt input_funcptrs_fopen_bt
Definition: stick2xyz.h:2220
input_modid_name input_funcptrs_name
Definition: stick2xyz.h:2202
input_release input_funcptrs_release
Definition: stick2xyz.h:2212
input_fopen input_funcptrs_fopen
Definition: stick2xyz.h:2219
input_fdopen input_funcptrs_fdopen
Definition: stick2xyz.h:2221
input_open input_funcptrs_open
Definition: stick2xyz.h:2217
input_get_lineno input_funcptrs_get_lineno
Definition: stick2xyz.h:2228
input_init input_funcptrs_init
Definition: stick2xyz.h:2211
input_modid_type input_funcptrs_type
Definition: stick2xyz.h:2205
output2d_modid_name output2d_funcptrs_name
Definition: stick2xyz.h:1842
output2d_bpp_supported output2d_funcptrs_bpp_supported
Definition: stick2xyz.h:1860
paneimage_to_output2d output2d_funcptrs_paneimage_to_output2d
Definition: stick2xyz.h:1864
output2d_modid_desc output2d_funcptrs_desc
Definition: stick2xyz.h:1843
output2d_release output2d_funcptrs_release
Definition: stick2xyz.h:1849
output2d_init output2d_funcptrs_init
Definition: stick2xyz.h:1848
output2d_free_handle output2d_funcptrs_free_handle
Definition: stick2xyz.h:1869
output2d_modid_lang output2d_funcptrs_lang
Definition: stick2xyz.h:1846
output2d_sigterm output2d_funcptrs_sigterm
Definition: stick2xyz.h:1853
output2d_write_w output2d_funcptrs_write_w
Definition: stick2xyz.h:1872
output2d_bpp_list output2d_funcptrs_bpp_list
Definition: stick2xyz.h:1859
output2d_modid_version output2d_funcptrs_version
Definition: stick2xyz.h:1844
output2d_quality_valid output2d_funcptrs_quality_valid
Definition: stick2xyz.h:1857
output2d_read output2d_funcptrs_read
Definition: stick2xyz.h:1876
output2d_bpp_default output2d_funcptrs_bpp_default
Definition: stick2xyz.h:1861
output2d_modid_type output2d_funcptrs_type
Definition: stick2xyz.h:1845
output2d_quality_range output2d_funcptrs_quality_range
Definition: stick2xyz.h:1856
output2d_set_tty output2d_funcptrs_set_tty
Definition: stick2xyz.h:1851
output2d_getnewdata output2d_funcptrs_getnewdata
Definition: stick2xyz.h:1867
pane16_to_output2d_bytype output2d_funcptrs_pane16_to_output2d_bytype
Definition: stick2xyz.h:1865
pane_to_output2d output2d_funcptrs_pane_to_output2d
Definition: stick2xyz.h:1863
pane_to_output2d_bytype output2d_funcptrs_pane_to_output2d_bytype
Definition: stick2xyz.h:1866
output2d_multithread_safe output2d_funcptrs_multithread_safe
Definition: stick2xyz.h:1850
output2d_write output2d_funcptrs_write
Definition: stick2xyz.h:1874
uint32_t quality_version
Definition: stick2xyz.h:1642
pane2d_dupdata16p dupimage
Definition: stick2xyz.h:1580
pane2d_is_multithreaded multithreading
Definition: stick2xyz.h:1603
pane2d_colortype colorinfo
Definition: stick2xyz.h:1597
pane2d_freedata16p freeimage
Definition: stick2xyz.h:1585
pane2d_dupxy dupxy
Definition: stick2xyz.h:1591
pane2d_eventreleased eventreleased
Definition: stick2xyz.h:1611
pane2d_is_multithreaded multithreading
Definition: stick2xyz.h:1549
pane2d_colortype colorinfo
Definition: stick2xyz.h:1543
pane2d_freedatap freeimage
Definition: stick2xyz.h:1531
pane2d_dupdatap dupimage
Definition: stick2xyz.h:1526
pane2d_dupxy dupxy
Definition: stick2xyz.h:1537
pane2d_eventreleased eventreleased
Definition: stick2xyz.h:1557
BOOL drawacl_everyone
Definition: stick2xyz.h:775
PDWORD drawacl_threadids
Definition: stick2xyz.h:791
HANDLE drawacl_heap
Definition: stick2xyz.h:769
BOOL drawacl_readonly
Definition: stick2xyz.h:781
SIZE_T drawacl_version
Definition: stick2xyz.h:763
pane2d_drawtworighttriangles pane2d_funcptrs_drawtworighttriangles
Definition: stick2xyz.h:1393
pane2d_modid_lang pane2d_funcptrs_lang
Definition: stick2xyz.h:1318
pane2d_get_bpp pane2d_funcptrs_get_bpp
Definition: stick2xyz.h:1329
pane2d_dupdata pane2d_funcptrs_dupdata
Definition: stick2xyz.h:1364
pane2d_drawtriangle pane2d_funcptrs_drawtriangle
Definition: stick2xyz.h:1389
pane2d_drawcircle pane2d_funcptrs_drawcircle
Definition: stick2xyz.h:1379
pane2d_freedatap pane2d_funcptrs_freedatap
Definition: stick2xyz.h:1370
pane2d_set_tty pane2d_funcptrs_set_tty
Definition: stick2xyz.h:1319
pane2d_drawpixel pane2d_funcptrs_drawpixel
Definition: stick2xyz.h:1376
pane2d_fillrect pane2d_funcptrs_fillrect
Definition: stick2xyz.h:1385
pane2d_free pane2d_funcptrs_free
Definition: stick2xyz.h:1349
pane2d_vertex_get pane2d_funcptrs_vertex_get
Definition: stick2xyz.h:1353
pane2d_sigterm pane2d_funcptrs_sigterm
Definition: stick2xyz.h:1324
pane2d_vertex_setopts pane2d_funcptrs_setopts
Definition: stick2xyz.h:1352
pane2d_dupxy pane2d_funcptrs_dupxy
Definition: stick2xyz.h:1373
pane2d_freeimage pane2d_funcptrs_freeimage
Definition: stick2xyz.h:1366
pane2d_drawellipse pane2d_funcptrs_drawellipse
Definition: stick2xyz.h:1381
pane2d_fillellipse pane2d_funcptrs_fillellipse
Definition: stick2xyz.h:1382
pane2d_dupdatap pane2d_funcptrs_dupdatap
Definition: stick2xyz.h:1369
pane2d_candraw pane2d_funcptrs_candraw
Definition: stick2xyz.h:1334
pane2d_colortype pane2d_funcptrs_colortype
Definition: stick2xyz.h:1362
pane2d_drawline pane2d_funcptrs_drawline
Definition: stick2xyz.h:1377
pane2d_texture_enum pane2d_funcptrs_texture_enum
Definition: stick2xyz.h:1360
pane2d_getownerinfo_windows pane2d_funcptrs_getownerinfo_windows
Definition: stick2xyz.h:1336
pane2d_changeaccesscontrol pane2d_funcptrs_changeaccesscontrol
Definition: stick2xyz.h:1342
pane2d_alloc pane2d_funcptrs_alloc
Definition: stick2xyz.h:1346
pane2d_fillrighttriangle pane2d_funcptrs_fillrighttriangle
Definition: stick2xyz.h:1392
pane2d_texture_add_gray pane2d_funcptrs_texture_add_gray
Definition: stick2xyz.h:1356
pane2d_eventreleased pane2d_funcptrs_eventreleased
Definition: stick2xyz.h:1344
pane2d_getref pane2d_funcptrs_getref
Definition: stick2xyz.h:1330
pane2d_fillcircle pane2d_funcptrs_fillcircle
Definition: stick2xyz.h:1380
pane2d_clear pane2d_funcptrs_clear
Definition: stick2xyz.h:1348
pane2d_waituntilowner pane2d_funcptrs_waituntilowner
Definition: stick2xyz.h:1340
pane2d_can_multithread pane2d_funcptrs_can_multithread
Definition: stick2xyz.h:1327
pane2d_release pane2d_funcptrs_release
Definition: stick2xyz.h:1322
pane2d_dupfunc_getlist pane2d_funcptrs_dupfunc_getlist
Definition: stick2xyz.h:1374
pane2d_freedrawaclinfo_windows pane2d_funcptrs_freedrawaclinfo_windows
Definition: stick2xyz.h:1338
pane2d_vertex_getopts pane2d_funcptrs_getopts
Definition: stick2xyz.h:1351
pane2d_drawrect pane2d_funcptrs_drawrect
Definition: stick2xyz.h:1384
pane2d_filltriangle pane2d_funcptrs_filltriangle
Definition: stick2xyz.h:1390
pane2d_vertex_get_v2 pane2d_funcptrs_vertex_get_v2
Definition: stick2xyz.h:1354
pane2d_changeowningthread pane2d_funcptrs_changeowningthread
Definition: stick2xyz.h:1343
pane2d_freedata16p pane2d_funcptrs_freedata16p
Definition: stick2xyz.h:1372
pane2d_dupimage pane2d_funcptrs_dupimage
Definition: stick2xyz.h:1365
pane2d_texture_add_rgb16 pane2d_funcptrs_texture_add_rgb16
Definition: stick2xyz.h:1359
pane2d_getdrawaclinfo_windows pane2d_funcptrs_getdrawaclinfo_windows
Definition: stick2xyz.h:1337
pane2d_freeimage16 pane2d_funcptrs_freeimage16
Definition: stick2xyz.h:1368
pane2d_alloc_multithread pane2d_funcptrs_alloc_multithread
Definition: stick2xyz.h:1347
pane2d_modid_name pane2d_funcptrs_name
Definition: stick2xyz.h:1314
pane2d_isowner pane2d_funcptrs_isowner
Definition: stick2xyz.h:1333
pane2d_fillsquare pane2d_funcptrs_fillsquare
Definition: stick2xyz.h:1387
pane2d_drawsquare pane2d_funcptrs_drawsquare
Definition: stick2xyz.h:1386
pane2d_modid_desc pane2d_funcptrs_desc
Definition: stick2xyz.h:1315
pane2d_init pane2d_funcptrs_init
Definition: stick2xyz.h:1321
pane2d_dupimage16 pane2d_funcptrs_dupimage16
Definition: stick2xyz.h:1367
pane2d_releaseref pane2d_funcptrs_releaseref
Definition: stick2xyz.h:1332
pane2d_drawrighttriangle pane2d_funcptrs_drawrighttriangle
Definition: stick2xyz.h:1391
pane2d_print_segment pane2d_funcptrs_print_segment
Definition: stick2xyz.h:1395
pane2d_dupdata16p pane2d_funcptrs_dupdata16p
Definition: stick2xyz.h:1371
pane2d_addref pane2d_funcptrs_addref
Definition: stick2xyz.h:1331
pane2d_texture_add_gray16 pane2d_funcptrs_texture_add_gray16
Definition: stick2xyz.h:1357
pane2d_texture_clear pane2d_funcptrs_texture_clear
Definition: stick2xyz.h:1361
pane2d_termwaituntilowner pane2d_funcptrs_termwaituntilowner
Definition: stick2xyz.h:1341
pane2d_modid_version pane2d_funcptrs_version
Definition: stick2xyz.h:1316
pane2d_is_multithreaded pane2d_funcptrs_is_multithreaded
Definition: stick2xyz.h:1328
pane2d_modid_type pane2d_funcptrs_type
Definition: stick2xyz.h:1317
pane2d_texture_add_rgb pane2d_funcptrs_texture_add_rgb
Definition: stick2xyz.h:1358
pane2d_is_multithreaded multithreading
Definition: stick2xyz.h:1495
pane2d_dupimage16 dupimage
Definition: stick2xyz.h:1472
pane2d_freeimage16 freeimage
Definition: stick2xyz.h:1477
pane2d_colortype colorinfo
Definition: stick2xyz.h:1489
pane2d_dupxy dupxy
Definition: stick2xyz.h:1483
pane2d_eventreleased eventreleased
Definition: stick2xyz.h:1503
pane2d_is_multithreaded multithreading
Definition: stick2xyz.h:1441
pane2d_dupimage dupimage
Definition: stick2xyz.h:1418
pane2d_colortype colorinfo
Definition: stick2xyz.h:1435
pane2d_dupxy dupxy
Definition: stick2xyz.h:1429
pane2d_freeimage freeimage
Definition: stick2xyz.h:1423
pane2d_eventreleased eventreleased
Definition: stick2xyz.h:1449
uint64_t vertex_texture_no
Definition: stick2xyz.h:742
pane2d_texture_handle vertex_texture
Definition: stick2xyz.h:747
stick2xyz_ptchar vertex_str
Definition: stick2xyz.h:730
uint32_t vertex_type
Definition: stick2xyz.h:719
int vertex_params[STICK2XYZ_MAXBUFPARAMS]
Definition: stick2xyz.h:737
stick2xyz_ptchar vertex_str
Definition: stick2xyz.h:698
uint32_t vertex_type
Definition: stick2xyz.h:687
int vertex_params[STICK2XYZ_MAXBUFPARAMS]
Definition: stick2xyz.h:705

SourceForge.net Logo  stick2xyz Project Page