TGuy 0.18.1
TrashGuy C library created to be easily usable from other languages with CFFI support.
Loading...
Searching...
No Matches
libtguy.h
Go to the documentation of this file.
1#ifndef LIBTGUY_H
2#define LIBTGUY_H
3
8#include <stddef.h>
9#include <stdio.h>
10
16#define TGUY_VER_MAJOR 0
18#define TGUY_VER_MINOR 18
20#define TGUY_VER_PATCH 1
21
24#ifndef LIBTGUY_SHARED_DEFINE
25 #ifndef LIBTGUY_EXPORT
26 #define LIBTGUY_EXPORT
27 #endif
28#else
29 #ifndef LIBTGUY_EXPORT
30 #if defined _WIN32 || defined __CYGWIN__
31 #ifdef LIBTGUY_EXPORTS
32 #define LIBTGUY_EXPORT __declspec(dllexport)
33 #else
34 #define LIBTGUY_EXPORT __declspec(dllimport)
35 #endif
36 #elif __GNUC__ >= 4
37 #define LIBTGUY_EXPORT __attribute__((visibility("default")))
38 #else
39 #define LIBTGUY_EXPORT
40 #endif
41 #endif
42#endif
43
44#ifdef __cplusplus
45extern "C" {
46#endif
47
51typedef struct {
52 const char *str;
53 size_t len;
54} TGStrView;
55
60#define TGSTRV(str) ((TGStrView){str, sizeof(str) - 1})
61
66
80LIBTGUY_EXPORT TrashGuyState *tguy_from_arr_ex_2(const TGStrView *arr, size_t len, unsigned spacing,
82 int preserve_strings);
83
95LIBTGUY_EXPORT TrashGuyState *tguy_from_arr_ex(const TGStrView *arr, size_t len, unsigned spacing,
97
105LIBTGUY_EXPORT TrashGuyState *tguy_from_arr(const TGStrView *arr, size_t len, unsigned spacing);
106
122LIBTGUY_EXPORT TrashGuyState *tguy_from_utf8_ex(const char *string, size_t len, unsigned spacing,
123 const char *sprite_space, size_t sprite_space_len,
124 const char *sprite_can, size_t sprite_can_len,
125 const char *sprite_right, size_t sprite_right_len,
126 const char *sprite_left, size_t sprite_left_len);
127
135LIBTGUY_EXPORT TrashGuyState *tguy_from_utf8(const char string[], size_t len, unsigned spacing);
136
151LIBTGUY_EXPORT TrashGuyState *tguy_from_cstr_arr_ex(const char *const arr[], size_t len, unsigned spacing,
152 const char *sprite_space, size_t sprite_space_len,
153 const char *sprite_can, size_t sprite_can_len,
154 const char *sprite_right, size_t sprite_right_len,
155 const char *sprite_left, size_t sprite_left_len);
156
157
164LIBTGUY_EXPORT TrashGuyState *tguy_from_cstr_arr(const char *const arr[], size_t len, unsigned spacing);
165
170LIBTGUY_EXPORT void tguy_free(TrashGuyState *st);
171
178LIBTGUY_EXPORT unsigned tguy_set_frame(TrashGuyState *st, unsigned frame);
179
211LIBTGUY_EXPORT unsigned tguy_set_pos(TrashGuyState *st, unsigned sprite_pos, unsigned facing_right,
212 unsigned element_index);
213
214
223LIBTGUY_EXPORT void tguy_get_frame_state(const TrashGuyState *st, unsigned *frame, unsigned *sprite_pos,
224 unsigned *facing_right, unsigned *element_index);
225
231LIBTGUY_EXPORT unsigned tguy_get_frames_count(const TrashGuyState *st);
232
239LIBTGUY_EXPORT size_t tguy_fprint(const TrashGuyState *st, FILE *fp);
240
246LIBTGUY_EXPORT size_t tguy_print(const TrashGuyState *st);
247
254LIBTGUY_EXPORT size_t tguy_sprint(const TrashGuyState *st, char buf[]);
255
261LIBTGUY_EXPORT size_t tguy_get_bsize(TrashGuyState *st);
262
269LIBTGUY_EXPORT const TGStrView *tguy_get_arr(const TrashGuyState *st, size_t *len);
270
279LIBTGUY_EXPORT const char *tguy_get_string(TrashGuyState * restrict st, size_t *len);
280
290LIBTGUY_EXPORT unsigned tguy_get_first_frame_for_element(const TrashGuyState *st, unsigned element_index);
291
296LIBTGUY_EXPORT unsigned tguy_get_version(void);
297
298#ifdef __cplusplus
299}
300#endif
301
302#endif /* LIBTGUY_H */
LIBTGUY_EXPORT unsigned tguy_get_frames_count(const TrashGuyState *st)
Definition libtguy.c:637
LIBTGUY_EXPORT TrashGuyState * tguy_from_cstr_arr(const char *const arr[], size_t len, unsigned spacing)
Definition libtguy.c:477
LIBTGUY_EXPORT size_t tguy_get_bsize(TrashGuyState *st)
Definition libtguy.c:645
LIBTGUY_EXPORT unsigned tguy_set_pos(TrashGuyState *st, unsigned sprite_pos, unsigned facing_right, unsigned element_index)
Definition libtguy.c:583
LIBTGUY_EXPORT unsigned tguy_get_version(void)
Definition libtguy.c:684
LIBTGUY_EXPORT TrashGuyState * tguy_from_arr_ex_2(const TGStrView *arr, size_t len, unsigned spacing, const TGStrView *sprite_space, const TGStrView *sprite_can, const TGStrView *sprite_right, const TGStrView *sprite_left, int preserve_strings)
LIBTGUY_EXPORT TrashGuyState * tguy_from_cstr_arr_ex(const char *const arr[], size_t len, unsigned spacing, const char *sprite_space, size_t sprite_space_len, const char *sprite_can, size_t sprite_can_len, const char *sprite_right, size_t sprite_right_len, const char *sprite_left, size_t sprite_left_len)
Definition libtguy.c:448
LIBTGUY_EXPORT void tguy_get_frame_state(const TrashGuyState *st, unsigned *frame, unsigned *sprite_pos, unsigned *facing_right, unsigned *element_index)
Definition libtguy.c:599
LIBTGUY_EXPORT TrashGuyState * tguy_from_utf8(const char string[], size_t len, unsigned spacing)
Definition libtguy.c:440
LIBTGUY_EXPORT void tguy_free(TrashGuyState *st)
Definition libtguy.c:486
LIBTGUY_EXPORT unsigned tguy_set_frame(TrashGuyState *st, unsigned frame)
LIBTGUY_EXPORT TrashGuyState * tguy_from_utf8_ex(const char *string, size_t len, unsigned spacing, const char *sprite_space, size_t sprite_space_len, const char *sprite_can, size_t sprite_can_len, const char *sprite_right, size_t sprite_right_len, const char *sprite_left, size_t sprite_left_len)
LIBTGUY_EXPORT size_t tguy_fprint(const TrashGuyState *st, FILE *fp)
Definition libtguy.c:608
LIBTGUY_EXPORT size_t tguy_print(const TrashGuyState *st)
Definition libtguy.c:618
LIBTGUY_EXPORT size_t tguy_sprint(const TrashGuyState *st, char buf[])
LIBTGUY_EXPORT TrashGuyState * tguy_from_arr_ex(const TGStrView *arr, size_t len, unsigned spacing, const TGStrView *sprite_space, const TGStrView *sprite_can, const TGStrView *sprite_right, const TGStrView *sprite_left)
LIBTGUY_EXPORT unsigned tguy_get_first_frame_for_element(const TrashGuyState *st, unsigned element_index)
Definition libtguy.c:680
LIBTGUY_EXPORT const char * tguy_get_string(TrashGuyState *restrict st, size_t *len)
LIBTGUY_EXPORT TrashGuyState * tguy_from_arr(const TGStrView *arr, size_t len, unsigned spacing)
LIBTGUY_EXPORT const TGStrView * tguy_get_arr(const TrashGuyState *st, size_t *len)
Definition libtguy.c:631
Definition libtguy.h:51
size_t len
Definition libtguy.h:53
const char * str
Definition libtguy.h:52
Definition libtguy.c:91
TGStrView sprite_right
Definition libtguy.c:95
TGStrView sprite_can
Definition libtguy.c:97
TGStrView sprite_space
Definition libtguy.c:98
TGStrView sprite_left
Definition libtguy.c:96