-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
raylib libc dependency
Ray edited this page Nov 15, 2021
·
7 revisions
raylib is a C library and inevitably it depends on some implementation of C standard library (libc).
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.
module | libc function | raylib function |
---|---|---|
core | srand() | InitTimer() |
core | abs() rand() |
GetRandomValue() |
core | atexit() | InitKeyboard() InitTerminal() |
shapes | fabs() | CheckCollisionCircleRec() GetCollisionRec() |
utils | exit() | TraceLog() |
module | libc function | raylib function |
---|---|---|
utils | sprintf() | TraceLog() |
utils | fprintf() | SaveFileText() |
utils | fopen() fseek() fread() fwrite() fclose() |
LoadFileData() SaveFileData() LoadFileText() SaveFileText() |
module | libc function | raylib function |
---|---|---|
core | strlen() | GetFileNameWithoutExt() GetDirectoryPath() GetPrevDirectoryPath() OpenURL() InitEvdevInput() |
core | strrchr() | GetExtension() EventThreadSpawn() |
core | strcmp() | IsGamepadName() |
text | strcmp() | TextIsEqual() |
text | strcpy() | TextAppend() TextReplace() |
text | strncpy() | TextToUtf8() TextReplace() |
text | strcat() | TextJoin() |
text | strstr() | several funcs. |
textures | strlen() | ImageTextEx() |
raudio | strcmp() | IsFileExtension() |
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() atan2() |
BeginMode3D(), InitVrSimulator() |
text | sqrtf() | GenImageFontAtlas() |
module | libc function | raylib function |
---|---|---|
text | va_list, va_start(), vsprintf(), va_end() | TextFormat() |
utils | va_list, va_start(), vsprintf(), va_end() | TraceLog() |
Considering the size of raylib, there is not much dependency on libc... that's an interesting consideration for embedded devices development where custom libc implementations could be used.
www.raylib.com | itch.io | GitHub | Discord | YouTube
- Architecture
- Syntax analysis
- Data structures
- Enumerated types
- External dependencies
- GLFW dependency
- libc dependency
- Platforms and graphics
- Input system
- Default shader
- Custom shaders
- Coding conventions
- Integration with other libs
- Working on Windows
- Working on macOS
- Working on GNU Linux
- Working on Chrome OS
- Working on FreeBSD
- Working on Raspberry Pi
- Working for Android
- Working for Web (HTML5)
- Working on exaequOS Web Computer
- Creating Discord Activities
- Working anywhere with CMake
- CMake Build Options
- raylib templates: Get started easily
- How To: Quick C/C++ Setup in Visual Studio 2022, GCC or MinGW
- How To: C# Visual Studio Setup
- How To: VSCode
- How To: Eclipse
- How To: Sublime Text
- How To: Code::Blocks