LibGame  v0.4.0
The LG Game Engine - Copyright (C) 2024-2025 ETMSoftware
lg_misc.h
1 /*
2  * LibGame - Copyright (C) Emmanuel Thomas-Maurin 2011-2025
3  * All rights reserved
4  */
5 
6 #ifndef LG_MISC_H
7 #define LG_MISC_H
8 
9 /* Not inclusive */
10 #define IS_IN(x, y, z) (x > y && x < z ? TRUE : FALSE)
11 
12 /* Inclusive */
13 #define IS_IN2(x, y, z) (x >= y && x <= z ? TRUE : FALSE)
14 
15 typedef enum {LG_LITTLE_ENDIAN, LG_BIG_ENDIAN} lg_endianness;
16 
17 /* (From: https://cloford.com/resources/charcodes/utf-8_arrows.htm) */
18 #define LEFT_ARROW_LIGHT_UTF8 "\u2190" /* Light leftwards arrow */
19 #define RIGHT_ARROW_LIGHT_UTF8 "\u2192" /* Light rightwards arrow */
20 #define UP_ARROW_LIGHT_UTF8 "\u2191" /* Light upwards arrow */
21 #define DOWN_ARROW_LIGHT_UTF8 "\u2193" /* Light downwards arrow */
22 
23 /* (From: https://cloford.com/resources/charcodes/utf-8_dingbats.htm) */
24 #define UTF8_RW_ROUNDED_ARROW "\u279c" /* Rounded rightwards arrow */
25 
27 
28 float lg_tv_diff(struct timeval *, struct timeval *, struct timeval *);
29 
31 
32 lg_endianness lg_get_arch_endianness();
33 
34 float lg_swap_float_values(float *, float *);
35 
36 double lg_swap_double_values(double *x, double *y);
37 
38 int32_t lg_swap_int32_values(int32_t *x, int32_t *y);
39 
40 uint32_t lg_swap_uint32_values(uint32_t *x, uint32_t *y);
41 
42 int16_t lg_swap_int16_values(int16_t *x, int16_t *y);
43 
44 uint16_t lg_swap_uint16_values(uint16_t *x, uint16_t *y);
45 
46 int8_t lg_swap_int8_values(int8_t *x, int8_t *y);
47 
48 uint8_t lg_swap_uint8_values(uint8_t *x, uint8_t *y);
49 
51 
53 
55 
56 void debug_max_int_in_loop(unsigned long, const char *, int);
57 
59 
61 
62 void debug_max_float_in_loop(float, const char *, int);
63 
65 
66 void lg_show_struct_sizes(zboolean);
67 
68 #endif /* LG_MISC_H */
lg_show_pixel_format_info_from_sdl_display_mode
int lg_show_pixel_format_info_from_sdl_display_mode(SDL_DisplayMode *display_mode)
Definition: lg_misc.c:145
lg_swap_double_values
double lg_swap_double_values(double *x, double *y)
Definition: lg_misc.c:223
lg_print_out_error_codes
void lg_print_out_error_codes()
Definition: lg_misc.c:362
lg_tv_diff
float lg_tv_diff(struct timeval *t_diff, struct timeval *t2, struct timeval *t1)
Definition: lg_misc.c:115
lg_get_arch_endianness
lg_endianness lg_get_arch_endianness()
Definition: lg_misc.c:187
lg_show_struct_sizes
void lg_show_struct_sizes(zboolean everything)
Definition: lg_misc.c:482
lg_check_gl_context
int lg_check_gl_context()
Definition: lg_misc.c:379
lg_swap_uint32_values
uint32_t lg_swap_uint32_values(uint32_t *x, uint32_t *y)
Definition: lg_misc.c:253
lg_swap_float_values
float lg_swap_float_values(float *x, float *y)
Definition: lg_misc.c:208
debug_end_max_float_in_loop
void debug_end_max_float_in_loop()
Definition: lg_misc.c:470
lg_swap_uint16_values
uint16_t lg_swap_uint16_values(uint16_t *x, uint16_t *y)
Definition: lg_misc.c:283
lg_swap_int16_values
int16_t lg_swap_int16_values(int16_t *x, int16_t *y)
Definition: lg_misc.c:268
lg_swap_uint8_values
uint8_t lg_swap_uint8_values(uint8_t *x, uint8_t *y)
Definition: lg_misc.c:314
debug_end_max_int_in_loop
void debug_end_max_int_in_loop()
Definition: lg_misc.c:432
lg_swap_int8_values
int8_t lg_swap_int8_values(int8_t *x, int8_t *y)
Definition: lg_misc.c:298
debug_start_max_int_in_loop
void debug_start_max_int_in_loop()
Definition: lg_misc.c:392
check_datatype_sizes
int check_datatype_sizes()
Definition: lg_misc.c:21
debug_max_float_in_loop
void debug_max_float_in_loop(float f, const char *file, int line)
Definition: lg_misc.c:459
debug_start_max_float_in_loop
void debug_start_max_float_in_loop()
Definition: lg_misc.c:445
lg_swap_int32_values
int32_t lg_swap_int32_values(int32_t *x, int32_t *y)
Definition: lg_misc.c:238
debug_max_int_in_loop
void debug_max_int_in_loop(unsigned long i, const char *file, int line)
Definition: lg_misc.c:421