
The purpose of this directory in GLFW is to provide some headers that
"mingw.org" doesn't. Raylib has long been unable to build with mingw.org
due to using certain symbols that aren't exposed in their headers.
(_ftelli64 and _access, among others.). Mingw-w64 already has the
necessary headers included, and doesn't need any of these external
implementations. For some reason, this also causes the following error
when building with Visual Studio's clang:
clang -c rglfw.c -Wall -D_GNU_SOURCE -DPLATFORM_DESKTOP -DGRAPHICS_API_OPENGL_33 -Wno-missing-braces -Werror=pointer-arith -fno-strict-aliasing -std=c99 -O1 -Werror=implicit-function-declaration -I. -Iexternal/glfw/include -Iexternal/glfw/deps/mingw
In file included from rglfw.c:61:
In file included from ./external/glfw/src/init.c:30:
In file included from ./external/glfw/src/internal.h:331:
In file included from ./external/glfw/src/platform.h:31:
In file included from ./external/glfw/src/win32_platform.h:70:
external/glfw/deps/mingw\xinput.h:227:26: error: a parameter list without types is only allowed in a function definition
227 | void WINAPI XInputEnable(WINBOOL);
|
If the last -Iexternal/glfw/deps/mingw is removed, the build works fine.
So, this workaround causes other problems, while not actually helping
raylib.
0bb605cd79/src/CMakeLists.txt (L272-L279)
GLFW's CMakeLists.txt first checks if either dinput.h or xinput.h are
provided by the toolchain, before telling the compiler to search for
headers in that directory. For EVERY compiler that can build raylib,
this is true.
In summary: This directory causes issues when building with some
compilers, and every toolchain that needs this workaround can't build
raylib anyway.
Building the Examples
The examples assume you have already built the raylib
library in ../src
.
With GNU make
make
builds all examplesmake [module]
builds all examples for a particular module (e.gmake core
)
With Zig
The Zig toolchain can compile C
and C++
in addition to Zig
.
You may find it easier to use than other toolchains, especially when it comes to cross-compiling.
zig build
to compile all exampleszig build [module]
to compile all examples for a module (e.g.zig build core
)zig build [example]
to compile and run a particular example (e.g.zig build core_basic_window
)
EXAMPLES LIST
category: core
Examples using raylib core platform functionality like window creation, inputs, drawing modes and system functionality.
category: shapes
Examples using raylib shapes drawing functionality, provided by raylib shapes module.
## | example | image | difficulty level |
version created |
last version updated |
original developer |
---|---|---|---|---|---|---|
31 | shapes_basic_shapes | ![]() |
⭐️☆☆☆ | 1.0 | 4.0 | Ray |
32 | shapes_bouncing_ball | ![]() |
⭐️☆☆☆ | 2.5 | 2.5 | Ray |
33 | shapes_colors_palette | ![]() |
⭐️⭐️☆☆ | 1.0 | 2.5 | Ray |
34 | shapes_logo_raylib | ![]() |
⭐️☆☆☆ | 1.0 | 1.0 | Ray |
35 | shapes_logo_raylib_anim | ![]() |
⭐️⭐️☆☆ | 2.5 | 4.0 | Ray |
36 | shapes_rectangle_scaling | ![]() |
⭐️⭐️☆☆ | 2.5 | 2.5 | Vlad Adrian |
37 | shapes_lines_bezier | ![]() |
⭐️☆☆☆ | 1.7 | 1.7 | Ray |
38 | shapes_collision_area | ![]() |
⭐️⭐️☆☆ | 2.5 | 2.5 | Ray |
39 | shapes_following_eyes | ![]() |
⭐️⭐️☆☆ | 2.5 | 2.5 | Ray |
40 | shapes_easings_ball_anim | ![]() |
⭐️⭐️☆☆ | 2.5 | 2.5 | Ray |
41 | shapes_easings_box_anim | ![]() |
⭐️⭐️☆☆ | 2.5 | 2.5 | Ray |
42 | shapes_easings_rectangle_array | ![]() |
⭐️⭐️⭐️☆ | 2.5 | 2.5 | Ray |
43 | shapes_draw_ring | ![]() |
⭐️⭐️⭐️☆ | 2.5 | 2.5 | Vlad Adrian |
44 | shapes_draw_circle_sector | ![]() |
⭐️⭐️⭐️☆ | 2.5 | 2.5 | Vlad Adrian |
45 | shapes_draw_rectangle_rounded | ![]() |
⭐️⭐️⭐️☆ | 2.5 | 2.5 | Vlad Adrian |
46 | shapes_top_down_lights | ![]() |
⭐️⭐️⭐️⭐️ | 4.2 | 4.2 | Jeffery Myers |
category: textures
Examples using raylib textures functionality, including image/textures loading/generation and drawing, provided by raylib textures module.
category: text
Examples using raylib text functionality, including sprite fonts loading/generation and text drawing, provided by raylib text module.
## | example | image | difficulty level |
version created |
last version updated |
original developer |
---|---|---|---|---|---|---|
69 | text_raylib_fonts | ![]() |
⭐️☆☆☆ | 1.7 | 3.7 | Ray |
70 | text_font_spritefont | ![]() |
⭐️☆☆☆ | 1.0 | 1.0 | Ray |
71 | text_font_filters | ![]() |
⭐️⭐️☆☆ | 1.3 | 4.2 | Ray |
72 | text_font_loading | ![]() |
⭐️☆☆☆ | 1.4 | 3.0 | Ray |
73 | text_font_sdf | ![]() |
⭐️⭐️⭐️☆ | 1.3 | 4.0 | Ray |
74 | text_format_text | ![]() |
⭐️☆☆☆ | 1.1 | 3.0 | Ray |
75 | text_input_box | ![]() |
⭐️⭐️☆☆ | 1.7 | 3.5 | Ray |
76 | text_writing_anim | ![]() |
⭐️⭐️☆☆ | 1.4 | 1.4 | Ray |
77 | text_rectangle_bounds | ![]() |
⭐️⭐️⭐️⭐️ | 2.5 | 4.0 | Vlad Adrian |
78 | text_unicode | ![]() |
⭐️⭐️⭐️⭐️ | 2.5 | 4.0 | Vlad Adrian |
79 | text_draw_3d | ![]() |
⭐️⭐️⭐️⭐️ | 3.5 | 4.0 | Vlad Adrian |
80 | text_codepoints_loading | ![]() |
⭐️⭐️⭐️☆ | 4.2 | 4.2 | Ray |
category: models
Examples using raylib models functionality, including models loading/generation and drawing, provided by raylib models module.
## | example | image | difficulty level |
version created |
last version updated |
original developer |
---|---|---|---|---|---|---|
81 | models_animation | ![]() |
⭐️⭐️☆☆ | 2.5 | 3.5 | culacant |
82 | models_billboard | ![]() |
⭐️⭐️⭐️☆ | 1.3 | 3.5 | Ray |
83 | models_box_collisions | ![]() |
⭐️☆☆☆ | 1.3 | 3.5 | Ray |
84 | models_cubicmap | ![]() |
⭐️⭐️☆☆ | 1.8 | 3.5 | Ray |
85 | models_first_person_maze | ![]() |
⭐️⭐️☆☆ | 2.5 | 3.5 | Ray |
86 | models_geometric_shapes | ![]() |
⭐️☆☆☆ | 1.0 | 3.5 | Ray |
87 | models_mesh_generation | ![]() |
⭐️⭐️☆☆ | 1.8 | 4.0 | Ray |
88 | models_mesh_picking | ![]() |
⭐️⭐️⭐️☆ | 1.7 | 4.0 | Joel Davis |
89 | models_loading | ![]() |
⭐️☆☆☆ | 2.5 | 4.0 | Ray |
90 | models_loading_gltf | ![]() |
⭐️☆☆☆ | 3.7 | 4.2 | Ray |
91 | models_loading_vox | ![]() |
⭐️☆☆☆ | 4.0 | 4.0 | Johann Nadalutti |
92 | models_loading_m3d | ![]() |
⭐️☆☆☆ | 4.2 | 4.2 | bzt |
93 | models_orthographic_projection | ![]() |
⭐️☆☆☆ | 2.0 | 3.7 | Max Danielsson |
94 | models_rlgl_solar_system | ![]() |
⭐️⭐️⭐️⭐️ | 2.5 | 4.0 | Ray |
95 | models_yaw_pitch_roll | ![]() |
⭐️⭐️☆☆ | 1.8 | 4.0 | Berni |
96 | models_waving_cubes | ![]() |
⭐️⭐️⭐️☆ | 2.5 | 3.7 | codecat |
97 | models_heightmap | ![]() |
⭐️☆☆☆ | 1.8 | 3.5 | Ray |
98 | models_skybox | ![]() |
⭐️⭐️☆☆ | 1.8 | 4.0 | Ray |
category: shaders
Examples using raylib shaders functionality, including shaders loading, parameters configuration and drawing using them (model shaders and postprocessing shaders). This functionality is directly provided by raylib rlgl module.
category: audio
Examples using raylib audio functionality, including sound/music loading and playing. This functionality is provided by raylib raudio module. Note this module can be used standalone independently of raylib, check raudio_standalone example.
## | example | image | difficulty level |
version created |
last version updated |
original developer |
---|---|---|---|---|---|---|
118 | audio_module_playing | ![]() |
⭐️☆☆☆ | 1.5 | 3.5 | Ray |
119 | audio_music_stream | ![]() |
⭐️☆☆☆ | 1.3 | 4.2 | Ray |
120 | audio_raw_stream | ![]() |
⭐️⭐️⭐️☆ | 1.6 | 4.2 | Ray |
121 | audio_sound_loading | ![]() |
⭐️☆☆☆ | 1.1 | 3.5 | Ray |
category: others
Examples showing raylib misc functionality that does not fit in other categories, like standalone modules usage or examples integrating external libraries.
## | example | image | difficulty level |
version created |
last version updated |
original developer |
---|---|---|---|---|---|---|
122 | rlgl_standalone | ![]() |
⭐️⭐️⭐️⭐️ | 1.6 | 4.0 | Ray |
123 | rlgl_compute_shader | ![]() |
⭐️⭐️⭐️⭐️ | 4.0 | 4.0 | Teddy Astie |
124 | easings_testbed | ![]() |
⭐️⭐️⭐️☆ | 3.0 | 3.0 | Juan Miguel López |
125 | raylib_opengl_interop | ![]() |
⭐️⭐️⭐️⭐️ | 4.0 | 4.0 | Stephan Soller |
126 | embedded_files_loading | ![]() |
⭐️⭐️☆☆ | 3.5 | 3.5 | Kristian Holmgren |
As always contributions are welcome, feel free to send new examples! Here it is an examples template to start with!