Skip to content

Commit 25a2ec4

Browse files
committed
Finished the unfinished SDL_stdinc.h implementation.
1 parent 46b3f88 commit 25a2ec4

File tree

1 file changed

+222
-3
lines changed

1 file changed

+222
-3
lines changed

sdl3/SDL_stdinc.py

Lines changed: 222 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from .__init__ import ctypes, \
2-
SDL_FUNC, SDL_SET_CURRENT_DLL, SDL_DLL
2+
SDL_FUNC, SDL_SET_CURRENT_DLL, SDL_GET_DLL, SDL_DLL
33

44
SDL_SET_CURRENT_DLL(SDL_DLL)
55

6-
SDL_FALSE = 0
7-
SDL_TRUE = 1
6+
SDL_arraysize = lambda array: ctypes.sizeof(array) // ctypes.sizeof(array[0])
7+
8+
SDL_FALSE = False
9+
SDL_TRUE = True
810

911
SDL_bool = ctypes.c_bool
1012

@@ -46,4 +48,221 @@
4648

4749
SDL_FLT_EPSILON = 1.1920928955078125e-07
4850

51+
SDL_FUNC("SDL_malloc", ctypes.c_void_p, ctypes.c_size_t)
52+
SDL_FUNC("SDL_calloc", ctypes.c_void_p, ctypes.c_size_t, ctypes.c_size_t)
53+
SDL_FUNC("SDL_realloc", ctypes.c_void_p, ctypes.c_void_p, ctypes.c_size_t)
54+
SDL_FUNC("SDL_free", None, ctypes.c_void_p)
55+
56+
SDL_malloc_func = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_size_t)
57+
SDL_calloc_func = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_size_t, ctypes.c_size_t)
58+
SDL_realloc_func = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p, ctypes.c_size_t)
59+
SDL_free_func = ctypes.CFUNCTYPE(None, ctypes.c_void_p)
60+
61+
SDL_FUNC("SDL_GetOriginalMemoryFunctions", None, ctypes.POINTER(SDL_malloc_func), ctypes.POINTER(SDL_calloc_func), ctypes.POINTER(SDL_realloc_func), ctypes.POINTER(SDL_free_func))
62+
SDL_FUNC("SDL_GetMemoryFunctions", None, ctypes.POINTER(SDL_malloc_func), ctypes.POINTER(SDL_calloc_func), ctypes.POINTER(SDL_realloc_func), ctypes.POINTER(SDL_free_func))
63+
SDL_FUNC("SDL_SetMemoryFunctions", ctypes.c_bool, SDL_malloc_func, SDL_calloc_func, SDL_realloc_func, SDL_free_func)
64+
65+
SDL_FUNC("SDL_aligned_alloc", ctypes.c_void_p, ctypes.c_size_t, ctypes.c_size_t)
66+
SDL_FUNC("SDL_aligned_free", None, ctypes.c_void_p)
67+
68+
SDL_FUNC("SDL_GetNumAllocations", ctypes.c_int)
69+
SDL_FUNC("SDL_getenv", ctypes.c_char_p, ctypes.c_char_p)
70+
SDL_FUNC("SDL_setenv", ctypes.c_int, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_int)
71+
SDL_FUNC("SDL_unsetenv", ctypes.c_int, ctypes.c_char_p)
72+
73+
SDL_CompareCallback = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_void_p, ctypes.c_void_p)
74+
75+
SDL_FUNC("SDL_qsort", None, ctypes.c_void_p, ctypes.c_size_t, ctypes.c_size_t, SDL_CompareCallback)
76+
SDL_FUNC("SDL_bsearch", ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_size_t, ctypes.c_size_t, SDL_CompareCallback)
77+
78+
SDL_CompareCallback_r = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p)
79+
80+
SDL_FUNC("SDL_qsort_r", None, ctypes.c_void_p, ctypes.c_size_t, ctypes.c_size_t, SDL_CompareCallback_r, ctypes.c_void_p)
81+
SDL_FUNC("SDL_bsearch_r", ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_size_t, ctypes.c_size_t, SDL_CompareCallback_r, ctypes.c_void_p)
82+
83+
SDL_FUNC("SDL_abs", ctypes.c_int, ctypes.c_int)
84+
85+
SDL_min = lambda x, y: x if x < y else y
86+
SDL_max = lambda x, y: x if x > y else y
87+
SDL_clamp = lambda x, a, b: a if x < a else (b if x > b else x)
88+
89+
SDL_FUNC("SDL_isalpha", ctypes.c_int, ctypes.c_int)
90+
SDL_FUNC("SDL_isalnum", ctypes.c_int, ctypes.c_int)
91+
SDL_FUNC("SDL_isblank", ctypes.c_int, ctypes.c_int)
92+
SDL_FUNC("SDL_iscntrl", ctypes.c_int, ctypes.c_int)
93+
SDL_FUNC("SDL_isdigit", ctypes.c_int, ctypes.c_int)
94+
SDL_FUNC("SDL_isxdigit", ctypes.c_int, ctypes.c_int)
95+
SDL_FUNC("SDL_ispunct", ctypes.c_int, ctypes.c_int)
96+
SDL_FUNC("SDL_isspace", ctypes.c_int, ctypes.c_int)
97+
SDL_FUNC("SDL_isupper", ctypes.c_int, ctypes.c_int)
98+
SDL_FUNC("SDL_islower", ctypes.c_int, ctypes.c_int)
99+
SDL_FUNC("SDL_isprint", ctypes.c_int, ctypes.c_int)
100+
SDL_FUNC("SDL_isgraph", ctypes.c_int, ctypes.c_int)
101+
SDL_FUNC("SDL_toupper", ctypes.c_int, ctypes.c_int)
102+
SDL_FUNC("SDL_tolower", ctypes.c_int, ctypes.c_int)
103+
104+
SDL_FUNC("SDL_crc16", ctypes.c_uint16, ctypes.c_uint16, ctypes.c_void_p, ctypes.c_size_t)
105+
SDL_FUNC("SDL_crc32", ctypes.c_uint32, ctypes.c_uint32, ctypes.c_void_p, ctypes.c_size_t)
106+
107+
SDL_FUNC("SDL_memcpy", ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_size_t)
108+
SDL_FUNC("SDL_memmove", ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_size_t)
109+
SDL_FUNC("SDL_memset", ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int, ctypes.c_size_t)
110+
SDL_FUNC("SDL_memset4", ctypes.c_void_p, ctypes.c_void_p, ctypes.c_uint32, ctypes.c_size_t)
111+
112+
SDL_zero = lambda x: SDL_GET_DLL(SDL_DLL).SDL_memset(ctypes.byref(x), 0, ctypes.sizeof(x))
113+
SDL_zerop = lambda x: SDL_GET_DLL(SDL_DLL).SDL_memset(x, 0, ctypes.sizeof(x.contents))
114+
SDL_zeroa = lambda x: SDL_GET_DLL(SDL_DLL).SDL_memset(x, 0, ctypes.sizeof(x))
115+
116+
SDL_FUNC("SDL_memcmp", ctypes.c_int, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_size_t)
117+
118+
SDL_FUNC("SDL_wcslen", ctypes.c_size_t, ctypes.c_wchar_p)
119+
SDL_FUNC("SDL_wcsnlen", ctypes.c_size_t, ctypes.c_wchar_p, ctypes.c_size_t)
120+
SDL_FUNC("SDL_wcslcpy", ctypes.c_size_t, ctypes.c_wchar_p, ctypes.c_wchar_p, ctypes.c_size_t)
121+
SDL_FUNC("SDL_wcslcat", ctypes.c_size_t, ctypes.c_wchar_p, ctypes.c_wchar_p, ctypes.c_size_t)
122+
SDL_FUNC("SDL_wcsdup", ctypes.c_wchar_p, ctypes.c_wchar_p)
123+
SDL_FUNC("SDL_wcsstr", ctypes.c_wchar_p, ctypes.c_wchar_p, ctypes.c_wchar_p)
124+
SDL_FUNC("SDL_wcsnstr", ctypes.c_wchar_p, ctypes.c_wchar_p, ctypes.c_wchar_p, ctypes.c_size_t)
125+
SDL_FUNC("SDL_wcscmp", ctypes.c_int, ctypes.c_wchar_p, ctypes.c_wchar_p)
126+
SDL_FUNC("SDL_wcsncmp", ctypes.c_int, ctypes.c_wchar_p, ctypes.c_wchar_p, ctypes.c_size_t)
127+
SDL_FUNC("SDL_wcscasecmp", ctypes.c_int, ctypes.c_wchar_p, ctypes.c_wchar_p)
128+
SDL_FUNC("SDL_wcsncasecmp", ctypes.c_int, ctypes.c_wchar_p, ctypes.c_wchar_p, ctypes.c_size_t)
129+
SDL_FUNC("SDL_wcstol", ctypes.c_long, ctypes.c_wchar_p, ctypes.POINTER(ctypes.c_wchar_p), ctypes.c_int)
130+
131+
SDL_FUNC("SDL_strlen", ctypes.c_size_t, ctypes.c_char_p)
132+
SDL_FUNC("SDL_strnlen", ctypes.c_size_t, ctypes.c_char_p, ctypes.c_size_t)
133+
SDL_FUNC("SDL_strlcpy", ctypes.c_size_t, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_size_t)
134+
SDL_FUNC("SDL_utf8strlcpy", ctypes.c_size_t, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_size_t)
135+
SDL_FUNC("SDL_strlcat", ctypes.c_size_t, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_size_t)
136+
SDL_FUNC("SDL_strdup", ctypes.c_char_p, ctypes.c_char_p)
137+
SDL_FUNC("SDL_strndup", ctypes.c_char_p, ctypes.c_char_p, ctypes.c_size_t)
138+
SDL_FUNC("SDL_strrev", ctypes.c_char_p, ctypes.c_char_p)
139+
SDL_FUNC("SDL_strupr", ctypes.c_char_p, ctypes.c_char_p)
140+
SDL_FUNC("SDL_strlwr", ctypes.c_char_p, ctypes.c_char_p)
141+
SDL_FUNC("SDL_strchr", ctypes.c_char_p, ctypes.c_char_p, ctypes.c_int)
142+
SDL_FUNC("SDL_strrchr", ctypes.c_char_p, ctypes.c_char_p, ctypes.c_int)
143+
SDL_FUNC("SDL_strstr", ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p)
144+
SDL_FUNC("SDL_strnstr", ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_size_t)
145+
SDL_FUNC("SDL_strcasestr", ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p)
146+
SDL_FUNC("SDL_strtok_r", ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p, ctypes.POINTER(ctypes.c_char_p))
147+
SDL_FUNC("SDL_utf8strlen", ctypes.c_size_t, ctypes.c_char_p)
148+
SDL_FUNC("SDL_utf8strnlen", ctypes.c_size_t, ctypes.c_char_p, ctypes.c_size_t)
149+
150+
SDL_FUNC("SDL_itoa", ctypes.c_char_p, ctypes.c_int, ctypes.c_char_p, ctypes.c_int)
151+
SDL_FUNC("SDL_uitoa", ctypes.c_char_p, ctypes.c_uint, ctypes.c_char_p, ctypes.c_int)
152+
SDL_FUNC("SDL_ltoa", ctypes.c_char_p, ctypes.c_long, ctypes.c_char_p, ctypes.c_int)
153+
SDL_FUNC("SDL_ultoa", ctypes.c_char_p, ctypes.c_ulong, ctypes.c_char_p, ctypes.c_int)
154+
SDL_FUNC("SDL_lltoa", ctypes.c_char_p, ctypes.c_int64, ctypes.c_char_p, ctypes.c_int)
155+
SDL_FUNC("SDL_ulltoa", ctypes.c_char_p, ctypes.c_uint64, ctypes.c_char_p, ctypes.c_int)
156+
157+
SDL_FUNC("SDL_atoi", ctypes.c_int, ctypes.c_char_p)
158+
SDL_FUNC("SDL_atof", ctypes.c_double, ctypes.c_char_p)
159+
SDL_FUNC("SDL_strtol", ctypes.c_long, ctypes.c_char_p, ctypes.POINTER(ctypes.c_char_p), ctypes.c_int)
160+
SDL_FUNC("SDL_strtoul", ctypes.c_ulong, ctypes.c_char_p, ctypes.POINTER(ctypes.c_char_p), ctypes.c_int)
161+
SDL_FUNC("SDL_strtoll", ctypes.c_int64, ctypes.c_char_p, ctypes.POINTER(ctypes.c_char_p), ctypes.c_int)
162+
SDL_FUNC("SDL_strtoull", ctypes.c_uint64, ctypes.c_char_p, ctypes.POINTER(ctypes.c_char_p), ctypes.c_int)
163+
SDL_FUNC("SDL_strtod", ctypes.c_double, ctypes.c_char_p, ctypes.POINTER(ctypes.c_char_p))
164+
165+
SDL_FUNC("SDL_strcmp", ctypes.c_int, ctypes.c_char_p, ctypes.c_char_p)
166+
SDL_FUNC("SDL_strncmp", ctypes.c_int, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_size_t)
167+
SDL_FUNC("SDL_strcasecmp", ctypes.c_int, ctypes.c_char_p, ctypes.c_char_p)
168+
SDL_FUNC("SDL_strncasecmp", ctypes.c_int, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_size_t)
169+
170+
SDL_INVALID_UNICODE_CODEPOINT = 0xFFFD
171+
172+
SDL_FUNC("SDL_StepUTF8", ctypes.c_uint32, ctypes.POINTER(ctypes.c_char_p), ctypes.POINTER(ctypes.c_size_t))
173+
SDL_FUNC("SDL_UCS4ToUTF8", ctypes.c_char_p, ctypes.c_uint32, ctypes.c_char_p)
174+
175+
SDL_FUNC("SDL_sscanf", ctypes.c_int, ctypes.c_char_p, ctypes.c_char_p)
176+
SDL_FUNC("SDL_vsscanf", ctypes.c_int, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_void_p)
177+
SDL_FUNC("SDL_snprintf", ctypes.c_int, ctypes.c_char_p, ctypes.c_size_t, ctypes.c_char_p)
178+
SDL_FUNC("SDL_swprintf", ctypes.c_int, ctypes.c_wchar_p, ctypes.c_size_t, ctypes.c_wchar_p)
179+
SDL_FUNC("SDL_vsnprintf", ctypes.c_int, ctypes.c_char_p, ctypes.c_size_t, ctypes.c_char_p, ctypes.c_void_p)
180+
SDL_FUNC("SDL_vswprintf", ctypes.c_int, ctypes.c_wchar_p, ctypes.c_size_t, ctypes.c_wchar_p, ctypes.c_void_p)
181+
SDL_FUNC("SDL_asprintf", ctypes.c_int, ctypes.POINTER(ctypes.c_char_p), ctypes.c_char_p)
182+
SDL_FUNC("SDL_vasprintf", ctypes.c_int, ctypes.POINTER(ctypes.c_char_p), ctypes.c_char_p, ctypes.c_void_p)
183+
184+
SDL_FUNC("SDL_srand", None, ctypes.c_uint64)
185+
SDL_FUNC("SDL_rand", ctypes.c_int32, ctypes.c_int64)
186+
SDL_FUNC("SDL_randf", ctypes.c_float)
187+
SDL_FUNC("SDL_rand_bits", ctypes.c_uint32)
188+
SDL_FUNC("SDL_rand_r", ctypes.c_int32, ctypes.POINTER(ctypes.c_uint64), ctypes.c_int32)
189+
SDL_FUNC("SDL_randf_r", ctypes.c_float, ctypes.POINTER(ctypes.c_uint64))
190+
SDL_FUNC("SDL_rand_bits_r", ctypes.c_uint32, ctypes.POINTER(ctypes.c_uint64))
191+
192+
SDL_PI_D = SDL_PI_F = 3.141592653589793238462643383279502884
193+
194+
SDL_FUNC("SDL_acos", ctypes.c_double, ctypes.c_double)
195+
SDL_FUNC("SDL_acosf", ctypes.c_float, ctypes.c_float)
196+
SDL_FUNC("SDL_asin", ctypes.c_double, ctypes.c_double)
197+
SDL_FUNC("SDL_asinf", ctypes.c_float, ctypes.c_float)
198+
SDL_FUNC("SDL_atan", ctypes.c_double, ctypes.c_double)
199+
SDL_FUNC("SDL_atanf", ctypes.c_float, ctypes.c_float)
200+
SDL_FUNC("SDL_atan2", ctypes.c_double, ctypes.c_double, ctypes.c_double)
201+
SDL_FUNC("SDL_atan2f", ctypes.c_float, ctypes.c_float, ctypes.c_float)
202+
SDL_FUNC("SDL_ceil", ctypes.c_double, ctypes.c_double)
203+
SDL_FUNC("SDL_ceilf", ctypes.c_float, ctypes.c_float)
204+
SDL_FUNC("SDL_copysign", ctypes.c_double, ctypes.c_double, ctypes.c_double)
205+
SDL_FUNC("SDL_copysignf", ctypes.c_float, ctypes.c_float, ctypes.c_float)
206+
SDL_FUNC("SDL_cos", ctypes.c_double, ctypes.c_double)
207+
SDL_FUNC("SDL_cosf", ctypes.c_float, ctypes.c_float)
208+
SDL_FUNC("SDL_exp", ctypes.c_double, ctypes.c_double)
209+
SDL_FUNC("SDL_expf", ctypes.c_float, ctypes.c_float)
210+
SDL_FUNC("SDL_fabs", ctypes.c_double, ctypes.c_double)
211+
SDL_FUNC("SDL_fabsf", ctypes.c_float, ctypes.c_float)
212+
SDL_FUNC("SDL_floor", ctypes.c_double, ctypes.c_double)
213+
SDL_FUNC("SDL_floorf", ctypes.c_float, ctypes.c_float)
214+
SDL_FUNC("SDL_trunc", ctypes.c_double, ctypes.c_double)
215+
SDL_FUNC("SDL_truncf", ctypes.c_float, ctypes.c_float)
216+
SDL_FUNC("SDL_fmod", ctypes.c_double, ctypes.c_double, ctypes.c_double)
217+
SDL_FUNC("SDL_fmodf", ctypes.c_float, ctypes.c_float, ctypes.c_float)
218+
SDL_FUNC("SDL_isinf", ctypes.c_int, ctypes.c_double)
219+
SDL_FUNC("SDL_isinff", ctypes.c_int, ctypes.c_float)
220+
SDL_FUNC("SDL_isnan", ctypes.c_int, ctypes.c_double)
221+
SDL_FUNC("SDL_isnanf", ctypes.c_int, ctypes.c_float)
222+
SDL_FUNC("SDL_log", ctypes.c_double, ctypes.c_double)
223+
SDL_FUNC("SDL_logf", ctypes.c_float, ctypes.c_float)
224+
SDL_FUNC("SDL_log10", ctypes.c_double, ctypes.c_double)
225+
SDL_FUNC("SDL_log10f", ctypes.c_float, ctypes.c_float)
226+
SDL_FUNC("SDL_modf", ctypes.c_double, ctypes.c_double, ctypes.POINTER(ctypes.c_double))
227+
SDL_FUNC("SDL_modff", ctypes.c_float, ctypes.c_float, ctypes.POINTER(ctypes.c_float))
228+
SDL_FUNC("SDL_pow", ctypes.c_double, ctypes.c_double, ctypes.c_double)
229+
SDL_FUNC("SDL_powf", ctypes.c_float, ctypes.c_float, ctypes.c_float)
230+
SDL_FUNC("SDL_round", ctypes.c_double, ctypes.c_double)
231+
SDL_FUNC("SDL_roundf", ctypes.c_float, ctypes.c_float)
232+
SDL_FUNC("SDL_lround", ctypes.c_long, ctypes.c_double)
233+
SDL_FUNC("SDL_lroundf", ctypes.c_long, ctypes.c_float)
234+
SDL_FUNC("SDL_scalbn", ctypes.c_double, ctypes.c_double, ctypes.c_int)
235+
SDL_FUNC("SDL_scalbnf", ctypes.c_float, ctypes.c_float, ctypes.c_int)
236+
SDL_FUNC("SDL_sin", ctypes.c_double, ctypes.c_double)
237+
SDL_FUNC("SDL_sinf", ctypes.c_float, ctypes.c_float)
238+
SDL_FUNC("SDL_sqrt", ctypes.c_double, ctypes.c_double)
239+
SDL_FUNC("SDL_sqrtf", ctypes.c_float, ctypes.c_float)
240+
SDL_FUNC("SDL_tan", ctypes.c_double, ctypes.c_double)
241+
SDL_FUNC("SDL_tanf", ctypes.c_float, ctypes.c_float)
242+
243+
SDL_ICONV_ERROR = -1
244+
SDL_ICONV_E2BIG = -2
245+
SDL_ICONV_EILSEQ = -3
246+
SDL_ICONV_EINVAL = -4
247+
248+
class SDL_iconv_t(ctypes.c_void_p):
249+
...
250+
251+
SDL_FUNC("SDL_iconv_open", SDL_iconv_t, ctypes.c_char_p, ctypes.c_char_p)
252+
SDL_FUNC("SDL_iconv_close", ctypes.c_int, SDL_iconv_t)
253+
SDL_FUNC("SDL_iconv", ctypes.c_size_t, SDL_iconv_t, ctypes.POINTER(ctypes.c_char_p), ctypes.POINTER(ctypes.c_size_t), ctypes.POINTER(ctypes.c_char_p), ctypes.POINTER(ctypes.c_size_t))
254+
SDL_FUNC("SDL_iconv_string", ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_size_t)
255+
256+
SDL_iconv_utf8_locale = lambda s: \
257+
SDL_GET_DLL(SDL_DLL).SDL_iconv_string("".encode(), "UTF-8".encode(), s.encode(), SDL_GET_DLL(SDL_DLL).SDL_strlen(s.encode()) + 1)
258+
259+
SDL_iconv_utf8_ucs2 = lambda s: \
260+
SDL_GET_DLL(SDL_DLL).SDL_iconv_string("UCS-2".encode(), "UTF-8".encode(), s.encode(), SDL_GET_DLL(SDL_DLL).SDL_strlen(s.encode()) + 1)
261+
262+
SDL_iconv_utf8_ucs4 = lambda s: \
263+
SDL_GET_DLL(SDL_DLL).SDL_iconv_string("UCS-4".encode(), "UTF-8".encode(), S.encode(), SDL_GET_DLL(SDL_DLL).SDL_strlen(s.encode()) + 1)
264+
265+
SDL_iconv_wchar_utf8 = lambda s: \
266+
SDL_GET_DLL(SDL_DLL).SDL_iconv_string("UTF-8".encode(), "WCHAR_T".encode(), s.encode(), (SDL_GET_DLL(SDL_DLL).SDL_wcslen(s.encode()) + 1) * ctypes.sizeof(ctypes.c_wchar))
267+
49268
SDL_FunctionPointer = ctypes.CFUNCTYPE(None)

0 commit comments

Comments
 (0)