13 Commits

90 changed files with 1420 additions and 1377 deletions

View File

@ -544,7 +544,6 @@ SHAPES = \
shapes/shapes_double_pendulum \
shapes/shapes_draw_circle_sector \
shapes/shapes_draw_rectangle_rounded \
shapes/shapes_draw_ring \
shapes/shapes_easings_ball_anim \
shapes/shapes_easings_box_anim \
shapes/shapes_easings_rectangle_array \
@ -554,6 +553,7 @@ SHAPES = \
shapes/shapes_logo_raylib_anim \
shapes/shapes_rectangle_advanced \
shapes/shapes_rectangle_scaling \
shapes/shapes_ring_drawing \
shapes/shapes_splines_drawing \
shapes/shapes_top_down_lights
@ -577,7 +577,7 @@ TEXTURES = \
textures/textures_particles_blending \
textures/textures_polygon_drawing \
textures/textures_raw_data \
textures/textures_sprite_anim \
textures/textures_sprite_animation \
textures/textures_sprite_button \
textures/textures_sprite_explosion \
textures/textures_srcrec_dstrec \

View File

@ -544,7 +544,6 @@ SHAPES = \
shapes/shapes_double_pendulum \
shapes/shapes_draw_circle_sector \
shapes/shapes_draw_rectangle_rounded \
shapes/shapes_draw_ring \
shapes/shapes_easings_ball_anim \
shapes/shapes_easings_box_anim \
shapes/shapes_easings_rectangle_array \
@ -554,6 +553,7 @@ SHAPES = \
shapes/shapes_logo_raylib_anim \
shapes/shapes_rectangle_advanced \
shapes/shapes_rectangle_scaling \
shapes/shapes_ring_drawing \
shapes/shapes_splines_drawing \
shapes/shapes_top_down_lights
@ -577,7 +577,7 @@ TEXTURES = \
textures/textures_particles_blending \
textures/textures_polygon_drawing \
textures/textures_raw_data \
textures/textures_sprite_anim \
textures/textures_sprite_animation \
textures/textures_sprite_button \
textures/textures_sprite_explosion \
textures/textures_srcrec_dstrec \
@ -811,9 +811,6 @@ shapes/shapes_draw_circle_sector: shapes/shapes_draw_circle_sector.c
shapes/shapes_draw_rectangle_rounded: shapes/shapes_draw_rectangle_rounded.c
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
shapes/shapes_draw_ring: shapes/shapes_draw_ring.c
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
shapes/shapes_easings_ball_anim: shapes/shapes_easings_ball_anim.c
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
@ -841,6 +838,9 @@ shapes/shapes_rectangle_advanced: shapes/shapes_rectangle_advanced.c
shapes/shapes_rectangle_scaling: shapes/shapes_rectangle_scaling.c
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
shapes/shapes_ring_drawing: shapes/shapes_ring_drawing.c
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
shapes/shapes_splines_drawing: shapes/shapes_splines_drawing.c
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
@ -927,7 +927,7 @@ textures/textures_raw_data: textures/textures_raw_data.c
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
--preload-file textures/resources/fudesumi.raw@resources/fudesumi.raw
textures/textures_sprite_anim: textures/textures_sprite_anim.c
textures/textures_sprite_animation: textures/textures_sprite_animation.c
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \
--preload-file textures/resources/scarfy.png@resources/scarfy.png

View File

@ -32,8 +32,8 @@ Examples using raylib[core](../src/rcore.c) platform functionality like window c
| [core_input_gamepad](core/core_input_gamepad.c) | <img src="core/core_input_gamepad.png" alt="core_input_gamepad" width="80"> | ⭐☆☆☆ | 1.1 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) |
| [core_input_multitouch](core/core_input_multitouch.c) | <img src="core/core_input_multitouch.png" alt="core_input_multitouch" width="80"> | ⭐☆☆☆ | 2.1 | 2.5 | [Berni](https://github.com/Berni8k) |
| [core_input_gestures](core/core_input_gestures.c) | <img src="core/core_input_gestures.png" alt="core_input_gestures" width="80"> | ⭐⭐☆☆ | 1.4 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) |
| [core_input_gestures_testbed](core/core_input_gestures_testbed.c) | <img src="core/core_input_gestures_testbed.png" alt="core_input_gestures_testbed" width="80"> | ⭐⭐⭐☆ | 4.6 | 5.6 | [ubkp](https://github.com/ubkp) |
| [core_input_virtual_controls](core/core_input_virtual_controls.c) | <img src="core/core_input_virtual_controls.png" alt="core_input_virtual_controls" width="80"> | ⭐⭐☆☆ | 5.0 | 5.0 | [oblerion](https://github.com/oblerion) |
| [core_input_gestures_testbed](core/core_input_gestures_testbed.c) | <img src="core/core_input_gestures_testbed.png" alt="core_input_gestures_testbed" width="80"> | ⭐⭐⭐☆ | 5.0 | 5.6-dev | [ubkp](https://github.com/ubkp) |
| [core_input_virtual_controls](core/core_input_virtual_controls.c) | <img src="core/core_input_virtual_controls.png" alt="core_input_virtual_controls" width="80"> | ⭐⭐☆☆ | 5.0 | 5.0 | [GreenSnakeLinux](https://github.com/GreenSnakeLinux) |
| [core_2d_camera](core/core_2d_camera.c) | <img src="core/core_2d_camera.png" alt="core_2d_camera" width="80"> | ⭐⭐☆☆ | 1.5 | 3.0 | [Ramon Santamaria](https://github.com/raysan5) |
| [core_2d_camera_mouse_zoom](core/core_2d_camera_mouse_zoom.c) | <img src="core/core_2d_camera_mouse_zoom.png" alt="core_2d_camera_mouse_zoom" width="80"> | ⭐⭐☆☆ | 4.2 | 4.2 | [Jeffery Myers](https://github.com/JeffM2501) |
| [core_2d_camera_platformer](core/core_2d_camera_platformer.c) | <img src="core/core_2d_camera_platformer.png" alt="core_2d_camera_platformer" width="80"> | ⭐⭐⭐☆ | 2.5 | 3.0 | [arvyy](https://github.com/arvyy) |
@ -79,7 +79,7 @@ Examples using raylib shapes drawing functionality, provided by raylib [shapes](
| [shapes_easings_ball_anim](shapes/shapes_easings_ball_anim.c) | <img src="shapes/shapes_easings_ball_anim.png" alt="shapes_easings_ball_anim" width="80"> | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) |
| [shapes_easings_box_anim](shapes/shapes_easings_box_anim.c) | <img src="shapes/shapes_easings_box_anim.png" alt="shapes_easings_box_anim" width="80"> | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) |
| [shapes_easings_rectangle_array](shapes/shapes_easings_rectangle_array.c) | <img src="shapes/shapes_easings_rectangle_array.png" alt="shapes_easings_rectangle_array" width="80"> | ⭐⭐⭐☆ | 2.0 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) |
| [shapes_draw_ring](shapes/shapes_draw_ring.c) | <img src="shapes/shapes_draw_ring.png" alt="shapes_draw_ring" width="80"> | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) |
| [shapes_ring_drawing](shapes/shapes_ring_drawing.c) | <img src="shapes/shapes_ring_drawing.png" alt="shapes_ring_drawing" width="80"> | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) |
| [shapes_draw_circle_sector](shapes/shapes_draw_circle_sector.c) | <img src="shapes/shapes_draw_circle_sector.png" alt="shapes_draw_circle_sector" width="80"> | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) |
| [shapes_draw_rectangle_rounded](shapes/shapes_draw_rectangle_rounded.c) | <img src="shapes/shapes_draw_rectangle_rounded.png" alt="shapes_draw_rectangle_rounded" width="80"> | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) |
| [shapes_top_down_lights](shapes/shapes_top_down_lights.c) | <img src="shapes/shapes_top_down_lights.png" alt="shapes_top_down_lights" width="80"> | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [Jeffery Myers](https://github.com/JeffM2501) |
@ -106,7 +106,7 @@ Examples using raylib textures functionality, including image/textures loading/g
| [textures_particles_blending](textures/textures_particles_blending.c) | <img src="textures/textures_particles_blending.png" alt="textures_particles_blending" width="80"> | ⭐☆☆☆ | 1.7 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) |
| [textures_npatch_drawing](textures/textures_npatch_drawing.c) | <img src="textures/textures_npatch_drawing.png" alt="textures_npatch_drawing" width="80"> | ⭐⭐⭐☆ | 2.0 | 2.5 | [Jorge A. Gomes](https://github.com/overdev) |
| [textures_background_scrolling](textures/textures_background_scrolling.c) | <img src="textures/textures_background_scrolling.png" alt="textures_background_scrolling" width="80"> | ⭐☆☆☆ | 2.0 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) |
| [textures_sprite_anim](textures/textures_sprite_anim.c) | <img src="textures/textures_sprite_anim.png" alt="textures_sprite_anim" width="80"> | ⭐⭐☆☆ | 1.3 | 1.3 | [Ramon Santamaria](https://github.com/raysan5) |
| [textures_sprite_animation](textures/textures_sprite_animation.c) | <img src="textures/textures_sprite_animation.png" alt="textures_sprite_animation" width="80"> | ⭐⭐☆☆ | 1.3 | 1.3 | [Ramon Santamaria](https://github.com/raysan5) |
| [textures_sprite_button](textures/textures_sprite_button.c) | <img src="textures/textures_sprite_button.png" alt="textures_sprite_button" width="80"> | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) |
| [textures_sprite_explosion](textures/textures_sprite_explosion.c) | <img src="textures/textures_sprite_explosion.png" alt="textures_sprite_explosion" width="80"> | ⭐⭐☆☆ | 2.5 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) |
| [textures_bunnymark](textures/textures_bunnymark.c) | <img src="textures/textures_bunnymark.png" alt="textures_bunnymark" width="80"> | ⭐⭐⭐☆ | 1.6 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) |
@ -117,7 +117,7 @@ Examples using raylib textures functionality, including image/textures loading/g
| [textures_fog_of_war](textures/textures_fog_of_war.c) | <img src="textures/textures_fog_of_war.png" alt="textures_fog_of_war" width="80"> | ⭐⭐⭐☆ | 4.2 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) |
| [textures_gif_player](textures/textures_gif_player.c) | <img src="textures/textures_gif_player.png" alt="textures_gif_player" width="80"> | ⭐⭐⭐☆ | 4.2 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) |
| [textures_image_kernel](textures/textures_image_kernel.c) | <img src="textures/textures_image_kernel.png" alt="textures_image_kernel" width="80"> | ⭐⭐⭐⭐️ | 1.3 | 1.3 | [Karim Salem](https://github.com/kimo-s) |
| [textures_image_channel](textures/textures_image_channel.c) | <img src="textures/textures_image_channel.png" alt="textures_image_channel" width="80"> | ⭐⭐☆☆ | 5.1 | 5.1 | [Bruno Cabral](https://github.com/brccabral) |
| [textures_image_channel](textures/textures_image_channel.c) | <img src="textures/textures_image_channel.png" alt="textures_image_channel" width="80"> | ⭐⭐☆☆ | 5.5 | 5.5 | [Bruno Cabral](https://github.com/brccabral) |
| [textures_image_rotate](textures/textures_image_rotate.c) | <img src="textures/textures_image_rotate.png" alt="textures_image_rotate" width="80"> | ⭐⭐☆☆ | 1.0 | 1.0 | [Ramon Santamaria](https://github.com/raysan5) |
| [textures_textured_curve](textures/textures_textured_curve.c) | <img src="textures/textures_textured_curve.png" alt="textures_textured_curve" width="80"> | ⭐⭐⭐☆ | 4.5 | 4.5 | [Jeffery Myers](https://github.com/JeffM2501) |
@ -169,7 +169,7 @@ Examples using raylib models functionality, including models loading/generation
| [models_draw_cube_texture](models/models_draw_cube_texture.c) | <img src="models/models_draw_cube_texture.png" alt="models_draw_cube_texture" width="80"> | ⭐⭐☆☆ | 4.5 | 4.5 | [Ramon Santamaria](https://github.com/raysan5) |
| [models_gpu_skinning](models/models_gpu_skinning.c) | <img src="models/models_gpu_skinning.png" alt="models_gpu_skinning" width="80"> | ⭐⭐⭐☆ | 4.5 | 4.5 | [Daniel Holden](https://github.com/orangeduck) |
| [models_bone_socket](models/models_bone_socket.c) | <img src="models/models_bone_socket.png" alt="models_bone_socket" width="80"> | ⭐⭐⭐⭐️ | 4.5 | 4.5 | [iP](https://github.com/ipzaur) |
| [models_tesseract_view](models/models_tesseract_view.c) | <img src="models/models_tesseract_view.png" alt="models_tesseract_view" width="80"> | ⭐⭐☆☆ | 5.6 | 5.6 | [Timothy van der Valk](https://github.com/arceryz) |
| [models_tesseract_view](models/models_tesseract_view.c) | <img src="models/models_tesseract_view.png" alt="models_tesseract_view" width="80"> | ⭐⭐☆☆ | 5.6-dev | 5.6-dev | [Timothy van der Valk](https://github.com/arceryz) |
### category: shaders [29]
@ -202,10 +202,10 @@ Examples using raylib shaders functionality, including shaders loading, paramete
| [shaders_shadowmap](shaders/shaders_shadowmap.c) | <img src="shaders/shaders_shadowmap.png" alt="shaders_shadowmap" width="80"> | ⭐⭐⭐⭐️ | 5.0 | 5.0 | [TheManTheMythTheGameDev](https://github.com/TheManTheMythTheGameDev) |
| [shaders_vertex_displacement](shaders/shaders_vertex_displacement.c) | <img src="shaders/shaders_vertex_displacement.png" alt="shaders_vertex_displacement" width="80"> | ⭐⭐⭐☆ | 5.0 | 4.5 | [Alex ZH](https://github.com/ZzzhHe) |
| [shaders_write_depth](shaders/shaders_write_depth.c) | <img src="shaders/shaders_write_depth.png" alt="shaders_write_depth" width="80"> | ⭐⭐☆☆ | 4.2 | 4.2 | [Buğra Alptekin Sarı](https://github.com/BugraAlptekinSari) |
| [shaders_basic_pbr](shaders/shaders_basic_pbr.c) | <img src="shaders/shaders_basic_pbr.png" alt="shaders_basic_pbr" width="80"> | ⭐⭐⭐⭐️ | 5.0 | 5.1 | [Afan OLOVCIC](https://github.com/_DevDad) |
| [shaders_basic_pbr](shaders/shaders_basic_pbr.c) | <img src="shaders/shaders_basic_pbr.png" alt="shaders_basic_pbr" width="80"> | ⭐⭐⭐⭐️ | 5.0 | 5.5 | [Afan OLOVCIC](https://github.com/_DevDad) |
| [shaders_lightmap](shaders/shaders_lightmap.c) | <img src="shaders/shaders_lightmap.png" alt="shaders_lightmap" width="80"> | ⭐⭐⭐☆ | 4.5 | 4.5 | [Jussi Viitala](https://github.com/nullstare) |
| [shaders_rounded_rectangle](shaders/shaders_rounded_rectangle.c) | <img src="shaders/shaders_rounded_rectangle.png" alt="shaders_rounded_rectangle" width="80"> | ⭐⭐⭐☆ | 5.5 | 5.5 | [Anstro Pleuton](https://github.com/anstropleuton) |
| [shaders_view_depth](shaders/shaders_view_depth.c) | <img src="shaders/shaders_view_depth.png" alt="shaders_view_depth" width="80"> | ⭐⭐⭐☆ | 5.6 | 5.6 | [Luís Almeida](https://github.com/luis605) |
| [shaders_view_depth](shaders/shaders_view_depth.c) | <img src="shaders/shaders_view_depth.png" alt="shaders_view_depth" width="80"> | ⭐⭐⭐☆ | 5.6-dev | 5.6-dev | [Luís Almeida](https://github.com/luis605) |
### category: audio [8]
@ -219,7 +219,7 @@ Examples using raylib audio functionality, including sound/music loading and pla
| [audio_sound_loading](audio/audio_sound_loading.c) | <img src="audio/audio_sound_loading.png" alt="audio_sound_loading" width="80"> | ⭐☆☆☆ | 1.1 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) |
| [audio_mixed_processor](audio/audio_mixed_processor.c) | <img src="audio/audio_mixed_processor.png" alt="audio_mixed_processor" width="80"> | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [hkc](https://github.com/hatkidchan) |
| [audio_stream_effects](audio/audio_stream_effects.c) | <img src="audio/audio_stream_effects.png" alt="audio_stream_effects" width="80"> | ⭐⭐⭐⭐️ | 4.2 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) |
| [audio_sound_multi](audio/audio_sound_multi.c) | <img src="audio/audio_sound_multi.png" alt="audio_sound_multi" width="80"> | ⭐⭐☆☆ | 4.6 | 4.6 | [Jeffery Myers](https://github.com/JeffM2501) |
| [audio_sound_multi](audio/audio_sound_multi.c) | <img src="audio/audio_sound_multi.png" alt="audio_sound_multi" width="80"> | ⭐⭐☆☆ | 5.0 | 5.0 | [Jeffery Myers](https://github.com/JeffM2501) |
| [audio_sound_positioning](audio/audio_sound_positioning.c) | <img src="audio/audio_sound_positioning.png" alt="audio_sound_positioning" width="80"> | ⭐⭐☆☆ | 5.5 | 5.5 | [Le Juez Victor](https://github.com/Bigfoot71) |
### category: others [6]
@ -233,7 +233,7 @@ Examples showing raylib misc functionality that does not fit in other categories
| [easings_testbed](others/easings_testbed.c) | <img src="others/easings_testbed.png" alt="easings_testbed" width="80"> | ⭐⭐⭐☆ | 2.5 | 3.0 | [Juan Miguel López](https://github.com/flashback-fx) |
| [raylib_opengl_interop](others/raylib_opengl_interop.c) | <img src="others/raylib_opengl_interop.png" alt="raylib_opengl_interop" width="80"> | ⭐⭐⭐⭐️ | 3.8 | 4.0 | [Stephan Soller](https://github.com/arkanis) |
| [embedded_files_loading](others/embedded_files_loading.c) | <img src="others/embedded_files_loading.png" alt="embedded_files_loading" width="80"> | ⭐⭐☆☆ | 3.0 | 3.5 | [Kristian Holmgren](https://github.com/defutura) |
| [raymath_vector_angle](others/raymath_vector_angle.c) | <img src="others/raymath_vector_angle.png" alt="raymath_vector_angle" width="80"> | ⭐⭐☆☆ | 1.0 | 4.6 | [Ramon Santamaria](https://github.com/raysan5) |
| [raymath_vector_angle](others/raymath_vector_angle.c) | <img src="others/raymath_vector_angle.png" alt="raymath_vector_angle" width="80"> | ⭐⭐☆☆ | 1.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) |
Some example missing? As always, contributions are welcome, feel free to send new examples!
Here is an[examples template](examples_template.c) with instructions to start with!

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [audio] example - mixed audio processing
* raylib [audio] example - mixed processor
*
* Example complexity rating: [★★★★] 4/4
*
@ -55,7 +55,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [audio] example - mixed audio processing");
InitWindow(screenWidth, screenHeight, "raylib [audio] example - mixed processor");
InitAudioDevice(); // Initialize audio device

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [audio] example - module playing (streaming)
* raylib [audio] example - module playing
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -37,7 +37,7 @@ int main(void)
SetConfigFlags(FLAG_MSAA_4X_HINT); // NOTE: Try to enable MSAA 4X
InitWindow(screenWidth, screenHeight, "raylib [audio] example - module playing (streaming)");
InitWindow(screenWidth, screenHeight, "raylib [audio] example - module playing");
InitAudioDevice(); // Initialize audio device

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [audio] example - music streaming
* raylib [audio] example - music stream
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -25,7 +25,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [audio] example - music streaming");
InitWindow(screenWidth, screenHeight, "raylib [audio] example - music stream");
InitAudioDevice(); // Initialize audio device

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [audio] example - raw audio streaming
* raylib [audio] example - raw stream
*
* Example complexity rating: [★★★☆] 3/4
*
@ -62,7 +62,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [audio] example - raw audio streaming");
InitWindow(screenWidth, screenHeight, "raylib [audio] example - raw stream");
InitAudioDevice(); // Initialize audio device

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [audio] example - sound loading and playing
* raylib [audio] example - sound loading
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -25,7 +25,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [audio] example - sound loading and playing");
InitWindow(screenWidth, screenHeight, "raylib [audio] example - sound loading");
InitAudioDevice(); // Initialize audio device

View File

@ -1,10 +1,10 @@
/*******************************************************************************************
*
* raylib [audio] example - sound alias
* raylib [audio] example - sound multi
*
* Example complexity rating: [★★☆☆] 2/4
*
* Example originally created with raylib 4.6, last time updated with raylib 4.6
* Example originally created with raylib 5.0, last time updated with raylib 5.0
*
* Example contributed by Jeffery Myers (@JeffM2501) and reviewed by Ramon Santamaria (@raysan5)
*
@ -31,7 +31,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [audio] example - sound alias");
InitWindow(screenWidth, screenHeight, "raylib [audio] example - sound multi");
InitAudioDevice(); // Initialize audio device

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [audio] example - 3d sound positioning
* raylib [audio] example - sound positioning
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -34,7 +34,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [audio] example - 3d sound positioning");
InitWindow(screenWidth, screenHeight, "raylib [audio] example - sound positioning");
InitAudioDevice();

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [core] example - 3d first-person camera controller
* raylib [core] example - 3d camera fps
*
* Example complexity rating: [★★★☆] 3/4
*
@ -11,7 +11,7 @@
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2025-2025 Agnis Aldins (@nezvers)
* Copyright (c) 2025 Agnis Aldins (@nezvers)
*
********************************************************************************************/
@ -80,7 +80,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d first-person camera controller");
InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera fps");
// Initialize camera variables
// NOTE: UpdateCameraFPS() takes care of the rest

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [core] example - gamepad input
* raylib [core] example - input gamepad
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -38,7 +38,7 @@ int main(void)
SetConfigFlags(FLAG_MSAA_4X_HINT); // Set MSAA 4X hint before windows creation
InitWindow(screenWidth, screenHeight, "raylib [core] example - gamepad input");
InitWindow(screenWidth, screenHeight, "raylib [core] example - input gamepad");
Texture2D texPs3Pad = LoadTexture("resources/ps3.png");
Texture2D texXboxPad = LoadTexture("resources/xbox.png");

View File

@ -4,7 +4,7 @@
*
* Example complexity rating: [★★★☆] 3/4
*
* Example originally created with raylib 4.6-dev, last time updated with raylib 5.6-dev
* Example originally created with raylib 5.0, last time updated with raylib 5.6-dev
*
* Example contributed by ubkp (@ubkp) and reviewed by Ramon Santamaria (@raysan5)
*

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [core] example - keyboard input
* raylib [core] example - input keys
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -25,7 +25,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - keyboard input");
InitWindow(screenWidth, screenHeight, "raylib [core] example - input keys");
Vector2 ballPosition = { (float)screenWidth/2, (float)screenHeight/2 };

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [core] example - mouse input
* raylib [core] example - input mouse
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -25,7 +25,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - mouse input");
InitWindow(screenWidth, screenHeight, "raylib [core] example - input mouse");
Vector2 ballPosition = { -100.0f, -100.0f };
Color ballColor = DARKBLUE;

View File

@ -2,7 +2,7 @@
*
* raylib [core] example - input virtual controls
*
* Example complexity rating: [★★☆☆] 3/4
* Example complexity rating: [★★☆☆] 2/4
*
* Example originally created with raylib 5.0, last time updated with raylib 5.0
*
@ -12,7 +12,7 @@
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2024-2025 oblerion (@oblerion) and Ramon Santamaria (@raysan5)
* Copyright (c) 2024-2025 GreenSnakeLinux (@GreenSnakeLinux) and Ramon Santamaria (@raysan5)
*
********************************************************************************************/

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [core] example - generate random sequence
* raylib [core] example - random sequence
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -45,7 +45,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - generate random sequence");
InitWindow(screenWidth, screenHeight, "raylib [core] example - random sequence");
int rectCount = 20;
float rectSize = (float)screenWidth/rectCount;

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [core] example - generate random values
* raylib [core] example - random values
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -25,7 +25,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - generate random values");
InitWindow(screenWidth, screenHeight, "raylib [core] example - random values");
// SetRandomSeed(0xaabbccff); // Set a custom random seed if desired, by default: "time(NULL)"

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [core] example - smooth pixel-perfect camera
* raylib [core] example - smooth pixelperfect
*
* Example complexity rating: [★★★☆] 3/4
*
@ -35,7 +35,7 @@ int main(void)
const float virtualRatio = (float)screenWidth/(float)virtualScreenWidth;
InitWindow(screenWidth, screenHeight, "raylib [core] example - smooth pixel-perfect camera");
InitWindow(screenWidth, screenHeight, "raylib [core] example - smooth pixelperfect");
Camera2D worldSpaceCamera = { 0 }; // Game world camera
worldSpaceCamera.zoom = 1.0f;

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [core] example - storage save/load values
* raylib [core] example - storage values
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -41,7 +41,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - storage save/load values");
InitWindow(screenWidth, screenHeight, "raylib [core] example - storage values");
int score = 0;
int hiscore = 0;

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [core] example - window scale letterbox
* raylib [core] example - window letterbox
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -32,7 +32,7 @@ int main(void)
// Enable config flags for resizable window and vertical synchro
SetConfigFlags(FLAG_WINDOW_RESIZABLE | FLAG_VSYNC_HINT);
InitWindow(screenWidth, screenHeight, "raylib [core] example - window scale letterbox");
InitWindow(screenWidth, screenHeight, "raylib [core] example - window letterbox");
SetWindowMinSize(320, 240);
int gameScreenWidth = 640;

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [core] example - core world screen
* raylib [core] example - world screen
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -25,7 +25,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - core world screen");
InitWindow(screenWidth, screenHeight, "raylib [core] example - world screen");
// Define the camera to look into our 3d world
Camera camera = { 0 };

View File

@ -14,8 +14,8 @@ core;core_input_mouse_wheel;★☆☆☆;1.1;1.3;2014;2025;"Ramon Santamaria";@r
core;core_input_gamepad;★☆☆☆;1.1;4.2;2013;2025;"Ramon Santamaria";@raysan5
core;core_input_multitouch;★☆☆☆;2.1;2.5;2019;2025;"Berni";@Berni8k
core;core_input_gestures;★★☆☆;1.4;4.2;2016;2025;"Ramon Santamaria";@raysan5
core;core_input_gestures_testbed;★★★☆;4.6-dev;5.6-dev;2023;2025;"ubkp";@ubkp
core;core_input_virtual_controls;★★☆☆;5.0;5.0;2024;2025;"oblerion";@oblerion
core;core_input_gestures_testbed;★★★☆;5.0;5.6-dev;2023;2025;"ubkp";@ubkp
core;core_input_virtual_controls;★★☆☆;5.0;5.0;2024;2025;"GreenSnakeLinux";@GreenSnakeLinux
core;core_2d_camera;★★☆☆;1.5;3.0;2016;2025;"Ramon Santamaria";@raysan5
core;core_2d_camera_mouse_zoom;★★☆☆;4.2;4.2;2022;2025;"Jeffery Myers";@JeffM2501
core;core_2d_camera_platformer;★★★☆;2.5;3.0;2019;2025;"arvyy";@arvyy
@ -41,7 +41,7 @@ core;core_custom_frame_control;★★★★;4.0;4.0;2021;2025;"Ramon Santamaria"
core;core_smooth_pixelperfect;★★★☆;3.7;4.0;2021;2025;"Giancamillo Alessandroni";@NotManyIdeasDev
core;core_random_sequence;★☆☆☆;5.0;5.0;2023;2025;"Dalton Overmyer";@REDl3east
core;core_automation_events;★★★☆;5.0;5.0;2023;2025;"Ramon Santamaria";@raysan5
core;core_high_dpi;★★☆☆;5.0;5.5;2025;0;"Jonathan Marler";@marler8997
core;core_high_dpi;★★☆☆;5.0;5.5;2025;2025;"Jonathan Marler";@marler8997
shapes;shapes_basic_shapes;★☆☆☆;1.0;4.2;2014;2025;"Ramon Santamaria";@raysan5
shapes;shapes_bouncing_ball;★☆☆☆;2.5;2.5;2013;2025;"Ramon Santamaria";@raysan5
shapes;shapes_colors_palette;★★☆☆;1.0;2.5;2014;2025;"Ramon Santamaria";@raysan5
@ -54,7 +54,7 @@ shapes;shapes_following_eyes;★★☆☆;2.5;2.5;2013;2025;"Ramon Santamaria";@
shapes;shapes_easings_ball_anim;★★☆☆;2.5;2.5;2014;2025;"Ramon Santamaria";@raysan5
shapes;shapes_easings_box_anim;★★☆☆;2.5;2.5;2014;2025;"Ramon Santamaria";@raysan5
shapes;shapes_easings_rectangle_array;★★★☆;2.0;2.5;2014;2025;"Ramon Santamaria";@raysan5
shapes;shapes_draw_ring;★★★☆;2.5;2.5;2018;2025;"Vlad Adrian";@demizdor
shapes;shapes_ring_drawing;★★★☆;2.5;2.5;2018;2025;"Vlad Adrian";@demizdor
shapes;shapes_draw_circle_sector;★★★☆;2.5;2.5;2018;2025;"Vlad Adrian";@demizdor
shapes;shapes_draw_rectangle_rounded;★★★☆;2.5;2.5;2018;2025;"Vlad Adrian";@demizdor
shapes;shapes_top_down_lights;★★★★;4.2;4.2;2022;2025;"Jeffery Myers";@JeffM2501
@ -74,7 +74,7 @@ textures;textures_raw_data;★★★☆;1.3;3.5;2015;2025;"Ramon Santamaria";@ra
textures;textures_particles_blending;★☆☆☆;1.7;3.5;2017;2025;"Ramon Santamaria";@raysan5
textures;textures_npatch_drawing;★★★☆;2.0;2.5;2018;2025;"Jorge A. Gomes";@overdev
textures;textures_background_scrolling;★☆☆☆;2.0;2.5;2019;2025;"Ramon Santamaria";@raysan5
textures;textures_sprite_anim;★★☆☆;1.3;1.3;2014;2025;"Ramon Santamaria";@raysan5
textures;textures_sprite_animation;★★☆☆;1.3;1.3;2014;2025;"Ramon Santamaria";@raysan5
textures;textures_sprite_button;★★☆☆;2.5;2.5;2019;2025;"Ramon Santamaria";@raysan5
textures;textures_sprite_explosion;★★☆☆;2.5;3.5;2019;2025;"Ramon Santamaria";@raysan5
textures;textures_bunnymark;★★★☆;1.6;2.5;2014;2025;"Ramon Santamaria";@raysan5
@ -85,7 +85,7 @@ textures;textures_polygon_drawing;★☆☆☆;3.7;3.7;2021;2025;"Chris Camacho"
textures;textures_fog_of_war;★★★☆;4.2;4.2;2018;2025;"Ramon Santamaria";@raysan5
textures;textures_gif_player;★★★☆;4.2;4.2;2021;2025;"Ramon Santamaria";@raysan5
textures;textures_image_kernel;★★★★;1.3;1.3;2015;2025;"Karim Salem";@kimo-s
textures;textures_image_channel;★★☆☆;5.1-dev;5.1-dev;2024;2025;"Bruno Cabral";@brccabral
textures;textures_image_channel;★★☆☆;5.5;5.5;2024;2025;"Bruno Cabral";@brccabral
textures;textures_image_rotate;★★☆☆;1.0;1.0;2014;2025;"Ramon Santamaria";@raysan5
textures;textures_textured_curve;★★★☆;4.5;4.5;2022;2025;"Jeffery Myers";@JeffM2501
text;text_sprite_fonts;★☆☆☆;1.7;3.7;2017;2025;"Ramon Santamaria";@raysan5
@ -98,7 +98,7 @@ text;text_input_box;★★☆☆;1.7;3.5;2017;2025;"Ramon Santamaria";@raysan5
text;text_writing_anim;★★☆☆;1.4;1.4;2016;2025;"Ramon Santamaria";@raysan5
text;text_rectangle_bounds;★★★★;2.5;4.0;2018;2025;"Vlad Adrian";@demizdor
text;text_unicode_emojis;★★★★;2.5;4.0;2019;2025;"Vlad Adrian";@demizdor
text;text_unicode_ranges;★★★★;5.5;5.6;2025;0;"Vlad Adrian";@demizdor
text;text_unicode_ranges;★★★★;5.5;5.6;2025;2025;"Vlad Adrian";@demizdor
text;text_3d_drawing;★★★★;3.5;4.0;2021;2025;"Vlad Adrian";@demizdor
text;text_codepoints_loading;★★★☆;4.2;4.2;2022;2025;"Ramon Santamaria";@raysan5
models;models_animation;★★☆☆;2.5;3.5;2019;2025;"Culacant";@culacant
@ -149,7 +149,7 @@ shaders;shaders_texture_tiling;★★☆☆;4.5;4.5;2023;2025;"Luis Almeida";@lu
shaders;shaders_shadowmap;★★★★;5.0;5.0;2023;2025;"TheManTheMythTheGameDev";@TheManTheMythTheGameDev
shaders;shaders_vertex_displacement;★★★☆;5.0;4.5;2023;2025;"Alex ZH";@ZzzhHe
shaders;shaders_write_depth;★★☆☆;4.2;4.2;2022;2025;"Buğra Alptekin Sarı";@BugraAlptekinSari
shaders;shaders_basic_pbr;★★★★;5.0;5.1-dev;2023;2025;"Afan OLOVCIC";@_DevDad
shaders;shaders_basic_pbr;★★★★;5.0;5.5;2023;2025;"Afan OLOVCIC";@_DevDad
shaders;shaders_lightmap;★★★☆;4.5;4.5;2019;2025;"Jussi Viitala";@nullstare
shaders;shaders_rounded_rectangle;★★★☆;5.5;5.5;2025;2025;"Anstro Pleuton";@anstropleuton
shaders;shaders_view_depth;★★★☆;5.6-dev;5.6-dev;2025;2025;"Luís Almeida";@luis605
@ -159,11 +159,11 @@ audio;audio_raw_stream;★★★☆;1.6;4.2;2015;2025;"Ramon Santamaria";@raysan
audio;audio_sound_loading;★☆☆☆;1.1;3.5;2014;2025;"Ramon Santamaria";@raysan5
audio;audio_mixed_processor;★★★★;4.2;4.2;2023;2025;"hkc";@hatkidchan
audio;audio_stream_effects;★★★★;4.2;5.0;2022;2025;"Ramon Santamaria";@raysan5
audio;audio_sound_multi;★★☆☆;4.6;4.6;2023;2025;"Jeffery Myers";@JeffM2501
audio;audio_sound_positioning;★★☆☆;5.5;5.5;2025;0;"Le Juez Victor";@Bigfoot71
audio;audio_sound_multi;★★☆☆;5.0;5.0;2023;2025;"Jeffery Myers";@JeffM2501
audio;audio_sound_positioning;★★☆☆;5.5;5.5;2025;2025;"Le Juez Victor";@Bigfoot71
others;rlgl_standalone;★★★★;1.6;4.0;2014;2025;"Ramon Santamaria";@raysan5
others;rlgl_compute_shader;★★★★;4.0;4.0;2021;2025;"Teddy Astie";@tsnake41
others;easings_testbed;★★★☆;2.5;3.0;2019;2025;"Juan Miguel López";@flashback-fx
others;raylib_opengl_interop;★★★★;3.8;4.0;2021;2025;"Stephan Soller";@arkanis
others;embedded_files_loading;★★☆☆;3.0;3.5;2020;2025;"Kristian Holmgren";@defutura
others;raymath_vector_angle;★★☆☆;1.0;4.6;2023;2025;"Ramon Santamaria";@raysan5
others;raymath_vector_angle;★★☆☆;1.0;5.0;2023;2025;"Ramon Santamaria";@raysan5

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [models] example - model animation
* raylib [models] example - animation
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -33,7 +33,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [models] example - model animation");
InitWindow(screenWidth, screenHeight, "raylib [models] example - animation");
// Define the camera to look into our 3d world
Camera camera = { 0 };

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [models] example - billboard render
* raylib [models] example - billboard rendering
*
* Example complexity rating: [★★★☆] 3/4
*
@ -26,7 +26,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [models] example - billboard render");
InitWindow(screenWidth, screenHeight, "raylib [models] example - billboard rendering");
// Define the camera to look into our 3d world
Camera camera = { 0 };

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [models] example - cubicmap loading and drawing
* raylib [models] example - cubicmap
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -25,7 +25,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [models] example - cubicmap loading and drawing");
InitWindow(screenWidth, screenHeight, "raylib [models] example - cubicmap");
// Define the camera to look into our 3d world
Camera camera = { 0 };

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [models] example - heightmap terrain
* raylib [models] example - heightmap
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -25,7 +25,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [models] example - heightmap terrain");
InitWindow(screenWidth, screenHeight, "raylib [models] example - heightmap");
// Define our custom camera to look into our 3d world
Camera camera = { 0 };

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [models] example - models loading
* raylib [models] example - loading
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -38,7 +38,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [models] example - models loading");
InitWindow(screenWidth, screenHeight, "raylib [models] example - loading");
// Define the camera to look into our 3d world
Camera camera = { 0 };

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [models] example - loading gltf animations
* raylib [models] example - loading gltf
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -32,7 +32,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [models] example - loading gltf animations");
InitWindow(screenWidth, screenHeight, "raylib [models] example - loading gltf");
// Define the camera to look into our 3d world
Camera camera = { 0 };

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [models] example - models loading m3d
* raylib [models] example - loading m3d
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -31,7 +31,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [models] example - models loading m3d");
InitWindow(screenWidth, screenHeight, "raylib [models] example - loading m3d");
// Define the camera to look into our 3d world
Camera camera = { 0 };

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [models] example - magicavoxel loading
* raylib [models] example - loading vox
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -47,7 +47,7 @@ int main(void)
"resources/models/vox/fez.vox"
};
InitWindow(screenWidth, screenHeight, "raylib [models] example - magicavoxel loading");
InitWindow(screenWidth, screenHeight, "raylib [models] example - loading vox");
// Define the camera to look into our 3d world
Camera camera = { 0 };

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [models] example - plane rotations (yaw, pitch, roll)
* raylib [models] example - yaw pitch roll
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -30,7 +30,7 @@ int main(void)
const int screenHeight = 450;
//SetConfigFlags(FLAG_MSAA_4X_HINT | FLAG_WINDOW_HIGHDPI);
InitWindow(screenWidth, screenHeight, "raylib [models] example - plane rotations (yaw, pitch, roll)");
InitWindow(screenWidth, screenHeight, "raylib [models] example - yaw pitch roll");
Camera camera = { 0 };
camera.position = (Vector3){ 0.0f, 50.0f, -120.0f };// Camera position perspective

View File

@ -4,7 +4,7 @@
*
* Example complexity rating: [★★☆☆] 2/4
*
* Example originally created with raylib 3.0, last time updated with raylib 2.5
* Example originally created with raylib 3.0, last time updated with raylib 3.5
*
* Example contributed by Kristian Holmgren (@defutura) and reviewed by Ramon Santamaria (@raysan5)
*

View File

@ -1,10 +1,10 @@
/*******************************************************************************************
*
* raylib [math] example - vector angle
* raylib [others] example - vector angle
*
* Example complexity rating: [★★☆☆] 2/4
*
* Example originally created with raylib 1.0, last time updated with raylib 4.6
* Example originally created with raylib 1.0, last time updated with raylib 5.0
*
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
@ -27,7 +27,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [math] example - vector angle");
InitWindow(screenWidth, screenHeight, "raylib [others] example - vector angle");
Vector2 v0 = { screenWidth/2, screenHeight/2 };
Vector2 v1 = Vector2Add(v0, (Vector2){ 100.0f, 80.0f });

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [others] example - compute shader - game of life
* raylib [others] example - compute shader
*
* NOTE: This example requires raylib OpenGL 4.3 versions for compute shaders support,
* shaders used in this example are #version 430 (OpenGL 4.3)
@ -57,7 +57,7 @@ int main(void)
const int screenWidth = GOL_WIDTH;
const int screenHeight = GOL_WIDTH;
InitWindow(screenWidth, screenHeight, "raylib [others] example - compute shader - game of life");
InitWindow(screenWidth, screenHeight, "raylib [others] example - compute shader");
const Vector2 resolution = { screenWidth, screenHeight };
unsigned int brushSize = 8;

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [others] example - Using rlgl module as standalone module
* raylib [others] example - standalone
*
* rlgl library is an abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, ES 2.0)
* that provides a pseudo-OpenGL 1.1 immediate-mode style API (rlVertex, rlTranslate, rlRotate...)

View File

@ -4,7 +4,7 @@
*
* Example complexity rating: [★★★★] 4/4
*
* Example originally created with raylib 5.0, last time updated with raylib 5.1-dev
* Example originally created with raylib 5.0, last time updated with raylib 5.5
*
* Example contributed by Afan OLOVCIC (@_DevDad) and reviewed by Ramon Santamaria (@raysan5)
*

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shaders] example - custom uniform variable
* raylib [shaders] example - custom uniform
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -40,7 +40,7 @@ int main(void)
SetConfigFlags(FLAG_MSAA_4X_HINT); // Enable Multi Sampling Anti Aliasing 4x (if available)
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - custom uniform variable");
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - custom uniform");
// Define the camera to look into our 3d world
Camera camera = { 0 };

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shaders] example - sieve of Eratosthenes
* raylib [shaders] example - eratosthenes
*
* Example complexity rating: [★★★☆] 3/4
*
@ -45,7 +45,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - sieve of Eratosthenes");
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - eratosthenes");
RenderTexture2D target = LoadRenderTexture(screenWidth, screenHeight);

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shaders] example - fog
* raylib [shaders] example - fog rendering
*
* Example complexity rating: [★★★☆] 3/4
*
@ -44,7 +44,7 @@ int main(void)
const int screenHeight = 450;
SetConfigFlags(FLAG_MSAA_4X_HINT); // Enable Multi Sampling Anti Aliasing 4x (if available)
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - fog");
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - fog rendering");
// Define the camera to look into our 3d world
Camera camera = { 0 };

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shaders] example - write depth buffer
* raylib [shaders] example - hybrid render
*
* Example complexity rating: [★★★★] 4/4
*
@ -55,7 +55,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - write depth buffer");
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - hybrid render");
// This Shader calculates pixel depth and color using raymarch
Shader shdrRaymarch = LoadShader(0, TextFormat("resources/shaders/glsl%i/hybrid_raymarch.fs", GLSL_VERSION));

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shaders] example - julia sets
* raylib [shaders] example - julia set
*
* Example complexity rating: [★★★☆] 3/4
*
@ -53,7 +53,7 @@ int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - julia sets");
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - julia set");
// Load julia set shader
// NOTE: Defining 0 (NULL) for vertex shader forces usage of internal default vertex shader

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shaders] example - multi sample2D
* raylib [shaders] example - multi sample2d
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -38,7 +38,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - multi sample2D");
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - multi sample2d");
Image imRed = GenImageColor(800, 450, (Color){ 255, 0, 0, 255 });
Texture texRed = LoadTextureFromImage(imRed);

View File

@ -1,20 +1,20 @@
/*******************************************************************************************
*
* raylib [shaders] example - normal map
* raylib [shaders] example - normal map
*
* Example complexity rating: [★★★★] 4/4
* Example complexity rating: [★★★★] 4/4
*
* NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support,
* NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support,
* OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version
*
* Example originally created with raylib 5.6, last time updated with raylib 5.6
* Example originally created with raylib 5.6, last time updated with raylib 5.6
*
* Example contributed by Jeremy Montgomery (@Sir_Irk) and reviewed by Ramon Santamaria (@raysan5)
* Example contributed by Jeremy Montgomery (@Sir_Irk) and reviewed by Ramon Santamaria (@raysan5)
*
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2025-2025 Jeremy Montgomery (@Sir_Irk) and Ramon Santamaria (@raysan5)
* Copyright (c) 2025 Jeremy Montgomery (@Sir_Irk) and Ramon Santamaria (@raysan5)
*
********************************************************************************************/

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shaders] example - color palette switch
* raylib [shaders] example - palette switch
*
* Example complexity rating: [★★★☆] 3/4
*
@ -86,7 +86,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - color palette switch");
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - palette switch");
// Load shader to be used on some parts drawing
// NOTE 1: Using GLSL 330 shader version, on OpenGL ES 2.0 use GLSL 100 shader version

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shaders] example - postprocessing shader
* raylib [shaders] example - postprocessing
*
* Example complexity rating: [★★★☆] 3/4
*
@ -77,7 +77,7 @@ int main(void)
SetConfigFlags(FLAG_MSAA_4X_HINT); // Enable Multi Sampling Anti Aliasing 4x (if available)
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - postprocessing shader");
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - postprocessing");
// Define the camera to look into our 3d world
Camera camera = { 0 };

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shaders] example - raymarching shapes
* raylib [shaders] example - raymarching
*
* Example complexity rating: [★★★★] 4/4
*
@ -35,7 +35,7 @@ int main(void)
const int screenHeight = 450;
SetConfigFlags(FLAG_WINDOW_RESIZABLE);
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - raymarching shapes");
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - raymarching");
Camera camera = { 0 };
camera.position = (Vector3){ 2.5f, 2.5f, 3.0f }; // Camera position

View File

@ -11,7 +11,7 @@
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2025-2025 Anstro Pleuton (@anstropleuton)
* Copyright (c) 2025 Anstro Pleuton (@anstropleuton)
*
********************************************************************************************/

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shaders] example - shapes and texture shaders
* raylib [shaders] example - shapes textures
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -38,7 +38,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - shapes and texture shaders");
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - shapes textures");
Texture2D fudesumi = LoadTexture("resources/fudesumi.png");

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shaders] example - simple shader mask
* raylib [shaders] example - simple mask
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -41,7 +41,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - simple shader mask");
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - simple mask");
// Define the camera to look into our 3d world
Camera camera = { 0 };

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shaders] example - shader spotlight
* raylib [shaders] example - spotlight
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -81,7 +81,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - shader spotlight");
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - spotlight");
HideCursor();
Texture texRay = LoadTexture("resources/raysan.png");

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shaders] example - texture drawing
* raylib [shaders] example - texture rendering
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -33,7 +33,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - texture drawing");
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - texture rendering");
Image imBlank = GenImageColor(1024, 1024, BLANK);
Texture2D texture = LoadTextureFromImage(imBlank); // Load blank texture to fill on shader

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shaders] example - render depth texture
* raylib [shaders] example - view depth
*
* Example complexity rating: [★★★☆] 3/4
*
@ -36,7 +36,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - render depth texture");
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - view depth");
// Init camera
Camera camera = { 0 };

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shaders] example - write depth buffer
* raylib [shaders] example - write depth
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -44,7 +44,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - write depth buffer");
InitWindow(screenWidth, screenHeight, "raylib [shaders] example - write depth");
// The shader inverts the depth buffer by writing into it by `gl_FragDepth = 1 - gl_FragCoord.z;`
Shader shader = LoadShader(0, TextFormat("resources/shaders/glsl%i/write_depth.fs", GLSL_VERSION));

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shapes] example - basic shapes drawing
* raylib [shapes] example - basic shapes
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -25,7 +25,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [shapes] example - basic shapes drawing");
InitWindow(screenWidth, screenHeight, "raylib [shapes] example - basic shapes");
float rotation = 0.0f;

View File

@ -4,7 +4,7 @@
*
* Example complexity rating: [★★☆☆] 2/4
*
* Example originally created with raylib 5.5, last time updated with raylib 5.6-dev
* Example originally created with raylib 5.5, last time updated with raylib 5.6
*
* Example contributed by Hamza RAHAL (@hmz-rhl) and reviewed by Ramon Santamaria (@raysan5)
*

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shapes] example - cubic-bezier lines
* raylib [shapes] example - lines bezier
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -26,7 +26,7 @@ int main(void)
const int screenHeight = 450;
SetConfigFlags(FLAG_MSAA_4X_HINT);
InitWindow(screenWidth, screenHeight, "raylib [shapes] example - cubic-bezier lines");
InitWindow(screenWidth, screenHeight, "raylib [shapes] example - lines bezier");
Vector2 startPoint = { 30, 30 };
Vector2 endPoint = { (float)screenWidth - 30, (float)screenHeight - 30 };

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shapes] example - raylib logo using shapes
* raylib [shapes] example - logo raylib
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -25,7 +25,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [shapes] example - raylib logo using shapes");
InitWindow(screenWidth, screenHeight, "raylib [shapes] example - logo raylib");
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shapes] example - raylib logo animation
* raylib [shapes] example - logo raylib anim
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -25,7 +25,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [shapes] example - raylib logo animation");
InitWindow(screenWidth, screenHeight, "raylib [shapes] example - logo raylib anim");
int logoPositionX = screenWidth/2 - 128;
int logoPositionY = screenHeight/2 - 128;

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shapes] example - rectangle avanced
* raylib [shapes] example - rectangle advanced
*
* Example complexity rating: [★★★★] 4/4
*
@ -37,7 +37,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [shapes] example - rectangle avanced");
InitWindow(screenWidth, screenHeight, "raylib [shapes] example - rectangle advanced");
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shapes] example - rectangle scaling mouse
* raylib [shapes] example - rectangle scaling
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -29,7 +29,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [shapes] example - rectangle scaling mouse");
InitWindow(screenWidth, screenHeight, "raylib [shapes] example - rectangle scaling");
Rectangle rec = { 100, 100, 200, 80 };

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [shapes] example - draw ring
* raylib [shapes] example - ring drawing
*
* Example complexity rating: [] 3/4
*
@ -30,7 +30,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [shapes] example - draw ring");
InitWindow(screenWidth, screenHeight, "raylib [shapes] example - ring drawing");
Vector2 center = {(GetScreenWidth() - 300)/2.0f, GetScreenHeight()/2.0f };

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [text] example - 3d text drawing
* raylib [text] example - 3d drawing
*
* Example complexity rating: [★★★★] 4/4
*
@ -87,7 +87,7 @@ int main(void)
const int screenHeight = 450;
SetConfigFlags(FLAG_MSAA_4X_HINT|FLAG_VSYNC_HINT);
InitWindow(screenWidth, screenHeight, "raylib [text] example - 3d text drawing");
InitWindow(screenWidth, screenHeight, "raylib [text] example - 3d drawing");
bool spin = true; // Spin the camera?
bool multicolor = false; // Multicolor mode

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [text] example - font texture filters
* raylib [text] example - font filters
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -29,7 +29,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [text] example - font texture filters");
InitWindow(screenWidth, screenHeight, "raylib [text] example - font filters");
const char msg[50] = "Loaded Font";

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [text] example - font SDF loading
* raylib [text] example - font sdf
*
* Example complexity rating: [★★★☆] 3/4
*
@ -33,7 +33,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [text] example - font SDF loading");
InitWindow(screenWidth, screenHeight, "raylib [text] example - font sdf");
// NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required)

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [text] example - sprite font loading
* raylib [text] example - font spritefont
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -35,7 +35,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [text] example - sprite font loading");
InitWindow(screenWidth, screenHeight, "raylib [text] example - font spritefont");
const char msg1[50] = "THIS IS A custom SPRITE FONT...";
const char msg2[50] = "...and this is ANOTHER CUSTOM font...";

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [text] example - text formatting
* raylib [text] example - format text
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -25,7 +25,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [text] example - text formatting");
InitWindow(screenWidth, screenHeight, "raylib [text] example - format text");
int score = 100020;
int hiscore = 200450;

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [text] example - text writing animation
* raylib [text] example - writing anim
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -25,7 +25,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [text] example - text writing animation");
InitWindow(screenWidth, screenHeight, "raylib [text] example - writing anim");
const char message[128] = "This sample illustrates a text writing\nanimation effect! Check it out! ;)";

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [textures] example - gif playing
* raylib [textures] example - gif player
*
* Example complexity rating: [★★★☆] 3/4
*
@ -28,7 +28,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [textures] example - gif playing");
InitWindow(screenWidth, screenHeight, "raylib [textures] example - gif player");
int animFrames = 0;

View File

@ -1,12 +1,12 @@
/*******************************************************************************************
*
* raylib [textures] example - extract channel from image
* raylib [textures] example - image channel
*
* NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM)
*
* Example complexity rating: [★★☆☆] 2/4
*
* Example originally created with raylib 5.1-dev, last time updated with raylib 5.1-dev
* Example originally created with raylib 5.5, last time updated with raylib 5.5
*
* Example contributed by Bruno Cabral (@brccabral) and reviewed by Ramon Santamaria (@raysan5)
*
@ -29,7 +29,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [textures] example - extract channel from image");
InitWindow(screenWidth, screenHeight, "raylib [textures] example - image channel");
Image fudesumiImage = LoadImage("resources/fudesumi.png");

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [textures] example - procedural images generation
* raylib [textures] example - image generation
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -29,7 +29,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [textures] example - procedural images generation");
InitWindow(screenWidth, screenHeight, "raylib [textures] example - image generation");
Image verticalGradient = GenImageGradientLinear(screenWidth, screenHeight, 0, RED, BLUE);
Image horizontalGradient = GenImageGradientLinear(screenWidth, screenHeight, 90, RED, BLUE);

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [textures] example - image convolution
* raylib [textures] example - image kernel
*
* Example complexity rating: [★★★★] 4/4
*
@ -34,7 +34,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [textures] example - image convolution");
InitWindow(screenWidth, screenHeight, "raylib [textures] example - image kernel");
Image image = LoadImage("resources/cat.png"); // Loaded in CPU memory (RAM)

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [textures] example - image rotation
* raylib [textures] example - image rotate
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -27,7 +27,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [textures] example - image rotation");
InitWindow(screenWidth, screenHeight, "raylib [textures] example - image rotate");
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
Image image45 = LoadImage("resources/raylib_logo.png");

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [textures] example - image text drawing
* raylib [textures] example - image text
*
* Example complexity rating: [★★☆☆] 2/4
*
@ -25,7 +25,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [textures] example - image text drawing");
InitWindow(screenWidth, screenHeight, "raylib [textures] example - image text");
Image parrots = LoadImage("resources/parrots.png"); // Load image in CPU memory (RAM)

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [textures] example - texture loading and drawing
* raylib [textures] example - logo raylib
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -25,7 +25,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture loading and drawing");
InitWindow(screenWidth, screenHeight, "raylib [textures] example - logo raylib");
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
Texture2D texture = LoadTexture("resources/raylib_logo.png"); // Texture loading

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [textures] example - N-patch drawing
* raylib [textures] example - npatch drawing
*
* Example complexity rating: [★★★☆] 3/4
*
@ -29,7 +29,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [textures] example - N-patch drawing");
InitWindow(screenWidth, screenHeight, "raylib [textures] example - npatch drawing");
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
Texture2D nPatchTexture = LoadTexture("resources/ninepatch_button.png");

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [textures] example - textured polygon
* raylib [textures] example - polygon drawing
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -35,7 +35,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [textures] example - textured polygon");
InitWindow(screenWidth, screenHeight, "raylib [textures] example - polygon drawing");
// Define texture coordinates to map our texture to poly
Vector2 texcoords[MAX_POINTS] = {

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [textures] example - texture from raw data
* raylib [textures] example - raw data
*
* Example complexity rating: [★★★☆] 3/4
*
@ -29,7 +29,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture from raw data");
InitWindow(screenWidth, screenHeight, "raylib [textures] example - raw data");
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)

View File

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [textures] example - texture source and destination rectangles
* raylib [textures] example - srcrec dstrec
*
* Example complexity rating: [★★★☆] 3/4
*
@ -25,7 +25,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture source and destination rectangles");
InitWindow(screenWidth, screenHeight, "raylib [textures] example - srcrec dstrec");
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [textures] example - textures tiled drawing
* raylib [textures] example - tiled drawing
*
* Example complexity rating: [★★★☆] 3/4
*
@ -36,7 +36,7 @@ int main(void)
const int screenHeight = 450;
SetConfigFlags(FLAG_WINDOW_RESIZABLE); // Make the window resizable
InitWindow(screenWidth, screenHeight, "raylib [textures] example - textures tiled drawing");
InitWindow(screenWidth, screenHeight, "raylib [textures] example - tiled drawing");
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
Texture texPattern = LoadTexture("resources/patterns.png");

View File

@ -1,6 +1,6 @@
/*******************************************************************************************
*
* raylib [textures] example - texture to image
* raylib [textures] example - to image
*
* Example complexity rating: [★☆☆☆] 1/4
*
@ -27,7 +27,7 @@ int main(void)
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture to image");
InitWindow(screenWidth, screenHeight, "raylib [textures] example - to image");
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)

View File

@ -25,7 +25,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "others", "others", "{E9D708
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_basic_window", "examples\core_basic_window.vcxproj", "{0981CA98-E4A5-4DF1-987F-A41D09131EFC}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textures_sprite_anim", "examples\textures_sprite_anim.vcxproj", "{C25D2CC6-80CA-4C8A-BE3B-2E0F4EA5D0CC}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textures_sprite_animation", "examples\textures_sprite_animation.vcxproj", "{C25D2CC6-80CA-4C8A-BE3B-2E0F4EA5D0CC}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textures_srcrec_dstrec", "examples\textures_srcrec_dstrec.vcxproj", "{103B292B-049B-4B15-85A1-9F902840DB2C}"
EndProject
@ -189,7 +189,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_draw_circle_sector",
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_draw_rectangle_rounded", "examples\shapes_draw_rectangle_rounded.vcxproj", "{48871156-181A-475A-BD8D-200086A09675}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_draw_ring", "examples\shapes_draw_ring.vcxproj", "{C4416DA1-9E62-46BA-9CD3-F8963C79E1A1}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_ring_drawing", "examples\shapes_ring_drawing.vcxproj", "{C4416DA1-9E62-46BA-9CD3-F8963C79E1A1}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_easings_ball_anim", "examples\shapes_easings_ball_anim.vcxproj", "{1C49E35A-2838-49D9-9D5F-4B8134960EF6}"
EndProject

View File

@ -67,7 +67,7 @@ Example elements validated:
| shapes_easings_ball_anim | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| shapes_easings_box_anim | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| shapes_easings_rectangle_array | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| shapes_draw_ring | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| shapes_ring_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| shapes_draw_circle_sector | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| shapes_draw_rectangle_rounded | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| shapes_top_down_lights | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
@ -87,7 +87,7 @@ Example elements validated:
| textures_particles_blending | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textures_npatch_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textures_background_scrolling | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textures_sprite_anim | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textures_sprite_animation | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textures_sprite_button | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textures_sprite_explosion | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textures_bunnymark | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
@ -174,9 +174,9 @@ Example elements validated:
| audio_stream_effects | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| audio_sound_multi | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| audio_sound_positioning | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| rlgl_standalone | ✔ | ❌ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| rlgl_compute_shader | ✔ | ❌ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| easings_testbed | ✔ | ❌ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| rlgl_standalone | ✔ | ❌ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| rlgl_compute_shader | ✔ | ❌ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| easings_testbed | ✔ | ❌ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| raylib_opengl_interop | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ |
| embedded_files_loading | ✔ | ❌ | | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| embedded_files_loading | ✔ | ❌ | | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| raymath_vector_angle | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ |

View File

@ -20,9 +20,9 @@ Example elements validated:
```
| **EXAMPLE NAME** | [C] | [CAT]| [INFO]|[PNG]|[WPNG]| [RES]| [MK] |[MKWEB]| [VCX]| [SOL]|[RDME]|[JS] | [WOUT]|[WMETA]|
|:---------------------------------|:---:|:----:|:-----:|:---:|:----:|:----:|:----:|:-----:|:----:|:----:|:----:|:---:|:-----:|:-----:|
| rlgl_standalone | ✔ | ❌ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| rlgl_compute_shader | ✔ | ❌ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| easings_testbed | ✔ | ❌ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| rlgl_standalone | ✔ | ❌ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| rlgl_compute_shader | ✔ | ❌ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| easings_testbed | ✔ | ❌ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| raylib_opengl_interop | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ |
| embedded_files_loading | ✔ | ❌ | | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| embedded_files_loading | ✔ | ❌ | | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| raymath_vector_angle | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ |

View File

@ -67,6 +67,9 @@
#define REXM_MAX_RESOURCE_PATHS 256
// Create local commit with changes on example renaming
#define RENAME_AUTO_COMMIT_CREATION
//----------------------------------------------------------------------------------
// Types and Structures Definition
//----------------------------------------------------------------------------------
@ -605,9 +608,8 @@ int main(int argc, char *argv[])
system(TextFormat("make -C %s -f Makefile.Web %s/%s PLATFORM=PLATFORM_WEB -B", exBasePath, exCategory, exName));
#endif
// Update generated .html metadata
char exHtmlPath[512] = { 0 };
strcpy(exHtmlPath, TextFormat("%s/%s/%s.html", exBasePath, exCategory, exName)); // WARNING: Cache path for saving
UpdateWebMetadata(exHtmlPath, TextFormat("%s/%s/%s.c", exBasePath, exCategory, exName));
UpdateWebMetadata(TextFormat("%s/%s/%s.html", exBasePath, exCategory, exName),
TextFormat("%s/%s/%s.c", exBasePath, exCategory, exName));
// Copy results to web side
FileCopy(TextFormat("%s/%s/%s.html", exBasePath, exCategory, exName),
@ -637,6 +639,10 @@ int main(int argc, char *argv[])
FileRename(TextFormat("%s/%s/%s.png", exBasePath, exCategory, exName),
TextFormat("%s/%s/%s.png", exBasePath, exCategory, exRename));
// TODO: Edit: Update example source code metadata
//rlExampleInfo *info = LoadExamplesData(exCollectionFilePath, exRename, false, NULL); // TODO: Load one example from collection
//UpdateSourceMetadata(TextFormat("%s/%s/%s.c", exBasePath, exCategory, exRename), info);
// NOTE: Example resource files do not need to be changed...
// unless the example is moved from one caegory to another
@ -691,9 +697,8 @@ int main(int argc, char *argv[])
system(TextFormat("make -C %s -f Makefile.Web %s/%s PLATFORM=PLATFORM_WEB -B", exBasePath, exRecategory, exRename));
#endif
// Update generated .html metadata
char exHtmlPath[512] = { 0 };
strcpy(exHtmlPath, TextFormat("%s/%s/%s.html", exBasePath, exCategory, exRename)); // WARNING: Cache path for saving
UpdateWebMetadata(exHtmlPath, TextFormat("%s/%s/%s.c", exBasePath, exCategory, exRename));
UpdateWebMetadata(TextFormat("%s/%s/%s.html", exBasePath, exCategory, exRename),
TextFormat("%s/%s/%s.c", exBasePath, exCategory, exRename));
// Copy results to web side
FileCopy(TextFormat("%s/%s/%s.html", exBasePath, exRecategory, exRename),
@ -705,7 +710,7 @@ int main(int argc, char *argv[])
FileCopy(TextFormat("%s/%s/%s.js", exBasePath, exRecategory, exRename),
TextFormat("%s/%s/%s.js", exWebPath, exRecategory, exRename));
/*
#if defined(RENAME_AUTO_COMMIT_CREATION)
// Create GitHub commit with changes (local)
putenv("PATH=%PATH%;C:\\Program Files\\Git\\bin");
ChangeDirectory("C:\\GitHub\\raylib");
@ -720,7 +725,7 @@ int main(int argc, char *argv[])
if (result != 0) LOG("WARNING: Error committing changes\n");
//result = system("git push"); // Push to the remote (origin, current branch)
//if (result != 0) LOG("WARNING: Error pushing changes\n");
*/
#endif
} break;
case OP_REMOVE: // Remove
@ -1091,12 +1096,12 @@ int main(int argc, char *argv[])
#endif
// Update generated .html metadata
char exHtmlPath[512] = { 0 };
strcpy(exHtmlPath, TextFormat("%s/%s/%s.html", exBasePath, exInfo->category, exInfo->name)); // WARNING: Cache path for saving
UpdateWebMetadata(exHtmlPath, TextFormat("%s/%s/%s.c", exBasePath, exInfo->category, exInfo->name));
UpdateWebMetadata(TextFormat("%s/%s/%s.html", exBasePath, exInfo->category, exInfo->name),
TextFormat("%s/%s/%s.c", exBasePath, exInfo->category, exInfo->name));
// Copy results to web side
FileCopy(exHtmlPath, TextFormat("%s/%s/%s.html", exWebPath, exInfo->category, exInfo->name));
FileCopy(TextFormat("%s/%s/%s.html", exBasePath, exInfo->category, exInfo->name),
TextFormat("%s/%s/%s.html", exWebPath, exInfo->category, exInfo->name));
FileCopy(TextFormat("%s/%s/%s.data", exBasePath, exInfo->category, exInfo->name),
TextFormat("%s/%s/%s.data", exWebPath, exInfo->category, exInfo->name));
FileCopy(TextFormat("%s/%s/%s.wasm", exBasePath, exInfo->category, exInfo->name),
@ -1107,6 +1112,14 @@ int main(int argc, char *argv[])
exInfo->status &= ~VALID_MISSING_WEB_OUTPUT;
exInfo->status &= ~VALID_MISSING_WEB_METADATA;
}
if (exInfo->status & VALID_INCONSISTENT_INFO)
{
// Update source code header info
UpdateSourceMetadata(TextFormat("%s/%s/%s.c", exBasePath, exInfo->category, exInfo->name), exInfo);
exInfo->status &= ~VALID_INCONSISTENT_INFO;
}
}
}
@ -1282,9 +1295,8 @@ int main(int argc, char *argv[])
#endif
// Update generated .html metadata
char exHtmlPath[512] = { 0 };
strcpy(exHtmlPath, TextFormat("%s/%s/%s.html", exBasePath, exCategory, exName)); // WARNING: Cache path for saving
UpdateWebMetadata(exHtmlPath, TextFormat("%s/%s/%s.c", exBasePath, exCategory, exName));
UpdateWebMetadata(TextFormat("%s/%s/%s.html", exBasePath, exCategory, exName),
TextFormat("%s/%s/%s.c", exBasePath, exCategory, exName));
// Copy results to web side
FileCopy(TextFormat("%s/%s/%s.html", exBasePath, exCategory, exName),
@ -1349,6 +1361,18 @@ static int UpdateRequiredFiles(void)
{
int result = 0;
// Edit: Example source code metadata for consistency
//------------------------------------------------------------------------------------------------
int exListCount = 0;
rlExampleInfo *exList = LoadExamplesData(exCollectionFilePath, "ALL", true, &exListCount);
for (int i = 0; i < exListCount; i++)
{
rlExampleInfo *info = &exList[i];
UpdateSourceMetadata(TextFormat("%s/%s/%s.c", exBasePath, info->category, info->name), info);
}
UnloadExamplesData(exList);
//------------------------------------------------------------------------------------------------
// Edit: raylib/examples/Makefile --> Update from collection
//------------------------------------------------------------------------------------------------
char *mkText = LoadFileText(TextFormat("%s/Makefile", exBasePath));
@ -1863,13 +1887,17 @@ static rlExampleInfo *LoadExampleInfo(const char *exFileName)
// Get example create with raylib version
int verCreateIndex = TextFindIndex(exText, "created with raylib "); // Version = index + 20
if (verCreateIndex > 0) strncpy(exInfo->verCreated, exText + verCreateIndex + 20, 3);
else strncpy(exInfo->verCreated, RAYLIB_VERSION, 3); // Only pick MAJOR.MINOR
int verCreatedLen = 0;
for (int i = verCreateIndex + 20; (exText[i] != ' ') && (exText[i] != '\n') && (exText[i] != ','); i++) verCreatedLen++;
if (verCreateIndex > 0) strncpy(exInfo->verCreated, exText + verCreateIndex + 20, verCreatedLen);
else strcpy(exInfo->verCreated, RAYLIB_VERSION); // Use current raylib version
// Get example update with raylib version
int verUpdateIndex = TextFindIndex(exText, "updated with raylib "); // Version = index + 20
if (verUpdateIndex > 0) strncpy(exInfo->verUpdated, exText + verUpdateIndex + 20, 3);
else strncpy(exInfo->verUpdated, RAYLIB_VERSION, 3); // Only pick MAJOR.MINOR
int verUpdateLen = 0;
for (int i = verUpdateIndex + 20; (exText[i] != ' ') && (exText[i] != '\n') && (exText[i] != ','); i++) verUpdateLen++;
if (verUpdateIndex > 0) strncpy(exInfo->verUpdated, exText + verUpdateIndex + 20, verUpdateLen);
else strcpy(exInfo->verUpdated, RAYLIB_VERSION); // Use current raylib version
// Get example years created/reviewed and creator and github user
// NOTE: Using copyright line instead of "Example contributed by " because
@ -1933,7 +1961,7 @@ static int ParseExampleInfoLine(const char *line, rlExampleInfo *entry)
int tokenCount = 0;
char **tokens = TextSplit(line, ';', &tokenCount);
if (tokenCount != 7) LOG("REXM: WARNING: Example collection line contains invalid numbe of tokens: %i", tokenCount);
if (tokenCount != 9) LOG("REXM: WARNING: Example collection line contains invalid number of tokens: %i\n", tokenCount);
// Get category and name
strcpy(entry->category, tokens[0]);
@ -1963,10 +1991,10 @@ static int ParseExampleInfoLine(const char *line, rlExampleInfo *entry)
entry->yearReviewed = TextToInteger(tokens[6]);
// Get author and github
if (tokens[6][0] == '"') tokens[6] += 1;
if (tokens[6][strlen(tokens[6]) - 1] == '"') tokens[6][strlen(tokens[6]) - 1] = '\0';
strcpy(entry->author, tokens[6]);
strcpy(entry->authorGitHub, tokens[7] + 1); // Skip '@'
if (tokens[7][0] == '"') tokens[7] += 1;
if (tokens[7][strlen(tokens[7]) - 1] == '"') tokens[7][strlen(tokens[7]) - 1] = '\0';
strcpy(entry->author, tokens[7]);
strcpy(entry->authorGitHub, tokens[8] + 1); // Skip '@'
return 1;
}
@ -2004,8 +2032,7 @@ static char **ScanExampleResources(const char *filePath, int *resPathCount)
if (code != NULL)
{
// Resources extensions to check
const char *exts[] = { ".png", ".bmp", ".jpg", ".qoi", ".gif", ".raw", ".hdr", ".ttf", ".fnt",
".wav", ".ogg", ".mp3", ".flac", ".mod", ".qoa", ".qoa", ".obj", ".iqm", ".glb", ".m3d", ".vox", ".vs", ".fs", ".txt" };
const char *exts[] = { ".png", ".bmp", ".jpg", ".qoi", ".gif", ".raw", ".hdr", ".ttf", ".fnt", ".wav", ".ogg", ".mp3", ".flac", ".mod", ".qoa", ".obj", ".iqm", ".glb", ".m3d", ".vox", ".vs", ".fs", ".txt" };
const int extCount = sizeof(exts)/sizeof(char *);
char *ptr = code;
@ -2018,8 +2045,9 @@ static char **ScanExampleResources(const char *filePath, int *resPathCount)
// WARNING: Some paths could be for saving files, not loading, those "resource" files must be omitted
// HACK: Just check previous position from pointer for function name including the string...
// This is a quick solution, the good one would be getting the data loading function names...
if ((TextFindIndex(ptr - 40, "ExportImage") == -1) &&
(TextFindIndex(ptr - 10, "TraceLog") == -1)) // Avoid TraceLog() strings processing
//if ((TextFindIndex(ptr - 40, "ExportImage") == -1) &&
// (TextFindIndex(ptr - 10, "TraceLog") == -1)) // Avoid TraceLog() strings processing
if (TextFindIndex(ptr - 40, "ExportImage") == -1)
{
int len = (int)(end - start);
if ((len > 0) && (len < REXM_MAX_RESOURCE_PATH_LEN))
@ -2271,8 +2299,13 @@ static void UpdateSourceMetadata(const char *exSrcPath, const rlExampleInfo *inf
{
if (FileExists(exSrcPath) && IsFileExtension(exSrcPath, ".c"))
{
char *exText = LoadFileText(exSrcPath);
// WARNING: Cache a copy of exSrcPath to avoid modifications by TextFormat()
char exSourcePath[512] = { 0 };
strcpy(exSourcePath, exSrcPath);
char *exText = LoadFileText(exSourcePath);
char *exTextUpdated[6] = { 0 }; // Pointers to multiple updated text versions
char *exTextUpdatedPtr = exText; // Pointer to current valid text version
char exNameFormated[256] = { 0 }; // Example name without category and using spaces
int exNameIndex = TextFindIndex(info->name, "_");
@ -2282,8 +2315,9 @@ static void UpdateSourceMetadata(const char *exSrcPath, const rlExampleInfo *inf
// Update example header title (line #3 - ALWAYS)
// String: "* raylib [shaders] example - texture drawing"
exTextUpdated[0] = TextReplaceBetween(exText,
exTextUpdated[0] = TextReplaceBetween(exTextUpdatedPtr,
TextFormat("%s] example - %s", info->category, exNameFormated), "* raylib [", "\n");
if (exTextUpdated[0] != NULL) exTextUpdatedPtr = exTextUpdated[0];
// Update example complexity rating
// String: "* Example complexity rating: [★★☆☆] 2/4"
@ -2295,40 +2329,45 @@ static void UpdateSourceMetadata(const char *exSrcPath, const rlExampleInfo *inf
if (i < info->stars) strcpy(starsText + 3*i, "");
else strcpy(starsText + 3*i, "");
}
exTextUpdated[1] = TextReplaceBetween(exTextUpdated[0],
exTextUpdated[1] = TextReplaceBetween(exTextUpdatedPtr,
TextFormat("%s] %i", starsText, info->stars), "* Example complexity rating: [", "/4\n");
if (exTextUpdated[1] != NULL) exTextUpdatedPtr = exTextUpdated[1];
// Update example creation/update raylib versions
// String: "* Example originally created with raylib 2.0, last time updated with raylib 3.7
exTextUpdated[2] = TextReplaceBetween(exTextUpdated[1],
exTextUpdated[2] = TextReplaceBetween(exTextUpdatedPtr,
TextFormat("%s, last time updated with raylib %s", info->verCreated, info->verUpdated), "* Example originally created with raylib ", "\n");
if (exTextUpdated[2] != NULL) exTextUpdatedPtr = exTextUpdated[2];
// Update copyright message
// String: "* Copyright (c) 2019-2025 Contributor Name (@github_user) and Ramon Santamaria (@raysan5)"
if (info->yearCreated == info->yearReviewed)
{
exTextUpdated[3] = TextReplaceBetween(exTextUpdated[2],
exTextUpdated[3] = TextReplaceBetween(exTextUpdatedPtr,
TextFormat("%i %s (@%s", info->yearCreated, info->author, info->authorGitHub), "Copyright (c) ", ")");
if (exTextUpdated[3] != NULL) exTextUpdatedPtr = exTextUpdated[3];
}
else
{
exTextUpdated[3] = TextReplaceBetween(exTextUpdated[2],
exTextUpdated[3] = TextReplaceBetween(exTextUpdatedPtr,
TextFormat("%i-%i %s (@%s", info->yearCreated, info->yearReviewed, info->author, info->authorGitHub), "Copyright (c) ", ")");
if (exTextUpdated[3] != NULL) exTextUpdatedPtr = exTextUpdated[3];
}
// Update window title
// String: "InitWindow(screenWidth, screenHeight, "raylib [shaders] example - texture drawing");"
exTextUpdated[4] = TextReplaceBetween(exTextUpdated[3],
TextFormat("raylib [%s] example - %s", info->category, exNameFormated), "InitWindow(screenWidth, screenHeight, \"", "\");");
if (exTextUpdated[4] != NULL) exTextUpdatedPtr = exTextUpdated[4];
// Update contributors names
// String: "* Example contributed by Contributor Name (@github_user) and reviewed by Ramon Santamaria (@raysan5)"
// WARNING: Not all examples are contributed by someone, so the result of this replace can be NULL (string not found)
exTextUpdated[5] = TextReplaceBetween(exTextUpdated[4],
TextFormat("%s (@%s", info->author, info->authorGitHub), "* Example contributed by ", ")");
if (exTextUpdated[5] != NULL) SaveFileText(exSrcPath, exTextUpdated[5]);
else SaveFileText(exSrcPath, exTextUpdated[4]);
exTextUpdated[5] = TextReplaceBetween(exTextUpdatedPtr,
TextFormat("%s (@%s", info->author, info->authorGitHub), "* Example contributed by ", ")");
if (exTextUpdated[5] != NULL) exTextUpdatedPtr = exTextUpdated[5];
if (exTextUpdatedPtr != NULL) SaveFileText(exSourcePath, exTextUpdatedPtr);
for (int i = 0; i < 6; i++) { MemFree(exTextUpdated[i]); exTextUpdated[i] = NULL; }
@ -2341,7 +2380,11 @@ static void UpdateWebMetadata(const char *exHtmlPath, const char *exFilePath)
{
if (FileExists(exHtmlPath) && IsFileExtension(exHtmlPath, ".html"))
{
char *exHtmlText = LoadFileText(exHtmlPath);
// WARNING: Cache a copy of exHtmlPath to avoid modifications by TextFormat()
char exHtmlPathCopy[512] = { 0 };
strcpy(exHtmlPathCopy, exHtmlPath);
char *exHtmlText = LoadFileText(exHtmlPathCopy);
char *exHtmlTextUpdated[6] = { 0 }; // Pointers to multiple updated text versions
char exName[64] = { 0 }; // Example name: fileName without extension
@ -2350,7 +2393,7 @@ static void UpdateWebMetadata(const char *exHtmlPath, const char *exFilePath)
char exTitle[64] = { 0 }; // Example title: fileName without extension, replacing underscores by spaces
// Get example name: replace underscore by spaces
strcpy(exName, GetFileNameWithoutExt(exHtmlPath));
strcpy(exName, GetFileNameWithoutExt(exHtmlPathCopy));
strcpy(exTitle, exName);
for (int i = 0; (i < 256) && (exTitle[i] != '\0'); i++) { if (exTitle[i] == '_') exTitle[i] = ' '; }
@ -2377,7 +2420,7 @@ static void UpdateWebMetadata(const char *exHtmlPath, const char *exFilePath)
exHtmlTextUpdated[5] = TextReplace(exHtmlTextUpdated[4], "https://github.com/raysan5/raylib",
TextFormat("https://github.com/raysan5/raylib/blob/master/examples/%s/%s.c", exCategory, exName));
SaveFileText(exHtmlPath, exHtmlTextUpdated[5]);
SaveFileText(exHtmlPathCopy, exHtmlTextUpdated[5]);
//LOG("INFO: [%s] Updated successfully\n",files.paths[i]);
//LOG(" - Name / Title: %s / %s\n", exName, exTitle);