From 3cbe911613f1a93ed38fbf3a5613c0cf1856fdd4 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 11:04:00 +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_rendering.c | 115 ++++ .../models/models_billboard_rendering.png | Bin 0 -> 54859 bytes .../models_billboard_rendering.vcxproj | 569 ++++++++++++++++++ projects/VS2022/raylib.sln | 2 +- 8 files changed, 690 insertions(+), 6 deletions(-) create mode 100644 examples/models/models_billboard_rendering.c create mode 100644 examples/models/models_billboard_rendering.png create mode 100644 projects/VS2022/examples/models_billboard_rendering.vcxproj diff --git a/examples/Makefile b/examples/Makefile index 0db8961c2..076dd0c29 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -603,7 +603,7 @@ TEXT = \ MODELS = \ models/models_animation \ - models/models_billboard_rendering_rendering \ + models/models_billboard_rendering \ models/models_bone_socket \ models/models_box_collisions \ models/models_cubicmap \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 6da9080f5..e507173e2 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -603,7 +603,7 @@ TEXT = \ MODELS = \ models/models_animation \ - models/models_billboard_rendering_rendering \ + models/models_billboard_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_rendering_rendering: models/models_billboard_rendering_rendering.c +models/models_billboard_rendering: models/models_billboard_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 ccd866f15..360727c64 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_rendering_rendering](models/models_billboard_rendering_rendering.c) | models_billboard_rendering_rendering | ⭐⭐⭐☆ | 1.3 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | +| [models_billboard_rendering](models/models_billboard_rendering.c) | models_billboard_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 b00e77f45..43e364032 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_rendering_rendering;⭐️⭐️⭐️☆;1.3;3.5;"Ramon Santamaria";@raysan5 +models;models_billboard_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_rendering.c b/examples/models/models_billboard_rendering.c new file mode 100644 index 000000000..40266c277 --- /dev/null +++ b/examples/models/models_billboard_rendering.c @@ -0,0 +1,115 @@ +/******************************************************************************************* +* +* 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_rendering.png b/examples/models/models_billboard_rendering.png new file mode 100644 index 0000000000000000000000000000000000000000..dad1e55b7824b7690350564a179cc0cbe3a8493b GIT binary patch literal 54859 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 literal 0 HcmV?d00001 diff --git a/projects/VS2022/examples/models_billboard_rendering.vcxproj b/projects/VS2022/examples/models_billboard_rendering.vcxproj new file mode 100644 index 000000000..9f443bf63 --- /dev/null +++ b/projects/VS2022/examples/models_billboard_rendering.vcxproj @@ -0,0 +1,569 @@ + + + + + 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_rendering + 10.0 + models_billboard_rendering + + + + 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 237e23be4..845ffaf12 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_rendering_rendering", "examples\models_billboard_rendering_rendering.vcxproj", "{B7812167-50FB-4934-996F-DF6FE4CBBFDF}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_billboard_rendering", "examples\models_billboard_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