From c443af844071f3d5cf94660aeb58fab66e230940 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 30 Apr 2020 20:10:54 +0200 Subject: [PATCH] Created raylib libc dependency (markdown) --- raylib-libc-dependency.md | 59 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 raylib-libc-dependency.md diff --git a/raylib-libc-dependency.md b/raylib-libc-dependency.md new file mode 100644 index 0000000..1b8b5e7 --- /dev/null +++ b/raylib-libc-dependency.md @@ -0,0 +1,59 @@ +raylib is a C library and inevitably it depends on some implementation of [C standard library (libc)](https://en.wikipedia.org/wiki/C_standard_library). + +While working on raylib 3.0 I took some time to analyze that dependency in detail, no plans to remove it (maybe minimize it a bit) but I think it could be useful to have the knowledge where it is required. + +### stdlib.h + +| module | libc function | raylib function | +| :----: | --------------- | ----------------- | +| core | srand() | InitTimer() | +| core | abs(), rand() | GetRandomValue() | +| core | atexit() | InitKeyboard()
InitTerminal() | +| shapes | fabs() | CheckCollisionCircleRec()
GetCollisionRec() | +| utils | exit() | TraceLog() | + +### stdio.h + +Note that file loading functionality is currently being centralized to `LoadFileData()`/`SaveFileData()`, most of the file access calls below will disappear soon, replaced by memory buffers parsing. + +| module | libc function | raylib function | +| :----: | --------------- | ----------------- | +| text | fopen(), fseek(), fread(), fwrite(), fclose() | LoadBMFont() | +| text | fgets() | LoadBMFont() | +| textures | fopen(), fseek(), fread(), fwrite(), fclose() | ExportImageAsCode()
LoadDDS()
LoadPKM()
LoadKTX()
SaveKTX()
LoadPVR()
LoadASTC() | +| models | fopen(), fseek(), fread(), fwrite(), fclose() | LoadIQM()
ExportMesh()
LoadModelAnimations() | +| audio | fopen(), fseek(), fread(), fwrite(), fclose() | ExportWaveAsCode()
LoadWAV()
SaveWAV() | +| utils | sprintf() | TraceLog() | +| utils | fopen(), fseek(), fread(), fwrite(), fclose() | LoadFileData()
SaveFileData() | + +### string.h + +| module | libc function | raylib function | +| :----: | --------------- | ----------------- | +| core | strlen() | GetFileNameWithoutExt()
GetDirectoryPath()
GetPrevDirectoryPath()
OpenURL()
InitEvdevInput() | +| core | strrchr() | GetExtension()
EventThreadSpawn() | +| core | strcmp() | IsGamepadName()
EmscriptenKeyboardCallback() | +| text | strcmp() | TextIsEqual() | +| text | strcpy() | TextAppend()
TextReplace() | +| text | strncpy() | TextToUtf8()
TextReplace() | +| text | strcat() | TextJoin() | +| text | strstr() | *several funcs.* | +| textures | strlen() | ImageTextEx() | +| raudio | strcmp() | IsFileExtension() | + +### math.h + +| module | libc function | raylib function | +| :----: | --------------- | ----------------- | +| models, shapes, camera | sinf(), asinf(), cosf()
acosf(), sqrtf(), atan2f() | *several funcs.* | +| raymath | sinf(), cosf(), acosf(), tan()
fabs(), sqrtf(), fminf(), fmaxf() | *several funcs.* | +| core | tan() | BeginMode3D() | +| rlgl | atan2() | SetVrConfiguration() | +| text | sqrtf() | GenImageFontAtlas() | + +### stdarg.h + +| module | libc function | raylib function | +| :----: | --------------- | ----------------- | +| text | va\_list, va\_start(), vsprintf(), va\_end() | TextFormat() | +| utils | va\_list, va\_start(), vsprintf(), va\_end() | TraceLog() |