19 #define _ISOC11_SOURCE
22#define LIBGAME_NAME "LibGame"
23#define LIBGAME_V_NUM "0.4.0~beta-20260914"
24#define LIBGAME_COPYRIGHT_STR "Copyright (C) Emmanuel Thomas-Maurin 2012-2026 - All rights reserved"
26#define LIBGAME_WEBSITE "https://www.etmsoftware.com"
27#define LIBGAME_DOWNLOAD_WEBSITE LIBGAME_WEBSITE "/download.php"
28#define LIBGAME_SUPPORT_WEBSITE LIBGAME_WEBSITE "/help.php"
31#if !defined(ANDROID_V) && !defined(WIN32_V)
59 #include <android/log.h>
64 #include <SDL_image.h>
65 #include <SDL_mixer.h>
67 #include <SDL_syswm.h>
69 #include <SDL_mouse.h>
73 #include <SDL2/SDL_image.h>
74 #include <SDL2/SDL_mixer.h>
75 #include <SDL2/SDL_ttf.h>
76 #include <SDL_mouse.h>
77 #include <SDL_syswm.h>
81#include <GLES2/gl2ext.h>
83#include <GLES3/gl3ext.h>
88#define LIBETM_VERBOSE_OUTPUT
92#ifdef LIBETM_DEBUG_OUTPUT
93 #ifndef LIBETM_VERBOSE_OUTPUT
94 #define LIBETM_VERBOSE_OUTPUT
99 #include "../extra_libs/libetm-0.6.0/libetm.h"
102 #include <libetm/libetm.h>
104 #include "../extra_libs/libetm-0.6.0/libetm.h"
110 #define INFO_ERR INFO_ERR2
115#define VERBOSE_OUTPUT
119 #ifndef VERBOSE_OUTPUT
120 #define VERBOSE_OUTPUT
125 #define DEBUG_INFO_OUT(...) \
127 fprintf(STD_OUT, FILE_LINE_FUNC_STR);\
128 INFO_OUT(__VA_ARGS__)\
131 #define DEBUG_INFO_OUT(...) \
135typedef enum {LG_NONE, LG_INFO, LG_VERBOSE, LG_DEBUG} env_logging_level;
137#define TMPSTR_SIZE ((4 * 1024) - 1)
138#define FILE_NAME_MAXLEN ((2 * 1024) - 1)
141#define EXTRA_NEWLINES
143 #define __extra_newline__ INFO_OUT("\n")
145 #define __extra_newline__
148#ifdef LIBGAME_COMPILE_TIME
149 #include "../extra_libs/math_3d.h"
150 #include "../extra_libs/stb_image.h"
151 #include "../extra_libs/ufbx.h"
153 #include <libgame/extra_libs/math_3d.h>
154 #include <libgame/extra_libs/stb_image.h>
155 #include <libgame/extra_libs/ufbx.h>
162#include "lg_shader_progs.h"
163#include "lg_vertex.h"
164#include "lg_vertex_info.h"
165#include "lg_gr_func.h"
166#include "lg_goodies.h"
167#include "lg_textures.h"
168#include "lg_dds_loader.h"
169#include "lg_astc_loader.h"
170#include "lg_string.h"
171#include "lg_sprites.h"
172#include "lg_background.h"
175#include "lg_keyboard.h"
177#include "lg_touchscreen.h"
179#include "lg_dirs_stuff.h"
180#include "lg_quaternions.h"
183#include "lg_3d_primitives.h"
184#include "lg_opengl_2d.h"
186#include "lg_camera.h"
187#include "lg_obj_parser.h"
189#include "lg_scene_graph.h"
191#include "lg_collision_detect.h"
193#include "lg_vao_gl_ext.h"
194#include "lg_cubemap.h"
196#include "lg_file_ops.h"
197#include "lg_android_assets.h"
198#include "lg_render.h"
199#include "lg_terrain.h"
200#include "lg_perlin_noise.h"
201#include "lg_landscape.h"
202#include "lg_fbx_parser.h"
203#include "lg_cam_controls.h"
204#include "lg_part_sys.h"
207#include "lg_mesh_lines.h"
209#include "lg_grid_geom_shader.h"
210#include "lg_android_app_exit.h"
214#include "lg_env_instance.h"
215#include "lg_math_extra.h"
216#include "lg_limits.h"
222 LG_OK = LIBETM_LASTERRORCODE + 1,
225 LG_EXTRA_LIB_INIT_ERROR,
228 LG_CREATE_FILE_ERROR,
231 LG_READ_FROM_FILE_ERROR,
232 LG_WRITE_TO_FILE_ERROR,
233 LG_FILE_ACCESS_ERROR,
234 LG_READ_FROM_FILE_EOF,
241 LG_SIG_END = LG_SIG_START + 100,
242 LG_NODE_IS_NOT_A_LEAF,
247 LG_CONTINUE = LG_LASTERRORCODE + 1,
257#define ALWAYS_VSYNC 1
258#define ADAPTIVE_VSYNC -1
272#define LG_WIN_WIDTH_MIN 800
273#define LG_WIN_HEIGHT_MIN 400
275#define LG_WIN_D_HEIGHT_HACK 2
278#define LG_REQUESTED_RED_SIZE 5
279#define LG_REQUESTED_GREEN_SIZE 6
280#define LG_REQUESTED_BLUE_SIZE 5
281#define LG_REQUESTED_ALPHA_SIZE 0
282#define LG_REQUESTED_DEPTH_SIZE 16
283#define LG_REQUESTED_STENCIL_SIZE 8
285int lg_init(
int,
int,
const char *,
const char *,
const char *,
const char *,
const char *,
const char *,
const char *);
void lg_show_extra_sys_info(SDL_Window *w)
Definition libgame.c:1497
void lg_set_new_viewport(Rec2Di viewport)
Definition libgame.c:962
char * lg_sys_info_to_string()
Definition libgame.c:1350
void lg_show_sys_info()
Definition libgame.c:1231
void lg_disable_mouse()
Definition libgame.c:987
void lg_update_gl_win_title(const char *win_title)
Definition libgame.c:1197
void lg_show_lib_info()
Definition libgame.c:1207
int lg_init(int win_w, int win_h, const char *win_title, const char *app_name, const char *app_cmd, const char *org_name_android, const char *app_name_android, const char *assets_folder, const char *app_wr_folder)
Definition libgame.c:59
void lg_list_opengl_extensions()
Definition libgame.c:995
zboolean sdl2_is_installed()
Definition libgame.c:1550
void lg_enable_mouse()
Definition libgame.c:979
zboolean lg_load_engine_fonts()
Definition libgame.c:1031
void lg_reset_viewport()
Definition libgame.c:970
void lg_swap_fb()
Definition libgame.c:1187
void lg_quit(int exit_code, zboolean call_exit)
Definition libgame.c:1101
Rec2Di lg_get_default_viewport()
Definition libgame.c:952
void lg_engine_fonts_info()
Definition libgame.c:1090
char * lg_get_sdl_win_flags(SDL_Window *w)
Definition libgame.c:1570
Definition lg_gr_func.h:49