From b17936de224830f2276d3af3c0fff014ee981f99 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 10:55:48 +0200 Subject: [PATCH] REXM: RENAME: example: `models_billboard` --> `models_billboard_rendering` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- examples/models/models_billboard.c | 115 ---- examples/models/models_billboard.png | Bin 54859 -> 0 bytes .../VS2022/examples/models_billboard.vcxproj | 569 ------------------ projects/VS2022/raylib.sln | 2 +- tools/rexm/rexm.c | 7 +- 9 files changed, 10 insertions(+), 693 deletions(-) delete mode 100644 examples/models/models_billboard.c delete mode 100644 examples/models/models_billboard.png delete mode 100644 projects/VS2022/examples/models_billboard.vcxproj diff --git a/examples/Makefile b/examples/Makefile index 86c1e7bec..0db8961c2 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -603,7 +603,7 @@ TEXT = \ MODELS = \ models/models_animation \ - models/models_billboard \ + models/models_billboard_rendering_rendering \ models/models_bone_socket \ models/models_box_collisions \ models/models_cubicmap \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 349462058..6da9080f5 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -603,7 +603,7 @@ TEXT = \ MODELS = \ models/models_animation \ - models/models_billboard \ + models/models_billboard_rendering_rendering \ models/models_bone_socket \ models/models_box_collisions \ models/models_cubicmap \ @@ -1028,7 +1028,7 @@ models/models_animation: models/models_animation.c --preload-file models/resources/models/iqm/guytex.png@resources/models/iqm/guytex.png \ --preload-file models/resources/models/iqm/guyanim.iqm@resources/models/iqm/guyanim.iqm -models/models_billboard: models/models_billboard.c +models/models_billboard_rendering_rendering: models/models_billboard_rendering_rendering.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file models/resources/billboard.png@resources/billboard.png diff --git a/examples/README.md b/examples/README.md index 3535682d6..ccd866f15 100644 --- a/examples/README.md +++ b/examples/README.md @@ -148,7 +148,7 @@ Examples using raylib models functionality, including models loading/generation | example | image | difficulty
level | version
created | last version
updated | original
developer | |-----------|--------|:-------------------:|:------------------:|:-----------------------:|:----------------------| | [models_animation](models/models_animation.c) | models_animation | ⭐⭐☆☆ | 2.5 | 3.5 | [Culacant](https://github.com/culacant) | -| [models_billboard](models/models_billboard.c) | models_billboard | ⭐⭐⭐☆ | 1.3 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | +| [models_billboard_rendering_rendering](models/models_billboard_rendering_rendering.c) | models_billboard_rendering_rendering | ⭐⭐⭐☆ | 1.3 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | | [models_box_collisions](models/models_box_collisions.c) | models_box_collisions | ⭐☆☆☆ | 1.3 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | | [models_cubicmap](models/models_cubicmap.c) | models_cubicmap | ⭐⭐☆☆ | 1.8 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | | [models_first_person_maze](models/models_first_person_maze.c) | models_first_person_maze | ⭐⭐☆☆ | 2.5 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index a8be535b9..b00e77f45 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -103,7 +103,7 @@ text;text_unicode_ranges;⭐️⭐️⭐️⭐️;5.5;5.6;"Vlad Adrian";@demizdo text;text_3d_drawing;⭐️⭐️⭐️⭐️;3.5;4.0;"Vlad Adrian";@demizdor text;text_codepoints_loading;⭐️⭐️⭐️☆;4.2;4.2;"Ramon Santamaria";@raysan5 models;models_animation;⭐️⭐️☆☆;2.5;3.5;"Culacant";@culacant -models;models_billboard;⭐️⭐️⭐️☆;1.3;3.5;"Ramon Santamaria";@raysan5 +models;models_billboard_rendering_rendering;⭐️⭐️⭐️☆;1.3;3.5;"Ramon Santamaria";@raysan5 models;models_box_collisions;⭐️☆☆☆;1.3;3.5;"Ramon Santamaria";@raysan5 models;models_cubicmap;⭐️⭐️☆☆;1.8;3.5;"Ramon Santamaria";@raysan5 models;models_first_person_maze;⭐️⭐️☆☆;2.5;3.5;"Ramon Santamaria";@raysan5 diff --git a/examples/models/models_billboard.c b/examples/models/models_billboard.c deleted file mode 100644 index 40266c277..000000000 --- a/examples/models/models_billboard.c +++ /dev/null @@ -1,115 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - billboard render -* -* Example complexity rating: [★★★☆] 3/4 -* -* Example originally created with raylib 1.3, last time updated with raylib 3.5 -* -* 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) 2015-2025 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" -#include "raymath.h" - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [models] example - billboard render"); - - // Define the camera to look into our 3d world - Camera camera = { 0 }; - camera.position = (Vector3){ 5.0f, 4.0f, 5.0f }; // Camera position - camera.target = (Vector3){ 0.0f, 2.0f, 0.0f }; // Camera looking at point - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) - camera.fovy = 45.0f; // Camera field-of-view Y - camera.projection = CAMERA_PERSPECTIVE; // Camera projection type - - Texture2D bill = LoadTexture("resources/billboard.png"); // Our billboard texture - Vector3 billPositionStatic = { 0.0f, 2.0f, 0.0f }; // Position of static billboard - Vector3 billPositionRotating = { 1.0f, 2.0f, 1.0f }; // Position of rotating billboard - - // Entire billboard texture, source is used to take a segment from a larger texture - Rectangle source = { 0.0f, 0.0f, (float)bill.width, (float)bill.height }; - - // NOTE: Billboard locked on axis-Y - Vector3 billUp = { 0.0f, 1.0f, 0.0f }; - - // Set the height of the rotating billboard to 1.0 with the aspect ratio fixed - Vector2 size = { source.width/source.height, 1.0f }; - - // Rotate around origin - // Here we choose to rotate around the image center - Vector2 origin = Vector2Scale(size, 0.5f); - - // Distance is needed for the correct billboard draw order - // Larger distance (further away from the camera) should be drawn prior to smaller distance - float distanceStatic; - float distanceRotating; - 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 - //---------------------------------------------------------------------------------- - UpdateCamera(&camera, CAMERA_ORBITAL); - - rotation += 0.4f; - distanceStatic = Vector3Distance(camera.position, billPositionStatic); - distanceRotating = Vector3Distance(camera.position, billPositionRotating); - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawGrid(10, 1.0f); // Draw a grid - - // Draw order matters! - if (distanceStatic > distanceRotating) - { - DrawBillboard(camera, bill, billPositionStatic, 2.0f, WHITE); - DrawBillboardPro(camera, bill, source, billPositionRotating, billUp, size, origin, rotation, WHITE); - } - else - { - DrawBillboardPro(camera, bill, source, billPositionRotating, billUp, size, origin, rotation, WHITE); - DrawBillboard(camera, bill, billPositionStatic, 2.0f, WHITE); - } - - EndMode3D(); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(bill); // Unload texture - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} diff --git a/examples/models/models_billboard.png b/examples/models/models_billboard.png deleted file mode 100644 index dad1e55b7824b7690350564a179cc0cbe3a8493b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54859 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 - - - - Debug.DLL - ARM64 - - - Debug.DLL - Win32 - - - Debug.DLL - x64 - - - Debug - ARM64 - - - Debug - Win32 - - - Debug - x64 - - - Release.DLL - ARM64 - - - Release.DLL - Win32 - - - Release.DLL - x64 - - - Release - ARM64 - - - Release - Win32 - - - Release - x64 - - - - {B7812167-50FB-4934-996F-DF6FE4CBBFDF} - Win32Proj - models_billboard - 10.0 - models_billboard - - - - Application - true - $(DefaultPlatformToolset) - Unicode - - - Application - true - $(DefaultPlatformToolset) - Unicode - - - Application - true - $(DefaultPlatformToolset) - Unicode - - - Application - true - $(DefaultPlatformToolset) - Unicode - - - Application - true - $(DefaultPlatformToolset) - Unicode - - - Application - true - $(DefaultPlatformToolset) - Unicode - - - Application - false - $(DefaultPlatformToolset) - true - Unicode - - - Application - false - $(DefaultPlatformToolset) - true - Unicode - - - Application - false - $(DefaultPlatformToolset) - true - Unicode - - - Application - false - $(DefaultPlatformToolset) - true - Unicode - - - Application - false - $(DefaultPlatformToolset) - true - Unicode - - - Application - false - $(DefaultPlatformToolset) - true - Unicode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ - $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ - - - true - $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ - $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ - - - true - $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ - $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ - - - true - $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ - $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ - - - true - $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ - $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ - - - true - $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ - $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ - - - false - $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ - $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ - - - false - $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ - $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ - - - false - $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ - $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ - - - false - $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ - $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ - - - false - $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ - $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ - - - false - $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ - $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ - - - $(SolutionDir)..\..\examples\models - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\models - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\models - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\models - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\models - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\models - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\models - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\models - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\models - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\models - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\models - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\models - WindowsLocalDebugger - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) - CompileAsC - $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) - - - Console - true - $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ - raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) - CompileAsC - $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) - /FS %(AdditionalOptions) - - - Console - true - $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ - raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) - CompileAsC - $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) - /FS %(AdditionalOptions) - - - Console - true - $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ - raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) - CompileAsC - $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) - - - Console - true - $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ - raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" - Copy Debug DLL to output directory - - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) - CompileAsC - $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) - - - Console - true - $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ - raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" - Copy Debug DLL to output directory - - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) - CompileAsC - $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) - - - Console - true - $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ - raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" - Copy Debug DLL to output directory - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP - $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) - CompileAsC - true - - - Console - true - true - true - raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP - $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) - CompileAsC - true - - - Console - true - true - true - raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP - $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) - CompileAsC - true - - - Console - true - true - true - raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP - $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) - CompileAsC - true - - - Console - true - true - true - raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ - - - xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" - - - Copy Release DLL to output directory - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP - $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) - CompileAsC - true - - - Console - true - true - true - raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ - - - xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" - - - Copy Release DLL to output directory - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP - $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) - CompileAsC - true - - - Console - true - true - true - raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ - - - xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" - - - Copy Release DLL to output directory - - - - - - - - - - - {e89d61ac-55de-4482-afd4-df7242ebc859} - - - - - - \ No newline at end of file diff --git a/projects/VS2022/raylib.sln b/projects/VS2022/raylib.sln index 43913d997..237e23be4 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -87,7 +87,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_world_screen", "exampl EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_animation", "examples\models_animation.vcxproj", "{AFDDE100-2D36-4749-817D-12E54C56312F}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_billboard", "examples\models_billboard.vcxproj", "{B7812167-50FB-4934-996F-DF6FE4CBBFDF}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_billboard_rendering_rendering", "examples\models_billboard_rendering_rendering.vcxproj", "{B7812167-50FB-4934-996F-DF6FE4CBBFDF}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_box_collisions", "examples\models_box_collisions.vcxproj", "{39DB56C7-05F8-492C-A8D4-F19E40FECB59}" EndProject diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index 25a3c9850..b48160537 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -685,13 +685,14 @@ int main(int argc, char *argv[]) TextFormat("%s/%s/%s.js", exWebPath, exRecategory, exRename)); // Create commit with changes (local) + putenv("PATH=%PATH%;C:\\Program Files\\Git\\bin"); ChangeDirectory("C:/GitHub/raylib"); - int result = system(TextFormat("cmd /c git commit -am \"REXM: RENAME: example: `%s` --> `%s`\"", exName, exRename)); // Commit changes (only tracked files) + int result = system(TextFormat("git commit -am \"REXM: RENAME: example: `%s` --> `%s`\"", exName, exRename)); // Commit changes (only tracked files) if (result != 0) LOG("WARNING: Error committing changes\n"); - //result = system("cmd /c git push"); // Push to the remote (origin, current branch) + //result = system("git push"); // Push to the remote (origin, current branch) //if (result != 0) LOG("WARNING: Error pushing changes\n"); ChangeDirectory("C:/GitHub/raylib.com"); - result = system(TextFormat("cmd /c git commit -am \"REXM: RENAME: example: `%s` --> `%s`\"", exName, exRename)); // Commit changes (only tracked files) + result = system(TextFormat("git commit -am \"REXM: RENAME: example: `%s` --> `%s`\"", exName, exRename)); // Commit changes (only tracked files) if (result != 0) LOG("WARNING: Error committing changes\n"); } break;