load icon from vfs + non-workdir

main
Dominik Madarász 2023-10-13 14:07:53 +02:00
parent c0c72ae39b
commit b043390964
8 changed files with 232 additions and 214 deletions

View File

@ -14028,7 +14028,7 @@ extern "C" {
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Headers // Headers
#line 1 "v4k_config.h" #line 1 "engine/split/v4k_config.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// config directives // config directives
@ -14060,6 +14060,10 @@ extern "C" {
#define ENABLE_TESTS 0 // ifdef(debug, 1, 0) ///+ #define ENABLE_TESTS 0 // ifdef(debug, 1, 0) ///+
#endif #endif
#ifndef ENABLE_RETAIL
#define ENABLE_RETAIL 0
#endif
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// if/n/def hell // if/n/def hell
@ -14362,7 +14366,7 @@ typedef char bool;
#endif #endif
#line 0 #line 0
#line 1 "v4k_ds.h" #line 1 "engine/split/v4k_ds.h"
// data structures and utils: array, set, map, hash, sort. // data structures and utils: array, set, map, hash, sort.
// - rlyeh, public domain // - rlyeh, public domain
@ -14826,7 +14830,7 @@ enum {
#line 0 #line 0
#line 1 "v4k_math.h" #line 1 "engine/split/v4k_math.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// math framework: rand, ease, vec2, vec3, vec4, quat, mat2, mat33, mat34, mat4 // math framework: rand, ease, vec2, vec3, vec4, quat, mat2, mat33, mat34, mat4
// - rlyeh, public domain // - rlyeh, public domain
@ -15186,7 +15190,7 @@ API void swapf4(vec4 *a, vec4 *b);
#line 0 #line 0
#line 1 "v4k_ai.h" #line 1 "engine/split/v4k_ai.h"
typedef enum SWARM_DISTANCE { typedef enum SWARM_DISTANCE {
SWARM_DISTANCE_LINEAR, SWARM_DISTANCE_LINEAR,
SWARM_DISTANCE_INVERSE_LINEAR, SWARM_DISTANCE_INVERSE_LINEAR,
@ -15239,7 +15243,7 @@ API int ui_swarm(swarm_t *self);
API int pathfind_astar(int width, int height, const unsigned* map, vec2i src, vec2i dst, vec2i* path, size_t maxpath); API int pathfind_astar(int width, int height, const unsigned* map, vec2i src, vec2i dst, vec2i* path, size_t maxpath);
#line 0 #line 0
#line 1 "v4k_bt.h" #line 1 "engine/split/v4k_bt.h"
// Behavior trees: decision planning and decision making. // Behavior trees: decision planning and decision making.
// Supersedes finite state-machines (FSM) and hierarchical finite state-machines (HFSM). // Supersedes finite state-machines (FSM) and hierarchical finite state-machines (HFSM).
// - rlyeh, public domain. // - rlyeh, public domain.
@ -15265,7 +15269,7 @@ API char *bt_funcname(bt_func fn);
API int ui_bt(bt_t *b); API int ui_bt(bt_t *b);
#line 0 #line 0
#line 1 "v4k_audio.h" #line 1 "engine/split/v4k_audio.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// audio framework // audio framework
// - rlyeh, public domain // - rlyeh, public domain
@ -15326,7 +15330,7 @@ enum AUDIO_FLAGS {
API int audio_queue( const void *samples, int num_samples, int flags ); API int audio_queue( const void *samples, int num_samples, int flags );
#line 0 #line 0
#line 1 "v4k_buffer.h" #line 1 "engine/split/v4k_buffer.h"
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// compression api // compression api
@ -15424,7 +15428,7 @@ API uint64_t crc64(uint64_t h, const void *ptr, uint64_t len);
API void entropy( void *buf, unsigned n ); API void entropy( void *buf, unsigned n );
#line 0 #line 0
#line 1 "v4k_collide.h" #line 1 "engine/split/v4k_collide.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// original code by @vurtun (PD) and @barerose (CC0). // original code by @vurtun (PD) and @barerose (CC0).
// [src] https://gist.github.com/vurtun/95f088e4889da2474ad1ce82d7911fee // [src] https://gist.github.com/vurtun/95f088e4889da2474ad1ce82d7911fee
@ -15585,7 +15589,7 @@ API poly diamond(vec3 from, vec3 to, float size); // poly_free() required
API void collide_demo(); // debug draw collisions API void collide_demo(); // debug draw collisions
#line 0 #line 0
#line 1 "v4k_cooker.h" #line 1 "engine/split/v4k_cooker.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// asset pipeline framework // asset pipeline framework
// - rlyeh, public domain. // - rlyeh, public domain.
@ -15620,7 +15624,7 @@ API int cook_progress(); // [0..100]
#line 0 #line 0
#line 1 "v4k_data.h" #line 1 "engine/split/v4k_data.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// data framework (json5, xml, compression) @todo:kvdb // data framework (json5, xml, compression) @todo:kvdb
// - rlyeh, public domain // - rlyeh, public domain
@ -15659,7 +15663,7 @@ API void xml_pop();
API bool data_tests(); API bool data_tests();
#line 0 #line 0
#line 1 "v4k_dll.h" #line 1 "engine/split/v4k_dll.h"
// dll utils // dll utils
// - rlyeh, public domain // - rlyeh, public domain
@ -15674,7 +15678,7 @@ API bool data_tests();
API void* dll(const char *filename, const char *symbol); API void* dll(const char *filename, const char *symbol);
#line 0 #line 0
#line 1 "v4k_editor.h" #line 1 "engine/split/v4k_editor.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// in-game editor // in-game editor
// - rlyeh, public domain. // - rlyeh, public domain.
@ -15719,7 +15723,7 @@ API char* kit_translate2( const char *id, const char *langcode_iso639_1 ); // pe
API void kit_dump_state( FILE *fp ); API void kit_dump_state( FILE *fp );
#line 0 #line 0
#line 1 "v4k_file.h" #line 1 "engine/split/v4k_file.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// files, cache and virtual filesystem (registered directories and/or compressed zip archives). // files, cache and virtual filesystem (registered directories and/or compressed zip archives).
// - rlyeh, public domain. // - rlyeh, public domain.
@ -15819,7 +15823,7 @@ API void ini_destroy(ini_t);
API bool ini_write(const char *filename, const char *section, const char *key, const char *value); API bool ini_write(const char *filename, const char *section, const char *key, const char *value);
#line 0 #line 0
#line 1 "v4k_font.h" #line 1 "engine/split/v4k_font.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// font framework // font framework
// - rlyeh, public domain // - rlyeh, public domain
@ -15911,7 +15915,7 @@ API void* font_colorize(const char *text, const char *comma_types, const char *c
API vec2 font_highlight(const char *text, const void *colors); API vec2 font_highlight(const char *text, const void *colors);
#line 0 #line 0
#line 1 "v4k_id.h" #line 1 "engine/split/v4k_id.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// factory of handle ids, based on code by randy gaul (PD/Zlib licensed) // factory of handle ids, based on code by randy gaul (PD/Zlib licensed)
// - rlyeh, public domain // - rlyeh, public domain
@ -15940,7 +15944,7 @@ bool id_valid(uintptr_t id);
#define ID_DATA_BITS (64-ID_COUNT_BITS) #define ID_DATA_BITS (64-ID_COUNT_BITS)
#line 0 #line 0
#line 1 "v4k_pack.h" #line 1 "engine/split/v4k_pack.h"
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// endianness // endianness
@ -16131,7 +16135,7 @@ API int loadf(FILE *file, const char *format, ...);
API int loadb(const unsigned char *buf, const char *format, ...); API int loadb(const unsigned char *buf, const char *format, ...);
#line 0 #line 0
#line 1 "v4k_input.h" #line 1 "engine/split/v4k_input.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// input framework // input framework
// - rlyeh, public domain // - rlyeh, public domain
@ -16251,7 +16255,7 @@ enum INPUT_ENUMS {
}; };
#line 0 #line 0
#line 1 "v4k_memory.h" #line 1 "engine/split/v4k_memory.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// memory framework // memory framework
// - rlyeh, public domain // - rlyeh, public domain
@ -16291,7 +16295,7 @@ static FORCE_INLINE void *(CALLOC_)(size_t m, size_t n) { return n *= m, memset(
static FORCE_INLINE char *(STRDUP_)(const char *s) { size_t n = strlen(s)+1; return ((char*)memcpy(REALLOC(0,n), s, n)); } ///- static FORCE_INLINE char *(STRDUP_)(const char *s) { size_t n = strlen(s)+1; return ((char*)memcpy(REALLOC(0,n), s, n)); } ///-
#line 0 #line 0
#line 1 "v4k_network.h" #line 1 "engine/split/v4k_network.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// network framework // network framework
// - rlyeh, public domain // - rlyeh, public domain
@ -16343,7 +16347,7 @@ API int tcp_debug(int); // toggle traffic monitoring on/off for given socket
//API int tcp_crypt(int,uint64_t); // set shared secret //API int tcp_crypt(int,uint64_t); // set shared secret
#line 0 #line 0
#line 1 "v4k_netsync.h" #line 1 "engine/split/v4k_netsync.h"
// high-level, socket-less networking api. inspired by Quake, MPI and RenderBuckets theories. // high-level, socket-less networking api. inspired by Quake, MPI and RenderBuckets theories.
// - rlyeh, public domain // - rlyeh, public domain
// //
@ -16429,7 +16433,7 @@ API int64_t client_join(const char *ip, int port);
#define LOCALHOST_IPV6 "::1" #define LOCALHOST_IPV6 "::1"
#line 0 #line 0
#line 1 "v4k_obj.h" #line 1 "engine/split/v4k_obj.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// semantic versioning in a single byte (octal) // semantic versioning in a single byte (octal)
// - rlyeh, public domain. // - rlyeh, public domain.
@ -16489,7 +16493,7 @@ typedef struct double4 { double x,y,z,w; } double4;
#define double4(x,y,z,w) M_CAST(double4, (double)(x), (double)(y), (double)(z), (double)(w) ) #define double4(x,y,z,w) M_CAST(double4, (double)(x), (double)(y), (double)(z), (double)(w) )
#line 0 #line 0
#line 1 "v4k_profile.h" #line 1 "engine/split/v4k_profile.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// profiler & stats (@fixme: threadsafe) // profiler & stats (@fixme: threadsafe)
@ -16521,7 +16525,7 @@ extern API int profiler_enabled; ///-
#endif #endif
#line 0 #line 0
#line 1 "v4k_reflect.h" #line 1 "engine/split/v4k_reflect.h"
// C reflection: enums, functions, structs, members and anotations. // C reflection: enums, functions, structs, members and anotations.
// - rlyeh, public domain // - rlyeh, public domain
// //
@ -16583,7 +16587,7 @@ API void reflected_printf(reflected_t *r);
API void reflected_printf_all(); API void reflected_printf_all();
#line 0 #line 0
#line 1 "v4k_render.h" #line 1 "engine/split/v4k_render.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// naive rendering framework // naive rendering framework
// - rlyeh, public domain // - rlyeh, public domain
@ -17285,7 +17289,7 @@ API void* screenshot(int components); // 3 RGB, 4 RGBA, -3 BGR, -4 BGRA
API void* screenshot_async(int components); // 3 RGB, 4 RGBA, -3 BGR, -4 BGRA API void* screenshot_async(int components); // 3 RGB, 4 RGBA, -3 BGR, -4 BGRA
#line 0 #line 0
#line 1 "v4k_renderdd.h" #line 1 "engine/split/v4k_renderdd.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// debugdraw framework // debugdraw framework
// - rlyeh, public domain. // - rlyeh, public domain.
@ -17352,7 +17356,7 @@ API void ddraw_flush();
API void ddraw_flush_projview(mat44 proj, mat44 view); API void ddraw_flush_projview(mat44 proj, mat44 view);
#line 0 #line 0
#line 1 "v4k_scene.h" #line 1 "engine/split/v4k_scene.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// scene framework // scene framework
// - rlyeh, public domain // - rlyeh, public domain
@ -17489,7 +17493,7 @@ API unsigned scene_count_light();
API light_t* scene_index_light(unsigned index); API light_t* scene_index_light(unsigned index);
#line 0 #line 0
#line 1 "v4k_script.h" #line 1 "engine/split/v4k_script.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// script framework // script framework
// - rlyeh, public domain // - rlyeh, public domain
@ -17505,7 +17509,7 @@ API void script_call(const char *lua_function);
API bool script_tests(); API bool script_tests();
#line 0 #line 0
#line 1 "v4k_string.h" #line 1 "engine/split/v4k_string.h"
// string framework // string framework
// - rlyeh, public domain // - rlyeh, public domain
@ -17599,7 +17603,7 @@ unsigned quark_intern( quarks_db*, const char *string );
const char *quark_string( quarks_db*, unsigned key ); const char *quark_string( quarks_db*, unsigned key );
#line 0 #line 0
#line 1 "v4k_time.h" #line 1 "engine/split/v4k_time.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// time framework utils // time framework utils
// - rlyeh, public domain. // - rlyeh, public domain.
@ -17646,7 +17650,7 @@ AUTORUN {
*/ */
#line 0 #line 0
#line 1 "v4k_system.h" #line 1 "engine/split/v4k_system.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// system framework utils // system framework utils
// - rlyeh, public domain. // - rlyeh, public domain.
@ -17727,7 +17731,7 @@ API int (test)(const char *file, int line, const char *expr, bool result);
#line 0 #line 0
#line 1 "v4k_ui.h" #line 1 "engine/split/v4k_ui.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// immediate ui framework // immediate ui framework
// - rlyeh, public domain // - rlyeh, public domain
@ -17817,7 +17821,7 @@ API int ui_active(); // ui_is_active()?
API int ui_demo(int do_windows); API int ui_demo(int do_windows);
#line 0 #line 0
#line 1 "v4k_video.h" #line 1 "engine/split/v4k_video.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// video decoder (mpeg) // video decoder (mpeg)
// - rlyeh, public domain // - rlyeh, public domain
@ -17860,7 +17864,7 @@ API bool record_active();
API void record_stop(void); API void record_stop(void);
#line 0 #line 0
#line 1 "v4k_window.h" #line 1 "engine/split/v4k_window.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// window framework // window framework
// - rlyeh, public domain // - rlyeh, public domain
@ -17993,7 +17997,7 @@ API void window_cursor_shape(unsigned shape);
#define GLAD_GL_IMPLEMENTATION // glad #define GLAD_GL_IMPLEMENTATION // glad
#endif #endif
#line 1 "3rd_glad.h" #line 1 "engine/split/3rd_glad.h"
#ifndef __EMSCRIPTEN__ #ifndef __EMSCRIPTEN__
#ifndef _GNU_SOURCE // juicy linux headers #ifndef _GNU_SOURCE // juicy linux headers
@ -29675,7 +29679,7 @@ int gladLoadGL( GLADloadfunc load) {
#endif /* __EMSCRIPTEN__ */ #endif /* __EMSCRIPTEN__ */
#line 0 #line 0
#line 1 "3rd_icon_md.h" #line 1 "engine/split/3rd_icon_md.h"
// Generated by https://github.com/juliettef/IconFontCppHeaders script GenerateIconFontCppHeaders.py for languages C and C++ // Generated by https://github.com/juliettef/IconFontCppHeaders script GenerateIconFontCppHeaders.py for languages C and C++
// from https://github.com/google/material-design-icons/raw/master/font/MaterialIcons-Regular.codepoints // from https://github.com/google/material-design-icons/raw/master/font/MaterialIcons-Regular.codepoints
// for use with https://github.com/google/material-design-icons/blob/master/font/MaterialIcons-Regular.ttf // for use with https://github.com/google/material-design-icons/blob/master/font/MaterialIcons-Regular.ttf
@ -32017,7 +32021,7 @@ errno_t fopen_s(
//--- //---
#line 1 "3rd_glfw3.h" #line 1 "engine/split/3rd_glfw3.h"
#ifndef __EMSCRIPTEN__ #ifndef __EMSCRIPTEN__
// forked from https://github.com/SasLuca/glfw-single-header (CC0-1.0 licensed) // forked from https://github.com/SasLuca/glfw-single-header (CC0-1.0 licensed)
@ -71214,7 +71218,7 @@ uint32_t _glfwKeySym2Unicode(unsigned int keysym)
#line 0 #line 0
#undef timeGetTime #undef timeGetTime
//--- //---
#line 1 "3rd_swrap.h" #line 1 "engine/split/3rd_swrap.h"
// https://github.com/BareRose/swrap/blob/master/swrap.h // https://github.com/BareRose/swrap/blob/master/swrap.h
/* /*
@ -71507,7 +71511,7 @@ SWDEF int swrapMultiSelect (int* socks, size_t socks_size, double timeout) {
#endif //SWRAP_H #endif //SWRAP_H
#line 0 #line 0
//--- //---
#line 1 "3rd_jo_mp1.h" #line 1 "engine/split/3rd_jo_mp1.h"
/* public domain Simple, Minimalistic MPEG Layer 1 decoder - http://jonolick.com /* public domain Simple, Minimalistic MPEG Layer 1 decoder - http://jonolick.com
* *
* Revision History: * Revision History:
@ -71918,7 +71922,7 @@ bool jo_read_mp1(const void *input, int inputSize, short **output_, int *outputS
#line 0 #line 0
#define get_bits stb_vorbis_get_bits #define get_bits stb_vorbis_get_bits
#define error stb_vorbis_error #define error stb_vorbis_error
#line 1 "3rd_stb_vorbis.h" #line 1 "engine/split/3rd_stb_vorbis.h"
// Ogg Vorbis audio decoder - v1.19 - public domain // Ogg Vorbis audio decoder - v1.19 - public domain
// http://nothings.org/stb_vorbis/ // http://nothings.org/stb_vorbis/
// //
@ -77479,7 +77483,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#line 0 #line 0
#undef error #undef error
#undef DEBUG #undef DEBUG
#line 1 "3rd_sts_mixer.h" #line 1 "engine/split/3rd_sts_mixer.h"
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// sts_mixer.h - v0.02 // sts_mixer.h - v0.02
// written 2016 by Sebastian Steinhauer // written 2016 by Sebastian Steinhauer
@ -77992,7 +77996,7 @@ int main(int argc, char *argv[]) {
For more information, please refer to <http://unlicense.org/> For more information, please refer to <http://unlicense.org/>
*/ */
#line 0 #line 0
#line 1 "3rd_miniaudio.h" #line 1 "engine/split/3rd_miniaudio.h"
/* /*
Audio playback and capture library. Choice of public domain or MIT-0. See license statements at the end of this file. Audio playback and capture library. Choice of public domain or MIT-0. See license statements at the end of this file.
miniaudio - v0.11.18 - 2023-08-07 miniaudio - v0.11.18 - 2023-08-07
@ -170537,7 +170541,7 @@ SOFTWARE.
#undef R #undef R
#define error l_error #define error l_error
#define panic l_panic #define panic l_panic
#line 1 "3rd_lua.h" #line 1 "engine/split/3rd_lua.h"
/* /*
minilua.h -- Lua in a single header minilua.h -- Lua in a single header
Project URL: https://github.com/edubart/minilua Project URL: https://github.com/edubart/minilua
@ -199515,7 +199519,7 @@ int main (int argc, char **argv) {
#undef cast #undef cast
#undef G #undef G
//--- //---
#line 1 "3rd_stb_image.h" #line 1 "engine/split/3rd_stb_image.h"
/* stb_image - v2.26 - public domain image loader - http://nothings.org/stb /* stb_image - v2.26 - public domain image loader - http://nothings.org/stb
no warranty implied; use at your own risk no warranty implied; use at your own risk
@ -207279,7 +207283,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
*/ */
#line 0 #line 0
#line 1 "3rd_stb_image_write.h" #line 1 "engine/split/3rd_stb_image_write.h"
/* stb_image_write - v1.15 - public domain - http://nothings.org/stb /* stb_image_write - v1.15 - public domain - http://nothings.org/stb
writes out PNG/BMP/TGA/JPEG/HDR images to C stdio - Sean Barrett 2010-2015 writes out PNG/BMP/TGA/JPEG/HDR images to C stdio - Sean Barrett 2010-2015
no warranty implied; use at your own risk no warranty implied; use at your own risk
@ -208977,7 +208981,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define STBTT_free(x,u) ((void)(u),FREE(x)) #define STBTT_free(x,u) ((void)(u),FREE(x))
#define NK_ASSERT ASSERT #define NK_ASSERT ASSERT
#define NK_DTOA(s,n) strcpy(s, va("%f", n)) // override cos built-in nk_dtoa() will freeze while parsing UINT_MAX otherwise #define NK_DTOA(s,n) strcpy(s, va("%f", n)) // override cos built-in nk_dtoa() will freeze while parsing UINT_MAX otherwise
#line 1 "3rd_nuklear.h" #line 1 "engine/split/3rd_nuklear.h"
/* /*
/// # Nuklear /// # Nuklear
/// ![](https://cloud.githubusercontent.com/assets/8057201/11761525/ae06f0ca-a0c6-11e5-819d-5610b25f6ef4.gif) /// ![](https://cloud.githubusercontent.com/assets/8057201/11761525/ae06f0ca-a0c6-11e5-819d-5610b25f6ef4.gif)
@ -239338,7 +239342,7 @@ nk_tooltipfv(struct nk_context *ctx, const char *fmt, va_list args)
/// for his single header file packer. /// for his single header file packer.
*/ */
#line 0 #line 0
#line 1 "3rd_nuklear_glfw_gl3.h" #line 1 "engine/split/3rd_nuklear_glfw_gl3.h"
/* /*
* Nuklear - 1.32.0 - public domain * Nuklear - 1.32.0 - public domain
@ -239889,7 +239893,7 @@ void nk_glfw3_shutdown(struct nk_glfw* glfw)
#endif #endif
#endif #endif
#line 0 #line 0
#line 1 "3rd_nuklear_filebrowser.h" #line 1 "engine/split/3rd_nuklear_filebrowser.h"
// file browser for nuklear, based on https://github.com/vurtun/nuklear/blob/master/example/file_browser.c (public domain) // file browser for nuklear, based on https://github.com/vurtun/nuklear/blob/master/example/file_browser.c (public domain)
// - rlyeh, public domain // - rlyeh, public domain
// //
@ -240300,7 +240304,7 @@ static struct nk_image icon_load_rect(unsigned id, unsigned w, unsigned h, unsig
//#include "3rd_assimp/postprocess.h" //#include "3rd_assimp/postprocess.h"
//#pragma comment(lib, "3rd/3rd_assimp/x64/assimp") //#pragma comment(lib, "3rd/3rd_assimp/x64/assimp")
#endif #endif
#line 1 "3rd_json5.h" #line 1 "engine/split/3rd_json5.h"
// JSON5 + SJSON parser module // JSON5 + SJSON parser module
// //
// License: // License:
@ -240740,7 +240744,7 @@ int main() {
#endif // JSON5_C #endif // JSON5_C
#line 0 #line 0
#line 1 "3rd_gjk.h" #line 1 "engine/split/3rd_gjk.h"
// GJK distance algorithm. original code by @vurtun and @randygaul, public domain. // GJK distance algorithm. original code by @vurtun and @randygaul, public domain.
// [src] https://gist.github.com/vurtun/29727217c269a2fbf4c0ed9a1d11cb40 // [src] https://gist.github.com/vurtun/29727217c269a2fbf4c0ed9a1d11cb40
// - rlyeh, public domain. // - rlyeh, public domain.
@ -241349,7 +241353,7 @@ gjk_result gjk_quad(float a_radius, float b_radius) {
#endif #endif
#line 0 #line 0
#line 1 "3rd_compress.h" #line 1 "engine/split/3rd_compress.h"
// compress.c de/compressors into a single-file header // compress.c de/compressors into a single-file header
// - rlyeh, public domain // - rlyeh, public domain
// //
@ -252198,7 +252202,7 @@ unsigned file_decode(FILE* in, FILE* out, FILE *logfile) { // multi decoder
#endif // COMPRESS_C #endif // COMPRESS_C
#line 0 #line 0
#line 1 "3rd_archive.h" #line 1 "engine/split/3rd_archive.h"
// archive.c pak/zip/tar/dir archivers // archive.c pak/zip/tar/dir archivers
// - rlyeh, public domain // - rlyeh, public domain
@ -253802,7 +253806,7 @@ int main( int argc, char **argv ) {
#if is(win32) #if is(win32)
#include <mmsystem.h> // timeapi.h #include <mmsystem.h> // timeapi.h
#endif #endif
#line 1 "3rd_thread.h" #line 1 "engine/split/3rd_thread.h"
/* /*
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
Licensing information can be found at the end of the file. Licensing information can be found at the end of the file.
@ -255532,7 +255536,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
*/ */
#line 0 #line 0
#line 1 "3rd_plmpeg.h" #line 1 "engine/split/3rd_plmpeg.h"
/* /*
PL_MPEG - MPEG1 Video decoder, MP2 Audio decoder, MPEG-PS demuxer PL_MPEG - MPEG1 Video decoder, MP2 Audio decoder, MPEG-PS demuxer
@ -259798,7 +259802,7 @@ void plm_audio_matrix_transform(int s[32][3], int ss, float *d, int dp) {
#endif // PL_MPEG_IMPLEMENTATION #endif // PL_MPEG_IMPLEMENTATION
#line 0 #line 0
#line 1 "3rd_jo_mpeg.h" #line 1 "engine/split/3rd_jo_mpeg.h"
/* public domain Simple, Minimalistic, No Allocations MPEG writer - http://jonolick.com /* public domain Simple, Minimalistic, No Allocations MPEG writer - http://jonolick.com
* *
* Latest revisions: * Latest revisions:
@ -260065,7 +260069,7 @@ void jo_write_mpeg(FILE *fp, const unsigned char *bgrx, int width, int height, i
#endif #endif
#line 0 #line 0
//#define _RTL_RUN_ONCE _RTL_RUN_ONCE2 // __MINGW64__ //#define _RTL_RUN_ONCE _RTL_RUN_ONCE2 // __MINGW64__
#line 1 "3rd_https.h" #line 1 "engine/split/3rd_https.h"
/* /*
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
Licensing information can be found at the end of the file. Licensing information can be found at the end of the file.
@ -307048,7 +307052,7 @@ int main() {
#line 0 #line 0
#undef F2 #undef F2
#undef F3 #undef F3
#line 1 "3rd_enet.h" #line 1 "engine/split/3rd_enet.h"
/** /**
* include/enet.h - a Single-Header auto-generated variant of enet.h library. * include/enet.h - a Single-Header auto-generated variant of enet.h library.
* *
@ -313189,7 +313193,7 @@ extern "C" {
#endif // ENET_INCLUDE_H #endif // ENET_INCLUDE_H
#line 0 #line 0
#define tls_init tls_init2 #define tls_init tls_init2
#line 1 "3rd_bq_websocket.h" #line 1 "engine/split/3rd_bq_websocket.h"
/* /*
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
This software is available under 2 licenses -- choose whichever you prefer. This software is available under 2 licenses -- choose whichever you prefer.
@ -319552,7 +319556,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#endif // BQ_PLATFORM_IMPLEMENTATION #endif // BQ_PLATFORM_IMPLEMENTATION
#line 0 #line 0
#line 1 "3rd_simplex.h" #line 1 "engine/split/3rd_simplex.h"
/** 1D, 2D, 3D and 4D float Perlin Simplex noise */ /** 1D, 2D, 3D and 4D float Perlin Simplex noise */
/** Original code, stefan gustavson (PD). */ /** Original code, stefan gustavson (PD). */
@ -320035,7 +320039,7 @@ float snoise4(float x, float y, float z, float w) {
#endif #endif
#line 0 #line 0
#line 1 "3rd_tfd.h" #line 1 "engine/split/3rd_tfd.h"
/* If you are using a C++ compiler to compile tinyfiledialogs.c (maybe renamed with an extension ".cpp") /* If you are using a C++ compiler to compile tinyfiledialogs.c (maybe renamed with an extension ".cpp")
then comment out << extern "C" >> bellow in this header file) */ then comment out << extern "C" >> bellow in this header file) */
@ -328095,7 +328099,7 @@ tinyfd_messageBox("The selected hexcolor is",
#endif // TFD_IMPLEMENTATION #endif // TFD_IMPLEMENTATION
#line 0 #line 0
#line 1 "3rd_stb_sprintf.h" #line 1 "engine/split/3rd_stb_sprintf.h"
// stb_sprintf - v1.10 - public domain snprintf() implementation // stb_sprintf - v1.10 - public domain snprintf() implementation
// originally by Jeff Roberts / RAD Game Tools, 2015/10/20 // originally by Jeff Roberts / RAD Game Tools, 2015/10/20
// http://github.com/nothings/stb // http://github.com/nothings/stb
@ -330004,7 +330008,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/ */
#line 0 #line 0
#define g g2 #define g g2
#line 1 "3rd_xml.h" #line 1 "engine/split/3rd_xml.h"
// original xml.h/xml.c files by tor andersson, public domain // original xml.h/xml.c files by tor andersson, public domain
#ifndef xml_h #ifndef xml_h
@ -330535,7 +330539,7 @@ struct xml *xml_parse(char *s, int preserve_white, char **errorp)
#endif #endif
#line 0 #line 0
#undef g #undef g
#line 1 "3rd_polychop.h" #line 1 "engine/split/3rd_polychop.h"
/* Progressive Mesh type Polygon Reduction Algorithm /* Progressive Mesh type Polygon Reduction Algorithm
* *
* 1998: Original version by Stan Melax (c) 1998 * 1998: Original version by Stan Melax (c) 1998
@ -331067,7 +331071,7 @@ for( int lock_ = (thread_mutex_lock( mutexptr ), 1); lock_; lock_ = (thread_mute
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// C files // C files
#line 1 "v4k_ds.c" #line 1 "engine/split/v4k_ds.c"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// sort/less // sort/less
@ -331476,7 +331480,7 @@ char *cc8str(uint64_t x) {
#line 0 #line 0
#line 1 "v4k_string.c" #line 1 "engine/split/v4k_string.c"
#include <stdarg.h> #include <stdarg.h>
char* tempvl(const char *fmt, va_list vl) { char* tempvl(const char *fmt, va_list vl) {
@ -331897,7 +331901,7 @@ AUTORUN {
#endif #endif
#line 0 #line 0
#line 1 "v4k_compat.c" #line 1 "engine/split/v4k_compat.c"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// compat (unix & stdio.h) // compat (unix & stdio.h)
@ -332014,7 +332018,7 @@ static void v4k_pre_init();
static void v4k_post_init(float); static void v4k_post_init(float);
#line 0 #line 0
#line 1 "v4k_audio.c" #line 1 "engine/split/v4k_audio.c"
// @fixme: really shutdown audio & related threads before quitting. ma_dr_wav crashes. // @fixme: really shutdown audio & related threads before quitting. ma_dr_wav crashes.
@ -332607,7 +332611,7 @@ int ui_audio() {
} }
#line 0 #line 0
#line 1 "v4k_buffer.c" #line 1 "engine/split/v4k_buffer.c"
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// compression api // compression api
@ -333363,7 +333367,7 @@ AUTORUN {
#endif #endif
#line 0 #line 0
#line 1 "v4k_collide.c" #line 1 "engine/split/v4k_collide.c"
/* poly */ /* poly */
poly poly_alloc(int cnt) { poly poly_alloc(int cnt) {
poly p = {0}; poly p = {0};
@ -334791,7 +334795,7 @@ void collide_demo() { // debug draw collisions // @fixme: fix leaks: poly_free()
} }
#line 0 #line 0
#line 1 "v4k_cooker.c" #line 1 "engine/split/v4k_cooker.c"
// data pipeline // data pipeline
// - rlyeh, public domain. // - rlyeh, public domain.
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@ -335608,7 +335612,7 @@ void cook_config( const char *pathfile_to_cook_ini ) { // @todo: test run-from-"
} }
#line 0 #line 0
#line 1 "v4k_data.c" #line 1 "engine/split/v4k_data.c"
static static
array(char) base64__decode(const char *in_, unsigned inlen) { array(char) base64__decode(const char *in_, unsigned inlen) {
@ -335911,7 +335915,7 @@ bool data_tests() {
} }
#line 0 #line 0
#line 1 "v4k_dll.c" #line 1 "engine/split/v4k_dll.c"
#if is(win32) #if is(win32)
# include <winsock2.h> # include <winsock2.h>
# define dlopen(name,mode) (void*)( (name) ? LoadLibraryA(name) : GetModuleHandle(NULL)) # define dlopen(name,mode) (void*)( (name) ? LoadLibraryA(name) : GetModuleHandle(NULL))
@ -335943,7 +335947,7 @@ int main() { int (*adder)() = dll("demo.dll", "add2"); printf("%d\n", adder(2,3)
#endif #endif
#line 0 #line 0
#line 1 "v4k_file.c" #line 1 "engine/split/v4k_file.c"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// file // file
@ -337083,7 +337087,7 @@ bool ini_write(const char *filename, const char *section, const char *key, const
#line 0 #line 0
#line 1 "v4k_font.c" #line 1 "engine/split/v4k_font.c"
// font framework. original code by Vassvik (UNLICENSED) // font framework. original code by Vassvik (UNLICENSED)
// - rlyeh, public domain. // - rlyeh, public domain.
// //
@ -339433,7 +339437,7 @@ vec2 font_rect(const char *str) {
} }
#line 0 #line 0
#line 1 "v4k_input.c" #line 1 "engine/split/v4k_input.c"
// input framework // input framework
// - rlyeh, public domain // - rlyeh, public domain
// //
@ -340166,7 +340170,7 @@ int ui_gamepads() {
} }
#line 0 #line 0
#line 1 "v4k_math.c" #line 1 "engine/split/v4k_math.c"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// math framework: rand, ease, vec2, vec3, vec4, quat, mat2, mat33, mat34, mat4 // math framework: rand, ease, vec2, vec3, vec4, quat, mat2, mat33, mat34, mat4
// - rlyeh, public domain // - rlyeh, public domain
@ -341172,7 +341176,7 @@ void print34( float *m ) { print_(m,3,4); }
void print44( float *m ) { print_(m,4,4); } void print44( float *m ) { print_(m,4,4); }
#line 0 #line 0
#line 1 "v4k_memory.c" #line 1 "engine/split/v4k_memory.c"
size_t dlmalloc_usable_size(void*); // __ANDROID_API__ size_t dlmalloc_usable_size(void*); // __ANDROID_API__
#if is(bsd) || is(osx) // bsd or osx #if is(bsd) || is(osx) // bsd or osx
@ -341270,7 +341274,7 @@ void* forget( void *ptr ) {
} }
#line 0 #line 0
#line 1 "v4k_network.c" #line 1 "engine/split/v4k_network.c"
#if is(tcc) && is(win32) // @fixme: https lib is broken with tcc. replaced with InternetReadFile() api for now #if is(tcc) && is(win32) // @fixme: https lib is broken with tcc. replaced with InternetReadFile() api for now
@ -341580,7 +341584,7 @@ static void network_init() {
} }
#line 0 #line 0
#line 1 "v4k_netsync.c" #line 1 "engine/split/v4k_netsync.c"
typedef void* (*rpc_function)(); typedef void* (*rpc_function)();
typedef struct rpc_call { typedef struct rpc_call {
@ -342266,7 +342270,7 @@ void network_rpc_send(unsigned id, const char *cmdline) {
} }
#line 0 #line 0
#line 1 "v4k_pack.c" #line 1 "engine/split/v4k_pack.c"
// endianness ----------------------------------------------------------------- // endianness -----------------------------------------------------------------
// - rlyeh, public domain // - rlyeh, public domain
@ -343726,7 +343730,7 @@ AUTORUN {
#endif #endif
#line 0 #line 0
#line 1 "v4k_reflect.c" #line 1 "engine/split/v4k_reflect.c"
// C reflection: enums, functions, structs, members and anotations. // C reflection: enums, functions, structs, members and anotations.
// - rlyeh, public domain // - rlyeh, public domain
// //
@ -343838,7 +343842,7 @@ AUTOTEST {
} }
#line 0 #line 0
#line 1 "v4k_render.c" #line 1 "engine/split/v4k_render.c"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// opengl // opengl
@ -348606,7 +348610,7 @@ anims_t animations(const char *pathfile, int flags) {
} }
#line 0 #line 0
#line 1 "v4k_renderdd.c" #line 1 "engine/split/v4k_renderdd.c"
static const char *dd_vs = "//" FILELINE "\n" static const char *dd_vs = "//" FILELINE "\n"
"in vec3 att_position;\n" "in vec3 att_position;\n"
"uniform mat4 u_MVP;\n" "uniform mat4 u_MVP;\n"
@ -349454,7 +349458,7 @@ void ddraw_demo() {
} }
#line 0 #line 0
#line 1 "v4k_scene.c" #line 1 "engine/split/v4k_scene.c"
// //
// @todo: remove explicit GL code from here // @todo: remove explicit GL code from here
@ -350026,7 +350030,7 @@ void scene_render(int flags) {
} }
#line 0 #line 0
#line 1 "v4k_script.c" #line 1 "engine/split/v4k_script.c"
typedef lua_State lua; typedef lua_State lua;
// the Lua interpreter // the Lua interpreter
@ -350207,7 +350211,7 @@ bool script_tests() {
#undef XMACRO #undef XMACRO
#line 0 #line 0
#line 1 "v4k_time.c" #line 1 "engine/split/v4k_time.c"
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// time // time
@ -350458,7 +350462,7 @@ guid guid_create() {
} }
#line 0 #line 0
#line 1 "v4k_system.c" #line 1 "engine/split/v4k_system.c"
#if (is(tcc) && is(linux)) || (is(gcc) && !is(mingw)) // || is(clang) #if (is(tcc) && is(linux)) || (is(gcc) && !is(mingw)) // || is(clang)
int __argc; char **__argv; int __argc; char **__argv;
#if !is(ems) #if !is(ems)
@ -351343,7 +351347,7 @@ int (test)(const char *file, int line, const char *expr, bool result) {
} }
#line 0 #line 0
#line 1 "v4k_id.c" #line 1 "engine/split/v4k_id.c"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// factory of handle ids, based on code by randy gaul (PD/Zlib licensed) // factory of handle ids, based on code by randy gaul (PD/Zlib licensed)
// - rlyeh, public domain // - rlyeh, public domain
@ -351513,7 +351517,7 @@ bool id_valid(uintptr_t id) {
} }
#line 0 #line 0
#line 1 "v4k_ui.c" #line 1 "engine/split/v4k_ui.c"
#ifndef UI_ICONS_SMALL #ifndef UI_ICONS_SMALL
//#define UI_ICONS_SMALL 1 //#define UI_ICONS_SMALL 1
@ -353978,7 +353982,7 @@ int ui_demo(int do_windows) {
} }
#line 0 #line 0
#line 1 "v4k_profile.c" #line 1 "engine/split/v4k_profile.c"
#if ENABLE_PROFILER #if ENABLE_PROFILER
profiler_t profiler; profiler_t profiler;
int profiler_enabled = 1; int profiler_enabled = 1;
@ -354034,7 +354038,7 @@ void (ui_profiler)() {
#endif #endif
#line 0 #line 0
#line 1 "v4k_video.c" #line 1 "engine/split/v4k_video.c"
// tip: convert video to x265/mp4. note: higher crf to increase compression (default crf is 28) // tip: convert video to x265/mp4. note: higher crf to increase compression (default crf is 28)
// ffmpeg -i {{infile}} -c:v libx265 -crf 24 -c:a copy {{outfile}} // ffmpeg -i {{infile}} -c:v libx265 -crf 24 -c:a copy {{outfile}}
@ -354266,7 +354270,7 @@ void record_frame() {
} }
#line 0 #line 0
#line 1 "v4k_window.c" #line 1 "engine/split/v4k_window.c"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// fps locking // fps locking
@ -355252,9 +355256,9 @@ void window_color(unsigned color) {
winbgcolor = vec4(r / 255.0, g / 255.0, b / 255.0, a / 255.0); winbgcolor = vec4(r / 255.0, g / 255.0, b / 255.0, a / 255.0);
} }
void window_icon(const char *file_icon) { void window_icon(const char *file_icon) {
unsigned len = file_size(file_icon); // len = len ? len : vfs_size(file_icon); // @fixme: reenable this to allow icons to be put in cooked .zipfiles unsigned len = file_size(file_icon); len = len ? len : vfs_size(file_icon); // @fixme: reenable this to allow icons to be put in cooked .zipfiles
if( len ) { if( len ) {
void *data = file_read(file_icon); // data = data ? data : vfs_read(file_icon); // @fixme: reenable this to allow icons to be put in cooked .zipfiles void *data = file_read(file_icon); data = data ? data : vfs_read(file_icon); // @fixme: reenable this to allow icons to be put in cooked .zipfiles
if( data ) { if( data ) {
image_t img = image_from_mem(data, len, IMAGE_RGBA); image_t img = image_from_mem(data, len, IMAGE_RGBA);
if( img.w && img.h && img.pixels ) { if( img.w && img.h && img.pixels ) {
@ -355539,7 +355543,7 @@ int window_has_maximize() {
#line 0 #line 0
#line 1 "v4k_obj.c" #line 1 "engine/split/v4k_obj.c"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// semantic versioning in a single byte (octal) // semantic versioning in a single byte (octal)
// - rlyeh, public domain. // - rlyeh, public domain.
@ -355586,7 +355590,7 @@ AUTORUN {
#endif #endif
#line 0 #line 0
#line 1 "v4k_ai.c" #line 1 "engine/split/v4k_ai.c"
// AI framework // AI framework
// - rlyeh, public domain. // - rlyeh, public domain.
// //
@ -356162,7 +356166,7 @@ int pathfind_astar(int width, int height, const unsigned* map, vec2i src, vec2i
} }
#line 0 #line 0
#line 1 "v4k_bt.c" #line 1 "engine/split/v4k_bt.c"
// Behavior trees: decision planning and decision making. // Behavior trees: decision planning and decision making.
// Supersedes finite state-machines (FSM) and hierarchical finite state-machines (HFSM). // Supersedes finite state-machines (FSM) and hierarchical finite state-machines (HFSM).
// - rlyeh, public domain. // - rlyeh, public domain.
@ -356426,7 +356430,7 @@ int ui_bt(bt_t *b) {
} }
#line 0 #line 0
#line 1 "v4k_editor.c" #line 1 "engine/split/v4k_editor.c"
// editing: // editing:
// nope > functions: add/rem property // nope > functions: add/rem property
@ -356880,13 +356884,14 @@ int main() {
// editor is last in place, so it can use all internals from above headers // editor is last in place, so it can use all internals from above headers
#line 1 "v4k_main.c" #line 1 "engine/split/v4k_main.c"
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
static void v4k_pre_init() { static void v4k_pre_init() {
const char *appname = app_name(); const char *appname = app_name();
window_icon(va("%s.png", appname)); const char *appdir = app_path();
ifdef(win32,window_icon(va("%s.ico", appname))); window_icon(va("%s/%s.png", appdir, appname));
ifdef(win32,window_icon(va("%s/%s.ico", appdir, appname)));
glfwPollEvents(); glfwPollEvents();
@ -356922,8 +356927,9 @@ static void v4k_post_init(float refresh_rate) {
} }
// @todo // @todo
// window_icon(vfs_file(va("%s.png", app))); const char *appname = app_name();
// window_icon(vfs_file(va("%s.ico", app))); window_icon(va("%s.png", appname));
window_icon(va("%s.ico", appname));
// display window // display window
glfwShowWindow(window); glfwShowWindow(window);
@ -356972,7 +356978,7 @@ void v4k_init() {
__argc = 0; __argc = 0;
} }
#ifdef COOK_DISABLED #if defined(COOK_DISABLED) || ENABLE_RETAIL
cook_disable(); cook_disable();
#endif #endif

View File

@ -29,6 +29,10 @@
#define ENABLE_TESTS 0 // ifdef(debug, 1, 0) ///+ #define ENABLE_TESTS 0 // ifdef(debug, 1, 0) ///+
#endif #endif
#ifndef ENABLE_RETAIL
#define ENABLE_RETAIL 0
#endif
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// if/n/def hell // if/n/def hell

View File

@ -2,8 +2,9 @@
static void v4k_pre_init() { static void v4k_pre_init() {
const char *appname = app_name(); const char *appname = app_name();
window_icon(va("%s.png", appname)); const char *appdir = app_path();
ifdef(win32,window_icon(va("%s.ico", appname))); window_icon(va("%s/%s.png", appdir, appname));
ifdef(win32,window_icon(va("%s/%s.ico", appdir, appname)));
glfwPollEvents(); glfwPollEvents();
@ -39,8 +40,9 @@ static void v4k_post_init(float refresh_rate) {
} }
// @todo // @todo
// window_icon(vfs_file(va("%s.png", app))); const char *appname = app_name();
// window_icon(vfs_file(va("%s.ico", app))); window_icon(va("%s.png", appname));
window_icon(va("%s.ico", appname));
// display window // display window
glfwShowWindow(window); glfwShowWindow(window);
@ -89,7 +91,7 @@ void v4k_init() {
__argc = 0; __argc = 0;
} }
#ifdef COOK_DISABLED #if defined(COOK_DISABLED) || ENABLE_RETAIL
cook_disable(); cook_disable();
#endif #endif

View File

@ -983,9 +983,9 @@ void window_color(unsigned color) {
winbgcolor = vec4(r / 255.0, g / 255.0, b / 255.0, a / 255.0); winbgcolor = vec4(r / 255.0, g / 255.0, b / 255.0, a / 255.0);
} }
void window_icon(const char *file_icon) { void window_icon(const char *file_icon) {
unsigned len = file_size(file_icon); // len = len ? len : vfs_size(file_icon); // @fixme: reenable this to allow icons to be put in cooked .zipfiles unsigned len = file_size(file_icon); len = len ? len : vfs_size(file_icon); // @fixme: reenable this to allow icons to be put in cooked .zipfiles
if( len ) { if( len ) {
void *data = file_read(file_icon); // data = data ? data : vfs_read(file_icon); // @fixme: reenable this to allow icons to be put in cooked .zipfiles void *data = file_read(file_icon); data = data ? data : vfs_read(file_icon); // @fixme: reenable this to allow icons to be put in cooked .zipfiles
if( data ) { if( data ) {
image_t img = image_from_mem(data, len, IMAGE_RGBA); image_t img = image_from_mem(data, len, IMAGE_RGBA);
if( img.w && img.h && img.pixels ) { if( img.w && img.h && img.pixels ) {

View File

@ -6,7 +6,7 @@
#define GLAD_GL_IMPLEMENTATION // glad #define GLAD_GL_IMPLEMENTATION // glad
#endif #endif
#line 1 "3rd_glad.h" #line 1 "engine/split/3rd_glad.h"
#ifndef __EMSCRIPTEN__ #ifndef __EMSCRIPTEN__
#ifndef _GNU_SOURCE // juicy linux headers #ifndef _GNU_SOURCE // juicy linux headers
@ -11688,7 +11688,7 @@ int gladLoadGL( GLADloadfunc load) {
#endif /* __EMSCRIPTEN__ */ #endif /* __EMSCRIPTEN__ */
#line 0 #line 0
#line 1 "3rd_icon_md.h" #line 1 "engine/split/3rd_icon_md.h"
// Generated by https://github.com/juliettef/IconFontCppHeaders script GenerateIconFontCppHeaders.py for languages C and C++ // Generated by https://github.com/juliettef/IconFontCppHeaders script GenerateIconFontCppHeaders.py for languages C and C++
// from https://github.com/google/material-design-icons/raw/master/font/MaterialIcons-Regular.codepoints // from https://github.com/google/material-design-icons/raw/master/font/MaterialIcons-Regular.codepoints
// for use with https://github.com/google/material-design-icons/blob/master/font/MaterialIcons-Regular.ttf // for use with https://github.com/google/material-design-icons/blob/master/font/MaterialIcons-Regular.ttf
@ -14030,7 +14030,7 @@ errno_t fopen_s(
//--- //---
#line 1 "3rd_glfw3.h" #line 1 "engine/split/3rd_glfw3.h"
#ifndef __EMSCRIPTEN__ #ifndef __EMSCRIPTEN__
// forked from https://github.com/SasLuca/glfw-single-header (CC0-1.0 licensed) // forked from https://github.com/SasLuca/glfw-single-header (CC0-1.0 licensed)
@ -53227,7 +53227,7 @@ uint32_t _glfwKeySym2Unicode(unsigned int keysym)
#line 0 #line 0
#undef timeGetTime #undef timeGetTime
//--- //---
#line 1 "3rd_swrap.h" #line 1 "engine/split/3rd_swrap.h"
// https://github.com/BareRose/swrap/blob/master/swrap.h // https://github.com/BareRose/swrap/blob/master/swrap.h
/* /*
@ -53520,7 +53520,7 @@ SWDEF int swrapMultiSelect (int* socks, size_t socks_size, double timeout) {
#endif //SWRAP_H #endif //SWRAP_H
#line 0 #line 0
//--- //---
#line 1 "3rd_jo_mp1.h" #line 1 "engine/split/3rd_jo_mp1.h"
/* public domain Simple, Minimalistic MPEG Layer 1 decoder - http://jonolick.com /* public domain Simple, Minimalistic MPEG Layer 1 decoder - http://jonolick.com
* *
* Revision History: * Revision History:
@ -53931,7 +53931,7 @@ bool jo_read_mp1(const void *input, int inputSize, short **output_, int *outputS
#line 0 #line 0
#define get_bits stb_vorbis_get_bits #define get_bits stb_vorbis_get_bits
#define error stb_vorbis_error #define error stb_vorbis_error
#line 1 "3rd_stb_vorbis.h" #line 1 "engine/split/3rd_stb_vorbis.h"
// Ogg Vorbis audio decoder - v1.19 - public domain // Ogg Vorbis audio decoder - v1.19 - public domain
// http://nothings.org/stb_vorbis/ // http://nothings.org/stb_vorbis/
// //
@ -59492,7 +59492,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#line 0 #line 0
#undef error #undef error
#undef DEBUG #undef DEBUG
#line 1 "3rd_sts_mixer.h" #line 1 "engine/split/3rd_sts_mixer.h"
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// sts_mixer.h - v0.02 // sts_mixer.h - v0.02
// written 2016 by Sebastian Steinhauer // written 2016 by Sebastian Steinhauer
@ -60005,7 +60005,7 @@ int main(int argc, char *argv[]) {
For more information, please refer to <http://unlicense.org/> For more information, please refer to <http://unlicense.org/>
*/ */
#line 0 #line 0
#line 1 "3rd_miniaudio.h" #line 1 "engine/split/3rd_miniaudio.h"
/* /*
Audio playback and capture library. Choice of public domain or MIT-0. See license statements at the end of this file. Audio playback and capture library. Choice of public domain or MIT-0. See license statements at the end of this file.
miniaudio - v0.11.18 - 2023-08-07 miniaudio - v0.11.18 - 2023-08-07
@ -152550,7 +152550,7 @@ SOFTWARE.
#undef R #undef R
#define error l_error #define error l_error
#define panic l_panic #define panic l_panic
#line 1 "3rd_lua.h" #line 1 "engine/split/3rd_lua.h"
/* /*
minilua.h -- Lua in a single header minilua.h -- Lua in a single header
Project URL: https://github.com/edubart/minilua Project URL: https://github.com/edubart/minilua
@ -181528,7 +181528,7 @@ int main (int argc, char **argv) {
#undef cast #undef cast
#undef G #undef G
//--- //---
#line 1 "3rd_stb_image.h" #line 1 "engine/split/3rd_stb_image.h"
/* stb_image - v2.26 - public domain image loader - http://nothings.org/stb /* stb_image - v2.26 - public domain image loader - http://nothings.org/stb
no warranty implied; use at your own risk no warranty implied; use at your own risk
@ -189292,7 +189292,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
*/ */
#line 0 #line 0
#line 1 "3rd_stb_image_write.h" #line 1 "engine/split/3rd_stb_image_write.h"
/* stb_image_write - v1.15 - public domain - http://nothings.org/stb /* stb_image_write - v1.15 - public domain - http://nothings.org/stb
writes out PNG/BMP/TGA/JPEG/HDR images to C stdio - Sean Barrett 2010-2015 writes out PNG/BMP/TGA/JPEG/HDR images to C stdio - Sean Barrett 2010-2015
no warranty implied; use at your own risk no warranty implied; use at your own risk
@ -190990,7 +190990,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define STBTT_free(x,u) ((void)(u),FREE(x)) #define STBTT_free(x,u) ((void)(u),FREE(x))
#define NK_ASSERT ASSERT #define NK_ASSERT ASSERT
#define NK_DTOA(s,n) strcpy(s, va("%f", n)) // override cos built-in nk_dtoa() will freeze while parsing UINT_MAX otherwise #define NK_DTOA(s,n) strcpy(s, va("%f", n)) // override cos built-in nk_dtoa() will freeze while parsing UINT_MAX otherwise
#line 1 "3rd_nuklear.h" #line 1 "engine/split/3rd_nuklear.h"
/* /*
/// # Nuklear /// # Nuklear
/// ![](https://cloud.githubusercontent.com/assets/8057201/11761525/ae06f0ca-a0c6-11e5-819d-5610b25f6ef4.gif) /// ![](https://cloud.githubusercontent.com/assets/8057201/11761525/ae06f0ca-a0c6-11e5-819d-5610b25f6ef4.gif)
@ -221351,7 +221351,7 @@ nk_tooltipfv(struct nk_context *ctx, const char *fmt, va_list args)
/// for his single header file packer. /// for his single header file packer.
*/ */
#line 0 #line 0
#line 1 "3rd_nuklear_glfw_gl3.h" #line 1 "engine/split/3rd_nuklear_glfw_gl3.h"
/* /*
* Nuklear - 1.32.0 - public domain * Nuklear - 1.32.0 - public domain
@ -221902,7 +221902,7 @@ void nk_glfw3_shutdown(struct nk_glfw* glfw)
#endif #endif
#endif #endif
#line 0 #line 0
#line 1 "3rd_nuklear_filebrowser.h" #line 1 "engine/split/3rd_nuklear_filebrowser.h"
// file browser for nuklear, based on https://github.com/vurtun/nuklear/blob/master/example/file_browser.c (public domain) // file browser for nuklear, based on https://github.com/vurtun/nuklear/blob/master/example/file_browser.c (public domain)
// - rlyeh, public domain // - rlyeh, public domain
// //
@ -222313,7 +222313,7 @@ static struct nk_image icon_load_rect(unsigned id, unsigned w, unsigned h, unsig
//#include "3rd_assimp/postprocess.h" //#include "3rd_assimp/postprocess.h"
//#pragma comment(lib, "3rd/3rd_assimp/x64/assimp") //#pragma comment(lib, "3rd/3rd_assimp/x64/assimp")
#endif #endif
#line 1 "3rd_json5.h" #line 1 "engine/split/3rd_json5.h"
// JSON5 + SJSON parser module // JSON5 + SJSON parser module
// //
// License: // License:
@ -222753,7 +222753,7 @@ int main() {
#endif // JSON5_C #endif // JSON5_C
#line 0 #line 0
#line 1 "3rd_gjk.h" #line 1 "engine/split/3rd_gjk.h"
// GJK distance algorithm. original code by @vurtun and @randygaul, public domain. // GJK distance algorithm. original code by @vurtun and @randygaul, public domain.
// [src] https://gist.github.com/vurtun/29727217c269a2fbf4c0ed9a1d11cb40 // [src] https://gist.github.com/vurtun/29727217c269a2fbf4c0ed9a1d11cb40
// - rlyeh, public domain. // - rlyeh, public domain.
@ -223362,7 +223362,7 @@ gjk_result gjk_quad(float a_radius, float b_radius) {
#endif #endif
#line 0 #line 0
#line 1 "3rd_compress.h" #line 1 "engine/split/3rd_compress.h"
// compress.c de/compressors into a single-file header // compress.c de/compressors into a single-file header
// - rlyeh, public domain // - rlyeh, public domain
// //
@ -234211,7 +234211,7 @@ unsigned file_decode(FILE* in, FILE* out, FILE *logfile) { // multi decoder
#endif // COMPRESS_C #endif // COMPRESS_C
#line 0 #line 0
#line 1 "3rd_archive.h" #line 1 "engine/split/3rd_archive.h"
// archive.c pak/zip/tar/dir archivers // archive.c pak/zip/tar/dir archivers
// - rlyeh, public domain // - rlyeh, public domain
@ -235815,7 +235815,7 @@ int main( int argc, char **argv ) {
#if is(win32) #if is(win32)
#include <mmsystem.h> // timeapi.h #include <mmsystem.h> // timeapi.h
#endif #endif
#line 1 "3rd_thread.h" #line 1 "engine/split/3rd_thread.h"
/* /*
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
Licensing information can be found at the end of the file. Licensing information can be found at the end of the file.
@ -237545,7 +237545,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
*/ */
#line 0 #line 0
#line 1 "3rd_plmpeg.h" #line 1 "engine/split/3rd_plmpeg.h"
/* /*
PL_MPEG - MPEG1 Video decoder, MP2 Audio decoder, MPEG-PS demuxer PL_MPEG - MPEG1 Video decoder, MP2 Audio decoder, MPEG-PS demuxer
@ -241811,7 +241811,7 @@ void plm_audio_matrix_transform(int s[32][3], int ss, float *d, int dp) {
#endif // PL_MPEG_IMPLEMENTATION #endif // PL_MPEG_IMPLEMENTATION
#line 0 #line 0
#line 1 "3rd_jo_mpeg.h" #line 1 "engine/split/3rd_jo_mpeg.h"
/* public domain Simple, Minimalistic, No Allocations MPEG writer - http://jonolick.com /* public domain Simple, Minimalistic, No Allocations MPEG writer - http://jonolick.com
* *
* Latest revisions: * Latest revisions:
@ -242078,7 +242078,7 @@ void jo_write_mpeg(FILE *fp, const unsigned char *bgrx, int width, int height, i
#endif #endif
#line 0 #line 0
//#define _RTL_RUN_ONCE _RTL_RUN_ONCE2 // __MINGW64__ //#define _RTL_RUN_ONCE _RTL_RUN_ONCE2 // __MINGW64__
#line 1 "3rd_https.h" #line 1 "engine/split/3rd_https.h"
/* /*
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
Licensing information can be found at the end of the file. Licensing information can be found at the end of the file.
@ -289061,7 +289061,7 @@ int main() {
#line 0 #line 0
#undef F2 #undef F2
#undef F3 #undef F3
#line 1 "3rd_enet.h" #line 1 "engine/split/3rd_enet.h"
/** /**
* include/enet.h - a Single-Header auto-generated variant of enet.h library. * include/enet.h - a Single-Header auto-generated variant of enet.h library.
* *
@ -295202,7 +295202,7 @@ extern "C" {
#endif // ENET_INCLUDE_H #endif // ENET_INCLUDE_H
#line 0 #line 0
#define tls_init tls_init2 #define tls_init tls_init2
#line 1 "3rd_bq_websocket.h" #line 1 "engine/split/3rd_bq_websocket.h"
/* /*
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
This software is available under 2 licenses -- choose whichever you prefer. This software is available under 2 licenses -- choose whichever you prefer.
@ -301565,7 +301565,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#endif // BQ_PLATFORM_IMPLEMENTATION #endif // BQ_PLATFORM_IMPLEMENTATION
#line 0 #line 0
#line 1 "3rd_simplex.h" #line 1 "engine/split/3rd_simplex.h"
/** 1D, 2D, 3D and 4D float Perlin Simplex noise */ /** 1D, 2D, 3D and 4D float Perlin Simplex noise */
/** Original code, stefan gustavson (PD). */ /** Original code, stefan gustavson (PD). */
@ -302048,7 +302048,7 @@ float snoise4(float x, float y, float z, float w) {
#endif #endif
#line 0 #line 0
#line 1 "3rd_tfd.h" #line 1 "engine/split/3rd_tfd.h"
/* If you are using a C++ compiler to compile tinyfiledialogs.c (maybe renamed with an extension ".cpp") /* If you are using a C++ compiler to compile tinyfiledialogs.c (maybe renamed with an extension ".cpp")
then comment out << extern "C" >> bellow in this header file) */ then comment out << extern "C" >> bellow in this header file) */
@ -310108,7 +310108,7 @@ tinyfd_messageBox("The selected hexcolor is",
#endif // TFD_IMPLEMENTATION #endif // TFD_IMPLEMENTATION
#line 0 #line 0
#line 1 "3rd_stb_sprintf.h" #line 1 "engine/split/3rd_stb_sprintf.h"
// stb_sprintf - v1.10 - public domain snprintf() implementation // stb_sprintf - v1.10 - public domain snprintf() implementation
// originally by Jeff Roberts / RAD Game Tools, 2015/10/20 // originally by Jeff Roberts / RAD Game Tools, 2015/10/20
// http://github.com/nothings/stb // http://github.com/nothings/stb
@ -312017,7 +312017,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/ */
#line 0 #line 0
#define g g2 #define g g2
#line 1 "3rd_xml.h" #line 1 "engine/split/3rd_xml.h"
// original xml.h/xml.c files by tor andersson, public domain // original xml.h/xml.c files by tor andersson, public domain
#ifndef xml_h #ifndef xml_h
@ -312548,7 +312548,7 @@ struct xml *xml_parse(char *s, int preserve_white, char **errorp)
#endif #endif
#line 0 #line 0
#undef g #undef g
#line 1 "3rd_polychop.h" #line 1 "engine/split/3rd_polychop.h"
/* Progressive Mesh type Polygon Reduction Algorithm /* Progressive Mesh type Polygon Reduction Algorithm
* *
* 1998: Original version by Stan Melax (c) 1998 * 1998: Original version by Stan Melax (c) 1998

View File

@ -105,7 +105,7 @@ for( int lock_ = (thread_mutex_lock( mutexptr ), 1); lock_; lock_ = (thread_mute
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// C files // C files
#line 1 "v4k_ds.c" #line 1 "engine/split/v4k_ds.c"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// sort/less // sort/less
@ -514,7 +514,7 @@ char *cc8str(uint64_t x) {
#line 0 #line 0
#line 1 "v4k_string.c" #line 1 "engine/split/v4k_string.c"
#include <stdarg.h> #include <stdarg.h>
char* tempvl(const char *fmt, va_list vl) { char* tempvl(const char *fmt, va_list vl) {
@ -935,7 +935,7 @@ AUTORUN {
#endif #endif
#line 0 #line 0
#line 1 "v4k_compat.c" #line 1 "engine/split/v4k_compat.c"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// compat (unix & stdio.h) // compat (unix & stdio.h)
@ -1052,7 +1052,7 @@ static void v4k_pre_init();
static void v4k_post_init(float); static void v4k_post_init(float);
#line 0 #line 0
#line 1 "v4k_audio.c" #line 1 "engine/split/v4k_audio.c"
// @fixme: really shutdown audio & related threads before quitting. ma_dr_wav crashes. // @fixme: really shutdown audio & related threads before quitting. ma_dr_wav crashes.
@ -1645,7 +1645,7 @@ int ui_audio() {
} }
#line 0 #line 0
#line 1 "v4k_buffer.c" #line 1 "engine/split/v4k_buffer.c"
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// compression api // compression api
@ -2401,7 +2401,7 @@ AUTORUN {
#endif #endif
#line 0 #line 0
#line 1 "v4k_collide.c" #line 1 "engine/split/v4k_collide.c"
/* poly */ /* poly */
poly poly_alloc(int cnt) { poly poly_alloc(int cnt) {
poly p = {0}; poly p = {0};
@ -3829,7 +3829,7 @@ void collide_demo() { // debug draw collisions // @fixme: fix leaks: poly_free()
} }
#line 0 #line 0
#line 1 "v4k_cooker.c" #line 1 "engine/split/v4k_cooker.c"
// data pipeline // data pipeline
// - rlyeh, public domain. // - rlyeh, public domain.
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@ -4646,7 +4646,7 @@ void cook_config( const char *pathfile_to_cook_ini ) { // @todo: test run-from-"
} }
#line 0 #line 0
#line 1 "v4k_data.c" #line 1 "engine/split/v4k_data.c"
static static
array(char) base64__decode(const char *in_, unsigned inlen) { array(char) base64__decode(const char *in_, unsigned inlen) {
@ -4949,7 +4949,7 @@ bool data_tests() {
} }
#line 0 #line 0
#line 1 "v4k_dll.c" #line 1 "engine/split/v4k_dll.c"
#if is(win32) #if is(win32)
# include <winsock2.h> # include <winsock2.h>
# define dlopen(name,mode) (void*)( (name) ? LoadLibraryA(name) : GetModuleHandle(NULL)) # define dlopen(name,mode) (void*)( (name) ? LoadLibraryA(name) : GetModuleHandle(NULL))
@ -4981,7 +4981,7 @@ int main() { int (*adder)() = dll("demo.dll", "add2"); printf("%d\n", adder(2,3)
#endif #endif
#line 0 #line 0
#line 1 "v4k_file.c" #line 1 "engine/split/v4k_file.c"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// file // file
@ -6121,7 +6121,7 @@ bool ini_write(const char *filename, const char *section, const char *key, const
#line 0 #line 0
#line 1 "v4k_font.c" #line 1 "engine/split/v4k_font.c"
// font framework. original code by Vassvik (UNLICENSED) // font framework. original code by Vassvik (UNLICENSED)
// - rlyeh, public domain. // - rlyeh, public domain.
// //
@ -8471,7 +8471,7 @@ vec2 font_rect(const char *str) {
} }
#line 0 #line 0
#line 1 "v4k_input.c" #line 1 "engine/split/v4k_input.c"
// input framework // input framework
// - rlyeh, public domain // - rlyeh, public domain
// //
@ -9204,7 +9204,7 @@ int ui_gamepads() {
} }
#line 0 #line 0
#line 1 "v4k_math.c" #line 1 "engine/split/v4k_math.c"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// math framework: rand, ease, vec2, vec3, vec4, quat, mat2, mat33, mat34, mat4 // math framework: rand, ease, vec2, vec3, vec4, quat, mat2, mat33, mat34, mat4
// - rlyeh, public domain // - rlyeh, public domain
@ -10210,7 +10210,7 @@ void print34( float *m ) { print_(m,3,4); }
void print44( float *m ) { print_(m,4,4); } void print44( float *m ) { print_(m,4,4); }
#line 0 #line 0
#line 1 "v4k_memory.c" #line 1 "engine/split/v4k_memory.c"
size_t dlmalloc_usable_size(void*); // __ANDROID_API__ size_t dlmalloc_usable_size(void*); // __ANDROID_API__
#if is(bsd) || is(osx) // bsd or osx #if is(bsd) || is(osx) // bsd or osx
@ -10308,7 +10308,7 @@ void* forget( void *ptr ) {
} }
#line 0 #line 0
#line 1 "v4k_network.c" #line 1 "engine/split/v4k_network.c"
#if is(tcc) && is(win32) // @fixme: https lib is broken with tcc. replaced with InternetReadFile() api for now #if is(tcc) && is(win32) // @fixme: https lib is broken with tcc. replaced with InternetReadFile() api for now
@ -10618,7 +10618,7 @@ static void network_init() {
} }
#line 0 #line 0
#line 1 "v4k_netsync.c" #line 1 "engine/split/v4k_netsync.c"
typedef void* (*rpc_function)(); typedef void* (*rpc_function)();
typedef struct rpc_call { typedef struct rpc_call {
@ -11304,7 +11304,7 @@ void network_rpc_send(unsigned id, const char *cmdline) {
} }
#line 0 #line 0
#line 1 "v4k_pack.c" #line 1 "engine/split/v4k_pack.c"
// endianness ----------------------------------------------------------------- // endianness -----------------------------------------------------------------
// - rlyeh, public domain // - rlyeh, public domain
@ -12764,7 +12764,7 @@ AUTORUN {
#endif #endif
#line 0 #line 0
#line 1 "v4k_reflect.c" #line 1 "engine/split/v4k_reflect.c"
// C reflection: enums, functions, structs, members and anotations. // C reflection: enums, functions, structs, members and anotations.
// - rlyeh, public domain // - rlyeh, public domain
// //
@ -12876,7 +12876,7 @@ AUTOTEST {
} }
#line 0 #line 0
#line 1 "v4k_render.c" #line 1 "engine/split/v4k_render.c"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// opengl // opengl
@ -17644,7 +17644,7 @@ anims_t animations(const char *pathfile, int flags) {
} }
#line 0 #line 0
#line 1 "v4k_renderdd.c" #line 1 "engine/split/v4k_renderdd.c"
static const char *dd_vs = "//" FILELINE "\n" static const char *dd_vs = "//" FILELINE "\n"
"in vec3 att_position;\n" "in vec3 att_position;\n"
"uniform mat4 u_MVP;\n" "uniform mat4 u_MVP;\n"
@ -18492,7 +18492,7 @@ void ddraw_demo() {
} }
#line 0 #line 0
#line 1 "v4k_scene.c" #line 1 "engine/split/v4k_scene.c"
// //
// @todo: remove explicit GL code from here // @todo: remove explicit GL code from here
@ -19064,7 +19064,7 @@ void scene_render(int flags) {
} }
#line 0 #line 0
#line 1 "v4k_script.c" #line 1 "engine/split/v4k_script.c"
typedef lua_State lua; typedef lua_State lua;
// the Lua interpreter // the Lua interpreter
@ -19245,7 +19245,7 @@ bool script_tests() {
#undef XMACRO #undef XMACRO
#line 0 #line 0
#line 1 "v4k_time.c" #line 1 "engine/split/v4k_time.c"
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// time // time
@ -19496,7 +19496,7 @@ guid guid_create() {
} }
#line 0 #line 0
#line 1 "v4k_system.c" #line 1 "engine/split/v4k_system.c"
#if (is(tcc) && is(linux)) || (is(gcc) && !is(mingw)) // || is(clang) #if (is(tcc) && is(linux)) || (is(gcc) && !is(mingw)) // || is(clang)
int __argc; char **__argv; int __argc; char **__argv;
#if !is(ems) #if !is(ems)
@ -20381,7 +20381,7 @@ int (test)(const char *file, int line, const char *expr, bool result) {
} }
#line 0 #line 0
#line 1 "v4k_id.c" #line 1 "engine/split/v4k_id.c"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// factory of handle ids, based on code by randy gaul (PD/Zlib licensed) // factory of handle ids, based on code by randy gaul (PD/Zlib licensed)
// - rlyeh, public domain // - rlyeh, public domain
@ -20551,7 +20551,7 @@ bool id_valid(uintptr_t id) {
} }
#line 0 #line 0
#line 1 "v4k_ui.c" #line 1 "engine/split/v4k_ui.c"
#ifndef UI_ICONS_SMALL #ifndef UI_ICONS_SMALL
//#define UI_ICONS_SMALL 1 //#define UI_ICONS_SMALL 1
@ -23016,7 +23016,7 @@ int ui_demo(int do_windows) {
} }
#line 0 #line 0
#line 1 "v4k_profile.c" #line 1 "engine/split/v4k_profile.c"
#if ENABLE_PROFILER #if ENABLE_PROFILER
profiler_t profiler; profiler_t profiler;
int profiler_enabled = 1; int profiler_enabled = 1;
@ -23072,7 +23072,7 @@ void (ui_profiler)() {
#endif #endif
#line 0 #line 0
#line 1 "v4k_video.c" #line 1 "engine/split/v4k_video.c"
// tip: convert video to x265/mp4. note: higher crf to increase compression (default crf is 28) // tip: convert video to x265/mp4. note: higher crf to increase compression (default crf is 28)
// ffmpeg -i {{infile}} -c:v libx265 -crf 24 -c:a copy {{outfile}} // ffmpeg -i {{infile}} -c:v libx265 -crf 24 -c:a copy {{outfile}}
@ -23304,7 +23304,7 @@ void record_frame() {
} }
#line 0 #line 0
#line 1 "v4k_window.c" #line 1 "engine/split/v4k_window.c"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// fps locking // fps locking
@ -24290,9 +24290,9 @@ void window_color(unsigned color) {
winbgcolor = vec4(r / 255.0, g / 255.0, b / 255.0, a / 255.0); winbgcolor = vec4(r / 255.0, g / 255.0, b / 255.0, a / 255.0);
} }
void window_icon(const char *file_icon) { void window_icon(const char *file_icon) {
unsigned len = file_size(file_icon); // len = len ? len : vfs_size(file_icon); // @fixme: reenable this to allow icons to be put in cooked .zipfiles unsigned len = file_size(file_icon); len = len ? len : vfs_size(file_icon); // @fixme: reenable this to allow icons to be put in cooked .zipfiles
if( len ) { if( len ) {
void *data = file_read(file_icon); // data = data ? data : vfs_read(file_icon); // @fixme: reenable this to allow icons to be put in cooked .zipfiles void *data = file_read(file_icon); data = data ? data : vfs_read(file_icon); // @fixme: reenable this to allow icons to be put in cooked .zipfiles
if( data ) { if( data ) {
image_t img = image_from_mem(data, len, IMAGE_RGBA); image_t img = image_from_mem(data, len, IMAGE_RGBA);
if( img.w && img.h && img.pixels ) { if( img.w && img.h && img.pixels ) {
@ -24577,7 +24577,7 @@ int window_has_maximize() {
#line 0 #line 0
#line 1 "v4k_obj.c" #line 1 "engine/split/v4k_obj.c"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// semantic versioning in a single byte (octal) // semantic versioning in a single byte (octal)
// - rlyeh, public domain. // - rlyeh, public domain.
@ -24624,7 +24624,7 @@ AUTORUN {
#endif #endif
#line 0 #line 0
#line 1 "v4k_ai.c" #line 1 "engine/split/v4k_ai.c"
// AI framework // AI framework
// - rlyeh, public domain. // - rlyeh, public domain.
// //
@ -25200,7 +25200,7 @@ int pathfind_astar(int width, int height, const unsigned* map, vec2i src, vec2i
} }
#line 0 #line 0
#line 1 "v4k_bt.c" #line 1 "engine/split/v4k_bt.c"
// Behavior trees: decision planning and decision making. // Behavior trees: decision planning and decision making.
// Supersedes finite state-machines (FSM) and hierarchical finite state-machines (HFSM). // Supersedes finite state-machines (FSM) and hierarchical finite state-machines (HFSM).
// - rlyeh, public domain. // - rlyeh, public domain.
@ -25464,7 +25464,7 @@ int ui_bt(bt_t *b) {
} }
#line 0 #line 0
#line 1 "v4k_editor.c" #line 1 "engine/split/v4k_editor.c"
// editing: // editing:
// nope > functions: add/rem property // nope > functions: add/rem property
@ -25918,13 +25918,14 @@ int main() {
// editor is last in place, so it can use all internals from above headers // editor is last in place, so it can use all internals from above headers
#line 1 "v4k_main.c" #line 1 "engine/split/v4k_main.c"
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
static void v4k_pre_init() { static void v4k_pre_init() {
const char *appname = app_name(); const char *appname = app_name();
window_icon(va("%s.png", appname)); const char *appdir = app_path();
ifdef(win32,window_icon(va("%s.ico", appname))); window_icon(va("%s/%s.png", appdir, appname));
ifdef(win32,window_icon(va("%s/%s.ico", appdir, appname)));
glfwPollEvents(); glfwPollEvents();
@ -25960,8 +25961,9 @@ static void v4k_post_init(float refresh_rate) {
} }
// @todo // @todo
// window_icon(vfs_file(va("%s.png", app))); const char *appname = app_name();
// window_icon(vfs_file(va("%s.ico", app))); window_icon(va("%s.png", appname));
window_icon(va("%s.ico", appname));
// display window // display window
glfwShowWindow(window); glfwShowWindow(window);
@ -26010,7 +26012,7 @@ void v4k_init() {
__argc = 0; __argc = 0;
} }
#ifdef COOK_DISABLED #if defined(COOK_DISABLED) || ENABLE_RETAIL
cook_disable(); cook_disable();
#endif #endif

View File

@ -95,7 +95,7 @@ extern "C" {
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Headers // Headers
#line 1 "v4k_config.h" #line 1 "engine/split/v4k_config.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// config directives // config directives
@ -127,6 +127,10 @@ extern "C" {
#define ENABLE_TESTS 0 // ifdef(debug, 1, 0) ///+ #define ENABLE_TESTS 0 // ifdef(debug, 1, 0) ///+
#endif #endif
#ifndef ENABLE_RETAIL
#define ENABLE_RETAIL 0
#endif
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// if/n/def hell // if/n/def hell
@ -429,7 +433,7 @@ typedef char bool;
#endif #endif
#line 0 #line 0
#line 1 "v4k_ds.h" #line 1 "engine/split/v4k_ds.h"
// data structures and utils: array, set, map, hash, sort. // data structures and utils: array, set, map, hash, sort.
// - rlyeh, public domain // - rlyeh, public domain
@ -893,7 +897,7 @@ enum {
#line 0 #line 0
#line 1 "v4k_math.h" #line 1 "engine/split/v4k_math.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// math framework: rand, ease, vec2, vec3, vec4, quat, mat2, mat33, mat34, mat4 // math framework: rand, ease, vec2, vec3, vec4, quat, mat2, mat33, mat34, mat4
// - rlyeh, public domain // - rlyeh, public domain
@ -1253,7 +1257,7 @@ API void swapf4(vec4 *a, vec4 *b);
#line 0 #line 0
#line 1 "v4k_ai.h" #line 1 "engine/split/v4k_ai.h"
typedef enum SWARM_DISTANCE { typedef enum SWARM_DISTANCE {
SWARM_DISTANCE_LINEAR, SWARM_DISTANCE_LINEAR,
SWARM_DISTANCE_INVERSE_LINEAR, SWARM_DISTANCE_INVERSE_LINEAR,
@ -1306,7 +1310,7 @@ API int ui_swarm(swarm_t *self);
API int pathfind_astar(int width, int height, const unsigned* map, vec2i src, vec2i dst, vec2i* path, size_t maxpath); API int pathfind_astar(int width, int height, const unsigned* map, vec2i src, vec2i dst, vec2i* path, size_t maxpath);
#line 0 #line 0
#line 1 "v4k_bt.h" #line 1 "engine/split/v4k_bt.h"
// Behavior trees: decision planning and decision making. // Behavior trees: decision planning and decision making.
// Supersedes finite state-machines (FSM) and hierarchical finite state-machines (HFSM). // Supersedes finite state-machines (FSM) and hierarchical finite state-machines (HFSM).
// - rlyeh, public domain. // - rlyeh, public domain.
@ -1332,7 +1336,7 @@ API char *bt_funcname(bt_func fn);
API int ui_bt(bt_t *b); API int ui_bt(bt_t *b);
#line 0 #line 0
#line 1 "v4k_audio.h" #line 1 "engine/split/v4k_audio.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// audio framework // audio framework
// - rlyeh, public domain // - rlyeh, public domain
@ -1393,7 +1397,7 @@ enum AUDIO_FLAGS {
API int audio_queue( const void *samples, int num_samples, int flags ); API int audio_queue( const void *samples, int num_samples, int flags );
#line 0 #line 0
#line 1 "v4k_buffer.h" #line 1 "engine/split/v4k_buffer.h"
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// compression api // compression api
@ -1491,7 +1495,7 @@ API uint64_t crc64(uint64_t h, const void *ptr, uint64_t len);
API void entropy( void *buf, unsigned n ); API void entropy( void *buf, unsigned n );
#line 0 #line 0
#line 1 "v4k_collide.h" #line 1 "engine/split/v4k_collide.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// original code by @vurtun (PD) and @barerose (CC0). // original code by @vurtun (PD) and @barerose (CC0).
// [src] https://gist.github.com/vurtun/95f088e4889da2474ad1ce82d7911fee // [src] https://gist.github.com/vurtun/95f088e4889da2474ad1ce82d7911fee
@ -1652,7 +1656,7 @@ API poly diamond(vec3 from, vec3 to, float size); // poly_free() required
API void collide_demo(); // debug draw collisions API void collide_demo(); // debug draw collisions
#line 0 #line 0
#line 1 "v4k_cooker.h" #line 1 "engine/split/v4k_cooker.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// asset pipeline framework // asset pipeline framework
// - rlyeh, public domain. // - rlyeh, public domain.
@ -1687,7 +1691,7 @@ API int cook_progress(); // [0..100]
#line 0 #line 0
#line 1 "v4k_data.h" #line 1 "engine/split/v4k_data.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// data framework (json5, xml, compression) @todo:kvdb // data framework (json5, xml, compression) @todo:kvdb
// - rlyeh, public domain // - rlyeh, public domain
@ -1726,7 +1730,7 @@ API void xml_pop();
API bool data_tests(); API bool data_tests();
#line 0 #line 0
#line 1 "v4k_dll.h" #line 1 "engine/split/v4k_dll.h"
// dll utils // dll utils
// - rlyeh, public domain // - rlyeh, public domain
@ -1741,7 +1745,7 @@ API bool data_tests();
API void* dll(const char *filename, const char *symbol); API void* dll(const char *filename, const char *symbol);
#line 0 #line 0
#line 1 "v4k_editor.h" #line 1 "engine/split/v4k_editor.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// in-game editor // in-game editor
// - rlyeh, public domain. // - rlyeh, public domain.
@ -1786,7 +1790,7 @@ API char* kit_translate2( const char *id, const char *langcode_iso639_1 ); // pe
API void kit_dump_state( FILE *fp ); API void kit_dump_state( FILE *fp );
#line 0 #line 0
#line 1 "v4k_file.h" #line 1 "engine/split/v4k_file.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// files, cache and virtual filesystem (registered directories and/or compressed zip archives). // files, cache and virtual filesystem (registered directories and/or compressed zip archives).
// - rlyeh, public domain. // - rlyeh, public domain.
@ -1886,7 +1890,7 @@ API void ini_destroy(ini_t);
API bool ini_write(const char *filename, const char *section, const char *key, const char *value); API bool ini_write(const char *filename, const char *section, const char *key, const char *value);
#line 0 #line 0
#line 1 "v4k_font.h" #line 1 "engine/split/v4k_font.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// font framework // font framework
// - rlyeh, public domain // - rlyeh, public domain
@ -1978,7 +1982,7 @@ API void* font_colorize(const char *text, const char *comma_types, const char *c
API vec2 font_highlight(const char *text, const void *colors); API vec2 font_highlight(const char *text, const void *colors);
#line 0 #line 0
#line 1 "v4k_id.h" #line 1 "engine/split/v4k_id.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// factory of handle ids, based on code by randy gaul (PD/Zlib licensed) // factory of handle ids, based on code by randy gaul (PD/Zlib licensed)
// - rlyeh, public domain // - rlyeh, public domain
@ -2007,7 +2011,7 @@ bool id_valid(uintptr_t id);
#define ID_DATA_BITS (64-ID_COUNT_BITS) #define ID_DATA_BITS (64-ID_COUNT_BITS)
#line 0 #line 0
#line 1 "v4k_pack.h" #line 1 "engine/split/v4k_pack.h"
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// endianness // endianness
@ -2198,7 +2202,7 @@ API int loadf(FILE *file, const char *format, ...);
API int loadb(const unsigned char *buf, const char *format, ...); API int loadb(const unsigned char *buf, const char *format, ...);
#line 0 #line 0
#line 1 "v4k_input.h" #line 1 "engine/split/v4k_input.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// input framework // input framework
// - rlyeh, public domain // - rlyeh, public domain
@ -2318,7 +2322,7 @@ enum INPUT_ENUMS {
}; };
#line 0 #line 0
#line 1 "v4k_memory.h" #line 1 "engine/split/v4k_memory.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// memory framework // memory framework
// - rlyeh, public domain // - rlyeh, public domain
@ -2358,7 +2362,7 @@ static FORCE_INLINE void *(CALLOC_)(size_t m, size_t n) { return n *= m, memset(
static FORCE_INLINE char *(STRDUP_)(const char *s) { size_t n = strlen(s)+1; return ((char*)memcpy(REALLOC(0,n), s, n)); } ///- static FORCE_INLINE char *(STRDUP_)(const char *s) { size_t n = strlen(s)+1; return ((char*)memcpy(REALLOC(0,n), s, n)); } ///-
#line 0 #line 0
#line 1 "v4k_network.h" #line 1 "engine/split/v4k_network.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// network framework // network framework
// - rlyeh, public domain // - rlyeh, public domain
@ -2410,7 +2414,7 @@ API int tcp_debug(int); // toggle traffic monitoring on/off for given socket
//API int tcp_crypt(int,uint64_t); // set shared secret //API int tcp_crypt(int,uint64_t); // set shared secret
#line 0 #line 0
#line 1 "v4k_netsync.h" #line 1 "engine/split/v4k_netsync.h"
// high-level, socket-less networking api. inspired by Quake, MPI and RenderBuckets theories. // high-level, socket-less networking api. inspired by Quake, MPI and RenderBuckets theories.
// - rlyeh, public domain // - rlyeh, public domain
// //
@ -2496,7 +2500,7 @@ API int64_t client_join(const char *ip, int port);
#define LOCALHOST_IPV6 "::1" #define LOCALHOST_IPV6 "::1"
#line 0 #line 0
#line 1 "v4k_obj.h" #line 1 "engine/split/v4k_obj.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// semantic versioning in a single byte (octal) // semantic versioning in a single byte (octal)
// - rlyeh, public domain. // - rlyeh, public domain.
@ -2556,7 +2560,7 @@ typedef struct double4 { double x,y,z,w; } double4;
#define double4(x,y,z,w) M_CAST(double4, (double)(x), (double)(y), (double)(z), (double)(w) ) #define double4(x,y,z,w) M_CAST(double4, (double)(x), (double)(y), (double)(z), (double)(w) )
#line 0 #line 0
#line 1 "v4k_profile.h" #line 1 "engine/split/v4k_profile.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// profiler & stats (@fixme: threadsafe) // profiler & stats (@fixme: threadsafe)
@ -2588,7 +2592,7 @@ extern API int profiler_enabled; ///-
#endif #endif
#line 0 #line 0
#line 1 "v4k_reflect.h" #line 1 "engine/split/v4k_reflect.h"
// C reflection: enums, functions, structs, members and anotations. // C reflection: enums, functions, structs, members and anotations.
// - rlyeh, public domain // - rlyeh, public domain
// //
@ -2650,7 +2654,7 @@ API void reflected_printf(reflected_t *r);
API void reflected_printf_all(); API void reflected_printf_all();
#line 0 #line 0
#line 1 "v4k_render.h" #line 1 "engine/split/v4k_render.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// naive rendering framework // naive rendering framework
// - rlyeh, public domain // - rlyeh, public domain
@ -3352,7 +3356,7 @@ API void* screenshot(int components); // 3 RGB, 4 RGBA, -3 BGR, -4 BGRA
API void* screenshot_async(int components); // 3 RGB, 4 RGBA, -3 BGR, -4 BGRA API void* screenshot_async(int components); // 3 RGB, 4 RGBA, -3 BGR, -4 BGRA
#line 0 #line 0
#line 1 "v4k_renderdd.h" #line 1 "engine/split/v4k_renderdd.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// debugdraw framework // debugdraw framework
// - rlyeh, public domain. // - rlyeh, public domain.
@ -3419,7 +3423,7 @@ API void ddraw_flush();
API void ddraw_flush_projview(mat44 proj, mat44 view); API void ddraw_flush_projview(mat44 proj, mat44 view);
#line 0 #line 0
#line 1 "v4k_scene.h" #line 1 "engine/split/v4k_scene.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// scene framework // scene framework
// - rlyeh, public domain // - rlyeh, public domain
@ -3556,7 +3560,7 @@ API unsigned scene_count_light();
API light_t* scene_index_light(unsigned index); API light_t* scene_index_light(unsigned index);
#line 0 #line 0
#line 1 "v4k_script.h" #line 1 "engine/split/v4k_script.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// script framework // script framework
// - rlyeh, public domain // - rlyeh, public domain
@ -3572,7 +3576,7 @@ API void script_call(const char *lua_function);
API bool script_tests(); API bool script_tests();
#line 0 #line 0
#line 1 "v4k_string.h" #line 1 "engine/split/v4k_string.h"
// string framework // string framework
// - rlyeh, public domain // - rlyeh, public domain
@ -3666,7 +3670,7 @@ unsigned quark_intern( quarks_db*, const char *string );
const char *quark_string( quarks_db*, unsigned key ); const char *quark_string( quarks_db*, unsigned key );
#line 0 #line 0
#line 1 "v4k_time.h" #line 1 "engine/split/v4k_time.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// time framework utils // time framework utils
// - rlyeh, public domain. // - rlyeh, public domain.
@ -3713,7 +3717,7 @@ AUTORUN {
*/ */
#line 0 #line 0
#line 1 "v4k_system.h" #line 1 "engine/split/v4k_system.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// system framework utils // system framework utils
// - rlyeh, public domain. // - rlyeh, public domain.
@ -3794,7 +3798,7 @@ API int (test)(const char *file, int line, const char *expr, bool result);
#line 0 #line 0
#line 1 "v4k_ui.h" #line 1 "engine/split/v4k_ui.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// immediate ui framework // immediate ui framework
// - rlyeh, public domain // - rlyeh, public domain
@ -3884,7 +3888,7 @@ API int ui_active(); // ui_is_active()?
API int ui_demo(int do_windows); API int ui_demo(int do_windows);
#line 0 #line 0
#line 1 "v4k_video.h" #line 1 "engine/split/v4k_video.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// video decoder (mpeg) // video decoder (mpeg)
// - rlyeh, public domain // - rlyeh, public domain
@ -3927,7 +3931,7 @@ API bool record_active();
API void record_stop(void); API void record_stop(void);
#line 0 #line 0
#line 1 "v4k_window.h" #line 1 "engine/split/v4k_window.h"
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// window framework // window framework
// - rlyeh, public domain // - rlyeh, public domain

View File

@ -35,7 +35,7 @@ def process_command(name, value):
file_path = os.path.join(input_path, value) file_path = os.path.join(input_path, value)
print("Appending file: " + value) print("Appending file: " + value)
with open(file_path, "r") as file: with open(file_path, "r") as file:
res = "#line 1 \"" + value + "\"\n" res = "#line 1 \"engine/split/" + value + "\"\n"
res += file.read() res += file.read()
res += "#line 0" res += "#line 0"
return res return res