From 8b88b6371366b8e9f7ea6a343312cb682dacb1e3 Mon Sep 17 00:00:00 2001 From: Jopestpe <47086979+Jopestpe@users.noreply.github.com> Date: Tue, 30 Sep 2025 17:21:44 -0300 Subject: [PATCH 1/2] ADDED: example: models_geometry_textures_cube --- examples/Makefile | 1 + examples/Makefile.Web | 5 + examples/README.md | 5 +- examples/examples_list.txt | 1 + .../models/models_geometry_textures_cube.c | 91 ++++++++++++++++++ .../models/models_geometry_textures_cube.png | Bin 0 -> 49462 bytes 6 files changed, 101 insertions(+), 2 deletions(-) create mode 100644 examples/models/models_geometry_textures_cube.c create mode 100644 examples/models/models_geometry_textures_cube.png diff --git a/examples/Makefile b/examples/Makefile index de02ae0858d7..aff730f8f869 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -615,6 +615,7 @@ MODELS = \ models/models_cubicmap_rendering \ models/models_first_person_maze \ models/models_geometric_shapes \ + models/models_geometry_textures_cube \ models/models_heightmap_rendering \ models/models_loading \ models/models_loading_gltf \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 8c9707274276..5ffbb652d8cb 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -615,6 +615,7 @@ MODELS = \ models/models_cubicmap_rendering \ models/models_first_person_maze \ models/models_geometric_shapes \ + models/models_geometry_textures_cube \ models/models_heightmap_rendering \ models/models_loading \ models/models_loading_gltf \ @@ -1084,6 +1085,10 @@ models/models_first_person_maze: models/models_first_person_maze.c models/models_geometric_shapes: models/models_geometric_shapes.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) +models/models_geometry_textures_cube: models/models_geometry_textures_cube.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png + models/models_heightmap_rendering: models/models_heightmap_rendering.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file models/resources/heightmap.png@resources/heightmap.png diff --git a/examples/README.md b/examples/README.md index 92ea9aa07fb5..c0de979606a6 100644 --- a/examples/README.md +++ b/examples/README.md @@ -17,7 +17,7 @@ You may find it easier to use than other toolchains, especially when it comes to - `zig 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 COLLECTION [TOTAL: 165] +## EXAMPLES COLLECTION [TOTAL: 166] ### category: core [38] @@ -146,7 +146,7 @@ Examples using raylib text functionality, including sprite fonts loading/generat | [text_codepoints_loading](text/text_codepoints_loading.c) | text_codepoints_loading | ⭐⭐⭐☆ | 4.2 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [text_inline_styling](text/text_inline_styling.c) | text_inline_styling | ⭐⭐⭐☆ | 5.6-dev | 5.6-dev | [Wagner Barongello](https://github.com/SultansOfCode) | -### category: models [24] +### category: models [25] Examples using raylib models functionality, including models loading/generation and drawing, provided by raylib [models](../src/rmodels.c) module. @@ -176,6 +176,7 @@ Examples using raylib models functionality, including models loading/generation | [models_bone_socket](models/models_bone_socket.c) | models_bone_socket | ⭐⭐⭐⭐️ | 4.5 | 4.5 | [iP](https://github.com/ipzaur) | | [models_tesseract_view](models/models_tesseract_view.c) | models_tesseract_view | ⭐⭐☆☆ | 5.6-dev | 5.6-dev | [Timothy van der Valk](https://github.com/arceryz) | | [models_basic_voxel](models/models_basic_voxel.c) | models_basic_voxel | ⭐⭐☆☆ | 5.5 | 5.5 | [Tim Little](https://github.com/timlittle) | +| [models_geometry_textures_cube](models/models_geometry_textures_cube.c) | models_geometry_textures_cube | ⭐☆☆☆ | 5.6-dev | 5.6-dev | [Jopestpe](https://github.com/jopestpe) | ### category: shaders [29] diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 6af9bb6ebef4..7459823e1968 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -130,6 +130,7 @@ models;models_animation_gpu_skinning;★★★☆;4.5;4.5;2024;2025;"Daniel Hold models;models_bone_socket;★★★★;4.5;4.5;2024;2025;"iP";@ipzaur models;models_tesseract_view;★★☆☆;5.6-dev;5.6-dev;2024;2025;"Timothy van der Valk";@arceryz models;models_basic_voxel;★★☆☆;5.5;5.5;2025;2025;"Tim Little";@timlittle +models;models_geometry_textures_cube;★☆☆☆;5.6-dev;5.6-dev;2025;2025;"Jopestpe";@jopestpe shaders;shaders_basic_lighting;★★★★;3.0;4.2;2019;2025;"Chris Camacho";@chriscamacho shaders;shaders_model_shader;★★☆☆;1.3;3.7;2014;2025;"Ramon Santamaria";@raysan5 shaders;shaders_shapes_textures;★★☆☆;1.7;3.7;2015;2025;"Ramon Santamaria";@raysan5 diff --git a/examples/models/models_geometry_textures_cube.c b/examples/models/models_geometry_textures_cube.c new file mode 100644 index 000000000000..b6c699b7bad0 --- /dev/null +++ b/examples/models/models_geometry_textures_cube.c @@ -0,0 +1,91 @@ +/******************************************************************************************* +* +* raylib [core] example - geometry textures cube +* +* Example complexity rating: [★☆☆☆] 1/4 +* +* Example originally created with raylib 5.6-dev, last time updated with raylib 5.6-dev +* +* Example contributed by Jopestpe (@jopestpe) +* +* 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 Jopestpe (@jopestpe) +* +********************************************************************************************/ + +#include "raylib.h" + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [models] example - geometry textures cube"); + + // Define the camera to look into our 3d world + Camera camera = { 0 }; + camera.position = (Vector3){ 0.0f, 0.0f, 4.0f }; + camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; + camera.fovy = 45.0f; + camera.projection = CAMERA_PERSPECTIVE; + + // Load image to create texture for the cube + Model model = LoadModelFromMesh(GenMeshCube(1.0f, 1.0f, 1.0f)); + Image img = LoadImage("resources/cubicmap_atlas.png"); + Image crop = ImageFromImage(img, (Rectangle){0, img.height/2, img.width/2, img.height/2}); + Texture2D texture = LoadTextureFromImage(crop); + UnloadImage(img); + UnloadImage(crop); + + model.materials[0].maps[MATERIAL_MAP_DIFFUSE].texture = texture; + + float rotation = 0.0f; + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + // TODO: Update your variables here + //---------------------------------------------------------------------------------- + + rotation += 1.0f; + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + BeginMode3D(camera); + + DrawModelEx(model, (Vector3){0,0,0}, (Vector3){0.5f,1,0}, rotation, (Vector3){1,1,1}, WHITE); + + EndMode3D(); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(texture); // Unload texture + UnloadModel(model); // Unload model + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/examples/models/models_geometry_textures_cube.png b/examples/models/models_geometry_textures_cube.png new file mode 100644 index 0000000000000000000000000000000000000000..4c199bdc4f363f3f714c4bd00a0e2f80072a5f2d GIT binary patch literal 49462 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%0A!s3WfJA7 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 Date: Tue, 30 Sep 2025 17:57:07 -0300 Subject: [PATCH 2/2] FIXED: example: models_geometry_textures_cube - removed leftover TODO and aligned title with header --- examples/models/models_geometry_textures_cube.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/examples/models/models_geometry_textures_cube.c b/examples/models/models_geometry_textures_cube.c index b6c699b7bad0..4608ad9512de 100644 --- a/examples/models/models_geometry_textures_cube.c +++ b/examples/models/models_geometry_textures_cube.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [core] example - geometry textures cube +* raylib [models] example - geometry textures cube * * Example complexity rating: [★☆☆☆] 1/4 * @@ -57,9 +57,6 @@ int main(void) { // Update //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - rotation += 1.0f; // Draw