Updated raylib external dependencies (markdown)

master
Ray před 7 roky
rodič
revize
89e1c6b2c0
2 změnil soubory, kde provedl 37 přidání a 40 odebrání
  1. +37
    -0
      raylib-dependencies.md
  2. +0
    -40
      raylib-external-dependencies.md

+ 37
- 0
raylib-dependencies.md

@ -0,0 +1,37 @@
raylib 2.0 has no **external** dependencies, all required libraries are included with raylib sources.
Internally, raylib uses some libraries developed by other people, most of them used for some very specific task, like loading a specific fileformat or initialize audio device.
Here is the list of dependencies used by raylib. Note that most of these dependencies are [single-header public-domain libraries](https://github.com/nothings/stb) that are [included in raylib repository](https://github.com/raysan5/raylib/tree/master/src/external).
Dependencies:
Library | Used Version | raylib module | Notes
--- | :---: | :---: | ---
[GLFW3](http://www.glfw.org/) | 3.3-dev | [rglfw](https://github.com/raysan5/raylib/blob/master/src/rglfw.c) | Window and input management on desktop platforms
[GLAD](https://github.com/raysan5/raylib/blob/master/src/external/glad.h) | 0.1.10a0 | [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.c) | Extensions initialization for OpenGL 3.3 Core (*single-header*)
[stb_image](https://github.com/raysan5/raylib/blob/master/src/external/stb_image.h) | 2.15 | [textures](https://github.com/raysan5/raylib/blob/master/src/texture.c) | Multiple image formats loading (*single-header*)
[stb_image_resize](https://github.com/raysan5/raylib/blob/master/src/external/stb_image_resize.h) | 0.94 | [textures](https://github.com/raysan5/raylib/blob/master/src/texture.c) | Image resizing functions (*single-header*)
[stb_truetype](https://github.com/raysan5/raylib/blob/master/src/external/stb_truetype.h) | 1.15 | [text](https://github.com/raysan5/raylib/blob/master/src/text.c) | TTF font data loading (*single-header*)
[stb_image_write](https://github.com/raysan5/raylib/blob/master/src/external/stb_image_write.h) | 1.05 | [utils](https://github.com/raysan5/raylib/blob/master/src/utils.c) | PNG image writting (*single-header*)
[stb_vorbis](https://github.com/raysan5/raylib/blob/master/src/external/stb_vorbis.h) | 1.10 | [audio](https://github.com/raysan5/raylib/blob/master/src/audio.c) | OGG audio data loading (*single-header*)
[jar_mod](https://github.com/raysan5/raylib/blob/master/src/external/jar_mod.h) | 0.01 | [audio](https://github.com/raysan5/raylib/blob/master/src/audio.c) | MOD audio module loading (*single-header*)
[jar_xm](https://github.com/raysan5/raylib/blob/master/src/external/jar_xm.h) | 0.01 | [audio](https://github.com/raysan5/raylib/blob/master/src/audio.c) | XM audio module loading (*single-header*)
[mini_al](https://github.com/dr-soft/mini_al) | 1.17.2 | [audio](https://github.com/raysan5/raylib/blob/master/src/audio.c) | Audio device management
Note that raylib supports multiple platforms and, consequently, not all library dependencies from above are the same for all supported platforms. As commented, some of the above libraries included in raylib are single-file header-only libraries (`stb_image`, `stb_image_write`, `stb_image_resize`, `stb_vorbis`, `jar_mod`, `jar_xm`, `glad`, `mini_al`), most of those libraries only depend on the C standard library for the target platform (msvcrt, libc, bionic) and are compiled together with raylib—no need for additional library linkage.
Despite raylib has, technically speaking, no external dependencies, it requires some platform-specific system libraries to be linked on examples/games compilation. Here it is a table with required libraries:
PLATFORM | external dependencies | Notes
--- | :---: | ---
DESKTOP:Windows | `OpenGL`, `GDI32` | GDI32 is required for window creation
DESKTOP:Linux | `OpenGL`, `X11` | Linux also requires linkage with `libm`(math), `pthreads`(POSIX threads), `dl`(dynamic loading) and `X11` window system specific libs: `X11`, `Xrandr`, `Xinerama`, `Xi`, `Xxf86vm` and `Xcursor`
DESKTOP:OSX | `OpenGL`, `Cocoa` | `Cocoa` framework is required for window creation
ANDROID| `EGL`, `OpenGLES2.0`, `OpenSLES` | Code must be compiled using `Android NDK` libraries
RASPBERRY PI | `EGL`, `OpenGLES2.0`, `bcm_host` | Graphics run in native mode using `bcm_host` (no `XWindows` required) and inputs are also natively read (no `XWindows` input events)
HTML5 (Web) | `WebGL` | Code must be compiled using `emscripten SDK`
Note that the raylib design is [very modular](http://www.raylib.com/images/raylib_architecture.png). Some modules can be dropped if they're not required ([audio](https://github.com/raysan5/raylib/blob/develop/src/audio.c), [shapes](https://github.com/raysan5/raylib/blob/develop/src/shapes.c), [models](https://github.com/raysan5/raylib/blob/develop/src/models.c)...) and consequently the libraries used by those modules. Some modules can also be used as standalone, *independently* of raylib: [rlgl](https://github.com/raysan5/raylib/blob/develop/examples/others/rlgl_standalone.c), [audio](https://github.com/raysan5/raylib/blob/develop/examples/others/audio_standalone.c).
As stated, one of raylib goals is avoid any external dependencies, so I'll keep working to reduce this list as much as possible.

+ 0
- 40
raylib-external-dependencies.md

@ -1,40 +0,0 @@
One of the objectives of raylib was minimizing external dependencies. Developing a full-videogame-featured library avoiding external dependencies is a hard task.
Here is the list of external dependencies used by raylib. Note that most of these dependencies are [single-header public-domain libraries](https://github.com/nothings/stb) that are [directly copied into raylib repository](https://github.com/raysan5/raylib/tree/develop/src/external).
External dependencies:
Library | Used Version | raylib module | Notes
--- | :---: | :---: | ---
[GLFW3](http://www.glfw.org/) | 3.3-dev | [core](https://github.com/raysan5/raylib/blob/develop/src/core.c) | Window and input management on desktop platforms
[GLAD](https://github.com/raysan5/raylib/blob/develop/src/external/glad.h) | 0.1.10a0 | [rlgl](https://github.com/raysan5/raylib/blob/develop/src/rlgl.c) | Extensions initialization for OpenGL 3.3 Core (*single-header*)
[stb_image](https://github.com/raysan5/raylib/blob/develop/src/external/stb_image.h) | 2.15 | [textures](https://github.com/raysan5/raylib/blob/develop/src/texture.c) | Multiple image formats loading (*single-header*)
[stb_image_resize](https://github.com/raysan5/raylib/blob/develop/src/external/stb_image_resize.h) | 0.94 | [textures](https://github.com/raysan5/raylib/blob/develop/src/texture.c) | Image resizing functions (*single-header*)
[stb_truetype](https://github.com/raysan5/raylib/blob/develop/src/external/stb_truetype.h) | 1.15 | [text](https://github.com/raysan5/raylib/blob/develop/src/text.c) | TTF font data loading (*single-header*)
[stb_image_write](https://github.com/raysan5/raylib/blob/develop/src/external/stb_image_write.h) | 1.05 | [utils](https://github.com/raysan5/raylib/blob/develop/src/utils.c) | PNG image writting (*single-header*)
[stb_vorbis](https://github.com/raysan5/raylib/blob/develop/src/external/stb_vorbis.h) | 1.10 | [audio](https://github.com/raysan5/raylib/blob/develop/src/audio.c) | OGG audio data loading (*single-header*)
[jar_mod](https://github.com/raysan5/raylib/blob/develop/src/external/jar_mod.h) | 0.01 | [audio](https://github.com/raysan5/raylib/blob/develop/src/audio.c) | MOD audio module loading (*single-header*)
[jar_xm](https://github.com/raysan5/raylib/blob/develop/src/external/jar_xm.h) | 0.01 | [audio](https://github.com/raysan5/raylib/blob/develop/src/audio.c) | XM audio module loading (*single-header*)
[OpenAL Soft](http://kcat.strangesoft.net/openal.html) | 1.17.2 | [audio](https://github.com/raysan5/raylib/blob/develop/src/audio.c) | Audio device management
Note that [physac](https://github.com/raysan5/raylib/blob/develop/src/physac.h) and [rlua](https://github.com/raysan5/raylib/blob/develop/src/rlua.h) are additional raylib modules, single-header and not included in default raylib compilation.
Note that raylib supports multiple platforms and, consequently, not all library dependencies from above are the same for all supported platforms. As commented, some of the above libraries included in raylib are single-file header-only libraries (`stb_image`, `stb_image_write`, `stb_image_resize`, `stb_vorbis`, `jar_mod`, `jar_xm`, `glad`), those libraries only depend on the C standard library for the target platform (libc, bionic) and are compiled together with raylib—no need for additional library linkage. Some other libraries require external linkage. Here is a detailed list:
PLATFORM | external dependencies | Notes
--- | :---: | ---
DESKTOP:Windows | `GLFW3`, `OpenGL`, `OpenAL` | GLFW3 also requires linkage with `libgdi32`
DESKTOP:Linux | `GLFW3`, `OpenGL`, `OpenAL` | Linux also requires linkage with `libm`(math), `pthreads`(POSIX threads), `dl`(dynamic loading). GLFW3 also requires linkage with `XWindows` specific libs: `X11`, `Xrandr`, `Xinerama`, `Xi`, `Xxf86vm` and `Xcursor`
DESKTOP:OSX | `GLFW3`, `OpenGL`, `OpenAL` | GLFW3 also requires linkage with `Cocoa` framework
ANDROID| `EGL`, `OpenGLES2.0`, `OpenAL` | Code must be compiled using `Android NDK` libraries, `android_native_app_glue` module is included in raylib shared library compilation and `OpenAL` android implementation also requires linkage against `OpenSLES` audio library.
RASPBERRY PI | `EGL`, `OpenGLES2.0`, `OpenAL`, `bcm_host` | The only external library required (aside of the default ones that come with the system, like `bcm_host`) is `OpenAL`, graphics run in native mode (no `XWindows` required) and inputs are also natively read (no `XWindows` input events)
HTML5 (Web) | `GLFW3`, `WebGL`, `OpenAL` | Code must be compiled using `emscripten SDK`, all required libraries are included in the package, actually it uses javascript versions of `GLFW3` (incomplete implementation) and `OpenAL` (features limited).
OCULUS RIFT CV1 | `GLFW3`, `OpenGL`, `OpenAL`, `libOVR` | Basically, same as DESKTOP platforms and `libOVR` runtime library (link against `libOVRRT32_1.dll`)
Note that the raylib design is [very modular](http://www.raylib.com/images/raylib_architecture.png). Some modules can be dropped if they're not required ([audio](https://github.com/raysan5/raylib/blob/develop/src/audio.c), [shapes](https://github.com/raysan5/raylib/blob/develop/src/shapes.c), [models](https://github.com/raysan5/raylib/blob/develop/src/models.c)...) and consequently the libraries used by those modules. Some modules can also be used as standalones, *independently* of raylib: [rlgl](https://github.com/raysan5/raylib/blob/develop/examples/others/rlgl_standalone.c), [audio](https://github.com/raysan5/raylib/blob/develop/examples/others/audio_standalone.c).
As stated, one of the raylib goals is to keep external dependencies to a minimum, so I'll keep working to reduce this list as much as possible.

Načítá se…
Zrušit
Uložit