From 7d07d21ee53d4b38bd102c9fdf7534b43c062fe5 Mon Sep 17 00:00:00 2001 From: 0_stamina Date: Sun, 31 Aug 2025 22:56:31 -0700 Subject: [PATCH 001/190] Update Camera3D.fovy description in raylib.h (#5164) Previously stated it was the near plane width in orthographic, in actuality it's the height. The wording has been fixed, with added clarity that it's in world units so no conversion is needed. --- src/raylib.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/raylib.h b/src/raylib.h index c45168763..a460ed240 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -327,7 +327,7 @@ typedef struct Camera3D { Vector3 position; // Camera position Vector3 target; // Camera target it looks-at Vector3 up; // Camera up vector (rotation over its axis) - float fovy; // Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic + float fovy; // Camera field-of-view aperture in Y (degrees) in perspective, used as near plane height in world units in orthographic int projection; // Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC } Camera3D; From 223feca13ab0d51a75f7cdb6a4fc2a16dcbf2308 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 1 Sep 2025 05:56:44 +0000 Subject: [PATCH 002/190] Update raylib_api.* by CI --- tools/parser/output/raylib_api.json | 2 +- tools/parser/output/raylib_api.lua | 2 +- tools/parser/output/raylib_api.txt | 2 +- tools/parser/output/raylib_api.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/parser/output/raylib_api.json b/tools/parser/output/raylib_api.json index 3617d6392..45d14a5b3 100644 --- a/tools/parser/output/raylib_api.json +++ b/tools/parser/output/raylib_api.json @@ -753,7 +753,7 @@ { "type": "float", "name": "fovy", - "description": "Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic" + "description": "Camera field-of-view aperture in Y (degrees) in perspective, used as near plane height in world units in orthographic" }, { "type": "int", diff --git a/tools/parser/output/raylib_api.lua b/tools/parser/output/raylib_api.lua index 00abc0c77..3c975531f 100644 --- a/tools/parser/output/raylib_api.lua +++ b/tools/parser/output/raylib_api.lua @@ -753,7 +753,7 @@ return { { type = "float", name = "fovy", - description = "Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic" + description = "Camera field-of-view aperture in Y (degrees) in perspective, used as near plane height in world units in orthographic" }, { type = "int", diff --git a/tools/parser/output/raylib_api.txt b/tools/parser/output/raylib_api.txt index 12af97c08..d8eeb6541 100644 --- a/tools/parser/output/raylib_api.txt +++ b/tools/parser/output/raylib_api.txt @@ -394,7 +394,7 @@ Struct 13: Camera3D (5 fields) Field[1]: Vector3 position // Camera position Field[2]: Vector3 target // Camera target it looks-at Field[3]: Vector3 up // Camera up vector (rotation over its axis) - Field[4]: float fovy // Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic + Field[4]: float fovy // Camera field-of-view aperture in Y (degrees) in perspective, used as near plane height in world units in orthographic Field[5]: int projection // Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC Struct 14: Camera2D (4 fields) Name: Camera2D diff --git a/tools/parser/output/raylib_api.xml b/tools/parser/output/raylib_api.xml index 0a053abc6..9f887912c 100644 --- a/tools/parser/output/raylib_api.xml +++ b/tools/parser/output/raylib_api.xml @@ -151,7 +151,7 @@ - + From 998a18b641dc333ebda0a40060de69c6bbb07546 Mon Sep 17 00:00:00 2001 From: wileyanderssen Date: Mon, 1 Sep 2025 12:17:51 +0300 Subject: [PATCH 003/190] removed macro that does nothing (#5163) --- src/rtextures.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/rtextures.c b/src/rtextures.c index 624cf574a..ea32f2c04 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -658,8 +658,6 @@ bool ExportImage(Image image, const char *fileName) result = SaveFileData(fileName, fileData, dataSize); RL_FREE(fileData); } -#else - if (false) { } #endif #if defined(SUPPORT_FILEFORMAT_BMP) else if (IsFileExtension(fileName, ".bmp")) result = stbi_write_bmp(fileName, image.width, image.height, channels, imgData); From 12ce72c32d6946bef6b763aacfc5efb23641c98a Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 1 Sep 2025 11:24:53 +0200 Subject: [PATCH 004/190] REVIEWED: `ExportImage()` --- src/rtextures.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/rtextures.c b/src/rtextures.c index ea32f2c04..2f8b60f17 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -422,7 +422,7 @@ Image LoadImageFromMemory(const char *fileType, const unsigned char *fileData, i { Image image = { 0 }; - // Security check for input data + // Security checks for input data if ((fileData == NULL) || (dataSize == 0)) { TRACELOG(LOG_WARNING, "IMAGE: Invalid file data"); @@ -650,8 +650,9 @@ bool ExportImage(Image image, const char *fileName) allocatedData = true; } + if (false) { 0 } // Required to attach following 'else' cases #if defined(SUPPORT_FILEFORMAT_PNG) - if (IsFileExtension(fileName, ".png")) + else if (IsFileExtension(fileName, ".png")) { int dataSize = 0; unsigned char *fileData = stbi_write_png_to_mem((const unsigned char *)imgData, image.width*channels, image.width, image.height, channels, &dataSize); @@ -701,7 +702,8 @@ bool ExportImage(Image image, const char *fileName) // NOTE: It's up to the user to track image parameters result = SaveFileData(fileName, image.data, GetPixelDataSize(image.width, image.height, image.format)); } - + else TRACELOG(LOG_WARNING, "IMAGE: Export image format requested not supported"); + if (allocatedData) RL_FREE(imgData); #endif // SUPPORT_IMAGE_EXPORT From 0a92c863c412b9eb2fe2d0ab17a8fe88fa8775ce Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 1 Sep 2025 11:27:11 +0200 Subject: [PATCH 005/190] Reverted const codepoints to avoid warnings --- src/raylib.h | 4 ++-- src/rtext.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index a460ed240..b5de3c71d 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1466,9 +1466,9 @@ RLAPI int GetPixelDataSize(int width, int height, int format); // G // Font loading/unloading functions RLAPI Font GetFontDefault(void); // Get the default Font RLAPI Font LoadFont(const char *fileName); // Load font from file into GPU memory (VRAM) -RLAPI Font LoadFontEx(const char *fileName, int fontSize, const int *codepoints, int codepointCount); // Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height +RLAPI Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount); // Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height RLAPI Font LoadFontFromImage(Image image, Color key, int firstChar); // Load font from Image (XNA style) -RLAPI Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int fontSize, const int *codepoints, int codepointCount); // Load font from memory buffer, fileType refers to extension: i.e. '.ttf' +RLAPI Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount); // Load font from memory buffer, fileType refers to extension: i.e. '.ttf' RLAPI bool IsFontValid(Font font); // Check if a font is valid (font data loaded, WARNING: GPU texture not checked) RLAPI GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount, int type); // Load font data for further use RLAPI Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyphCount, int fontSize, int padding, int packMethod); // Generate image font atlas using chars info diff --git a/src/rtext.c b/src/rtext.c index db143b098..f54c71aef 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -404,7 +404,7 @@ Font LoadFont(const char *fileName) // Load Font from TTF or BDF font file with generation parameters // NOTE: You can pass an array with desired characters, those characters should be available in the font // if array is NULL, default char set is selected 32..126 -Font LoadFontEx(const char *fileName, int fontSize, const int *codepoints, int codepointCount) +Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount) { Font font = { 0 }; @@ -549,7 +549,7 @@ Font LoadFontFromImage(Image image, Color key, int firstChar) } // Load font from memory buffer, fileType refers to extension: i.e. ".ttf" -Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int fontSize, const int *codepoints, int codepointCount) +Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount) { Font font = { 0 }; From 917533224f50235e64290c59d21a0a55953dcacf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 1 Sep 2025 09:27:38 +0000 Subject: [PATCH 006/190] Update raylib_api.* by CI --- tools/parser/output/raylib_api.json | 4 ++-- tools/parser/output/raylib_api.lua | 4 ++-- tools/parser/output/raylib_api.txt | 4 ++-- tools/parser/output/raylib_api.xml | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tools/parser/output/raylib_api.json b/tools/parser/output/raylib_api.json index 45d14a5b3..8828ffb18 100644 --- a/tools/parser/output/raylib_api.json +++ b/tools/parser/output/raylib_api.json @@ -9041,7 +9041,7 @@ "name": "fontSize" }, { - "type": "const int *", + "type": "int *", "name": "codepoints" }, { @@ -9091,7 +9091,7 @@ "name": "fontSize" }, { - "type": "const int *", + "type": "int *", "name": "codepoints" }, { diff --git a/tools/parser/output/raylib_api.lua b/tools/parser/output/raylib_api.lua index 3c975531f..d0cce09eb 100644 --- a/tools/parser/output/raylib_api.lua +++ b/tools/parser/output/raylib_api.lua @@ -6550,7 +6550,7 @@ return { params = { {type = "const char *", name = "fileName"}, {type = "int", name = "fontSize"}, - {type = "const int *", name = "codepoints"}, + {type = "int *", name = "codepoints"}, {type = "int", name = "codepointCount"} } }, @@ -6573,7 +6573,7 @@ return { {type = "const unsigned char *", name = "fileData"}, {type = "int", name = "dataSize"}, {type = "int", name = "fontSize"}, - {type = "const int *", name = "codepoints"}, + {type = "int *", name = "codepoints"}, {type = "int", name = "codepointCount"} } }, diff --git a/tools/parser/output/raylib_api.txt b/tools/parser/output/raylib_api.txt index d8eeb6541..82fdc2c6a 100644 --- a/tools/parser/output/raylib_api.txt +++ b/tools/parser/output/raylib_api.txt @@ -3468,7 +3468,7 @@ Function 395: LoadFontEx() (4 input parameters) Description: Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height Param[1]: fileName (type: const char *) Param[2]: fontSize (type: int) - Param[3]: codepoints (type: const int *) + Param[3]: codepoints (type: int *) Param[4]: codepointCount (type: int) Function 396: LoadFontFromImage() (3 input parameters) Name: LoadFontFromImage @@ -3485,7 +3485,7 @@ Function 397: LoadFontFromMemory() (6 input parameters) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) Param[4]: fontSize (type: int) - Param[5]: codepoints (type: const int *) + Param[5]: codepoints (type: int *) Param[6]: codepointCount (type: int) Function 398: IsFontValid() (1 input parameters) Name: IsFontValid diff --git a/tools/parser/output/raylib_api.xml b/tools/parser/output/raylib_api.xml index 9f887912c..f2e3b3b4f 100644 --- a/tools/parser/output/raylib_api.xml +++ b/tools/parser/output/raylib_api.xml @@ -2286,7 +2286,7 @@ - + @@ -2299,7 +2299,7 @@ - + From 708c1539e4b82e515fb32167c319cd06bec52c3b Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 1 Sep 2025 11:38:57 +0200 Subject: [PATCH 007/190] Update rtextures.c --- src/rtextures.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rtextures.c b/src/rtextures.c index 2f8b60f17..dc6695452 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -650,7 +650,7 @@ bool ExportImage(Image image, const char *fileName) allocatedData = true; } - if (false) { 0 } // Required to attach following 'else' cases + if (false) { } // Required to attach following 'else' cases #if defined(SUPPORT_FILEFORMAT_PNG) else if (IsFileExtension(fileName, ".png")) { From 1777da9056ac84bb7410392e103c6a0964570d67 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 1 Sep 2025 20:37:23 +0200 Subject: [PATCH 008/190] REVIEWED: Avoid realloc() calls, small security improvement --- src/rcore.c | 19 ++++++++++--------- src/rmodels.c | 18 ++++++++++++++---- src/rtext.c | 16 ++++++++++------ src/rtextures.c | 11 +++++------ 4 files changed, 39 insertions(+), 25 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index 4360a23ee..d1b1a8219 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -2562,19 +2562,20 @@ unsigned char *DecompressData(const unsigned char *compData, int compDataSize, i #if defined(SUPPORT_COMPRESSION_API) // Decompress data from a valid DEFLATE stream - data = (unsigned char *)RL_CALLOC(MAX_DECOMPRESSION_SIZE*1024*1024, 1); + unsigned char *data0 = (unsigned char *)RL_CALLOC(MAX_DECOMPRESSION_SIZE*1024*1024, 1); int length = sinflate(data, MAX_DECOMPRESSION_SIZE*1024*1024, compData, compDataSize); - // WARNING: RL_REALLOC can make (and leave) data copies in memory, be careful with sensitive compressed data! - // TODO: Use a different approach, create another buffer, copy data manually to it and wipe original buffer memory - unsigned char *temp = (unsigned char *)RL_REALLOC(data, length); - - if (temp != NULL) data = temp; - else TRACELOG(LOG_WARNING, "SYSTEM: Failed to re-allocate required decompression memory"); + // WARNING: RL_REALLOC can make (and leave) data copies in memory, + // that can be a security concern in case of compression of sensitive data + // So, we use a second buffer to copy data manually, wiping original buffer memory + data = (unsigned char *)RL_CALLOC(length, 1); + memcpy(data, data0, length); + memset(data0, 0, MAX_DECOMPRESSION_SIZE*1024*1024); // Wipe memory, is memset() safe? + RL_FREE(data0); + + TRACELOG(LOG_INFO, "SYSTEM: Decompress data: Comp. size: %i -> Original size: %i", compDataSize, length); *dataSize = length; - - TRACELOG(LOG_INFO, "SYSTEM: Decompress data: Comp. size: %i -> Original size: %i", compDataSize, *dataSize); #endif return data; diff --git a/src/rmodels.c b/src/rmodels.c index ff71b79d6..5a824ce44 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -6573,13 +6573,23 @@ static Model LoadM3D(const char *fileName) // Materials are grouped together if (mi != m3d->face[i].materialid) { - // there should be only one material switch per material kind, but be bulletproof for non-optimal model files + // There should be only one material switch per material kind, + // but be bulletproof for non-optimal model files if (k + 1 >= model.meshCount) { model.meshCount++; - model.meshes = (Mesh *)RL_REALLOC(model.meshes, model.meshCount*sizeof(Mesh)); - memset(&model.meshes[model.meshCount - 1], 0, sizeof(Mesh)); - model.meshMaterial = (int *)RL_REALLOC(model.meshMaterial, model.meshCount*sizeof(int)); + + // Create a second buffer for mesh re-allocation + Mesh *tempMeshes = (Mesh *)RL_CALLOC(model.meshCount, sizeof(Mesh)); + memcpy(tempMeshes, model.meshes, (model.meshCount - 1)*sizeof(Mesh)); + RL_FREE(model.meshes); + model.meshes = tempMeshes; + + // Create a second buffer for material re-allocation + int *tempMeshMaterial = (int *)RL_CALLOC(model.meshCount, sizeof(int)); + memcpy(tempMeshMaterial, model.meshMaterial, (model.meshCount - 1)*sizeof(int)); + RL_FREE(model.meshMaterial); + model.meshMaterial = tempMeshMaterial; } k++; diff --git a/src/rtext.c b/src/rtext.c index f54c71aef..ffa432ed3 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1920,10 +1920,11 @@ char *LoadUTF8(const int *codepoints, int length) size += bytes; } - // Resize memory to text length + string NULL terminator - void *ptr = RL_REALLOC(text, size + 1); - - if (ptr != NULL) text = (char *)ptr; + // Create second buffer and copy data manually to it + char *temp = (char *)RL_CALLOC(size + 1, 1); + memcpy(temp, text, size); + RL_FREE(text); + text = temp; return text; } @@ -1951,8 +1952,11 @@ int *LoadCodepoints(const char *text, int *count) i += codepointSize; } - // Re-allocate buffer to the actual number of codepoints loaded - codepoints = (int *)RL_REALLOC(codepoints, codepointCount*sizeof(int)); + // Create second buffer and copy data manually to it + int *temp = (int *)RL_CALLOC(codepointCount, sizeof(int)); + for (int i = 0; i < codepointCount; i++) temp[i] = codepoints[i]; + RL_FREE(codepoints); + codepoints = temp; *count = codepointCount; diff --git a/src/rtextures.c b/src/rtextures.c index dc6695452..a4c34b000 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -2400,10 +2400,11 @@ void ImageMipmaps(Image *image) if (image->mipmaps < mipCount) { - void *temp = RL_REALLOC(image->data, mipSize); - - if (temp != NULL) image->data = temp; // Assign new pointer (new size) to store mipmaps data - else TRACELOG(LOG_WARNING, "IMAGE: Mipmaps required memory could not be allocated"); + // Create second buffer and copy data manually to it + void *temp = RL_CALLOC(mipSize, 1); + memcpy(temp, image->data, GetPixelDataSize(image->width, image->height, image->format)); + RL_FREE(image->data); + image->data = temp; // Pointer to allocated memory point where store next mipmap level data unsigned char *nextmip = image->data; @@ -2429,9 +2430,7 @@ void ImageMipmaps(Image *image) if (i < image->mipmaps) continue; TRACELOGD("IMAGE: Generating mipmap level: %i (%i x %i) - size: %i - offset: 0x%x", i, mipWidth, mipHeight, mipSize, nextmip); - ImageResize(&imCopy, mipWidth, mipHeight); // Uses internally Mitchell cubic downscale filter - memcpy(nextmip, imCopy.data, mipSize); } From e18d167c8f50a101ecce904ef9103190db3676d0 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 1 Sep 2025 20:47:59 +0200 Subject: [PATCH 009/190] REVIEWED: New examples added renaming, avoid duplicated .sln GUIDs --- examples/core/core_3d_camera_fps.c | 12 ++--- ...ler.vcxproj => core_3d_camera_fps.vcxproj} | 0 .../examples/text_unicode_ranges.vcxproj | 2 +- projects/VS2022/raylib.sln | 54 +++++++++---------- 4 files changed, 34 insertions(+), 34 deletions(-) rename projects/VS2022/examples/{core_3d_fps_controller.vcxproj => core_3d_camera_fps.vcxproj} (100%) diff --git a/examples/core/core_3d_camera_fps.c b/examples/core/core_3d_camera_fps.c index a3f1d5716..1efb66770 100644 --- a/examples/core/core_3d_camera_fps.c +++ b/examples/core/core_3d_camera_fps.c @@ -18,7 +18,7 @@ #include "raylib.h" #include "raymath.h" -#include "rcamera.h" +//#include "rcamera.h" //---------------------------------------------------------------------------------- // Defines and Macros @@ -68,7 +68,7 @@ static Vector2 lean = { 0 }; // Module functions declaration //---------------------------------------------------------------------------------- static void DrawLevel(void); -static void UpdateCameraAngle(Camera *camera); +static void UpdateCameraFPS(Camera *camera); static void UpdateBody(Body *body, float rot, char side, char forward, bool jumpPressed, bool crouchHold); //------------------------------------------------------------------------------------ @@ -84,7 +84,7 @@ int main(void) InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d first-person camera controller"); // Initialize camera variables - // NOTE: UpdateCameraAngle() takes care of the rest + // NOTE: UpdateCameraFPS() takes care of the rest Camera camera = { 0 }; camera.fovy = 60.0f; camera.projection = CAMERA_PERSPECTIVE; @@ -94,7 +94,7 @@ int main(void) player.position.z, }; - UpdateCameraAngle(&camera); // Update camera parameters + UpdateCameraFPS(&camera); // Update camera parameters DisableCursor(); // Limit cursor to relative movement inside the window @@ -138,7 +138,7 @@ int main(void) lean.x = Lerp(lean.x, sideway*0.02f, 10.0f*delta); lean.y = Lerp(lean.y, forward*0.015f, 10.0f*delta); - UpdateCameraAngle(&camera); + UpdateCameraFPS(&camera); //---------------------------------------------------------------------------------- // Draw @@ -238,7 +238,7 @@ void UpdateBody(Body* body, float rot, char side, char forward, bool jumpPressed } // Update camera -static void UpdateCameraAngle(Camera *camera) +static void UpdateCameraFPS(Camera *camera) { const Vector3 up = (Vector3){ 0.0f, 1.0f, 0.0f }; const Vector3 targetOffset = (Vector3){ 0.0f, 0.0f, -1.0f }; diff --git a/projects/VS2022/examples/core_3d_fps_controller.vcxproj b/projects/VS2022/examples/core_3d_camera_fps.vcxproj similarity index 100% rename from projects/VS2022/examples/core_3d_fps_controller.vcxproj rename to projects/VS2022/examples/core_3d_camera_fps.vcxproj diff --git a/projects/VS2022/examples/text_unicode_ranges.vcxproj b/projects/VS2022/examples/text_unicode_ranges.vcxproj index c9ddd9a1c..730bcb1d0 100644 --- a/projects/VS2022/examples/text_unicode_ranges.vcxproj +++ b/projects/VS2022/examples/text_unicode_ranges.vcxproj @@ -51,7 +51,7 @@ - {6B1A933E-71B8-4C1F-9E79-02D98830E671} + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4} Win32Proj text_unicode_ranges 10.0 diff --git a/projects/VS2022/raylib.sln b/projects/VS2022/raylib.sln index 21d7c63b6..227d52297 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -337,7 +337,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_3d_camera_fps", "examp EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_normal_map", "examples\shaders_normal_map.vcxproj", "{6BFF72EA-7362-4A3B-B6E5-9A3655BBBDA3}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_unicode_ranges", "examples\text_unicode_ranges.vcxproj", "{6B1A933E-71B8-4C1F-9E79-02D98830E671}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_unicode_ranges", "examples\text_unicode_ranges.vcxproj", "{6777EC3C-077C-42FC-B4AD-B799CE55CCE4}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -4135,30 +4135,30 @@ Global {6BFF72EA-7362-4A3B-B6E5-9A3655BBBDA3}.Release|x64.Build.0 = Release|x64 {6BFF72EA-7362-4A3B-B6E5-9A3655BBBDA3}.Release|x86.ActiveCfg = Release|Win32 {6BFF72EA-7362-4A3B-B6E5-9A3655BBBDA3}.Release|x86.Build.0 = Release|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|ARM64.Build.0 = Debug.DLL|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|ARM64.Build.0 = Debug|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x64.ActiveCfg = Debug|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x64.Build.0 = Debug|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x86.ActiveCfg = Debug|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x86.Build.0 = Debug|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|ARM64.ActiveCfg = Release.DLL|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|ARM64.Build.0 = Release.DLL|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x64.Build.0 = Release.DLL|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x86.Build.0 = Release.DLL|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|ARM64.ActiveCfg = Release|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|ARM64.Build.0 = Release|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x64.ActiveCfg = Release|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x64.Build.0 = Release|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x86.ActiveCfg = Release|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x86.Build.0 = Release|Win32 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Debug.DLL|ARM64.Build.0 = Debug.DLL|ARM64 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Debug|ARM64.Build.0 = Debug|ARM64 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Debug|x64.ActiveCfg = Debug|x64 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Debug|x64.Build.0 = Debug|x64 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Debug|x86.ActiveCfg = Debug|Win32 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Debug|x86.Build.0 = Debug|Win32 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release.DLL|ARM64.ActiveCfg = Release.DLL|ARM64 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release.DLL|ARM64.Build.0 = Release.DLL|ARM64 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release|ARM64.ActiveCfg = Release|ARM64 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release|ARM64.Build.0 = Release|ARM64 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release|x64.ActiveCfg = Release|x64 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release|x64.Build.0 = Release|x64 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release|x86.ActiveCfg = Release|Win32 + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -4327,9 +4327,9 @@ Global {C54703BF-D68A-480D-BE27-49B62E45D582} = {5317807F-61D4-4E0F-B6DC-2D9F12621ED9} {9CD8BCAD-F212-4BCC-BA98-899743CE3279} = {CC132A4D-D081-4C26-BFB9-AB11984054F8} {0981CA28-E4A5-4DF1-987F-A41D09131EFC} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} - {6B1A933E-71B8-4C1F-9E79-02D98830E671} = {5317807F-61D4-4E0F-B6DC-2D9F12621ED9} + {6B1A933E-71B8-4C1F-9E79-02D98830E671} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} {6BFF72EA-7362-4A3B-B6E5-9A3655BBBDA3} = {5317807F-61D4-4E0F-B6DC-2D9F12621ED9} - {6B1A933E-71B8-4C1F-9E79-02D98830E671} = {8D3C83B7-F1E0-4C2E-9E34-EE5F6AB2502A} + {6777EC3C-077C-42FC-B4AD-B799CE55CCE4} = {8D3C83B7-F1E0-4C2E-9E34-EE5F6AB2502A} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {E926C768-6307-4423-A1EC-57E95B1FAB29} From 864459cbd2ebe8837d574af699d5fd68d1d58d14 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 1 Sep 2025 20:59:37 +0200 Subject: [PATCH 010/190] Update core_3d_camera_fps.c --- examples/core/core_3d_camera_fps.c | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/core/core_3d_camera_fps.c b/examples/core/core_3d_camera_fps.c index 1efb66770..7fbd4b137 100644 --- a/examples/core/core_3d_camera_fps.c +++ b/examples/core/core_3d_camera_fps.c @@ -18,7 +18,6 @@ #include "raylib.h" #include "raymath.h" -//#include "rcamera.h" //---------------------------------------------------------------------------------- // Defines and Macros From b6ae3802602c22fb0c35330dd1b4c58b72f5506f Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 2 Sep 2025 12:10:16 +0200 Subject: [PATCH 011/190] REVIEWED: Examples comments, consistent code sections --- examples/audio/audio_sound_positioning.c | 9 +++-- examples/audio/audio_stream_effects.c | 4 ++- examples/core/core_2d_camera_platformer.c | 5 ++- examples/core/core_3d_camera_fps.c | 9 ++--- examples/core/core_basic_window_web.c | 2 +- examples/core/core_high_dpi.c | 4 +-- examples/core/core_loading_thread.c | 15 ++++++--- examples/core/core_random_sequence.c | 9 +++-- examples/models/models_rlgl_solar_system.c | 3 +- examples/others/rlgl_standalone.c | 6 ++-- examples/shaders/shaders_basic_pbr.c | 20 ++++++----- examples/shaders/shaders_hybrid_render.c | 35 +++++++++++--------- examples/shaders/shaders_rounded_rectangle.c | 6 ++-- examples/shaders/shaders_spotlight.c | 6 ++++ examples/shaders/shaders_write_depth.c | 13 ++++---- examples/shapes/shapes_digital_clock.c | 1 - examples/shapes/shapes_double_pendulum.c | 10 +++--- examples/shapes/shapes_rectangle_advanced.c | 6 ++++ examples/text/text_draw_3d.c | 4 +-- examples/text/text_rectangle_bounds.c | 4 +-- examples/text/text_unicode.c | 28 ++++++++-------- examples/text/text_unicode_ranges.c | 13 +++++--- examples/textures/textures_image_kernel.c | 4 +-- examples/textures/textures_textured_curve.c | 1 - projects/CMake/core_basic_window.c | 2 +- projects/VSCode/main.c | 6 ++-- 26 files changed, 131 insertions(+), 94 deletions(-) diff --git a/examples/audio/audio_sound_positioning.c b/examples/audio/audio_sound_positioning.c index 5bef2d671..9f09420a2 100644 --- a/examples/audio/audio_sound_positioning.c +++ b/examples/audio/audio_sound_positioning.c @@ -19,7 +19,9 @@ #include "raymath.h" -// Sound positioning function +//------------------------------------------------------------------------------------ +// Module Functions Declaration +//------------------------------------------------------------------------------------ static void SetSoundPosition(Camera listener, Sound sound, Vector3 position, float maxDist); //------------------------------------------------------------------------------------ @@ -94,7 +96,10 @@ int main(void) //-------------------------------------------------------------------------------------- } -// Sound positioning function +//------------------------------------------------------------------------------------ +// Module Functions Definition +//------------------------------------------------------------------------------------ +// Set sound 3d position static void SetSoundPosition(Camera listener, Sound sound, Vector3 position, float maxDist) { // Calculate direction vector and distance between listener and sound source diff --git a/examples/audio/audio_stream_effects.c b/examples/audio/audio_stream_effects.c index b848c8c31..0d06e1e03 100644 --- a/examples/audio/audio_stream_effects.c +++ b/examples/audio/audio_stream_effects.c @@ -17,7 +17,9 @@ #include // Required for: NULL -// Required delay effect variables +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- static float *delayBuffer = NULL; static unsigned int delayBufferSize = 0; static unsigned int delayReadIndex = 2; diff --git a/examples/core/core_2d_camera_platformer.c b/examples/core/core_2d_camera_platformer.c index 9a6ec9ade..45bad4015 100644 --- a/examples/core/core_2d_camera_platformer.c +++ b/examples/core/core_2d_camera_platformer.c @@ -22,6 +22,9 @@ #define PLAYER_JUMP_SPD 350.0f #define PLAYER_HOR_SPD 200.0f +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- typedef struct Player { Vector2 position; float speed; @@ -35,7 +38,7 @@ typedef struct EnvItem { } EnvItem; //---------------------------------------------------------------------------------- -// Module functions declaration +// Module Functions Declaration //---------------------------------------------------------------------------------- void UpdatePlayer(Player *player, EnvItem *envItems, int envItemsLength, float delta); void UpdateCameraCenter(Camera2D *camera, Player *player, EnvItem *envItems, int envItemsLength, float delta, int width, int height); diff --git a/examples/core/core_3d_camera_fps.c b/examples/core/core_3d_camera_fps.c index 7fbd4b137..980660b30 100644 --- a/examples/core/core_3d_camera_fps.c +++ b/examples/core/core_3d_camera_fps.c @@ -64,7 +64,7 @@ static float headLerp = STAND_HEIGHT; static Vector2 lean = { 0 }; //---------------------------------------------------------------------------------- -// Module functions declaration +// Module Functions Declaration //---------------------------------------------------------------------------------- static void DrawLevel(void); static void UpdateCameraFPS(Camera *camera); @@ -172,9 +172,10 @@ int main(void) } //---------------------------------------------------------------------------------- -// Module functions definition +// Module Functions Definition //---------------------------------------------------------------------------------- -void UpdateBody(Body* body, float rot, char side, char forward, bool jumpPressed, bool crouchHold) +// Update body considering current world state +void UpdateBody(Body *body, float rot, char side, char forward, bool jumpPressed, bool crouchHold) { Vector2 input = (Vector2){ (float)side, (float)-forward }; @@ -236,7 +237,7 @@ void UpdateBody(Body* body, float rot, char side, char forward, bool jumpPressed } } -// Update camera +// Update camera for FPS behaviour static void UpdateCameraFPS(Camera *camera) { const Vector3 up = (Vector3){ 0.0f, 1.0f, 0.0f }; diff --git a/examples/core/core_basic_window_web.c b/examples/core/core_basic_window_web.c index c4aa18177..7877337a3 100644 --- a/examples/core/core_basic_window_web.c +++ b/examples/core/core_basic_window_web.c @@ -32,7 +32,7 @@ const int screenWidth = 800; const int screenHeight = 450; //---------------------------------------------------------------------------------- -// Module functions declaration +// Module Functions Declaration //---------------------------------------------------------------------------------- void UpdateDrawFrame(void); // Update and Draw one frame diff --git a/examples/core/core_high_dpi.c b/examples/core/core_high_dpi.c index 8de5fa261..636442401 100644 --- a/examples/core/core_high_dpi.c +++ b/examples/core/core_high_dpi.c @@ -14,7 +14,7 @@ #include "raylib.h" //------------------------------------------------------------------------------------ -// Module functions declaration +// Module Functions Declaration //------------------------------------------------------------------------------------ static void DrawTextCenter(const char *text, int x, int y, int fontSize, Color color); @@ -120,7 +120,7 @@ int main(void) } //------------------------------------------------------------------------------------ -// Module functions definition +// Module Functions Definition //------------------------------------------------------------------------------------ static void DrawTextCenter(const char *text, int x, int y, int fontSize, Color color) { diff --git a/examples/core/core_loading_thread.c b/examples/core/core_loading_thread.c index 1fa84640d..3d04f94a7 100644 --- a/examples/core/core_loading_thread.c +++ b/examples/core/core_loading_thread.c @@ -20,16 +20,18 @@ // WARNING: This example does not build on Windows with MSVC compiler #include "pthread.h" // POSIX style threads management -#include // C11 atomic data types - +#include // Required for: C11 atomic data types #include // Required for: clock() // Using C11 atomics for synchronization // NOTE: A plain bool (or any plain data type for that matter) can't be used for inter-thread synchronization -static atomic_bool dataLoaded = false; // Data Loaded completion indicator -static void *LoadDataThread(void *arg); // Loading data thread function declaration +static atomic_bool dataLoaded = false; // Data Loaded completion indicator +static atomic_int dataProgress = 0; // Data progress accumulator -static atomic_int dataProgress = 0; // Data progress accumulator +//------------------------------------------------------------------------------------ +// Module Functions Declaration +//------------------------------------------------------------------------------------ +static void *LoadDataThread(void *arg); // Loading data thread function declaration //------------------------------------------------------------------------------------ // Program main entry point @@ -134,6 +136,9 @@ int main(void) return 0; } +//------------------------------------------------------------------------------------ +// Module Functions Definition +//------------------------------------------------------------------------------------ // Loading data thread function definition static void *LoadDataThread(void *arg) { diff --git a/examples/core/core_random_sequence.c b/examples/core/core_random_sequence.c index be63e2f9b..3121debc7 100644 --- a/examples/core/core_random_sequence.c +++ b/examples/core/core_random_sequence.c @@ -18,15 +18,18 @@ #include "raylib.h" #include "raymath.h" -#include // Required for: malloc() and free() +#include // Required for: malloc(), free() +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- typedef struct ColorRect { Color c; Rectangle r; } ColorRect; //------------------------------------------------------------------------------------ -// Module functions declaration +// Module Functions Declaration //------------------------------------------------------------------------------------ static Color GenerateRandomColor(); static ColorRect *GenerateRandomColorRectSequence(float rectCount, float rectWidth, float screenWidth, float screenHeight); @@ -114,7 +117,7 @@ int main(void) } //------------------------------------------------------------------------------------ -// Module functions definition +// Module Functions Definition //------------------------------------------------------------------------------------ static Color GenerateRandomColor() { diff --git a/examples/models/models_rlgl_solar_system.c b/examples/models/models_rlgl_solar_system.c index ee1e713c2..d8d86d69a 100644 --- a/examples/models/models_rlgl_solar_system.c +++ b/examples/models/models_rlgl_solar_system.c @@ -128,9 +128,8 @@ int main(void) } //-------------------------------------------------------------------------------------------- -// Module Functions Definitions (local) +// Module Functions Definition //-------------------------------------------------------------------------------------------- - // Draw sphere without any matrix transformation // NOTE: Sphere is drawn in world position ( 0, 0, 0 ) with radius 1.0f void DrawSphereBasic(Color color) diff --git a/examples/others/rlgl_standalone.c b/examples/others/rlgl_standalone.c index eddb63a0f..288f06419 100644 --- a/examples/others/rlgl_standalone.c +++ b/examples/others/rlgl_standalone.c @@ -77,7 +77,7 @@ #define DARKGRAY (Color){ 80, 80, 80, 255 } // Dark Gray //---------------------------------------------------------------------------------- -// Structures Definition +// Types and Structures Definition //---------------------------------------------------------------------------------- // Color, 4 components, R8G8B8A8 (32bit) typedef struct Color { @@ -97,7 +97,7 @@ typedef struct Camera { } Camera; //---------------------------------------------------------------------------------- -// Module specific Functions Declaration +// Module Functions Declaration //---------------------------------------------------------------------------------- static void ErrorCallback(int error, const char *description); static void KeyCallback(GLFWwindow *window, int key, int scancode, int action, int mods); @@ -260,7 +260,7 @@ int main(void) } //---------------------------------------------------------------------------------- -// Module specific Functions Definitions +// Module Functions Definitions //---------------------------------------------------------------------------------- // GLFW3: Error callback diff --git a/examples/shaders/shaders_basic_pbr.c b/examples/shaders/shaders_basic_pbr.c index 1844a43bc..ec15ab206 100644 --- a/examples/shaders/shaders_basic_pbr.c +++ b/examples/shaders/shaders_basic_pbr.c @@ -34,7 +34,6 @@ //---------------------------------------------------------------------------------- // Types and Structures Definition //---------------------------------------------------------------------------------- - // Light type typedef enum { LIGHT_DIRECTIONAL = 0, @@ -66,7 +65,7 @@ typedef struct { static int lightCount = 0; // Current number of dynamic lights that have been created //---------------------------------------------------------------------------------- -// Module specific Functions Declaration +// Module Functions Declaration //---------------------------------------------------------------------------------- // Create a light and get shader locations static Light CreateLight(int type, Vector3 position, Vector3 target, Color color, float intensity, Shader shader); @@ -76,7 +75,7 @@ static Light CreateLight(int type, Vector3 position, Vector3 target, Color color static void UpdateLight(Shader shader, Light light); //---------------------------------------------------------------------------------- -// Main Entry Point +// Program main entry point //---------------------------------------------------------------------------------- int main() { @@ -231,9 +230,9 @@ int main() Vector4 floorEmissiveColor = ColorNormalize(floor.materials[0].maps[MATERIAL_MAP_EMISSION].color); SetShaderValue(shader, emissiveColorLoc, &floorEmissiveColor, SHADER_UNIFORM_VEC4); - // Set floor metallic and roughness values - SetShaderValue(shader, metallicValueLoc, &floor.materials[0].maps[MATERIAL_MAP_METALNESS].value, SHADER_UNIFORM_FLOAT); - SetShaderValue(shader, roughnessValueLoc, &floor.materials[0].maps[MATERIAL_MAP_ROUGHNESS].value, SHADER_UNIFORM_FLOAT); + // Set floor metallic and roughness values + SetShaderValue(shader, metallicValueLoc, &floor.materials[0].maps[MATERIAL_MAP_METALNESS].value, SHADER_UNIFORM_FLOAT); + SetShaderValue(shader, roughnessValueLoc, &floor.materials[0].maps[MATERIAL_MAP_ROUGHNESS].value, SHADER_UNIFORM_FLOAT); DrawModel(floor, (Vector3){ 0.0f, 0.0f, 0.0f }, 5.0f, WHITE); // Draw floor model @@ -244,9 +243,9 @@ int main() float emissiveIntensity = 0.01f; SetShaderValue(shader, emissiveIntensityLoc, &emissiveIntensity, SHADER_UNIFORM_FLOAT); - // Set old car metallic and roughness values - SetShaderValue(shader, metallicValueLoc, &car.materials[0].maps[MATERIAL_MAP_METALNESS].value, SHADER_UNIFORM_FLOAT); - SetShaderValue(shader, roughnessValueLoc, &car.materials[0].maps[MATERIAL_MAP_ROUGHNESS].value, SHADER_UNIFORM_FLOAT); + // Set old car metallic and roughness values + SetShaderValue(shader, metallicValueLoc, &car.materials[0].maps[MATERIAL_MAP_METALNESS].value, SHADER_UNIFORM_FLOAT); + SetShaderValue(shader, roughnessValueLoc, &car.materials[0].maps[MATERIAL_MAP_ROUGHNESS].value, SHADER_UNIFORM_FLOAT); DrawModel(car, (Vector3){ 0.0f, 0.0f, 0.0f }, 0.25f, WHITE); // Draw car model @@ -293,6 +292,9 @@ int main() return 0; } +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- // Create light with provided data // NOTE: It updated the global lightCount and it's limited to MAX_LIGHTS static Light CreateLight(int type, Vector3 position, Vector3 target, Color color, float intensity, Shader shader) diff --git a/examples/shaders/shaders_hybrid_render.c b/examples/shaders/shaders_hybrid_render.c index d3c3a910b..9882306a0 100644 --- a/examples/shaders/shaders_hybrid_render.c +++ b/examples/shaders/shaders_hybrid_render.c @@ -16,32 +16,35 @@ ********************************************************************************************/ #include "raylib.h" + #include "rlgl.h" -#include "math.h" // Used for tan() -#include "raymath.h" // Used to calculate camera Direction +#include "raymath.h" + +#include // Required for: tanf() #if defined(PLATFORM_DESKTOP) -#define GLSL_VERSION 330 + #define GLSL_VERSION 330 #else // PLATFORM_ANDROID, PLATFORM_WEB -#define GLSL_VERSION 100 + #define GLSL_VERSION 100 #endif +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +typedef struct { + unsigned int camPos; + unsigned int camDir; + unsigned int screenCenter; +} RayLocs; + //------------------------------------------------------------------------------------ -// Declare custom functions required for the example +// Module Functions Declaration //------------------------------------------------------------------------------------ // Load custom render texture, create a writable depth texture buffer static RenderTexture2D LoadRenderTextureDepthTex(int width, int height); // Unload render texture from GPU memory (VRAM) static void UnloadRenderTextureDepthTex(RenderTexture2D target); -//------------------------------------------------------------------------------------ -// Declare custom Structs -//------------------------------------------------------------------------------------ - -typedef struct { - unsigned int camPos, camDir, screenCenter; -}RayLocs ; - //------------------------------------------------------------------------------------ // Program main entry point //------------------------------------------------------------------------------------ @@ -153,10 +156,10 @@ int main(void) } //------------------------------------------------------------------------------------ -// Define custom functions required for the example +// Module Functions Definition //------------------------------------------------------------------------------------ // Load custom render texture, create a writable depth texture buffer -RenderTexture2D LoadRenderTextureDepthTex(int width, int height) +static RenderTexture2D LoadRenderTextureDepthTex(int width, int height) { RenderTexture2D target = { 0 }; @@ -195,7 +198,7 @@ RenderTexture2D LoadRenderTextureDepthTex(int width, int height) } // Unload render texture from GPU memory (VRAM) -void UnloadRenderTextureDepthTex(RenderTexture2D target) +static void UnloadRenderTextureDepthTex(RenderTexture2D target) { if (target.id > 0) { diff --git a/examples/shaders/shaders_rounded_rectangle.c b/examples/shaders/shaders_rounded_rectangle.c index 654fba49b..ddfab299c 100644 --- a/examples/shaders/shaders_rounded_rectangle.c +++ b/examples/shaders/shaders_rounded_rectangle.c @@ -23,9 +23,9 @@ #define GLSL_VERSION 100 #endif -//------------------------------------------------------------------------------------ -// Structs definition -//------------------------------------------------------------------------------------ +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- // Rounded rectangle data typedef struct { Vector4 cornerRadius; // Individual corner radius (top-left, top-right, bottom-left, bottom-right) diff --git a/examples/shaders/shaders_spotlight.c b/examples/shaders/shaders_spotlight.c index 1ab7664b5..1188ea8da 100644 --- a/examples/shaders/shaders_spotlight.c +++ b/examples/shaders/shaders_spotlight.c @@ -43,6 +43,9 @@ #define MAX_SPOTS 3 // NOTE: It must be the same as define in shader #define MAX_STARS 400 +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- // Spot data typedef struct Spot { Vector2 position; @@ -62,6 +65,9 @@ typedef struct Star { Vector2 speed; } Star; +//-------------------------------------------------------------------------------------- +// Module Functions Declaration +//-------------------------------------------------------------------------------------- static void UpdateStar(Star *s); static void ResetStar(Star *s); diff --git a/examples/shaders/shaders_write_depth.c b/examples/shaders/shaders_write_depth.c index 54e504a48..a80eb83e5 100644 --- a/examples/shaders/shaders_write_depth.c +++ b/examples/shaders/shaders_write_depth.c @@ -25,9 +25,9 @@ #define GLSL_VERSION 100 #endif -//------------------------------------------------------------------------------------ -// Declare custom functions required for the example -//------------------------------------------------------------------------------------ +//-------------------------------------------------------------------------------------- +// Module Functions Declaration +//-------------------------------------------------------------------------------------- // Load custom render texture, create a writable depth texture buffer static RenderTexture2D LoadRenderTextureDepthTex(int width, int height); @@ -109,9 +109,10 @@ int main(void) return 0; } -//------------------------------------------------------------------------------------ -// Define custom functions required for the example -//------------------------------------------------------------------------------------ +//-------------------------------------------------------------------------------------- +// Module Functions Definition +//-------------------------------------------------------------------------------------- + // Load custom render texture, create a writable depth texture buffer RenderTexture2D LoadRenderTextureDepthTex(int width, int height) { diff --git a/examples/shapes/shapes_digital_clock.c b/examples/shapes/shapes_digital_clock.c index 5f13dd2a8..20c43ed7b 100644 --- a/examples/shapes/shapes_digital_clock.c +++ b/examples/shapes/shapes_digital_clock.c @@ -128,7 +128,6 @@ int main(void) //---------------------------------------------------------------------------------- // Module Functions Definition //---------------------------------------------------------------------------------- - // Update clock time static void UpdateClock(Clock *clock) { diff --git a/examples/shapes/shapes_double_pendulum.c b/examples/shapes/shapes_double_pendulum.c index e2817f24b..200f9ad7e 100644 --- a/examples/shapes/shapes_double_pendulum.c +++ b/examples/shapes/shapes_double_pendulum.c @@ -19,9 +19,6 @@ #include // Required for: sin(), cos(), PI -//---------------------------------------------------------------------------------- -// Macro Helpers -//---------------------------------------------------------------------------------- // Constant for Simulation #define SIMULATION_STEPS 30 #define G 9.81 @@ -156,13 +153,16 @@ int main(void) return 0; } -// Calculate Pendulum End Point +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- +// Calculate pendulum end point static Vector2 CalculatePendulumEndPoint(float l, float theta) { return (Vector2){ 10*l*sin(theta), 10*l*cos(theta) }; } -// Calculate Double Pendulum End Point +// Calculate double pendulum end point static Vector2 CalculateDoublePendulumEndPoint(float l1, float theta1, float l2, float theta2) { Vector2 endpoint1 = CalculatePendulumEndPoint(l1, theta1); diff --git a/examples/shapes/shapes_rectangle_advanced.c b/examples/shapes/shapes_rectangle_advanced.c index c4fc648b3..5bd15cc55 100644 --- a/examples/shapes/shapes_rectangle_advanced.c +++ b/examples/shapes/shapes_rectangle_advanced.c @@ -21,6 +21,9 @@ #include +//-------------------------------------------------------------------------------------- +// Module Functions Declaration +//-------------------------------------------------------------------------------------- // Draw rectangle with rounded edges and horizontal gradient, with options to choose side of roundness static void DrawRectangleRoundedGradientH(Rectangle rec, float roundnessLeft, float roundnessRight, int segments, Color left, Color right); @@ -83,6 +86,9 @@ int main(void) return 0; } +//-------------------------------------------------------------------------------------- +// Module Functions Definition +//-------------------------------------------------------------------------------------- // Draw rectangle with rounded edges and horizontal gradient, with options to choose side of roundness // NOTE: Adapted from both 'DrawRectangleRounded()' and 'DrawRectangleGradientH()' raylib [rshapes] implementations static void DrawRectangleRoundedGradientH(Rectangle rec, float roundnessLeft, float roundnessRight, int segments, Color left, Color right) diff --git a/examples/text/text_draw_3d.c b/examples/text/text_draw_3d.c index 532596c88..0202b49f7 100644 --- a/examples/text/text_draw_3d.c +++ b/examples/text/text_draw_3d.c @@ -41,7 +41,7 @@ #endif //-------------------------------------------------------------------------------------- -// Globals +// Global variables //-------------------------------------------------------------------------------------- #define LETTER_BOUNDRY_SIZE 0.25f #define TEXT_MAX_LAYERS 32 @@ -51,7 +51,7 @@ bool SHOW_LETTER_BOUNDRY = false; bool SHOW_TEXT_BOUNDRY = false; //-------------------------------------------------------------------------------------- -// Data Types definition +// Types and Structures Definition //-------------------------------------------------------------------------------------- // Configuration structure for waving the text typedef struct WaveTextConfig { diff --git a/examples/text/text_rectangle_bounds.c b/examples/text/text_rectangle_bounds.c index 66fe53234..e180ae475 100644 --- a/examples/text/text_rectangle_bounds.c +++ b/examples/text/text_rectangle_bounds.c @@ -18,7 +18,7 @@ #include "raylib.h" //---------------------------------------------------------------------------------- -// Module functions declaration +// Module Functions Declaration //---------------------------------------------------------------------------------- // Draw text using font inside rectangle limits static void DrawTextBoxed(Font font, const char *text, Rectangle rec, float fontSize, float spacing, bool wordWrap, Color tint); @@ -135,7 +135,7 @@ tempor incididunt ut labore et dolore magna aliqua. Nec ullamcorper sit amet ris } //-------------------------------------------------------------------------------------- -// Module functions definition +// Module Functions Definition //-------------------------------------------------------------------------------------- // Draw text using font inside rectangle limits diff --git a/examples/text/text_unicode.c b/examples/text/text_unicode.c index 54bdd4f86..aa8527fa9 100644 --- a/examples/text/text_unicode.c +++ b/examples/text/text_unicode.c @@ -24,6 +24,18 @@ #define EMOJI_PER_WIDTH 8 #define EMOJI_PER_HEIGHT 4 +//-------------------------------------------------------------------------------------- +// Global variables +//-------------------------------------------------------------------------------------- +// Arrays that holds the random emojis +struct { + int index; // Index inside `emojiCodepoints` + int message; // Message index + Color color; // Emoji color +} emoji[EMOJI_PER_WIDTH*EMOJI_PER_HEIGHT] = { 0 }; + +static int hovered = -1, selected = -1; + // String containing 180 emoji codepoints separated by a '\0' char const char *const emojiCodepoints = "\xF0\x9F\x8C\x80\x00\xF0\x9F\x98\x80\x00\xF0\x9F\x98\x82\x00\xF0\x9F\xA4\xA3\x00\xF0\x9F\x98\x83\x00\xF0\x9F\x98\x86\x00\xF0\x9F\x98\x89\x00" "\xF0\x9F\x98\x8B\x00\xF0\x9F\x98\x8E\x00\xF0\x9F\x98\x8D\x00\xF0\x9F\x98\x98\x00\xF0\x9F\x98\x97\x00\xF0\x9F\x98\x99\x00\xF0\x9F\x98\x9A\x00\xF0\x9F\x99\x82\x00" @@ -133,25 +145,13 @@ struct { }; //-------------------------------------------------------------------------------------- -// Module functions declaration +// Module Functions Declaration //-------------------------------------------------------------------------------------- static void RandomizeEmoji(void); // Fills the emoji array with random emojis static void DrawTextBoxed(Font font, const char *text, Rectangle rec, float fontSize, float spacing, bool wordWrap, Color tint); // Draw text using font inside rectangle limits static void DrawTextBoxedSelectable(Font font, const char *text, Rectangle rec, float fontSize, float spacing, bool wordWrap, Color tint, int selectStart, int selectLength, Color selectTint, Color selectBackTint); // Draw text using font inside rectangle limits with support for text selection -//-------------------------------------------------------------------------------------- -// Global variables -//-------------------------------------------------------------------------------------- -// Arrays that holds the random emojis -struct { - int index; // Index inside `emojiCodepoints` - int message; // Message index - Color color; // Emoji color -} emoji[EMOJI_PER_WIDTH*EMOJI_PER_HEIGHT] = { 0 }; - -static int hovered = -1, selected = -1; - //------------------------------------------------------------------------------------ // Program main entry point //------------------------------------------------------------------------------------ @@ -329,7 +329,7 @@ static void RandomizeEmoji(void) } //-------------------------------------------------------------------------------------- -// Module functions definition +// Module Functions Definition //-------------------------------------------------------------------------------------- // Draw text using font inside rectangle limits diff --git a/examples/text/text_unicode_ranges.c b/examples/text/text_unicode_ranges.c index d3cb4b5e5..d1ae1a4b5 100644 --- a/examples/text/text_unicode_ranges.c +++ b/examples/text/text_unicode_ranges.c @@ -19,17 +19,20 @@ #include +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- typedef struct { - int* data; + int *data; int count; int capacity; } CodepointsArray; //-------------------------------------------------------------------------------------- -// Module functions declaration +// Module Functions Declaration //-------------------------------------------------------------------------------------- -static void AddRange(CodepointsArray* array, int start, int stop); -static Font LoadUnicodeFont(const char* fileName, int fontSize); +static void AddCodepointRange(CodepointsArray* array, int start, int stop); +//static Font LoadUnicodeFont(const char* fileName, int fontSize); //------------------------------------------------------------------------------------ // Program main entry point @@ -95,7 +98,7 @@ int main(void) } //-------------------------------------------------------------------------------------- -// Module functions definition +// Module Functions Definition //-------------------------------------------------------------------------------------- static void AddRange(CodepointsArray* array, int start, int stop) { diff --git a/examples/textures/textures_image_kernel.c b/examples/textures/textures_image_kernel.c index 99285e15e..3c89bd620 100644 --- a/examples/textures/textures_image_kernel.c +++ b/examples/textures/textures_image_kernel.c @@ -20,7 +20,7 @@ #include "raylib.h" //------------------------------------------------------------------------------------ -// Module functions declaration +// Module Functions Declaration //------------------------------------------------------------------------------------ static void NormalizeKernel(float *kernel, int size); @@ -131,7 +131,7 @@ int main(void) } //------------------------------------------------------------------------------------ -// Module functions definition +// Module Functions Definition //------------------------------------------------------------------------------------ static void NormalizeKernel(float *kernel, int size) { diff --git a/examples/textures/textures_textured_curve.c b/examples/textures/textures_textured_curve.c index 245aee3c7..feeefc7b6 100644 --- a/examples/textures/textures_textured_curve.c +++ b/examples/textures/textures_textured_curve.c @@ -155,7 +155,6 @@ int main() //---------------------------------------------------------------------------------- // Module Functions Definition //---------------------------------------------------------------------------------- - // Draw textured curve using Spline Cubic Bezier static void DrawTexturedCurve(void) { diff --git a/projects/CMake/core_basic_window.c b/projects/CMake/core_basic_window.c index 86709f7a9..cb23a6f87 100644 --- a/projects/CMake/core_basic_window.c +++ b/projects/CMake/core_basic_window.c @@ -31,7 +31,7 @@ int screenHeight = 450; void UpdateDrawFrame(void); // Update and Draw one frame //---------------------------------------------------------------------------------- -// Main Entry Point +// Program main entry point //---------------------------------------------------------------------------------- int main() { diff --git a/projects/VSCode/main.c b/projects/VSCode/main.c index cad32c2ef..ea394de58 100644 --- a/projects/VSCode/main.c +++ b/projects/VSCode/main.c @@ -26,18 +26,18 @@ #endif //---------------------------------------------------------------------------------- -// Local Variables Definition (local to this module) +// Global Variables Definition (local to this module) //---------------------------------------------------------------------------------- Camera camera = { 0 }; Vector3 cubePosition = { 0 }; //---------------------------------------------------------------------------------- -// Local Functions Declaration +// Module Functions Declaration //---------------------------------------------------------------------------------- static void UpdateDrawFrame(void); // Update and draw one frame //---------------------------------------------------------------------------------- -// Main entry point +// Program main entry point //---------------------------------------------------------------------------------- int main() { From 8f32c502a7b612e8ba258b5172b2bc6e46b1576e Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 2 Sep 2025 12:10:40 +0200 Subject: [PATCH 012/190] REVIEWED: Code sections definition --- src/platforms/rcore_desktop_sdl.c | 2 +- src/platforms/rcore_drm.c | 2 +- src/platforms/rcore_web.c | 2 +- src/raudio.c | 5 ++--- src/raylib.h | 4 ++-- src/rlgl.h | 6 +++--- src/rmodels.c | 5 ++--- src/rshapes.c | 7 +++---- src/rtext.c | 6 ++---- src/rtextures.c | 5 ++--- 10 files changed, 19 insertions(+), 25 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index c9b346fcf..33788d720 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -111,7 +111,7 @@ extern CoreData CORE; // Global CORE state context static PlatformData platform = { 0 }; // Platform specific data //---------------------------------------------------------------------------------- -// Local Variables Definition +// Global Variables Definition //---------------------------------------------------------------------------------- #define SCANCODE_MAPPED_NUM 232 static const KeyboardKey mapScancodeToKey[SCANCODE_MAPPED_NUM] = { diff --git a/src/platforms/rcore_drm.c b/src/platforms/rcore_drm.c index a2151ea38..b15df2dea 100644 --- a/src/platforms/rcore_drm.c +++ b/src/platforms/rcore_drm.c @@ -156,7 +156,7 @@ extern CoreData CORE; // Global CORE state context static PlatformData platform = { 0 }; // Platform specific data //---------------------------------------------------------------------------------- -// Local Variables Definition +// Global Variables Definition //---------------------------------------------------------------------------------- // NOTE: The complete evdev EV_KEY list can be found at /usr/include/linux/input-event-codes.h diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index 2712aa142..a32f9c59a 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -86,7 +86,7 @@ extern CoreData CORE; // Global CORE state context static PlatformData platform = { 0 }; // Platform specific data //---------------------------------------------------------------------------------- -// Local Variables Definition +// Global Variables Definition //---------------------------------------------------------------------------------- static const char cursorLUT[11][12] = { "default", // 0 MOUSE_CURSOR_DEFAULT diff --git a/src/raudio.c b/src/raudio.c index e9d76fa99..c883132d9 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -407,7 +407,7 @@ static AudioData AUDIO = { // Global AUDIO context }; //---------------------------------------------------------------------------------- -// Module specific Functions Declaration +// Module Internal Functions Declaration //---------------------------------------------------------------------------------- static void OnLog(void *pUserData, ma_uint32 level, const char *pMessage); @@ -2352,9 +2352,8 @@ void DetachAudioMixedProcessor(AudioCallback process) } //---------------------------------------------------------------------------------- -// Module specific Functions Definition +// Module Internal Functions Definition //---------------------------------------------------------------------------------- - // Log callback function static void OnLog(void *pUserData, ma_uint32 level, const char *pMessage) { diff --git a/src/raylib.h b/src/raylib.h index b5de3c71d..1d7321b46 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -115,7 +115,7 @@ #endif //---------------------------------------------------------------------------------- -// Some basic Defines +// Defines and Macros //---------------------------------------------------------------------------------- #ifndef PI #define PI 3.14159265358979323846f @@ -201,7 +201,7 @@ #define RAYWHITE CLITERAL(Color){ 245, 245, 245, 255 } // My own White (raylib logo) //---------------------------------------------------------------------------------- -// Structures Definition +// Types and Structures Definition //---------------------------------------------------------------------------------- // Boolean type #if (defined(__STDC__) && __STDC_VERSION__ >= 199901L) || (defined(_MSC_VER) && _MSC_VER >= 1800) diff --git a/src/rlgl.h b/src/rlgl.h index 324d8aac5..884110c56 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -1039,7 +1039,7 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #endif //---------------------------------------------------------------------------------- -// Types and Structures Definition +// Module Types and Structures Definition //---------------------------------------------------------------------------------- #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) @@ -1145,7 +1145,7 @@ static PFNGLVERTEXATTRIBDIVISOREXTPROC glVertexAttribDivisor = NULL; #endif //---------------------------------------------------------------------------------- -// Module specific Functions Declaration +// Module Functions Declaration //---------------------------------------------------------------------------------- #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) static void rlLoadShaderDefault(void); // Load default shader @@ -4864,7 +4864,7 @@ const char *rlGetPixelFormatName(unsigned int format) } //---------------------------------------------------------------------------------- -// Module specific Functions Definition +// Module Functions Definition //---------------------------------------------------------------------------------- #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) // Load default shader (just vertex positioning and texture coloring) diff --git a/src/rmodels.c b/src/rmodels.c index 5a824ce44..3ac416847 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -144,7 +144,7 @@ // ... //---------------------------------------------------------------------------------- -// Module specific Functions Declaration +// Module Internal Functions Declaration //---------------------------------------------------------------------------------- #if defined(SUPPORT_FILEFORMAT_OBJ) static Model LoadOBJ(const char *fileName); // Load OBJ mesh data @@ -171,7 +171,6 @@ static void ProcessMaterialsOBJ(Material *rayMaterials, tinyobj_material_t *mate //---------------------------------------------------------------------------------- // Module Functions Definition //---------------------------------------------------------------------------------- - // Draw a line in 3D world space void DrawLine3D(Vector3 startPos, Vector3 endPos, Color color) { @@ -4244,7 +4243,7 @@ RayCollision GetRayCollisionQuad(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3, Ve } //---------------------------------------------------------------------------------- -// Module specific Functions Definition +// Module Internal Functions Definition //---------------------------------------------------------------------------------- #if defined(SUPPORT_FILEFORMAT_IQM) || defined(SUPPORT_FILEFORMAT_GLTF) // Build pose from parent joints diff --git a/src/rshapes.c b/src/rshapes.c index 38ad75c7d..14e3f856a 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -83,14 +83,13 @@ static Texture2D texShapes = { 1, 1, 1, 1, 7 }; // Texture used o static Rectangle texShapesRec = { 0.0f, 0.0f, 1.0f, 1.0f }; // Texture source rectangle used on shapes drawing //---------------------------------------------------------------------------------- -// Module specific Functions Declaration +// Module Internal Functions Declaration //---------------------------------------------------------------------------------- static float EaseCubicInOut(float t, float b, float c, float d); // Cubic easing //---------------------------------------------------------------------------------- // Module Functions Definition //---------------------------------------------------------------------------------- - // Set texture and rectangle to be used on shapes drawing // NOTE: It can be useful when using basic shapes and one single font, // defining a font char white rectangle would allow drawing everything in a single draw call @@ -2371,7 +2370,7 @@ bool CheckCollisionPointLine(Vector2 point, Vector2 p1, Vector2 p2, int threshol } // Check if circle collides with a line created between two points [p1] and [p2] -RLAPI bool CheckCollisionCircleLine(Vector2 center, float radius, Vector2 p1, Vector2 p2) +bool CheckCollisionCircleLine(Vector2 center, float radius, Vector2 p1, Vector2 p2) { float dx = p1.x - p2.x; float dy = p1.y - p2.y; @@ -2420,7 +2419,7 @@ Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2) } //---------------------------------------------------------------------------------- -// Module specific Functions Definition +// Module Internal Functions Definition //---------------------------------------------------------------------------------- // Cubic easing in-out diff --git a/src/rtext.c b/src/rtext.c index ffa432ed3..ffcaa3d46 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -141,7 +141,7 @@ static int textLineSpacing = 2; // Text vertical line spacing in //... //---------------------------------------------------------------------------------- -// Module specific Functions Declaration +// Module Internal Functions Declaration //---------------------------------------------------------------------------------- #if defined(SUPPORT_FILEFORMAT_FNT) static Font LoadBMFont(const char *fileName); // Load a BMFont file (AngelCode font file) @@ -2197,7 +2197,7 @@ int GetCodepointPrevious(const char *text, int *codepointSize) } //---------------------------------------------------------------------------------- -// Module specific Functions Definition +// Module Internal Functions Definition //---------------------------------------------------------------------------------- #if defined(SUPPORT_FILEFORMAT_FNT) || defined(SUPPORT_FILEFORMAT_BDF) // Read a line from memory @@ -2380,11 +2380,9 @@ static Font LoadBMFont(const char *fileName) return font; } - #endif #if defined(SUPPORT_FILEFORMAT_BDF) - // Convert hexadecimal to decimal (single digit) static unsigned char HexToInt(char hex) { diff --git a/src/rtextures.c b/src/rtextures.c index a4c34b000..18ee1af99 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -258,7 +258,7 @@ extern void LoadFontDefault(void); // [Module: text] Loads default font, required by ImageDrawText() //---------------------------------------------------------------------------------- -// Module specific Functions Declaration +// Module Internal Functions Declaration //---------------------------------------------------------------------------------- static float HalfToFloat(unsigned short x); static unsigned short FloatToHalf(float x); @@ -267,7 +267,6 @@ static Vector4 *LoadImageDataNormalized(Image image); // Load pixel data f //---------------------------------------------------------------------------------- // Module Functions Definition //---------------------------------------------------------------------------------- - // Load image from file into CPU memory (RAM) Image LoadImage(const char *fileName) { @@ -5406,7 +5405,7 @@ int GetPixelDataSize(int width, int height, int format) } //---------------------------------------------------------------------------------- -// Module specific Functions Definition +// Module Internal Functions Definition //---------------------------------------------------------------------------------- // Convert half-float (stored as unsigned short) to float // REF: https://stackoverflow.com/questions/1659440/32-bit-to-16-bit-floating-point-conversion/60047308#60047308 From 8b3c68f8b5bf11dfb97f99061d45f0438b14ebaa Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 2 Sep 2025 12:18:19 +0200 Subject: [PATCH 013/190] Update core_random_sequence.c --- examples/core/core_random_sequence.c | 65 ++++++++++++---------------- 1 file changed, 27 insertions(+), 38 deletions(-) diff --git a/examples/core/core_random_sequence.c b/examples/core/core_random_sequence.c index 3121debc7..67990df32 100644 --- a/examples/core/core_random_sequence.c +++ b/examples/core/core_random_sequence.c @@ -24,8 +24,8 @@ // Types and Structures Definition //---------------------------------------------------------------------------------- typedef struct ColorRect { - Color c; - Rectangle r; + Color color; + Rectangle rect; } ColorRect; //------------------------------------------------------------------------------------ @@ -34,7 +34,6 @@ typedef struct ColorRect { static Color GenerateRandomColor(); static ColorRect *GenerateRandomColorRectSequence(float rectCount, float rectWidth, float screenWidth, float screenHeight); static void ShuffleColorRectSequence(ColorRect *rectangles, int rectCount); -static void DrawTextCenterKeyHelp(const char *key, const char *text, int posX, int posY, int fontSize, Color color); //------------------------------------------------------------------------------------ // Program main entry point @@ -66,7 +65,9 @@ int main(void) { rectCount++; rectSize = (float)screenWidth/rectCount; - free(rectangles); + RL_FREE(rectangles); + + // Re-generate random sequence with new count rectangles = GenerateRandomColorRectSequence((float)rectCount, rectSize, (float)screenWidth, 0.75f*screenHeight); } @@ -76,7 +77,9 @@ int main(void) { rectCount--; rectSize = (float)screenWidth/rectCount; - free(rectangles); + RL_FREE(rectangles); + + // Re-generate random sequence with new count rectangles = GenerateRandomColorRectSequence((float)rectCount, rectSize, (float)screenWidth, 0.75f*screenHeight); } } @@ -88,20 +91,20 @@ int main(void) ClearBackground(RAYWHITE); - int fontSize = 20; for (int i = 0; i < rectCount; i++) { - DrawRectangleRec(rectangles[i].r, rectangles[i].c); - DrawTextCenterKeyHelp("SPACE", "to shuffle the sequence.", 10, screenHeight - 96, fontSize, BLACK); - DrawTextCenterKeyHelp("UP", "to add a rectangle and generate a new sequence.", 10, screenHeight - 64, fontSize, BLACK); - DrawTextCenterKeyHelp("DOWN", "to remove a rectangle and generate a new sequence.", 10, screenHeight - 32, fontSize, BLACK); + DrawRectangleRec(rectangles[i].rect, rectangles[i].color); + + DrawText("Press SPACE to shuffle the sequence", 10, screenHeight - 96, 20, BLACK); + + DrawText("Press SPACE to shuffle the current sequence", 10, screenHeight - 96, 20, BLACK); + DrawText("Press UP to add a rectangle and generate a new sequence", 10, screenHeight - 64, 20, BLACK); + DrawText("Press DOWN to remove a rectangle and generate a new sequence", 10, screenHeight - 32, 20, BLACK); } - const char *rectCountText = TextFormat("%d rectangles", rectCount); - int rectCountTextSize = MeasureText(rectCountText, fontSize); - DrawText(rectCountText, screenWidth - rectCountTextSize - 10, 10, fontSize, BLACK); + DrawText(TextFormat("Count: %d rectangles", rectCount), 10, 10, 20, MAROON); - DrawFPS(10, 10); + DrawFPS(screenWidth - 80, 10); EndDrawing(); //---------------------------------------------------------------------------------- @@ -133,7 +136,8 @@ static Color GenerateRandomColor() static ColorRect *GenerateRandomColorRectSequence(float rectCount, float rectWidth, float screenWidth, float screenHeight) { - ColorRect *rectangles = (ColorRect *)malloc((int)rectCount*sizeof(ColorRect)); + ColorRect *rectangles = (ColorRect *)RL_CALLOC((int)rectCount, sizeof(ColorRect)); + int *seq = LoadRandomSequence((unsigned int)rectCount, 0, (unsigned int)rectCount - 1); float rectSeqWidth = rectCount*rectWidth; float startX = (screenWidth - rectSeqWidth)*0.5f; @@ -142,8 +146,8 @@ static ColorRect *GenerateRandomColorRectSequence(float rectCount, float rectWid { int rectHeight = (int)Remap((float)seq[i], 0, rectCount - 1, 0, screenHeight); - rectangles[i].c = GenerateRandomColor(); - rectangles[i].r = CLITERAL(Rectangle){ startX + i*rectWidth, screenHeight - rectHeight, rectWidth, (float)rectHeight }; + rectangles[i].color = GenerateRandomColor(); + rectangles[i].rect = CLITERAL(Rectangle){ startX + i*rectWidth, screenHeight - rectHeight, rectWidth, (float)rectHeight }; } UnloadRandomSequence(seq); @@ -162,28 +166,13 @@ static void ShuffleColorRectSequence(ColorRect *rectangles, int rectCount) // Swap only the color and height ColorRect tmp = *r1; - r1->c = r2->c; - r1->r.height = r2->r.height; - r1->r.y = r2->r.y; - r2->c = tmp.c; - r2->r.height = tmp.r.height; - r2->r.y = tmp.r.y; + r1->color = r2->color; + r1->rect.height = r2->rect.height; + r1->rect.y = r2->rect.y; + r2->color = tmp.color; + r2->rect.height = tmp.rect.height; + r2->rect.y = tmp.rect.y; } UnloadRandomSequence(seq); } - -static void DrawTextCenterKeyHelp(const char *key, const char *text, int posX, int posY, int fontSize, Color color) -{ - int spaceSize = MeasureText(" ", fontSize); - int pressSize = MeasureText("Press", fontSize); - int keySize = MeasureText(key, fontSize); - int textSizeCurrent = 0; - - DrawText("Press", posX, posY, fontSize, color); - textSizeCurrent += pressSize + 2*spaceSize; - DrawText(key, posX + textSizeCurrent, posY, fontSize, RED); - DrawRectangle(posX + textSizeCurrent, posY + fontSize, keySize, 3, RED); - textSizeCurrent += keySize + 2*spaceSize; - DrawText(text, posX + textSizeCurrent, posY, fontSize, color); -} From aa475b10461018f6f2ed02cfe0bc628d6a8b9698 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 2 Sep 2025 12:34:04 +0200 Subject: [PATCH 014/190] REVIEWED: Code sections description for consistency --- examples/models/rlights.h | 2 +- examples/shaders/rlights.h | 2 +- examples/shapes/raygui.h | 4 ++-- src/external/rprand.h | 6 +++--- src/rcamera.h | 2 +- src/rgestures.h | 4 ++-- src/utils.c | 4 ++-- tools/rexm/rexm.c | 7 +++---- 8 files changed, 15 insertions(+), 16 deletions(-) diff --git a/examples/models/rlights.h b/examples/models/rlights.h index e38b0015a..aba907b5f 100644 --- a/examples/models/rlights.h +++ b/examples/models/rlights.h @@ -109,7 +109,7 @@ void UpdateLightValues(Shader shader, Light light); // Send light proper static int lightsCount = 0; // Current amount of created lights //---------------------------------------------------------------------------------- -// Module specific Functions Declaration +// Module Internal Functions Declaration //---------------------------------------------------------------------------------- // ... diff --git a/examples/shaders/rlights.h b/examples/shaders/rlights.h index e38b0015a..aba907b5f 100644 --- a/examples/shaders/rlights.h +++ b/examples/shaders/rlights.h @@ -109,7 +109,7 @@ void UpdateLightValues(Shader shader, Light light); // Send light proper static int lightsCount = 0; // Current amount of created lights //---------------------------------------------------------------------------------- -// Module specific Functions Declaration +// Module Internal Functions Declaration //---------------------------------------------------------------------------------- // ... diff --git a/examples/shapes/raygui.h b/examples/shapes/raygui.h index 85c477870..a3fc51f0f 100644 --- a/examples/shapes/raygui.h +++ b/examples/shapes/raygui.h @@ -1480,7 +1480,7 @@ static void DrawRectangleGradientV(int posX, int posY, int width, int height, Co #endif // RAYGUI_STANDALONE //---------------------------------------------------------------------------------- -// Module specific Functions Declaration +// Module Internal Functions Declaration //---------------------------------------------------------------------------------- static void GuiLoadStyleFromMemory(const unsigned char *fileData, int dataSize); // Load style from memory (binary only) @@ -4479,7 +4479,7 @@ void GuiSetIconScale(int scale) #endif // !RAYGUI_NO_ICONS //---------------------------------------------------------------------------------- -// Module specific Functions Definition +// Module Internal Functions Definition //---------------------------------------------------------------------------------- // Load style from memory diff --git a/src/external/rprand.h b/src/external/rprand.h index 95147d270..cdef03c01 100644 --- a/src/external/rprand.h +++ b/src/external/rprand.h @@ -156,13 +156,13 @@ static uint32_t rprand_state[4] = { // Xoshiro128** state, initializ }; //---------------------------------------------------------------------------------- -// Module internal functions declaration +// Module Internal Functions Declaration //---------------------------------------------------------------------------------- static uint32_t rprand_xoshiro(void); // Xoshiro128** generator (uses global rprand_state) static uint64_t rprand_splitmix64(void); // SplitMix64 generator (uses seed to generate rprand_state) //---------------------------------------------------------------------------------- -// Module functions definition +// Module Functions Definition //---------------------------------------------------------------------------------- // Set rprand_state for Xoshiro128** // NOTE: We use a custom generation algorithm using SplitMix64 @@ -236,7 +236,7 @@ void rprand_unload_sequence(int *sequence) } //---------------------------------------------------------------------------------- -// Module internal functions definition +// Module Internal Functions Definition //---------------------------------------------------------------------------------- static inline uint32_t rprand_rotate_left(const uint32_t x, int k) { diff --git a/src/rcamera.h b/src/rcamera.h index 62c1225ec..3e9f83095 100644 --- a/src/rcamera.h +++ b/src/rcamera.h @@ -216,7 +216,7 @@ RLAPI Matrix GetCameraProjectionMatrix(Camera *camera, float aspect); //... //---------------------------------------------------------------------------------- -// Module specific Functions Declaration +// Module Internal Functions Declaration //---------------------------------------------------------------------------------- //... diff --git a/src/rgestures.h b/src/rgestures.h index 1bf4e0555..389df64a1 100644 --- a/src/rgestures.h +++ b/src/rgestures.h @@ -238,7 +238,7 @@ static GesturesData GESTURES = { }; //---------------------------------------------------------------------------------- -// Module specific Functions Declaration +// Module Internal Functions Declaration //---------------------------------------------------------------------------------- static float rgVector2Angle(Vector2 initialPosition, Vector2 finalPosition); static float rgVector2Distance(Vector2 v1, Vector2 v2); @@ -481,7 +481,7 @@ float GetGesturePinchAngle(void) } //---------------------------------------------------------------------------------- -// Module specific Functions Definition +// Module Internal Functions Definition //---------------------------------------------------------------------------------- // Get angle from two-points vector with X-axis static float rgVector2Angle(Vector2 v1, Vector2 v2) diff --git a/src/utils.c b/src/utils.c index 26e7a1bab..310ebfc78 100644 --- a/src/utils.c +++ b/src/utils.c @@ -82,7 +82,7 @@ static const char *internalDataPath = NULL; // Android internal data pat #endif //---------------------------------------------------------------------------------- -// Module specific Functions Declaration +// Module Internal Functions Declaration //---------------------------------------------------------------------------------- #if defined(PLATFORM_ANDROID) FILE *funopen(const void *cookie, int (*readfn)(void *, char *, int), int (*writefn)(void *, const char *, int), @@ -482,7 +482,7 @@ FILE *android_fopen(const char *fileName, const char *mode) #endif // PLATFORM_ANDROID //---------------------------------------------------------------------------------- -// Module specific Functions Definition +// Module Internal Functions Definition //---------------------------------------------------------------------------------- #if defined(PLATFORM_ANDROID) static int android_read(void *cookie, char *data, int dataSize) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index 9ab4950c8..d1bfb1a62 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -129,7 +129,7 @@ static const char *exCollectionFilePath = NULL; // Env: REXM_EXAMPLES_COLLECTION static const char *exVSProjectSolutionFile = NULL; // Env REXM_EXAMPLES_VS2022_SLN_FILE //---------------------------------------------------------------------------------- -// Module specific functions declaration +// Module Internal Functions Declaration //---------------------------------------------------------------------------------- static int FileTextFind(const char *fileName, const char *find); static int FileTextReplace(const char *fileName, const char *find, const char *replace); @@ -1283,9 +1283,8 @@ int main(int argc, char *argv[]) } //---------------------------------------------------------------------------------- -// Module specific functions definition +// Module Internal Functions Definition //---------------------------------------------------------------------------------- - // Update required files from examples collection static int UpdateRequiredFiles(void) { @@ -1772,7 +1771,7 @@ static int FileMove(const char *srcPath, const char *dstPath) // Get example info from example file header // NOTE: Expecting the example to follow raylib_example_template.c -rlExampleInfo *LoadExampleInfo(const char *exFileName) +static rlExampleInfo *LoadExampleInfo(const char *exFileName) { rlExampleInfo *exInfo = (rlExampleInfo *)RL_CALLOC(1, sizeof(rlExampleInfo)); From 29ce5d8aa9d261eba395e24437e08c6bd744616e Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 2 Sep 2025 17:45:39 +0200 Subject: [PATCH 015/190] WARNING: BREAKING: `LoadFontData()` redesigned, added parameter This redesign is a big improvement on font loading time and memory requirements. It only loads glyphs available on font from requested codepoints and only processes those glyphs for packaging. When processing +10K codepoints (CJK), the loading time improves considerably. --- src/raylib.h | 6 +- src/rtext.c | 176 ++++++++++++++++++++++++++++++--------------------- 2 files changed, 107 insertions(+), 75 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 1d7321b46..41bc1926e 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1466,11 +1466,11 @@ RLAPI int GetPixelDataSize(int width, int height, int format); // G // Font loading/unloading functions RLAPI Font GetFontDefault(void); // Get the default Font RLAPI Font LoadFont(const char *fileName); // Load font from file into GPU memory (VRAM) -RLAPI Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount); // Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height +RLAPI Font LoadFontEx(const char *fileName, int fontSize, const int *codepoints, int codepointCount); // Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height RLAPI Font LoadFontFromImage(Image image, Color key, int firstChar); // Load font from Image (XNA style) -RLAPI Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount); // Load font from memory buffer, fileType refers to extension: i.e. '.ttf' +RLAPI Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int fontSize, const int *codepoints, int codepointCount); // Load font from memory buffer, fileType refers to extension: i.e. '.ttf' RLAPI bool IsFontValid(Font font); // Check if a font is valid (font data loaded, WARNING: GPU texture not checked) -RLAPI GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount, int type); // Load font data for further use +RLAPI GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, const int *codepoints, int codepointCount, int type, int *glyphCount); // Load font data for further use RLAPI Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyphCount, int fontSize, int padding, int packMethod); // Generate image font atlas using chars info RLAPI void UnloadFontData(GlyphInfo *glyphs, int glyphCount); // Unload font chars info data (RAM) RLAPI void UnloadFont(Font font); // Unload font from GPU memory (VRAM) diff --git a/src/rtext.c b/src/rtext.c index ffcaa3d46..009a264f3 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -171,7 +171,7 @@ extern void LoadFontDefault(void) // NOTE: Using UTF-8 encoding table for Unicode U+0000..U+00FF Basic Latin + Latin-1 Supplement // Ref: http://www.utf8-chartable.de/unicode-utf8-table.pl - defaultFont.glyphCount = 224; // Number of chars included in our default font + defaultFont.glyphCount = 224; // Number of glyphs included in our default font defaultFont.glyphPadding = 0; // Characters padding // Default font is directly defined here (data generated from a sprite font image) @@ -365,7 +365,7 @@ Font LoadFont(const char *fileName) #define FONT_TTF_DEFAULT_FIRST_CHAR 32 // TTF font generation default first char for image sprite font (32-Space) #endif #ifndef FONT_TTF_DEFAULT_CHARS_PADDING - #define FONT_TTF_DEFAULT_CHARS_PADDING 4 // TTF font generation default chars padding + #define FONT_TTF_DEFAULT_CHARS_PADDING 4 // TTF font generation default glyphs padding #endif Font font = { 0 }; @@ -404,7 +404,7 @@ Font LoadFont(const char *fileName) // Load Font from TTF or BDF font file with generation parameters // NOTE: You can pass an array with desired characters, those characters should be available in the font // if array is NULL, default char set is selected 32..126 -Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount) +Font LoadFontEx(const char *fileName, int fontSize, const int *codepoints, int codepointCount) { Font font = { 0 }; @@ -440,8 +440,8 @@ Font LoadFontFromImage(Image image, Color key, int firstChar) int x = 0; int y = 0; - // We allocate a temporal arrays for chars data measures, - // once we get the actual number of chars, we copy data to a sized arrays + // We allocate a temporal arrays for glyphs data measures, + // once we get the actual number of glyphs, we copy data to a sized arrays int tempCharValues[MAX_GLYPHS_FROM_IMAGE] = { 0 }; Rectangle tempCharRecs[MAX_GLYPHS_FROM_IMAGE] = { 0 }; @@ -520,7 +520,7 @@ Font LoadFontFromImage(Image image, Color key, int firstChar) font.glyphCount = index; font.glyphPadding = 0; - // We got tempCharValues and tempCharsRecs populated with chars data + // We got tempCharValues and tempCharsRecs populated with glyphs data // Now we move temp data to sized charValues and charRecs arrays font.glyphs = (GlyphInfo *)RL_MALLOC(font.glyphCount*sizeof(GlyphInfo)); font.recs = (Rectangle *)RL_MALLOC(font.glyphCount*sizeof(Rectangle)); @@ -549,7 +549,7 @@ Font LoadFontFromImage(Image image, Color key, int firstChar) } // Load font from memory buffer, fileType refers to extension: i.e. ".ttf" -Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount) +Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int fontSize, const int *codepoints, int codepointCount) { Font font = { 0 }; @@ -557,21 +557,21 @@ Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int strncpy(fileExtLower, TextToLower(fileType), 16 - 1); font.baseSize = fontSize; - font.glyphCount = (codepointCount > 0)? codepointCount : 95; font.glyphPadding = 0; #if defined(SUPPORT_FILEFORMAT_TTF) if (TextIsEqual(fileExtLower, ".ttf") || TextIsEqual(fileExtLower, ".otf")) { - font.glyphs = LoadFontData(fileData, dataSize, font.baseSize, codepoints, font.glyphCount, FONT_DEFAULT); + font.glyphs = LoadFontData(fileData, dataSize, font.baseSize, codepoints, (codepointCount > 0)? codepointCount : 95, FONT_DEFAULT, &font.glyphCount); } else #endif #if defined(SUPPORT_FILEFORMAT_BDF) if (TextIsEqual(fileExtLower, ".bdf")) { - font.glyphs = LoadFontDataBDF(fileData, dataSize, codepoints, font.glyphCount, &font.baseSize); + font.glyphs = LoadFontDataBDF(fileData, dataSize, codepoints, (codepointCount > 0)? codepointCount : 95, &font.baseSize); + font.glyphCount = (codepointCount > 0)? codepointCount : 95; } else #endif @@ -620,7 +620,7 @@ bool IsFontValid(Font font) // Load font data for further use // NOTE: Requires TTF font memory data and can generate SDF data -GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount, int type) +GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, const int *codepoints, int codepointCount, int type, int *glyphCount) { // NOTE: Using some SDF generation default values, // trades off precision with ability to handle *smaller* sizes @@ -637,7 +637,8 @@ GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSiz #define FONT_BITMAP_ALPHA_THRESHOLD 80 // Bitmap (B&W) font generation alpha threshold #endif - GlyphInfo *chars = NULL; + GlyphInfo *glyphs = NULL; + int glyphCounter = 0; #if defined(SUPPORT_FILEFORMAT_TTF) // Load font data (including pixel data) from TTF memory file @@ -646,6 +647,7 @@ GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSiz { bool genFontChars = false; stbtt_fontinfo fontInfo = { 0 }; + int *requiredCodepoints = (int *)codepoints; if (stbtt_InitFont(&fontInfo, (unsigned char *)fileData, 0)) // Initialize font for data reading { @@ -662,21 +664,29 @@ GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSiz // Fill fontChars in case not provided externally // NOTE: By default we fill glyphCount consecutively, starting at 32 (Space) - if (codepoints == NULL) + if (requiredCodepoints == NULL) { - codepoints = (int *)RL_MALLOC(codepointCount*sizeof(int)); - for (int i = 0; i < codepointCount; i++) codepoints[i] = i + 32; + requiredCodepoints = (int *)RL_MALLOC(codepointCount*sizeof(int)); + for (int i = 0; i < codepointCount; i++) requiredCodepoints[i] = i + 32; genFontChars = true; } - chars = (GlyphInfo *)RL_CALLOC(codepointCount, sizeof(GlyphInfo)); + // Check available glyphs on provided font before loading them + for (int i = 0, index; i < codepointCount; i++) + { + index = stbtt_FindGlyphIndex(&fontInfo, requiredCodepoints[i]); + if (index > 0) glyphCounter++; + } - // NOTE: Using simple packaging, one char after another + // WARNING: Allocating space for maximum number of codepoints + glyphs = (GlyphInfo *)RL_CALLOC(glyphCounter, sizeof(GlyphInfo)); + glyphCounter = 0; // Reset to reuse + + int k = 0; for (int i = 0; i < codepointCount; i++) { - int chw = 0, chh = 0; // Character width and height (on generation) - int ch = codepoints[i]; // Character value to get info for - chars[i].value = ch; + int cpWidth = 0, cpHeight = 0; // Codepoint width and height (on generation) + int cp = requiredCodepoints[i]; // Codepoint value to get info for // Render a unicode codepoint to a bitmap // stbtt_GetCodepointBitmap() -- allocates and returns a bitmap @@ -685,76 +695,96 @@ GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSiz // Check if a glyph is available in the font // WARNING: if (index == 0), glyph not found, it could fallback to default .notdef glyph (if defined in font) - int index = stbtt_FindGlyphIndex(&fontInfo, ch); + int index = stbtt_FindGlyphIndex(&fontInfo, cp); if (index > 0) { + // NOTE: Only storing glyphs for codepoints found in the font + glyphs[k].value = cp; + switch (type) { case FONT_DEFAULT: - case FONT_BITMAP: chars[i].image.data = stbtt_GetCodepointBitmap(&fontInfo, scaleFactor, scaleFactor, ch, &chw, &chh, &chars[i].offsetX, &chars[i].offsetY); break; - case FONT_SDF: if (ch != 32) chars[i].image.data = stbtt_GetCodepointSDF(&fontInfo, scaleFactor, ch, FONT_SDF_CHAR_PADDING, FONT_SDF_ON_EDGE_VALUE, FONT_SDF_PIXEL_DIST_SCALE, &chw, &chh, &chars[i].offsetX, &chars[i].offsetY); break; + case FONT_BITMAP: glyphs[k].image.data = stbtt_GetCodepointBitmap(&fontInfo, scaleFactor, scaleFactor, cp, &cpWidth, &cpHeight, &glyphs[k].offsetX, &glyphs[k].offsetY); break; + case FONT_SDF: + { + if (cp != 32) + { + glyphs[k].image.data = stbtt_GetCodepointSDF(&fontInfo, scaleFactor, cp, + FONT_SDF_CHAR_PADDING, FONT_SDF_ON_EDGE_VALUE, FONT_SDF_PIXEL_DIST_SCALE, + &cpWidth, &cpHeight, &glyphs[k].offsetX, &glyphs[k].offsetY); + } + } break; + //case FONT_MSDF: default: break; } - if (chars[i].image.data != NULL) // Glyph data has been found in the font + if (glyphs[k].image.data != NULL) // Glyph data has been found in the font { - stbtt_GetCodepointHMetrics(&fontInfo, ch, &chars[i].advanceX, NULL); - chars[i].advanceX = (int)((float)chars[i].advanceX*scaleFactor); + stbtt_GetCodepointHMetrics(&fontInfo, cp, &glyphs[k].advanceX, NULL); + glyphs[k].advanceX = (int)((float)glyphs[k].advanceX*scaleFactor); - if (chh > fontSize) TRACELOG(LOG_WARNING, "FONT: Character [0x%08x] size is bigger than expected font size", ch); + if (cpHeight > fontSize) TRACELOG(LOG_WARNING, "FONT: [0x%04x] Glyph height is bigger than requested font size: %i > %i", cp, cpHeight, (int)fontSize); - // Load characters images - chars[i].image.width = chw; - chars[i].image.height = chh; - chars[i].image.mipmaps = 1; - chars[i].image.format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE; + // Load glyph image + glyphs[k].image.width = cpWidth; + glyphs[k].image.height = cpHeight; + glyphs[k].image.mipmaps = 1; + glyphs[k].image.format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE; - chars[i].offsetY += (int)((float)ascent*scaleFactor); + glyphs[k].offsetY += (int)((float)ascent*scaleFactor); } + //else TRACELOG(LOG_WARNING, "FONT: Glyph [0x%08x] has no image data available", cp); // Only reported for 0x20 and 0x3000 - // NOTE: We create an empty image for space character, - // it could be further required for atlas packing - if (ch == 32) + // We create an empty image for Space character (0x20), useful for sprite font generation + // NOTE: Another space to consider: 0x3000 (CJK - Ideographic Space) + if ((cp == 0x20) || (cp == 0x3000)) { - stbtt_GetCodepointHMetrics(&fontInfo, ch, &chars[i].advanceX, NULL); - chars[i].advanceX = (int)((float)chars[i].advanceX*scaleFactor); + stbtt_GetCodepointHMetrics(&fontInfo, cp, &glyphs[k].advanceX, NULL); + glyphs[k].advanceX = (int)((float)glyphs[k].advanceX*scaleFactor); Image imSpace = { - .data = RL_CALLOC(chars[i].advanceX*fontSize, 2), - .width = chars[i].advanceX, + .data = RL_CALLOC(glyphs[k].advanceX*fontSize, 2), + .width = glyphs[k].advanceX, .height = fontSize, .mipmaps = 1, .format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE }; - chars[i].image = imSpace; + glyphs[k].image = imSpace; } if (type == FONT_BITMAP) { // Aliased bitmap (black & white) font generation, avoiding anti-aliasing // NOTE: For optimum results, bitmap font should be generated at base pixel size - for (int p = 0; p < chw*chh; p++) + for (int p = 0; p < cpWidth*cpHeight; p++) { - if (((unsigned char *)chars[i].image.data)[p] < FONT_BITMAP_ALPHA_THRESHOLD) ((unsigned char *)chars[i].image.data)[p] = 0; - else ((unsigned char *)chars[i].image.data)[p] = 255; + if (((unsigned char *)glyphs[k].image.data)[p] < FONT_BITMAP_ALPHA_THRESHOLD) + ((unsigned char *)glyphs[k].image.data)[p] = 0; + else ((unsigned char *)glyphs[k].image.data)[p] = 255; } } + + k++; + glyphCounter++; } else { - // TODO: Use some fallback glyph for codepoints not found in the font + // WARNING: Glyph not found on font, optionally use a fallback glyph } } + + if (glyphCounter < codepointCount) TRACELOG(LOG_WARNING, "FONT: Requested codepoints glyphs found: [%i/%i]", k, codepointCount); } else TRACELOG(LOG_WARNING, "FONT: Failed to process TTF font data"); - if (genFontChars) RL_FREE(codepoints); + if (genFontChars) RL_FREE(requiredCodepoints); } #endif - return chars; + *glyphCount = glyphCounter; + return glyphs; } // Generate image font atlas using chars info @@ -1239,7 +1269,7 @@ void DrawTextCodepoint(Font font, int codepoint, Vector2 position, float fontSiz (font.recs[index].height + 2.0f*font.glyphPadding)*scaleFactor }; // Character source rectangle from font texture atlas - // NOTE: We consider chars padding when drawing, it could be required for outline/glow shader effects + // NOTE: We consider glyphs padding when drawing, it could be required for outline/glow shader effects Rectangle srcRec = { font.recs[index].x - (float)font.glyphPadding, font.recs[index].y - (float)font.glyphPadding, font.recs[index].width + 2.0f*font.glyphPadding, font.recs[index].height + 2.0f*font.glyphPadding }; @@ -1292,7 +1322,7 @@ int MeasureText(const char *text, int fontSize) // Check if default font has been loaded if (GetFontDefault().texture.id != 0) { - int defaultFontSize = 10; // Default Font chars height in pixel + int defaultFontSize = 10; // Default Font glyphs height in pixel if (fontSize < defaultFontSize) fontSize = defaultFontSize; int spacing = fontSize/defaultFontSize; @@ -2394,7 +2424,7 @@ static unsigned char HexToInt(char hex) // Load font data for further use // NOTE: Requires BDF font memory data -static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, int *codepoints, int codepointCount, int *outFontSize) +static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, const int *codepoints, int codepointCount, int *outFontSize) { #define MAX_BUFFER_SIZE 256 @@ -2428,7 +2458,9 @@ static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, i int charBByoff0 = 0; // Character bounding box Y0 offset int charDWidthX = 0; // Character advance X int charDWidthY = 0; // Character advance Y (unused) - GlyphInfo *charGlyphInfo = NULL; // Pointer to output glyph info (NULL if not set) + + GlyphInfo *glyphs = NULL; // Pointer to output glyph info (NULL if not set) + int *requiredCodepoints = codepoints; if (fileData == NULL) return glyphs; @@ -2437,10 +2469,10 @@ static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, i // Fill fontChars in case not provided externally // NOTE: By default we fill glyphCount consecutively, starting at 32 (Space) - if (codepoints == NULL) + if (requiredCodepoints == NULL) { - codepoints = (int *)RL_MALLOC(codepointCount*sizeof(int)); - for (int i = 0; i < codepointCount; i++) codepoints[i] = i + 32; + requiredCodepoints = (int *)RL_MALLOC(codepointCount*sizeof(int)); + for (int i = 0; i < codepointCount; i++) requiredCodepoints[i] = i + 32; genFontChars = true; } @@ -2466,11 +2498,11 @@ static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, i if (charBitmapStarted) { - if (charGlyphInfo != NULL) + if (glyphs != NULL) { int pixelY = charBitmapNextRow++; - if (pixelY >= charGlyphInfo->image.height) break; + if (pixelY >= glyphs->image.height) break; for (int x = 0; x < readBytes; x++) { @@ -2480,9 +2512,9 @@ static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, i { int pixelX = ((x*4) + bitX); - if (pixelX >= charGlyphInfo->image.width) break; + if (pixelX >= glyphs->image.width) break; - if ((byte & (8 >> bitX)) > 0) ((unsigned char *)charGlyphInfo->image.data)[(pixelY*charGlyphInfo->image.width) + pixelX] = 255; + if ((byte & (8 >> bitX)) > 0) ((unsigned char *)glyphs->image.data)[(pixelY*glyphs->image.width) + pixelX] = 255; } } } @@ -2514,30 +2546,30 @@ static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, i if (strstr(buffer, "BITMAP") != NULL) { // Search for glyph index in codepoints - charGlyphInfo = NULL; + glyphs = NULL; for (int codepointIndex = 0; codepointIndex < codepointCount; codepointIndex++) { if (codepoints[codepointIndex] == charEncoding) { - charGlyphInfo = &glyphs[codepointIndex]; + glyphs = &glyphs[codepointIndex]; break; } } // Init glyph info - if (charGlyphInfo != NULL) + if (glyphs != NULL) { - charGlyphInfo->value = charEncoding; - charGlyphInfo->offsetX = charBBxoff0 + fontBByoff0; - charGlyphInfo->offsetY = fontBBh - (charBBh + charBByoff0 + fontBByoff0 + fontAscent); - charGlyphInfo->advanceX = charDWidthX; + glyphs->value = charEncoding; + glyphs->offsetX = charBBxoff0 + fontBByoff0; + glyphs->offsetY = fontBBh - (charBBh + charBByoff0 + fontBByoff0 + fontAscent); + glyphs->advanceX = charDWidthX; - charGlyphInfo->image.data = RL_CALLOC(charBBw*charBBh, 1); - charGlyphInfo->image.width = charBBw; - charGlyphInfo->image.height = charBBh; - charGlyphInfo->image.mipmaps = 1; - charGlyphInfo->image.format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE; + glyphs->image.data = RL_CALLOC(charBBw*charBBh, 1); + glyphs->image.width = charBBw; + glyphs->image.height = charBBh; + glyphs->image.mipmaps = 1; + glyphs->image.format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE; } charBitmapStarted = true; @@ -2588,14 +2620,14 @@ static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, i { charStarted = true; charEncoding = -1; - charGlyphInfo = NULL; + glyphs = NULL; charBBw = 0; charBBh = 0; charBBxoff0 = 0; charBByoff0 = 0; charDWidthX = 0; charDWidthY = 0; - charGlyphInfo = NULL; + glyphs = NULL; charBitmapStarted = false; charBitmapNextRow = 0; continue; From b16d14f5ed7b07c0854806e41cb88684c377d042 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 2 Sep 2025 17:45:52 +0200 Subject: [PATCH 016/190] Update text_font_sdf.c --- examples/text/text_font_sdf.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/text/text_font_sdf.c b/examples/text/text_font_sdf.c index 5a24c1013..d81e8b447 100644 --- a/examples/text/text_font_sdf.c +++ b/examples/text/text_font_sdf.c @@ -50,7 +50,7 @@ int main(void) // Loading font data from memory data // Parameters > font size: 16, no glyphs array provided (0), glyphs count: 95 (autogenerate chars array) - fontDefault.glyphs = LoadFontData(fileData, fileSize, 16, 0, 95, FONT_DEFAULT); + fontDefault.glyphs = LoadFontData(fileData, fileSize, 16, 0, 95, FONT_DEFAULT, &fontDefault.glyphCount); // Parameters > glyphs count: 95, font size: 16, glyphs padding in image: 4 px, pack method: 0 (default) Image atlas = GenImageFontAtlas(fontDefault.glyphs, &fontDefault.recs, 95, 16, 4, 0); fontDefault.texture = LoadTextureFromImage(atlas); @@ -61,7 +61,8 @@ int main(void) fontSDF.baseSize = 16; fontSDF.glyphCount = 95; // Parameters > font size: 16, no glyphs array provided (0), glyphs count: 0 (defaults to 95) - fontSDF.glyphs = LoadFontData(fileData, fileSize, 16, 0, 0, FONT_SDF); + fontSDF.glyphs = LoadFontData(fileData, fileSize, 16, 0, 0, FONT_SDF, & + fontSDF.glyphCount); // Parameters > glyphs count: 95, font size: 16, glyphs padding in image: 0 px, pack method: 1 (Skyline algorythm) atlas = GenImageFontAtlas(fontSDF.glyphs, &fontSDF.recs, 95, 16, 0, 1); fontSDF.texture = LoadTextureFromImage(atlas); From 17d9927a4fcf24984b2b6ff2c18608c21fd03194 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 2 Sep 2025 15:46:09 +0000 Subject: [PATCH 017/190] Update raylib_api.* by CI --- tools/parser/output/raylib_api.json | 10 +++++++--- tools/parser/output/raylib_api.lua | 9 +++++---- tools/parser/output/raylib_api.txt | 9 +++++---- tools/parser/output/raylib_api.xml | 9 +++++---- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/tools/parser/output/raylib_api.json b/tools/parser/output/raylib_api.json index 8828ffb18..4ce190714 100644 --- a/tools/parser/output/raylib_api.json +++ b/tools/parser/output/raylib_api.json @@ -9041,7 +9041,7 @@ "name": "fontSize" }, { - "type": "int *", + "type": "const int *", "name": "codepoints" }, { @@ -9091,7 +9091,7 @@ "name": "fontSize" }, { - "type": "int *", + "type": "const int *", "name": "codepoints" }, { @@ -9129,7 +9129,7 @@ "name": "fontSize" }, { - "type": "int *", + "type": "const int *", "name": "codepoints" }, { @@ -9139,6 +9139,10 @@ { "type": "int", "name": "type" + }, + { + "type": "int *", + "name": "glyphCount" } ] }, diff --git a/tools/parser/output/raylib_api.lua b/tools/parser/output/raylib_api.lua index d0cce09eb..e52fda62d 100644 --- a/tools/parser/output/raylib_api.lua +++ b/tools/parser/output/raylib_api.lua @@ -6550,7 +6550,7 @@ return { params = { {type = "const char *", name = "fileName"}, {type = "int", name = "fontSize"}, - {type = "int *", name = "codepoints"}, + {type = "const int *", name = "codepoints"}, {type = "int", name = "codepointCount"} } }, @@ -6573,7 +6573,7 @@ return { {type = "const unsigned char *", name = "fileData"}, {type = "int", name = "dataSize"}, {type = "int", name = "fontSize"}, - {type = "int *", name = "codepoints"}, + {type = "const int *", name = "codepoints"}, {type = "int", name = "codepointCount"} } }, @@ -6593,9 +6593,10 @@ return { {type = "const unsigned char *", name = "fileData"}, {type = "int", name = "dataSize"}, {type = "int", name = "fontSize"}, - {type = "int *", name = "codepoints"}, + {type = "const int *", name = "codepoints"}, {type = "int", name = "codepointCount"}, - {type = "int", name = "type"} + {type = "int", name = "type"}, + {type = "int *", name = "glyphCount"} } }, { diff --git a/tools/parser/output/raylib_api.txt b/tools/parser/output/raylib_api.txt index 82fdc2c6a..b164b7e88 100644 --- a/tools/parser/output/raylib_api.txt +++ b/tools/parser/output/raylib_api.txt @@ -3468,7 +3468,7 @@ Function 395: LoadFontEx() (4 input parameters) Description: Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height Param[1]: fileName (type: const char *) Param[2]: fontSize (type: int) - Param[3]: codepoints (type: int *) + Param[3]: codepoints (type: const int *) Param[4]: codepointCount (type: int) Function 396: LoadFontFromImage() (3 input parameters) Name: LoadFontFromImage @@ -3485,23 +3485,24 @@ Function 397: LoadFontFromMemory() (6 input parameters) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) Param[4]: fontSize (type: int) - Param[5]: codepoints (type: int *) + Param[5]: codepoints (type: const int *) Param[6]: codepointCount (type: int) Function 398: IsFontValid() (1 input parameters) Name: IsFontValid Return type: bool Description: Check if a font is valid (font data loaded, WARNING: GPU texture not checked) Param[1]: font (type: Font) -Function 399: LoadFontData() (6 input parameters) +Function 399: LoadFontData() (7 input parameters) Name: LoadFontData Return type: GlyphInfo * Description: Load font data for further use Param[1]: fileData (type: const unsigned char *) Param[2]: dataSize (type: int) Param[3]: fontSize (type: int) - Param[4]: codepoints (type: int *) + Param[4]: codepoints (type: const int *) Param[5]: codepointCount (type: int) Param[6]: type (type: int) + Param[7]: glyphCount (type: int *) Function 400: GenImageFontAtlas() (6 input parameters) Name: GenImageFontAtlas Return type: Image diff --git a/tools/parser/output/raylib_api.xml b/tools/parser/output/raylib_api.xml index f2e3b3b4f..43835334d 100644 --- a/tools/parser/output/raylib_api.xml +++ b/tools/parser/output/raylib_api.xml @@ -2286,7 +2286,7 @@ - + @@ -2299,19 +2299,20 @@ - + - + - + + From 0fd5a1a3f5adce1a77b6859877a29c12b5a0d178 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 2 Sep 2025 17:47:25 +0200 Subject: [PATCH 018/190] REDESIGNED: example: `text_unicode_ranges` --- examples/text/text_unicode_ranges.c | 222 +++++++++++++++------------- 1 file changed, 118 insertions(+), 104 deletions(-) diff --git a/examples/text/text_unicode_ranges.c b/examples/text/text_unicode_ranges.c index d1ae1a4b5..190d72732 100644 --- a/examples/text/text_unicode_ranges.c +++ b/examples/text/text_unicode_ranges.c @@ -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) 2019-2025 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) +* Copyright (c) 2025 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ @@ -19,20 +19,11 @@ #include -//---------------------------------------------------------------------------------- -// Types and Structures Definition -//---------------------------------------------------------------------------------- -typedef struct { - int *data; - int count; - int capacity; -} CodepointsArray; - //-------------------------------------------------------------------------------------- // Module Functions Declaration //-------------------------------------------------------------------------------------- -static void AddCodepointRange(CodepointsArray* array, int start, int stop); -//static Font LoadUnicodeFont(const char* fileName, int fontSize); +// Add codepoint range to existing font +static void AddCodepointRange(Font *font, const char *fontPath, int start, int stop); //------------------------------------------------------------------------------------ // Program main entry point @@ -46,9 +37,12 @@ int main(void) InitWindow(screenWidth, screenHeight, "raylib [text] example - unicode ranges"); - // Load font with Unicode support - Font fontUni = LoadUnicodeFont("resources/NotoSansTC-Regular.ttf", 32); - SetTextureFilter(fontUni.texture, TEXTURE_FILTER_BILINEAR); + // Load font with default Unicode range: Basic ASCII [32-127] + Font font = LoadFont("resources/NotoSansTC-Regular.ttf"); + SetTextureFilter(font.texture, TEXTURE_FILTER_BILINEAR); + + int unicodeRange = 0; // Track the ranges of codepoints added to font + int prevUnicodeRange = 0; // Previous Unicode range to avoid reloading every frame SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- @@ -58,7 +52,76 @@ int main(void) { // Update //---------------------------------------------------------------------------------- - //... + if (unicodeRange != prevUnicodeRange) + { + UnloadFont(font); + + // Load font with default Unicode range: Basic ASCII [32-127] + font = LoadFont("resources/NotoSansTC-Regular.ttf"); + + // Add required ranges to loaded font + switch (unicodeRange) + { + /* + case 5: + { + // Unicode range: Devanari, Arabic, Hebrew + // WARNING: Glyphs not available on provided font! + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x900, 0x97f); // Devanagari + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x600, 0x6ff); // Arabic + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x5d0, 0x5ea); // Hebrew + } + */ + case 4: + { + // Unicode range: CJK (Japanese and Chinese) + // WARNING: Loading thousands of codepoints requires lot of time! + // A better strategy is prefilter the required codepoints for the text + // in the game and just load the required ones + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x4e00, 0x9fff); + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x3400, 0x4dbf); + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x3000, 0x303f); + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x3040, 0x309f); + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x30A0, 0x30ff); + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x31f0, 0x31ff); + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0xff00, 0xffef); + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0xac00, 0xd7af); + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x1100, 0x11ff); + } + case 3: + { + // Unicode range: Cyrillic + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x400, 0x4ff); + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x500, 0x52f); + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x2de0, 0x2Dff); + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0xa640, 0xA69f); + } + case 2: + { + // Unicode range: Greek + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x370, 0x3ff); + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x1f00, 0x1fff); + } + case 1: + { + // Unicode range: European Languages + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0xc0, 0x17f); + AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x180, 0x24f); + //AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x1e00, 0x1eff); + //AddCodepointRange(&font, "resources/NotoSansTC-Regular.ttf", 0x2c60, 0x2c7f); + } + default: break; + } + + prevUnicodeRange = unicodeRange; + } + + if (IsKeyPressed(KEY_ZERO)) unicodeRange = 0; + else if (IsKeyPressed(KEY_ONE)) unicodeRange = 1; + else if (IsKeyPressed(KEY_TWO)) unicodeRange = 2; + else if (IsKeyPressed(KEY_THREE)) unicodeRange = 3; + else if (IsKeyPressed(KEY_FOUR)) unicodeRange = 4; + //else if (IsKeyPressed(KEY_FIVE)) unicodeRange = 5; //---------------------------------------------------------------------------------- // Draw @@ -66,22 +129,34 @@ int main(void) BeginDrawing(); ClearBackground(RAYWHITE); + + DrawText("ADD CODEPOINTS: 1,2,3,4", 20, 20, 20, MAROON); // Render test strings in different languages - DrawTextEx(fontUni, "English: Hello World!", (Vector2){ 50, 50 }, 32, 1, DARKGRAY); // English - DrawTextEx(fontUni, "Español: Hola mundo!", (Vector2){ 50, 100 }, 32, 1, DARKGRAY); // Spanish - DrawTextEx(fontUni, "Ελληνικά: Γειά σου κόσμε!", (Vector2){ 50, 150 }, 32, 1, DARKGRAY); // Greek - DrawTextEx(fontUni, "Русский: Привет мир!", (Vector2){ 50, 200 }, 32, 0, DARKGRAY); // Russian - DrawTextEx(fontUni, "中文: 你好世界!", (Vector2){ 50, 250 }, 32, 1, DARKGRAY); // Chinese - DrawTextEx(fontUni, "日本語: こんにちは世界!", (Vector2){ 50, 300 }, 32, 1, DARKGRAY); // Japanese - DrawTextEx(fontUni, "देवनागरी: होला मुंडो!", (Vector2){ 50, 350 }, 32, 1, DARKGRAY); // Devanagari + DrawTextEx(font, "> English: Hello World!", (Vector2){ 50, 70 }, 32, 1, DARKGRAY); // English + DrawTextEx(font, "> Español: Hola mundo!", (Vector2){ 50, 120 }, 32, 1, DARKGRAY); // Spanish + DrawTextEx(font, "> Ελληνικά: Γειά σου κόσμε!", (Vector2){ 50, 170 }, 32, 1, DARKGRAY); // Greek + DrawTextEx(font, "> Русский: Привет мир!", (Vector2){ 50, 220 }, 32, 0, DARKGRAY); // Russian + DrawTextEx(font, "> 中文: 你好世界!", (Vector2){ 50, 270 }, 32, 1, DARKGRAY); // Chinese + DrawTextEx(font, "> 日本語: こんにちは世界!", (Vector2){ 50, 320 }, 32, 1, DARKGRAY); // Japanese + //DrawTextEx(font, "देवनागरी: होला मुंडो!", (Vector2){ 50, 350 }, 32, 1, DARKGRAY); // Devanagari (glyphs not available in font) + // Draw font texture scaled to screen DrawRectangle(400, 16, 380, 400, BLACK); - DrawTexturePro(fontUni.texture, (Rectangle){ 0, 0, fontUni.texture.width, fontUni.texture.height }, - (Rectangle){ 400, 16, 380, 400 }, (Vector2){ 0, 0 }, 0.0f, WHITE); + DrawTexturePro(font.texture, (Rectangle){ 0, 0, font.texture.width, font.texture.height }, + (Rectangle){ 400, 16, font.texture.width*0.5f, font.texture.height*0.5f }, (Vector2){ 0, 0 }, 0.0f, WHITE); + + DrawText(TextFormat("ATLAS SIZE: %ix%i px", font.texture.width, font.texture.height), 20, 380, 20, BLUE); // Display font attribution DrawText("Font: Noto Sans TC. License: SIL Open Font License 1.1", screenWidth - 300, screenHeight - 20, 10, GRAY); + + if (prevUnicodeRange != unicodeRange) + { + DrawRectangle(0, 0, screenWidth, screenHeight, Fade(WHITE, 0.8f)); + DrawRectangle(0, 125, screenWidth, 200, GRAY); + DrawText("LOADING CODEPOINTS...", 150, 210, 40, BLACK); + } EndDrawing(); //---------------------------------------------------------------------------------- @@ -89,7 +164,7 @@ int main(void) // De-Initialization //-------------------------------------------------------------------------------------- - UnloadFont(fontUni); // Unload font resource + UnloadFont(font); // Unload font resource CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- @@ -100,87 +175,26 @@ int main(void) //-------------------------------------------------------------------------------------- // Module Functions Definition //-------------------------------------------------------------------------------------- -static void AddRange(CodepointsArray* array, int start, int stop) +// Add codepoint range to existing font +static void AddCodepointRange(Font *font, const char *fontPath, int start, int stop) { int rangeSize = stop - start + 1; + int currentRangeSize = font->glyphCount; - if ((array->count + rangeSize) > array->capacity) - { - array->capacity = array->count + rangeSize + 1024; - array->data = (int *)MemRealloc(array->data, array->capacity*sizeof(int)); - - if (!array->data) - { - TraceLog(LOG_ERROR, "FONTUTIL: Memory allocation failed"); - exit(1); - } - } + // TODO: Load glyphs from provided vector font (if available), + // add them to existing font, regenerating font image and texture - for (int i = start; i <= stop; i++) array->data[array->count++] = i; + int updatedCodepointCount = currentRangeSize + rangeSize; + int *updatedCodepoints = (int *)RL_CALLOC(updatedCodepointCount, sizeof(int)); + + // Get current codepoint list + for (int i = 0; i < currentRangeSize; i++) updatedCodepoints[i] = font->glyphs[i].value; + + // Add new codepoints to list (provided range) + for (int i = currentRangeSize; i < updatedCodepointCount; i++) + updatedCodepoints[i] = start + (i - currentRangeSize); + + UnloadFont(*font); + *font = LoadFontEx(fontPath, 32, updatedCodepoints, updatedCodepointCount); } -Font LoadUnicodeFont(const char *fileName, int fontSize) -{ - CodepointsArray cp = { 0 }; - cp.capacity = 2048; - cp.data = (int *)MemAlloc(cp.capacity*sizeof(int)); - - if (!cp.data) - { - TraceLog(LOG_ERROR, "FONTUTIL: Initial allocation failed"); - return GetFontDefault(); - } - - // Unicode range: Basic ASCII - AddRange(&cp, 32, 126); - - // Unicode range: European Languages - AddRange(&cp, 0xC0, 0x17F); - AddRange(&cp, 0x180, 0x24F); - AddRange(&cp, 0x1E00, 0x1EFF); - AddRange(&cp, 0x2C60, 0x2C7F); - - // Unicode range: Greek - AddRange(&cp, 0x370, 0x3FF); - AddRange(&cp, 0x1F00, 0x1FFF); - - // Unicode range: Cyrillic - AddRange(&cp, 0x400, 0x4FF); - AddRange(&cp, 0x500, 0x52F); - AddRange(&cp, 0x2DE0, 0x2DFF); - AddRange(&cp, 0xA640, 0xA69F); - - // Unicode range: CJK - AddRange(&cp, 0x4E00, 0x9FFF); - AddRange(&cp, 0x3400, 0x4DBF); - AddRange(&cp, 0x3000, 0x303F); - AddRange(&cp, 0x3040, 0x309F); - AddRange(&cp, 0x30A0, 0x30FF); - AddRange(&cp, 0x31F0, 0x31FF); - AddRange(&cp, 0xFF00, 0xFFEF); - AddRange(&cp, 0xAC00, 0xD7AF); - AddRange(&cp, 0x1100, 0x11FF); - - // Unicode range: Other - // WARNING: Not available on provided font - AddRange(&cp, 0x900, 0x97F); // Devanagari - AddRange(&cp, 0x600, 0x6FF); // Arabic - AddRange(&cp, 0x5D0, 0x5EA); // Hebrew - - Font font = {0}; - - if (FileExists(fileName)) - { - font = LoadFontEx(fileName, fontSize, cp.data, cp.count); - } - - if (font.texture.id == 0) - { - font = GetFontDefault(); - TraceLog(LOG_WARNING, "FONTUTIL: Using default font"); - } - - MemFree(cp.data); - - return font; -} From 9fab2c8a134b9aad46a79922e65870605af1ff0a Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 2 Sep 2025 18:34:58 +0200 Subject: [PATCH 019/190] REVIEWED: example: `text_unicode_ranges` --- examples/text/text_unicode_ranges.c | 11 +++++++---- examples/text/text_unicode_ranges.png | Bin 0 -> 91782 bytes 2 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 examples/text/text_unicode_ranges.png diff --git a/examples/text/text_unicode_ranges.c b/examples/text/text_unicode_ranges.c index 190d72732..76d20ba40 100644 --- a/examples/text/text_unicode_ranges.c +++ b/examples/text/text_unicode_ranges.c @@ -114,6 +114,7 @@ int main(void) } prevUnicodeRange = unicodeRange; + SetTextureFilter(font.texture, TEXTURE_FILTER_BILINEAR); // Set font atlas scale filter } if (IsKeyPressed(KEY_ZERO)) unicodeRange = 0; @@ -130,7 +131,7 @@ int main(void) ClearBackground(RAYWHITE); - DrawText("ADD CODEPOINTS: 1,2,3,4", 20, 20, 20, MAROON); + DrawText("ADD CODEPOINTS: [1][2][3][4]", 20, 20, 20, MAROON); // Render test strings in different languages DrawTextEx(font, "> English: Hello World!", (Vector2){ 50, 70 }, 32, 1, DARKGRAY); // English @@ -142,11 +143,13 @@ int main(void) //DrawTextEx(font, "देवनागरी: होला मुंडो!", (Vector2){ 50, 350 }, 32, 1, DARKGRAY); // Devanagari (glyphs not available in font) // Draw font texture scaled to screen - DrawRectangle(400, 16, 380, 400, BLACK); + float atlasScale = 380.0f/font.texture.width; + DrawRectangle(400, 16, font.texture.width*atlasScale, font.texture.height*atlasScale, BLACK); DrawTexturePro(font.texture, (Rectangle){ 0, 0, font.texture.width, font.texture.height }, - (Rectangle){ 400, 16, font.texture.width*0.5f, font.texture.height*0.5f }, (Vector2){ 0, 0 }, 0.0f, WHITE); + (Rectangle){ 400, 16, font.texture.width*atlasScale, font.texture.height*atlasScale }, (Vector2){ 0, 0 }, 0.0f, WHITE); + DrawRectangleLines(400, 16, 380, 380, RED); - DrawText(TextFormat("ATLAS SIZE: %ix%i px", font.texture.width, font.texture.height), 20, 380, 20, BLUE); + DrawText(TextFormat("ATLAS SIZE: %ix%i px (x%02.1f)", font.texture.width, font.texture.height, atlasScale), 20, 380, 20, BLUE); // Display font attribution DrawText("Font: Noto Sans TC. License: SIL Open Font License 1.1", screenWidth - 300, screenHeight - 20, 10, GRAY); diff --git a/examples/text/text_unicode_ranges.png b/examples/text/text_unicode_ranges.png new file mode 100644 index 0000000000000000000000000000000000000000..5ffffe7186101449d956a74c25bca6d0f8d79755 GIT binary patch literal 91782 zcmeFZ_gfQdyZ$}Nq(DfalY|yTBqAUs0St&U;))20BVt2T5C{@R)Dx#w3 zD6)*b5EZO60ci%zQbbe`P{4+$2-f%Z+0VP5XYXV0_YZi#Uw+5|B*0|uc3tP^JlTeY zOl2|n3o%9k=`o^n*;!?By&eCoy zcRdEfLw)L$d;9GThdO)e_pf;>96h>9;OxwtTVGvWO%xVZCiS&AWKG)i)9}-wtSnl< zJ+%RGkev^1PuP|UUQWt zcu+aeSxINQynb{c&P^oB{B!*Li}k#`G&FQ*#*H7(dB_QxJ@cr)12>OI`|He^ z`pBp#Qi$W!T{f}M<1bw`9Ob&6?(VYA*u=!9fv=yJXYF;I>2Y{MYF6i?3rnWd*qNA^ zsBYi(hih3=cUnc2tbT8^_!jZ$ZEtTabbPnj?KK~iogL*W=5RZUF%$br8!?Nq6=oo@ zRgH(dldn(k^E<3iso*n*kUrZJw(}yCb%ri3E=jF}A3i85>ACmsZ1^U1%c#10xBM%T zcx𝔅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

T-3r@wi#}IQ2 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 literal 0 HcmV?d00001 From bcd46fb36be8c29afce9c9b5568859618e9ffa88 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 2 Sep 2025 18:38:04 +0200 Subject: [PATCH 020/190] Update rexm.c --- tools/rexm/rexm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index d1bfb1a62..2e0294aa0 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -1257,9 +1257,9 @@ int main(int argc, char *argv[]) printf("////////////////////////////////////////////////////////////////////////////////////////////\n\n"); printf("USAGE:\n\n"); - printf(" > rexm []\n"); + printf(" > rexm []\n\n"); - printf("\COMMANDS:\n\n"); + printf("COMMANDS:\n\n"); printf(" help : Provides command-line usage information\n"); printf(" create : Creates an empty example, from internal template\n"); printf(" add : Add existing example, category extracted from name\n"); From cf61a8b888b6e5823c919937a88e4117714100f9 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 2 Sep 2025 18:38:20 +0200 Subject: [PATCH 021/190] REXM: Update examples report --- examples/Makefile | 2 +- examples/Makefile.Web | 8 ++++---- tools/rexm/examples_report.md | 4 ++-- tools/rexm/examples_report_issues.md | 1 - 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/examples/Makefile b/examples/Makefile index 25baa9bbe..afd9533c9 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -504,10 +504,10 @@ CORE = \ core/core_2d_camera_platformer \ core/core_2d_camera_split_screen \ core/core_3d_camera_first_person \ + core/core_3d_camera_fps \ core/core_3d_camera_free \ core/core_3d_camera_mode \ core/core_3d_camera_split_screen \ - core/core_3d_camera_fps \ core/core_3d_picking \ core/core_automation_events \ core/core_basic_screen_manager \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 74b94dd6f..be93ca36a 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -504,10 +504,10 @@ CORE = \ core/core_2d_camera_platformer \ core/core_2d_camera_split_screen \ core/core_3d_camera_first_person \ + core/core_3d_camera_fps \ core/core_3d_camera_free \ core/core_3d_camera_mode \ core/core_3d_camera_split_screen \ - core/core_3d_camera_fps \ core/core_3d_picking \ core/core_automation_events \ core/core_basic_screen_manager \ @@ -695,6 +695,9 @@ core/core_2d_camera_split_screen: core/core_2d_camera_split_screen.c core/core_3d_camera_first_person: core/core_3d_camera_first_person.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) +core/core_3d_camera_fps: core/core_3d_camera_fps.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + core/core_3d_camera_free: core/core_3d_camera_free.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) @@ -704,9 +707,6 @@ core/core_3d_camera_mode: core/core_3d_camera_mode.c core/core_3d_camera_split_screen: core/core_3d_camera_split_screen.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -core/core_3d_camera_fps: core/core_3d_camera_fps.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) - core/core_3d_picking: core/core_3d_picking.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) diff --git a/tools/rexm/examples_report.md b/tools/rexm/examples_report.md index 1c08d9270..9eb828045 100644 --- a/tools/rexm/examples_report.md +++ b/tools/rexm/examples_report.md @@ -36,7 +36,7 @@ Example elements validated: | core_3d_camera_free | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_3d_camera_first_person | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_3d_camera_split_screen | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| core_3d_fps_controller | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| core_3d_camera_fps | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_3d_picking | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_world_screen | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_custom_logging | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -181,4 +181,4 @@ Example elements validated: | raylib_opengl_interop | ✔ | ❌ | ❌ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | | embedded_files_loading | ✔ | ❌ | ❌ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | raymath_vector_angle | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | -| text_unicode_ranges | ✔ | ✔ | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| text_unicode_ranges | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | diff --git a/tools/rexm/examples_report_issues.md b/tools/rexm/examples_report_issues.md index 12e8c656e..bfa0125bb 100644 --- a/tools/rexm/examples_report_issues.md +++ b/tools/rexm/examples_report_issues.md @@ -37,4 +37,3 @@ Example elements validated: | raylib_opengl_interop | ✔ | ❌ | ❌ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | | embedded_files_loading | ✔ | ❌ | ❌ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | raymath_vector_angle | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | -| text_unicode_ranges | ✔ | ✔ | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | From 1dfff2252dbc6e4a41e92431231d0096fcc10cb2 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 2 Sep 2025 18:44:27 +0200 Subject: [PATCH 022/190] rexm update --- examples/examples_list.txt | 2 +- tools/rexm/examples_report.md | 1 + tools/rexm/examples_report_issues.md | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/examples_list.txt b/examples/examples_list.txt index a980ff4a4..0a20d8155 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -100,6 +100,7 @@ text;text_input_box;⭐️⭐️☆☆;1.7;3.5;"Ramon Santamaria";@raysan5 text;text_writing_anim;⭐️⭐️☆☆;1.4;1.4;"Ramon Santamaria";@raysan5 text;text_rectangle_bounds;⭐️⭐️⭐️⭐️;2.5;4.0;"Vlad Adrian";@demizdor text;text_unicode;⭐️⭐️⭐️⭐️;2.5;4.0;"Vlad Adrian";@demizdor +text;text_unicode_ranges;⭐️⭐️⭐️⭐️;5.5;5.6;"Vlad Adrian";@demizdor text;text_draw_3d;⭐️⭐️⭐️⭐️;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 @@ -168,4 +169,3 @@ others;easings_testbed;⭐️⭐️⭐️☆;2.5;3.0;"Juan Miguel López";@flash others;raylib_opengl_interop;⭐️⭐️⭐️⭐️;3.8;4.0;"Stephan Soller";@arkanis others;embedded_files_loading;⭐️⭐️☆☆;3.0;3.5;"Kristian Holmgren";@defutura others;raymath_vector_angle;⭐️⭐️☆☆;1.0;4.6;"Ramon Santamaria";@raysan5 -text;text_unicode_ranges;⭐⭐⭐⭐️;2.5;4.0;"Vlad Adrian";@demizdor diff --git a/tools/rexm/examples_report.md b/tools/rexm/examples_report.md index 9eb828045..a4bcef40c 100644 --- a/tools/rexm/examples_report.md +++ b/tools/rexm/examples_report.md @@ -113,6 +113,7 @@ Example elements validated: | text_writing_anim | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_rectangle_bounds | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_unicode | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| text_unicode_ranges | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_draw_3d | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_codepoints_loading | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_animation | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | diff --git a/tools/rexm/examples_report_issues.md b/tools/rexm/examples_report_issues.md index bfa0125bb..9f82a6dfa 100644 --- a/tools/rexm/examples_report_issues.md +++ b/tools/rexm/examples_report_issues.md @@ -26,6 +26,7 @@ Example elements validated: | core_high_dpi | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_digital_clock | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_font_sdf | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| text_unicode_ranges | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_draw_3d | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_codepoints_loading | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_loading_m3d | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | From 4fa8e23efc2d3e2740edc6c8f17e16500ef76e0a Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 2 Sep 2025 18:52:00 +0200 Subject: [PATCH 023/190] Update rexm.c --- tools/rexm/rexm.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index 2e0294aa0..c83ae0eaf 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -370,15 +370,13 @@ int main(int argc, char *argv[]) { // Verify example exists in collection to be removed char *exColInfo = LoadFileText(exCollectionFilePath); - if ((TextFindIndex(exColInfo, argv[2]) != -1) && // Example in the collection - (TextFindIndex(exName, "_") != -1)) // Valid example name + if (TextFindIndex(exColInfo, argv[2]) != -1) // Example in the collection { - strcpy(exName, argv[2]); // Register example name for removal strncpy(exCategory, exName, TextFindIndex(exName, "_")); opCode = OP_BUILD; } - else LOG("WARNING: REMOVE: Example not available in the collection\n"); + else LOG("WARNING: BUILD: Example not available in the collection\n"); UnloadFileText(exColInfo); } } From cb6a64843c3ddd383a17237664325629b368759d Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 2 Sep 2025 18:52:10 +0200 Subject: [PATCH 024/190] Remove raylib logs --- tools/rexm/rexm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index c83ae0eaf..db1e0fbf7 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -181,6 +181,8 @@ static void UpdateWebMetadata(const char *exHtmlPath, const char *exFilePath); //------------------------------------------------------------------------------------ int main(int argc, char *argv[]) { + SetTraceLogLevel(LOG_NONE); + // Path values can be configured with environment variables exBasePath = getenv("REXM_EXAMPLES_BASE_PATH"); exWebPath = getenv("REXM_EXAMPLES_WEB_PATH"); From 4e8d08523fb7c62bce68cd0a2e11d926bf632e79 Mon Sep 17 00:00:00 2001 From: JohnnyCena123 Date: Tue, 2 Sep 2025 19:58:39 +0300 Subject: [PATCH 025/190] add const qualifier to the first arg of TextJoin (#5166) * add const qualifier to the first arg of TextJoin * Update raylib_api.* by CI * Update raylib.h --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Ray --- src/raylib.h | 2 +- src/rtext.c | 2 +- tools/parser/output/raylib_api.json | 2 +- tools/parser/output/raylib_api.lua | 2 +- tools/parser/output/raylib_api.txt | 2 +- tools/parser/output/raylib_api.xml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 41bc1926e..fa08ed9c0 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1515,7 +1515,7 @@ RLAPI const char *TextFormat(const char *text, ...); RLAPI const char *TextSubtext(const char *text, int position, int length); // Get a piece of a text string RLAPI char *TextReplace(const char *text, const char *replace, const char *by); // Replace text string (WARNING: memory must be freed!) RLAPI char *TextInsert(const char *text, const char *insert, int position); // Insert text in a position (WARNING: memory must be freed!) -RLAPI char *TextJoin(char **textList, int count, const char *delimiter); // Join text strings with delimiter +RLAPI char *TextJoin(const char **textList, int count, const char *delimiter); // Join text strings with delimiter RLAPI char **TextSplit(const char *text, char delimiter, int *count); // Split text into multiple strings, using MAX_TEXTSPLIT_COUNT static strings RLAPI void TextAppend(char *text, const char *append, int *position); // Append text at specific position and move cursor! RLAPI int TextFindIndex(const char *text, const char *find); // Find first text occurrence within a string, -1 if not found diff --git a/src/rtext.c b/src/rtext.c index 009a264f3..8bccf0e15 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1714,7 +1714,7 @@ char *TextInsert(const char *text, const char *insert, int position) // Join text strings with delimiter // REQUIRES: memset(), memcpy() -char *TextJoin(char **textList, int count, const char *delimiter) +char *TextJoin(const char **textList, int count, const char *delimiter) { static char buffer[MAX_TEXT_BUFFER_LENGTH] = { 0 }; memset(buffer, 0, MAX_TEXT_BUFFER_LENGTH); diff --git a/tools/parser/output/raylib_api.json b/tools/parser/output/raylib_api.json index 4ce190714..20101ed9f 100644 --- a/tools/parser/output/raylib_api.json +++ b/tools/parser/output/raylib_api.json @@ -9754,7 +9754,7 @@ "returnType": "char *", "params": [ { - "type": "char **", + "type": "const char **", "name": "textList" }, { diff --git a/tools/parser/output/raylib_api.lua b/tools/parser/output/raylib_api.lua index e52fda62d..da669c801 100644 --- a/tools/parser/output/raylib_api.lua +++ b/tools/parser/output/raylib_api.lua @@ -6933,7 +6933,7 @@ return { description = "Join text strings with delimiter", returnType = "char *", params = { - {type = "char **", name = "textList"}, + {type = "const char **", name = "textList"}, {type = "int", name = "count"}, {type = "const char *", name = "delimiter"} } diff --git a/tools/parser/output/raylib_api.txt b/tools/parser/output/raylib_api.txt index b164b7e88..bb8c52408 100644 --- a/tools/parser/output/raylib_api.txt +++ b/tools/parser/output/raylib_api.txt @@ -3734,7 +3734,7 @@ Function 434: TextJoin() (3 input parameters) Name: TextJoin Return type: char * Description: Join text strings with delimiter - Param[1]: textList (type: char **) + Param[1]: textList (type: const char **) Param[2]: count (type: int) Param[3]: delimiter (type: const char *) Function 435: TextSplit() (3 input parameters) diff --git a/tools/parser/output/raylib_api.xml b/tools/parser/output/raylib_api.xml index 43835334d..4f91715c1 100644 --- a/tools/parser/output/raylib_api.xml +++ b/tools/parser/output/raylib_api.xml @@ -2474,7 +2474,7 @@ - + From 1fa3c15942fc5076f0af7d40307f2c8f54e2fce0 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 2 Sep 2025 19:00:22 +0200 Subject: [PATCH 026/190] Revert "add const qualifier to the first arg of TextJoin (#5166)" This reverts commit 4e8d08523fb7c62bce68cd0a2e11d926bf632e79. --- src/raylib.h | 2 +- src/rtext.c | 2 +- tools/parser/output/raylib_api.json | 2 +- tools/parser/output/raylib_api.lua | 2 +- tools/parser/output/raylib_api.txt | 2 +- tools/parser/output/raylib_api.xml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index fa08ed9c0..41bc1926e 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1515,7 +1515,7 @@ RLAPI const char *TextFormat(const char *text, ...); RLAPI const char *TextSubtext(const char *text, int position, int length); // Get a piece of a text string RLAPI char *TextReplace(const char *text, const char *replace, const char *by); // Replace text string (WARNING: memory must be freed!) RLAPI char *TextInsert(const char *text, const char *insert, int position); // Insert text in a position (WARNING: memory must be freed!) -RLAPI char *TextJoin(const char **textList, int count, const char *delimiter); // Join text strings with delimiter +RLAPI char *TextJoin(char **textList, int count, const char *delimiter); // Join text strings with delimiter RLAPI char **TextSplit(const char *text, char delimiter, int *count); // Split text into multiple strings, using MAX_TEXTSPLIT_COUNT static strings RLAPI void TextAppend(char *text, const char *append, int *position); // Append text at specific position and move cursor! RLAPI int TextFindIndex(const char *text, const char *find); // Find first text occurrence within a string, -1 if not found diff --git a/src/rtext.c b/src/rtext.c index 8bccf0e15..009a264f3 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1714,7 +1714,7 @@ char *TextInsert(const char *text, const char *insert, int position) // Join text strings with delimiter // REQUIRES: memset(), memcpy() -char *TextJoin(const char **textList, int count, const char *delimiter) +char *TextJoin(char **textList, int count, const char *delimiter) { static char buffer[MAX_TEXT_BUFFER_LENGTH] = { 0 }; memset(buffer, 0, MAX_TEXT_BUFFER_LENGTH); diff --git a/tools/parser/output/raylib_api.json b/tools/parser/output/raylib_api.json index 20101ed9f..4ce190714 100644 --- a/tools/parser/output/raylib_api.json +++ b/tools/parser/output/raylib_api.json @@ -9754,7 +9754,7 @@ "returnType": "char *", "params": [ { - "type": "const char **", + "type": "char **", "name": "textList" }, { diff --git a/tools/parser/output/raylib_api.lua b/tools/parser/output/raylib_api.lua index da669c801..e52fda62d 100644 --- a/tools/parser/output/raylib_api.lua +++ b/tools/parser/output/raylib_api.lua @@ -6933,7 +6933,7 @@ return { description = "Join text strings with delimiter", returnType = "char *", params = { - {type = "const char **", name = "textList"}, + {type = "char **", name = "textList"}, {type = "int", name = "count"}, {type = "const char *", name = "delimiter"} } diff --git a/tools/parser/output/raylib_api.txt b/tools/parser/output/raylib_api.txt index bb8c52408..b164b7e88 100644 --- a/tools/parser/output/raylib_api.txt +++ b/tools/parser/output/raylib_api.txt @@ -3734,7 +3734,7 @@ Function 434: TextJoin() (3 input parameters) Name: TextJoin Return type: char * Description: Join text strings with delimiter - Param[1]: textList (type: const char **) + Param[1]: textList (type: char **) Param[2]: count (type: int) Param[3]: delimiter (type: const char *) Function 435: TextSplit() (3 input parameters) diff --git a/tools/parser/output/raylib_api.xml b/tools/parser/output/raylib_api.xml index 4f91715c1..43835334d 100644 --- a/tools/parser/output/raylib_api.xml +++ b/tools/parser/output/raylib_api.xml @@ -2474,7 +2474,7 @@ - + From c579eef4b777224af06e67d3e9fc7f101ac08f00 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Sep 2025 10:40:31 +0200 Subject: [PATCH 027/190] REVIEWED: Examples section comments, for better organization and consistency --- examples/core/core_automation_events.c | 4 +- examples/core/core_random_sequence.c | 4 +- examples/core/core_storage_values.c | 7 +- examples/models/models_mesh_generation.c | 6 + examples/models/models_point_rendering.c | 10 +- examples/models/models_skybox.c | 6 + examples/others/raylib_opengl_interop.c | 3 + examples/others/rlgl_compute_shader.c | 3 + examples/shaders/shaders_deferred_render.c | 3 + examples/shaders/shaders_palette_switch.c | 3 + examples/shaders/shaders_postprocessing.c | 3 + examples/shapes/shapes_splines_drawing.c | 3 + examples/shapes/shapes_top_down_lights.c | 344 ++++++++++-------- examples/text/text_codepoints_loading.c | 6 + examples/text/text_unicode.c | 5 +- examples/text/text_unicode_ranges.c | 2 +- examples/textures/textures_bunnymark.c | 3 + examples/textures/textures_fog_of_war.c | 3 + .../textures/textures_particles_blending.c | 5 +- 19 files changed, 253 insertions(+), 170 deletions(-) diff --git a/examples/core/core_automation_events.c b/examples/core/core_automation_events.c index 6ae0a4336..b98b37c69 100644 --- a/examples/core/core_automation_events.c +++ b/examples/core/core_automation_events.c @@ -24,6 +24,9 @@ #define MAX_ENVIRONMENT_ELEMENTS 5 +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- typedef struct Player { Vector2 position; float speed; @@ -36,7 +39,6 @@ typedef struct EnvElement { Color color; } EnvElement; - //------------------------------------------------------------------------------------ // Program main entry point //------------------------------------------------------------------------------------ diff --git a/examples/core/core_random_sequence.c b/examples/core/core_random_sequence.c index 67990df32..e3b54976a 100644 --- a/examples/core/core_random_sequence.c +++ b/examples/core/core_random_sequence.c @@ -31,7 +31,7 @@ typedef struct ColorRect { //------------------------------------------------------------------------------------ // Module Functions Declaration //------------------------------------------------------------------------------------ -static Color GenerateRandomColor(); +static Color GenerateRandomColor(void); static ColorRect *GenerateRandomColorRectSequence(float rectCount, float rectWidth, float screenWidth, float screenHeight); static void ShuffleColorRectSequence(ColorRect *rectangles, int rectCount); @@ -122,7 +122,7 @@ int main(void) //------------------------------------------------------------------------------------ // Module Functions Definition //------------------------------------------------------------------------------------ -static Color GenerateRandomColor() +static Color GenerateRandomColor(void) { Color color = { GetRandomValue(0, 255), diff --git a/examples/core/core_storage_values.c b/examples/core/core_storage_values.c index c74c7ce93..b4645bf72 100644 --- a/examples/core/core_storage_values.c +++ b/examples/core/core_storage_values.c @@ -25,7 +25,9 @@ typedef enum { STORAGE_POSITION_HISCORE = 1 } StorageData; -// Persistent storage functions +//------------------------------------------------------------------------------------ +// Module Functions Declaration +//------------------------------------------------------------------------------------ static bool SaveStorageValue(unsigned int position, int value); static int LoadStorageValue(unsigned int position); @@ -101,6 +103,9 @@ int main(void) return 0; } +//------------------------------------------------------------------------------------ +// Module Functions Declaration +//------------------------------------------------------------------------------------ // Save integer value to storage file (to defined position) // NOTE: Storage positions is directly related to file memory layout (4 bytes each integer) bool SaveStorageValue(unsigned int position, int value) diff --git a/examples/models/models_mesh_generation.c b/examples/models/models_mesh_generation.c index 36112e73b..c500e3cbc 100644 --- a/examples/models/models_mesh_generation.c +++ b/examples/models/models_mesh_generation.c @@ -17,6 +17,9 @@ #define NUM_MODELS 9 // Parametric 3d shapes to generate +//------------------------------------------------------------------------------------ +// Module Functions Declaration +//------------------------------------------------------------------------------------ static Mesh GenMeshCustom(void); // Generate a simple triangle mesh from code //------------------------------------------------------------------------------------ @@ -136,6 +139,9 @@ int main(void) return 0; } +//------------------------------------------------------------------------------------ +// Module Functions Definition +//------------------------------------------------------------------------------------ // Generate a simple triangle mesh from code static Mesh GenMeshCustom(void) { diff --git a/examples/models/models_point_rendering.c b/examples/models/models_point_rendering.c index 5408002f5..3a93fc8d9 100644 --- a/examples/models/models_point_rendering.c +++ b/examples/models/models_point_rendering.c @@ -18,11 +18,14 @@ #include "raylib.h" #include // Required for: rand() -#include // Required for: cos(), sin() +#include // Required for: cosf(), sinf() #define MAX_POINTS 10000000 // 10 million #define MIN_POINTS 1000 // 1 thousand +//------------------------------------------------------------------------------------ +// Module Functions Declaration +//------------------------------------------------------------------------------------ // Generate mesh using points static Mesh GenMeshPoints(int numPoints); @@ -148,6 +151,9 @@ int main() return 0; } +//------------------------------------------------------------------------------------ +// Module Functions Definition +//------------------------------------------------------------------------------------ // Generate a spherical point cloud static Mesh GenMeshPoints(int numPoints) { @@ -158,7 +164,7 @@ static Mesh GenMeshPoints(int numPoints) .colors = (unsigned char*)MemAlloc(numPoints*4*sizeof(unsigned char)), }; - // https://en.wikipedia.org/wiki/Spherical_coordinate_system + // REF: https://en.wikipedia.org/wiki/Spherical_coordinate_system for (int i = 0; i < numPoints; i++) { float theta = ((float)PI*rand())/((float)RAND_MAX); diff --git a/examples/models/models_skybox.c b/examples/models/models_skybox.c index 6cd0259f7..ddce6a28f 100644 --- a/examples/models/models_skybox.c +++ b/examples/models/models_skybox.c @@ -24,6 +24,9 @@ #define GLSL_VERSION 100 #endif +//------------------------------------------------------------------------------------ +// Module Functions Declaration +//------------------------------------------------------------------------------------ // Generate cubemap (6 faces) from equirectangular (panorama) texture static TextureCubemap GenTextureCubemap(Shader shader, Texture2D panorama, int size, int format); @@ -183,6 +186,9 @@ int main(void) return 0; } +//------------------------------------------------------------------------------------ +// Module Functions Definition +//------------------------------------------------------------------------------------ // Generate cubemap texture from HDR texture static TextureCubemap GenTextureCubemap(Shader shader, Texture2D panorama, int size, int format) { diff --git a/examples/others/raylib_opengl_interop.c b/examples/others/raylib_opengl_interop.c index 7ca4c28b6..02aedc533 100644 --- a/examples/others/raylib_opengl_interop.c +++ b/examples/others/raylib_opengl_interop.c @@ -54,6 +54,9 @@ #define MAX_PARTICLES 1000 +//------------------------------------------------------------------------------------ +// Module Functions Declaration +//------------------------------------------------------------------------------------ // Particle type typedef struct Particle { float x; diff --git a/examples/others/rlgl_compute_shader.c b/examples/others/rlgl_compute_shader.c index 81b2e7db9..2b17b5eaa 100644 --- a/examples/others/rlgl_compute_shader.c +++ b/examples/others/rlgl_compute_shader.c @@ -30,6 +30,9 @@ // Maximum amount of queued draw commands (squares draw from mouse down events) #define MAX_BUFFERED_TRANSFERTS 48 +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- // Game Of Life Update Command typedef struct GolUpdateCmd { unsigned int x; // x coordinate of the gol command diff --git a/examples/shaders/shaders_deferred_render.c b/examples/shaders/shaders_deferred_render.c index c0bdd9f98..c5801bbeb 100644 --- a/examples/shaders/shaders_deferred_render.c +++ b/examples/shaders/shaders_deferred_render.c @@ -35,6 +35,9 @@ #define MAX_CUBES 30 +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- // GBuffer data typedef struct GBuffer { unsigned int framebuffer; diff --git a/examples/shaders/shaders_palette_switch.c b/examples/shaders/shaders_palette_switch.c index 1384c7332..346bc171c 100644 --- a/examples/shaders/shaders_palette_switch.c +++ b/examples/shaders/shaders_palette_switch.c @@ -34,6 +34,9 @@ #define COLORS_PER_PALETTE 8 #define VALUES_PER_COLOR 3 +//------------------------------------------------------------------------------------ +// Global Variables Definition +//------------------------------------------------------------------------------------ static const int palettes[MAX_PALETTES][COLORS_PER_PALETTE*VALUES_PER_COLOR] = { { // 3-BIT RGB 0, 0, 0, diff --git a/examples/shaders/shaders_postprocessing.c b/examples/shaders/shaders_postprocessing.c index abfa92fe3..117fa3886 100644 --- a/examples/shaders/shaders_postprocessing.c +++ b/examples/shaders/shaders_postprocessing.c @@ -46,6 +46,9 @@ typedef enum { //FX_FXAA } PostproShader; +//------------------------------------------------------------------------------------ +// Global Variables Definition +//------------------------------------------------------------------------------------ static const char *postproShaderText[] = { "GRAYSCALE", "POSTERIZATION", diff --git a/examples/shapes/shapes_splines_drawing.c b/examples/shapes/shapes_splines_drawing.c index 88cfe688b..98d8c481f 100644 --- a/examples/shapes/shapes_splines_drawing.c +++ b/examples/shapes/shapes_splines_drawing.c @@ -22,6 +22,9 @@ #define MAX_SPLINE_POINTS 32 +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- // Cubic Bezier spline control points // NOTE: Every segment has two control points typedef struct { diff --git a/examples/shapes/shapes_top_down_lights.c b/examples/shapes/shapes_top_down_lights.c index 2371d1e29..4a2ea0dcd 100644 --- a/examples/shapes/shapes_top_down_lights.c +++ b/examples/shapes/shapes_top_down_lights.c @@ -20,14 +20,17 @@ #include "rlgl.h" // Custom Blend Modes -#define RLGL_SRC_ALPHA 0x0302 -#define RLGL_MIN 0x8007 -#define RLGL_MAX 0x8008 +#define RLGL_SRC_ALPHA 0x0302 +#define RLGL_MIN 0x8007 +#define RLGL_MAX 0x8008 -#define MAX_BOXES 20 -#define MAX_SHADOWS MAX_BOXES*3 // MAX_BOXES *3. Each box can cast up to two shadow volumes for the edges it is away from, and one for the box itself -#define MAX_LIGHTS 16 +#define MAX_BOXES 20 +#define MAX_SHADOWS MAX_BOXES*3 // MAX_BOXES*3 - Each box can cast up to two shadow volumes for the edges it is away from, and one for the box itself +#define MAX_LIGHTS 16 +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- // Shadow geometry type typedef struct ShadowGeometry { Vector2 vertices[4]; @@ -48,167 +51,26 @@ typedef struct LightInfo { int shadowCount; } LightInfo; +//------------------------------------------------------------------------------------ +// Global Variables Definition +//------------------------------------------------------------------------------------ +static LightInfo lights[MAX_LIGHTS] = { 0 }; -LightInfo lights[MAX_LIGHTS] = { 0 }; - +//------------------------------------------------------------------------------------ +// Module Functions Declaration +//------------------------------------------------------------------------------------ // Move a light and mark it as dirty so that we update it's mask next frame -void MoveLight(int slot, float x, float y) -{ - lights[slot].dirty = true; - lights[slot].position.x = x; - lights[slot].position.y = y; - - // update the cached bounds - lights[slot].bounds.x = x - lights[slot].outerRadius; - lights[slot].bounds.y = y - lights[slot].outerRadius; -} - +static void MoveLight(int slot, float x, float y); // Compute a shadow volume for the edge -// It takes the edge and projects it back by the light radius and turns it into a quad -void ComputeShadowVolumeForEdge(int slot, Vector2 sp, Vector2 ep) -{ - if (lights[slot].shadowCount >= MAX_SHADOWS) return; - - float extension = lights[slot].outerRadius*2; - - Vector2 spVector = Vector2Normalize(Vector2Subtract(sp, lights[slot].position)); - Vector2 spProjection = Vector2Add(sp, Vector2Scale(spVector, extension)); - - Vector2 epVector = Vector2Normalize(Vector2Subtract(ep, lights[slot].position)); - Vector2 epProjection = Vector2Add(ep, Vector2Scale(epVector, extension)); - - lights[slot].shadows[lights[slot].shadowCount].vertices[0] = sp; - lights[slot].shadows[lights[slot].shadowCount].vertices[1] = ep; - lights[slot].shadows[lights[slot].shadowCount].vertices[2] = epProjection; - lights[slot].shadows[lights[slot].shadowCount].vertices[3] = spProjection; - - lights[slot].shadowCount++; -} - +static void ComputeShadowVolumeForEdge(int slot, Vector2 sp, Vector2 ep); // Draw the light and shadows to the mask for a light -void DrawLightMask(int slot) -{ - // Use the light mask - BeginTextureMode(lights[slot].mask); - - ClearBackground(WHITE); - - // Force the blend mode to only set the alpha of the destination - rlSetBlendFactors(RLGL_SRC_ALPHA, RLGL_SRC_ALPHA, RLGL_MIN); - rlSetBlendMode(BLEND_CUSTOM); - - // If we are valid, then draw the light radius to the alpha mask - if (lights[slot].valid) DrawCircleGradient((int)lights[slot].position.x, (int)lights[slot].position.y, lights[slot].outerRadius, ColorAlpha(WHITE, 0), WHITE); - - rlDrawRenderBatchActive(); - - // Cut out the shadows from the light radius by forcing the alpha to maximum - rlSetBlendMode(BLEND_ALPHA); - rlSetBlendFactors(RLGL_SRC_ALPHA, RLGL_SRC_ALPHA, RLGL_MAX); - rlSetBlendMode(BLEND_CUSTOM); - - // Draw the shadows to the alpha mask - for (int i = 0; i < lights[slot].shadowCount; i++) - { - DrawTriangleFan(lights[slot].shadows[i].vertices, 4, WHITE); - } - - rlDrawRenderBatchActive(); - - // Go back to normal blend mode - rlSetBlendMode(BLEND_ALPHA); - - EndTextureMode(); -} - +static void DrawLightMask(int slot); // Setup a light -void SetupLight(int slot, float x, float y, float radius) -{ - lights[slot].active = true; - lights[slot].valid = false; // The light must prove it is valid - lights[slot].mask = LoadRenderTexture(GetScreenWidth(), GetScreenHeight()); - lights[slot].outerRadius = radius; - - lights[slot].bounds.width = radius*2; - lights[slot].bounds.height = radius*2; - - MoveLight(slot, x, y); - - // Force the render texture to have something in it - DrawLightMask(slot); -} - +static void SetupLight(int slot, float x, float y, float radius); // See if a light needs to update it's mask -bool UpdateLight(int slot, Rectangle* boxes, int count) -{ - if (!lights[slot].active || !lights[slot].dirty) return false; - - lights[slot].dirty = false; - lights[slot].shadowCount = 0; - lights[slot].valid = false; - - for (int i = 0; i < count; i++) - { - // Are we in a box? if so we are not valid - if (CheckCollisionPointRec(lights[slot].position, boxes[i])) return false; - - // If this box is outside our bounds, we can skip it - if (!CheckCollisionRecs(lights[slot].bounds, boxes[i])) continue; - - // Check the edges that are on the same side we are, and cast shadow volumes out from them - - // Top - Vector2 sp = (Vector2){ boxes[i].x, boxes[i].y }; - Vector2 ep = (Vector2){ boxes[i].x + boxes[i].width, boxes[i].y }; - - if (lights[slot].position.y > ep.y) ComputeShadowVolumeForEdge(slot, sp, ep); - - // Right - sp = ep; - ep.y += boxes[i].height; - if (lights[slot].position.x < ep.x) ComputeShadowVolumeForEdge(slot, sp, ep); - - // Bottom - sp = ep; - ep.x -= boxes[i].width; - if (lights[slot].position.y < ep.y) ComputeShadowVolumeForEdge(slot, sp, ep); - - // Left - sp = ep; - ep.y -= boxes[i].height; - if (lights[slot].position.x > ep.x) ComputeShadowVolumeForEdge(slot, sp, ep); - - // The box itself - lights[slot].shadows[lights[slot].shadowCount].vertices[0] = (Vector2){ boxes[i].x, boxes[i].y }; - lights[slot].shadows[lights[slot].shadowCount].vertices[1] = (Vector2){ boxes[i].x, boxes[i].y + boxes[i].height }; - lights[slot].shadows[lights[slot].shadowCount].vertices[2] = (Vector2){ boxes[i].x + boxes[i].width, boxes[i].y + boxes[i].height }; - lights[slot].shadows[lights[slot].shadowCount].vertices[3] = (Vector2){ boxes[i].x + boxes[i].width, boxes[i].y }; - lights[slot].shadowCount++; - } - - lights[slot].valid = true; - - DrawLightMask(slot); - - return true; -} - +static bool UpdateLight(int slot, Rectangle* boxes, int count); // Set up some boxes -void SetupBoxes(Rectangle *boxes, int *count) -{ - boxes[0] = (Rectangle){ 150,80, 40, 40 }; - boxes[1] = (Rectangle){ 1200, 700, 40, 40 }; - boxes[2] = (Rectangle){ 200, 600, 40, 40 }; - boxes[3] = (Rectangle){ 1000, 50, 40, 40 }; - boxes[4] = (Rectangle){ 500, 350, 40, 40 }; - - for (int i = 5; i < MAX_BOXES; i++) - { - boxes[i] = (Rectangle){(float)GetRandomValue(0,GetScreenWidth()), (float)GetRandomValue(0,GetScreenHeight()), (float)GetRandomValue(10,100), (float)GetRandomValue(10,100) }; - } - - *count = MAX_BOXES; -} +static void SetupBoxes(Rectangle *boxes, int *count); //------------------------------------------------------------------------------------ // Program main entry point @@ -356,3 +218,165 @@ int main(void) return 0; } + +//------------------------------------------------------------------------------------ +// Module Functions Definition +//------------------------------------------------------------------------------------ +// Move a light and mark it as dirty so that we update it's mask next frame +static void MoveLight(int slot, float x, float y) +{ + lights[slot].dirty = true; + lights[slot].position.x = x; + lights[slot].position.y = y; + + // update the cached bounds + lights[slot].bounds.x = x - lights[slot].outerRadius; + lights[slot].bounds.y = y - lights[slot].outerRadius; +} + +// Compute a shadow volume for the edge +// It takes the edge and projects it back by the light radius and turns it into a quad +static void ComputeShadowVolumeForEdge(int slot, Vector2 sp, Vector2 ep) +{ + if (lights[slot].shadowCount >= MAX_SHADOWS) return; + + float extension = lights[slot].outerRadius*2; + + Vector2 spVector = Vector2Normalize(Vector2Subtract(sp, lights[slot].position)); + Vector2 spProjection = Vector2Add(sp, Vector2Scale(spVector, extension)); + + Vector2 epVector = Vector2Normalize(Vector2Subtract(ep, lights[slot].position)); + Vector2 epProjection = Vector2Add(ep, Vector2Scale(epVector, extension)); + + lights[slot].shadows[lights[slot].shadowCount].vertices[0] = sp; + lights[slot].shadows[lights[slot].shadowCount].vertices[1] = ep; + lights[slot].shadows[lights[slot].shadowCount].vertices[2] = epProjection; + lights[slot].shadows[lights[slot].shadowCount].vertices[3] = spProjection; + + lights[slot].shadowCount++; +} + +// Setup a light +static void SetupLight(int slot, float x, float y, float radius) +{ + lights[slot].active = true; + lights[slot].valid = false; // The light must prove it is valid + lights[slot].mask = LoadRenderTexture(GetScreenWidth(), GetScreenHeight()); + lights[slot].outerRadius = radius; + + lights[slot].bounds.width = radius*2; + lights[slot].bounds.height = radius*2; + + MoveLight(slot, x, y); + + // Force the render texture to have something in it + DrawLightMask(slot); +} + +// See if a light needs to update it's mask +static bool UpdateLight(int slot, Rectangle* boxes, int count) +{ + if (!lights[slot].active || !lights[slot].dirty) return false; + + lights[slot].dirty = false; + lights[slot].shadowCount = 0; + lights[slot].valid = false; + + for (int i = 0; i < count; i++) + { + // Are we in a box? if so we are not valid + if (CheckCollisionPointRec(lights[slot].position, boxes[i])) return false; + + // If this box is outside our bounds, we can skip it + if (!CheckCollisionRecs(lights[slot].bounds, boxes[i])) continue; + + // Check the edges that are on the same side we are, and cast shadow volumes out from them + + // Top + Vector2 sp = (Vector2){ boxes[i].x, boxes[i].y }; + Vector2 ep = (Vector2){ boxes[i].x + boxes[i].width, boxes[i].y }; + + if (lights[slot].position.y > ep.y) ComputeShadowVolumeForEdge(slot, sp, ep); + + // Right + sp = ep; + ep.y += boxes[i].height; + if (lights[slot].position.x < ep.x) ComputeShadowVolumeForEdge(slot, sp, ep); + + // Bottom + sp = ep; + ep.x -= boxes[i].width; + if (lights[slot].position.y < ep.y) ComputeShadowVolumeForEdge(slot, sp, ep); + + // Left + sp = ep; + ep.y -= boxes[i].height; + if (lights[slot].position.x > ep.x) ComputeShadowVolumeForEdge(slot, sp, ep); + + // The box itself + lights[slot].shadows[lights[slot].shadowCount].vertices[0] = (Vector2){ boxes[i].x, boxes[i].y }; + lights[slot].shadows[lights[slot].shadowCount].vertices[1] = (Vector2){ boxes[i].x, boxes[i].y + boxes[i].height }; + lights[slot].shadows[lights[slot].shadowCount].vertices[2] = (Vector2){ boxes[i].x + boxes[i].width, boxes[i].y + boxes[i].height }; + lights[slot].shadows[lights[slot].shadowCount].vertices[3] = (Vector2){ boxes[i].x + boxes[i].width, boxes[i].y }; + lights[slot].shadowCount++; + } + + lights[slot].valid = true; + + DrawLightMask(slot); + + return true; +} + +// Draw the light and shadows to the mask for a light +static void DrawLightMask(int slot) +{ + // Use the light mask + BeginTextureMode(lights[slot].mask); + + ClearBackground(WHITE); + + // Force the blend mode to only set the alpha of the destination + rlSetBlendFactors(RLGL_SRC_ALPHA, RLGL_SRC_ALPHA, RLGL_MIN); + rlSetBlendMode(BLEND_CUSTOM); + + // If we are valid, then draw the light radius to the alpha mask + if (lights[slot].valid) DrawCircleGradient((int)lights[slot].position.x, (int)lights[slot].position.y, lights[slot].outerRadius, ColorAlpha(WHITE, 0), WHITE); + + rlDrawRenderBatchActive(); + + // Cut out the shadows from the light radius by forcing the alpha to maximum + rlSetBlendMode(BLEND_ALPHA); + rlSetBlendFactors(RLGL_SRC_ALPHA, RLGL_SRC_ALPHA, RLGL_MAX); + rlSetBlendMode(BLEND_CUSTOM); + + // Draw the shadows to the alpha mask + for (int i = 0; i < lights[slot].shadowCount; i++) + { + DrawTriangleFan(lights[slot].shadows[i].vertices, 4, WHITE); + } + + rlDrawRenderBatchActive(); + + // Go back to normal blend mode + rlSetBlendMode(BLEND_ALPHA); + + EndTextureMode(); +} + +// Set up some boxes +static void SetupBoxes(Rectangle *boxes, int *count) +{ + boxes[0] = (Rectangle){ 150,80, 40, 40 }; + boxes[1] = (Rectangle){ 1200, 700, 40, 40 }; + boxes[2] = (Rectangle){ 200, 600, 40, 40 }; + boxes[3] = (Rectangle){ 1000, 50, 40, 40 }; + boxes[4] = (Rectangle){ 500, 350, 40, 40 }; + + for (int i = 5; i < MAX_BOXES; i++) + { + boxes[i] = (Rectangle){(float)GetRandomValue(0,GetScreenWidth()), (float)GetRandomValue(0,GetScreenHeight()), (float)GetRandomValue(10,100), (float)GetRandomValue(10,100) }; + } + + *count = MAX_BOXES; +} diff --git a/examples/text/text_codepoints_loading.c b/examples/text/text_codepoints_loading.c index 2c33a8da5..7f8b1ef3a 100644 --- a/examples/text/text_codepoints_loading.c +++ b/examples/text/text_codepoints_loading.c @@ -23,6 +23,9 @@ // this text will be scanned to get all the required codepoints static char *text = "いろはにほへと ちりぬるを\nわかよたれそ つねならむ\nうゐのおくやま けふこえて\nあさきゆめみし ゑひもせす"; +//------------------------------------------------------------------------------------ +// Module Functions Declaration +//------------------------------------------------------------------------------------ // Remove codepoint duplicates if requested static int *CodepointRemoveDuplicates(int *codepoints, int codepointCount, int *codepointResultCount); @@ -128,6 +131,9 @@ int main(void) return 0; } +//------------------------------------------------------------------------------------ +// Module Functions Definition +//------------------------------------------------------------------------------------ // Remove codepoint duplicates if requested // WARNING: This process could be a bit slow if there text to process is very long static int *CodepointRemoveDuplicates(int *codepoints, int codepointCount, int *codepointsResultCount) diff --git a/examples/text/text_unicode.c b/examples/text/text_unicode.c index aa8527fa9..6847ad754 100644 --- a/examples/text/text_unicode.c +++ b/examples/text/text_unicode.c @@ -25,7 +25,7 @@ #define EMOJI_PER_HEIGHT 4 //-------------------------------------------------------------------------------------- -// Global variables +// Global Variables Definition //-------------------------------------------------------------------------------------- // Arrays that holds the random emojis struct { @@ -34,7 +34,8 @@ struct { Color color; // Emoji color } emoji[EMOJI_PER_WIDTH*EMOJI_PER_HEIGHT] = { 0 }; -static int hovered = -1, selected = -1; +static int hovered = -1; +static int selected = -1; // String containing 180 emoji codepoints separated by a '\0' char const char *const emojiCodepoints = "\xF0\x9F\x8C\x80\x00\xF0\x9F\x98\x80\x00\xF0\x9F\x98\x82\x00\xF0\x9F\xA4\xA3\x00\xF0\x9F\x98\x83\x00\xF0\x9F\x98\x86\x00\xF0\x9F\x98\x89\x00" diff --git a/examples/text/text_unicode_ranges.c b/examples/text/text_unicode_ranges.c index 76d20ba40..4c887f3f8 100644 --- a/examples/text/text_unicode_ranges.c +++ b/examples/text/text_unicode_ranges.c @@ -149,7 +149,7 @@ int main(void) (Rectangle){ 400, 16, font.texture.width*atlasScale, font.texture.height*atlasScale }, (Vector2){ 0, 0 }, 0.0f, WHITE); DrawRectangleLines(400, 16, 380, 380, RED); - DrawText(TextFormat("ATLAS SIZE: %ix%i px (x%02.1f)", font.texture.width, font.texture.height, atlasScale), 20, 380, 20, BLUE); + DrawText(TextFormat("ATLAS SIZE: %ix%i px (x%02.2f)", font.texture.width, font.texture.height, atlasScale), 20, 380, 20, BLUE); // Display font attribution DrawText("Font: Noto Sans TC. License: SIL Open Font License 1.1", screenWidth - 300, screenHeight - 20, 10, GRAY); diff --git a/examples/textures/textures_bunnymark.c b/examples/textures/textures_bunnymark.c index a26f175ca..7789602b5 100644 --- a/examples/textures/textures_bunnymark.c +++ b/examples/textures/textures_bunnymark.c @@ -23,6 +23,9 @@ // NOTE: This value is defined in [rlgl] module and can be changed there #define MAX_BATCH_ELEMENTS 8192 +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- typedef struct Bunny { Vector2 position; Vector2 speed; diff --git a/examples/textures/textures_fog_of_war.c b/examples/textures/textures_fog_of_war.c index 41a332272..4733caeb4 100644 --- a/examples/textures/textures_fog_of_war.c +++ b/examples/textures/textures_fog_of_war.c @@ -21,6 +21,9 @@ #define PLAYER_SIZE 16 // Player size #define PLAYER_TILE_VISIBILITY 2 // Player can see 2 tiles around its position +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- // Map data type typedef struct Map { unsigned int tilesX; // Number of tiles in X axis diff --git a/examples/textures/textures_particles_blending.c b/examples/textures/textures_particles_blending.c index 537d7f312..35ae67d3a 100644 --- a/examples/textures/textures_particles_blending.c +++ b/examples/textures/textures_particles_blending.c @@ -17,7 +17,10 @@ #define MAX_PARTICLES 200 -// Particle structure with basic data +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +// Particle structure typedef struct { Vector2 position; Color color; From d1768d387c000ec6688348ba0b13c1ca6398d8dd Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Sep 2025 13:37:08 +0200 Subject: [PATCH 028/190] Update utils.c --- src/utils.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/utils.c b/src/utils.c index 310ebfc78..971ed5b6e 100644 --- a/src/utils.c +++ b/src/utils.c @@ -95,9 +95,8 @@ static int android_close(void *cookie); #endif //---------------------------------------------------------------------------------- -// Module Functions Definition - Utilities +// Module Functions Definition //---------------------------------------------------------------------------------- - // Set the current threshold (minimum) log level void SetTraceLogLevel(int logType) { logTypeLevel = logType; } From 3a0c8009af9a72186df110f9e214e73a3dab96d2 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Sep 2025 18:14:18 +0200 Subject: [PATCH 029/190] Update rexm.c --- tools/rexm/rexm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index db1e0fbf7..43da4d6f2 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -663,8 +663,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)); + 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)); // Copy results to web side FileCopy(TextFormat("%s/%s/%s.html", exBasePath, exRecategory, exRename), From 64d6a90d4843236e0e75fe0977328af82f9fb7d5 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Sep 2025 18:14:47 +0200 Subject: [PATCH 030/190] REXM: RENAME: example: `text_unicode` --> `text_unicode_emojis` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- .../{text_unicode.c => text_unicode_emojis.c} | 2 +- ...xt_unicode.png => text_unicode_emojis.png} | Bin ...de.vcxproj => text_unicode_emojis.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 575 insertions(+), 575 deletions(-) rename examples/text/{text_unicode.c => text_unicode_emojis.c} (99%) rename examples/text/{text_unicode.png => text_unicode_emojis.png} (100%) rename projects/VS2022/examples/{text_unicode.vcxproj => text_unicode_emojis.vcxproj} (97%) diff --git a/examples/Makefile b/examples/Makefile index afd9533c9..9e1bc8489 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -598,7 +598,7 @@ TEXT = \ text/text_input_box \ text/text_raylib_fonts \ text/text_rectangle_bounds \ - text/text_unicode \ + text/text_unicode_emojis \ text/text_unicode_ranges \ text/text_writing_anim diff --git a/examples/Makefile.Web b/examples/Makefile.Web index be93ca36a..ade389de6 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -598,7 +598,7 @@ TEXT = \ text/text_input_box \ text/text_raylib_fonts \ text/text_rectangle_bounds \ - text/text_unicode \ + text/text_unicode_emojis \ text/text_unicode_ranges \ text/text_writing_anim @@ -1012,7 +1012,7 @@ text/text_raylib_fonts: text/text_raylib_fonts.c text/text_rectangle_bounds: text/text_rectangle_bounds.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -text/text_unicode: text/text_unicode.c +text/text_unicode_emojis: text/text_unicode_emojis.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file text/resources/dejavu.fnt@resources/dejavu.fnt \ --preload-file text/resources/noto_cjk.fnt@resources/noto_cjk.fnt \ diff --git a/examples/README.md b/examples/README.md index b391732e9..b3baec081 100644 --- a/examples/README.md +++ b/examples/README.md @@ -137,7 +137,7 @@ Examples using raylib text functionality, including sprite fonts loading/generat | [text_input_box](text/text_input_box.c) | text_input_box | ⭐⭐☆☆ | 1.7 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | | [text_writing_anim](text/text_writing_anim.c) | text_writing_anim | ⭐⭐☆☆ | 1.4 | 1.4 | [Ramon Santamaria](https://github.com/raysan5) | | [text_rectangle_bounds](text/text_rectangle_bounds.c) | text_rectangle_bounds | ⭐⭐⭐⭐️ | 2.5 | 4.0 | [Vlad Adrian](https://github.com/demizdor) | -| [text_unicode](text/text_unicode.c) | text_unicode | ⭐⭐⭐⭐️ | 2.5 | 4.0 | [Vlad Adrian](https://github.com/demizdor) | +| [text_unicode_emojis](text/text_unicode_emojis.c) | text_unicode_emojis | ⭐⭐⭐⭐️ | 2.5 | 4.0 | [Vlad Adrian](https://github.com/demizdor) | | [text_draw_3d](text/text_draw_3d.c) | text_draw_3d | ⭐⭐⭐⭐️ | 3.5 | 4.0 | [Vlad Adrian](https://github.com/demizdor) | | [text_codepoints_loading](text/text_codepoints_loading.c) | text_codepoints_loading | ⭐⭐⭐☆ | 4.2 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [text_unicode_ranges](text/text_unicode_ranges.c) | text_unicode_ranges | ⭐⭐⭐⭐️ | 2.5 | 4.0 | [Vlad Adrian](https://github.com/demizdor) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 0a20d8155..2d593286d 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -99,7 +99,7 @@ text;text_format_text;⭐️☆☆☆;1.1;3.0;"Ramon Santamaria";@raysan5 text;text_input_box;⭐️⭐️☆☆;1.7;3.5;"Ramon Santamaria";@raysan5 text;text_writing_anim;⭐️⭐️☆☆;1.4;1.4;"Ramon Santamaria";@raysan5 text;text_rectangle_bounds;⭐️⭐️⭐️⭐️;2.5;4.0;"Vlad Adrian";@demizdor -text;text_unicode;⭐️⭐️⭐️⭐️;2.5;4.0;"Vlad Adrian";@demizdor +text;text_unicode_emojis;⭐️⭐️⭐️⭐️;2.5;4.0;"Vlad Adrian";@demizdor text;text_unicode_ranges;⭐️⭐️⭐️⭐️;5.5;5.6;"Vlad Adrian";@demizdor text;text_draw_3d;⭐️⭐️⭐️⭐️;3.5;4.0;"Vlad Adrian";@demizdor text;text_codepoints_loading;⭐️⭐️⭐️☆;4.2;4.2;"Ramon Santamaria";@raysan5 diff --git a/examples/text/text_unicode.c b/examples/text/text_unicode_emojis.c similarity index 99% rename from examples/text/text_unicode.c rename to examples/text/text_unicode_emojis.c index 6847ad754..5c050abcf 100644 --- a/examples/text/text_unicode.c +++ b/examples/text/text_unicode_emojis.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [text] example - unicode emojis emojis +* raylib [text] example - unicode emojis * * Example complexity rating: [★★★★] 4/4 * diff --git a/examples/text/text_unicode.png b/examples/text/text_unicode_emojis.png similarity index 100% rename from examples/text/text_unicode.png rename to examples/text/text_unicode_emojis.png diff --git a/projects/VS2022/examples/text_unicode.vcxproj b/projects/VS2022/examples/text_unicode_emojis.vcxproj similarity index 97% rename from projects/VS2022/examples/text_unicode.vcxproj rename to projects/VS2022/examples/text_unicode_emojis.vcxproj index 26a679de1..3e1da5a9a 100644 --- a/projects/VS2022/examples/text_unicode.vcxproj +++ b/projects/VS2022/examples/text_unicode_emojis.vcxproj @@ -1,569 +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 - - - - {1FE8758D-7E8A-41F3-9B6D-FD50E9A2A03D} - Win32Proj - text_unicode - 10.0 - text_unicode - - - - 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\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - 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} - - - - - + + + + + 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 + + + + {1FE8758D-7E8A-41F3-9B6D-FD50E9A2A03D} + Win32Proj + text_unicode_emojis + 10.0 + text_unicode_emojis + + + + 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\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + 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 227d52297..63654c2ca 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -151,7 +151,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textures_background_scrolli EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_writing_anim", "examples\text_writing_anim.vcxproj", "{F6FD9C75-AAA7-48C9-B19D-FD37C8FB9B7E}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_unicode", "examples\text_unicode.vcxproj", "{1FE8758D-7E8A-41F3-9B6D-FD50E9A2A03D}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_unicode_emojis", "examples\text_unicode_emojis.vcxproj", "{1FE8758D-7E8A-41F3-9B6D-FD50E9A2A03D}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_rectangle_bounds", "examples\text_rectangle_bounds.vcxproj", "{25BCB876-B60A-499B-9046-E9801CFD7780}" EndProject From b7eda8159c1f0928e8ecc1226c39ac17393f1db0 Mon Sep 17 00:00:00 2001 From: Nikolas Date: Wed, 3 Sep 2025 18:17:07 +0200 Subject: [PATCH 031/190] [build.zig] Make X11 the default display backend instead of choosing at runtime (#5168) --- build.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.zig b/build.zig index 8bbc8073f..a8f0df618 100644 --- a/build.zig +++ b/build.zig @@ -425,7 +425,7 @@ pub const Options = struct { rtextures: bool = true, platform: PlatformBackend = .glfw, linkage: std.builtin.LinkMode = .static, - linux_display_backend: LinuxDisplayBackend = .Both, + linux_display_backend: LinuxDisplayBackend = .X11, opengl_version: OpenglVersion = .auto, android_ndk: []const u8 = "", android_api_version: []const u8 = "35", From f53cd449ce1c605f11b4da7ba59deb008b8c6d1d Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Sep 2025 18:25:27 +0200 Subject: [PATCH 032/190] Update config.h --- src/config.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/config.h b/src/config.h index 9c6e334f7..b87e199dc 100644 --- a/src/config.h +++ b/src/config.h @@ -229,6 +229,9 @@ // drawing text and shapes with a single draw call [SetShapesTexture()]. #define SUPPORT_FONT_ATLAS_WHITE_REC 1 +// Support conservative font atlas size estimation +//#define SUPPORT_FONT_ATLAS_SIZE_CONSERVATIVE 1 + // rtext: Configuration values //------------------------------------------------------------------------------------ #define MAX_TEXT_BUFFER_LENGTH 1024 // Size of internal static buffers used on some functions: From 2cb387b50a05a85402007ee8868491614489e2f2 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Sep 2025 18:30:00 +0200 Subject: [PATCH 033/190] REVIEWED: Font atlas image generation, added some comments #5141 --- src/rtext.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rtext.c b/src/rtext.c index 009a264f3..c6078d7cb 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -834,7 +834,9 @@ Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyp atlas.height = imageSize; // Atlas bitmap height #else int paddedFontSize = fontSize + 2*padding; + // No need for a so-conservative atlas generation + // NOTE: Multiplying total expected are by 1.2f scale factor float totalArea = totalWidth*paddedFontSize*1.2f; float imageMinSize = sqrtf(totalArea); int imageSize = (int)powf(2, ceilf(logf(imageMinSize)/logf(2))); @@ -887,7 +889,7 @@ Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyp recs[j].width = 0; recs[j].height = 0; } - break; + break; // Break for() loop, stop processing glyphs } } From cadd28e5a008f5fed533bf2f52cedf26e5e57561 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Sep 2025 18:33:33 +0200 Subject: [PATCH 034/190] REXM: RENAME: example: `text_raylib_fonts` -> `text_sprite_fonts` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...ext_raylib_fonts.c => text_sprite_fonts.c} | 0 ...raylib_fonts.png => text_sprite_fonts.png} | Bin ...onts.vcxproj => text_sprite_fonts.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/text/{text_raylib_fonts.c => text_sprite_fonts.c} (100%) rename examples/text/{text_raylib_fonts.png => text_sprite_fonts.png} (100%) rename projects/VS2022/examples/{text_raylib_fonts.vcxproj => text_sprite_fonts.vcxproj} (97%) diff --git a/examples/Makefile b/examples/Makefile index 9e1bc8489..a0aaaf0e9 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -596,7 +596,7 @@ TEXT = \ text/text_font_spritefont \ text/text_format_text \ text/text_input_box \ - text/text_raylib_fonts \ + text/text_sprite_fonts \ text/text_rectangle_bounds \ text/text_unicode_emojis \ text/text_unicode_ranges \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index ade389de6..61f67b02a 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -596,7 +596,7 @@ TEXT = \ text/text_font_spritefont \ text/text_format_text \ text/text_input_box \ - text/text_raylib_fonts \ + text/text_sprite_fonts \ text/text_rectangle_bounds \ text/text_unicode_emojis \ text/text_unicode_ranges \ @@ -998,7 +998,7 @@ text/text_format_text: text/text_format_text.c text/text_input_box: text/text_input_box.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -text/text_raylib_fonts: text/text_raylib_fonts.c +text/text_sprite_fonts: text/text_sprite_fonts.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file text/resources/sprite_fonts/alagard.png@resources/sprite_fonts/alagard.png \ --preload-file text/resources/sprite_fonts/pixelplay.png@resources/sprite_fonts/pixelplay.png \ diff --git a/examples/README.md b/examples/README.md index b3baec081..1911ba3fa 100644 --- a/examples/README.md +++ b/examples/README.md @@ -128,7 +128,7 @@ Examples using raylib text functionality, including sprite fonts loading/generat | example | image | difficulty
level | version
created | last version
updated | original
developer | |-----------|--------|:-------------------:|:------------------:|:-----------------------:|:----------------------| -| [text_raylib_fonts](text/text_raylib_fonts.c) | text_raylib_fonts | ⭐☆☆☆ | 1.7 | 3.7 | [Ramon Santamaria](https://github.com/raysan5) | +| [text_sprite_fonts](text/text_sprite_fonts.c) | text_sprite_fonts | ⭐☆☆☆ | 1.7 | 3.7 | [Ramon Santamaria](https://github.com/raysan5) | | [text_font_spritefont](text/text_font_spritefont.c) | text_font_spritefont | ⭐☆☆☆ | 1.0 | 1.0 | [Ramon Santamaria](https://github.com/raysan5) | | [text_font_filters](text/text_font_filters.c) | text_font_filters | ⭐⭐☆☆ | 1.3 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [text_font_loading](text/text_font_loading.c) | text_font_loading | ⭐☆☆☆ | 1.4 | 3.0 | [Ramon Santamaria](https://github.com/raysan5) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 2d593286d..f0e7bf0cb 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -90,7 +90,7 @@ textures;textures_image_kernel;⭐️⭐️⭐️⭐️;1.3;1.3;"Karim Salem";@k textures;textures_image_channel;⭐️⭐️☆☆;5.1-dev;5.1-dev;"Bruno Cabral";@brccabral textures;textures_image_rotate;⭐️⭐️☆☆;1.0;1.0;"Ramon Santamaria";@raysan5 textures;textures_textured_curve;⭐️⭐️⭐️☆;4.5;4.5;"Jeffery Myers";@JeffM2501 -text;text_raylib_fonts;⭐️☆☆☆;1.7;3.7;"Ramon Santamaria";@raysan5 +text;text_sprite_fonts;⭐️☆☆☆;1.7;3.7;"Ramon Santamaria";@raysan5 text;text_font_spritefont;⭐️☆☆☆;1.0;1.0;"Ramon Santamaria";@raysan5 text;text_font_filters;⭐️⭐️☆☆;1.3;4.2;"Ramon Santamaria";@raysan5 text;text_font_loading;⭐️☆☆☆;1.4;3.0;"Ramon Santamaria";@raysan5 diff --git a/examples/text/text_raylib_fonts.c b/examples/text/text_sprite_fonts.c similarity index 100% rename from examples/text/text_raylib_fonts.c rename to examples/text/text_sprite_fonts.c diff --git a/examples/text/text_raylib_fonts.png b/examples/text/text_sprite_fonts.png similarity index 100% rename from examples/text/text_raylib_fonts.png rename to examples/text/text_sprite_fonts.png diff --git a/projects/VS2022/examples/text_raylib_fonts.vcxproj b/projects/VS2022/examples/text_sprite_fonts.vcxproj similarity index 97% rename from projects/VS2022/examples/text_raylib_fonts.vcxproj rename to projects/VS2022/examples/text_sprite_fonts.vcxproj index 4ca414afd..55c4319e3 100644 --- a/projects/VS2022/examples/text_raylib_fonts.vcxproj +++ b/projects/VS2022/examples/text_sprite_fonts.vcxproj @@ -1,569 +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 - - - - {56FB0A45-145F-4EAE-B2C8-E5833E682D8F} - Win32Proj - text_raylib_fonts - 10.0 - text_raylib_fonts - - - - 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\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - 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} - - - - - + + + + + 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 + + + + {56FB0A45-145F-4EAE-B2C8-E5833E682D8F} + Win32Proj + text_sprite_fonts + 10.0 + text_sprite_fonts + + + + 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\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + 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 63654c2ca..45d157413 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -155,7 +155,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_unicode_emojis", "exam EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_rectangle_bounds", "examples\text_rectangle_bounds.vcxproj", "{25BCB876-B60A-499B-9046-E9801CFD7780}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_raylib_fonts", "examples\text_raylib_fonts.vcxproj", "{56FB0A45-145F-4EAE-B2C8-E5833E682D8F}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_sprite_fonts", "examples\text_sprite_fonts.vcxproj", "{56FB0A45-145F-4EAE-B2C8-E5833E682D8F}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_input_box", "examples\text_input_box.vcxproj", "{2BB0C1D4-9298-45AC-B244-67A99769A292}" EndProject From 785ad4015ca480dff8572a82b782cdcfbde3a1af Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Sep 2025 18:40:53 +0200 Subject: [PATCH 035/190] REXM: RENAME: example: `textures_polygon` --> `textures_polygon_drawing` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...s_polygon.c => textures_polygon_drawing.c} | 0 ...lygon.png => textures_polygon_drawing.png} | Bin ...xproj => textures_polygon_drawing.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/textures/{textures_polygon.c => textures_polygon_drawing.c} (100%) rename examples/textures/{textures_polygon.png => textures_polygon_drawing.png} (100%) rename projects/VS2022/examples/{textures_polygon.vcxproj => textures_polygon_drawing.vcxproj} (98%) diff --git a/examples/Makefile b/examples/Makefile index a0aaaf0e9..e62876a43 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -578,7 +578,7 @@ TEXTURES = \ textures/textures_mouse_painting \ textures/textures_npatch_drawing \ textures/textures_particles_blending \ - textures/textures_polygon \ + textures/textures_polygon_drawing \ textures/textures_raw_data \ textures/textures_sprite_anim \ textures/textures_sprite_button \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 61f67b02a..ac58d7d99 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -578,7 +578,7 @@ TEXTURES = \ textures/textures_mouse_painting \ textures/textures_npatch_drawing \ textures/textures_particles_blending \ - textures/textures_polygon \ + textures/textures_polygon_drawing \ textures/textures_raw_data \ textures/textures_sprite_anim \ textures/textures_sprite_button \ @@ -931,7 +931,7 @@ textures/textures_particles_blending: textures/textures_particles_blending.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file textures/resources/spark_flame.png@resources/spark_flame.png -textures/textures_polygon: textures/textures_polygon.c +textures/textures_polygon_drawing: textures/textures_polygon_drawing.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file textures/resources/cat.png@resources/cat.png diff --git a/examples/README.md b/examples/README.md index 1911ba3fa..985498351 100644 --- a/examples/README.md +++ b/examples/README.md @@ -114,7 +114,7 @@ Examples using raylib textures functionality, including image/textures loading/g | [textures_mouse_painting](textures/textures_mouse_painting.c) | textures_mouse_painting | ⭐⭐⭐☆ | 3.0 | 3.0 | [Chris Dill](https://github.com/MysteriousSpace) | | [textures_blend_modes](textures/textures_blend_modes.c) | textures_blend_modes | ⭐☆☆☆ | 3.5 | 3.5 | [Karlo Licudine](https://github.com/accidentalrebel) | | [textures_draw_tiled](textures/textures_draw_tiled.c) | textures_draw_tiled | ⭐⭐⭐☆ | 3.0 | 4.2 | [Vlad Adrian](https://github.com/demizdor) | -| [textures_polygon](textures/textures_polygon.c) | textures_polygon | ⭐☆☆☆ | 3.7 | 3.7 | [Chris Camacho](https://github.com/chriscamacho) | +| [textures_polygon_drawing](textures/textures_polygon_drawing.c) | textures_polygon_drawing | ⭐☆☆☆ | 3.7 | 3.7 | [Chris Camacho](https://github.com/chriscamacho) | | [textures_fog_of_war](textures/textures_fog_of_war.c) | textures_fog_of_war | ⭐⭐⭐☆ | 4.2 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [textures_gif_player](textures/textures_gif_player.c) | textures_gif_player | ⭐⭐⭐☆ | 4.2 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [textures_image_kernel](textures/textures_image_kernel.c) | textures_image_kernel | ⭐⭐⭐⭐️ | 1.3 | 1.3 | [Karim Salem](https://github.com/kimo-s) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index f0e7bf0cb..4e3ef674a 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -83,7 +83,7 @@ textures;textures_bunnymark;⭐️⭐️⭐️☆;1.6;2.5;"Ramon Santamaria";@ra textures;textures_mouse_painting;⭐️⭐️⭐️☆;3.0;3.0;"Chris Dill";@MysteriousSpace textures;textures_blend_modes;⭐️☆☆☆;3.5;3.5;"Karlo Licudine";@accidentalrebel textures;textures_draw_tiled;⭐️⭐️⭐️☆;3.0;4.2;"Vlad Adrian";@demizdor -textures;textures_polygon;⭐️☆☆☆;3.7;3.7;"Chris Camacho";@chriscamacho +textures;textures_polygon_drawing;⭐️☆☆☆;3.7;3.7;"Chris Camacho";@chriscamacho textures;textures_fog_of_war;⭐️⭐️⭐️☆;4.2;4.2;"Ramon Santamaria";@raysan5 textures;textures_gif_player;⭐️⭐️⭐️☆;4.2;4.2;"Ramon Santamaria";@raysan5 textures;textures_image_kernel;⭐️⭐️⭐️⭐️;1.3;1.3;"Karim Salem";@kimo-s diff --git a/examples/textures/textures_polygon.c b/examples/textures/textures_polygon_drawing.c similarity index 100% rename from examples/textures/textures_polygon.c rename to examples/textures/textures_polygon_drawing.c diff --git a/examples/textures/textures_polygon.png b/examples/textures/textures_polygon_drawing.png similarity index 100% rename from examples/textures/textures_polygon.png rename to examples/textures/textures_polygon_drawing.png diff --git a/projects/VS2022/examples/textures_polygon.vcxproj b/projects/VS2022/examples/textures_polygon_drawing.vcxproj similarity index 98% rename from projects/VS2022/examples/textures_polygon.vcxproj rename to projects/VS2022/examples/textures_polygon_drawing.vcxproj index 3c15bc8f3..e56aef533 100644 --- a/projects/VS2022/examples/textures_polygon.vcxproj +++ b/projects/VS2022/examples/textures_polygon_drawing.vcxproj @@ -1,569 +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 - - - - {1DE84812-E143-4C4B-A61D-9267AAD55401} - Win32Proj - textures_polygon - 10.0 - textures_polygon - - - - 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\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - - - - Level3 - Disabled - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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} - - - - - + + + + + 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 + + + + {1DE84812-E143-4C4B-A61D-9267AAD55401} + Win32Proj + textures_polygon_drawing + 10.0 + textures_polygon_drawing + + + + 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\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 45d157413..5a66c9e2e 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -261,7 +261,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rlgl_compute_shaders", "exa EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_draw_3d", "examples\text_draw_3d.vcxproj", "{27B110CC-43C0-400A-89D9-245E681647D7}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textures_polygon", "examples\textures_polygon.vcxproj", "{1DE84812-E143-4C4B-A61D-9267AAD55401}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textures_polygon_drawing", "examples\textures_polygon_drawing.vcxproj", "{1DE84812-E143-4C4B-A61D-9267AAD55401}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "audio_stream_effects", "examples\audio_stream_effects.vcxproj", "{4A87569C-4BD3-4113-B4B9-573D65B3D3F8}" EndProject From 33327760f11fcae926b703adcf0ed154a31158d2 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Sep 2025 18:43:17 +0200 Subject: [PATCH 036/190] REXM: RENAME: example: `text_draw_3d` --> `text_3d_drawing` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- .../{text_draw_3d.c => text_3d_drawing.c} | 0 .../{text_draw_3d.png => text_3d_drawing.png} | Bin ...raw_3d.vcxproj => text_3d_drawing.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/text/{text_draw_3d.c => text_3d_drawing.c} (100%) rename examples/text/{text_draw_3d.png => text_3d_drawing.png} (100%) rename projects/VS2022/examples/{text_draw_3d.vcxproj => text_3d_drawing.vcxproj} (97%) diff --git a/examples/Makefile b/examples/Makefile index e62876a43..c0d85ce1b 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -589,7 +589,7 @@ TEXTURES = \ TEXT = \ text/text_codepoints_loading \ - text/text_draw_3d \ + text/text_3d_drawing \ text/text_font_filters \ text/text_font_loading \ text/text_font_sdf \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index ac58d7d99..898a921cd 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -589,7 +589,7 @@ TEXTURES = \ TEXT = \ text/text_codepoints_loading \ - text/text_draw_3d \ + text/text_3d_drawing \ text/text_font_filters \ text/text_font_loading \ text/text_font_sdf \ @@ -970,7 +970,7 @@ text/text_codepoints_loading: text/text_codepoints_loading.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file text/resources/DotGothic16-Regular.ttf@resources/DotGothic16-Regular.ttf -text/text_draw_3d: text/text_draw_3d.c +text/text_3d_drawing: text/text_3d_drawing.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file text/resources/shaders/glsl100/alpha_discard.fs@resources/shaders/glsl100/alpha_discard.fs diff --git a/examples/README.md b/examples/README.md index 985498351..3d080c3df 100644 --- a/examples/README.md +++ b/examples/README.md @@ -138,7 +138,7 @@ Examples using raylib text functionality, including sprite fonts loading/generat | [text_writing_anim](text/text_writing_anim.c) | text_writing_anim | ⭐⭐☆☆ | 1.4 | 1.4 | [Ramon Santamaria](https://github.com/raysan5) | | [text_rectangle_bounds](text/text_rectangle_bounds.c) | text_rectangle_bounds | ⭐⭐⭐⭐️ | 2.5 | 4.0 | [Vlad Adrian](https://github.com/demizdor) | | [text_unicode_emojis](text/text_unicode_emojis.c) | text_unicode_emojis | ⭐⭐⭐⭐️ | 2.5 | 4.0 | [Vlad Adrian](https://github.com/demizdor) | -| [text_draw_3d](text/text_draw_3d.c) | text_draw_3d | ⭐⭐⭐⭐️ | 3.5 | 4.0 | [Vlad Adrian](https://github.com/demizdor) | +| [text_3d_drawing](text/text_3d_drawing.c) | text_3d_drawing | ⭐⭐⭐⭐️ | 3.5 | 4.0 | [Vlad Adrian](https://github.com/demizdor) | | [text_codepoints_loading](text/text_codepoints_loading.c) | text_codepoints_loading | ⭐⭐⭐☆ | 4.2 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [text_unicode_ranges](text/text_unicode_ranges.c) | text_unicode_ranges | ⭐⭐⭐⭐️ | 2.5 | 4.0 | [Vlad Adrian](https://github.com/demizdor) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 4e3ef674a..e91e61d08 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -101,7 +101,7 @@ text;text_writing_anim;⭐️⭐️☆☆;1.4;1.4;"Ramon Santamaria";@raysan5 text;text_rectangle_bounds;⭐️⭐️⭐️⭐️;2.5;4.0;"Vlad Adrian";@demizdor text;text_unicode_emojis;⭐️⭐️⭐️⭐️;2.5;4.0;"Vlad Adrian";@demizdor text;text_unicode_ranges;⭐️⭐️⭐️⭐️;5.5;5.6;"Vlad Adrian";@demizdor -text;text_draw_3d;⭐️⭐️⭐️⭐️;3.5;4.0;"Vlad Adrian";@demizdor +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 diff --git a/examples/text/text_draw_3d.c b/examples/text/text_3d_drawing.c similarity index 100% rename from examples/text/text_draw_3d.c rename to examples/text/text_3d_drawing.c diff --git a/examples/text/text_draw_3d.png b/examples/text/text_3d_drawing.png similarity index 100% rename from examples/text/text_draw_3d.png rename to examples/text/text_3d_drawing.png diff --git a/projects/VS2022/examples/text_draw_3d.vcxproj b/projects/VS2022/examples/text_3d_drawing.vcxproj similarity index 97% rename from projects/VS2022/examples/text_draw_3d.vcxproj rename to projects/VS2022/examples/text_3d_drawing.vcxproj index c3dd4a37d..eb1714e5c 100644 --- a/projects/VS2022/examples/text_draw_3d.vcxproj +++ b/projects/VS2022/examples/text_3d_drawing.vcxproj @@ -1,569 +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 - - - - {27B110CC-43C0-400A-89D9-245E681647D7} - Win32Proj - text_draw_3d - 10.0 - text_draw_3d - - - - 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\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\text - WindowsLocalDebugger - - - - - - Level3 - Disabled - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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} - - - - - + + + + + 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 + + + + {27B110CC-43C0-400A-89D9-245E681647D7} + Win32Proj + text_3d_drawing + 10.0 + text_3d_drawing + + + + 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\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 5a66c9e2e..a40769818 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -259,7 +259,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_custom_frame_control", EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rlgl_compute_shaders", "examples\rlgl_compute_shaders.vcxproj", "{07CA51AD-72AE-46A2-AAED-DC3E3F807976}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_draw_3d", "examples\text_draw_3d.vcxproj", "{27B110CC-43C0-400A-89D9-245E681647D7}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_3d_drawing", "examples\text_3d_drawing.vcxproj", "{27B110CC-43C0-400A-89D9-245E681647D7}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textures_polygon_drawing", "examples\textures_polygon_drawing.vcxproj", "{1DE84812-E143-4C4B-A61D-9267AAD55401}" EndProject From d8ee8a45c430c9f95b7fe0ce62484961ab4b082f Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Sep 2025 18:45:50 +0200 Subject: [PATCH 037/190] REXM: RENAME: example: `textures_draw_tiled` --> `textures_tiled_drawing` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ..._draw_tiled.c => textures_tiled_drawing.c} | 0 ...w_tiled.png => textures_tiled_drawing.png} | Bin ...vcxproj => textures_tiled_drawing.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/textures/{textures_draw_tiled.c => textures_tiled_drawing.c} (100%) rename examples/textures/{textures_draw_tiled.png => textures_tiled_drawing.png} (100%) rename projects/VS2022/examples/{textures_draw_tiled.vcxproj => textures_tiled_drawing.vcxproj} (97%) diff --git a/examples/Makefile b/examples/Makefile index c0d85ce1b..96194c5e8 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -563,7 +563,7 @@ TEXTURES = \ textures/textures_background_scrolling \ textures/textures_blend_modes \ textures/textures_bunnymark \ - textures/textures_draw_tiled \ + textures/textures_tiled_drawing \ textures/textures_fog_of_war \ textures/textures_gif_player \ textures/textures_image_channel \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 898a921cd..0aae2c706 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -563,7 +563,7 @@ TEXTURES = \ textures/textures_background_scrolling \ textures/textures_blend_modes \ textures/textures_bunnymark \ - textures/textures_draw_tiled \ + textures/textures_tiled_drawing \ textures/textures_fog_of_war \ textures/textures_gif_player \ textures/textures_image_channel \ @@ -871,7 +871,7 @@ textures/textures_bunnymark: textures/textures_bunnymark.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file textures/resources/wabbit_alpha.png@resources/wabbit_alpha.png -textures/textures_draw_tiled: textures/textures_draw_tiled.c +textures/textures_tiled_drawing: textures/textures_tiled_drawing.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file textures/resources/patterns.png@resources/patterns.png diff --git a/examples/README.md b/examples/README.md index 3d080c3df..36e8b8c1e 100644 --- a/examples/README.md +++ b/examples/README.md @@ -113,7 +113,7 @@ Examples using raylib textures functionality, including image/textures loading/g | [textures_bunnymark](textures/textures_bunnymark.c) | textures_bunnymark | ⭐⭐⭐☆ | 1.6 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [textures_mouse_painting](textures/textures_mouse_painting.c) | textures_mouse_painting | ⭐⭐⭐☆ | 3.0 | 3.0 | [Chris Dill](https://github.com/MysteriousSpace) | | [textures_blend_modes](textures/textures_blend_modes.c) | textures_blend_modes | ⭐☆☆☆ | 3.5 | 3.5 | [Karlo Licudine](https://github.com/accidentalrebel) | -| [textures_draw_tiled](textures/textures_draw_tiled.c) | textures_draw_tiled | ⭐⭐⭐☆ | 3.0 | 4.2 | [Vlad Adrian](https://github.com/demizdor) | +| [textures_tiled_drawing](textures/textures_tiled_drawing.c) | textures_tiled_drawing | ⭐⭐⭐☆ | 3.0 | 4.2 | [Vlad Adrian](https://github.com/demizdor) | | [textures_polygon_drawing](textures/textures_polygon_drawing.c) | textures_polygon_drawing | ⭐☆☆☆ | 3.7 | 3.7 | [Chris Camacho](https://github.com/chriscamacho) | | [textures_fog_of_war](textures/textures_fog_of_war.c) | textures_fog_of_war | ⭐⭐⭐☆ | 4.2 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [textures_gif_player](textures/textures_gif_player.c) | textures_gif_player | ⭐⭐⭐☆ | 4.2 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index e91e61d08..58cca992a 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -82,7 +82,7 @@ textures;textures_sprite_explosion;⭐️⭐️☆☆;2.5;3.5;"Ramon Santamaria" textures;textures_bunnymark;⭐️⭐️⭐️☆;1.6;2.5;"Ramon Santamaria";@raysan5 textures;textures_mouse_painting;⭐️⭐️⭐️☆;3.0;3.0;"Chris Dill";@MysteriousSpace textures;textures_blend_modes;⭐️☆☆☆;3.5;3.5;"Karlo Licudine";@accidentalrebel -textures;textures_draw_tiled;⭐️⭐️⭐️☆;3.0;4.2;"Vlad Adrian";@demizdor +textures;textures_tiled_drawing;⭐️⭐️⭐️☆;3.0;4.2;"Vlad Adrian";@demizdor textures;textures_polygon_drawing;⭐️☆☆☆;3.7;3.7;"Chris Camacho";@chriscamacho textures;textures_fog_of_war;⭐️⭐️⭐️☆;4.2;4.2;"Ramon Santamaria";@raysan5 textures;textures_gif_player;⭐️⭐️⭐️☆;4.2;4.2;"Ramon Santamaria";@raysan5 diff --git a/examples/textures/textures_draw_tiled.c b/examples/textures/textures_tiled_drawing.c similarity index 100% rename from examples/textures/textures_draw_tiled.c rename to examples/textures/textures_tiled_drawing.c diff --git a/examples/textures/textures_draw_tiled.png b/examples/textures/textures_tiled_drawing.png similarity index 100% rename from examples/textures/textures_draw_tiled.png rename to examples/textures/textures_tiled_drawing.png diff --git a/projects/VS2022/examples/textures_draw_tiled.vcxproj b/projects/VS2022/examples/textures_tiled_drawing.vcxproj similarity index 97% rename from projects/VS2022/examples/textures_draw_tiled.vcxproj rename to projects/VS2022/examples/textures_tiled_drawing.vcxproj index 209a12091..5977c26dd 100644 --- a/projects/VS2022/examples/textures_draw_tiled.vcxproj +++ b/projects/VS2022/examples/textures_tiled_drawing.vcxproj @@ -1,569 +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 - - - - {0BF60202-43F7-48E9-8717-D31E56FA5BE0} - Win32Proj - textures_draw_tiled - 10.0 - textures_draw_tiled - - - - 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\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - 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} - - - - - + + + + + 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 + + + + {0BF60202-43F7-48E9-8717-D31E56FA5BE0} + Win32Proj + textures_tiled_drawing + 10.0 + textures_tiled_drawing + + + + 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\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + 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 a40769818..e868ce990 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -141,7 +141,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textures_image_loading", "e EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textures_image_generation", "examples\textures_image_generation.vcxproj", "{B19DD336-538E-4091-A559-EAA717FEC899}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textures_draw_tiled", "examples\textures_draw_tiled.vcxproj", "{0BF60202-43F7-48E9-8717-D31E56FA5BE0}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textures_tiled_drawing", "examples\textures_tiled_drawing.vcxproj", "{0BF60202-43F7-48E9-8717-D31E56FA5BE0}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textures_bunnymark", "examples\textures_bunnymark.vcxproj", "{4E863E5B-0B95-43BE-8D4F-B9EB6C394FEC}" EndProject From 5cbe013273aebedc9124f8be3552df827978bdcf Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Sep 2025 18:48:20 +0200 Subject: [PATCH 038/190] REXM: RENAME: example: `models_skybox` --> `models_skybox_rendering` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...els_skybox.c => models_skybox_rendering.c} | 0 ...skybox.png => models_skybox_rendering.png} | Bin ...cxproj => models_skybox_rendering.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/models/{models_skybox.c => models_skybox_rendering.c} (100%) rename examples/models/{models_skybox.png => models_skybox_rendering.png} (100%) rename projects/VS2022/examples/{models_skybox.vcxproj => models_skybox_rendering.vcxproj} (97%) diff --git a/examples/Makefile b/examples/Makefile index 96194c5e8..8fe4f6df5 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -622,7 +622,7 @@ MODELS = \ models/models_orthographic_projection \ models/models_point_rendering \ models/models_rlgl_solar_system \ - models/models_skybox \ + models/models_skybox_rendering \ models/models_tesseract_view \ models/models_waving_cubes \ models/models_yaw_pitch_roll diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 0aae2c706..b3bfb06dc 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -622,7 +622,7 @@ MODELS = \ models/models_orthographic_projection \ models/models_point_rendering \ models/models_rlgl_solar_system \ - models/models_skybox \ + models/models_skybox_rendering \ models/models_tesseract_view \ models/models_waving_cubes \ models/models_yaw_pitch_roll @@ -1112,7 +1112,7 @@ models/models_point_rendering: models/models_point_rendering.c models/models_rlgl_solar_system: models/models_rlgl_solar_system.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -models/models_skybox: models/models_skybox.c +models/models_skybox_rendering: models/models_skybox_rendering.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file models/resources/shaders/glsl100/skybox.vs@resources/shaders/glsl100/skybox.vs \ --preload-file models/resources/shaders/glsl100/skybox.fs@resources/shaders/glsl100/skybox.fs \ diff --git a/examples/README.md b/examples/README.md index 36e8b8c1e..28680430d 100644 --- a/examples/README.md +++ b/examples/README.md @@ -166,7 +166,7 @@ Examples using raylib models functionality, including models loading/generation | [models_yaw_pitch_roll](models/models_yaw_pitch_roll.c) | models_yaw_pitch_roll | ⭐⭐☆☆ | 1.8 | 4.0 | [Berni](https://github.com/Berni8k) | | [models_waving_cubes](models/models_waving_cubes.c) | models_waving_cubes | ⭐⭐⭐☆ | 2.5 | 3.7 | [Codecat](https://github.com/codecat) | | [models_heightmap](models/models_heightmap.c) | models_heightmap | ⭐☆☆☆ | 1.8 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | -| [models_skybox](models/models_skybox.c) | models_skybox | ⭐⭐☆☆ | 1.8 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [models_skybox_rendering](models/models_skybox_rendering.c) | models_skybox_rendering | ⭐⭐☆☆ | 1.8 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | | [models_draw_cube_texture](models/models_draw_cube_texture.c) | models_draw_cube_texture | ⭐⭐☆☆ | 4.5 | 4.5 | [Ramon Santamaria](https://github.com/raysan5) | | [models_gpu_skinning](models/models_gpu_skinning.c) | models_gpu_skinning | ⭐⭐⭐☆ | 4.5 | 4.5 | [Daniel Holden](https://github.com/orangeduck) | | [models_bone_socket](models/models_bone_socket.c) | models_bone_socket | ⭐⭐⭐⭐️ | 4.5 | 4.5 | [iP](https://github.com/ipzaur) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 58cca992a..054d57322 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -121,7 +121,7 @@ models;models_rlgl_solar_system;⭐️⭐️⭐️⭐️;2.5;4.0;"Ramon Santamar models;models_yaw_pitch_roll;⭐️⭐️☆☆;1.8;4.0;"Berni";@Berni8k models;models_waving_cubes;⭐️⭐️⭐️☆;2.5;3.7;"Codecat";@codecat models;models_heightmap;⭐️☆☆☆;1.8;3.5;"Ramon Santamaria";@raysan5 -models;models_skybox;⭐️⭐️☆☆;1.8;4.0;"Ramon Santamaria";@raysan5 +models;models_skybox_rendering;⭐️⭐️☆☆;1.8;4.0;"Ramon Santamaria";@raysan5 models;models_draw_cube_texture;⭐️⭐️☆☆;4.5;4.5;"Ramon Santamaria";@raysan5 models;models_gpu_skinning;⭐️⭐️⭐️☆;4.5;4.5;"Daniel Holden";@orangeduck models;models_bone_socket;⭐️⭐️⭐️⭐️;4.5;4.5;"iP";@ipzaur diff --git a/examples/models/models_skybox.c b/examples/models/models_skybox_rendering.c similarity index 100% rename from examples/models/models_skybox.c rename to examples/models/models_skybox_rendering.c diff --git a/examples/models/models_skybox.png b/examples/models/models_skybox_rendering.png similarity index 100% rename from examples/models/models_skybox.png rename to examples/models/models_skybox_rendering.png diff --git a/projects/VS2022/examples/models_skybox.vcxproj b/projects/VS2022/examples/models_skybox_rendering.vcxproj similarity index 97% rename from projects/VS2022/examples/models_skybox.vcxproj rename to projects/VS2022/examples/models_skybox_rendering.vcxproj index 3fbdc170e..b54e40509 100644 --- a/projects/VS2022/examples/models_skybox.vcxproj +++ b/projects/VS2022/examples/models_skybox_rendering.vcxproj @@ -1,569 +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 - - - - {0037A3CD-4F50-48B2-9AC3-5A0D1D16D2CA} - Win32Proj - models_skybox - 10.0 - models_skybox - - - - 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} - - - - - + + + + + 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 + + + + {0037A3CD-4F50-48B2-9AC3-5A0D1D16D2CA} + Win32Proj + models_skybox_rendering + 10.0 + models_skybox_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 e868ce990..0b6537f9e 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -111,7 +111,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_orthographic_project EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_rlgl_solar_system", "examples\models_rlgl_solar_system.vcxproj", "{A53CCF42-A972-478F-9336-0F618B3EC06A}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_skybox", "examples\models_skybox.vcxproj", "{0037A3CD-4F50-48B2-9AC3-5A0D1D16D2CA}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_skybox_rendering", "examples\models_skybox_rendering.vcxproj", "{0037A3CD-4F50-48B2-9AC3-5A0D1D16D2CA}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_waving_cubes", "examples\models_waving_cubes.vcxproj", "{870723DD-945A-4136-B65B-4AF3BF85369C}" EndProject From a7e62e73d8925f319fdf16babd99c6987e9d8445 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Sep 2025 19:00:33 +0200 Subject: [PATCH 039/190] REXM: REMOVE: example: `core_loading_thread` This example was POSIX only and had some special requirements for web, it made it more difficult to be managed from collection standard examples format. It will be re-added in the `others` category, that is not processed for web. --- examples/Makefile | 7 +- examples/Makefile.Web | 32 +- examples/README.md | 7 +- examples/core/core_loading_thread.c | 163 ----- examples/core/core_loading_thread.png | Bin 15032 -> 0 bytes examples/examples_list.txt | 1 - .../examples/core_loading_thread.vcxproj | 569 ------------------ 7 files changed, 20 insertions(+), 759 deletions(-) delete mode 100644 examples/core/core_loading_thread.c delete mode 100644 examples/core/core_loading_thread.png delete mode 100644 projects/VS2022/examples/core_loading_thread.vcxproj diff --git a/examples/Makefile b/examples/Makefile index 8fe4f6df5..86c1e7bec 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -525,7 +525,6 @@ CORE = \ core/core_input_mouse_wheel \ core/core_input_multitouch \ core/core_input_virtual_controls \ - core/core_loading_thread \ core/core_random_sequence \ core/core_random_values \ core/core_scissor_test \ @@ -563,7 +562,6 @@ TEXTURES = \ textures/textures_background_scrolling \ textures/textures_blend_modes \ textures/textures_bunnymark \ - textures/textures_tiled_drawing \ textures/textures_fog_of_war \ textures/textures_gif_player \ textures/textures_image_channel \ @@ -585,19 +583,20 @@ TEXTURES = \ textures/textures_sprite_explosion \ textures/textures_srcrec_dstrec \ textures/textures_textured_curve \ + textures/textures_tiled_drawing \ textures/textures_to_image TEXT = \ - text/text_codepoints_loading \ text/text_3d_drawing \ + text/text_codepoints_loading \ text/text_font_filters \ text/text_font_loading \ text/text_font_sdf \ text/text_font_spritefont \ text/text_format_text \ text/text_input_box \ - text/text_sprite_fonts \ text/text_rectangle_bounds \ + text/text_sprite_fonts \ text/text_unicode_emojis \ text/text_unicode_ranges \ text/text_writing_anim diff --git a/examples/Makefile.Web b/examples/Makefile.Web index b3bfb06dc..349462058 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -525,7 +525,6 @@ CORE = \ core/core_input_mouse_wheel \ core/core_input_multitouch \ core/core_input_virtual_controls \ - core/core_loading_thread \ core/core_random_sequence \ core/core_random_values \ core/core_scissor_test \ @@ -563,7 +562,6 @@ TEXTURES = \ textures/textures_background_scrolling \ textures/textures_blend_modes \ textures/textures_bunnymark \ - textures/textures_tiled_drawing \ textures/textures_fog_of_war \ textures/textures_gif_player \ textures/textures_image_channel \ @@ -585,19 +583,20 @@ TEXTURES = \ textures/textures_sprite_explosion \ textures/textures_srcrec_dstrec \ textures/textures_textured_curve \ + textures/textures_tiled_drawing \ textures/textures_to_image TEXT = \ - text/text_codepoints_loading \ text/text_3d_drawing \ + text/text_codepoints_loading \ text/text_font_filters \ text/text_font_loading \ text/text_font_sdf \ text/text_font_spritefont \ text/text_format_text \ text/text_input_box \ - text/text_sprite_fonts \ text/text_rectangle_bounds \ + text/text_sprite_fonts \ text/text_unicode_emojis \ text/text_unicode_ranges \ text/text_writing_anim @@ -760,9 +759,6 @@ core/core_input_multitouch: core/core_input_multitouch.c core/core_input_virtual_controls: core/core_input_virtual_controls.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -core/core_loading_thread: core/core_loading_thread.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) - core/core_random_sequence: core/core_random_sequence.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) @@ -871,10 +867,6 @@ textures/textures_bunnymark: textures/textures_bunnymark.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file textures/resources/wabbit_alpha.png@resources/wabbit_alpha.png -textures/textures_tiled_drawing: textures/textures_tiled_drawing.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ - --preload-file textures/resources/patterns.png@resources/patterns.png - textures/textures_fog_of_war: textures/textures_fog_of_war.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) @@ -961,19 +953,23 @@ textures/textures_textured_curve: textures/textures_textured_curve.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file textures/resources/road.png@resources/road.png +textures/textures_tiled_drawing: textures/textures_tiled_drawing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/patterns.png@resources/patterns.png + textures/textures_to_image: textures/textures_to_image.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file textures/resources/raylib_logo.png@resources/raylib_logo.png # Compile TEXT examples -text/text_codepoints_loading: text/text_codepoints_loading.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ - --preload-file text/resources/DotGothic16-Regular.ttf@resources/DotGothic16-Regular.ttf - text/text_3d_drawing: text/text_3d_drawing.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file text/resources/shaders/glsl100/alpha_discard.fs@resources/shaders/glsl100/alpha_discard.fs +text/text_codepoints_loading: text/text_codepoints_loading.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file text/resources/DotGothic16-Regular.ttf@resources/DotGothic16-Regular.ttf + text/text_font_filters: text/text_font_filters.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file text/resources/KAISG.ttf@resources/KAISG.ttf @@ -998,6 +994,9 @@ text/text_format_text: text/text_format_text.c text/text_input_box: text/text_input_box.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) +text/text_rectangle_bounds: text/text_rectangle_bounds.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + text/text_sprite_fonts: text/text_sprite_fonts.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file text/resources/sprite_fonts/alagard.png@resources/sprite_fonts/alagard.png \ @@ -1009,9 +1008,6 @@ text/text_sprite_fonts: text/text_sprite_fonts.c --preload-file text/resources/sprite_fonts/alpha_beta.png@resources/sprite_fonts/alpha_beta.png \ --preload-file text/resources/sprite_fonts/jupiter_crash.png@resources/sprite_fonts/jupiter_crash.png -text/text_rectangle_bounds: text/text_rectangle_bounds.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) - text/text_unicode_emojis: text/text_unicode_emojis.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file text/resources/dejavu.fnt@resources/dejavu.fnt \ diff --git a/examples/README.md b/examples/README.md index 28680430d..3535682d6 100644 --- a/examples/README.md +++ b/examples/README.md @@ -16,9 +16,9 @@ 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: 162] +## EXAMPLES COLLECTION [TOTAL: 161] -### category: core [37] +### category: core [36] Examples using raylib[core](../src/rcore.c) platform functionality like window creation, inputs, drawing modes and system functionality. @@ -51,7 +51,6 @@ Examples using raylib[core](../src/rcore.c) platform functionality like window c | [core_random_values](core/core_random_values.c) | core_random_values | ⭐☆☆☆ | 1.1 | 1.1 | [Ramon Santamaria](https://github.com/raysan5) | | [core_storage_values](core/core_storage_values.c) | core_storage_values | ⭐⭐☆☆ | 1.4 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [core_vr_simulator](core/core_vr_simulator.c) | core_vr_simulator | ⭐⭐⭐☆ | 2.5 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | -| [core_loading_thread](core/core_loading_thread.c) | core_loading_thread | ⭐⭐⭐☆ | 2.5 | 3.0 | [Ramon Santamaria](https://github.com/raysan5) | | [core_scissor_test](core/core_scissor_test.c) | core_scissor_test | ⭐☆☆☆ | 2.5 | 3.0 | [Chris Dill](https://github.com/MysteriousSpace) | | [core_basic_screen_manager](core/core_basic_screen_manager.c) | core_basic_screen_manager | ⭐☆☆☆ | 4.0 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | | [core_custom_frame_control](core/core_custom_frame_control.c) | core_custom_frame_control | ⭐⭐⭐⭐️ | 4.0 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | @@ -138,9 +137,9 @@ Examples using raylib text functionality, including sprite fonts loading/generat | [text_writing_anim](text/text_writing_anim.c) | text_writing_anim | ⭐⭐☆☆ | 1.4 | 1.4 | [Ramon Santamaria](https://github.com/raysan5) | | [text_rectangle_bounds](text/text_rectangle_bounds.c) | text_rectangle_bounds | ⭐⭐⭐⭐️ | 2.5 | 4.0 | [Vlad Adrian](https://github.com/demizdor) | | [text_unicode_emojis](text/text_unicode_emojis.c) | text_unicode_emojis | ⭐⭐⭐⭐️ | 2.5 | 4.0 | [Vlad Adrian](https://github.com/demizdor) | +| [text_unicode_ranges](text/text_unicode_ranges.c) | text_unicode_ranges | ⭐⭐⭐⭐️ | 5.5 | 5.6 | [Vlad Adrian](https://github.com/demizdor) | | [text_3d_drawing](text/text_3d_drawing.c) | text_3d_drawing | ⭐⭐⭐⭐️ | 3.5 | 4.0 | [Vlad Adrian](https://github.com/demizdor) | | [text_codepoints_loading](text/text_codepoints_loading.c) | text_codepoints_loading | ⭐⭐⭐☆ | 4.2 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | -| [text_unicode_ranges](text/text_unicode_ranges.c) | text_unicode_ranges | ⭐⭐⭐⭐️ | 2.5 | 4.0 | [Vlad Adrian](https://github.com/demizdor) | ### category: models [23] diff --git a/examples/core/core_loading_thread.c b/examples/core/core_loading_thread.c deleted file mode 100644 index 3d04f94a7..000000000 --- a/examples/core/core_loading_thread.c +++ /dev/null @@ -1,163 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - loading thread -* -* Example complexity rating: [★★★☆] 3/4 -* -* NOTE: This example requires linking with pthreads library on MinGW, -* it can be accomplished passing -static parameter to compiler -* -* Example originally created with raylib 2.5, last time updated with raylib 3.0 -* -* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified, -* -* Copyright (c) 2014-2025 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -// WARNING: This example does not build on Windows with MSVC compiler -#include "pthread.h" // POSIX style threads management - -#include // Required for: C11 atomic data types -#include // Required for: clock() - -// Using C11 atomics for synchronization -// NOTE: A plain bool (or any plain data type for that matter) can't be used for inter-thread synchronization -static atomic_bool dataLoaded = false; // Data Loaded completion indicator -static atomic_int dataProgress = 0; // Data progress accumulator - -//------------------------------------------------------------------------------------ -// Module Functions Declaration -//------------------------------------------------------------------------------------ -static void *LoadDataThread(void *arg); // Loading data thread function declaration - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - loading thread"); - - pthread_t threadId = { 0 }; // Loading data thread id - - enum { STATE_WAITING, STATE_LOADING, STATE_FINISHED } state = STATE_WAITING; - int framesCounter = 0; - - 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 - //---------------------------------------------------------------------------------- - switch (state) - { - case STATE_WAITING: - { - if (IsKeyPressed(KEY_ENTER)) - { - int error = pthread_create(&threadId, NULL, &LoadDataThread, NULL); - if (error != 0) TraceLog(LOG_ERROR, "Error creating loading thread"); - else TraceLog(LOG_INFO, "Loading thread initialized successfully"); - - state = STATE_LOADING; - } - } break; - case STATE_LOADING: - { - framesCounter++; - if (atomic_load_explicit(&dataLoaded, memory_order_relaxed)) - { - framesCounter = 0; - int error = pthread_join(threadId, NULL); - if (error != 0) TraceLog(LOG_ERROR, "Error joining loading thread"); - else TraceLog(LOG_INFO, "Loading thread terminated successfully"); - - state = STATE_FINISHED; - } - } break; - case STATE_FINISHED: - { - if (IsKeyPressed(KEY_ENTER)) - { - // Reset everything to launch again - atomic_store_explicit(&dataLoaded, false, memory_order_relaxed); - atomic_store_explicit(&dataProgress, 0, memory_order_relaxed); - state = STATE_WAITING; - } - } break; - default: break; - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - switch (state) - { - case STATE_WAITING: DrawText("PRESS ENTER to START LOADING DATA", 150, 170, 20, DARKGRAY); break; - case STATE_LOADING: - { - DrawRectangle(150, 200, atomic_load_explicit(&dataProgress, memory_order_relaxed), 60, SKYBLUE); - if ((framesCounter/15)%2) DrawText("LOADING DATA...", 240, 210, 40, DARKBLUE); - - } break; - case STATE_FINISHED: - { - DrawRectangle(150, 200, 500, 60, LIME); - DrawText("DATA LOADED!", 250, 210, 40, GREEN); - - } break; - default: break; - } - - DrawRectangleLines(150, 200, 500, 60, DARKGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} - -//------------------------------------------------------------------------------------ -// Module Functions Definition -//------------------------------------------------------------------------------------ -// Loading data thread function definition -static void *LoadDataThread(void *arg) -{ - int timeCounter = 0; // Time counted in ms - clock_t prevTime = clock(); // Previous time - - // We simulate data loading with a time counter for 5 seconds - while (timeCounter < 5000) - { - clock_t currentTime = clock() - prevTime; - timeCounter = currentTime*1000/CLOCKS_PER_SEC; - - // We accumulate time over a global variable to be used in - // main thread as a progress bar - atomic_store_explicit(&dataProgress, timeCounter/10, memory_order_relaxed); - } - - // When data has finished loading, we set global variable - atomic_store_explicit(&dataLoaded, true, memory_order_relaxed); - - return NULL; -} diff --git a/examples/core/core_loading_thread.png b/examples/core/core_loading_thread.png deleted file mode 100644 index 957bd19840a8067b5dbc9d77cd90136f3623bf5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15032 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYU_8XZ1{4ubUVDOp!K&WV#WAEJF8R-|udnOd z0u7{?7AxW)N;nvoT?~-pZM-NTft6saYCVv_o?^1Lx9va%M-LXlpr_2iP52;oNuY)e z+>I9{CtP%~#pMi#?E(^S8+z2X;dH|;h#NNIbOXoaZp#Vyb zqoFVw3Zvx$xX>Og9YOWlXef+^0<3v6nifXW!f0ARZtIWch|wG|nj=PY1bQEPv|Jc1 z7e>p4(Q;w5T);N|Ia)f7mX4#P<7nxKSvoRKyXYay%NW(-P*USKu$VO= zQ%MeK{N+= zKIryHcfy9Awy)qYxWL;OIr;h`3p-u&8LQ?wn$N$b*!u3?!aVtfAJnhbw;XD}^h0e* z-3wXyDa-V;c2B?aV~*?6o=>G4)w?|JY`pz4D&pepx{}{+ua|+R#~w;EEjCtIys{cs z6gA{28r))(^v%IJ=eJmP!bKAt^MOE3f1DCZ_+e43V8yax@AHNUN1gB5m3+Tk<+D+P(=S`TRZQ6B&UDu%>;1+BS8S@@XG-e6at9?EHh+#D zy@OJ|y*S-d0-T-WJCTtjjdcPNG&2dD9bATUhO+UYI5^b@LxLNadoBtr_-bo#g-A5Wp;+CCsa?1i<#xJ&fivwGwn415_2|9f=zw@o-z#r@E7L_X(t8Lu8 zmw@7wvB){0g!5X)ElFGfKrmB*r)YU$RSibg8cQ)Lo3pr0Pv~9t51jn45R3$8 zXD{foxB-im&Rl$Hb{BAx89u>lz}q-+8+)>eVn4iKy+?@q$$y(fNu-CujDjf)i>-U@W|^`!}%j<=WE0JHLu(}MeNZfC3k zhTaAa#(>y;B`+^sydlHOxT^iY3!ya^T}(&k;zy@|xnYfv)&r|M8y7cPLlcFv9?K&4 z$2IWG%8<`tQ1|!O*Z&z3xEElwG1x-#jup;goM84Nq7(y_09Rqj93v4^qb31Wu2pcq zqqT&nQn|9Fn1mwAHMByTU|9)nzp>$Ho|&+;#dGwW16G%>u$0u`DwJ?>P4mSx;Obrq z`+6gg8|#40S$J)Q&8IKKm_Ut~BW4&W0G2dBEg)tX2Se3ieHOQL2RC?&0WA&&MLT&k zGh}d#W`@zs0PQ;iTZj1Dx1%+~Xw6{4GFmfmfI54lnPD_DjAjO4)iIhGz+D;82=Zv3 zVYJUMS~CEFTQh diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 054d57322..a8be535b9 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -34,7 +34,6 @@ core;core_drop_files;⭐️⭐️☆☆;1.3;4.2;"Ramon Santamaria";@raysan5 core;core_random_values;⭐️☆☆☆;1.1;1.1;"Ramon Santamaria";@raysan5 core;core_storage_values;⭐️⭐️☆☆;1.4;4.2;"Ramon Santamaria";@raysan5 core;core_vr_simulator;⭐️⭐️⭐️☆;2.5;4.0;"Ramon Santamaria";@raysan5 -core;core_loading_thread;⭐️⭐️⭐️☆;2.5;3.0;"Ramon Santamaria";@raysan5 core;core_scissor_test;⭐️☆☆☆;2.5;3.0;"Chris Dill";@MysteriousSpace core;core_basic_screen_manager;⭐️☆☆☆;4.0;4.0;"Ramon Santamaria";@raysan5 core;core_custom_frame_control;⭐️⭐️⭐️⭐️;4.0;4.0;"Ramon Santamaria";@raysan5 diff --git a/projects/VS2022/examples/core_loading_thread.vcxproj b/projects/VS2022/examples/core_loading_thread.vcxproj deleted file mode 100644 index f9c5203cf..000000000 --- a/projects/VS2022/examples/core_loading_thread.vcxproj +++ /dev/null @@ -1,569 +0,0 @@ - - - - - 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 - - - - {F026020F-7B00-40C8-91C3-5DE85EC45A95} - Win32Proj - core_loading_thread - 10.0 - core_loading_thread - - - - 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\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - 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 From 1008066644b651d1c8f6f84989ec3048a19cb602 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Sep 2025 19:58:26 +0200 Subject: [PATCH 040/190] Removed `core_loading_thread` project --- projects/VS2022/raylib.sln | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/projects/VS2022/raylib.sln b/projects/VS2022/raylib.sln index 0b6537f9e..43913d997 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -69,8 +69,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_input_mouse", "example EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_input_multitouch", "examples\core_input_multitouch.vcxproj", "{A643BB06-735D-47F3-BFE7-B6D3C36F7097}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_loading_thread", "examples\core_loading_thread.vcxproj", "{F026020F-7B00-40C8-91C3-5DE85EC45A95}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_random_sequence", "examples\core_random_sequence.vcxproj", "{6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_random_values", "examples\core_random_values.vcxproj", "{B332DCA8-3599-4A99-917A-82261BDC27AC}" @@ -931,20 +929,6 @@ Global {A643BB06-735D-47F3-BFE7-B6D3C36F7097}.Release|x64.Build.0 = Release|x64 {A643BB06-735D-47F3-BFE7-B6D3C36F7097}.Release|x86.ActiveCfg = Release|Win32 {A643BB06-735D-47F3-BFE7-B6D3C36F7097}.Release|x86.Build.0 = Release|Win32 - {F026020F-7B00-40C8-91C3-5DE85EC45A95}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 - {F026020F-7B00-40C8-91C3-5DE85EC45A95}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 - {F026020F-7B00-40C8-91C3-5DE85EC45A95}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 - {F026020F-7B00-40C8-91C3-5DE85EC45A95}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 - {F026020F-7B00-40C8-91C3-5DE85EC45A95}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {F026020F-7B00-40C8-91C3-5DE85EC45A95}.Debug|x64.ActiveCfg = Debug|x64 - {F026020F-7B00-40C8-91C3-5DE85EC45A95}.Debug|x86.ActiveCfg = Debug|Win32 - {F026020F-7B00-40C8-91C3-5DE85EC45A95}.Release.DLL|ARM64.ActiveCfg = Release.DLL|ARM64 - {F026020F-7B00-40C8-91C3-5DE85EC45A95}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 - {F026020F-7B00-40C8-91C3-5DE85EC45A95}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 - {F026020F-7B00-40C8-91C3-5DE85EC45A95}.Release.DLL|x86.Build.0 = Release.DLL|Win32 - {F026020F-7B00-40C8-91C3-5DE85EC45A95}.Release|ARM64.ActiveCfg = Release|ARM64 - {F026020F-7B00-40C8-91C3-5DE85EC45A95}.Release|x64.ActiveCfg = Release|x64 - {F026020F-7B00-40C8-91C3-5DE85EC45A95}.Release|x86.ActiveCfg = Release|Win32 {6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 {6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A}.Debug.DLL|ARM64.Build.0 = Debug.DLL|ARM64 {6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 @@ -4195,7 +4179,6 @@ Global {92B64AE7-D773-4F05-89F1-CE59BBF4F053} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} {A2BA5E5C-FDB9-4939-B0B5-2B753A5E33D3} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} {A643BB06-735D-47F3-BFE7-B6D3C36F7097} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} - {F026020F-7B00-40C8-91C3-5DE85EC45A95} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} {6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} {B332DCA8-3599-4A99-917A-82261BDC27AC} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} {59089B0C-AAB4-4532-B294-44DEAE7178B7} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} From 2a295210fb433ba35cbef3a6a7afce5e587a7e72 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Sep 2025 19:58:38 +0200 Subject: [PATCH 041/190] Update shaders_spotlight.c --- examples/shaders/shaders_spotlight.c | 44 +++++++++++++--------------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/examples/shaders/shaders_spotlight.c b/examples/shaders/shaders_spotlight.c index 1188ea8da..88422deeb 100644 --- a/examples/shaders/shaders_spotlight.c +++ b/examples/shaders/shaders_spotlight.c @@ -68,8 +68,8 @@ typedef struct Star { //-------------------------------------------------------------------------------------- // Module Functions Declaration //-------------------------------------------------------------------------------------- -static void UpdateStar(Star *s); -static void ResetStar(Star *s); +static void UpdateStar(Star *star); +static void ResetStar(Star *star); //------------------------------------------------------------------------------------ // Program main entry point @@ -117,7 +117,6 @@ int main(void) spots[i].positionLoc = GetShaderLocation(shdrSpot, posName); spots[i].innerLoc = GetShaderLocation(shdrSpot, innerName); spots[i].radiusLoc = GetShaderLocation(shdrSpot, radiusName); - } // Tell the shader how wide the screen is so we can have @@ -136,8 +135,8 @@ int main(void) while ((fabs(spots[i].speed.x) + fabs(spots[i].speed.y)) < 2) { - spots[i].speed.x = GetRandomValue(-400, 40)/10.0f; - spots[i].speed.y = GetRandomValue(-400, 40)/10.0f; + spots[i].speed.x = GetRandomValue(-400, 40)/20.0f; + spots[i].speed.y = GetRandomValue(-400, 40)/20.0f; } spots[i].inner = 28.0f*(i + 1); @@ -234,30 +233,29 @@ int main(void) return 0; } - -static void ResetStar(Star *s) +//-------------------------------------------------------------------------------------- +// Module Functions Definition +//-------------------------------------------------------------------------------------- +static void ResetStar(Star *star) { - s->position = (Vector2){ GetScreenWidth()/2.0f, GetScreenHeight()/2.0f }; + star->position = (Vector2){ GetScreenWidth()/2.0f, GetScreenHeight()/2.0f }; + + star->speed.x = (float)GetRandomValue(-1000, 1000)/100.0f; + star->speed.y = (float)GetRandomValue(-1000, 1000)/100.0f; - do + while (!(fabs(star->speed.x) + (fabs(star->speed.y) > 1))); { - s->speed.x = (float)GetRandomValue(-1000, 1000)/100.0f; - s->speed.y = (float)GetRandomValue(-1000, 1000)/100.0f; + star->speed.x = (float)GetRandomValue(-1000, 1000)/100.0f; + star->speed.y = (float)GetRandomValue(-1000, 1000)/100.0f; + } - } while (!(fabs(s->speed.x) + (fabs(s->speed.y) > 1))); - - s->position = Vector2Add(s->position, Vector2Multiply(s->speed, (Vector2){ 8.0f, 8.0f })); + star->position = Vector2Add(star->position, Vector2Multiply(star->speed, (Vector2){ 8.0f, 8.0f })); } -static void UpdateStar(Star *s) +static void UpdateStar(Star *star) { - s->position = Vector2Add(s->position, s->speed); + star->position = Vector2Add(star->position, star->speed); - if ((s->position.x < 0) || (s->position.x > GetScreenWidth()) || - (s->position.y < 0) || (s->position.y > GetScreenHeight())) - { - ResetStar(s); - } + if ((star->position.x < 0) || (star->position.x > GetScreenWidth()) || + (star->position.y < 0) || (star->position.y > GetScreenHeight())) ResetStar(star); } - - From 48eac6017163a31d143b56a21211b79c8fbf664b Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Sep 2025 23:14:58 +0200 Subject: [PATCH 042/190] REVIEWED: Potential issue with animated normals on OpenGL 1.1 --- src/rmodels.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/rmodels.c b/src/rmodels.c index 3ac416847..912bab081 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -1432,7 +1432,8 @@ void DrawMesh(Mesh mesh, Material material, Matrix transform) else rlEnableStatePointer(GL_VERTEX_ARRAY, mesh.vertices); rlEnableStatePointer(GL_TEXTURE_COORD_ARRAY, mesh.texcoords); - if (mesh.normals) rlEnableStatePointer(GL_VERTEX_ARRAY, mesh.animNormals); + + if (mesh.animNormals) rlEnableStatePointer(GL_NORMAL_ARRAY, mesh.animNormals); else rlEnableStatePointer(GL_NORMAL_ARRAY, mesh.normals); rlEnableStatePointer(GL_COLOR_ARRAY, mesh.colors); From 2e376c6f5b49821e572769e40225e19ee04173ef Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 10:33:14 +0200 Subject: [PATCH 043/190] Update shaders_spotlight.c --- examples/shaders/shaders_spotlight.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/shaders/shaders_spotlight.c b/examples/shaders/shaders_spotlight.c index 88422deeb..c7b35a262 100644 --- a/examples/shaders/shaders_spotlight.c +++ b/examples/shaders/shaders_spotlight.c @@ -135,8 +135,8 @@ int main(void) while ((fabs(spots[i].speed.x) + fabs(spots[i].speed.y)) < 2) { - spots[i].speed.x = GetRandomValue(-400, 40)/20.0f; - spots[i].speed.y = GetRandomValue(-400, 40)/20.0f; + spots[i].speed.x = GetRandomValue(-400, 40)/25.0f; + spots[i].speed.y = GetRandomValue(-400, 40)/25.0f; } spots[i].inner = 28.0f*(i + 1); @@ -243,7 +243,7 @@ static void ResetStar(Star *star) star->speed.x = (float)GetRandomValue(-1000, 1000)/100.0f; star->speed.y = (float)GetRandomValue(-1000, 1000)/100.0f; - while (!(fabs(star->speed.x) + (fabs(star->speed.y) > 1))); + while (!(fabs(star->speed.x) + (fabs(star->speed.y) > 1))) { star->speed.x = (float)GetRandomValue(-1000, 1000)/100.0f; star->speed.y = (float)GetRandomValue(-1000, 1000)/100.0f; From dd0587e12a846d52dbd9ce8005b5a3f0ce9b4fe4 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 10:33:22 +0200 Subject: [PATCH 044/190] Update shaders_texture_drawing.c --- examples/shaders/shaders_texture_drawing.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/examples/shaders/shaders_texture_drawing.c b/examples/shaders/shaders_texture_drawing.c index dc51f333a..3720f1954 100644 --- a/examples/shaders/shaders_texture_drawing.c +++ b/examples/shaders/shaders_texture_drawing.c @@ -4,8 +4,6 @@ * * Example complexity rating: [★★☆☆] 2/4 * -* NOTE: This example illustrates how to draw into a blank texture using a shader -* * Example originally created with raylib 2.0, last time updated with raylib 3.7 * * Example contributed by Michał Ciesielski (@ciessielski) and reviewed by Ramon Santamaria (@raysan5) @@ -67,7 +65,7 @@ int main(void) ClearBackground(RAYWHITE); BeginShaderMode(shader); // Enable our custom shader for next shapes/textures drawings - DrawTexture(texture, 0, 0, WHITE); // Drawing BLANK texture, all magic happens on shader + DrawTexture(texture, 0, 0, WHITE); // Drawing BLANK texture, all rendering magic happens on shader EndShaderMode(); // Disable our custom shader, return to default shader DrawText("BACKGROUND is PAINTED and ANIMATED on SHADER!", 10, 10, 20, MAROON); From 64641c6a01b9759bc04b1f9a722d3ffe8334789d Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 10:33:26 +0200 Subject: [PATCH 045/190] Update raudio.c --- src/raudio.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/raudio.c b/src/raudio.c index c883132d9..798c062e9 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -454,6 +454,7 @@ void UntrackAudioBuffer(AudioBuffer *buffer); //---------------------------------------------------------------------------------- // Module Functions Definition - Audio Device initialization and Closing //---------------------------------------------------------------------------------- + // Initialize audio device void InitAudioDevice(void) { From 9b99c5b04ef73625401c64aaba3777e1b29aaf0a Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 10:34:39 +0200 Subject: [PATCH 046/190] REXM: Adding some `UpdateSourceMetadata()` -WIP- --- tools/rexm/rexm.c | 154 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 148 insertions(+), 6 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index 43da4d6f2..ae0a2a57f 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -166,16 +166,24 @@ static char **ScanExampleResources(const char *filePath, int *resPathCount); // Clear resource paths scanned static void ClearExampleResources(char **resPaths); -// Add VS project (.vcxproj) to existing VS solution (.sln) +// Add/remove VS project (.vcxproj) tofrom existing VS solution (.sln) static int AddVSProjectToSolution(const char *projFile, const char *slnFile, const char *category); +//static int RemoveVSProjectFromSolution(const char *projFile, const char *slnFile, const char *category); // Generate unique UUID v4 string // Output format: {9A2F48CC-0DA8-47C0-884E-02E37F9BE6C1} static const char *GenerateUUIDv4(void); +// Update source code header and comments metadata +static void UpdateSourceMetadata(const char *exSrcPath, const rlExampleInfo *info); // Update generated Web example .html file metadata static void UpdateWebMetadata(const char *exHtmlPath, const char *exFilePath); +// Get text between two strings +static char *GetTextBetween(const char *text, const char *begin, const char *end); +// Replace text between two specific strings +static char *TextReplaceBetween(const char *text, const char *replace, const char *begin, const char *end); + //------------------------------------------------------------------------------------ // Program main entry point //------------------------------------------------------------------------------------ @@ -676,6 +684,13 @@ int main(int argc, char *argv[]) FileCopy(TextFormat("%s/%s/%s.js", exBasePath, exRecategory, exRename), TextFormat("%s/%s/%s.js", exWebPath, exRecategory, exRename)); + // Create commit with changes (local) + ChangeDirectory("C:/GitHub/raylib"); + 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("git push"); // Push to the remote (origin, current branch) + //if (result != 0) LOG("WARNING: Error pushing changes\n"); + } break; case OP_REMOVE: // Remove { @@ -2151,6 +2166,81 @@ static const char *GenerateUUIDv4(void) return uuid; } +// Update source code header and comments metadata +static void UpdateSourceMetadata(const char *exSrcPath, const rlExampleInfo *info) +{ + if (FileExists(exSrcPath) && IsFileExtension(exSrcPath, ".c")) + { + char *fileText = LoadFileText(exSrcPath); + char *fileTextUpdated[6] = { 0 }; // Pointers to multiple updated text versions + + char exName[64] = { 0 }; // Example name: fileName without extension + char exCategory[16] = { 0 }; // Example category: core, shapes, text, textures, models, audio, shaders + char exDescription[256] = { 0 }; // Example description: example text line #3 + char exTitle[64] = { 0 }; // Example title: fileName without extension, replacing underscores by spaces + + // Update example header title (line #3 - ALWAYS) + // String: "* raylib [shaders] example - texture drawing" + + + // Update example complexity rating + // String: "* Example complexity rating: [★★☆☆] 2/4" + fileTextUpdated[0] = TextReplaceBetween(exSrcPath, "★★☆☆] 2", "Example complexity rating: [", "/4\n"); + + + // Update example creation/update raylib versions + // String: "* Example originally created with raylib 2.0, last time updated with raylib 3.7 + + + // Update contributors names + // String: "* Example contributed by Contributor Name (@github_user) and reviewed by Ramon Santamaria (@raysan5)" + + + // Update copyright message + // String: "* Copyright (c) 2019-2025 Contributor Name (@github_user) and Ramon Santamaria (@raysan5)" + fileTextUpdated[0] = TextReplaceBetween(exSrcPath, "★★☆☆] 2", "Copyright (c) ", ")"); + + // Update window title + //"InitWindow(screenWidth, screenHeight, "raylib [shaders] example - texture drawing");" + + /* + // Get example name: replace underscore by spaces + strcpy(exName, GetFileNameWithoutExt(exSrcPath)); + strcpy(exTitle, exName); + for (int i = 0; (i < 256) && (exTitle[i] != '\0'); i++) { if (exTitle[i] == '_') exTitle[i] = ' '; } + + // Get example category from exName: copy until first underscore + for (int i = 0; (exName[i] != '_'); i++) exCategory[i] = exName[i]; + + // Get example description: copy line #3 from example file + char *exText = LoadFileText(exFilePath); + int lineCount = 0; + char **lines = LoadTextLines(exText, &lineCount); + int lineLength = (int)strlen(lines[2]); + strncpy(exDescription, lines[2] + 4, lineLength - 4); + UnloadTextLines(lines); + UnloadFileText(exText); + + // Update example.html required text + fileTextUpdated[0] = TextReplace(fileText, "raylib web game", exTitle); + fileTextUpdated[1] = TextReplace(fileTextUpdated[0], "New raylib web videogame, developed using raylib videogames library", exDescription); + fileTextUpdated[2] = TextReplace(fileTextUpdated[1], "https://www.raylib.com/common/raylib_logo.png", + TextFormat("https://raw.githubusercontent.com/raysan5/raylib/master/examples/%s/%s.png", exCategory, exName)); + fileTextUpdated[3] = TextReplace(fileTextUpdated[2], "https://www.raylib.com/games.html", + TextFormat("https://www.raylib.com/examples/%s/%s.html", exCategory, exName)); + fileTextUpdated[4] = TextReplace(fileTextUpdated[3], "raylib - example", TextFormat("raylib - %s", exName)); // og:site_name + fileTextUpdated[5] = TextReplace(fileTextUpdated[4], "https://github.com/raysan5/raylib", + TextFormat("https://github.com/raysan5/raylib/blob/master/examples/%s/%s.c", exCategory, exName)); + */ + + SaveFileText(exSrcPath, fileTextUpdated[5]); + + for (int i = 0; i < 6; i++) { MemFree(fileTextUpdated[i]); fileTextUpdated[i] = NULL; } + + UnloadFileText(fileText); + } +} + // Update generated Web example .html file metadata static void UpdateWebMetadata(const char *exHtmlPath, const char *exFilePath) { @@ -2164,11 +2254,6 @@ static void UpdateWebMetadata(const char *exHtmlPath, const char *exFilePath) char exDescription[256] = { 0 }; // Example description: example text line #3 char exTitle[64] = { 0 }; // Example title: fileName without extension, replacing underscores by spaces - memset(exName, 0, 64); - memset(exTitle, 0, 64); - memset(exDescription, 0, 256); - memset(exCategory, 0, 16); - // Get example name: replace underscore by spaces strcpy(exName, GetFileNameWithoutExt(exHtmlPath)); strcpy(exTitle, exName); @@ -2210,3 +2295,60 @@ static void UpdateWebMetadata(const char *exHtmlPath, const char *exFilePath) UnloadFileText(fileText); } } + + +// Get text between two strings +// NOTE: Using static string to return result, MAX: 1024 bytes +static char *GetTextBetween(const char *text, const char *begin, const char *end) +{ +#define MAX_TEXT_BETWEEN_SIZE 1024 + + static char between[MAX_TEXT_BETWEEN_SIZE] = { 0 }; + memset(between, 0, MAX_TEXT_BETWEEN_SIZE); + + int beginIndex = TextFindIndex(text, begin); + + if (beginIndex > -1) + { + int beginLen = strlen(begin); + int endIndex = TextFindIndex(text + beginIndex + beginLen, end); + + if (endIndex > -1) + { + endIndex += (beginIndex + beginLen); + int len = (endIndex - beginIndex - beginLen); + if (len < (MAX_TEXT_BETWEEN_SIZE - 1)) strncpy(between, text + beginIndex + beginLen, len); + else strncpy(between, text + beginIndex + beginLen, MAX_TEXT_BETWEEN_SIZE - 1); + } + } + + return between; +} + +// Replace text between two specific strings +// WARNING: Returned string must be freed by user +static char *TextReplaceBetween(const char *text, const char *replace, const char *begin, const char *end) +{ + char *result = NULL; + int beginIndex = TextFindIndex(text, begin); + + if (beginIndex > -1) + { + int endIndex = TextFindIndex(text + beginIndex, end); + + if (beginIndex > -1) + { + int textLen = strlen(text); + int replaceLen = strlen(replace); + int toreplaceLen = (endIndex + beginIndex) - (beginIndex + strlen(begin)); + result = (char *)RL_CALLOC(textLen + replaceLen - toreplaceLen + 1, sizeof(char)); + + int beginLen = strlen(begin); + strncpy(result, text, textLen - beginIndex + strlen(begin)); // Copy first text part + strncpy(result + textLen - beginIndex + beginLen, replace, replaceLen); // Copy replace + strncpy(result + textLen - beginIndex + beginLen + replaceLen, text + beginIndex + toreplaceLen, textLen - endIndex); // Copy end text part + } + } + + return result; +} From f9e6c85ccefdfe04d325d04ef7d5ef924c735d1e Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 10:40:17 +0200 Subject: [PATCH 047/190] Update rexm.c --- tools/rexm/rexm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index ae0a2a57f..b6bf73465 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -690,6 +690,9 @@ 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"); + ChangeDirectory("C:/GitHub/raylib.com"); + 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; case OP_REMOVE: // Remove From ba046a5d60fe40ebb815822d4972e1dd3944e3cf Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 10:44:20 +0200 Subject: [PATCH 048/190] REVIEWED: `DecompressData()`, fixed buffer copying --- src/rcore.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index d1b1a8219..97fc9e799 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -2563,19 +2563,19 @@ unsigned char *DecompressData(const unsigned char *compData, int compDataSize, i #if defined(SUPPORT_COMPRESSION_API) // Decompress data from a valid DEFLATE stream unsigned char *data0 = (unsigned char *)RL_CALLOC(MAX_DECOMPRESSION_SIZE*1024*1024, 1); - int length = sinflate(data, MAX_DECOMPRESSION_SIZE*1024*1024, compData, compDataSize); + int size = sinflate(data0, MAX_DECOMPRESSION_SIZE*1024*1024, compData, compDataSize); // WARNING: RL_REALLOC can make (and leave) data copies in memory, // that can be a security concern in case of compression of sensitive data // So, we use a second buffer to copy data manually, wiping original buffer memory - data = (unsigned char *)RL_CALLOC(length, 1); - memcpy(data, data0, length); + data = (unsigned char *)RL_CALLOC(size, 1); + memcpy(data, data0, size); memset(data0, 0, MAX_DECOMPRESSION_SIZE*1024*1024); // Wipe memory, is memset() safe? RL_FREE(data0); - TRACELOG(LOG_INFO, "SYSTEM: Decompress data: Comp. size: %i -> Original size: %i", compDataSize, length); + TRACELOG(LOG_INFO, "SYSTEM: Decompress data: Comp. size: %i -> Original size: %i", compDataSize, size); - *dataSize = length; + *dataSize = size; #endif return data; From 3659eee9943cac0e635b500467ba344dc09e7c07 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 10:50:35 +0200 Subject: [PATCH 049/190] Update rexm.c --- tools/rexm/rexm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index b6bf73465..25a3c9850 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -686,12 +686,12 @@ int main(int argc, char *argv[]) // Create commit with changes (local) ChangeDirectory("C:/GitHub/raylib"); - int result = system(TextFormat("git commit -am \"REXM: RENAME: example: `%s` --> `%s`\"", exName, exRename)); // Commit changes (only tracked files) + int result = system(TextFormat("cmd /c 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("git push"); // Push to the remote (origin, current branch) + //result = system("cmd /c 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("git commit -am \"REXM: RENAME: example: `%s` --> `%s`\"", exName, exRename)); // Commit changes (only tracked files) + result = system(TextFormat("cmd /c 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; From b17936de224830f2276d3af3c0fff014ee981f99 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 10:55:48 +0200 Subject: [PATCH 050/190] 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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 diff --git a/projects/VS2022/examples/models_billboard.vcxproj b/projects/VS2022/examples/models_billboard.vcxproj deleted file mode 100644 index 7ee85637c..000000000 --- a/projects/VS2022/examples/models_billboard.vcxproj +++ /dev/null @@ -1,569 +0,0 @@ - - - - - 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; From 3cbe911613f1a93ed38fbf3a5613c0cf1856fdd4 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 11:04:00 +0200 Subject: [PATCH 051/190] 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 From 41dee9e9f9b06ea150d2ea40ce321f08d25bed62 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 11:12:01 +0200 Subject: [PATCH 052/190] REXM: RENAME: example: `shaders_fog` --> `shaders_fog_rendering` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...{shaders_fog.c => shaders_fog_rendering.c} | 0 ...ders_fog.png => shaders_fog_rendering.png} | Bin ....vcxproj => shaders_fog_rendering.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/shaders/{shaders_fog.c => shaders_fog_rendering.c} (100%) rename examples/shaders/{shaders_fog.png => shaders_fog_rendering.png} (100%) rename projects/VS2022/examples/{shaders_fog.vcxproj => shaders_fog_rendering.vcxproj} (97%) diff --git a/examples/Makefile b/examples/Makefile index 076dd0c29..d95266522 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -632,7 +632,7 @@ SHADERS = \ shaders/shaders_custom_uniform \ shaders/shaders_deferred_render \ shaders/shaders_eratosthenes \ - shaders/shaders_fog \ + shaders/shaders_fog_rendering \ shaders/shaders_hot_reloading \ shaders/shaders_hybrid_render \ shaders/shaders_julia_set \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index e507173e2..729d22cae 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -632,7 +632,7 @@ SHADERS = \ shaders/shaders_custom_uniform \ shaders/shaders_deferred_render \ shaders/shaders_eratosthenes \ - shaders/shaders_fog \ + shaders/shaders_fog_rendering \ shaders/shaders_hot_reloading \ shaders/shaders_hybrid_render \ shaders/shaders_julia_set \ @@ -1165,7 +1165,7 @@ shaders/shaders_eratosthenes: shaders/shaders_eratosthenes.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/shaders/glsl100/eratosthenes.fs@resources/shaders/glsl100/eratosthenes.fs -shaders/shaders_fog: shaders/shaders_fog.c +shaders/shaders_fog_rendering: shaders/shaders_fog_rendering.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/texel_checker.png@resources/texel_checker.png \ --preload-file shaders/resources/shaders/glsl100/lighting.vs@resources/shaders/glsl100/lighting.vs \ diff --git a/examples/README.md b/examples/README.md index 360727c64..48a1d7f46 100644 --- a/examples/README.md +++ b/examples/README.md @@ -189,7 +189,7 @@ Examples using raylib shaders functionality, including shaders loading, paramete | [shaders_texture_waves](shaders/shaders_texture_waves.c) | shaders_texture_waves | ⭐⭐☆☆ | 2.5 | 3.7 | [Anata](https://github.com/anatagawa) | | [shaders_julia_set](shaders/shaders_julia_set.c) | shaders_julia_set | ⭐⭐⭐☆ | 2.5 | 4.0 | [Josh Colclough](https://github.com/joshcol9232) | | [shaders_eratosthenes](shaders/shaders_eratosthenes.c) | shaders_eratosthenes | ⭐⭐⭐☆ | 2.5 | 4.0 | [ProfJski](https://github.com/ProfJski) | -| [shaders_fog](shaders/shaders_fog.c) | shaders_fog | ⭐⭐⭐☆ | 2.5 | 3.7 | [Chris Camacho](https://github.com/chriscamacho) | +| [shaders_fog_rendering](shaders/shaders_fog_rendering.c) | shaders_fog_rendering | ⭐⭐⭐☆ | 2.5 | 3.7 | [Chris Camacho](https://github.com/chriscamacho) | | [shaders_simple_mask](shaders/shaders_simple_mask.c) | shaders_simple_mask | ⭐⭐☆☆ | 2.5 | 3.7 | [Chris Camacho](https://github.com/chriscamacho) | | [shaders_hot_reloading](shaders/shaders_hot_reloading.c) | shaders_hot_reloading | ⭐⭐⭐☆ | 3.0 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shaders_mesh_instancing](shaders/shaders_mesh_instancing.c) | shaders_mesh_instancing | ⭐⭐⭐⭐️ | 3.7 | 4.2 | [seanpringle](https://github.com/seanpringle) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 43e364032..0182d072e 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -137,7 +137,7 @@ shaders;shaders_texture_outline;⭐️⭐️⭐️☆;4.0;4.0;"Samuel Skiff";@Go shaders;shaders_texture_waves;⭐️⭐️☆☆;2.5;3.7;"Anata";@anatagawa shaders;shaders_julia_set;⭐️⭐️⭐️☆;2.5;4.0;"Josh Colclough";@joshcol9232 shaders;shaders_eratosthenes;⭐️⭐️⭐️☆;2.5;4.0;"ProfJski";@ProfJski -shaders;shaders_fog;⭐️⭐️⭐️☆;2.5;3.7;"Chris Camacho";@chriscamacho +shaders;shaders_fog_rendering;⭐️⭐️⭐️☆;2.5;3.7;"Chris Camacho";@chriscamacho shaders;shaders_simple_mask;⭐️⭐️☆☆;2.5;3.7;"Chris Camacho";@chriscamacho shaders;shaders_hot_reloading;⭐️⭐️⭐️☆;3.0;3.5;"Ramon Santamaria";@raysan5 shaders;shaders_mesh_instancing;⭐️⭐️⭐️⭐️;3.7;4.2;"seanpringle";@seanpringle diff --git a/examples/shaders/shaders_fog.c b/examples/shaders/shaders_fog_rendering.c similarity index 100% rename from examples/shaders/shaders_fog.c rename to examples/shaders/shaders_fog_rendering.c diff --git a/examples/shaders/shaders_fog.png b/examples/shaders/shaders_fog_rendering.png similarity index 100% rename from examples/shaders/shaders_fog.png rename to examples/shaders/shaders_fog_rendering.png diff --git a/projects/VS2022/examples/shaders_fog.vcxproj b/projects/VS2022/examples/shaders_fog_rendering.vcxproj similarity index 97% rename from projects/VS2022/examples/shaders_fog.vcxproj rename to projects/VS2022/examples/shaders_fog_rendering.vcxproj index 0c00c5124..033b03b4e 100644 --- a/projects/VS2022/examples/shaders_fog.vcxproj +++ b/projects/VS2022/examples/shaders_fog_rendering.vcxproj @@ -1,569 +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 - - - - {4A7D0ECA-D7CC-4E66-B741-C92E9C1B42FF} - Win32Proj - shaders_fog - 10.0 - shaders_fog - - - - 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\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - 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} - - - - - + + + + + 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 + + + + {4A7D0ECA-D7CC-4E66-B741-C92E9C1B42FF} + Win32Proj + shaders_fog_rendering + 10.0 + shaders_fog_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\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + 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 845ffaf12..3fe9aa780 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -203,7 +203,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_custom_uniform", "e EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_eratosthenes", "examples\shaders_eratosthenes.vcxproj", "{D08AA2A0-2F94-4BF5-B42D-E92450F03FD1}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_fog", "examples\shaders_fog.vcxproj", "{4A7D0ECA-D7CC-4E66-B741-C92E9C1B42FF}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_fog_rendering", "examples\shaders_fog_rendering.vcxproj", "{4A7D0ECA-D7CC-4E66-B741-C92E9C1B42FF}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_hot_reloading", "examples\shaders_hot_reloading.vcxproj", "{CF3755C4-937D-4ABF-B7B3-95140808717F}" EndProject From d79f294af067c7645d6de69cf42e6282c0854dec Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 11:20:48 +0200 Subject: [PATCH 053/190] Update rexm.c --- tools/rexm/rexm.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index b48160537..bb0418bd9 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -684,16 +684,23 @@ int main(int argc, char *argv[]) FileCopy(TextFormat("%s/%s/%s.js", exBasePath, exRecategory, exRename), TextFormat("%s/%s/%s.js", exWebPath, exRecategory, exRename)); + putenv("PATH=%PATH%;C:\\Program Files\\Git\\bin"); + ChangeDirectory("C:\\GitHub\\raylib"); + system("git --version"); + system("git status"); + + /* // Create commit with changes (local) putenv("PATH=%PATH%;C:\\Program Files\\Git\\bin"); ChangeDirectory("C:/GitHub/raylib"); - int result = system(TextFormat("git commit -am \"REXM: RENAME: example: `%s` --> `%s`\"", exName, exRename)); // Commit changes (only tracked files) + int result = system(TextFormat("git commit -m \"REXM: RENAME: example: `%s` --> `%s`\"", exName, exRename)); // Commit changes (only tracked files) 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"); ChangeDirectory("C:/GitHub/raylib.com"); - result = system(TextFormat("git commit -am \"REXM: RENAME: example: `%s` --> `%s`\"", exName, exRename)); // Commit changes (only tracked files) + result = system(TextFormat("git commit -m \"REXM: RENAME: example: `%s` --> `%s`\"", exName, exRename)); // Commit changes (only tracked files) if (result != 0) LOG("WARNING: Error committing changes\n"); + */ } break; case OP_REMOVE: // Remove From 5f9465d56963733ff05e30b5079b36a6ea7dcb59 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 11:21:52 +0200 Subject: [PATCH 054/190] Update rexm.c --- tools/rexm/rexm.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index bb0418bd9..3ead9aced 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -684,23 +684,19 @@ int main(int argc, char *argv[]) FileCopy(TextFormat("%s/%s/%s.js", exBasePath, exRecategory, exRename), 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"); system("git --version"); system("git status"); - - /* - // Create commit with changes (local) - putenv("PATH=%PATH%;C:\\Program Files\\Git\\bin"); - ChangeDirectory("C:/GitHub/raylib"); int result = system(TextFormat("git commit -m \"REXM: RENAME: example: `%s` --> `%s`\"", exName, exRename)); // Commit changes (only tracked files) 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"); ChangeDirectory("C:/GitHub/raylib.com"); result = system(TextFormat("git commit -m \"REXM: RENAME: example: `%s` --> `%s`\"", exName, exRename)); // Commit changes (only tracked files) 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"); } break; case OP_REMOVE: // Remove From 427b0d265321fab3373c379bc1bcf23a6e706d05 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 11:26:39 +0200 Subject: [PATCH 055/190] Update rexm.c --- tools/rexm/rexm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index 3ead9aced..756cebe6d 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -689,9 +689,11 @@ int main(int argc, char *argv[]) ChangeDirectory("C:\\GitHub\\raylib"); system("git --version"); system("git status"); + system("git add -A"); int result = system(TextFormat("git commit -m \"REXM: RENAME: example: `%s` --> `%s`\"", exName, exRename)); // Commit changes (only tracked files) if (result != 0) LOG("WARNING: Error committing changes\n"); ChangeDirectory("C:/GitHub/raylib.com"); + system("git add -A"); result = system(TextFormat("git commit -m \"REXM: RENAME: example: `%s` --> `%s`\"", exName, exRename)); // Commit changes (only tracked files) if (result != 0) LOG("WARNING: Error committing changes\n"); From d97e0a8ac7ac150585e697344bf625e1583fe91c Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 11:27:32 +0200 Subject: [PATCH 056/190] REXM: RENAME: example: `shaders_texture_drawing` --> `shaders_texture_rendering` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ..._drawing.c => shaders_texture_rendering.c} | 0 ...wing.png => shaders_texture_rendering.png} | Bin ...proj => shaders_texture_rendering.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/shaders/{shaders_texture_drawing.c => shaders_texture_rendering.c} (100%) rename examples/shaders/{shaders_texture_drawing.png => shaders_texture_rendering.png} (100%) rename projects/VS2022/examples/{shaders_texture_drawing.vcxproj => shaders_texture_rendering.vcxproj} (97%) diff --git a/examples/Makefile b/examples/Makefile index d95266522..6657e8171 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -649,7 +649,7 @@ SHADERS = \ shaders/shaders_shapes_textures \ shaders/shaders_simple_mask \ shaders/shaders_spotlight \ - shaders/shaders_texture_drawing \ + shaders/shaders_texture_rendering \ shaders/shaders_texture_outline \ shaders/shaders_texture_tiling \ shaders/shaders_texture_waves \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 729d22cae..1b9168cf4 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -649,7 +649,7 @@ SHADERS = \ shaders/shaders_shapes_textures \ shaders/shaders_simple_mask \ shaders/shaders_spotlight \ - shaders/shaders_texture_drawing \ + shaders/shaders_texture_rendering \ shaders/shaders_texture_outline \ shaders/shaders_texture_tiling \ shaders/shaders_texture_waves \ @@ -1267,7 +1267,7 @@ shaders/shaders_spotlight: shaders/shaders_spotlight.c --preload-file shaders/resources/raysan.png@resources/raysan.png \ --preload-file shaders/resources/shaders/glsl100/spotlight.fs@resources/shaders/glsl100/spotlight.fs -shaders/shaders_texture_drawing: shaders/shaders_texture_drawing.c +shaders/shaders_texture_rendering: shaders/shaders_texture_rendering.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/shaders/glsl100/cubes_panning.fs@resources/shaders/glsl100/cubes_panning.fs diff --git a/examples/README.md b/examples/README.md index 48a1d7f46..bb0feb03d 100644 --- a/examples/README.md +++ b/examples/README.md @@ -184,7 +184,7 @@ Examples using raylib shaders functionality, including shaders loading, paramete | [shaders_postprocessing](shaders/shaders_postprocessing.c) | shaders_postprocessing | ⭐⭐⭐☆ | 1.3 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | | [shaders_palette_switch](shaders/shaders_palette_switch.c) | shaders_palette_switch | ⭐⭐⭐☆ | 2.5 | 3.7 | [Marco Lizza](https://github.com/MarcoLizza) | | [shaders_raymarching](shaders/shaders_raymarching.c) | shaders_raymarching | ⭐⭐⭐⭐️ | 2.0 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | -| [shaders_texture_drawing](shaders/shaders_texture_drawing.c) | shaders_texture_drawing | ⭐⭐☆☆ | 2.0 | 3.7 | [Michał Ciesielski](https://github.com/ciessielski) | +| [shaders_texture_rendering](shaders/shaders_texture_rendering.c) | shaders_texture_rendering | ⭐⭐☆☆ | 2.0 | 3.7 | [Michał Ciesielski](https://github.com/ciessielski) | | [shaders_texture_outline](shaders/shaders_texture_outline.c) | shaders_texture_outline | ⭐⭐⭐☆ | 4.0 | 4.0 | [Samuel Skiff](https://github.com/GoldenThumbs) | | [shaders_texture_waves](shaders/shaders_texture_waves.c) | shaders_texture_waves | ⭐⭐☆☆ | 2.5 | 3.7 | [Anata](https://github.com/anatagawa) | | [shaders_julia_set](shaders/shaders_julia_set.c) | shaders_julia_set | ⭐⭐⭐☆ | 2.5 | 4.0 | [Josh Colclough](https://github.com/joshcol9232) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 0182d072e..ebb3a4f7e 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -132,7 +132,7 @@ shaders;shaders_custom_uniform;⭐️⭐️☆☆;1.3;4.0;"Ramon Santamaria";@ra shaders;shaders_postprocessing;⭐️⭐️⭐️☆;1.3;4.0;"Ramon Santamaria";@raysan5 shaders;shaders_palette_switch;⭐️⭐️⭐️☆;2.5;3.7;"Marco Lizza";@MarcoLizza shaders;shaders_raymarching;⭐️⭐️⭐️⭐️;2.0;4.2;"Ramon Santamaria";@raysan5 -shaders;shaders_texture_drawing;⭐️⭐️☆☆;2.0;3.7;"Michał Ciesielski";@ciessielski +shaders;shaders_texture_rendering;⭐️⭐️☆☆;2.0;3.7;"Michał Ciesielski";@ciessielski shaders;shaders_texture_outline;⭐️⭐️⭐️☆;4.0;4.0;"Samuel Skiff";@GoldenThumbs shaders;shaders_texture_waves;⭐️⭐️☆☆;2.5;3.7;"Anata";@anatagawa shaders;shaders_julia_set;⭐️⭐️⭐️☆;2.5;4.0;"Josh Colclough";@joshcol9232 diff --git a/examples/shaders/shaders_texture_drawing.c b/examples/shaders/shaders_texture_rendering.c similarity index 100% rename from examples/shaders/shaders_texture_drawing.c rename to examples/shaders/shaders_texture_rendering.c diff --git a/examples/shaders/shaders_texture_drawing.png b/examples/shaders/shaders_texture_rendering.png similarity index 100% rename from examples/shaders/shaders_texture_drawing.png rename to examples/shaders/shaders_texture_rendering.png diff --git a/projects/VS2022/examples/shaders_texture_drawing.vcxproj b/projects/VS2022/examples/shaders_texture_rendering.vcxproj similarity index 97% rename from projects/VS2022/examples/shaders_texture_drawing.vcxproj rename to projects/VS2022/examples/shaders_texture_rendering.vcxproj index 744642015..e3458e4f0 100644 --- a/projects/VS2022/examples/shaders_texture_drawing.vcxproj +++ b/projects/VS2022/examples/shaders_texture_rendering.vcxproj @@ -1,569 +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 - - - - {A6F5E35E-B4A7-41B3-853A-75558E6E0715} - Win32Proj - shaders_texture_drawing - 10.0 - shaders_texture_drawing - - - - 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\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - 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} - - - - - + + + + + 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 + + + + {A6F5E35E-B4A7-41B3-853A-75558E6E0715} + Win32Proj + shaders_texture_rendering + 10.0 + shaders_texture_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\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + 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 3fe9aa780..a8ec5324e 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -227,7 +227,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_simple_mask", "exam EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_spotlight", "examples\shaders_spotlight.vcxproj", "{11F33A39-74B7-4018-B5F9-CC285A673A8F}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_texture_drawing", "examples\shaders_texture_drawing.vcxproj", "{A6F5E35E-B4A7-41B3-853A-75558E6E0715}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_texture_rendering", "examples\shaders_texture_rendering.vcxproj", "{A6F5E35E-B4A7-41B3-853A-75558E6E0715}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_texture_waves", "examples\shaders_texture_waves.vcxproj", "{291B4975-8EFF-4C7C-8AF3-44A77B8491B8}" EndProject From c17f82a78cf7cbfa08646271f72f4d209ffb5f9f Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 15:43:54 +0200 Subject: [PATCH 057/190] REMOVED: `core_basic_window_web` The example is not following examples conventions and it will be moved to `others` with a new name --- examples/Makefile | 3 +- examples/Makefile.Web | 14 +- examples/README.md | 5 +- examples/core/core_basic_window_web.c | 89 --- examples/core/core_basic_window_web.png | Bin 15144 -> 0 bytes examples/examples_list.txt | 1 - .../examples/core_basic_window_web.vcxproj | 569 ------------------ 7 files changed, 8 insertions(+), 673 deletions(-) delete mode 100644 examples/core/core_basic_window_web.c delete mode 100644 examples/core/core_basic_window_web.png delete mode 100644 projects/VS2022/examples/core_basic_window_web.vcxproj diff --git a/examples/Makefile b/examples/Makefile index 6657e8171..7c943c121 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -512,7 +512,6 @@ CORE = \ core/core_automation_events \ core/core_basic_screen_manager \ core/core_basic_window \ - core/core_basic_window_web \ core/core_custom_frame_control \ core/core_custom_logging \ core/core_drop_files \ @@ -649,8 +648,8 @@ SHADERS = \ shaders/shaders_shapes_textures \ shaders/shaders_simple_mask \ shaders/shaders_spotlight \ - shaders/shaders_texture_rendering \ shaders/shaders_texture_outline \ + shaders/shaders_texture_rendering \ shaders/shaders_texture_tiling \ shaders/shaders_texture_waves \ shaders/shaders_vertex_displacement \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 1b9168cf4..d5601b86c 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -512,7 +512,6 @@ CORE = \ core/core_automation_events \ core/core_basic_screen_manager \ core/core_basic_window \ - core/core_basic_window_web \ core/core_custom_frame_control \ core/core_custom_logging \ core/core_drop_files \ @@ -649,8 +648,8 @@ SHADERS = \ shaders/shaders_shapes_textures \ shaders/shaders_simple_mask \ shaders/shaders_spotlight \ - shaders/shaders_texture_rendering \ shaders/shaders_texture_outline \ + shaders/shaders_texture_rendering \ shaders/shaders_texture_tiling \ shaders/shaders_texture_waves \ shaders/shaders_vertex_displacement \ @@ -718,9 +717,6 @@ core/core_basic_screen_manager: core/core_basic_screen_manager.c core/core_basic_window: core/core_basic_window.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -core/core_basic_window_web: core/core_basic_window_web.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) - core/core_custom_frame_control: core/core_custom_frame_control.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) @@ -1267,15 +1263,15 @@ shaders/shaders_spotlight: shaders/shaders_spotlight.c --preload-file shaders/resources/raysan.png@resources/raysan.png \ --preload-file shaders/resources/shaders/glsl100/spotlight.fs@resources/shaders/glsl100/spotlight.fs -shaders/shaders_texture_rendering: shaders/shaders_texture_rendering.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ - --preload-file shaders/resources/shaders/glsl100/cubes_panning.fs@resources/shaders/glsl100/cubes_panning.fs - shaders/shaders_texture_outline: shaders/shaders_texture_outline.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/fudesumi.png@resources/fudesumi.png \ --preload-file shaders/resources/shaders/glsl100/outline.fs@resources/shaders/glsl100/outline.fs +shaders/shaders_texture_rendering: shaders/shaders_texture_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/cubes_panning.fs@resources/shaders/glsl100/cubes_panning.fs + shaders/shaders_texture_tiling: shaders/shaders_texture_tiling.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png \ diff --git a/examples/README.md b/examples/README.md index bb0feb03d..b406ad2d7 100644 --- a/examples/README.md +++ b/examples/README.md @@ -16,9 +16,9 @@ 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: 161] +## EXAMPLES COLLECTION [TOTAL: 160] -### category: core [36] +### category: core [35] Examples using raylib[core](../src/rcore.c) platform functionality like window creation, inputs, drawing modes and system functionality. @@ -56,7 +56,6 @@ Examples using raylib[core](../src/rcore.c) platform functionality like window c | [core_custom_frame_control](core/core_custom_frame_control.c) | core_custom_frame_control | ⭐⭐⭐⭐️ | 4.0 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | | [core_smooth_pixelperfect](core/core_smooth_pixelperfect.c) | core_smooth_pixelperfect | ⭐⭐⭐☆ | 3.7 | 4.0 | [Giancamillo Alessandroni](https://github.com/NotManyIdeasDev) | | [core_random_sequence](core/core_random_sequence.c) | core_random_sequence | ⭐☆☆☆ | 5.0 | 5.0 | [Dalton Overmyer](https://github.com/REDl3east) | -| [core_basic_window_web](core/core_basic_window_web.c) | core_basic_window_web | ⭐☆☆☆ | 1.3 | 1.3 | [Ramon Santamaria](https://github.com/raysan5) | | [core_input_gestures_web](core/core_input_gestures_web.c) | core_input_gestures_web | ⭐⭐☆☆ | 4.6 | 4.6 | [ubkp](https://github.com/ubkp) | | [core_automation_events](core/core_automation_events.c) | core_automation_events | ⭐⭐⭐☆ | 5.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) | | [core_high_dpi](core/core_high_dpi.c) | core_high_dpi | ⭐☆☆☆ | 5.0 | 5.0 | [Jonathan Marler](https://github.com/marler8997) | diff --git a/examples/core/core_basic_window_web.c b/examples/core/core_basic_window_web.c deleted file mode 100644 index 7877337a3..000000000 --- a/examples/core/core_basic_window_web.c +++ /dev/null @@ -1,89 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - basic window -* -* Example complexity rating: [★☆☆☆] 1/4 -* -* NOTE: This example is prepared to compile for PLATFORM_WEB, and PLATFORM_DESKTOP -* As you will notice, code structure is slightly diferent to the other examples... -* To compile it for PLATFORM_WEB just uncomment #define PLATFORM_WEB at beginning -* -* Example originally created with raylib 1.3, last time updated with raylib 1.3 -* -* 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" - -//#define PLATFORM_WEB - -#if defined(PLATFORM_WEB) - #include -#endif - -//---------------------------------------------------------------------------------- -// Global Variables Definition -//---------------------------------------------------------------------------------- -const int screenWidth = 800; -const int screenHeight = 450; - -//---------------------------------------------------------------------------------- -// Module Functions Declaration -//---------------------------------------------------------------------------------- -void UpdateDrawFrame(void); // Update and Draw one frame - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window"); - -#if defined(PLATFORM_WEB) - emscripten_set_main_loop(UpdateDrawFrame, 0, 1); -#else - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - UpdateDrawFrame(); - } -#endif - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition -//---------------------------------------------------------------------------------- -void UpdateDrawFrame(void) -{ - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- -} \ No newline at end of file diff --git a/examples/core/core_basic_window_web.png b/examples/core/core_basic_window_web.png deleted file mode 100644 index 6cf44a0c87340dcc7e216ed531216a4e649241eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15144 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYU_8XZ1{4ubUVDOp!Ro!Ii(^PdT=Jh^Utia^ z1sX^(Emp)qlyEREyBHwH+jvnx0xQ8-)p{U5u-U`G)Ii)2=qSoXt^+2 zE{v87qvgVAxqxl_bF_3EEgeTo$I;ReZ|UgpU0_GePa|fIezw1`Lgb5pgf74P=K~%* zjTiY&WbBg1IyVEHv{?|%v7x8!D^TAN0fo{pvEkv<6II$TJN%Xxi*LE(xMtVI82=a! zo{);ZW6G79Q|>)9i@AI}<0upl>C4JB1o^686!yGY_VybXr zs9n-~W3RG7t#hocPR515j+r|yXkVNt{cnd`glDX@oz(vohQ3+*6wKxdbcvT#MlI(K zI;(zd{*rf%i%NefZ>v#wVqf&Q|JqX>z5fqC@$af$5!%-ib_r;=jB`Q>TZ&0+KXSr@ zg)B(yf-Z|&I&jYFb_T};L8cbBZ5MiFG`=3$#k`E~ddEt=iOU;aUiz`cAj!Q%lea!A zoh#^YYt*ZYhr4eGmIPhq^|4)h*>dlr);lF`c{?ud5|CT*#eLm=kGYvk!hb27)-ImD zdYAGS6IbxOTZ9wXDUq;30NE8_F(jw-ED%_5?S$Ss1?3dGoyrYIUM=4GpDjB`@!EZ6 z+5d}Mc~cb~UiFCW+;&k*zW>;Ns7VJP7U&XV!2?dlqU%ch-yBrSb&d7vC+^ywP@-#6 z8qBfwThD}7r!H13%{{lg^v9%G{qEZQuUZad?348MR5k>M)n$0nL=RMkyAUUA?0q4i zQ11IDAl}=5)o;$ZeXi>&zuda*sQZ7??8uD0%jSiAUMc&3L&3tW)*P+&Yah?N_OosQ zcXH8R_Z2k?*WzD1yI{5F<=nV}o9x2!b2%k*C-g3XB&YXyk`v>x_3``v$@9JkPaQ54 zWLm78x>&Q+gvEouapAmtx6gkwRzdPk9wen z*^FIM&>Xl>6r3eA%dqDdH|GYRO}l^-rno07k>eaaG@&I0P(LruDCOA?37D&R0tQ@c zBuV2bHo&vCKo8=wX4DCwkQohy(NKWp(b2RpnifXW0&-h+G)Ii)h|wG|nj_F#k)!3p zXt^+2E{v87qvZm&?)7NtI9fW6mX4#P<7nwPS~`MC!qHF|4F%9t!)PdshQjEq3}{Mw oG!#Zd0lXcRU|ImqJ~J@H^+w%v&e6>S?to?RboFyt=akR{0D#NXK>z>% diff --git a/examples/examples_list.txt b/examples/examples_list.txt index ebb3a4f7e..a909ba9ee 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -39,7 +39,6 @@ core;core_basic_screen_manager;⭐️☆☆☆;4.0;4.0;"Ramon Santamaria";@raysa core;core_custom_frame_control;⭐️⭐️⭐️⭐️;4.0;4.0;"Ramon Santamaria";@raysan5 core;core_smooth_pixelperfect;⭐️⭐️⭐️☆;3.7;4.0;"Giancamillo Alessandroni";@NotManyIdeasDev core;core_random_sequence;⭐️☆☆☆;5.0;5.0;"Dalton Overmyer";@REDl3east -core;core_basic_window_web;⭐️☆☆☆;1.3;1.3;"Ramon Santamaria";@raysan5 core;core_input_gestures_web;⭐️⭐️☆☆;4.6-dev;4.6-dev;"ubkp";@ubkp core;core_automation_events;⭐️⭐️⭐️☆;5.0;5.0;"Ramon Santamaria";@raysan5 core;core_high_dpi;⭐️☆☆☆;5.0;5.0;"Jonathan Marler";@marler8997 diff --git a/projects/VS2022/examples/core_basic_window_web.vcxproj b/projects/VS2022/examples/core_basic_window_web.vcxproj deleted file mode 100644 index 7d9d0efb4..000000000 --- a/projects/VS2022/examples/core_basic_window_web.vcxproj +++ /dev/null @@ -1,569 +0,0 @@ - - - - - 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 - - - - {0981CA98-E4A5-4DF1-987F-A41D09131EFC} - Win32Proj - core_basic_window_web - 10.0 - core_basic_window_web - - - - 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\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\core - 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 From e21093d4340aa1fcd9a020727437ea37d75cfa73 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 15:59:53 +0200 Subject: [PATCH 058/190] REXM: RENAME: example: `core_input_gestures_web` --> `core_input_gestures_testbed` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- ...es_web.c => core_input_gestures_testbed.c} | 221 +++++++++--------- ...eb.png => core_input_gestures_testbed.png} | Bin examples/examples_list.txt | 2 +- ...oj => core_input_gestures_testbed.vcxproj} | 6 +- 7 files changed, 121 insertions(+), 116 deletions(-) rename examples/core/{core_input_gestures_web.c => core_input_gestures_testbed.c} (76%) rename examples/core/{core_input_gestures_web.png => core_input_gestures_testbed.png} (100%) rename projects/VS2022/examples/{core_input_gestures_web.vcxproj => core_input_gestures_testbed.vcxproj} (99%) diff --git a/examples/Makefile b/examples/Makefile index 7c943c121..89f0ea8b6 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -518,7 +518,7 @@ CORE = \ core/core_high_dpi \ core/core_input_gamepad \ core/core_input_gestures \ - core/core_input_gestures_web \ + core/core_input_gestures_testbed \ core/core_input_keys \ core/core_input_mouse \ core/core_input_mouse_wheel \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index d5601b86c..20a67b7ca 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -518,7 +518,7 @@ CORE = \ core/core_high_dpi \ core/core_input_gamepad \ core/core_input_gestures \ - core/core_input_gestures_web \ + core/core_input_gestures_testbed \ core/core_input_keys \ core/core_input_mouse \ core/core_input_mouse_wheel \ @@ -737,7 +737,7 @@ core/core_input_gamepad: core/core_input_gamepad.c core/core_input_gestures: core/core_input_gestures.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -core/core_input_gestures_web: core/core_input_gestures_web.c +core/core_input_gestures_testbed: core/core_input_gestures_testbed.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) core/core_input_keys: core/core_input_keys.c diff --git a/examples/README.md b/examples/README.md index b406ad2d7..3be3479a5 100644 --- a/examples/README.md +++ b/examples/README.md @@ -56,7 +56,7 @@ Examples using raylib[core](../src/rcore.c) platform functionality like window c | [core_custom_frame_control](core/core_custom_frame_control.c) | core_custom_frame_control | ⭐⭐⭐⭐️ | 4.0 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | | [core_smooth_pixelperfect](core/core_smooth_pixelperfect.c) | core_smooth_pixelperfect | ⭐⭐⭐☆ | 3.7 | 4.0 | [Giancamillo Alessandroni](https://github.com/NotManyIdeasDev) | | [core_random_sequence](core/core_random_sequence.c) | core_random_sequence | ⭐☆☆☆ | 5.0 | 5.0 | [Dalton Overmyer](https://github.com/REDl3east) | -| [core_input_gestures_web](core/core_input_gestures_web.c) | core_input_gestures_web | ⭐⭐☆☆ | 4.6 | 4.6 | [ubkp](https://github.com/ubkp) | +| [core_input_gestures_testbed](core/core_input_gestures_testbed.c) | core_input_gestures_testbed | ⭐⭐☆☆ | 4.6 | 4.6 | [ubkp](https://github.com/ubkp) | | [core_automation_events](core/core_automation_events.c) | core_automation_events | ⭐⭐⭐☆ | 5.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) | | [core_high_dpi](core/core_high_dpi.c) | core_high_dpi | ⭐☆☆☆ | 5.0 | 5.0 | [Jonathan Marler](https://github.com/marler8997) | diff --git a/examples/core/core_input_gestures_web.c b/examples/core/core_input_gestures_testbed.c similarity index 76% rename from examples/core/core_input_gestures_web.c rename to examples/core/core_input_gestures_testbed.c index 743639ea0..b0ec53b7f 100644 --- a/examples/core/core_input_gestures_web.c +++ b/examples/core/core_input_gestures_testbed.c @@ -17,91 +17,97 @@ #include "raylib.h" -#include "math.h" // Required for the protractor angle graphic drawing +#include // Required for the protractor angle graphic drawing #if defined(PLATFORM_WEB) #include // Required for the Web/HTML5 #endif -//-------------------------------------------------------------------------------------- -// Global definitions and declarations -//-------------------------------------------------------------------------------------- +#define GESTURE_LOG_SIZE 20 +#define MAX_TOUCH_COUNT 32 -// Common variables definitions //-------------------------------------------------------------------------------------- -int screenWidth = 800; // Update depending on web canvas -const int screenHeight = 450; -Vector2 messagePosition = { 160, 7 }; +// Global Variables Definition +//-------------------------------------------------------------------------------------- +static int screenWidth = 800; // Update depending on web canvas +static const int screenHeight = 450; +static Vector2 messagePosition = { 160, 7 }; // Last gesture variables definitions -//-------------------------------------------------------------------------------------- -int lastGesture = 0; -Vector2 lastGesturePosition = { 165, 130 }; +static int lastGesture = 0; +static Vector2 lastGesturePosition = { 165, 130 }; -// Gesture log variables definitions and functions declarations -//-------------------------------------------------------------------------------------- -#define GESTURE_LOG_SIZE 20 -char gestureLog[GESTURE_LOG_SIZE][12] = { "" }; // The gesture log uses an array (as an inverted circular queue) to store the performed gestures -int gestureLogIndex = GESTURE_LOG_SIZE; // The index for the inverted circular queue (moving from last to first direction, then looping around) -int previousGesture = 0; +// Gesture log variables definitions +// NOTE: The gesture log uses an array (as an inverted circular queue) to store the performed gestures +static char gestureLog[GESTURE_LOG_SIZE][12] = { "" }; +// NOTE: The index for the inverted circular queue (moving from last to first direction, then looping around) +static int gestureLogIndex = GESTURE_LOG_SIZE; +static int previousGesture = 0; -char const *GetGestureName(int i) -{ - switch (i) { - case 0: return "None"; break; - case 1: return "Tap"; break; - case 2: return "Double Tap"; break; - case 4: return "Hold"; break; - case 8: return "Drag"; break; - case 16: return "Swipe Right"; break; - case 32: return "Swipe Left"; break; - case 64: return "Swipe Up"; break; - case 128: return "Swipe Down"; break; - case 256: return "Pinch In"; break; - case 512: return "Pinch Out"; break; - default: return "Unknown"; break; - } -} +// Log mode values: +// - 0 shows repeated events +// - 1 hides repeated events +// - 2 shows repeated events but hide hold events +// - 3 hides repeated events and hide hold events +static int logMode = 1; -Color GetGestureColor(int i) -{ - switch (i) { - case 0: return BLACK; break; - case 1: return BLUE; break; - case 2: return SKYBLUE; break; - case 4: return BLACK; break; - case 8: return LIME; break; - case 16: return RED; break; - case 32: return RED; break; - case 64: return RED; break; - case 128: return RED; break; - case 256: return VIOLET; break; - case 512: return ORANGE; break; - default: return BLACK; break; - } -} - -int logMode = 1; // Log mode values: 0 shows repeated events; 1 hides repeated events; 2 shows repeated events but hide hold events; 3 hides repeated events and hide hold events - -Color gestureColor = { 0, 0, 0, 255 }; -Rectangle logButton1 = { 53, 7, 48, 26 }; -Rectangle logButton2 = { 108, 7, 36, 26 }; -Vector2 gestureLogPosition = { 10, 10 }; +static Color gestureColor = { 0, 0, 0, 255 }; +static Rectangle logButton1 = { 53, 7, 48, 26 }; +static Rectangle logButton2 = { 108, 7, 36, 26 }; +static Vector2 gestureLogPosition = { 10, 10 }; // Protractor variables definitions -//-------------------------------------------------------------------------------------- -float angleLength = 90.0f; -float currentAngleDegrees = 0.0f; -Vector2 finalVector = { 0.0f, 0.0f }; -char currentAngleStr[7] = ""; -Vector2 protractorPosition = { 266.0f, 315.0f }; +static float angleLength = 90.0f; +static float currentAngleDegrees = 0.0f; +static Vector2 finalVector = { 0.0f, 0.0f }; +static char currentAngleStr[7] = ""; +static Vector2 protractorPosition = { 266.0f, 315.0f }; -// Update -//-------------------------------------------------------------------------------------- -void Update(void) +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- +static void UpdateDrawFrame(void); // Update and Draw one frame +static char const *GetGestureName(int i); +static Color GetGestureColor(int i); + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main(void) { - // Handle common + // Initialization //-------------------------------------------------------------------------------------- + InitWindow(screenWidth, screenHeight, "raylib [core] example - input gestures testbed"); + +#if defined(PLATFORM_WEB) + emscripten_set_main_loop(UpdateDrawFrame, 0, 1); +#else + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + UpdateDrawFrame(); + } +#endif + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- +static void UpdateDrawFrame(void) +{ + // Update + //-------------------------------------------------------------------------------------- + // Handle common gestures data int i, ii; // Iterators that will be reused by all for loops const int currentGesture = GetGestureDetected(); const float currentDragDegrees = GetGestureDragAngle(); @@ -109,11 +115,10 @@ void Update(void) const int touchCount = GetTouchPointCount(); // Handle last gesture - //-------------------------------------------------------------------------------------- - if ((currentGesture != 0) && (currentGesture != 4) && (currentGesture != previousGesture)) lastGesture = currentGesture; // Filter the meaningful gestures (1, 2, 8 to 512) for the display + if ((currentGesture != 0) && (currentGesture != 4) && (currentGesture != previousGesture)) + lastGesture = currentGesture; // Filter the meaningful gestures (1, 2, 8 to 512) for the display // Handle gesture log - //-------------------------------------------------------------------------------------- if (IsMouseButtonReleased(MOUSE_BUTTON_LEFT)) { if (CheckCollisionPointRec(GetMousePosition(), logButton1)) @@ -171,7 +176,6 @@ void Update(void) } // Handle protractor - //-------------------------------------------------------------------------------------- if (currentGesture > 255) // aka Pinch In and Pinch Out { currentAngleDegrees = currentPitchDegrees; @@ -189,9 +193,6 @@ void Update(void) finalVector = (Vector2){ (angleLength*sinf(currentAngleRadians)) + protractorPosition.x, (angleLength*cosf(currentAngleRadians)) + protractorPosition.y }; // Calculate the final vector for display // Handle touch and mouse pointer points - //-------------------------------------------------------------------------------------- - #define MAX_TOUCH_COUNT 32 - Vector2 touchPosition[MAX_TOUCH_COUNT] = { 0 }; Vector2 mousePosition = {0, 0}; if (currentGesture != GESTURE_NONE) @@ -202,22 +203,20 @@ void Update(void) } else mousePosition = GetMousePosition(); } + //-------------------------------------------------------------------------------------- // Draw //-------------------------------------------------------------------------------------- BeginDrawing(); - ClearBackground(RAYWHITE); - // Draw common - //-------------------------------------------------------------------------------------- + // Draw common elements DrawText("*", messagePosition.x + 5, messagePosition.y + 5, 10, BLACK); DrawText("Example optimized for Web/HTML5\non Smartphones with Touch Screen.", messagePosition.x + 15, messagePosition.y + 5, 10, BLACK); DrawText("*", messagePosition.x + 5, messagePosition.y + 35, 10, BLACK); DrawText("While running on Desktop Web Browsers,\ninspect and turn on Touch Emulation.", messagePosition.x + 15, messagePosition.y + 35, 10, BLACK); // Draw last gesture - //-------------------------------------------------------------------------------------- DrawText("Last gesture", lastGesturePosition.x + 33, lastGesturePosition.y - 47, 20, BLACK); DrawText("Swipe Tap Pinch Touch", lastGesturePosition.x + 17, lastGesturePosition.y - 18, 10, BLACK); DrawRectangle(lastGesturePosition.x + 20, lastGesturePosition.y, 20, 20, lastGesture == GESTURE_SWIPE_UP ? RED : LIGHTGRAY); @@ -235,7 +234,6 @@ void Update(void) for (i = 0; i < 4; i++) DrawCircle(lastGesturePosition.x + 180, lastGesturePosition.y + 7 + i*15, 5, touchCount <= i? LIGHTGRAY : gestureColor); // Draw gesture log - //-------------------------------------------------------------------------------------- DrawText("Log", gestureLogPosition.x, gestureLogPosition.y, 20, BLACK); // Loop in both directions to print the gesture log array in the inverted order (and looping around if the index started somewhere in the middle) @@ -256,7 +254,6 @@ void Update(void) DrawText("Hold", logButton1.x + 62, logButton1.y + 13, 10, WHITE); // Draw protractor - //-------------------------------------------------------------------------------------- DrawText("Angle", protractorPosition.x + 55, protractorPosition.y + 76, 10, BLACK); const char *angleString = TextFormat("%f", currentAngleDegrees); const int angleStringDot = TextFindIndex(angleString, "."); @@ -278,7 +275,6 @@ void Update(void) if (currentAngleDegrees != 0.0f) DrawLineEx(protractorPosition, finalVector, 3.0f, gestureColor); // Draw touch and mouse pointer points - //-------------------------------------------------------------------------------------- if (currentGesture != GESTURE_NONE) { if ( touchCount != 0 ) @@ -300,33 +296,42 @@ void Update(void) EndDrawing(); //-------------------------------------------------------------------------------------- - } -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) +static char const *GetGestureName(int i) { - // Initialization - //-------------------------------------------------------------------------------------- - InitWindow(screenWidth, screenHeight, "raylib [core] example - input gestures web"); - //-------------------------------------------------------------------------------------- - - // Main game loop - //-------------------------------------------------------------------------------------- - #if defined(PLATFORM_WEB) - emscripten_set_main_loop(Update, 0, 1); - #else - SetTargetFPS(60); - while (!WindowShouldClose()) Update(); // Detect window close button or ESC key - #endif - //-------------------------------------------------------------------------------------- - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; + switch (i) + { + case 0: return "None"; break; + case 1: return "Tap"; break; + case 2: return "Double Tap"; break; + case 4: return "Hold"; break; + case 8: return "Drag"; break; + case 16: return "Swipe Right"; break; + case 32: return "Swipe Left"; break; + case 64: return "Swipe Up"; break; + case 128: return "Swipe Down"; break; + case 256: return "Pinch In"; break; + case 512: return "Pinch Out"; break; + default: return "Unknown"; break; + } +} + +static Color GetGestureColor(int i) +{ + switch (i) + { + case 0: return BLACK; break; + case 1: return BLUE; break; + case 2: return SKYBLUE; break; + case 4: return BLACK; break; + case 8: return LIME; break; + case 16: return RED; break; + case 32: return RED; break; + case 64: return RED; break; + case 128: return RED; break; + case 256: return VIOLET; break; + case 512: return ORANGE; break; + default: return BLACK; break; + } } diff --git a/examples/core/core_input_gestures_web.png b/examples/core/core_input_gestures_testbed.png similarity index 100% rename from examples/core/core_input_gestures_web.png rename to examples/core/core_input_gestures_testbed.png diff --git a/examples/examples_list.txt b/examples/examples_list.txt index a909ba9ee..6c3ada66f 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -39,7 +39,7 @@ core;core_basic_screen_manager;⭐️☆☆☆;4.0;4.0;"Ramon Santamaria";@raysa core;core_custom_frame_control;⭐️⭐️⭐️⭐️;4.0;4.0;"Ramon Santamaria";@raysan5 core;core_smooth_pixelperfect;⭐️⭐️⭐️☆;3.7;4.0;"Giancamillo Alessandroni";@NotManyIdeasDev core;core_random_sequence;⭐️☆☆☆;5.0;5.0;"Dalton Overmyer";@REDl3east -core;core_input_gestures_web;⭐️⭐️☆☆;4.6-dev;4.6-dev;"ubkp";@ubkp +core;core_input_gestures_testbed;⭐️⭐️☆☆;4.6-dev;4.6-dev;"ubkp";@ubkp core;core_automation_events;⭐️⭐️⭐️☆;5.0;5.0;"Ramon Santamaria";@raysan5 core;core_high_dpi;⭐️☆☆☆;5.0;5.0;"Jonathan Marler";@marler8997 shapes;shapes_basic_shapes;⭐️☆☆☆;1.0;4.2;"Ramon Santamaria";@raysan5 diff --git a/projects/VS2022/examples/core_input_gestures_web.vcxproj b/projects/VS2022/examples/core_input_gestures_testbed.vcxproj similarity index 99% rename from projects/VS2022/examples/core_input_gestures_web.vcxproj rename to projects/VS2022/examples/core_input_gestures_testbed.vcxproj index bcccc57d0..8eb3a5e99 100644 --- a/projects/VS2022/examples/core_input_gestures_web.vcxproj +++ b/projects/VS2022/examples/core_input_gestures_testbed.vcxproj @@ -53,9 +53,9 @@ {0981CA98-E4A5-4DF1-987F-A41D09131EFC} Win32Proj - core_input_gestures_web + core_input_gestures_testbed 10.0 - core_input_gestures_web + core_input_gestures_testbed @@ -553,7 +553,7 @@ - + From 6d7dd43c13f65b42e0b28e2b5ced3b8585a40477 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 16:05:38 +0200 Subject: [PATCH 059/190] Update core_input_gestures_testbed.c --- examples/core/core_input_gestures_testbed.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/core/core_input_gestures_testbed.c b/examples/core/core_input_gestures_testbed.c index b0ec53b7f..5776c9fff 100644 --- a/examples/core/core_input_gestures_testbed.c +++ b/examples/core/core_input_gestures_testbed.c @@ -1,10 +1,10 @@ /******************************************************************************************* * -* raylib [core] example - input gestures web +* raylib [core] example - input gestures testbed * -* Example complexity rating: [★★☆☆] 2/4 +* Example complexity rating: [★★★☆] 3/4 * -* Example originally created with raylib 4.6-dev, last time updated with raylib 4.6-dev +* Example originally created with raylib 4.6-dev, last time updated with raylib 5.6-dev * * Example contributed by ubkp (@ubkp) and reviewed by Ramon Santamaria (@raysan5) * From 293477e2b58098cc0d9bf85c9a671319d23755ae Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 16:05:54 +0200 Subject: [PATCH 060/190] Reorganized examples list --- examples/examples_list.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 6c3ada66f..bd4073038 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -14,6 +14,7 @@ core;core_input_mouse_wheel;⭐️☆☆☆;1.1;1.3;"Ramon Santamaria";@raysan5 core;core_input_gamepad;⭐️☆☆☆;1.1;4.2;"Ramon Santamaria";@raysan5 core;core_input_multitouch;⭐️☆☆☆;2.1;2.5;"Berni";@Berni8k core;core_input_gestures;⭐️⭐️☆☆;1.4;4.2;"Ramon Santamaria";@raysan5 +core;core_input_gestures_testbed;⭐️⭐️⭐️☆;4.6-dev;5.6-dev;"ubkp";@ubkp core;core_input_virtual_controls;⭐️⭐️☆☆;5.0;5.0;"oblerion";@oblerion core;core_2d_camera;⭐️⭐️☆☆;1.5;3.0;"Ramon Santamaria";@raysan5 core;core_2d_camera_mouse_zoom;⭐️⭐️☆☆;4.2;4.2;"Jeffery Myers";@JeffM2501 @@ -26,10 +27,10 @@ core;core_3d_camera_split_screen;⭐️⭐️⭐️☆;3.7;4.0;"Jeffery Myers";@ core;core_3d_camera_fps;⭐️⭐️⭐️☆;5.5;5.5;"Agnis Aldins";@nezvers core;core_3d_picking;⭐️⭐️☆☆;1.3;4.0;"Ramon Santamaria";@raysan5 core;core_world_screen;⭐️⭐️☆☆;1.3;1.4;"Ramon Santamaria";@raysan5 -core;core_custom_logging;⭐️⭐️⭐️☆;2.5;2.5;"Pablo Marcos Oltra";@pamarcos core;core_window_flags;⭐️⭐️⭐️☆;3.5;3.5;"Ramon Santamaria";@raysan5 core;core_window_letterbox;⭐️⭐️☆☆;2.5;4.0;"Anata";@anatagawa core;core_window_should_close;⭐️☆☆☆;4.2;4.2;"Ramon Santamaria";@raysan5 +core;core_custom_logging;⭐️⭐️⭐️☆;2.5;2.5;"Pablo Marcos Oltra";@pamarcos core;core_drop_files;⭐️⭐️☆☆;1.3;4.2;"Ramon Santamaria";@raysan5 core;core_random_values;⭐️☆☆☆;1.1;1.1;"Ramon Santamaria";@raysan5 core;core_storage_values;⭐️⭐️☆☆;1.4;4.2;"Ramon Santamaria";@raysan5 @@ -39,7 +40,6 @@ core;core_basic_screen_manager;⭐️☆☆☆;4.0;4.0;"Ramon Santamaria";@raysa core;core_custom_frame_control;⭐️⭐️⭐️⭐️;4.0;4.0;"Ramon Santamaria";@raysan5 core;core_smooth_pixelperfect;⭐️⭐️⭐️☆;3.7;4.0;"Giancamillo Alessandroni";@NotManyIdeasDev core;core_random_sequence;⭐️☆☆☆;5.0;5.0;"Dalton Overmyer";@REDl3east -core;core_input_gestures_testbed;⭐️⭐️☆☆;4.6-dev;4.6-dev;"ubkp";@ubkp core;core_automation_events;⭐️⭐️⭐️☆;5.0;5.0;"Ramon Santamaria";@raysan5 core;core_high_dpi;⭐️☆☆☆;5.0;5.0;"Jonathan Marler";@marler8997 shapes;shapes_basic_shapes;⭐️☆☆☆;1.0;4.2;"Ramon Santamaria";@raysan5 From d418704c0b72eba8dc21a15d99985580b9870c1b Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 16:17:23 +0200 Subject: [PATCH 061/190] REXM: Update examples collection --- examples/README.md | 4 +-- .../core_input_gestures_testbed.vcxproj | 2 +- projects/VS2022/raylib.sln | 27 +++++++++++++++++++ tools/rexm/examples_report.md | 25 ++++++++--------- tools/rexm/examples_report_issues.md | 4 +-- 5 files changed, 42 insertions(+), 20 deletions(-) diff --git a/examples/README.md b/examples/README.md index 3be3479a5..1857e5cf8 100644 --- a/examples/README.md +++ b/examples/README.md @@ -31,6 +31,7 @@ Examples using raylib[core](../src/rcore.c) platform functionality like window c | [core_input_gamepad](core/core_input_gamepad.c) | core_input_gamepad | ⭐☆☆☆ | 1.1 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [core_input_multitouch](core/core_input_multitouch.c) | core_input_multitouch | ⭐☆☆☆ | 2.1 | 2.5 | [Berni](https://github.com/Berni8k) | | [core_input_gestures](core/core_input_gestures.c) | core_input_gestures | ⭐⭐☆☆ | 1.4 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_input_gestures_testbed](core/core_input_gestures_testbed.c) | core_input_gestures_testbed | ⭐⭐⭐☆ | 4.6 | 5.6 | [ubkp](https://github.com/ubkp) | | [core_input_virtual_controls](core/core_input_virtual_controls.c) | core_input_virtual_controls | ⭐⭐☆☆ | 5.0 | 5.0 | [oblerion](https://github.com/oblerion) | | [core_2d_camera](core/core_2d_camera.c) | core_2d_camera | ⭐⭐☆☆ | 1.5 | 3.0 | [Ramon Santamaria](https://github.com/raysan5) | | [core_2d_camera_mouse_zoom](core/core_2d_camera_mouse_zoom.c) | core_2d_camera_mouse_zoom | ⭐⭐☆☆ | 4.2 | 4.2 | [Jeffery Myers](https://github.com/JeffM2501) | @@ -43,10 +44,10 @@ Examples using raylib[core](../src/rcore.c) platform functionality like window c | [core_3d_camera_fps](core/core_3d_camera_fps.c) | core_3d_camera_fps | ⭐⭐⭐☆ | 5.5 | 5.5 | [Agnis Aldins](https://github.com/nezvers) | | [core_3d_picking](core/core_3d_picking.c) | core_3d_picking | ⭐⭐☆☆ | 1.3 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | | [core_world_screen](core/core_world_screen.c) | core_world_screen | ⭐⭐☆☆ | 1.3 | 1.4 | [Ramon Santamaria](https://github.com/raysan5) | -| [core_custom_logging](core/core_custom_logging.c) | core_custom_logging | ⭐⭐⭐☆ | 2.5 | 2.5 | [Pablo Marcos Oltra](https://github.com/pamarcos) | | [core_window_flags](core/core_window_flags.c) | core_window_flags | ⭐⭐⭐☆ | 3.5 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | | [core_window_letterbox](core/core_window_letterbox.c) | core_window_letterbox | ⭐⭐☆☆ | 2.5 | 4.0 | [Anata](https://github.com/anatagawa) | | [core_window_should_close](core/core_window_should_close.c) | core_window_should_close | ⭐☆☆☆ | 4.2 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_custom_logging](core/core_custom_logging.c) | core_custom_logging | ⭐⭐⭐☆ | 2.5 | 2.5 | [Pablo Marcos Oltra](https://github.com/pamarcos) | | [core_drop_files](core/core_drop_files.c) | core_drop_files | ⭐⭐☆☆ | 1.3 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [core_random_values](core/core_random_values.c) | core_random_values | ⭐☆☆☆ | 1.1 | 1.1 | [Ramon Santamaria](https://github.com/raysan5) | | [core_storage_values](core/core_storage_values.c) | core_storage_values | ⭐⭐☆☆ | 1.4 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | @@ -56,7 +57,6 @@ Examples using raylib[core](../src/rcore.c) platform functionality like window c | [core_custom_frame_control](core/core_custom_frame_control.c) | core_custom_frame_control | ⭐⭐⭐⭐️ | 4.0 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | | [core_smooth_pixelperfect](core/core_smooth_pixelperfect.c) | core_smooth_pixelperfect | ⭐⭐⭐☆ | 3.7 | 4.0 | [Giancamillo Alessandroni](https://github.com/NotManyIdeasDev) | | [core_random_sequence](core/core_random_sequence.c) | core_random_sequence | ⭐☆☆☆ | 5.0 | 5.0 | [Dalton Overmyer](https://github.com/REDl3east) | -| [core_input_gestures_testbed](core/core_input_gestures_testbed.c) | core_input_gestures_testbed | ⭐⭐☆☆ | 4.6 | 4.6 | [ubkp](https://github.com/ubkp) | | [core_automation_events](core/core_automation_events.c) | core_automation_events | ⭐⭐⭐☆ | 5.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) | | [core_high_dpi](core/core_high_dpi.c) | core_high_dpi | ⭐☆☆☆ | 5.0 | 5.0 | [Jonathan Marler](https://github.com/marler8997) | diff --git a/projects/VS2022/examples/core_input_gestures_testbed.vcxproj b/projects/VS2022/examples/core_input_gestures_testbed.vcxproj index 8eb3a5e99..43e1aefb7 100644 --- a/projects/VS2022/examples/core_input_gestures_testbed.vcxproj +++ b/projects/VS2022/examples/core_input_gestures_testbed.vcxproj @@ -51,7 +51,7 @@ - {0981CA98-E4A5-4DF1-987F-A41D09131EFC} + {6B1A933E-71B8-4C1F-9E79-02D98830E671} Win32Proj core_input_gestures_testbed 10.0 diff --git a/projects/VS2022/raylib.sln b/projects/VS2022/raylib.sln index a8ec5324e..fff559830 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -337,6 +337,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_normal_map", "examp EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_unicode_ranges", "examples\text_unicode_ranges.vcxproj", "{6777EC3C-077C-42FC-B4AD-B799CE55CCE4}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_input_gestures_testbed", "examples\core_input_gestures_testbed.vcxproj", "{6B1A933E-71B8-4C1F-9E79-02D98830E671}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug.DLL|ARM64 = Debug.DLL|ARM64 @@ -4143,6 +4145,30 @@ Global {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release|x64.Build.0 = Release|x64 {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release|x86.ActiveCfg = Release|Win32 {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release|x86.Build.0 = Release|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|ARM64.Build.0 = Debug.DLL|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|ARM64.Build.0 = Debug|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x64.ActiveCfg = Debug|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x64.Build.0 = Debug|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x86.ActiveCfg = Debug|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x86.Build.0 = Debug|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|ARM64.ActiveCfg = Release.DLL|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|ARM64.Build.0 = Release.DLL|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|ARM64.ActiveCfg = Release|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|ARM64.Build.0 = Release|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x64.ActiveCfg = Release|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x64.Build.0 = Release|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x86.ActiveCfg = Release|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -4313,6 +4339,7 @@ Global {6B1A933E-71B8-4C1F-9E79-02D98830E671} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} {6BFF72EA-7362-4A3B-B6E5-9A3655BBBDA3} = {5317807F-61D4-4E0F-B6DC-2D9F12621ED9} {6777EC3C-077C-42FC-B4AD-B799CE55CCE4} = {8D3C83B7-F1E0-4C2E-9E34-EE5F6AB2502A} + {6B1A933E-71B8-4C1F-9E79-02D98830E671} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {E926C768-6307-4423-A1EC-57E95B1FAB29} diff --git a/tools/rexm/examples_report.md b/tools/rexm/examples_report.md index a4bcef40c..ef7c6f9c2 100644 --- a/tools/rexm/examples_report.md +++ b/tools/rexm/examples_report.md @@ -27,6 +27,7 @@ Example elements validated: | core_input_gamepad | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_input_multitouch | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_input_gestures | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| core_input_gestures_testbed | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_input_virtual_controls | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_2d_camera | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_2d_camera_mouse_zoom | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -39,22 +40,19 @@ Example elements validated: | core_3d_camera_fps | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_3d_picking | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_world_screen | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| core_custom_logging | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_window_flags | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_window_letterbox | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_window_should_close | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| core_custom_logging | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_drop_files | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_random_values | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_storage_values | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_vr_simulator | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| core_loading_thread | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_scissor_test | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_basic_screen_manager | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_custom_frame_control | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_smooth_pixelperfect | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_random_sequence | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| core_basic_window_web | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ❌ | ✔ | -| core_input_gestures_web | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | | core_automation_events | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_high_dpi | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_basic_shapes | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -95,15 +93,15 @@ Example elements validated: | textures_bunnymark | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | textures_mouse_painting | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | textures_blend_modes | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| textures_draw_tiled | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| textures_polygon | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| textures_tiled_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| textures_polygon_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | textures_fog_of_war | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | textures_gif_player | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | textures_image_kernel | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | textures_image_channel | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | textures_image_rotate | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | textures_textured_curve | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| text_raylib_fonts | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| text_sprite_fonts | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_font_spritefont | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_font_filters | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_font_loading | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -112,12 +110,12 @@ Example elements validated: | text_input_box | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_writing_anim | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_rectangle_bounds | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| text_unicode | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| text_unicode_emojis | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_unicode_ranges | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| text_draw_3d | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| text_3d_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_codepoints_loading | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_animation | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| models_billboard | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| models_billboard_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_box_collisions | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_cubicmap | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_first_person_maze | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -134,7 +132,7 @@ Example elements validated: | models_yaw_pitch_roll | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_waving_cubes | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_heightmap | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| models_skybox | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| models_skybox_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_draw_cube_texture | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_gpu_skinning | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_bone_socket | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -146,12 +144,12 @@ Example elements validated: | shaders_postprocessing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_palette_switch | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_raymarching | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shaders_texture_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shaders_texture_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_texture_outline | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_texture_waves | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_julia_set | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_eratosthenes | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shaders_fog | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shaders_fog_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_simple_mask | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_hot_reloading | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_mesh_instancing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -182,4 +180,3 @@ Example elements validated: | raylib_opengl_interop | ✔ | ❌ | ❌ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | | embedded_files_loading | ✔ | ❌ | ❌ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | raymath_vector_angle | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | -| text_unicode_ranges | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | diff --git a/tools/rexm/examples_report_issues.md b/tools/rexm/examples_report_issues.md index 9f82a6dfa..599bd74f2 100644 --- a/tools/rexm/examples_report_issues.md +++ b/tools/rexm/examples_report_issues.md @@ -21,13 +21,11 @@ Example elements validated: | **EXAMPLE NAME** | [C] | [CAT]| [INFO]|[PNG]|[WPNG]| [RES]| [MK] |[MKWEB]| [VCX]| [SOL]|[RDME]|[JS] | [WOUT]|[WMETA]| |:---------------------------------|:---:|:----:|:-----:|:---:|:----:|:----:|:----:|:-----:|:----:|:----:|:----:|:---:|:-----:|:-----:| | core_input_virtual_controls | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| core_basic_window_web | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ❌ | ✔ | -| core_input_gestures_web | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | | core_high_dpi | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_digital_clock | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_font_sdf | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_unicode_ranges | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| text_draw_3d | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| text_3d_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_codepoints_loading | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_loading_m3d | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_texture_outline | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | From fb42819eabdb5985c927305297d74ac120b2906c Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 16:56:38 +0200 Subject: [PATCH 062/190] Added project to folder in solution --- .../core_input_gestures_testbed.vcxproj | 2 +- projects/VS2022/raylib.sln | 52 +++++++++---------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/projects/VS2022/examples/core_input_gestures_testbed.vcxproj b/projects/VS2022/examples/core_input_gestures_testbed.vcxproj index 43e1aefb7..5e8385dbe 100644 --- a/projects/VS2022/examples/core_input_gestures_testbed.vcxproj +++ b/projects/VS2022/examples/core_input_gestures_testbed.vcxproj @@ -51,7 +51,7 @@ - {6B1A933E-71B8-4C1F-9E79-02D98830E671} + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4} Win32Proj core_input_gestures_testbed 10.0 diff --git a/projects/VS2022/raylib.sln b/projects/VS2022/raylib.sln index fff559830..85af72256 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -337,7 +337,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_normal_map", "examp EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_unicode_ranges", "examples\text_unicode_ranges.vcxproj", "{6777EC3C-077C-42FC-B4AD-B799CE55CCE4}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_input_gestures_testbed", "examples\core_input_gestures_testbed.vcxproj", "{6B1A933E-71B8-4C1F-9E79-02D98830E671}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_input_gestures_testbed", "examples\core_input_gestures_testbed.vcxproj", "{A61DAD9C-271C-4E95-81AA-DB4CD58564D4}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -4145,30 +4145,30 @@ Global {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release|x64.Build.0 = Release|x64 {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release|x86.ActiveCfg = Release|Win32 {6777EC3C-077C-42FC-B4AD-B799CE55CCE4}.Release|x86.Build.0 = Release|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|ARM64.Build.0 = Debug.DLL|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|ARM64.Build.0 = Debug|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x64.ActiveCfg = Debug|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x64.Build.0 = Debug|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x86.ActiveCfg = Debug|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x86.Build.0 = Debug|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|ARM64.ActiveCfg = Release.DLL|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|ARM64.Build.0 = Release.DLL|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x64.Build.0 = Release.DLL|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x86.Build.0 = Release.DLL|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|ARM64.ActiveCfg = Release|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|ARM64.Build.0 = Release|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x64.ActiveCfg = Release|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x64.Build.0 = Release|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x86.ActiveCfg = Release|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x86.Build.0 = Release|Win32 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Debug.DLL|ARM64.Build.0 = Debug.DLL|ARM64 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Debug|ARM64.Build.0 = Debug|ARM64 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Debug|x64.ActiveCfg = Debug|x64 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Debug|x64.Build.0 = Debug|x64 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Debug|x86.ActiveCfg = Debug|Win32 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Debug|x86.Build.0 = Debug|Win32 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release.DLL|ARM64.ActiveCfg = Release.DLL|ARM64 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release.DLL|ARM64.Build.0 = Release.DLL|ARM64 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release|ARM64.ActiveCfg = Release|ARM64 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release|ARM64.Build.0 = Release|ARM64 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release|x64.ActiveCfg = Release|x64 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release|x64.Build.0 = Release|x64 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release|x86.ActiveCfg = Release|Win32 + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -4339,7 +4339,7 @@ Global {6B1A933E-71B8-4C1F-9E79-02D98830E671} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} {6BFF72EA-7362-4A3B-B6E5-9A3655BBBDA3} = {5317807F-61D4-4E0F-B6DC-2D9F12621ED9} {6777EC3C-077C-42FC-B4AD-B799CE55CCE4} = {8D3C83B7-F1E0-4C2E-9E34-EE5F6AB2502A} - {6B1A933E-71B8-4C1F-9E79-02D98830E671} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} + {A61DAD9C-271C-4E95-81AA-DB4CD58564D4} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {E926C768-6307-4423-A1EC-57E95B1FAB29} From 7646d087512f61868846927ba14db82f7b2e7ac3 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 18:57:00 +0200 Subject: [PATCH 063/190] Updated some examples with inconsistencies --- examples/README.md | 4 +-- examples/audio/audio_music_stream.c | 4 +-- examples/core/core_high_dpi.c | 8 +++-- examples/core/core_input_virtual_controls.c | 34 ++++++------------- examples/examples_list.txt | 4 +-- examples/models/models_loading_m3d.c | 4 +-- examples/shapes/shapes_digital_clock.c | 2 +- .../shaders/glsl120/alpha_discard.fs | 18 ++++++++++ .../text/resources/shaders/glsl120/sdf.fs | 23 +++++++++++++ examples/text/text_unicode_ranges.c | 3 +- tools/rexm/examples_report.md | 4 +-- tools/rexm/examples_report_issues.md | 2 -- 12 files changed, 71 insertions(+), 39 deletions(-) create mode 100644 examples/text/resources/shaders/glsl120/alpha_discard.fs create mode 100644 examples/text/resources/shaders/glsl120/sdf.fs diff --git a/examples/README.md b/examples/README.md index 1857e5cf8..f1d011ccf 100644 --- a/examples/README.md +++ b/examples/README.md @@ -58,7 +58,7 @@ Examples using raylib[core](../src/rcore.c) platform functionality like window c | [core_smooth_pixelperfect](core/core_smooth_pixelperfect.c) | core_smooth_pixelperfect | ⭐⭐⭐☆ | 3.7 | 4.0 | [Giancamillo Alessandroni](https://github.com/NotManyIdeasDev) | | [core_random_sequence](core/core_random_sequence.c) | core_random_sequence | ⭐☆☆☆ | 5.0 | 5.0 | [Dalton Overmyer](https://github.com/REDl3east) | | [core_automation_events](core/core_automation_events.c) | core_automation_events | ⭐⭐⭐☆ | 5.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) | -| [core_high_dpi](core/core_high_dpi.c) | core_high_dpi | ⭐☆☆☆ | 5.0 | 5.0 | [Jonathan Marler](https://github.com/marler8997) | +| [core_high_dpi](core/core_high_dpi.c) | core_high_dpi | ⭐⭐☆☆ | 5.0 | 5.0 | [Jonathan Marler](https://github.com/marler8997) | ### category: shapes [20] @@ -84,7 +84,7 @@ Examples using raylib shapes drawing functionality, provided by raylib [shapes]( | [shapes_top_down_lights](shapes/shapes_top_down_lights.c) | shapes_top_down_lights | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [Jeffery Myers](https://github.com/JeffM2501) | | [shapes_rectangle_advanced](shapes/shapes_rectangle_advanced.c) | shapes_rectangle_advanced | ⭐⭐⭐⭐️ | 5.5 | 5.5 | [Everton Jr.](https://github.com/evertonse) | | [shapes_splines_drawing](shapes/shapes_splines_drawing.c) | shapes_splines_drawing | ⭐⭐⭐☆ | 5.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) | -| [shapes_digital_clock](shapes/shapes_digital_clock.c) | shapes_digital_clock | ⭐⭐☆☆ | 5.5 | 5.5 | [Hamza RAHAL](https://github.com/rhmz-rhl) | +| [shapes_digital_clock](shapes/shapes_digital_clock.c) | shapes_digital_clock | ⭐⭐☆☆ | 5.5 | 5.6 | [Hamza RAHAL](https://github.com/rhmz-rhl) | | [shapes_double_pendulum](shapes/shapes_double_pendulum.c) | shapes_double_pendulum | ⭐⭐☆☆ | 5.5 | 5.5 | [JoeCheong](https://github.com/Joecheong2006) | ### category: textures [26] diff --git a/examples/audio/audio_music_stream.c b/examples/audio/audio_music_stream.c index c0028a033..fe4590463 100644 --- a/examples/audio/audio_music_stream.c +++ b/examples/audio/audio_music_stream.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [audio] example - music playing (streaming) +* raylib [audio] example - music streaming * * 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 playing (streaming)"); + InitWindow(screenWidth, screenHeight, "raylib [audio] example - music streaming"); InitAudioDevice(); // Initialize audio device diff --git a/examples/core/core_high_dpi.c b/examples/core/core_high_dpi.c index 636442401..346e41993 100644 --- a/examples/core/core_high_dpi.c +++ b/examples/core/core_high_dpi.c @@ -2,12 +2,16 @@ * * raylib [core] example - high dpi * -* Example complexity rating: [★☆☆☆] e/4 +* Example complexity rating: [★★☆☆] 2/4 +* +* Example originally created with raylib 5.5-dev, last time updated with raylib 5.6-dev +* +* Example contributed by Jonathan Marler (@marler8997) 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 * -* Copyright (c) 2013-2025 Ramon Santamaria (@raysan5) +* Copyright (c) 2025 Jonathan Marler (@marler8997) * ********************************************************************************************/ diff --git a/examples/core/core_input_virtual_controls.c b/examples/core/core_input_virtual_controls.c index 6a4946655..0f4553eac 100644 --- a/examples/core/core_input_virtual_controls.c +++ b/examples/core/core_input_virtual_controls.c @@ -6,10 +6,8 @@ * * Example originally created with raylib 5.0, last time updated with raylib 5.0 * -* Example create by GreenSnakeLinux (@GreenSnakeLinux), -* lighter by oblerion (@oblerion) and -* reviewed by Ramon Santamaria (@raysan5) and -* improved by danilwhale (@danilwhale) +* Example contributed by GreenSnakeLinux (@GreenSnakeLinux), +* reviewed by Ramon Santamaria (@raysan5), oblerion (@oblerion) and danilwhale (@danilwhale) * * Example licensed under an unmodified zlib/libpng license, which is an OSI-certified, * BSD-like license that allows static linking with closed source software @@ -19,6 +17,7 @@ ********************************************************************************************/ #include "raylib.h" + #include typedef enum { @@ -45,24 +44,21 @@ int main(void) Vector2 padPosition = { 100, 350 }; float buttonRadius = 30; - Vector2 buttonPositions[BUTTON_MAX] = - { + Vector2 buttonPositions[BUTTON_MAX] = { { padPosition.x,padPosition.y - buttonRadius*1.5f }, // Up { padPosition.x - buttonRadius*1.5f, padPosition.y }, // Left { padPosition.x + buttonRadius*1.5f, padPosition.y }, // Right { padPosition.x, padPosition.y + buttonRadius*1.5f } // Down }; - const char *buttonLabels[BUTTON_MAX] = - { + const char *buttonLabels[BUTTON_MAX] = { "Y", // Up "X", // Left "B", // Right "A" // Down }; - Color buttonLabelColors[BUTTON_MAX] = - { + Color buttonLabelColors[BUTTON_MAX] = { YELLOW, // Up BLUE, // Left RED, // Right @@ -83,22 +79,15 @@ int main(void) { // Update //-------------------------------------------------------------------------- - if ((GetTouchPointCount() > 0)) - { - // Use touch position - inputPosition = GetTouchPosition(0); - } - else - { - // Use mouse position - inputPosition = GetMousePosition(); - } + if ((GetTouchPointCount() > 0)) inputPosition = GetTouchPosition(0); // Use touch position + else inputPosition = GetMousePosition(); // Use mouse position // Reset pressed button to none pressedButton = BUTTON_NONE; // Make sure user is pressing left mouse button if they're from desktop - if ((GetTouchPointCount() > 0) || ((GetTouchPointCount() == 0) && IsMouseButtonDown(MOUSE_BUTTON_LEFT))) + if ((GetTouchPointCount() > 0) || + ((GetTouchPointCount() == 0) && IsMouseButtonDown(MOUSE_BUTTON_LEFT))) { // Find nearest D-Pad button to the input position for (int i = 0; i < BUTTON_MAX; i++) @@ -123,8 +112,8 @@ int main(void) case BUTTON_DOWN: playerPosition.y += playerSpeed*GetFrameTime(); break; default: break; }; - //-------------------------------------------------------------------------- + // Draw //-------------------------------------------------------------------------- BeginDrawing(); @@ -157,4 +146,3 @@ int main(void) return 0; } - diff --git a/examples/examples_list.txt b/examples/examples_list.txt index bd4073038..2450f46ac 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -41,7 +41,7 @@ core;core_custom_frame_control;⭐️⭐️⭐️⭐️;4.0;4.0;"Ramon Santamari core;core_smooth_pixelperfect;⭐️⭐️⭐️☆;3.7;4.0;"Giancamillo Alessandroni";@NotManyIdeasDev core;core_random_sequence;⭐️☆☆☆;5.0;5.0;"Dalton Overmyer";@REDl3east core;core_automation_events;⭐️⭐️⭐️☆;5.0;5.0;"Ramon Santamaria";@raysan5 -core;core_high_dpi;⭐️☆☆☆;5.0;5.0;"Jonathan Marler";@marler8997 +core;core_high_dpi;⭐️⭐️☆☆;5.0;5.0;"Jonathan Marler";@marler8997 shapes;shapes_basic_shapes;⭐️☆☆☆;1.0;4.2;"Ramon Santamaria";@raysan5 shapes;shapes_bouncing_ball;⭐️☆☆☆;2.5;2.5;"Ramon Santamaria";@raysan5 shapes;shapes_colors_palette;⭐️⭐️☆☆;1.0;2.5;"Ramon Santamaria";@raysan5 @@ -60,7 +60,7 @@ shapes;shapes_draw_rectangle_rounded;⭐️⭐️⭐️☆;2.5;2.5;"Vlad Adrian" shapes;shapes_top_down_lights;⭐️⭐️⭐️⭐️;4.2;4.2;"Jeffery Myers";@JeffM2501 shapes;shapes_rectangle_advanced;⭐️⭐️⭐️⭐️;5.5;5.5;"Everton Jr.";@evertonse shapes;shapes_splines_drawing;⭐️⭐️⭐️☆;5.0;5.0;"Ramon Santamaria";@raysan5 -shapes;shapes_digital_clock;⭐️⭐️☆☆;5.5;5.5;"Hamza RAHAL";@rhmz-rhl +shapes;shapes_digital_clock;⭐️⭐️☆☆;5.5;5.6;"Hamza RAHAL";@rhmz-rhl shapes;shapes_double_pendulum;⭐️⭐️☆☆;5.5;5.5;"JoeCheong";@Joecheong2006 textures;textures_logo_raylib;⭐️☆☆☆;1.0;1.0;"Ramon Santamaria";@raysan5 textures;textures_srcrec_dstrec;⭐️⭐️⭐️☆;1.3;1.3;"Ramon Santamaria";@raysan5 diff --git a/examples/models/models_loading_m3d.c b/examples/models/models_loading_m3d.c index 9851e3cbf..e8c779de8 100644 --- a/examples/models/models_loading_m3d.c +++ b/examples/models/models_loading_m3d.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [models] example - model loading m3d +* raylib [models] example - models 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 - model loading m3d"); + InitWindow(screenWidth, screenHeight, "raylib [models] example - models loading m3d"); // Define the camera to look into our 3d world Camera camera = { 0 }; diff --git a/examples/shapes/shapes_digital_clock.c b/examples/shapes/shapes_digital_clock.c index 20c43ed7b..82b8ee6bd 100644 --- a/examples/shapes/shapes_digital_clock.c +++ b/examples/shapes/shapes_digital_clock.c @@ -4,7 +4,7 @@ * * Example complexity rating: [★★☆☆] 2/4 * -* Example originally created with raylib 5.5, last time updated with raylib 5.5 +* Example originally created with raylib 5.5, last time updated with raylib 5.6-dev * * Example contributed by Hamza RAHAL (@hmz-rhl) and reviewed by Ramon Santamaria (@raysan5) * diff --git a/examples/text/resources/shaders/glsl120/alpha_discard.fs b/examples/text/resources/shaders/glsl120/alpha_discard.fs new file mode 100644 index 000000000..345d99181 --- /dev/null +++ b/examples/text/resources/shaders/glsl120/alpha_discard.fs @@ -0,0 +1,18 @@ +#version 120 + +// Input vertex attributes (from vertex shader) +varying vec2 fragTexCoord; +varying vec4 fragColor; + +// Input uniform values +uniform sampler2D texture0; +uniform vec4 colDiffuse; + +void main() +{ + vec4 texelColor = texture2D(texture0, fragTexCoord); + + if (texelColor.a == 0.0) discard; + + gl_FragColor = texelColor*fragColor*colDiffuse; +} diff --git a/examples/text/resources/shaders/glsl120/sdf.fs b/examples/text/resources/shaders/glsl120/sdf.fs new file mode 100644 index 000000000..2d99f20ed --- /dev/null +++ b/examples/text/resources/shaders/glsl120/sdf.fs @@ -0,0 +1,23 @@ +#version 120 + +// Input vertex attributes (from vertex shader) +varying vec2 fragTexCoord; +varying vec4 fragColor; + +// Input uniform values +uniform sampler2D texture0; +uniform vec4 colDiffuse; + +// NOTE: Add your custom variables here +const float smoothing = 1.0/16.0; + +void main() +{ + // Texel color fetching from texture sampler + // NOTE: Calculate alpha using signed distance field (SDF) + float distance = texture2D(texture0, fragTexCoord).a; + float alpha = smoothstep(0.5 - smoothing, 0.5 + smoothing, distance); + + // Calculate final fragment color + gl_FragColor = vec4(fragColor.rgb, fragColor.a*alpha); +} diff --git a/examples/text/text_unicode_ranges.c b/examples/text/text_unicode_ranges.c index 4c887f3f8..bf6f21c0a 100644 --- a/examples/text/text_unicode_ranges.c +++ b/examples/text/text_unicode_ranges.c @@ -17,7 +17,7 @@ #include "raylib.h" -#include +#include // Required for: calloc(), free() //-------------------------------------------------------------------------------------- // Module Functions Declaration @@ -199,5 +199,6 @@ static void AddCodepointRange(Font *font, const char *fontPath, int start, int s UnloadFont(*font); *font = LoadFontEx(fontPath, 32, updatedCodepoints, updatedCodepointCount); + RL_FREE(updatedCodepoints); } diff --git a/tools/rexm/examples_report.md b/tools/rexm/examples_report.md index ef7c6f9c2..958eff304 100644 --- a/tools/rexm/examples_report.md +++ b/tools/rexm/examples_report.md @@ -105,14 +105,14 @@ Example elements validated: | text_font_spritefont | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_font_filters | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_font_loading | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| text_font_sdf | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| text_font_sdf | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_format_text | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_input_box | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_writing_anim | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_rectangle_bounds | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_unicode_emojis | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_unicode_ranges | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| text_3d_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| text_3d_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_codepoints_loading | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_animation | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_billboard_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | diff --git a/tools/rexm/examples_report_issues.md b/tools/rexm/examples_report_issues.md index 599bd74f2..a41286953 100644 --- a/tools/rexm/examples_report_issues.md +++ b/tools/rexm/examples_report_issues.md @@ -23,9 +23,7 @@ Example elements validated: | core_input_virtual_controls | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_high_dpi | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_digital_clock | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| text_font_sdf | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_unicode_ranges | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| text_3d_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_codepoints_loading | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_loading_m3d | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_texture_outline | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | From 91bc8d9b10407bc6446ba722707c0c887d7744b9 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 18:57:32 +0200 Subject: [PATCH 064/190] REXM: Remove duplicate entries on examples list on Update process --- tools/rexm/rexm.c | 42 ++++++++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index 756cebe6d..3ef0187d8 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -168,7 +168,7 @@ static void ClearExampleResources(char **resPaths); // Add/remove VS project (.vcxproj) tofrom existing VS solution (.sln) static int AddVSProjectToSolution(const char *projFile, const char *slnFile, const char *category); -//static int RemoveVSProjectFromSolution(const char *projFile, const char *slnFile, const char *category); +static int RemoveVSProjectFromSolution(const char *projFile, const char *slnFile, const char *category); // Generate unique UUID v4 string // Output format: {9A2F48CC-0DA8-47C0-884E-02E37F9BE6C1} @@ -770,11 +770,8 @@ int main(int argc, char *argv[]) FileRemove(TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exName)); // Edit: raylib/projects/VS2022/raylib.sln --> Remove example project - //--------------------------------------------------------------------------- - // TODO: Remove project from solution - //RemoveVSProjectFromSolution(TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exName), - // TextFormat("%s/../projects/VS2022/raylib.sln", exBasePath)); - //--------------------------------------------------------------------------- + RemoveVSProjectFromSolution(TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exName), + TextFormat("%s/../projects/VS2022/raylib.sln", exBasePath), exCategory); // Remove: raylib.com/examples//_example_name.html // Remove: raylib.com/examples//_example_name.data @@ -819,6 +816,22 @@ int main(int argc, char *argv[]) int exListLen = (int)strlen(exList); strcpy(exListUpdated, exList); + // Copy examples list into an update list + // NOTE: Checking and removing duplicate entries + int lineCount = 0; + char **exListLines = LoadTextLines(exList, &lineCount); + int exListUpdatedOffset = 0; + exListUpdatedOffset = sprintf(exListUpdated, "%s\n", exListLines[0]); + + for (int i = 1; i < lineCount; i++) + { + if ((TextFindIndex(exListUpdated, exListLines[i]) == -1) || (exListLines[i][0] == '#')) + exListUpdatedOffset += sprintf(exListUpdated + exListUpdatedOffset, "%s\n", exListLines[i]); + else listUpdated = true; + } + + UnloadTextLines(exListLines); + for (unsigned int i = 0; i < list.count; i++) { if ((strcmp("examples_template", GetFileNameWithoutExt(list.paths[i])) != 0) && // HACK: Skip "examples_template" @@ -859,8 +872,6 @@ int main(int argc, char *argv[]) int exCollectionCount = 0; rlExampleInfo *exCollection = LoadExamplesData(exCollectionFilePath, "ALL", false, &exCollectionCount); - // TODO: Validate: Check duplicate entries in collection list? - // Set status information for all examples, using "status" field in the struct for (int i = 0; i < exCollectionCount; i++) { @@ -2149,6 +2160,16 @@ static int AddVSProjectToSolution(const char *projFile, const char *slnFile, con return result; } +// Remove VS project (.vcxproj) to existing VS solution (.sln) +static int RemoveVSProjectFromSolution(const char *projFile, const char *slnFile, const char *category) +{ + int result = 0; + + // TODO: Remove project from solution file + + return result; +} + // Generate unique UUID v4 string // Output format: {9A2F48CC-0DA8-47C0-884E-02E37F9BE6C1} static const char *GenerateUUIDv4(void) @@ -2188,6 +2209,8 @@ static void UpdateSourceMetadata(const char *exSrcPath, const rlExampleInfo *inf char exDescription[256] = { 0 }; // Example description: example text line #3 char exTitle[64] = { 0 }; // Example title: fileName without extension, replacing underscores by spaces + // TODO: Update source code metadata + // Update example header title (line #3 - ALWAYS) // String: "* raylib [shaders] example - texture drawing" @@ -2305,12 +2328,11 @@ static void UpdateWebMetadata(const char *exHtmlPath, const char *exFilePath) } } - // Get text between two strings // NOTE: Using static string to return result, MAX: 1024 bytes static char *GetTextBetween(const char *text, const char *begin, const char *end) { -#define MAX_TEXT_BETWEEN_SIZE 1024 + #define MAX_TEXT_BETWEEN_SIZE 1024 static char between[MAX_TEXT_BETWEEN_SIZE] = { 0 }; memset(between, 0, MAX_TEXT_BETWEEN_SIZE); From a51cb7fe3039b6d67e2f2d893aaf129a9a6bbe31 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 19:15:37 +0200 Subject: [PATCH 065/190] REXM: Updated some examples inconsistencies --- examples/README.md | 8 +++---- examples/audio/audio_music_stream.c | 2 +- examples/core/core_high_dpi.c | 2 +- examples/core/core_input_virtual_controls.c | 2 +- examples/examples_list.txt | 8 +++---- examples/others/easings_testbed.c | 4 ++-- examples/others/raylib_opengl_interop.c | 2 +- .../shaders/glsl120/point_particle.fs | 14 +++++++++++ .../shaders/glsl120/point_particle.vs | 24 +++++++++++++++++++ examples/others/rlgl_compute_shader.c | 6 ++--- examples/others/rlgl_standalone.c | 4 ++-- examples/shaders/shaders_texture_outline.c | 4 ++-- examples/text/text_codepoints_loading.c | 2 +- examples/text/text_unicode_ranges.c | 2 +- tools/rexm/examples_report.md | 18 +++++++------- tools/rexm/examples_report_issues.md | 10 +------- 16 files changed, 71 insertions(+), 41 deletions(-) create mode 100644 examples/others/resources/shaders/glsl120/point_particle.fs create mode 100644 examples/others/resources/shaders/glsl120/point_particle.vs diff --git a/examples/README.md b/examples/README.md index f1d011ccf..24f27f276 100644 --- a/examples/README.md +++ b/examples/README.md @@ -58,7 +58,7 @@ Examples using raylib[core](../src/rcore.c) platform functionality like window c | [core_smooth_pixelperfect](core/core_smooth_pixelperfect.c) | core_smooth_pixelperfect | ⭐⭐⭐☆ | 3.7 | 4.0 | [Giancamillo Alessandroni](https://github.com/NotManyIdeasDev) | | [core_random_sequence](core/core_random_sequence.c) | core_random_sequence | ⭐☆☆☆ | 5.0 | 5.0 | [Dalton Overmyer](https://github.com/REDl3east) | | [core_automation_events](core/core_automation_events.c) | core_automation_events | ⭐⭐⭐☆ | 5.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) | -| [core_high_dpi](core/core_high_dpi.c) | core_high_dpi | ⭐⭐☆☆ | 5.0 | 5.0 | [Jonathan Marler](https://github.com/marler8997) | +| [core_high_dpi](core/core_high_dpi.c) | core_high_dpi | ⭐⭐☆☆ | 5.0 | 5.5 | [Jonathan Marler](https://github.com/marler8997) | ### category: shapes [20] @@ -84,7 +84,7 @@ Examples using raylib shapes drawing functionality, provided by raylib [shapes]( | [shapes_top_down_lights](shapes/shapes_top_down_lights.c) | shapes_top_down_lights | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [Jeffery Myers](https://github.com/JeffM2501) | | [shapes_rectangle_advanced](shapes/shapes_rectangle_advanced.c) | shapes_rectangle_advanced | ⭐⭐⭐⭐️ | 5.5 | 5.5 | [Everton Jr.](https://github.com/evertonse) | | [shapes_splines_drawing](shapes/shapes_splines_drawing.c) | shapes_splines_drawing | ⭐⭐⭐☆ | 5.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) | -| [shapes_digital_clock](shapes/shapes_digital_clock.c) | shapes_digital_clock | ⭐⭐☆☆ | 5.5 | 5.6 | [Hamza RAHAL](https://github.com/rhmz-rhl) | +| [shapes_digital_clock](shapes/shapes_digital_clock.c) | shapes_digital_clock | ⭐⭐☆☆ | 5.5 | 5.6 | [Hamza RAHAL](https://github.com/hmz-rhl) | | [shapes_double_pendulum](shapes/shapes_double_pendulum.c) | shapes_double_pendulum | ⭐⭐☆☆ | 5.5 | 5.5 | [JoeCheong](https://github.com/Joecheong2006) | ### category: textures [26] @@ -157,7 +157,7 @@ Examples using raylib models functionality, including models loading/generation | [models_loading](models/models_loading.c) | models_loading | ⭐☆☆☆ | 2.0 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [models_loading_gltf](models/models_loading_gltf.c) | models_loading_gltf | ⭐☆☆☆ | 3.7 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [models_loading_vox](models/models_loading_vox.c) | models_loading_vox | ⭐☆☆☆ | 4.0 | 4.0 | [Johann Nadalutti](https://github.com/procfxgen) | -| [models_loading_m3d](models/models_loading_m3d.c) | models_loading_m3d | ⭐⭐☆☆ | 4.5 | 4.5 | [bzt](https://github.com/model3d) | +| [models_loading_m3d](models/models_loading_m3d.c) | models_loading_m3d | ⭐⭐☆☆ | 4.5 | 4.5 | [bzt](https://github.com/bztsrc) | | [models_orthographic_projection](models/models_orthographic_projection.c) | models_orthographic_projection | ⭐☆☆☆ | 2.0 | 3.7 | [Max Danielsson](https://github.com/autious) | | [models_point_rendering](models/models_point_rendering.c) | models_point_rendering | ⭐⭐⭐☆ | 5.0 | 5.0 | [Reese Gallagher](https://github.com/satchelfrost) | | [models_rlgl_solar_system](models/models_rlgl_solar_system.c) | models_rlgl_solar_system | ⭐⭐⭐⭐️ | 2.5 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | @@ -184,7 +184,7 @@ Examples using raylib shaders functionality, including shaders loading, paramete | [shaders_palette_switch](shaders/shaders_palette_switch.c) | shaders_palette_switch | ⭐⭐⭐☆ | 2.5 | 3.7 | [Marco Lizza](https://github.com/MarcoLizza) | | [shaders_raymarching](shaders/shaders_raymarching.c) | shaders_raymarching | ⭐⭐⭐⭐️ | 2.0 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [shaders_texture_rendering](shaders/shaders_texture_rendering.c) | shaders_texture_rendering | ⭐⭐☆☆ | 2.0 | 3.7 | [Michał Ciesielski](https://github.com/ciessielski) | -| [shaders_texture_outline](shaders/shaders_texture_outline.c) | shaders_texture_outline | ⭐⭐⭐☆ | 4.0 | 4.0 | [Samuel Skiff](https://github.com/GoldenThumbs) | +| [shaders_texture_outline](shaders/shaders_texture_outline.c) | shaders_texture_outline | ⭐⭐⭐☆ | 4.0 | 4.0 | [Serenity Skiff](https://github.com/GoldenThumbs) | | [shaders_texture_waves](shaders/shaders_texture_waves.c) | shaders_texture_waves | ⭐⭐☆☆ | 2.5 | 3.7 | [Anata](https://github.com/anatagawa) | | [shaders_julia_set](shaders/shaders_julia_set.c) | shaders_julia_set | ⭐⭐⭐☆ | 2.5 | 4.0 | [Josh Colclough](https://github.com/joshcol9232) | | [shaders_eratosthenes](shaders/shaders_eratosthenes.c) | shaders_eratosthenes | ⭐⭐⭐☆ | 2.5 | 4.0 | [ProfJski](https://github.com/ProfJski) | diff --git a/examples/audio/audio_music_stream.c b/examples/audio/audio_music_stream.c index fe4590463..bfe99c575 100644 --- a/examples/audio/audio_music_stream.c +++ b/examples/audio/audio_music_stream.c @@ -4,7 +4,7 @@ * * Example complexity rating: [★☆☆☆] 1/4 * -* Example originally created with raylib 1.3, last time updated with raylib 4.0 +* Example originally created with raylib 1.3, last time updated with raylib 4.2 * * Example licensed under an unmodified zlib/libpng license, which is an OSI-certified, * BSD-like license that allows static linking with closed source software diff --git a/examples/core/core_high_dpi.c b/examples/core/core_high_dpi.c index 346e41993..312f0c3e2 100644 --- a/examples/core/core_high_dpi.c +++ b/examples/core/core_high_dpi.c @@ -4,7 +4,7 @@ * * Example complexity rating: [★★☆☆] 2/4 * -* Example originally created with raylib 5.5-dev, last time updated with raylib 5.6-dev +* Example originally created with raylib 5.0, last time updated with raylib 5.5 * * Example contributed by Jonathan Marler (@marler8997) and reviewed by Ramon Santamaria (@raysan5) * diff --git a/examples/core/core_input_virtual_controls.c b/examples/core/core_input_virtual_controls.c index 0f4553eac..006629a2a 100644 --- a/examples/core/core_input_virtual_controls.c +++ b/examples/core/core_input_virtual_controls.c @@ -2,7 +2,7 @@ * * raylib [core] example - input virtual controls * -* Example complexity rating: [★★★☆] 3/4 +* Example complexity rating: [★★☆☆] 3/4 * * Example originally created with raylib 5.0, last time updated with raylib 5.0 * diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 2450f46ac..92381a121 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -41,7 +41,7 @@ core;core_custom_frame_control;⭐️⭐️⭐️⭐️;4.0;4.0;"Ramon Santamari core;core_smooth_pixelperfect;⭐️⭐️⭐️☆;3.7;4.0;"Giancamillo Alessandroni";@NotManyIdeasDev core;core_random_sequence;⭐️☆☆☆;5.0;5.0;"Dalton Overmyer";@REDl3east core;core_automation_events;⭐️⭐️⭐️☆;5.0;5.0;"Ramon Santamaria";@raysan5 -core;core_high_dpi;⭐️⭐️☆☆;5.0;5.0;"Jonathan Marler";@marler8997 +core;core_high_dpi;⭐️⭐️☆☆;5.0;5.5;"Jonathan Marler";@marler8997 shapes;shapes_basic_shapes;⭐️☆☆☆;1.0;4.2;"Ramon Santamaria";@raysan5 shapes;shapes_bouncing_ball;⭐️☆☆☆;2.5;2.5;"Ramon Santamaria";@raysan5 shapes;shapes_colors_palette;⭐️⭐️☆☆;1.0;2.5;"Ramon Santamaria";@raysan5 @@ -60,7 +60,7 @@ shapes;shapes_draw_rectangle_rounded;⭐️⭐️⭐️☆;2.5;2.5;"Vlad Adrian" shapes;shapes_top_down_lights;⭐️⭐️⭐️⭐️;4.2;4.2;"Jeffery Myers";@JeffM2501 shapes;shapes_rectangle_advanced;⭐️⭐️⭐️⭐️;5.5;5.5;"Everton Jr.";@evertonse shapes;shapes_splines_drawing;⭐️⭐️⭐️☆;5.0;5.0;"Ramon Santamaria";@raysan5 -shapes;shapes_digital_clock;⭐️⭐️☆☆;5.5;5.6;"Hamza RAHAL";@rhmz-rhl +shapes;shapes_digital_clock;⭐️⭐️☆☆;5.5;5.6;"Hamza RAHAL";@hmz-rhl shapes;shapes_double_pendulum;⭐️⭐️☆☆;5.5;5.5;"JoeCheong";@Joecheong2006 textures;textures_logo_raylib;⭐️☆☆☆;1.0;1.0;"Ramon Santamaria";@raysan5 textures;textures_srcrec_dstrec;⭐️⭐️⭐️☆;1.3;1.3;"Ramon Santamaria";@raysan5 @@ -112,7 +112,7 @@ models;models_mesh_picking;⭐️⭐️⭐️☆;1.7;4.0;"Joel Davis";@joeld42 models;models_loading;⭐️☆☆☆;2.0;4.2;"Ramon Santamaria";@raysan5 models;models_loading_gltf;⭐️☆☆☆;3.7;4.2;"Ramon Santamaria";@raysan5 models;models_loading_vox;⭐️☆☆☆;4.0;4.0;"Johann Nadalutti";@procfxgen -models;models_loading_m3d;⭐️⭐️☆☆;4.5;4.5;"bzt";@model3d +models;models_loading_m3d;⭐️⭐️☆☆;4.5;4.5;"bzt";@bztsrc models;models_orthographic_projection;⭐️☆☆☆;2.0;3.7;"Max Danielsson";@autious models;models_point_rendering;⭐️⭐️⭐️☆;5.0;5.0;"Reese Gallagher";@satchelfrost models;models_rlgl_solar_system;⭐️⭐️⭐️⭐️;2.5;4.0;"Ramon Santamaria";@raysan5 @@ -132,7 +132,7 @@ shaders;shaders_postprocessing;⭐️⭐️⭐️☆;1.3;4.0;"Ramon Santamaria"; shaders;shaders_palette_switch;⭐️⭐️⭐️☆;2.5;3.7;"Marco Lizza";@MarcoLizza shaders;shaders_raymarching;⭐️⭐️⭐️⭐️;2.0;4.2;"Ramon Santamaria";@raysan5 shaders;shaders_texture_rendering;⭐️⭐️☆☆;2.0;3.7;"Michał Ciesielski";@ciessielski -shaders;shaders_texture_outline;⭐️⭐️⭐️☆;4.0;4.0;"Samuel Skiff";@GoldenThumbs +shaders;shaders_texture_outline;⭐️⭐️⭐️☆;4.0;4.0;"Serenity Skiff";@GoldenThumbs shaders;shaders_texture_waves;⭐️⭐️☆☆;2.5;3.7;"Anata";@anatagawa shaders;shaders_julia_set;⭐️⭐️⭐️☆;2.5;4.0;"Josh Colclough";@joshcol9232 shaders;shaders_eratosthenes;⭐️⭐️⭐️☆;2.5;4.0;"ProfJski";@ProfJski diff --git a/examples/others/easings_testbed.c b/examples/others/easings_testbed.c index fb3175711..b3ff8a8df 100644 --- a/examples/others/easings_testbed.c +++ b/examples/others/easings_testbed.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [easings] example - easings testbed +* raylib [others] example - easings testbed * * Example originally created with raylib 2.5, last time updated with raylib 2.5 * @@ -108,7 +108,7 @@ int main(void) const int screenWidth = 800; const int screenHeight = 450; - InitWindow(screenWidth, screenHeight, "raylib [easings] example - easings testbed"); + InitWindow(screenWidth, screenHeight, "raylib [others] example - easings testbed"); Vector2 ballPosition = { 100.0f, 100.0f }; diff --git a/examples/others/raylib_opengl_interop.c b/examples/others/raylib_opengl_interop.c index 02aedc533..540a623ab 100644 --- a/examples/others/raylib_opengl_interop.c +++ b/examples/others/raylib_opengl_interop.c @@ -4,7 +4,7 @@ * * Example complexity rating: [★★★★] 4/4 * -* Example originally created with raylib 3.8, last time updated with raylib 2.5 +* Example originally created with raylib 3.8, last time updated with raylib 4.0 * * Example contributed by Stephan Soller (@arkanis) and reviewed by Ramon Santamaria (@raysan5) * diff --git a/examples/others/resources/shaders/glsl120/point_particle.fs b/examples/others/resources/shaders/glsl120/point_particle.fs new file mode 100644 index 000000000..a3998bc46 --- /dev/null +++ b/examples/others/resources/shaders/glsl120/point_particle.fs @@ -0,0 +1,14 @@ +#version 120 + +// Input uniform values +uniform vec4 color; + +// NOTE: Add your custom variables here + +void main() +{ + // Each point is drawn as a screen space square of gl_PointSize size. gl_PointCoord contains where we are inside of + // it. (0, 0) is the top left, (1, 1) the bottom right corner + // Draw each point as a colored circle with alpha 1.0 in the center and 0.0 at the outer edges + gl_FragColor = vec4(color.rgb, color.a*(1.0 - length(gl_PointCoord.xy - vec2(0.5))*2.0)); +} \ No newline at end of file diff --git a/examples/others/resources/shaders/glsl120/point_particle.vs b/examples/others/resources/shaders/glsl120/point_particle.vs new file mode 100644 index 000000000..374f24a59 --- /dev/null +++ b/examples/others/resources/shaders/glsl120/point_particle.vs @@ -0,0 +1,24 @@ +#version 120 + +// Input vertex attributes +attribute vec3 vertexPosition; + +// Input uniform values +uniform mat4 mvp; +uniform float currentTime; + +// NOTE: Add your custom variables here + +void main() +{ + // Unpack data from vertexPosition + vec2 pos = vertexPosition.xy; + float period = vertexPosition.z; + + // Calculate final vertex position (jiggle it around a bit horizontally) + pos += vec2(100.0, 0.0)*sin(period*currentTime); + gl_Position = mvp*vec4(pos.x, pos.y, 0.0, 1.0); + + // Calculate the screen space size of this particle (also vary it over time) + gl_PointSize = 10.0 - 5.0*abs(sin(period*currentTime)); +} \ No newline at end of file diff --git a/examples/others/rlgl_compute_shader.c b/examples/others/rlgl_compute_shader.c index 2b17b5eaa..e62f5abc0 100644 --- a/examples/others/rlgl_compute_shader.c +++ b/examples/others/rlgl_compute_shader.c @@ -1,13 +1,13 @@ /******************************************************************************************* * -* raylib [rlgl] example - compute shader - game of life +* raylib [others] example - compute shader - game of life * * NOTE: This example requires raylib OpenGL 4.3 versions for compute shaders support, * shaders used in this example are #version 430 (OpenGL 4.3) * * Example complexity rating: [★★★★] 4/4 * -* Example originally created with raylib 4.0, last time updated with raylib 2.5 +* Example originally created with raylib 4.0, last time updated with raylib 4.0 * * Example contributed by Teddy Astie (@tsnake41) and reviewed by Ramon Santamaria (@raysan5) * @@ -57,7 +57,7 @@ int main(void) const int screenWidth = GOL_WIDTH; const int screenHeight = GOL_WIDTH; - InitWindow(screenWidth, screenHeight, "raylib [rlgl] example - compute shader - game of life"); + InitWindow(screenWidth, screenHeight, "raylib [others] example - compute shader - game of life"); const Vector2 resolution = { screenWidth, screenHeight }; unsigned int brushSize = 8; diff --git a/examples/others/rlgl_standalone.c b/examples/others/rlgl_standalone.c index 288f06419..a022863fe 100644 --- a/examples/others/rlgl_standalone.c +++ b/examples/others/rlgl_standalone.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [rlgl] example - Using rlgl module as standalone module +* raylib [others] example - Using rlgl module as standalone module * * 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...) @@ -147,7 +147,7 @@ int main(void) glfwWindowHint( GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE ); #endif - GLFWwindow *window = glfwCreateWindow(screenWidth, screenHeight, "rlgl standalone", NULL, NULL); + GLFWwindow *window = glfwCreateWindow(screenWidth, screenHeight, "raylib [others] example - rlgl standalone", NULL, NULL); if (!window) { diff --git a/examples/shaders/shaders_texture_outline.c b/examples/shaders/shaders_texture_outline.c index d7a3a1a07..7d3161195 100644 --- a/examples/shaders/shaders_texture_outline.c +++ b/examples/shaders/shaders_texture_outline.c @@ -9,12 +9,12 @@ * * Example originally created with raylib 4.0, last time updated with raylib 4.0 * -* Example contributed by Samuel Skiff (@GoldenThumbs) and reviewed by Ramon Santamaria (@raysan5) +* Example contributed by Serenity Skiff (@GoldenThumbs) 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 * -* Copyright (c) 2021-2025 Samuel SKiff (@GoldenThumbs) and Ramon Santamaria (@raysan5) +* Copyright (c) 2021-2025 Serenity Skiff (@GoldenThumbs) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/text/text_codepoints_loading.c b/examples/text/text_codepoints_loading.c index 7f8b1ef3a..1cd82d60e 100644 --- a/examples/text/text_codepoints_loading.c +++ b/examples/text/text_codepoints_loading.c @@ -4,7 +4,7 @@ * * Example complexity rating: [★★★☆] 3/4 * -* Example originally created with raylib 4.2, last time updated with raylib 2.5 +* Example originally created with raylib 4.2, last time updated with raylib 4.2 * * Example licensed under an unmodified zlib/libpng license, which is an OSI-certified, * BSD-like license that allows static linking with closed source software diff --git a/examples/text/text_unicode_ranges.c b/examples/text/text_unicode_ranges.c index bf6f21c0a..90853942b 100644 --- a/examples/text/text_unicode_ranges.c +++ b/examples/text/text_unicode_ranges.c @@ -4,7 +4,7 @@ * * Example complexity rating: [★★★★] 4/4 * -* Example originally created with raylib 2.5, last time updated with raylib 4.0 +* Example originally created with raylib 5.5, last time updated with raylib 5.6 * * Example contributed by Vlad Adrian (@demizdor) and reviewed by Ramon Santamaria (@raysan5) * diff --git a/tools/rexm/examples_report.md b/tools/rexm/examples_report.md index 958eff304..9537449a5 100644 --- a/tools/rexm/examples_report.md +++ b/tools/rexm/examples_report.md @@ -28,7 +28,7 @@ Example elements validated: | core_input_multitouch | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_input_gestures | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_input_gestures_testbed | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| core_input_virtual_controls | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| core_input_virtual_controls | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_2d_camera | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_2d_camera_mouse_zoom | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_2d_camera_platformer | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -54,7 +54,7 @@ Example elements validated: | core_smooth_pixelperfect | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_random_sequence | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_automation_events | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| core_high_dpi | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| core_high_dpi | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_basic_shapes | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_bouncing_ball | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_colors_palette | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -73,7 +73,7 @@ Example elements validated: | shapes_top_down_lights | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_rectangle_advanced | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_splines_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shapes_digital_clock | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shapes_digital_clock | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_double_pendulum | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | textures_logo_raylib | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | textures_srcrec_dstrec | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -111,9 +111,9 @@ Example elements validated: | text_writing_anim | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_rectangle_bounds | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_unicode_emojis | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| text_unicode_ranges | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| text_unicode_ranges | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_3d_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| text_codepoints_loading | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| text_codepoints_loading | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_animation | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_billboard_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_box_collisions | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -125,7 +125,7 @@ Example elements validated: | models_loading | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_loading_gltf | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_loading_vox | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| models_loading_m3d | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| models_loading_m3d | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_orthographic_projection | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_point_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_rlgl_solar_system | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -145,7 +145,7 @@ Example elements validated: | shaders_palette_switch | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_raymarching | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_texture_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shaders_texture_outline | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shaders_texture_outline | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_texture_waves | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_julia_set | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_eratosthenes | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -167,7 +167,7 @@ Example elements validated: | shaders_rounded_rectangle | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_view_depth | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | audio_module_playing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| audio_music_stream | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| audio_music_stream | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | audio_raw_stream | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | audio_sound_loading | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | audio_mixed_processor | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -177,6 +177,6 @@ Example elements validated: | rlgl_standalone | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | rlgl_compute_shader | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | easings_testbed | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| raylib_opengl_interop | ✔ | ❌ | ❌ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | +| raylib_opengl_interop | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | | embedded_files_loading | ✔ | ❌ | ❌ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | raymath_vector_angle | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | diff --git a/tools/rexm/examples_report_issues.md b/tools/rexm/examples_report_issues.md index a41286953..c9d6a2eb6 100644 --- a/tools/rexm/examples_report_issues.md +++ b/tools/rexm/examples_report_issues.md @@ -20,17 +20,9 @@ Example elements validated: ``` | **EXAMPLE NAME** | [C] | [CAT]| [INFO]|[PNG]|[WPNG]| [RES]| [MK] |[MKWEB]| [VCX]| [SOL]|[RDME]|[JS] | [WOUT]|[WMETA]| |:---------------------------------|:---:|:----:|:-----:|:---:|:----:|:----:|:----:|:-----:|:----:|:----:|:----:|:---:|:-----:|:-----:| -| core_input_virtual_controls | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| core_high_dpi | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shapes_digital_clock | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| text_unicode_ranges | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| text_codepoints_loading | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| models_loading_m3d | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shaders_texture_outline | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| audio_music_stream | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | rlgl_standalone | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | rlgl_compute_shader | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | easings_testbed | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| raylib_opengl_interop | ✔ | ❌ | ❌ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | +| raylib_opengl_interop | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | | embedded_files_loading | ✔ | ❌ | ❌ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | raymath_vector_angle | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | From 8116ebd9bba2ff0e506e9b5edf13e618a1e4ce2b Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 19:15:47 +0200 Subject: [PATCH 066/190] Update rexm.c --- tools/rexm/rexm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index 3ef0187d8..bb3f8a9fe 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -995,7 +995,10 @@ int main(int argc, char *argv[]) (strcmp(exInfo->authorGitHub, exInfoHeader->authorGitHub) != 0) || (exInfo->stars != exInfoHeader->stars) || (exInfo->verCreated != exInfoHeader->verCreated) || - (exInfo->verUpdated != exInfoHeader->verUpdated)) exInfo->status |= VALID_INCONSISTENT_INFO; + (exInfo->verUpdated != exInfoHeader->verUpdated)) + { + exInfo->status |= VALID_INCONSISTENT_INFO; + } UnloadExampleInfo(exInfoHeader); } From 0203a47bf983984589a8d95c4f75d41bee90d596 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 23:25:42 +0200 Subject: [PATCH 067/190] REDESIGNED: `LoadTextLines()`/`UnloadTextLines()` --- src/raylib.h | 2 +- src/rtext.c | 40 +++++++++++++++++++++------------------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 41bc1926e..5635546e0 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1507,7 +1507,7 @@ RLAPI const char *CodepointToUTF8(int codepoint, int *utf8Size); // WARNING 1: Most of these functions use internal static buffers, it's recommended to store returned data on user-side for re-use // WARNING 2: Some strings allocate memory internally for the returned strings, those strings must be free by user using MemFree() RLAPI char **LoadTextLines(const char *text, int *count); // Load text as separate lines ('\n') -RLAPI void UnloadTextLines(char **text); // Unload text lines +RLAPI void UnloadTextLines(char **text, int lineCount); // Unload text lines RLAPI int TextCopy(char *dst, const char *src); // Copy one string to another, returns bytes copied RLAPI bool TextIsEqual(const char *text1, const char *text2); // Check if two text string are equal RLAPI unsigned int TextLength(const char *text); // Get text length, checks for '\0' ending diff --git a/src/rtext.c b/src/rtext.c index c6078d7cb..f34606bc1 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1448,36 +1448,38 @@ Rectangle GetGlyphAtlasRec(Font font, int codepoint) // Text strings management functions //---------------------------------------------------------------------------------- // Load text as separate lines ('\n') -// WARNING: There is a limit set for number of lines and line-size +// NOTE: Returned lines end with null terminator '\0' char **LoadTextLines(const char *text, int *count) { - #define MAX_TEXTLINES_COUNT 512 - #define MAX_TEXTLINES_LINE_LEN 512 + int lineCount = 1; + int textSize = strlen(text); - char **lines = (char **)RL_CALLOC(MAX_TEXTLINES_COUNT, sizeof(char *)); - for (int i = 0; i < MAX_TEXTLINES_COUNT; i++) lines[i] = (char *)RL_CALLOC(MAX_TEXTLINES_LINE_LEN, 1); - int textSize = (int)strlen(text); - int k = 0; - - for (int i = 0, len = 0; (i < textSize) && (k < MAX_TEXTLINES_COUNT); i++) + // Text pass to get required line count + for (int i = 0; i < textSize; i++) { - if ((text[i] == '\n') || (len == (MAX_TEXTLINES_LINE_LEN - 1))) - { - strncpy(lines[k], &text[i - len], len); - len = 0; - k++; - } - else len++; + if (text[i] == '\n') lineCount++; } - *count += k; + char **lines = (char **)RL_CALLOC(lineCount, sizeof(char *)); + for (int i = 0, l = 0, lineLen = 0; i < lineCount; i++, lineLen++) + { + if (text[i] == '\n') + { + lines[l] = (char *)RL_CALLOC(lineLen + 1, 1); + strncpy(lines[l], &text[i - lineLen], lineLen); + lineLen = 0; + l++; + } + } + + *count = lineCount; return lines; } // Unload text lines -void UnloadTextLines(char **lines) +void UnloadTextLines(char **lines, int lineCount) { - for (int i = 0; i < MAX_TEXTLINES_COUNT; i++) RL_FREE(lines[i]); + for (int i = 0; i < lineCount; i++) RL_FREE(lines[i]); RL_FREE(lines); } From 55a1c58b64c41618bde9ab985dc576cb0529508c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 4 Sep 2025 21:26:00 +0000 Subject: [PATCH 068/190] Update raylib_api.* by CI --- tools/parser/output/raylib_api.json | 4 ++++ tools/parser/output/raylib_api.lua | 3 ++- tools/parser/output/raylib_api.txt | 3 ++- tools/parser/output/raylib_api.xml | 3 ++- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/tools/parser/output/raylib_api.json b/tools/parser/output/raylib_api.json index 4ce190714..58ba0be01 100644 --- a/tools/parser/output/raylib_api.json +++ b/tools/parser/output/raylib_api.json @@ -9632,6 +9632,10 @@ { "type": "char **", "name": "text" + }, + { + "type": "int", + "name": "lineCount" } ] }, diff --git a/tools/parser/output/raylib_api.lua b/tools/parser/output/raylib_api.lua index e52fda62d..2a385b237 100644 --- a/tools/parser/output/raylib_api.lua +++ b/tools/parser/output/raylib_api.lua @@ -6860,7 +6860,8 @@ return { description = "Unload text lines", returnType = "void", params = { - {type = "char **", name = "text"} + {type = "char **", name = "text"}, + {type = "int", name = "lineCount"} } }, { diff --git a/tools/parser/output/raylib_api.txt b/tools/parser/output/raylib_api.txt index b164b7e88..9ff8a7735 100644 --- a/tools/parser/output/raylib_api.txt +++ b/tools/parser/output/raylib_api.txt @@ -3681,11 +3681,12 @@ Function 425: LoadTextLines() (2 input parameters) Description: Load text as separate lines ('\n') Param[1]: text (type: const char *) Param[2]: count (type: int *) -Function 426: UnloadTextLines() (1 input parameters) +Function 426: UnloadTextLines() (2 input parameters) Name: UnloadTextLines Return type: void Description: Unload text lines Param[1]: text (type: char **) + Param[2]: lineCount (type: int) Function 427: TextCopy() (2 input parameters) Name: TextCopy Return type: int diff --git a/tools/parser/output/raylib_api.xml b/tools/parser/output/raylib_api.xml index 43835334d..063119ab5 100644 --- a/tools/parser/output/raylib_api.xml +++ b/tools/parser/output/raylib_api.xml @@ -2440,8 +2440,9 @@ - + + From 51aa8776bbc09ce82cbbee5fae4180c023149f33 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 23:53:26 +0200 Subject: [PATCH 069/190] Update rtext.c --- src/rtext.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/rtext.c b/src/rtext.c index f34606bc1..c1056d22e 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1461,12 +1461,12 @@ char **LoadTextLines(const char *text, int *count) } char **lines = (char **)RL_CALLOC(lineCount, sizeof(char *)); - for (int i = 0, l = 0, lineLen = 0; i < lineCount; i++, lineLen++) + for (int i = 0, l = 0, lineLen = 0; i <= textSize; i++, lineLen++) { - if (text[i] == '\n') + if ((text[i] == '\n') || (text[i] == '\0')) { lines[l] = (char *)RL_CALLOC(lineLen + 1, 1); - strncpy(lines[l], &text[i - lineLen], lineLen); + strncpy(lines[l], &text[i - lineLen + 1], lineLen - 1); lineLen = 0; l++; } From 43305c4865ff80784228cbfaa7867b26a29c188e Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 23:54:57 +0200 Subject: [PATCH 070/190] REXM: ADDED: `RemoveVSProjectFromSolution()` --- tools/rexm/rexm.c | 73 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 56 insertions(+), 17 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index bb3f8a9fe..e3cb7f646 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -167,8 +167,8 @@ static char **ScanExampleResources(const char *filePath, int *resPathCount); static void ClearExampleResources(char **resPaths); // Add/remove VS project (.vcxproj) tofrom existing VS solution (.sln) -static int AddVSProjectToSolution(const char *projFile, const char *slnFile, const char *category); -static int RemoveVSProjectFromSolution(const char *projFile, const char *slnFile, const char *category); +static int AddVSProjectToSolution(const char *slnFile, const char *projFile, const char *category); +static int RemoveVSProjectFromSolution(const char *slnFile, const char *exName); // Generate unique UUID v4 string // Output format: {9A2F48CC-0DA8-47C0-884E-02E37F9BE6C1} @@ -563,8 +563,8 @@ int main(int argc, char *argv[]) // Edit: raylib/projects/VS2022/raylib.sln --> Add new example project // WARNING: This function uses TextFormat() extensively inside, // we must store provided file paths because pointers will be overwriten - AddVSProjectToSolution(TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exName), - exVSProjectSolutionFile, exCategory); + AddVSProjectToSolution(exVSProjectSolutionFile, + TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exName), exCategory); //------------------------------------------------------------------------------------------------ // Recompile example (on raylib side) @@ -639,7 +639,7 @@ int main(int argc, char *argv[]) FileTextReplace(exCollectionFilePath, TextFormat("%s;%s", exCategory, exName), TextFormat("%s;%s", exRecategory, exRename)); - // TODO: Move example resources from /resources to /resources + // TODO: Move example resources from /resources to /resources // WARNING: Resources can be shared with other examples in the category // Edit: Rename example code file (copy and remove) @@ -684,7 +684,8 @@ int main(int argc, char *argv[]) FileCopy(TextFormat("%s/%s/%s.js", exBasePath, exRecategory, exRename), TextFormat("%s/%s/%s.js", exWebPath, exRecategory, exRename)); - // Create commit with changes (local) + /* + // Create GitHub commit with changes (local) putenv("PATH=%PATH%;C:\\Program Files\\Git\\bin"); ChangeDirectory("C:\\GitHub\\raylib"); system("git --version"); @@ -696,9 +697,9 @@ int main(int argc, char *argv[]) system("git add -A"); result = system(TextFormat("git commit -m \"REXM: RENAME: example: `%s` --> `%s`\"", exName, exRename)); // Commit changes (only tracked files) 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"); + */ } break; case OP_REMOVE: // Remove @@ -770,8 +771,7 @@ int main(int argc, char *argv[]) FileRemove(TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exName)); // Edit: raylib/projects/VS2022/raylib.sln --> Remove example project - RemoveVSProjectFromSolution(TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exName), - TextFormat("%s/../projects/VS2022/raylib.sln", exBasePath), exCategory); + RemoveVSProjectFromSolution(TextFormat("%s/../projects/VS2022/raylib.sln", exBasePath), exName); // Remove: raylib.com/examples//_example_name.html // Remove: raylib.com/examples//_example_name.data @@ -830,7 +830,7 @@ int main(int argc, char *argv[]) else listUpdated = true; } - UnloadTextLines(exListLines); + UnloadTextLines(exListLines, lineCount); for (unsigned int i = 0; i < list.count; i++) { @@ -1047,8 +1047,8 @@ int main(int argc, char *argv[]) // Add project (.vcxproj) to raylib solution (.sln) if (exInfo->status & VALID_NOT_IN_VCXSOL) { - AddVSProjectToSolution(TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exInfo->name), - exVSProjectSolutionFile, exInfo->category); + AddVSProjectToSolution(exVSProjectSolutionFile, + TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exInfo->name), exInfo->category); exInfo->status &= ~VALID_NOT_IN_VCXSOL; } @@ -1691,7 +1691,7 @@ static rlExampleInfo *LoadExamplesData(const char *fileName, const char *categor } } - UnloadTextLines(lines); + UnloadTextLines(lines, lineCount); UnloadFileText(text); } @@ -2049,7 +2049,7 @@ static void ClearExampleResources(char **resPaths) // - "dotnet" tool (C# projects only) // - "devenv" tool (no adding support, only building) // It must be done manually editing the .sln file -static int AddVSProjectToSolution(const char *projFile, const char *slnFile, const char *category) +static int AddVSProjectToSolution(const char *slnFile, const char *projFile, const char *category) { int result = 0; @@ -2164,11 +2164,50 @@ static int AddVSProjectToSolution(const char *projFile, const char *slnFile, con } // Remove VS project (.vcxproj) to existing VS solution (.sln) -static int RemoveVSProjectFromSolution(const char *projFile, const char *slnFile, const char *category) +static int RemoveVSProjectFromSolution(const char *slnFile, const char *exName) { int result = 0; - // TODO: Remove project from solution file + // Lines to be removed from solution file: + //Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_random_values", "examples\core_random_values.vcxproj", "{B332DCA8-3599-4A99-917A-82261BDC27AC}" + //EndProject + // All lines starting with: + //"\t\t{B332DCA8-3599-4A99-917A-82261BDC27AC}." + + char *slnText = LoadFileText(slnFile); + char *slnTextUpdated = (char *)RL_CALLOC(REXM_MAX_BUFFER_SIZE, 1); + + int lineCount = 0; + char **lines = LoadTextLines(slnText, &lineCount); // WARNING: Max 512 lines, we need +4000! + + char uuid[38] = { 0 }; + strcpy(uuid, "ABCDEF00-0123-4567-89AB-000000000012"); // Temp value + int textUpdatedOfsset = 0; + int exNameLen = strlen(exName); + + for (int i = 0, index = 0; i < lineCount; i++) + { + index = TextFindIndex(lines[i], exName); + if (index > 0) + { + // Found line with project --> get UUID + strncpy(uuid, lines[i] + index + exNameLen*2 + 26, 36); + + // Skip copying line and also next one + i++; + } + else + { + if (TextFindIndex(lines[i], uuid) == -1) + textUpdatedOfsset += sprintf(slnTextUpdated + textUpdatedOfsset, "%s\n", lines[i]); + } + } + + SaveFileText(slnFile, slnTextUpdated); + + UnloadTextLines(lines, lineCount); + UnloadFileText(slnText); + RL_FREE(slnTextUpdated); return result; } @@ -2303,7 +2342,7 @@ static void UpdateWebMetadata(const char *exHtmlPath, const char *exFilePath) char **lines = LoadTextLines(exText, &lineCount); int lineLength = (int)strlen(lines[2]); strncpy(exDescription, lines[2] + 4, lineLength - 4); - UnloadTextLines(lines); + UnloadTextLines(lines, lineCount); UnloadFileText(exText); // Update example.html required text From 389800fd34ce8af970ff284c0ba1242bcc658a5c Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Sep 2025 23:55:23 +0200 Subject: [PATCH 071/190] REXM: REVIEWED: `ScanExampleResources()` --- tools/rexm/rexm.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index e3cb7f646..d6c29934f 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -1975,7 +1975,8 @@ 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", ".qoa", ".obj", ".iqm", ".glb", ".m3d", ".vox", ".vs", ".fs", ".txt" }; const int extCount = sizeof(exts)/sizeof(char *); char *ptr = code; @@ -1988,7 +1989,8 @@ 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 dirty solution, the good one would be getting the data loading function names... - if (TextFindIndex(ptr - 40, "ExportImage") == -1) + if ((TextFindIndex(ptr - 40, "ExportImage") == -1) && + (TextFindIndex(ptr - 10, "TraceLog") == -1)) // Avoid TraceLog() strings processing { int len = (int)(end - start); if ((len > 0) && (len < REXM_MAX_RESOURCE_PATH_LEN)) @@ -1997,14 +1999,11 @@ static char **ScanExampleResources(const char *filePath, int *resPathCount) strncpy(buffer, start, len); buffer[len] = '\0'; - // TODO: Make sure buffer is a path (and not a TraceLog() string) - // Check for known extensions for (int i = 0; i < extCount; i++) { - // TODO: WARNING: IsFileExtension() expects a NULL terminated fileName, - // but in this case buffer can contain any kind of string, - // including not paths strings, for example TraceLog() string + // NOTE: IsFileExtension() expects a NULL terminated fileName string, + // it looks for the last '.' and checks "extension" after that if (IsFileExtension(buffer, exts[i])) { // Avoid duplicates From 8e52aee8531f1069f1774856e2046fe514ac2589 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 5 Sep 2025 00:13:32 +0200 Subject: [PATCH 072/190] Update rtext.c --- src/rtext.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/rtext.c b/src/rtext.c index c1056d22e..60c2c1f18 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1461,15 +1461,16 @@ char **LoadTextLines(const char *text, int *count) } char **lines = (char **)RL_CALLOC(lineCount, sizeof(char *)); - for (int i = 0, l = 0, lineLen = 0; i <= textSize; i++, lineLen++) + for (int i = 0, l = 0, lineLen = 0; i <= textSize; i++) { if ((text[i] == '\n') || (text[i] == '\0')) { lines[l] = (char *)RL_CALLOC(lineLen + 1, 1); - strncpy(lines[l], &text[i - lineLen + 1], lineLen - 1); + strncpy(lines[l], &text[i - lineLen], lineLen); lineLen = 0; l++; } + else lineLen++; } *count = lineCount; From 47bdfb91a26864187d714e05246076a7cc5d7433 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 5 Sep 2025 10:57:25 +0200 Subject: [PATCH 073/190] Update README.md --- examples/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/README.md b/examples/README.md index 24f27f276..46e995df0 100644 --- a/examples/README.md +++ b/examples/README.md @@ -6,6 +6,7 @@ The examples assume you have already built the `raylib` library in `../src`. - `make` builds all examples - `make [module]` builds all examples for a particular module (e.g `make core`) +- `make [module]/[name]` builds one examples for a particular module (e.g `make core/core_basic_window`) ### With Zig From b5e25916fc2219eec088dfa948474cca019096eb Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 5 Sep 2025 11:25:24 +0200 Subject: [PATCH 074/190] Added creation-review years to examples --- examples/shaders/shaders_view_depth.c | 2 +- examples/shapes/shapes_digital_clock.c | 2 +- examples/shapes/shapes_double_pendulum.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/shaders/shaders_view_depth.c b/examples/shaders/shaders_view_depth.c index f4eecf7e2..a11f52dc5 100644 --- a/examples/shaders/shaders_view_depth.c +++ b/examples/shaders/shaders_view_depth.c @@ -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 Luís Almeida (@luis605) +* Copyright (c) 2025-2025 Luís Almeida (@luis605) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_digital_clock.c b/examples/shapes/shapes_digital_clock.c index 82b8ee6bd..c8a573cd6 100644 --- a/examples/shapes/shapes_digital_clock.c +++ b/examples/shapes/shapes_digital_clock.c @@ -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 Hamza RAHAL (@hmz-rhl) +* Copyright (c) 2025-2025 Hamza RAHAL (@hmz-rhl) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_double_pendulum.c b/examples/shapes/shapes_double_pendulum.c index 200f9ad7e..1bc2ee4a2 100644 --- a/examples/shapes/shapes_double_pendulum.c +++ b/examples/shapes/shapes_double_pendulum.c @@ -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 JoeCheong (@Joecheong2006) +* Copyright (c) 2025-2025 JoeCheong (@Joecheong2006) * ********************************************************************************************/ From 424cdebda5c0476f569e3622b5097eaafc6e97e4 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 5 Sep 2025 14:04:28 +0200 Subject: [PATCH 075/190] Updated examples_list.txt to include example year created/reviewed Reviewed star used, aligned with empty star and examples header --- examples/examples_list.txt | 322 ++++++++++++++++++------------------- 1 file changed, 161 insertions(+), 161 deletions(-) diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 92381a121..c3d3d3be2 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -1,169 +1,169 @@ # # raylib examples list used to generate/update collection -# examples must be provided as: ;;;;;""; +# examples must be provided as: ;;;;;;;""; # # This list is used as the main reference by [rexm] tool for examples collection validation and management # New examples must be added to this list and any possible rename must be made on this list first # # WARNING: List is not ordered by example name but by the display order on web # -core;core_basic_window;⭐️☆☆☆;1.0;1.0;"Ramon Santamaria";@raysan5 -core;core_input_keys;⭐️☆☆☆;1.0;1.0;"Ramon Santamaria";@raysan5 -core;core_input_mouse;⭐️☆☆☆;1.0;5.5;"Ramon Santamaria";@raysan5 -core;core_input_mouse_wheel;⭐️☆☆☆;1.1;1.3;"Ramon Santamaria";@raysan5 -core;core_input_gamepad;⭐️☆☆☆;1.1;4.2;"Ramon Santamaria";@raysan5 -core;core_input_multitouch;⭐️☆☆☆;2.1;2.5;"Berni";@Berni8k -core;core_input_gestures;⭐️⭐️☆☆;1.4;4.2;"Ramon Santamaria";@raysan5 -core;core_input_gestures_testbed;⭐️⭐️⭐️☆;4.6-dev;5.6-dev;"ubkp";@ubkp -core;core_input_virtual_controls;⭐️⭐️☆☆;5.0;5.0;"oblerion";@oblerion -core;core_2d_camera;⭐️⭐️☆☆;1.5;3.0;"Ramon Santamaria";@raysan5 -core;core_2d_camera_mouse_zoom;⭐️⭐️☆☆;4.2;4.2;"Jeffery Myers";@JeffM2501 -core;core_2d_camera_platformer;⭐️⭐️⭐️☆;2.5;3.0;"arvyy";@arvyy -core;core_2d_camera_split_screen;⭐️⭐️⭐️⭐️;4.5;4.5;"Gabriel dos Santos Sanches";@gabrielssanches -core;core_3d_camera_mode;⭐️☆☆☆;1.0;1.0;"Ramon Santamaria";@raysan5 -core;core_3d_camera_free;⭐️☆☆☆;1.3;1.3;"Ramon Santamaria";@raysan5 -core;core_3d_camera_first_person;⭐️⭐️☆☆;1.3;1.3;"Ramon Santamaria";@raysan5 -core;core_3d_camera_split_screen;⭐️⭐️⭐️☆;3.7;4.0;"Jeffery Myers";@JeffM2501 -core;core_3d_camera_fps;⭐️⭐️⭐️☆;5.5;5.5;"Agnis Aldins";@nezvers -core;core_3d_picking;⭐️⭐️☆☆;1.3;4.0;"Ramon Santamaria";@raysan5 -core;core_world_screen;⭐️⭐️☆☆;1.3;1.4;"Ramon Santamaria";@raysan5 -core;core_window_flags;⭐️⭐️⭐️☆;3.5;3.5;"Ramon Santamaria";@raysan5 -core;core_window_letterbox;⭐️⭐️☆☆;2.5;4.0;"Anata";@anatagawa -core;core_window_should_close;⭐️☆☆☆;4.2;4.2;"Ramon Santamaria";@raysan5 -core;core_custom_logging;⭐️⭐️⭐️☆;2.5;2.5;"Pablo Marcos Oltra";@pamarcos -core;core_drop_files;⭐️⭐️☆☆;1.3;4.2;"Ramon Santamaria";@raysan5 -core;core_random_values;⭐️☆☆☆;1.1;1.1;"Ramon Santamaria";@raysan5 -core;core_storage_values;⭐️⭐️☆☆;1.4;4.2;"Ramon Santamaria";@raysan5 -core;core_vr_simulator;⭐️⭐️⭐️☆;2.5;4.0;"Ramon Santamaria";@raysan5 -core;core_scissor_test;⭐️☆☆☆;2.5;3.0;"Chris Dill";@MysteriousSpace -core;core_basic_screen_manager;⭐️☆☆☆;4.0;4.0;"Ramon Santamaria";@raysan5 -core;core_custom_frame_control;⭐️⭐️⭐️⭐️;4.0;4.0;"Ramon Santamaria";@raysan5 -core;core_smooth_pixelperfect;⭐️⭐️⭐️☆;3.7;4.0;"Giancamillo Alessandroni";@NotManyIdeasDev -core;core_random_sequence;⭐️☆☆☆;5.0;5.0;"Dalton Overmyer";@REDl3east -core;core_automation_events;⭐️⭐️⭐️☆;5.0;5.0;"Ramon Santamaria";@raysan5 -core;core_high_dpi;⭐️⭐️☆☆;5.0;5.5;"Jonathan Marler";@marler8997 -shapes;shapes_basic_shapes;⭐️☆☆☆;1.0;4.2;"Ramon Santamaria";@raysan5 -shapes;shapes_bouncing_ball;⭐️☆☆☆;2.5;2.5;"Ramon Santamaria";@raysan5 -shapes;shapes_colors_palette;⭐️⭐️☆☆;1.0;2.5;"Ramon Santamaria";@raysan5 -shapes;shapes_logo_raylib;⭐️☆☆☆;1.0;1.0;"Ramon Santamaria";@raysan5 -shapes;shapes_logo_raylib_anim;⭐️⭐️☆☆;2.5;4.0;"Ramon Santamaria";@raysan5 -shapes;shapes_rectangle_scaling;⭐️⭐️☆☆;2.5;2.5;"Vlad Adrian";@demizdor -shapes;shapes_lines_bezier;⭐️☆☆☆;1.7;1.7;"Ramon Santamaria";@raysan5 -shapes;shapes_collision_area;⭐️⭐️☆☆;2.5;2.5;"Ramon Santamaria";@raysan5 -shapes;shapes_following_eyes;⭐️⭐️☆☆;2.5;2.5;"Ramon Santamaria";@raysan5 -shapes;shapes_easings_ball_anim;⭐️⭐️☆☆;2.5;2.5;"Ramon Santamaria";@raysan5 -shapes;shapes_easings_box_anim;⭐️⭐️☆☆;2.5;2.5;"Ramon Santamaria";@raysan5 -shapes;shapes_easings_rectangle_array;⭐️⭐️⭐️☆;2.0;2.5;"Ramon Santamaria";@raysan5 -shapes;shapes_draw_ring;⭐️⭐️⭐️☆;2.5;2.5;"Vlad Adrian";@demizdor -shapes;shapes_draw_circle_sector;⭐️⭐️⭐️☆;2.5;2.5;"Vlad Adrian";@demizdor -shapes;shapes_draw_rectangle_rounded;⭐️⭐️⭐️☆;2.5;2.5;"Vlad Adrian";@demizdor -shapes;shapes_top_down_lights;⭐️⭐️⭐️⭐️;4.2;4.2;"Jeffery Myers";@JeffM2501 -shapes;shapes_rectangle_advanced;⭐️⭐️⭐️⭐️;5.5;5.5;"Everton Jr.";@evertonse -shapes;shapes_splines_drawing;⭐️⭐️⭐️☆;5.0;5.0;"Ramon Santamaria";@raysan5 -shapes;shapes_digital_clock;⭐️⭐️☆☆;5.5;5.6;"Hamza RAHAL";@hmz-rhl -shapes;shapes_double_pendulum;⭐️⭐️☆☆;5.5;5.5;"JoeCheong";@Joecheong2006 -textures;textures_logo_raylib;⭐️☆☆☆;1.0;1.0;"Ramon Santamaria";@raysan5 -textures;textures_srcrec_dstrec;⭐️⭐️⭐️☆;1.3;1.3;"Ramon Santamaria";@raysan5 -textures;textures_image_drawing;⭐️⭐️☆☆;1.4;1.4;"Ramon Santamaria";@raysan5 -textures;textures_image_generation;⭐️⭐️☆☆;1.8;1.8;"Wilhem Barbier";@nounoursheureux -textures;textures_image_loading;⭐️☆☆☆;1.3;1.3;"Ramon Santamaria";@raysan5 -textures;textures_image_processing;⭐️⭐️⭐️☆;1.4;3.5;"Ramon Santamaria";@raysan5 -textures;textures_image_text;⭐️⭐️☆☆;1.8;4.0;"Ramon Santamaria";@raysan5 -textures;textures_to_image;⭐️☆☆☆;1.3;4.0;"Ramon Santamaria";@raysan5 -textures;textures_raw_data;⭐️⭐️⭐️☆;1.3;3.5;"Ramon Santamaria";@raysan5 -textures;textures_particles_blending;⭐️☆☆☆;1.7;3.5;"Ramon Santamaria";@raysan5 -textures;textures_npatch_drawing;⭐️⭐️⭐️☆;2.0;2.5;"Jorge A. Gomes";@overdev -textures;textures_background_scrolling;⭐️☆☆☆;2.0;2.5;"Ramon Santamaria";@raysan5 -textures;textures_sprite_anim;⭐️⭐️☆☆;1.3;1.3;"Ramon Santamaria";@raysan5 -textures;textures_sprite_button;⭐️⭐️☆☆;2.5;2.5;"Ramon Santamaria";@raysan5 -textures;textures_sprite_explosion;⭐️⭐️☆☆;2.5;3.5;"Ramon Santamaria";@raysan5 -textures;textures_bunnymark;⭐️⭐️⭐️☆;1.6;2.5;"Ramon Santamaria";@raysan5 -textures;textures_mouse_painting;⭐️⭐️⭐️☆;3.0;3.0;"Chris Dill";@MysteriousSpace -textures;textures_blend_modes;⭐️☆☆☆;3.5;3.5;"Karlo Licudine";@accidentalrebel -textures;textures_tiled_drawing;⭐️⭐️⭐️☆;3.0;4.2;"Vlad Adrian";@demizdor -textures;textures_polygon_drawing;⭐️☆☆☆;3.7;3.7;"Chris Camacho";@chriscamacho -textures;textures_fog_of_war;⭐️⭐️⭐️☆;4.2;4.2;"Ramon Santamaria";@raysan5 -textures;textures_gif_player;⭐️⭐️⭐️☆;4.2;4.2;"Ramon Santamaria";@raysan5 -textures;textures_image_kernel;⭐️⭐️⭐️⭐️;1.3;1.3;"Karim Salem";@kimo-s -textures;textures_image_channel;⭐️⭐️☆☆;5.1-dev;5.1-dev;"Bruno Cabral";@brccabral -textures;textures_image_rotate;⭐️⭐️☆☆;1.0;1.0;"Ramon Santamaria";@raysan5 -textures;textures_textured_curve;⭐️⭐️⭐️☆;4.5;4.5;"Jeffery Myers";@JeffM2501 -text;text_sprite_fonts;⭐️☆☆☆;1.7;3.7;"Ramon Santamaria";@raysan5 -text;text_font_spritefont;⭐️☆☆☆;1.0;1.0;"Ramon Santamaria";@raysan5 -text;text_font_filters;⭐️⭐️☆☆;1.3;4.2;"Ramon Santamaria";@raysan5 -text;text_font_loading;⭐️☆☆☆;1.4;3.0;"Ramon Santamaria";@raysan5 -text;text_font_sdf;⭐️⭐️⭐️☆;1.3;4.0;"Ramon Santamaria";@raysan5 -text;text_format_text;⭐️☆☆☆;1.1;3.0;"Ramon Santamaria";@raysan5 -text;text_input_box;⭐️⭐️☆☆;1.7;3.5;"Ramon Santamaria";@raysan5 -text;text_writing_anim;⭐️⭐️☆☆;1.4;1.4;"Ramon Santamaria";@raysan5 -text;text_rectangle_bounds;⭐️⭐️⭐️⭐️;2.5;4.0;"Vlad Adrian";@demizdor -text;text_unicode_emojis;⭐️⭐️⭐️⭐️;2.5;4.0;"Vlad Adrian";@demizdor -text;text_unicode_ranges;⭐️⭐️⭐️⭐️;5.5;5.6;"Vlad Adrian";@demizdor -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;⭐️⭐️⭐️☆;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 -models;models_geometric_shapes;⭐️☆☆☆;1.0;3.5;"Ramon Santamaria";@raysan5 -models;models_mesh_generation;⭐️⭐️☆☆;1.8;4.0;"Ramon Santamaria";@raysan5 -models;models_mesh_picking;⭐️⭐️⭐️☆;1.7;4.0;"Joel Davis";@joeld42 -models;models_loading;⭐️☆☆☆;2.0;4.2;"Ramon Santamaria";@raysan5 -models;models_loading_gltf;⭐️☆☆☆;3.7;4.2;"Ramon Santamaria";@raysan5 -models;models_loading_vox;⭐️☆☆☆;4.0;4.0;"Johann Nadalutti";@procfxgen -models;models_loading_m3d;⭐️⭐️☆☆;4.5;4.5;"bzt";@bztsrc -models;models_orthographic_projection;⭐️☆☆☆;2.0;3.7;"Max Danielsson";@autious -models;models_point_rendering;⭐️⭐️⭐️☆;5.0;5.0;"Reese Gallagher";@satchelfrost -models;models_rlgl_solar_system;⭐️⭐️⭐️⭐️;2.5;4.0;"Ramon Santamaria";@raysan5 -models;models_yaw_pitch_roll;⭐️⭐️☆☆;1.8;4.0;"Berni";@Berni8k -models;models_waving_cubes;⭐️⭐️⭐️☆;2.5;3.7;"Codecat";@codecat -models;models_heightmap;⭐️☆☆☆;1.8;3.5;"Ramon Santamaria";@raysan5 -models;models_skybox_rendering;⭐️⭐️☆☆;1.8;4.0;"Ramon Santamaria";@raysan5 -models;models_draw_cube_texture;⭐️⭐️☆☆;4.5;4.5;"Ramon Santamaria";@raysan5 -models;models_gpu_skinning;⭐️⭐️⭐️☆;4.5;4.5;"Daniel Holden";@orangeduck -models;models_bone_socket;⭐️⭐️⭐️⭐️;4.5;4.5;"iP";@ipzaur -models;models_tesseract_view;⭐️⭐️☆☆;5.6-dev;5.6-dev;"Timothy van der Valk";@arceryz -shaders;shaders_basic_lighting;⭐️⭐️⭐️⭐️;3.0;4.2;"Chris Camacho";@chriscamacho -shaders;shaders_model_shader;⭐️⭐️☆☆;1.3;3.7;"Ramon Santamaria";@raysan5 -shaders;shaders_shapes_textures;⭐️⭐️☆☆;1.7;3.7;"Ramon Santamaria";@raysan5 -shaders;shaders_custom_uniform;⭐️⭐️☆☆;1.3;4.0;"Ramon Santamaria";@raysan5 -shaders;shaders_postprocessing;⭐️⭐️⭐️☆;1.3;4.0;"Ramon Santamaria";@raysan5 -shaders;shaders_palette_switch;⭐️⭐️⭐️☆;2.5;3.7;"Marco Lizza";@MarcoLizza -shaders;shaders_raymarching;⭐️⭐️⭐️⭐️;2.0;4.2;"Ramon Santamaria";@raysan5 -shaders;shaders_texture_rendering;⭐️⭐️☆☆;2.0;3.7;"Michał Ciesielski";@ciessielski -shaders;shaders_texture_outline;⭐️⭐️⭐️☆;4.0;4.0;"Serenity Skiff";@GoldenThumbs -shaders;shaders_texture_waves;⭐️⭐️☆☆;2.5;3.7;"Anata";@anatagawa -shaders;shaders_julia_set;⭐️⭐️⭐️☆;2.5;4.0;"Josh Colclough";@joshcol9232 -shaders;shaders_eratosthenes;⭐️⭐️⭐️☆;2.5;4.0;"ProfJski";@ProfJski -shaders;shaders_fog_rendering;⭐️⭐️⭐️☆;2.5;3.7;"Chris Camacho";@chriscamacho -shaders;shaders_simple_mask;⭐️⭐️☆☆;2.5;3.7;"Chris Camacho";@chriscamacho -shaders;shaders_hot_reloading;⭐️⭐️⭐️☆;3.0;3.5;"Ramon Santamaria";@raysan5 -shaders;shaders_mesh_instancing;⭐️⭐️⭐️⭐️;3.7;4.2;"seanpringle";@seanpringle -shaders;shaders_multi_sample2d;⭐️⭐️☆☆;3.5;3.5;"Ramon Santamaria";@raysan5 -shaders;shaders_normal_map;⭐️⭐️⭐️⭐️;5.6;5.6;"Jeremy Montgomery";@Sir_Irk -shaders;shaders_spotlight;⭐️⭐️☆☆;2.5;3.7;"Chris Camacho";@chriscamacho -shaders;shaders_deferred_render;⭐️⭐️⭐️⭐️;4.5;4.5;"Justin Andreas Lacoste";@27justin -shaders;shaders_hybrid_render;⭐️⭐️⭐️⭐️;4.2;4.2;"Buğra Alptekin Sarı";@BugraAlptekinSari -shaders;shaders_texture_tiling;⭐️⭐️☆☆;4.5;4.5;"Luis Almeida";@luis605 -shaders;shaders_shadowmap;⭐️⭐️⭐️⭐️;5.0;5.0;"TheManTheMythTheGameDev";@TheManTheMythTheGameDev -shaders;shaders_vertex_displacement;⭐️⭐️⭐️☆;5.0;4.5;"Alex ZH";@ZzzhHe -shaders;shaders_write_depth;⭐️⭐️☆☆;4.2;4.2;"Buğra Alptekin Sarı";@BugraAlptekinSari -shaders;shaders_basic_pbr;⭐️⭐️⭐️⭐️;5.0;5.1-dev;"Afan OLOVCIC";@_DevDad -shaders;shaders_lightmap;⭐️⭐️⭐️☆;4.5;4.5;"Jussi Viitala";@nullstare -shaders;shaders_rounded_rectangle;⭐️⭐️⭐️☆;5.5;5.5;"Anstro Pleuton";@anstropleuton -shaders;shaders_view_depth;⭐️⭐️⭐️☆;5.6-dev;5.6-dev;"Luís Almeida";@luis605 -audio;audio_module_playing;⭐️☆☆☆;1.5;3.5;"Ramon Santamaria";@raysan5 -audio;audio_music_stream;⭐️☆☆☆;1.3;4.2;"Ramon Santamaria";@raysan5 -audio;audio_raw_stream;⭐️⭐️⭐️☆;1.6;4.2;"Ramon Santamaria";@raysan5 -audio;audio_sound_loading;⭐️☆☆☆;1.1;3.5;"Ramon Santamaria";@raysan5 -audio;audio_mixed_processor;⭐️⭐️⭐️⭐️;4.2;4.2;"hkc";@hatkidchan -audio;audio_stream_effects;⭐️⭐️⭐️⭐️;4.2;5.0;"Ramon Santamaria";@raysan5 -audio;audio_sound_multi;⭐️⭐️☆☆;4.6;4.6;"Jeffery Myers";@JeffM2501 -audio;audio_sound_positioning;⭐️⭐️☆☆;5.5;5.5;"Le Juez Victor";@Bigfoot71 -others;rlgl_standalone;⭐️⭐️⭐️⭐️;1.6;4.0;"Ramon Santamaria";@raysan5 -others;rlgl_compute_shader;⭐️⭐️⭐️⭐️;4.0;4.0;"Teddy Astie";@tsnake41 -others;easings_testbed;⭐️⭐️⭐️☆;2.5;3.0;"Juan Miguel López";@flashback-fx -others;raylib_opengl_interop;⭐️⭐️⭐️⭐️;3.8;4.0;"Stephan Soller";@arkanis -others;embedded_files_loading;⭐️⭐️☆☆;3.0;3.5;"Kristian Holmgren";@defutura -others;raymath_vector_angle;⭐️⭐️☆☆;1.0;4.6;"Ramon Santamaria";@raysan5 +core;core_basic_window;★☆☆☆;1.0;1.0;2013;2025;"Ramon Santamaria";@raysan5 +core;core_input_keys;★☆☆☆;1.0;1.0;2014;2025;"Ramon Santamaria";@raysan5 +core;core_input_mouse;★☆☆☆;1.0;5.5;2014;2025;"Ramon Santamaria";@raysan5 +core;core_input_mouse_wheel;★☆☆☆;1.1;1.3;2014;2025;"Ramon Santamaria";@raysan5 +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_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 +core;core_2d_camera_split_screen;★★★★;4.5;4.5;2023;2025;"Gabriel dos Santos Sanches";@gabrielssanches +core;core_3d_camera_mode;★☆☆☆;1.0;1.0;2014;2025;"Ramon Santamaria";@raysan5 +core;core_3d_camera_free;★☆☆☆;1.3;1.3;2015;2025;"Ramon Santamaria";@raysan5 +core;core_3d_camera_first_person;★★☆☆;1.3;1.3;2015;2025;"Ramon Santamaria";@raysan5 +core;core_3d_camera_split_screen;★★★☆;3.7;4.0;2021;2025;"Jeffery Myers";@JeffM2501 +core;core_3d_camera_fps;★★★☆;5.5;5.5;2025;2025;"Agnis Aldins";@nezvers +core;core_3d_picking;★★☆☆;1.3;4.0;2015;2025;"Ramon Santamaria";@raysan5 +core;core_world_screen;★★☆☆;1.3;1.4;2015;2025;"Ramon Santamaria";@raysan5 +core;core_window_flags;★★★☆;3.5;3.5;2020;2025;"Ramon Santamaria";@raysan5 +core;core_window_letterbox;★★☆☆;2.5;4.0;2019;2025;"Anata";@anatagawa +core;core_window_should_close;★☆☆☆;4.2;4.2;2013;2025;"Ramon Santamaria";@raysan5 +core;core_custom_logging;★★★☆;2.5;2.5;2018;2025;"Pablo Marcos Oltra";@pamarcos +core;core_drop_files;★★☆☆;1.3;4.2;2015;2025;"Ramon Santamaria";@raysan5 +core;core_random_values;★☆☆☆;1.1;1.1;2014;2025;"Ramon Santamaria";@raysan5 +core;core_storage_values;★★☆☆;1.4;4.2;2015;2025;"Ramon Santamaria";@raysan5 +core;core_vr_simulator;★★★☆;2.5;4.0;2017;2025;"Ramon Santamaria";@raysan5 +core;core_scissor_test;★☆☆☆;2.5;3.0;2019;2025;"Chris Dill";@MysteriousSpace +core;core_basic_screen_manager;★☆☆☆;4.0;4.0;2021;2025;"Ramon Santamaria";@raysan5 +core;core_custom_frame_control;★★★★;4.0;4.0;2021;2025;"Ramon Santamaria";@raysan5 +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 +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 +shapes;shapes_logo_raylib;★☆☆☆;1.0;1.0;2014;2025;"Ramon Santamaria";@raysan5 +shapes;shapes_logo_raylib_anim;★★☆☆;2.5;4.0;2014;2025;"Ramon Santamaria";@raysan5 +shapes;shapes_rectangle_scaling;★★☆☆;2.5;2.5;2018;2025;"Vlad Adrian";@demizdor +shapes;shapes_lines_bezier;★☆☆☆;1.7;1.7;2017;2025;"Ramon Santamaria";@raysan5 +shapes;shapes_collision_area;★★☆☆;2.5;2.5;2013;2025;"Ramon Santamaria";@raysan5 +shapes;shapes_following_eyes;★★☆☆;2.5;2.5;2013;2025;"Ramon Santamaria";@raysan5 +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_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 +shapes;shapes_rectangle_advanced;★★★★;5.5;5.5;2024;2025;"Everton Jr.";@evertonse +shapes;shapes_splines_drawing;★★★☆;5.0;5.0;2023;2025;"Ramon Santamaria";@raysan5 +shapes;shapes_digital_clock;★★☆☆;5.5;5.6;2025;2025;"Hamza RAHAL";@hmz-rhl +shapes;shapes_double_pendulum;★★☆☆;5.5;5.5;2025;2025;"JoeCheong";@Joecheong2006 +textures;textures_logo_raylib;★☆☆☆;1.0;1.0;2014;2025;"Ramon Santamaria";@raysan5 +textures;textures_srcrec_dstrec;★★★☆;1.3;1.3;2015;2025;"Ramon Santamaria";@raysan5 +textures;textures_image_drawing;★★☆☆;1.4;1.4;2016;2025;"Ramon Santamaria";@raysan5 +textures;textures_image_generation;★★☆☆;1.8;1.8;2017;2025;"Wilhem Barbier";@nounoursheureux +textures;textures_image_loading;★☆☆☆;1.3;1.3;2015;2025;"Ramon Santamaria";@raysan5 +textures;textures_image_processing;★★★☆;1.4;3.5;2016;2025;"Ramon Santamaria";@raysan5 +textures;textures_image_text;★★☆☆;1.8;4.0;2017;2025;"Ramon Santamaria";@raysan5 +textures;textures_to_image;★☆☆☆;1.3;4.0;2015;2025;"Ramon Santamaria";@raysan5 +textures;textures_raw_data;★★★☆;1.3;3.5;2015;2025;"Ramon Santamaria";@raysan5 +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_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 +textures;textures_mouse_painting;★★★☆;3.0;3.0;2019;2025;"Chris Dill";@MysteriousSpace +textures;textures_blend_modes;★☆☆☆;3.5;3.5;2020;2025;"Karlo Licudine";@accidentalrebel +textures;textures_tiled_drawing;★★★☆;3.0;4.2;2020;2025;"Vlad Adrian";@demizdor +textures;textures_polygon_drawing;★☆☆☆;3.7;3.7;2021;2025;"Chris Camacho";@chriscamacho +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_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 +text;text_font_spritefont;★☆☆☆;1.0;1.0;2014;2025;"Ramon Santamaria";@raysan5 +text;text_font_filters;★★☆☆;1.3;4.2;2015;2025;"Ramon Santamaria";@raysan5 +text;text_font_loading;★☆☆☆;1.4;3.0;2016;2025;"Ramon Santamaria";@raysan5 +text;text_font_sdf;★★★☆;1.3;4.0;2015;2025;"Ramon Santamaria";@raysan5 +text;text_format_text;★☆☆☆;1.1;3.0;2014;2025;"Ramon Santamaria";@raysan5 +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_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 +models;models_billboard_rendering;★★★☆;1.3;3.5;2015;2025;"Ramon Santamaria";@raysan5 +models;models_box_collisions;★☆☆☆;1.3;3.5;2015;2025;"Ramon Santamaria";@raysan5 +models;models_cubicmap;★★☆☆;1.8;3.5;2015;2025;"Ramon Santamaria";@raysan5 +models;models_first_person_maze;★★☆☆;2.5;3.5;2019;2025;"Ramon Santamaria";@raysan5 +models;models_geometric_shapes;★☆☆☆;1.0;3.5;2014;2025;"Ramon Santamaria";@raysan5 +models;models_mesh_generation;★★☆☆;1.8;4.0;2017;2025;"Ramon Santamaria";@raysan5 +models;models_mesh_picking;★★★☆;1.7;4.0;2017;2025;"Joel Davis";@joeld42 +models;models_loading;★☆☆☆;2.0;4.2;2014;2025;"Ramon Santamaria";@raysan5 +models;models_loading_gltf;★☆☆☆;3.7;4.2;2020;2025;"Ramon Santamaria";@raysan5 +models;models_loading_vox;★☆☆☆;4.0;4.0;2021;2025;"Johann Nadalutti";@procfxgen +models;models_loading_m3d;★★☆☆;4.5;4.5;2022;2025;"bzt";@bztsrc +models;models_orthographic_projection;★☆☆☆;2.0;3.7;2018;2025;"Max Danielsson";@autious +models;models_point_rendering;★★★☆;5.0;5.0;2024;2025;"Reese Gallagher";@satchelfrost +models;models_rlgl_solar_system;★★★★;2.5;4.0;2018;2025;"Ramon Santamaria";@raysan5 +models;models_yaw_pitch_roll;★★☆☆;1.8;4.0;2017;2025;"Berni";@Berni8k +models;models_waving_cubes;★★★☆;2.5;3.7;2019;2025;"Codecat";@codecat +models;models_heightmap;★☆☆☆;1.8;3.5;2015;2025;"Ramon Santamaria";@raysan5 +models;models_skybox_rendering;★★☆☆;1.8;4.0;2017;2025;"Ramon Santamaria";@raysan5 +models;models_draw_cube_texture;★★☆☆;4.5;4.5;2022;2025;"Ramon Santamaria";@raysan5 +models;models_gpu_skinning;★★★☆;4.5;4.5;2024;2025;"Daniel Holden";@orangeduck +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 +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 +shaders;shaders_custom_uniform;★★☆☆;1.3;4.0;2015;2025;"Ramon Santamaria";@raysan5 +shaders;shaders_postprocessing;★★★☆;1.3;4.0;2015;2025;"Ramon Santamaria";@raysan5 +shaders;shaders_palette_switch;★★★☆;2.5;3.7;2019;2025;"Marco Lizza";@MarcoLizza +shaders;shaders_raymarching;★★★★;2.0;4.2;2018;2025;"Ramon Santamaria";@raysan5 +shaders;shaders_texture_rendering;★★☆☆;2.0;3.7;2019;2025;"Michał Ciesielski";@ciessielski +shaders;shaders_texture_outline;★★★☆;4.0;4.0;2021;2025;"Serenity Skiff";@GoldenThumbs +shaders;shaders_texture_waves;★★☆☆;2.5;3.7;2019;2025;"Anata";@anatagawa +shaders;shaders_julia_set;★★★☆;2.5;4.0;2019;2025;"Josh Colclough";@joshcol9232 +shaders;shaders_eratosthenes;★★★☆;2.5;4.0;2019;2025;"ProfJski";@ProfJski +shaders;shaders_fog_rendering;★★★☆;2.5;3.7;2019;2025;"Chris Camacho";@chriscamacho +shaders;shaders_simple_mask;★★☆☆;2.5;3.7;2019;2025;"Chris Camacho";@chriscamacho +shaders;shaders_hot_reloading;★★★☆;3.0;3.5;2020;2025;"Ramon Santamaria";@raysan5 +shaders;shaders_mesh_instancing;★★★★;3.7;4.2;2020;2025;"seanpringle";@seanpringle +shaders;shaders_multi_sample2d;★★☆☆;3.5;3.5;2020;2025;"Ramon Santamaria";@raysan5 +shaders;shaders_normal_map;★★★★;5.6;5.6;2025;2025;"Jeremy Montgomery";@Sir_Irk +shaders;shaders_spotlight;★★☆☆;2.5;3.7;2019;2025;"Chris Camacho";@chriscamacho +shaders;shaders_deferred_render;★★★★;4.5;4.5;2023;2025;"Justin Andreas Lacoste";@27justin +shaders;shaders_hybrid_render;★★★★;4.2;4.2;2022;2025;"Buğra Alptekin Sarı";@BugraAlptekinSari +shaders;shaders_texture_tiling;★★☆☆;4.5;4.5;2023;2025;"Luis Almeida";@luis605 +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_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 +audio;audio_module_playing;★☆☆☆;1.5;3.5;2016;2025;"Ramon Santamaria";@raysan5 +audio;audio_music_stream;★☆☆☆;1.3;4.2;2015;2025;"Ramon Santamaria";@raysan5 +audio;audio_raw_stream;★★★☆;1.6;4.2;2015;2025;"Ramon Santamaria";@raysan5 +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 +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 From 3e59797a689727ba56a8ea466f622bcedd548589 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 5 Sep 2025 14:10:26 +0200 Subject: [PATCH 076/190] REXM: ADDED: Read examples years created/reviewed info ADDED: `UpdateSourceMetadata()` --- tools/rexm/rexm.c | 226 +++++++++++++++++++++++++--------------------- 1 file changed, 122 insertions(+), 104 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index d6c29934f..e53e5eb15 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -75,8 +75,10 @@ typedef struct { char category[16]; // Example category: core, shapes, textures, text, models, shaders, audio, others char name[128]; // Example name: _name_part int stars; // Example stars count: ★☆☆☆ - float verCreated; // Example raylib creation version - float verUpdated; // Example raylib last update version + char verCreated[12]; // Example raylib creation version + char verUpdated[12]; // Example raylib last update version + int yearCreated; // Example year created + int yearReviewed; // Example year reviewed char author[64]; // Example author char authorGitHub[64]; // Example author, GitHub user name @@ -153,7 +155,7 @@ static rlExampleInfo *LoadExampleInfo(const char *exFileName); static void UnloadExampleInfo(rlExampleInfo *exInfo); // raylib example line info parser -// Parses following line format: core/core_basic_window;⭐️☆☆☆;1.0;1.0;"Ray"/@raysan5 +// Parses following line format: core/core_basic_window;★☆☆☆;1.0;1.0;"Ray"/@raysan5 static int ParseExampleInfoLine(const char *line, rlExampleInfo *entry); // Sort array of strings by name @@ -215,6 +217,35 @@ int main(int argc, char *argv[]) int opCode = OP_NONE; // Operation code: 0-None(Help), 1-Create, 2-Add, 3-Rename, 4-Remove + /* + // Code used to update examples list, to be removed + int exListCount = 0; + rlExampleInfo *exCollection = LoadExamplesData(exCollectionFilePath, "ALL", false, &exListCount); + char *exColUpdated = (char *)RL_CALLOC(REXM_MAX_BUFFER_SIZE, 1); + char starsText[16] = { 0 }; + for (int i = 0, textOffset = 0; i < exListCount; i++) + { + rlExampleInfo *info = LoadExampleInfo(TextFormat("%s/%s/%s.c", exBasePath, exCollection[i].category, exCollection[i].name)); + + // Get stars as text + for (int s = 0; s < 4; s++) + { + // NOTE: Every UTF-8 star are 3 bytes + if (s < exCollection[i].stars) strcpy(starsText + 3*s, "★"); + else strcpy(starsText + 3*s, "☆"); + } + + //;;;;;;;""; + textOffset += sprintf(exColUpdated + textOffset, "%s;%s;%s;%s;%s;%i;%i;\"%s\";@%s\n", + exCollection[i].category, exCollection[i].name, starsText, exCollection[i].verCreated, exCollection[i].verUpdated, + info->yearCreated, info->yearReviewed, exCollection[i].author, exCollection[i].authorGitHub); + + UnloadExampleInfo(info); + } + UnloadExamplesData(exCollection); + SaveFileText(TextFormat("%s/examples_list_updated.txt", exBasePath), exColUpdated); + */ + // Command-line usage mode //-------------------------------------------------------------------------------------- if (argc > 1) @@ -485,7 +516,7 @@ int main(int argc, char *argv[]) // ----------------------------------------------------------------------------------------- // Add example to the collection list, if not already there - // NOTE: Required format: shapes;shapes_basic_shapes;⭐️☆☆☆;1.0;4.2;"Ray";@raysan5 + // NOTE: Required format: shapes;shapes_basic_shapes;★☆☆☆;1.0;4.2;"Ray";@raysan5 //------------------------------------------------------------------------------------------------ char *exCollectionList = LoadFileText(exCollectionFilePath); if (TextFindIndex(exCollectionList, exName) == -1) // Example not found @@ -509,7 +540,7 @@ int main(int argc, char *argv[]) // NOTE: If no example info is provided (other than category/name), just using some default values rlExampleInfo *exInfo = LoadExampleInfo(TextFormat("%s/%s/%s.c", exBasePath, exCategory, exName)); - // Get example difficulty stars + // Get example difficulty stars text char starsText[16] = { 0 }; for (int i = 0; i < 4; i++) { @@ -523,15 +554,15 @@ int main(int argc, char *argv[]) // Add example to collection at the EOF int endIndex = (int)strlen(exCollectionList); memcpy(exCollectionListUpdated, exCollectionList, endIndex); - sprintf(exCollectionListUpdated + endIndex, TextFormat("%s;%s;%s;%.2f;%.2f;\"%s\";@%s\n", - exInfo->category, exInfo->name, starsText, exInfo->verCreated, exInfo->verUpdated, exInfo->author, exInfo->authorGitHub)); + sprintf(exCollectionListUpdated + endIndex, TextFormat("%s;%s;%s;%s;%s;%s;%s;\"%s\";@%s\n", + exInfo->category, exInfo->name, starsText, exInfo->verCreated, exInfo->verUpdated, exInfo->yearCreated, exInfo->yearReviewed, exInfo->author, exInfo->authorGitHub)); } else { // Add example to collection, at the end of the category list int categoryIndex = TextFindIndex(exCollectionList, exCategories[nextCategoryIndex]); memcpy(exCollectionListUpdated, exCollectionList, categoryIndex); - int textWritenSize = sprintf(exCollectionListUpdated + categoryIndex, TextFormat("%s;%s;%s;%.2f;%.2f;\"%s\";@%s\n", + int textWritenSize = sprintf(exCollectionListUpdated + categoryIndex, TextFormat("%s;%s;%s;%s;%s;\"%s\";@%s\n", exInfo->category, exInfo->name, starsText, exInfo->verCreated, exInfo->verUpdated, exInfo->author, exInfo->authorGitHub)); memcpy(exCollectionListUpdated + categoryIndex + textWritenSize, exCollectionList + categoryIndex, strlen(exCollectionList) - categoryIndex); } @@ -844,15 +875,15 @@ int main(int argc, char *argv[]) // Get example difficulty stars char starsText[16] = { 0 }; - for (int i = 0; i < 4; i++) + for (int s = 0; s < 4; s++) { // NOTE: Every UTF-8 star are 3 bytes - if (i < exInfo->stars) strcpy(starsText + 3*i, "⭐️"); - else strcpy(starsText + 3*i, "☆"); + if (s < exInfo->stars) strcpy(starsText + 3*s, "★"); + else strcpy(starsText + 3*s, "☆"); } exListLen += sprintf(exListUpdated + exListLen, - TextFormat("%s;%s;%s;%.1f;%.1f;\"%s\";@%s\n", + TextFormat("%s;%s;%s;%s;%s;\"%s\";@%s\n", exInfo->category, exInfo->name, starsText, exInfo->verCreated, exInfo->verUpdated, exInfo->author, exInfo->authorGitHub)); @@ -994,8 +1025,8 @@ int main(int argc, char *argv[]) (strcmp(exInfo->author, exInfoHeader->author) != 0) || (strcmp(exInfo->authorGitHub, exInfoHeader->authorGitHub) != 0) || (exInfo->stars != exInfoHeader->stars) || - (exInfo->verCreated != exInfoHeader->verCreated) || - (exInfo->verUpdated != exInfoHeader->verUpdated)) + (strcmp(exInfo->verCreated, exInfoHeader->verCreated) != 0) || + (strcmp(exInfo->verUpdated, exInfoHeader->verUpdated) != 0)) { exInfo->status |= VALID_INCONSISTENT_INFO; } @@ -1559,19 +1590,19 @@ static int UpdateRequiredFiles(void) mdIndex += sprintf(mdTextUpdated + mdListStartIndex + mdIndex, "| example | image | difficulty
level | version
created | last version
updated | original
developer |\n"); mdIndex += sprintf(mdTextUpdated + mdListStartIndex + mdIndex, "|-----------|--------|:-------------------:|:------------------:|:-----------------------:|:----------------------|\n"); + char starsTexts[16] = { 0 }; for (int x = 0; x < exCollectionCount; x++) { - char stars[16] = { 0 }; for (int s = 0; s < 4; s++) { - if (s < exCollection[x].stars) strcpy(stars + 3*s, "⭐️"); - else strcpy(stars + 3*s, "☆"); + if (s < exCollection[x].stars) strcpy(starsText + 3*s, "⭐️"); // WARNING: Different than '★', more visual + else strcpy(starsText + 3*s, "☆"); } mdIndex += sprintf(mdTextUpdated + mdListStartIndex + mdIndex, - TextFormat("| [%s](%s/%s.c) | \"%s\" | %s | %.1f | %.1f | [%s](https://github.com/%s) |\n", + TextFormat("| [%s](%s/%s.c) | \"%s\" | %s | %s | %s | [%s](https://github.com/%s) |\n", exCollection[x].name, exCollection[x].category, exCollection[x].name, exCollection[x].category, exCollection[x].name, exCollection[x].name, - stars, exCollection[x].verCreated, exCollection[x].verUpdated, exCollection[x].author, exCollection[x].authorGitHub)); + starsText, exCollection[x].verCreated, exCollection[x].verUpdated, exCollection[x].author, exCollection[x].authorGitHub)); } UnloadExamplesData(exCollection); @@ -1602,6 +1633,8 @@ static int UpdateRequiredFiles(void) jsIndex = sprintf(jsTextUpdated + jsListStartIndex, "//EXAMPLE_DATA_LIST_START\n"); jsIndex += sprintf(jsTextUpdated + jsListStartIndex + jsIndex, " var exampleData = [\n"); + char starsText[16] = { 0 }; + // NOTE: We avoid "others" category for (int i = 0; i < REXM_MAX_EXAMPLE_CATEGORIES - 1; i++) { @@ -1609,18 +1642,17 @@ static int UpdateRequiredFiles(void) rlExampleInfo *exCollection = LoadExamplesData(exCollectionFilePath, exCategories[i], false, &exCollectionCount); for (int x = 0; x < exCollectionCount; x++) { - char stars[16] = { 0 }; for (int s = 0; s < 4; s++) { - if (s < exCollection[x].stars) strcpy(stars + 3*s, "⭐️"); - else strcpy(stars + 3*s, "☆"); + if (s < exCollection[x].stars) strcpy(starsText + 3*s, "⭐️"); // WARNING: Different than '★', more visual + else strcpy(starsText + 3*s, "☆"); } if ((i == 6) && (x == (exCollectionCount - 1))) { // NOTE: Last line to add, special case to consider jsIndex += sprintf(jsTextUpdated + jsListStartIndex + jsIndex, - TextFormat(" exampleEntry('%s', '%s', '%s')];\n", stars, exCollection[x].category, exCollection[x].name + strlen(exCollection[x].category) + 1)); + TextFormat(" exampleEntry('%s', '%s', '%s')];\n", starsText, exCollection[x].category, exCollection[x].name + strlen(exCollection[x].category) + 1)); } else { @@ -1808,7 +1840,7 @@ static int FileMove(const char *srcPath, const char *dstPath) } // Get example info from example file header -// NOTE: Expecting the example to follow raylib_example_template.c +// WARNING: Expecting the example to follow raylib_example_template.c static rlExampleInfo *LoadExampleInfo(const char *exFileName) { rlExampleInfo *exInfo = (rlExampleInfo *)RL_CALLOC(1, sizeof(rlExampleInfo)); @@ -1821,8 +1853,7 @@ static rlExampleInfo *LoadExampleInfo(const char *exFileName) char *exText = LoadFileText(exFileName); // Get example difficulty stars - // NOTE: Counting the unicode char occurrences: ⭐️ - // WARNING: The stars unicode in examples is not the same than in collection list!!! + // NOTE: Counting the unicode char occurrences: ★ int starsIndex = TextFindIndex(exText, "★"); if (starsIndex > 0) { @@ -1841,26 +1872,28 @@ static rlExampleInfo *LoadExampleInfo(const char *exFileName) } // Get example create with raylib version - char verCreateText[4] = { 0 }; int verCreateIndex = TextFindIndex(exText, "created with raylib "); // Version = index + 20 - if (verCreateIndex > 0) strncpy(verCreateText, exText + verCreateIndex + 20, 3); - else strncpy(verCreateText, RAYLIB_VERSION, 3); // Only pick MAJOR.MINOR - exInfo->verCreated = TextToFloat(verCreateText); + if (verCreateIndex > 0) strncpy(exInfo->verCreated, exText + verCreateIndex + 20, 3); + else strncpy(exInfo->verCreated, RAYLIB_VERSION, 3); // Only pick MAJOR.MINOR // Get example update with raylib version - char verUpdateText[4] = { 0 }; int verUpdateIndex = TextFindIndex(exText, "updated with raylib "); // Version = index + 20 - if (verUpdateIndex > 0) strncpy(verUpdateText, exText + verUpdateIndex + 20, 3); - else strncpy(verUpdateText, RAYLIB_VERSION, 3); // Only pick MAJOR.MINOR - exInfo->verUpdated = TextToFloat(verUpdateText); + if (verUpdateIndex > 0) strncpy(exInfo->verUpdated, exText + verUpdateIndex + 20, 3); + else strncpy(exInfo->verUpdated, RAYLIB_VERSION, 3); // Only pick MAJOR.MINOR - // Get example creator and github user + // Get example years created/reviewed and creator and github user // NOTE: Using copyright line instead of "Example contributed by " because // most examples do not contain that line --> TODO: Review examples header formating? // Expected format: Copyright (c) - (@) // Alternatives: Copyright (c) (@) and (@) int copyrightIndex = TextFindIndex(exText, "Copyright (c) "); int yearStartIndex = copyrightIndex + 14; + char yearText[5] = { 0 }; + strncpy(yearText, exText + yearStartIndex, 4); + exInfo->yearCreated = TextToInteger(yearText); + // Check for review year included (or just use creation year) + if (exText[yearStartIndex + 4] == '-') strncpy(yearText, exText + yearStartIndex + 5, 4); + exInfo->yearReviewed = TextToInteger(yearText); int yearEndIndex = TextFindIndex(exText + yearStartIndex, " "); int authorStartIndex = yearStartIndex + yearEndIndex + 1; int authorEndIndex = TextFindIndex(exText + authorStartIndex, " (@"); @@ -1898,7 +1931,7 @@ static void UnloadExampleInfo(rlExampleInfo *exInfo) } // raylib example line info parser -// Parses following line format: core;core_basic_window;⭐️☆☆☆;1.0;1.0;"Ray";@raysan5 +// Parses following line format: core;core_basic_window;★☆☆☆;1.0;1.0;2013;2025;"Ray";@raysan5 static int ParseExampleInfoLine(const char *line, rlExampleInfo *entry) { #define MAX_EXAMPLE_INFO_LINE_LEN 512 @@ -1909,19 +1942,21 @@ 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); // Get category and name strcpy(entry->category, tokens[0]); strcpy(entry->name, tokens[1]); // Parsing stars - // NOTE: Counting the unicode char occurrences: ⭐️ + // NOTE: Counting the unicode char occurrences: ★ const char *starPtr = tokens[2]; while (*starPtr) { if (((unsigned char)starPtr[0] == 0xe2) && - ((unsigned char)starPtr[1] == 0xad) && - ((unsigned char)starPtr[2] == 0x90)) + ((unsigned char)starPtr[1] == 0x98) && + ((unsigned char)starPtr[2] == 0x85)) { entry->stars++; starPtr += 3; // Advance past multibyte character @@ -1930,14 +1965,18 @@ static int ParseExampleInfoLine(const char *line, rlExampleInfo *entry) } // Get raylib creation/update versions - entry->verCreated = strtof(tokens[3], NULL); - entry->verUpdated = strtof(tokens[4], NULL); + strcpy(entry->verCreated, tokens[3]); + strcpy(entry->verUpdated, tokens[4]); + + // Get year created and year reviewed + strcpy(entry->yearCreated, tokens[5]); + strcpy(entry->yearReviewed, tokens[6]); // Get author and github - if (tokens[5][0] == '"') tokens[5] += 1; - if (tokens[5][strlen(tokens[5]) - 1] == '"') tokens[5][strlen(tokens[5]) - 1] = '\0'; - strcpy(entry->author, tokens[5]); - strcpy(entry->authorGitHub, tokens[6] + 1); // Skip '@' + 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 '@' return 1; } @@ -1988,7 +2027,7 @@ 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 dirty solution, the good one would be getting the data loading function names... + // 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 { @@ -2242,75 +2281,54 @@ static void UpdateSourceMetadata(const char *exSrcPath, const rlExampleInfo *inf { if (FileExists(exSrcPath) && IsFileExtension(exSrcPath, ".c")) { - char *fileText = LoadFileText(exSrcPath); - char *fileTextUpdated[6] = { 0 }; // Pointers to multiple updated text versions + char *exText = LoadFileText(exSrcPath); + char *exTextUpdated[6] = { 0 }; // Pointers to multiple updated text versions - char exName[64] = { 0 }; // Example name: fileName without extension - char exCategory[16] = { 0 }; // Example category: core, shapes, text, textures, models, audio, shaders - char exDescription[256] = { 0 }; // Example description: example text line #3 - char exTitle[64] = { 0 }; // Example title: fileName without extension, replacing underscores by spaces - - // TODO: Update source code metadata + char exNameFormated[256] = { 0 }; // Example name without category and using spaces // Update example header title (line #3 - ALWAYS) // String: "* raylib [shaders] example - texture drawing" - + exTextUpdated[0] = TextReplaceBetween(exSrcPath, + TextFormat("%s] example - %s", info->category, exNameFormated), "* raylib [", "\n"); // Update example complexity rating // String: "* Example complexity rating: [★★☆☆] 2/4" - fileTextUpdated[0] = TextReplaceBetween(exSrcPath, "★★☆☆] 2", "Example complexity rating: [", "/4\n"); - + // Get example difficulty stars text + char starsText[16] = { 0 }; + for (int i = 0; i < 4; i++) + { + // NOTE: Every UTF-8 star are 3 bytes + if (i < info->stars) strcpy(starsText + 3*i, "★"); + else strcpy(starsText + 3*i, "☆"); + } + exTextUpdated[1] = TextReplaceBetween(exTextUpdated[0], + TextFormat("%s] %i", starsText, info->stars), "* Example complexity rating: [", "/4\n"); // 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], + TextFormat("%s, last time updated with raylib %s", info->verCreated, info->verUpdated), "* Example originally created with raylib ", "\n"); // Update contributors names // String: "* Example contributed by Contributor Name (@github_user) and reviewed by Ramon Santamaria (@raysan5)" - + exTextUpdated[3] = TextReplaceBetween(exTextUpdated[2], + TextFormat("%s (@%s", info->author, info->authorGitHub), "* Example contributed by ", ")"); // Update copyright message // String: "* Copyright (c) 2019-2025 Contributor Name (@github_user) and Ramon Santamaria (@raysan5)" - fileTextUpdated[0] = TextReplaceBetween(exSrcPath, "★★☆☆] 2", "Copyright (c) ", ")"); + exTextUpdated[4] = TextReplaceBetween(exTextUpdated[3], + TextFormat("%i-%i %s (@%s", info->yearCreated, info->yearReviewed, info->author, info->authorGitHub), "Copyright (c) ", ")"); // Update window title - //"InitWindow(screenWidth, screenHeight, "raylib [shaders] example - texture drawing");" + // String: "InitWindow(screenWidth, screenHeight, "raylib [shaders] example - texture drawing");" + exTextUpdated[5] = TextReplaceBetween(exTextUpdated[4], + TextFormat("raylib [%s] example - %s", info->category, exNameFormated), "InitWindow(screenWidth, screenHeight, \"", "\");"); - /* - // Get example name: replace underscore by spaces - strcpy(exName, GetFileNameWithoutExt(exSrcPath)); - strcpy(exTitle, exName); - for (int i = 0; (i < 256) && (exTitle[i] != '\0'); i++) { if (exTitle[i] == '_') exTitle[i] = ' '; } + SaveFileText(exSrcPath, exTextUpdated[5]); - // Get example category from exName: copy until first underscore - for (int i = 0; (exName[i] != '_'); i++) exCategory[i] = exName[i]; + for (int i = 0; i < 6; i++) { MemFree(exTextUpdated[i]); exTextUpdated[i] = NULL; } - // Get example description: copy line #3 from example file - char *exText = LoadFileText(exFilePath); - int lineCount = 0; - char **lines = LoadTextLines(exText, &lineCount); - int lineLength = (int)strlen(lines[2]); - strncpy(exDescription, lines[2] + 4, lineLength - 4); - UnloadTextLines(lines); UnloadFileText(exText); - - // Update example.html required text - fileTextUpdated[0] = TextReplace(fileText, "raylib web game", exTitle); - fileTextUpdated[1] = TextReplace(fileTextUpdated[0], "New raylib web videogame, developed using raylib videogames library", exDescription); - fileTextUpdated[2] = TextReplace(fileTextUpdated[1], "https://www.raylib.com/common/raylib_logo.png", - TextFormat("https://raw.githubusercontent.com/raysan5/raylib/master/examples/%s/%s.png", exCategory, exName)); - fileTextUpdated[3] = TextReplace(fileTextUpdated[2], "https://www.raylib.com/games.html", - TextFormat("https://www.raylib.com/examples/%s/%s.html", exCategory, exName)); - fileTextUpdated[4] = TextReplace(fileTextUpdated[3], "raylib - example", TextFormat("raylib - %s", exName)); // og:site_name - fileTextUpdated[5] = TextReplace(fileTextUpdated[4], "https://github.com/raysan5/raylib", - TextFormat("https://github.com/raysan5/raylib/blob/master/examples/%s/%s.c", exCategory, exName)); - */ - - SaveFileText(exSrcPath, fileTextUpdated[5]); - - for (int i = 0; i < 6; i++) { MemFree(fileTextUpdated[i]); fileTextUpdated[i] = NULL; } - - UnloadFileText(fileText); } } @@ -2319,8 +2337,8 @@ static void UpdateWebMetadata(const char *exHtmlPath, const char *exFilePath) { if (FileExists(exHtmlPath) && IsFileExtension(exHtmlPath, ".html")) { - char *fileText = LoadFileText(exHtmlPath); - char *fileTextUpdated[6] = { 0 }; // Pointers to multiple updated text versions + char *exHtmlText = LoadFileText(exHtmlPath); + char *exHtmlTextUpdated[6] = { 0 }; // Pointers to multiple updated text versions char exName[64] = { 0 }; // Example name: fileName without extension char exCategory[16] = { 0 }; // Example category: core, shapes, text, textures, models, audio, shaders @@ -2345,17 +2363,17 @@ static void UpdateWebMetadata(const char *exHtmlPath, const char *exFilePath) UnloadFileText(exText); // Update example.html required text - fileTextUpdated[0] = TextReplace(fileText, "raylib web game", exTitle); - fileTextUpdated[1] = TextReplace(fileTextUpdated[0], "New raylib web videogame, developed using raylib videogames library", exDescription); - fileTextUpdated[2] = TextReplace(fileTextUpdated[1], "https://www.raylib.com/common/raylib_logo.png", + exHtmlTextUpdated[0] = TextReplace(exHtmlText, "raylib web game", exTitle); + exHtmlTextUpdated[1] = TextReplace(exHtmlTextUpdated[0], "New raylib web videogame, developed using raylib videogames library", exDescription); + exHtmlTextUpdated[2] = TextReplace(exHtmlTextUpdated[1], "https://www.raylib.com/common/raylib_logo.png", TextFormat("https://raw.githubusercontent.com/raysan5/raylib/master/examples/%s/%s.png", exCategory, exName)); - fileTextUpdated[3] = TextReplace(fileTextUpdated[2], "https://www.raylib.com/games.html", + exHtmlTextUpdated[3] = TextReplace(exHtmlTextUpdated[2], "https://www.raylib.com/games.html", TextFormat("https://www.raylib.com/examples/%s/%s.html", exCategory, exName)); - fileTextUpdated[4] = TextReplace(fileTextUpdated[3], "raylib - example", TextFormat("raylib - %s", exName)); // og:site_name - fileTextUpdated[5] = TextReplace(fileTextUpdated[4], "https://github.com/raysan5/raylib", + exHtmlTextUpdated[4] = TextReplace(exHtmlTextUpdated[3], "raylib - example", TextFormat("raylib - %s", exName)); // og:site_name + 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, fileTextUpdated[5]); + SaveFileText(exHtmlPath, exHtmlTextUpdated[5]); //LOG("INFO: [%s] Updated successfully\n",files.paths[i]); //LOG(" - Name / Title: %s / %s\n", exName, exTitle); @@ -2363,9 +2381,9 @@ static void UpdateWebMetadata(const char *exHtmlPath, const char *exFilePath) //LOG(" - URL: %s\n", TextFormat("https://www.raylib.com/examples/%s/%s.html", exCategory, exName)); //LOG(" - URL Source: %s\n", TextFormat("https://github.com/raysan5/raylib/blob/master/examples/%s/%s.c", exCategory, exName)); - for (int i = 0; i < 6; i++) { MemFree(fileTextUpdated[i]); fileTextUpdated[i] = NULL; } + for (int i = 0; i < 6; i++) { MemFree(exHtmlTextUpdated[i]); exHtmlTextUpdated[i] = NULL; } - UnloadFileText(fileText); + UnloadFileText(exHtmlText); } } From 1d4d8da3e9b5b1f96629ee945d035e0abaf139d9 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 5 Sep 2025 22:59:42 +0200 Subject: [PATCH 077/190] Removed temp code to generate updated examples_list.txt --- tools/rexm/rexm.c | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index e53e5eb15..151ec6497 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -217,35 +217,6 @@ int main(int argc, char *argv[]) int opCode = OP_NONE; // Operation code: 0-None(Help), 1-Create, 2-Add, 3-Rename, 4-Remove - /* - // Code used to update examples list, to be removed - int exListCount = 0; - rlExampleInfo *exCollection = LoadExamplesData(exCollectionFilePath, "ALL", false, &exListCount); - char *exColUpdated = (char *)RL_CALLOC(REXM_MAX_BUFFER_SIZE, 1); - char starsText[16] = { 0 }; - for (int i = 0, textOffset = 0; i < exListCount; i++) - { - rlExampleInfo *info = LoadExampleInfo(TextFormat("%s/%s/%s.c", exBasePath, exCollection[i].category, exCollection[i].name)); - - // Get stars as text - for (int s = 0; s < 4; s++) - { - // NOTE: Every UTF-8 star are 3 bytes - if (s < exCollection[i].stars) strcpy(starsText + 3*s, "★"); - else strcpy(starsText + 3*s, "☆"); - } - - //;;;;;;;""; - textOffset += sprintf(exColUpdated + textOffset, "%s;%s;%s;%s;%s;%i;%i;\"%s\";@%s\n", - exCollection[i].category, exCollection[i].name, starsText, exCollection[i].verCreated, exCollection[i].verUpdated, - info->yearCreated, info->yearReviewed, exCollection[i].author, exCollection[i].authorGitHub); - - UnloadExampleInfo(info); - } - UnloadExamplesData(exCollection); - SaveFileText(TextFormat("%s/examples_list_updated.txt", exBasePath), exColUpdated); - */ - // Command-line usage mode //-------------------------------------------------------------------------------------- if (argc > 1) From 84e606b8c74ecc6ffb5c0d233400049c9351be46 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 5 Sep 2025 23:00:36 +0200 Subject: [PATCH 078/190] Update rexm.c --- tools/rexm/rexm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index 151ec6497..4c1667dbe 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -1561,7 +1561,7 @@ static int UpdateRequiredFiles(void) mdIndex += sprintf(mdTextUpdated + mdListStartIndex + mdIndex, "| example | image | difficulty
level | version
created | last version
updated | original
developer |\n"); mdIndex += sprintf(mdTextUpdated + mdListStartIndex + mdIndex, "|-----------|--------|:-------------------:|:------------------:|:-----------------------:|:----------------------|\n"); - char starsTexts[16] = { 0 }; + char starsText[16] = { 0 }; for (int x = 0; x < exCollectionCount; x++) { for (int s = 0; s < 4; s++) @@ -1628,7 +1628,7 @@ static int UpdateRequiredFiles(void) else { jsIndex += sprintf(jsTextUpdated + jsListStartIndex + jsIndex, - TextFormat(" exampleEntry('%s', '%s', '%s'),\n", stars, exCollection[x].category, exCollection[x].name + strlen(exCollection[x].category) + 1)); + TextFormat(" exampleEntry('%s', '%s', '%s'),\n", starsText, exCollection[x].category, exCollection[x].name + strlen(exCollection[x].category) + 1)); } } From eb816898e595fde68a2576ad180bd3d313e48a06 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 5 Sep 2025 23:02:06 +0200 Subject: [PATCH 079/190] Revert "Added creation-review years to examples" This reverts commit b5e25916fc2219eec088dfa948474cca019096eb. --- examples/shaders/shaders_view_depth.c | 2 +- examples/shapes/shapes_digital_clock.c | 2 +- examples/shapes/shapes_double_pendulum.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/shaders/shaders_view_depth.c b/examples/shaders/shaders_view_depth.c index a11f52dc5..f4eecf7e2 100644 --- a/examples/shaders/shaders_view_depth.c +++ b/examples/shaders/shaders_view_depth.c @@ -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 Luís Almeida (@luis605) +* Copyright (c) 2025 Luís Almeida (@luis605) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_digital_clock.c b/examples/shapes/shapes_digital_clock.c index c8a573cd6..82b8ee6bd 100644 --- a/examples/shapes/shapes_digital_clock.c +++ b/examples/shapes/shapes_digital_clock.c @@ -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 Hamza RAHAL (@hmz-rhl) +* Copyright (c) 2025 Hamza RAHAL (@hmz-rhl) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_double_pendulum.c b/examples/shapes/shapes_double_pendulum.c index 1bc2ee4a2..200f9ad7e 100644 --- a/examples/shapes/shapes_double_pendulum.c +++ b/examples/shapes/shapes_double_pendulum.c @@ -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 JoeCheong (@Joecheong2006) +* Copyright (c) 2025 JoeCheong (@Joecheong2006) * ********************************************************************************************/ From bd810368b0575a3ae125eee2739d40ba54489bdc Mon Sep 17 00:00:00 2001 From: Eike Decker Date: Fri, 5 Sep 2025 23:05:08 +0200 Subject: [PATCH 080/190] Fixing base64 decoding error when input string is bad (#5170) The following code would crash the previous version when calling MemFree: // 53 * A const char maliciousBase64Input[] = "AAAAAAAAAAAAAAAAAAAAAAAA" "AAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; int decodedSize = 0; unsigned char *decodedData = DecodeDataBase64( maliciousBase64Input, &decodedSize); if (decodedData) { MemFree(decodedData); } The reason is a lack of array bound checks in the decoding loop, which corrupted here the heap (though this is platform dependent). Adding the bound checks here prevents the memory corruption. Tested with encoding random data of sizes 0-1023 and comparing it with the decoded result. --- src/rcore.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index 97fc9e799..898f60b3f 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -2671,13 +2671,24 @@ unsigned char *DecodeDataBase64(const char *text, int *outputSize) for (int i = 0; i < dataSize;) { // Every 4 sixtets must generate 3 octets + if (i + 2 >= dataSize) + { + TRACELOG(LOG_WARNING, "BASE64 decoding error: Input data size is not valid"); + break; + } + unsigned int sixtetA = base64DecodeTable[(unsigned char)text[i]]; unsigned int sixtetB = base64DecodeTable[(unsigned char)text[i + 1]]; - unsigned int sixtetC = ((unsigned char)text[i + 2] != '=')? base64DecodeTable[(unsigned char)text[i + 2]] : 0; - unsigned int sixtetD = ((unsigned char)text[i + 3] != '=')? base64DecodeTable[(unsigned char)text[i + 3]] : 0; + unsigned int sixtetC = (i + 2 < dataSize && (unsigned char)text[i + 2] != '=')? base64DecodeTable[(unsigned char)text[i + 2]] : 0; + unsigned int sixtetD = (i + 3 < dataSize && (unsigned char)text[i + 3] != '=')? base64DecodeTable[(unsigned char)text[i + 3]] : 0; unsigned int octetPack = (sixtetA << 18) | (sixtetB << 12) | (sixtetC << 6) | sixtetD; + if (outputCount + 3 > maxOutputSize) + { + TRACELOG(LOG_WARNING, "BASE64 decoding: Output data size is too small"); + break; + } decodedData[outputCount + 0] = (octetPack >> 16) & 0xff; decodedData[outputCount + 1] = (octetPack >> 8) & 0xff; decodedData[outputCount + 2] = octetPack & 0xff; From 86ec1c08c2bf41940512ad48538f8a9b9a1b5f1a Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 5 Sep 2025 23:07:29 +0200 Subject: [PATCH 081/190] Update rexm.c --- tools/rexm/rexm.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index 4c1667dbe..8eee12ba4 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -2287,8 +2287,16 @@ static void UpdateSourceMetadata(const char *exSrcPath, const rlExampleInfo *inf // Update copyright message // String: "* Copyright (c) 2019-2025 Contributor Name (@github_user) and Ramon Santamaria (@raysan5)" - exTextUpdated[4] = TextReplaceBetween(exTextUpdated[3], - TextFormat("%i-%i %s (@%s", info->yearCreated, info->yearReviewed, info->author, info->authorGitHub), "Copyright (c) ", ")"); + if (info->yearCreated == info->yearReviewed) + { + exTextUpdated[4] = TextReplaceBetween(exTextUpdated[3], + TextFormat("%i %s (@%s", info->yearCreated, info->author, info->authorGitHub), "Copyright (c) ", ")"); + } + else + { + exTextUpdated[4] = TextReplaceBetween(exTextUpdated[3], + TextFormat("%i-%i %s (@%s", info->yearCreated, info->yearReviewed, info->author, info->authorGitHub), "Copyright (c) ", ")"); + } // Update window title // String: "InitWindow(screenWidth, screenHeight, "raylib [shaders] example - texture drawing");" From 446f015ac52e26e80611af4f529189e6dd132141 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 5 Sep 2025 23:10:13 +0200 Subject: [PATCH 082/190] Review formating --- src/rcore.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index 898f60b3f..8dd9fd82c 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -2671,24 +2671,25 @@ unsigned char *DecodeDataBase64(const char *text, int *outputSize) for (int i = 0; i < dataSize;) { // Every 4 sixtets must generate 3 octets - if (i + 2 >= dataSize) + if ((i + 2) >= dataSize) { - TRACELOG(LOG_WARNING, "BASE64 decoding error: Input data size is not valid"); + TRACELOG(LOG_WARNING, "BASE64: Decoding error: Input data size is not valid"); break; } unsigned int sixtetA = base64DecodeTable[(unsigned char)text[i]]; unsigned int sixtetB = base64DecodeTable[(unsigned char)text[i + 1]]; - unsigned int sixtetC = (i + 2 < dataSize && (unsigned char)text[i + 2] != '=')? base64DecodeTable[(unsigned char)text[i + 2]] : 0; - unsigned int sixtetD = (i + 3 < dataSize && (unsigned char)text[i + 3] != '=')? base64DecodeTable[(unsigned char)text[i + 3]] : 0; + unsigned int sixtetC = (((i + 2) < dataSize) && (unsigned char)text[i + 2] != '=')? base64DecodeTable[(unsigned char)text[i + 2]] : 0; + unsigned int sixtetD = (((i + 3) < dataSize) && (unsigned char)text[i + 3] != '=')? base64DecodeTable[(unsigned char)text[i + 3]] : 0; unsigned int octetPack = (sixtetA << 18) | (sixtetB << 12) | (sixtetC << 6) | sixtetD; - if (outputCount + 3 > maxOutputSize) + if ((outputCount + 3) > maxOutputSize) { - TRACELOG(LOG_WARNING, "BASE64 decoding: Output data size is too small"); + TRACELOG(LOG_WARNING, "BASE64: Decoding error: Output data size is too small"); break; } + decodedData[outputCount + 0] = (octetPack >> 16) & 0xff; decodedData[outputCount + 1] = (octetPack >> 8) & 0xff; decodedData[outputCount + 2] = octetPack & 0xff; From 4af48fba743d13295abe09af4256b2c9a285931f Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 6 Sep 2025 00:04:07 +0200 Subject: [PATCH 083/190] REXM: REVIEWED: `UpdateSourceMetadata()` and `TextReplaceBetween()` --- tools/rexm/rexm.c | 64 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 45 insertions(+), 19 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index 8eee12ba4..5dc73efe5 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -216,6 +216,24 @@ int main(int argc, char *argv[]) char exRename[64] = { 0 }; // Example re-name, without extension int opCode = OP_NONE; // Operation code: 0-None(Help), 1-Create, 2-Add, 3-Rename, 4-Remove + + /* + // Testing code for UpdateSourceMetadata() + rlExampleInfo test = { 0 }; + strcpy(test.category, "core"); + strcpy(test.name, "core_boring_window"); + test.stars = 4; + strcpy(test.verCreated, "2.9"); + strcpy(test.verUpdated, "6.0"); + test.yearCreated = 2010; + test.yearReviewed = 2026; + strcpy(test.author, "John W. Smith"); + strcpy(test.authorGitHub, "littlejohnny"); + + char exSourcePath[512] = { 0 }; + strcpy(exSourcePath, TextFormat("%s/core/core_basic_window.c", exBasePath)); // WARNING: Cache path for saving + UpdateSourceMetadata(exSourcePath, &test); + */ // Command-line usage mode //-------------------------------------------------------------------------------------- @@ -1940,8 +1958,8 @@ static int ParseExampleInfoLine(const char *line, rlExampleInfo *entry) strcpy(entry->verUpdated, tokens[4]); // Get year created and year reviewed - strcpy(entry->yearCreated, tokens[5]); - strcpy(entry->yearReviewed, tokens[6]); + entry->yearCreated = TextToInteger(tokens[5]); + entry->yearReviewed = TextToInteger(tokens[6]); // Get author and github if (tokens[6][0] == '"') tokens[6] += 1; @@ -2256,10 +2274,14 @@ static void UpdateSourceMetadata(const char *exSrcPath, const rlExampleInfo *inf char *exTextUpdated[6] = { 0 }; // Pointers to multiple updated text versions char exNameFormated[256] = { 0 }; // Example name without category and using spaces + int exNameIndex = TextFindIndex(info->name, "_"); + strcpy(exNameFormated, info->name + exNameIndex + 1); + int exNameLen = strlen(exNameFormated); + for (int i = 0; i < exNameLen; i++) { if (exNameFormated[i] == '_') exNameFormated[i] = ' '; } // Update example header title (line #3 - ALWAYS) // String: "* raylib [shaders] example - texture drawing" - exTextUpdated[0] = TextReplaceBetween(exSrcPath, + exTextUpdated[0] = TextReplaceBetween(exText, TextFormat("%s] example - %s", info->category, exNameFormated), "* raylib [", "\n"); // Update example complexity rating @@ -2280,30 +2302,32 @@ static void UpdateSourceMetadata(const char *exSrcPath, const rlExampleInfo *inf exTextUpdated[2] = TextReplaceBetween(exTextUpdated[1], TextFormat("%s, last time updated with raylib %s", info->verCreated, info->verUpdated), "* Example originally created with raylib ", "\n"); - // Update contributors names - // String: "* Example contributed by Contributor Name (@github_user) and reviewed by Ramon Santamaria (@raysan5)" - exTextUpdated[3] = TextReplaceBetween(exTextUpdated[2], - TextFormat("%s (@%s", info->author, info->authorGitHub), "* Example contributed by ", ")"); - // Update copyright message // String: "* Copyright (c) 2019-2025 Contributor Name (@github_user) and Ramon Santamaria (@raysan5)" if (info->yearCreated == info->yearReviewed) { - exTextUpdated[4] = TextReplaceBetween(exTextUpdated[3], + exTextUpdated[3] = TextReplaceBetween(exTextUpdated[2], TextFormat("%i %s (@%s", info->yearCreated, info->author, info->authorGitHub), "Copyright (c) ", ")"); } else { - exTextUpdated[4] = TextReplaceBetween(exTextUpdated[3], + exTextUpdated[3] = TextReplaceBetween(exTextUpdated[2], TextFormat("%i-%i %s (@%s", info->yearCreated, info->yearReviewed, info->author, info->authorGitHub), "Copyright (c) ", ")"); } // Update window title // String: "InitWindow(screenWidth, screenHeight, "raylib [shaders] example - texture drawing");" - exTextUpdated[5] = TextReplaceBetween(exTextUpdated[4], + exTextUpdated[4] = TextReplaceBetween(exTextUpdated[3], TextFormat("raylib [%s] example - %s", info->category, exNameFormated), "InitWindow(screenWidth, screenHeight, \"", "\");"); - SaveFileText(exSrcPath, exTextUpdated[5]); + // 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]); for (int i = 0; i < 6; i++) { MemFree(exTextUpdated[i]); exTextUpdated[i] = NULL; } @@ -2403,19 +2427,21 @@ static char *TextReplaceBetween(const char *text, const char *replace, const cha if (beginIndex > -1) { - int endIndex = TextFindIndex(text + beginIndex, end); + int beginLen = strlen(begin); + int endIndex = TextFindIndex(text + beginIndex + beginLen, end); - if (beginIndex > -1) + if (endIndex > -1) { + endIndex += (beginIndex + beginLen); + int textLen = strlen(text); int replaceLen = strlen(replace); - int toreplaceLen = (endIndex + beginIndex) - (beginIndex + strlen(begin)); + int toreplaceLen = endIndex - beginIndex - beginLen; result = (char *)RL_CALLOC(textLen + replaceLen - toreplaceLen + 1, sizeof(char)); - int beginLen = strlen(begin); - strncpy(result, text, textLen - beginIndex + strlen(begin)); // Copy first text part - strncpy(result + textLen - beginIndex + beginLen, replace, replaceLen); // Copy replace - strncpy(result + textLen - beginIndex + beginLen + replaceLen, text + beginIndex + toreplaceLen, textLen - endIndex); // Copy end text part + strncpy(result, text, beginIndex + beginLen); // Copy first text part + strncpy(result + beginIndex + beginLen, replace, replaceLen); // Copy replace + strncpy(result + beginIndex + beginLen + replaceLen, text + endIndex, textLen - endIndex); // Copy end text part } } From 16a0b966c3640d679a9bce5c11164945cadd0783 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 6 Sep 2025 00:09:22 +0200 Subject: [PATCH 084/190] Update rexm.c --- tools/rexm/rexm.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index 5dc73efe5..b013646fa 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -526,6 +526,7 @@ int main(int argc, char *argv[]) else if (strcmp(exCategory, "others") == 0) nextCategoryIndex = -1; // Add to EOF // Get required example info from example file header (if provided) + // NOTE: If no example info is provided (other than category/name), just using some default values rlExampleInfo *exInfo = LoadExampleInfo(TextFormat("%s/%s/%s.c", exBasePath, exCategory, exName)); @@ -543,7 +544,7 @@ int main(int argc, char *argv[]) // Add example to collection at the EOF int endIndex = (int)strlen(exCollectionList); memcpy(exCollectionListUpdated, exCollectionList, endIndex); - sprintf(exCollectionListUpdated + endIndex, TextFormat("%s;%s;%s;%s;%s;%s;%s;\"%s\";@%s\n", + sprintf(exCollectionListUpdated + endIndex, TextFormat("%s;%s;%s;%s;%s;%i;%i;\"%s\";@%s\n", exInfo->category, exInfo->name, starsText, exInfo->verCreated, exInfo->verUpdated, exInfo->yearCreated, exInfo->yearReviewed, exInfo->author, exInfo->authorGitHub)); } else @@ -551,8 +552,8 @@ int main(int argc, char *argv[]) // Add example to collection, at the end of the category list int categoryIndex = TextFindIndex(exCollectionList, exCategories[nextCategoryIndex]); memcpy(exCollectionListUpdated, exCollectionList, categoryIndex); - int textWritenSize = sprintf(exCollectionListUpdated + categoryIndex, TextFormat("%s;%s;%s;%s;%s;\"%s\";@%s\n", - exInfo->category, exInfo->name, starsText, exInfo->verCreated, exInfo->verUpdated, exInfo->author, exInfo->authorGitHub)); + int textWritenSize = sprintf(exCollectionListUpdated + categoryIndex, TextFormat("%s;%s;%s;%s;%s;%i;%i\"%s\";@%s\n", + exInfo->category, exInfo->name, starsText, exInfo->verCreated, exInfo->verUpdated, exInfo->yearCreated, exInfo->yearReviewed, exInfo->author, exInfo->authorGitHub)); memcpy(exCollectionListUpdated + categoryIndex + textWritenSize, exCollectionList + categoryIndex, strlen(exCollectionList) - categoryIndex); } From 68a678a5497f0361e1d1f7857c364eb9f83eb814 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 7 Sep 2025 10:18:41 +0200 Subject: [PATCH 085/190] Update rexm.c --- tools/rexm/rexm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index b013646fa..9f3558745 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -1106,6 +1106,9 @@ int main(int argc, char *argv[]) exInfo->status &= ~VALID_MISSING_WEB_OUTPUT; exInfo->status &= ~VALID_MISSING_WEB_METADATA; + + // Update source code header info + UpdateSourceMetadata(TextFormat("%s/%s/%s.html", exBasePath, exInfo->category, exInfo->name), exInfo); } } } From e5cef3c0d8858e0161988682601296f97d9e2506 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 7 Sep 2025 10:46:51 +0200 Subject: [PATCH 086/190] REXM: Reviewed examples source code headers metadata --- examples/README.md | 10 ++-- examples/others/rlgl_compute_shader.c | 4 +- examples/others/rlgl_standalone.c | 2 +- examples/shaders/shaders_view_depth.c | 4 +- examples/textures/textures_image_channel.c | 4 +- tools/rexm/rexm.c | 68 +++++++++++++--------- 6 files changed, 53 insertions(+), 39 deletions(-) diff --git a/examples/README.md b/examples/README.md index 46e995df0..05855670b 100644 --- a/examples/README.md +++ b/examples/README.md @@ -32,7 +32,7 @@ Examples using raylib[core](../src/rcore.c) platform functionality like window c | [core_input_gamepad](core/core_input_gamepad.c) | core_input_gamepad | ⭐☆☆☆ | 1.1 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [core_input_multitouch](core/core_input_multitouch.c) | core_input_multitouch | ⭐☆☆☆ | 2.1 | 2.5 | [Berni](https://github.com/Berni8k) | | [core_input_gestures](core/core_input_gestures.c) | core_input_gestures | ⭐⭐☆☆ | 1.4 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | -| [core_input_gestures_testbed](core/core_input_gestures_testbed.c) | core_input_gestures_testbed | ⭐⭐⭐☆ | 4.6 | 5.6 | [ubkp](https://github.com/ubkp) | +| [core_input_gestures_testbed](core/core_input_gestures_testbed.c) | core_input_gestures_testbed | ⭐⭐⭐☆ | 4.6-dev | 5.6-dev | [ubkp](https://github.com/ubkp) | | [core_input_virtual_controls](core/core_input_virtual_controls.c) | core_input_virtual_controls | ⭐⭐☆☆ | 5.0 | 5.0 | [oblerion](https://github.com/oblerion) | | [core_2d_camera](core/core_2d_camera.c) | core_2d_camera | ⭐⭐☆☆ | 1.5 | 3.0 | [Ramon Santamaria](https://github.com/raysan5) | | [core_2d_camera_mouse_zoom](core/core_2d_camera_mouse_zoom.c) | core_2d_camera_mouse_zoom | ⭐⭐☆☆ | 4.2 | 4.2 | [Jeffery Myers](https://github.com/JeffM2501) | @@ -117,7 +117,7 @@ Examples using raylib textures functionality, including image/textures loading/g | [textures_fog_of_war](textures/textures_fog_of_war.c) | textures_fog_of_war | ⭐⭐⭐☆ | 4.2 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [textures_gif_player](textures/textures_gif_player.c) | textures_gif_player | ⭐⭐⭐☆ | 4.2 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [textures_image_kernel](textures/textures_image_kernel.c) | textures_image_kernel | ⭐⭐⭐⭐️ | 1.3 | 1.3 | [Karim Salem](https://github.com/kimo-s) | -| [textures_image_channel](textures/textures_image_channel.c) | textures_image_channel | ⭐⭐☆☆ | 5.1 | 5.1 | [Bruno Cabral](https://github.com/brccabral) | +| [textures_image_channel](textures/textures_image_channel.c) | textures_image_channel | ⭐⭐☆☆ | 5.1-dev | 5.1-dev | [Bruno Cabral](https://github.com/brccabral) | | [textures_image_rotate](textures/textures_image_rotate.c) | textures_image_rotate | ⭐⭐☆☆ | 1.0 | 1.0 | [Ramon Santamaria](https://github.com/raysan5) | | [textures_textured_curve](textures/textures_textured_curve.c) | textures_textured_curve | ⭐⭐⭐☆ | 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) | models_draw_cube_texture | ⭐⭐☆☆ | 4.5 | 4.5 | [Ramon Santamaria](https://github.com/raysan5) | | [models_gpu_skinning](models/models_gpu_skinning.c) | models_gpu_skinning | ⭐⭐⭐☆ | 4.5 | 4.5 | [Daniel Holden](https://github.com/orangeduck) | | [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 | 5.6 | [Timothy van der Valk](https://github.com/arceryz) | +| [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) | ### category: shaders [29] @@ -202,10 +202,10 @@ Examples using raylib shaders functionality, including shaders loading, paramete | [shaders_shadowmap](shaders/shaders_shadowmap.c) | shaders_shadowmap | ⭐⭐⭐⭐️ | 5.0 | 5.0 | [TheManTheMythTheGameDev](https://github.com/TheManTheMythTheGameDev) | | [shaders_vertex_displacement](shaders/shaders_vertex_displacement.c) | shaders_vertex_displacement | ⭐⭐⭐☆ | 5.0 | 4.5 | [Alex ZH](https://github.com/ZzzhHe) | | [shaders_write_depth](shaders/shaders_write_depth.c) | shaders_write_depth | ⭐⭐☆☆ | 4.2 | 4.2 | [Buğra Alptekin Sarı](https://github.com/BugraAlptekinSari) | -| [shaders_basic_pbr](shaders/shaders_basic_pbr.c) | shaders_basic_pbr | ⭐⭐⭐⭐️ | 5.0 | 5.1 | [Afan OLOVCIC](https://github.com/_DevDad) | +| [shaders_basic_pbr](shaders/shaders_basic_pbr.c) | shaders_basic_pbr | ⭐⭐⭐⭐️ | 5.0 | 5.1-dev | [Afan OLOVCIC](https://github.com/_DevDad) | | [shaders_lightmap](shaders/shaders_lightmap.c) | shaders_lightmap | ⭐⭐⭐☆ | 4.5 | 4.5 | [Jussi Viitala](https://github.com/nullstare) | | [shaders_rounded_rectangle](shaders/shaders_rounded_rectangle.c) | shaders_rounded_rectangle | ⭐⭐⭐☆ | 5.5 | 5.5 | [Anstro Pleuton](https://github.com/anstropleuton) | -| [shaders_view_depth](shaders/shaders_view_depth.c) | shaders_view_depth | ⭐⭐⭐☆ | 5.6 | 5.6 | [Luís Almeida](https://github.com/luis605) | +| [shaders_view_depth](shaders/shaders_view_depth.c) | shaders_view_depth | ⭐⭐⭐☆ | 5.6-dev | 5.6-dev | [Luís Almeida](https://github.com/luis605) | ### category: audio [8] diff --git a/examples/others/rlgl_compute_shader.c b/examples/others/rlgl_compute_shader.c index e62f5abc0..4704b4a7c 100644 --- a/examples/others/rlgl_compute_shader.c +++ b/examples/others/rlgl_compute_shader.c @@ -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; diff --git a/examples/others/rlgl_standalone.c b/examples/others/rlgl_standalone.c index a022863fe..094884ffd 100644 --- a/examples/others/rlgl_standalone.c +++ b/examples/others/rlgl_standalone.c @@ -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...) diff --git a/examples/shaders/shaders_view_depth.c b/examples/shaders/shaders_view_depth.c index f4eecf7e2..f75edde5b 100644 --- a/examples/shaders/shaders_view_depth.c +++ b/examples/shaders/shaders_view_depth.c @@ -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 }; diff --git a/examples/textures/textures_image_channel.c b/examples/textures/textures_image_channel.c index 56e544142..6ebbe2f68 100644 --- a/examples/textures/textures_image_channel.c +++ b/examples/textures/textures_image_channel.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* 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) * @@ -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"); diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index 9f3558745..e1ce5aa89 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -605,9 +605,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), @@ -691,9 +690,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), @@ -1091,12 +1089,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), @@ -1106,9 +1104,12 @@ 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.html", exBasePath, exInfo->category, exInfo->name), exInfo); + UpdateSourceMetadata(TextFormat("%s/%s/%s.c", exBasePath, exInfo->category, exInfo->name), exInfo); } } } @@ -1285,9 +1286,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), @@ -1936,7 +1936,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]); @@ -1966,10 +1966,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; } @@ -2274,8 +2274,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 = NULL; char exNameFormated[256] = { 0 }; // Example name without category and using spaces int exNameIndex = TextFindIndex(info->name, "_"); @@ -2327,11 +2332,16 @@ static void UpdateSourceMetadata(const char *exSrcPath, const rlExampleInfo *inf // 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[4] != NULL) + { + exTextUpdated[5] = TextReplaceBetween(exTextUpdated[4], + TextFormat("%s (@%s", info->author, info->authorGitHub), "* Example contributed by ", ")"); + } + else exTextUpdatedPtr = exTextUpdated[3]; - if (exTextUpdated[5] != NULL) SaveFileText(exSrcPath, exTextUpdated[5]); - else SaveFileText(exSrcPath, exTextUpdated[4]); + if (exTextUpdated[5] != NULL) exTextUpdatedPtr = exTextUpdated[5]; + + SaveFileText(exSourcePath, exTextUpdatedPtr); for (int i = 0; i < 6; i++) { MemFree(exTextUpdated[i]); exTextUpdated[i] = NULL; } @@ -2344,7 +2354,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 @@ -2353,7 +2367,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] = ' '; } @@ -2380,7 +2394,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); From 2d19abb2cfa3e72c419bf94b845a2d1f6d7cfb8d Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 7 Sep 2025 11:04:00 +0200 Subject: [PATCH 087/190] REXM: REVIEWED: Examples header info inconsistencies --- examples/README.md | 10 +++++----- examples/audio/audio_sound_multi.c | 6 +++--- examples/core/core_input_gestures_testbed.c | 2 +- examples/examples_list.txt | 10 +++++----- examples/others/embedded_files_loading.c | 2 +- examples/shaders/shaders_basic_pbr.c | 2 +- examples/shapes/shapes_digital_clock.c | 2 +- examples/textures/textures_image_channel.c | 2 +- tools/rexm/examples_report.md | 8 ++++---- tools/rexm/examples_report_issues.md | 8 ++++---- tools/rexm/rexm.c | 18 ++++++++++++------ 11 files changed, 38 insertions(+), 32 deletions(-) diff --git a/examples/README.md b/examples/README.md index 05855670b..829c7178a 100644 --- a/examples/README.md +++ b/examples/README.md @@ -32,7 +32,7 @@ Examples using raylib[core](../src/rcore.c) platform functionality like window c | [core_input_gamepad](core/core_input_gamepad.c) | core_input_gamepad | ⭐☆☆☆ | 1.1 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [core_input_multitouch](core/core_input_multitouch.c) | core_input_multitouch | ⭐☆☆☆ | 2.1 | 2.5 | [Berni](https://github.com/Berni8k) | | [core_input_gestures](core/core_input_gestures.c) | core_input_gestures | ⭐⭐☆☆ | 1.4 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | -| [core_input_gestures_testbed](core/core_input_gestures_testbed.c) | core_input_gestures_testbed | ⭐⭐⭐☆ | 4.6-dev | 5.6-dev | [ubkp](https://github.com/ubkp) | +| [core_input_gestures_testbed](core/core_input_gestures_testbed.c) | core_input_gestures_testbed | ⭐⭐⭐☆ | 5.0 | 5.6-dev | [ubkp](https://github.com/ubkp) | | [core_input_virtual_controls](core/core_input_virtual_controls.c) | core_input_virtual_controls | ⭐⭐☆☆ | 5.0 | 5.0 | [oblerion](https://github.com/oblerion) | | [core_2d_camera](core/core_2d_camera.c) | core_2d_camera | ⭐⭐☆☆ | 1.5 | 3.0 | [Ramon Santamaria](https://github.com/raysan5) | | [core_2d_camera_mouse_zoom](core/core_2d_camera_mouse_zoom.c) | core_2d_camera_mouse_zoom | ⭐⭐☆☆ | 4.2 | 4.2 | [Jeffery Myers](https://github.com/JeffM2501) | @@ -117,7 +117,7 @@ Examples using raylib textures functionality, including image/textures loading/g | [textures_fog_of_war](textures/textures_fog_of_war.c) | textures_fog_of_war | ⭐⭐⭐☆ | 4.2 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [textures_gif_player](textures/textures_gif_player.c) | textures_gif_player | ⭐⭐⭐☆ | 4.2 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [textures_image_kernel](textures/textures_image_kernel.c) | textures_image_kernel | ⭐⭐⭐⭐️ | 1.3 | 1.3 | [Karim Salem](https://github.com/kimo-s) | -| [textures_image_channel](textures/textures_image_channel.c) | textures_image_channel | ⭐⭐☆☆ | 5.1-dev | 5.1-dev | [Bruno Cabral](https://github.com/brccabral) | +| [textures_image_channel](textures/textures_image_channel.c) | textures_image_channel | ⭐⭐☆☆ | 5.5 | 5.5 | [Bruno Cabral](https://github.com/brccabral) | | [textures_image_rotate](textures/textures_image_rotate.c) | textures_image_rotate | ⭐⭐☆☆ | 1.0 | 1.0 | [Ramon Santamaria](https://github.com/raysan5) | | [textures_textured_curve](textures/textures_textured_curve.c) | textures_textured_curve | ⭐⭐⭐☆ | 4.5 | 4.5 | [Jeffery Myers](https://github.com/JeffM2501) | @@ -202,7 +202,7 @@ Examples using raylib shaders functionality, including shaders loading, paramete | [shaders_shadowmap](shaders/shaders_shadowmap.c) | shaders_shadowmap | ⭐⭐⭐⭐️ | 5.0 | 5.0 | [TheManTheMythTheGameDev](https://github.com/TheManTheMythTheGameDev) | | [shaders_vertex_displacement](shaders/shaders_vertex_displacement.c) | shaders_vertex_displacement | ⭐⭐⭐☆ | 5.0 | 4.5 | [Alex ZH](https://github.com/ZzzhHe) | | [shaders_write_depth](shaders/shaders_write_depth.c) | shaders_write_depth | ⭐⭐☆☆ | 4.2 | 4.2 | [Buğra Alptekin Sarı](https://github.com/BugraAlptekinSari) | -| [shaders_basic_pbr](shaders/shaders_basic_pbr.c) | shaders_basic_pbr | ⭐⭐⭐⭐️ | 5.0 | 5.1-dev | [Afan OLOVCIC](https://github.com/_DevDad) | +| [shaders_basic_pbr](shaders/shaders_basic_pbr.c) | shaders_basic_pbr | ⭐⭐⭐⭐️ | 5.0 | 5.5 | [Afan OLOVCIC](https://github.com/_DevDad) | | [shaders_lightmap](shaders/shaders_lightmap.c) | shaders_lightmap | ⭐⭐⭐☆ | 4.5 | 4.5 | [Jussi Viitala](https://github.com/nullstare) | | [shaders_rounded_rectangle](shaders/shaders_rounded_rectangle.c) | shaders_rounded_rectangle | ⭐⭐⭐☆ | 5.5 | 5.5 | [Anstro Pleuton](https://github.com/anstropleuton) | | [shaders_view_depth](shaders/shaders_view_depth.c) | shaders_view_depth | ⭐⭐⭐☆ | 5.6-dev | 5.6-dev | [Luís Almeida](https://github.com/luis605) | @@ -219,7 +219,7 @@ Examples using raylib audio functionality, including sound/music loading and pla | [audio_sound_loading](audio/audio_sound_loading.c) | audio_sound_loading | ⭐☆☆☆ | 1.1 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | | [audio_mixed_processor](audio/audio_mixed_processor.c) | audio_mixed_processor | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [hkc](https://github.com/hatkidchan) | | [audio_stream_effects](audio/audio_stream_effects.c) | audio_stream_effects | ⭐⭐⭐⭐️ | 4.2 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) | -| [audio_sound_multi](audio/audio_sound_multi.c) | audio_sound_multi | ⭐⭐☆☆ | 4.6 | 4.6 | [Jeffery Myers](https://github.com/JeffM2501) | +| [audio_sound_multi](audio/audio_sound_multi.c) | audio_sound_multi | ⭐⭐☆☆ | 5.0 | 5.0 | [Jeffery Myers](https://github.com/JeffM2501) | | [audio_sound_positioning](audio/audio_sound_positioning.c) | audio_sound_positioning | ⭐⭐☆☆ | 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) | easings_testbed | ⭐⭐⭐☆ | 2.5 | 3.0 | [Juan Miguel López](https://github.com/flashback-fx) | | [raylib_opengl_interop](others/raylib_opengl_interop.c) | raylib_opengl_interop | ⭐⭐⭐⭐️ | 3.8 | 4.0 | [Stephan Soller](https://github.com/arkanis) | | [embedded_files_loading](others/embedded_files_loading.c) | embedded_files_loading | ⭐⭐☆☆ | 3.0 | 3.5 | [Kristian Holmgren](https://github.com/defutura) | -| [raymath_vector_angle](others/raymath_vector_angle.c) | raymath_vector_angle | ⭐⭐☆☆ | 1.0 | 4.6 | [Ramon Santamaria](https://github.com/raysan5) | +| [raymath_vector_angle](others/raymath_vector_angle.c) | raymath_vector_angle | ⭐⭐☆☆ | 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! diff --git a/examples/audio/audio_sound_multi.c b/examples/audio/audio_sound_multi.c index 6f9aea3f9..79949ed3b 100644 --- a/examples/audio/audio_sound_multi.c +++ b/examples/audio/audio_sound_multi.c @@ -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 diff --git a/examples/core/core_input_gestures_testbed.c b/examples/core/core_input_gestures_testbed.c index 5776c9fff..6cea3b03e 100644 --- a/examples/core/core_input_gestures_testbed.c +++ b/examples/core/core_input_gestures_testbed.c @@ -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) * diff --git a/examples/examples_list.txt b/examples/examples_list.txt index c3d3d3be2..3d7707623 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -14,7 +14,7 @@ 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_gestures_testbed;★★★☆;5.0;5.6-dev;2023;2025;"ubkp";@ubkp core;core_input_virtual_controls;★★☆☆;5.0;5.0;2024;2025;"oblerion";@oblerion 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 @@ -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 @@ -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_multi;★★☆☆;5.0;5.0;2023;2025;"Jeffery Myers";@JeffM2501 audio;audio_sound_positioning;★★☆☆;5.5;5.5;2025;0;"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 diff --git a/examples/others/embedded_files_loading.c b/examples/others/embedded_files_loading.c index 10a094f84..b9c34f19e 100644 --- a/examples/others/embedded_files_loading.c +++ b/examples/others/embedded_files_loading.c @@ -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) * diff --git a/examples/shaders/shaders_basic_pbr.c b/examples/shaders/shaders_basic_pbr.c index ec15ab206..75dacd5aa 100644 --- a/examples/shaders/shaders_basic_pbr.c +++ b/examples/shaders/shaders_basic_pbr.c @@ -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) * diff --git a/examples/shapes/shapes_digital_clock.c b/examples/shapes/shapes_digital_clock.c index 82b8ee6bd..aad933be0 100644 --- a/examples/shapes/shapes_digital_clock.c +++ b/examples/shapes/shapes_digital_clock.c @@ -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) * diff --git a/examples/textures/textures_image_channel.c b/examples/textures/textures_image_channel.c index 6ebbe2f68..29622b74d 100644 --- a/examples/textures/textures_image_channel.c +++ b/examples/textures/textures_image_channel.c @@ -6,7 +6,7 @@ * * 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) * diff --git a/tools/rexm/examples_report.md b/tools/rexm/examples_report.md index 9537449a5..9737aff45 100644 --- a/tools/rexm/examples_report.md +++ b/tools/rexm/examples_report.md @@ -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 | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | diff --git a/tools/rexm/examples_report_issues.md b/tools/rexm/examples_report_issues.md index c9d6a2eb6..5c4df4202 100644 --- a/tools/rexm/examples_report_issues.md +++ b/tools/rexm/examples_report_issues.md @@ -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 | ✔ | ❌ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index e1ce5aa89..01f6c69ad 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -1110,6 +1110,8 @@ int main(int argc, char *argv[]) { // Update source code header info UpdateSourceMetadata(TextFormat("%s/%s/%s.c", exBasePath, exInfo->category, exInfo->name), exInfo); + + exInfo->status &= ~VALID_INCONSISTENT_INFO; } } } @@ -1866,12 +1868,16 @@ 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); + 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 strncpy(exInfo->verCreated, RAYLIB_VERSION, 3); // Only pick MAJOR.MINOR // 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); + 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 strncpy(exInfo->verUpdated, RAYLIB_VERSION, 3); // Only pick MAJOR.MINOR // Get example years created/reviewed and creator and github user @@ -2007,8 +2013,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; @@ -2021,8 +2026,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)) From 02d004274c57ca190e66ffc7a21129c17de4ab53 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 7 Sep 2025 11:14:35 +0200 Subject: [PATCH 088/190] Update rexm.c --- tools/rexm/rexm.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index 01f6c69ad..e9b3a02c6 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -67,6 +67,10 @@ #define REXM_MAX_RESOURCE_PATHS 256 + +// Create local commit with changes on example renaming +#define RENAME_AUTO_COMMIT_CREATION + //---------------------------------------------------------------------------------- // Types and Structures Definition //---------------------------------------------------------------------------------- @@ -703,7 +707,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"); @@ -718,7 +722,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 @@ -1871,14 +1875,14 @@ static rlExampleInfo *LoadExampleInfo(const char *exFileName) 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 strncpy(exInfo->verCreated, RAYLIB_VERSION, 3); // Only pick MAJOR.MINOR + 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 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 strncpy(exInfo->verUpdated, RAYLIB_VERSION, 3); // Only pick MAJOR.MINOR + 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 From c0234e5e3d9f84d61415c9d8543bc12997d392e4 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 7 Sep 2025 11:14:56 +0200 Subject: [PATCH 089/190] REXM: RENAME: example: `textures_sprite_anim` --> `textures_sprite_animation` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...ite_anim.c => textures_sprite_animation.c} | 0 ...anim.png => textures_sprite_animation.png} | Bin ...proj => textures_sprite_animation.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/textures/{textures_sprite_anim.c => textures_sprite_animation.c} (100%) rename examples/textures/{textures_sprite_anim.png => textures_sprite_animation.png} (100%) rename projects/VS2022/examples/{textures_sprite_anim.vcxproj => textures_sprite_animation.vcxproj} (98%) diff --git a/examples/Makefile b/examples/Makefile index 89f0ea8b6..31aa1e293 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -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 \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 20a67b7ca..1c1824410 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -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 \ @@ -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 diff --git a/examples/README.md b/examples/README.md index 829c7178a..9b3165c8d 100644 --- a/examples/README.md +++ b/examples/README.md @@ -106,7 +106,7 @@ Examples using raylib textures functionality, including image/textures loading/g | [textures_particles_blending](textures/textures_particles_blending.c) | textures_particles_blending | ⭐☆☆☆ | 1.7 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | | [textures_npatch_drawing](textures/textures_npatch_drawing.c) | textures_npatch_drawing | ⭐⭐⭐☆ | 2.0 | 2.5 | [Jorge A. Gomes](https://github.com/overdev) | | [textures_background_scrolling](textures/textures_background_scrolling.c) | textures_background_scrolling | ⭐☆☆☆ | 2.0 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | -| [textures_sprite_anim](textures/textures_sprite_anim.c) | textures_sprite_anim | ⭐⭐☆☆ | 1.3 | 1.3 | [Ramon Santamaria](https://github.com/raysan5) | +| [textures_sprite_animation](textures/textures_sprite_animation.c) | textures_sprite_animation | ⭐⭐☆☆ | 1.3 | 1.3 | [Ramon Santamaria](https://github.com/raysan5) | | [textures_sprite_button](textures/textures_sprite_button.c) | textures_sprite_button | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [textures_sprite_explosion](textures/textures_sprite_explosion.c) | textures_sprite_explosion | ⭐⭐☆☆ | 2.5 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | | [textures_bunnymark](textures/textures_bunnymark.c) | textures_bunnymark | ⭐⭐⭐☆ | 1.6 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 3d7707623..7fccd740b 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -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 diff --git a/examples/textures/textures_sprite_anim.c b/examples/textures/textures_sprite_animation.c similarity index 100% rename from examples/textures/textures_sprite_anim.c rename to examples/textures/textures_sprite_animation.c diff --git a/examples/textures/textures_sprite_anim.png b/examples/textures/textures_sprite_animation.png similarity index 100% rename from examples/textures/textures_sprite_anim.png rename to examples/textures/textures_sprite_animation.png diff --git a/projects/VS2022/examples/textures_sprite_anim.vcxproj b/projects/VS2022/examples/textures_sprite_animation.vcxproj similarity index 98% rename from projects/VS2022/examples/textures_sprite_anim.vcxproj rename to projects/VS2022/examples/textures_sprite_animation.vcxproj index ee2259dfa..37b0926a9 100644 --- a/projects/VS2022/examples/textures_sprite_anim.vcxproj +++ b/projects/VS2022/examples/textures_sprite_animation.vcxproj @@ -1,569 +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 - - - - {C25D2CC6-80CA-4C8A-BE3B-2E0F4EA5D0CC} - Win32Proj - textures_sprite_anim - 10.0 - textures_sprite_anim - - - - 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\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - 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} - - - - - + + + + + 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 + + + + {C25D2CC6-80CA-4C8A-BE3B-2E0F4EA5D0CC} + Win32Proj + textures_sprite_animation + 10.0 + textures_sprite_animation + + + + 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\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\textures + 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 85af72256..546996972 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -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 From 1bbd4c35660767eeecc0c25b57fb7666ff266cc8 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 7 Sep 2025 11:19:29 +0200 Subject: [PATCH 090/190] REXM: RENAME: example: `shapes_draw_ring` --> `shapes_ring_drawing` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...apes_draw_ring.c => shapes_ring_drawing.c} | 0 ..._draw_ring.png => shapes_ring_drawing.png} | Bin ...ng.vcxproj => shapes_ring_drawing.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/shapes/{shapes_draw_ring.c => shapes_ring_drawing.c} (100%) rename examples/shapes/{shapes_draw_ring.png => shapes_ring_drawing.png} (100%) rename projects/VS2022/examples/{shapes_draw_ring.vcxproj => shapes_ring_drawing.vcxproj} (97%) diff --git a/examples/Makefile b/examples/Makefile index 31aa1e293..09abfea9c 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -544,7 +544,7 @@ SHAPES = \ shapes/shapes_double_pendulum \ shapes/shapes_draw_circle_sector \ shapes/shapes_draw_rectangle_rounded \ - shapes/shapes_draw_ring \ + shapes/shapes_ring_drawing \ shapes/shapes_easings_ball_anim \ shapes/shapes_easings_box_anim \ shapes/shapes_easings_rectangle_array \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 1c1824410..1d3a38933 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -544,7 +544,7 @@ SHAPES = \ shapes/shapes_double_pendulum \ shapes/shapes_draw_circle_sector \ shapes/shapes_draw_rectangle_rounded \ - shapes/shapes_draw_ring \ + shapes/shapes_ring_drawing \ shapes/shapes_easings_ball_anim \ shapes/shapes_easings_box_anim \ shapes/shapes_easings_rectangle_array \ @@ -811,7 +811,7 @@ 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 +shapes/shapes_ring_drawing: shapes/shapes_ring_drawing.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) shapes/shapes_easings_ball_anim: shapes/shapes_easings_ball_anim.c diff --git a/examples/README.md b/examples/README.md index 9b3165c8d..832917ecd 100644 --- a/examples/README.md +++ b/examples/README.md @@ -79,7 +79,7 @@ Examples using raylib shapes drawing functionality, provided by raylib [shapes]( | [shapes_easings_ball_anim](shapes/shapes_easings_ball_anim.c) | shapes_easings_ball_anim | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shapes_easings_box_anim](shapes/shapes_easings_box_anim.c) | shapes_easings_box_anim | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shapes_easings_rectangle_array](shapes/shapes_easings_rectangle_array.c) | shapes_easings_rectangle_array | ⭐⭐⭐☆ | 2.0 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | -| [shapes_draw_ring](shapes/shapes_draw_ring.c) | shapes_draw_ring | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | +| [shapes_ring_drawing](shapes/shapes_ring_drawing.c) | shapes_ring_drawing | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | | [shapes_draw_circle_sector](shapes/shapes_draw_circle_sector.c) | shapes_draw_circle_sector | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | | [shapes_draw_rectangle_rounded](shapes/shapes_draw_rectangle_rounded.c) | shapes_draw_rectangle_rounded | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | | [shapes_top_down_lights](shapes/shapes_top_down_lights.c) | shapes_top_down_lights | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [Jeffery Myers](https://github.com/JeffM2501) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 7fccd740b..04d44d164 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -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 diff --git a/examples/shapes/shapes_draw_ring.c b/examples/shapes/shapes_ring_drawing.c similarity index 100% rename from examples/shapes/shapes_draw_ring.c rename to examples/shapes/shapes_ring_drawing.c diff --git a/examples/shapes/shapes_draw_ring.png b/examples/shapes/shapes_ring_drawing.png similarity index 100% rename from examples/shapes/shapes_draw_ring.png rename to examples/shapes/shapes_ring_drawing.png diff --git a/projects/VS2022/examples/shapes_draw_ring.vcxproj b/projects/VS2022/examples/shapes_ring_drawing.vcxproj similarity index 97% rename from projects/VS2022/examples/shapes_draw_ring.vcxproj rename to projects/VS2022/examples/shapes_ring_drawing.vcxproj index a22feb5e4..cb9b30f35 100644 --- a/projects/VS2022/examples/shapes_draw_ring.vcxproj +++ b/projects/VS2022/examples/shapes_ring_drawing.vcxproj @@ -1,569 +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 - - - - {C4416DA1-9E62-46BA-9CD3-F8963C79E1A1} - Win32Proj - shapes_draw_ring - 10.0 - shapes_draw_ring - - - - 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\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - - - - Level3 - Disabled - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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} - - - - - + + + + + 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 + + + + {C4416DA1-9E62-46BA-9CD3-F8963C79E1A1} + Win32Proj + shapes_ring_drawing + 10.0 + shapes_ring_drawing + + + + 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\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 546996972..72db31240 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -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 From e1dfb4cd4e5da730a8d6a269ad7a2a0bc520364a Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 7 Sep 2025 11:44:03 +0200 Subject: [PATCH 091/190] Update shaders_normal_map.c --- examples/shaders/shaders_normal_map.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/examples/shaders/shaders_normal_map.c b/examples/shaders/shaders_normal_map.c index 16806201b..d2d15e545 100644 --- a/examples/shaders/shaders_normal_map.c +++ b/examples/shaders/shaders_normal_map.c @@ -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-2025 Jeremy Montgomery (@Sir_Irk) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ From 5373ede25c1de6a36ce7c205b798c3430d019d8b Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 7 Sep 2025 11:44:33 +0200 Subject: [PATCH 092/190] REXM: Review examples source code header metadata for consistency --- tools/rexm/rexm.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index e9b3a02c6..b81f391ed 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -67,7 +67,6 @@ #define REXM_MAX_RESOURCE_PATHS 256 - // Create local commit with changes on example renaming #define RENAME_AUTO_COMMIT_CREATION @@ -640,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 @@ -1358,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)); From 8544020023694fac1379df915f5b2aadda1955e4 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 7 Sep 2025 11:47:58 +0200 Subject: [PATCH 093/190] Update required files for example rename --- examples/Makefile | 2 +- examples/Makefile.Web | 8 ++++---- tools/rexm/examples_report.md | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/Makefile b/examples/Makefile index 09abfea9c..b04a462ef 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -544,7 +544,6 @@ SHAPES = \ shapes/shapes_double_pendulum \ shapes/shapes_draw_circle_sector \ shapes/shapes_draw_rectangle_rounded \ - shapes/shapes_ring_drawing \ 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 diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 1d3a38933..50bfd1fd7 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -544,7 +544,6 @@ SHAPES = \ shapes/shapes_double_pendulum \ shapes/shapes_draw_circle_sector \ shapes/shapes_draw_rectangle_rounded \ - shapes/shapes_ring_drawing \ 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 @@ -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_ring_drawing: shapes/shapes_ring_drawing.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) diff --git a/tools/rexm/examples_report.md b/tools/rexm/examples_report.md index 9737aff45..46e3ca125 100644 --- a/tools/rexm/examples_report.md +++ b/tools/rexm/examples_report.md @@ -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 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | From 4020885c35ffb808b6828530dde8d6e633cba0c7 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 7 Sep 2025 11:54:36 +0200 Subject: [PATCH 094/190] REXM: Reviewed `UpdateSourceMetadata()` --- tools/rexm/rexm.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index b81f391ed..e28efdf21 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -2305,7 +2305,7 @@ static void UpdateSourceMetadata(const char *exSrcPath, const rlExampleInfo *inf char *exText = LoadFileText(exSourcePath); char *exTextUpdated[6] = { 0 }; // Pointers to multiple updated text versions - char *exTextUpdatedPtr = NULL; + 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, "_"); @@ -2315,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" @@ -2328,45 +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) - if (exTextUpdated[4] != NULL) - { - exTextUpdated[5] = TextReplaceBetween(exTextUpdated[4], + exTextUpdated[5] = TextReplaceBetween(exTextUpdatedPtr, TextFormat("%s (@%s", info->author, info->authorGitHub), "* Example contributed by ", ")"); - } - else exTextUpdatedPtr = exTextUpdated[3]; - if (exTextUpdated[5] != NULL) exTextUpdatedPtr = exTextUpdated[5]; - SaveFileText(exSourcePath, exTextUpdatedPtr); + if (exTextUpdatedPtr != NULL) SaveFileText(exSourcePath, exTextUpdatedPtr); for (int i = 0; i < 6; i++) { MemFree(exTextUpdated[i]); exTextUpdated[i] = NULL; } From 25f4e544d1401e96d586d70b73147fb64a41b15e Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 7 Sep 2025 12:01:51 +0200 Subject: [PATCH 095/190] REXM: UPDATED: Examples source code header info, aligned with name --- examples/audio/audio_mixed_processor.c | 4 ++-- examples/audio/audio_module_playing.c | 4 ++-- examples/audio/audio_music_stream.c | 4 ++-- examples/audio/audio_raw_stream.c | 4 ++-- examples/audio/audio_sound_loading.c | 4 ++-- examples/audio/audio_sound_positioning.c | 6 +++--- examples/core/core_3d_camera_fps.c | 6 +++--- examples/core/core_input_gamepad.c | 4 ++-- examples/core/core_input_keys.c | 4 ++-- examples/core/core_input_mouse.c | 4 ++-- examples/core/core_random_sequence.c | 4 ++-- examples/core/core_random_values.c | 4 ++-- examples/core/core_smooth_pixelperfect.c | 4 ++-- examples/core/core_storage_values.c | 4 ++-- examples/core/core_window_letterbox.c | 4 ++-- examples/core/core_world_screen.c | 4 ++-- examples/examples_list.txt | 6 +++--- examples/models/models_animation.c | 4 ++-- examples/models/models_billboard_rendering.c | 4 ++-- examples/models/models_cubicmap.c | 4 ++-- examples/models/models_heightmap.c | 4 ++-- examples/models/models_loading.c | 4 ++-- examples/models/models_loading_gltf.c | 4 ++-- examples/models/models_loading_m3d.c | 4 ++-- examples/models/models_loading_vox.c | 4 ++-- examples/models/models_yaw_pitch_roll.c | 4 ++-- examples/others/raymath_vector_angle.c | 6 +++--- examples/shaders/shaders_custom_uniform.c | 4 ++-- examples/shaders/shaders_eratosthenes.c | 4 ++-- examples/shaders/shaders_fog_rendering.c | 4 ++-- examples/shaders/shaders_hybrid_render.c | 4 ++-- examples/shaders/shaders_julia_set.c | 4 ++-- examples/shaders/shaders_multi_sample2d.c | 4 ++-- examples/shaders/shaders_normal_map.c | 2 +- examples/shaders/shaders_palette_switch.c | 4 ++-- examples/shaders/shaders_postprocessing.c | 4 ++-- examples/shaders/shaders_raymarching.c | 4 ++-- examples/shaders/shaders_rounded_rectangle.c | 2 +- examples/shaders/shaders_shapes_textures.c | 4 ++-- examples/shaders/shaders_simple_mask.c | 4 ++-- examples/shaders/shaders_spotlight.c | 4 ++-- examples/shaders/shaders_texture_rendering.c | 4 ++-- examples/shaders/shaders_write_depth.c | 4 ++-- examples/shapes/shapes_basic_shapes.c | 4 ++-- examples/shapes/shapes_lines_bezier.c | 4 ++-- examples/shapes/shapes_logo_raylib.c | 4 ++-- examples/shapes/shapes_logo_raylib_anim.c | 4 ++-- examples/shapes/shapes_rectangle_advanced.c | 4 ++-- examples/shapes/shapes_rectangle_scaling.c | 4 ++-- examples/shapes/shapes_ring_drawing.c | 4 ++-- examples/text/text_3d_drawing.c | 4 ++-- examples/text/text_font_filters.c | 4 ++-- examples/text/text_font_sdf.c | 4 ++-- examples/text/text_font_spritefont.c | 4 ++-- examples/text/text_format_text.c | 4 ++-- examples/text/text_writing_anim.c | 4 ++-- examples/textures/textures_gif_player.c | 4 ++-- examples/textures/textures_image_generation.c | 4 ++-- examples/textures/textures_image_kernel.c | 4 ++-- examples/textures/textures_image_rotate.c | 4 ++-- examples/textures/textures_image_text.c | 4 ++-- examples/textures/textures_logo_raylib.c | 4 ++-- examples/textures/textures_npatch_drawing.c | 4 ++-- examples/textures/textures_polygon_drawing.c | 4 ++-- examples/textures/textures_raw_data.c | 4 ++-- examples/textures/textures_srcrec_dstrec.c | 4 ++-- examples/textures/textures_tiled_drawing.c | 4 ++-- examples/textures/textures_to_image.c | 4 ++-- 68 files changed, 138 insertions(+), 138 deletions(-) diff --git a/examples/audio/audio_mixed_processor.c b/examples/audio/audio_mixed_processor.c index be6a3c8f9..b2d64642d 100644 --- a/examples/audio/audio_mixed_processor.c +++ b/examples/audio/audio_mixed_processor.c @@ -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 diff --git a/examples/audio/audio_module_playing.c b/examples/audio/audio_module_playing.c index 2d0834e2b..6cf888fcb 100644 --- a/examples/audio/audio_module_playing.c +++ b/examples/audio/audio_module_playing.c @@ -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 diff --git a/examples/audio/audio_music_stream.c b/examples/audio/audio_music_stream.c index bfe99c575..48be49e42 100644 --- a/examples/audio/audio_music_stream.c +++ b/examples/audio/audio_music_stream.c @@ -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 diff --git a/examples/audio/audio_raw_stream.c b/examples/audio/audio_raw_stream.c index 95505c3f6..4deae2090 100644 --- a/examples/audio/audio_raw_stream.c +++ b/examples/audio/audio_raw_stream.c @@ -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 diff --git a/examples/audio/audio_sound_loading.c b/examples/audio/audio_sound_loading.c index 5fb356264..97e26a450 100644 --- a/examples/audio/audio_sound_loading.c +++ b/examples/audio/audio_sound_loading.c @@ -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 diff --git a/examples/audio/audio_sound_positioning.c b/examples/audio/audio_sound_positioning.c index 9f09420a2..9f9de7bd4 100644 --- a/examples/audio/audio_sound_positioning.c +++ b/examples/audio/audio_sound_positioning.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [audio] example - 3d sound positioning +* raylib [audio] example - sound positioning * * Example complexity rating: [★★☆☆] 2/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 Le Juez Victor (@Bigfoot71) +* Copyright (c) 2025-0 Le Juez Victor (@Bigfoot71) * ********************************************************************************************/ @@ -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(); diff --git a/examples/core/core_3d_camera_fps.c b/examples/core/core_3d_camera_fps.c index 980660b30..0b1a5bdc5 100644 --- a/examples/core/core_3d_camera_fps.c +++ b/examples/core/core_3d_camera_fps.c @@ -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 diff --git a/examples/core/core_input_gamepad.c b/examples/core/core_input_gamepad.c index aae6e4b55..1da1c4ce0 100644 --- a/examples/core/core_input_gamepad.c +++ b/examples/core/core_input_gamepad.c @@ -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"); diff --git a/examples/core/core_input_keys.c b/examples/core/core_input_keys.c index 6ab099c4e..c5b526178 100644 --- a/examples/core/core_input_keys.c +++ b/examples/core/core_input_keys.c @@ -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 }; diff --git a/examples/core/core_input_mouse.c b/examples/core/core_input_mouse.c index d892b4e9b..bbe519f82 100644 --- a/examples/core/core_input_mouse.c +++ b/examples/core/core_input_mouse.c @@ -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; diff --git a/examples/core/core_random_sequence.c b/examples/core/core_random_sequence.c index e3b54976a..89753b649 100644 --- a/examples/core/core_random_sequence.c +++ b/examples/core/core_random_sequence.c @@ -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; diff --git a/examples/core/core_random_values.c b/examples/core/core_random_values.c index 911de2949..7bc976d24 100644 --- a/examples/core/core_random_values.c +++ b/examples/core/core_random_values.c @@ -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)" diff --git a/examples/core/core_smooth_pixelperfect.c b/examples/core/core_smooth_pixelperfect.c index 9570ce482..2b01f3fef 100644 --- a/examples/core/core_smooth_pixelperfect.c +++ b/examples/core/core_smooth_pixelperfect.c @@ -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; diff --git a/examples/core/core_storage_values.c b/examples/core/core_storage_values.c index b4645bf72..a49dba57b 100644 --- a/examples/core/core_storage_values.c +++ b/examples/core/core_storage_values.c @@ -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; diff --git a/examples/core/core_window_letterbox.c b/examples/core/core_window_letterbox.c index 4bbf12cfe..be8c3da4d 100644 --- a/examples/core/core_window_letterbox.c +++ b/examples/core/core_window_letterbox.c @@ -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; diff --git a/examples/core/core_world_screen.c b/examples/core/core_world_screen.c index 0d7d9242c..b7fada03e 100644 --- a/examples/core/core_world_screen.c +++ b/examples/core/core_world_screen.c @@ -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 }; diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 04d44d164..5c5732da5 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -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 @@ -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 @@ -160,7 +160,7 @@ audio;audio_sound_loading;★☆☆☆;1.1;3.5;2014;2025;"Ramon Santamaria";@ray 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;★★☆☆;5.0;5.0;2023;2025;"Jeffery Myers";@JeffM2501 -audio;audio_sound_positioning;★★☆☆;5.5;5.5;2025;0;"Le Juez Victor";@Bigfoot71 +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 diff --git a/examples/models/models_animation.c b/examples/models/models_animation.c index 1f456e5ea..accb9c8ff 100644 --- a/examples/models/models_animation.c +++ b/examples/models/models_animation.c @@ -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 }; diff --git a/examples/models/models_billboard_rendering.c b/examples/models/models_billboard_rendering.c index 40266c277..a637a4df4 100644 --- a/examples/models/models_billboard_rendering.c +++ b/examples/models/models_billboard_rendering.c @@ -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 }; diff --git a/examples/models/models_cubicmap.c b/examples/models/models_cubicmap.c index fe6c6604f..d6e1e04eb 100644 --- a/examples/models/models_cubicmap.c +++ b/examples/models/models_cubicmap.c @@ -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 }; diff --git a/examples/models/models_heightmap.c b/examples/models/models_heightmap.c index a11f133af..89583fca0 100644 --- a/examples/models/models_heightmap.c +++ b/examples/models/models_heightmap.c @@ -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 }; diff --git a/examples/models/models_loading.c b/examples/models/models_loading.c index 356043579..650b3126f 100644 --- a/examples/models/models_loading.c +++ b/examples/models/models_loading.c @@ -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 }; diff --git a/examples/models/models_loading_gltf.c b/examples/models/models_loading_gltf.c index a827ec154..7729da13f 100644 --- a/examples/models/models_loading_gltf.c +++ b/examples/models/models_loading_gltf.c @@ -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 }; diff --git a/examples/models/models_loading_m3d.c b/examples/models/models_loading_m3d.c index e8c779de8..452a21610 100644 --- a/examples/models/models_loading_m3d.c +++ b/examples/models/models_loading_m3d.c @@ -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 }; diff --git a/examples/models/models_loading_vox.c b/examples/models/models_loading_vox.c index cf54a1c25..956c181a0 100644 --- a/examples/models/models_loading_vox.c +++ b/examples/models/models_loading_vox.c @@ -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 }; diff --git a/examples/models/models_yaw_pitch_roll.c b/examples/models/models_yaw_pitch_roll.c index 954c99ded..c19aafdcd 100644 --- a/examples/models/models_yaw_pitch_roll.c +++ b/examples/models/models_yaw_pitch_roll.c @@ -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 diff --git a/examples/others/raymath_vector_angle.c b/examples/others/raymath_vector_angle.c index d98b158ed..cded99e8b 100644 --- a/examples/others/raymath_vector_angle.c +++ b/examples/others/raymath_vector_angle.c @@ -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 }); diff --git a/examples/shaders/shaders_custom_uniform.c b/examples/shaders/shaders_custom_uniform.c index f599a4a0f..24078c264 100644 --- a/examples/shaders/shaders_custom_uniform.c +++ b/examples/shaders/shaders_custom_uniform.c @@ -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 }; diff --git a/examples/shaders/shaders_eratosthenes.c b/examples/shaders/shaders_eratosthenes.c index 4a974c9c8..854bb5c66 100644 --- a/examples/shaders/shaders_eratosthenes.c +++ b/examples/shaders/shaders_eratosthenes.c @@ -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); diff --git a/examples/shaders/shaders_fog_rendering.c b/examples/shaders/shaders_fog_rendering.c index 3307f88f4..bc0e54ceb 100644 --- a/examples/shaders/shaders_fog_rendering.c +++ b/examples/shaders/shaders_fog_rendering.c @@ -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 }; diff --git a/examples/shaders/shaders_hybrid_render.c b/examples/shaders/shaders_hybrid_render.c index 9882306a0..066e6e0b6 100644 --- a/examples/shaders/shaders_hybrid_render.c +++ b/examples/shaders/shaders_hybrid_render.c @@ -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)); diff --git a/examples/shaders/shaders_julia_set.c b/examples/shaders/shaders_julia_set.c index a9c5f5944..1b7b9fb90 100644 --- a/examples/shaders/shaders_julia_set.c +++ b/examples/shaders/shaders_julia_set.c @@ -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 diff --git a/examples/shaders/shaders_multi_sample2d.c b/examples/shaders/shaders_multi_sample2d.c index 4e732ce1a..41980a3f1 100644 --- a/examples/shaders/shaders_multi_sample2d.c +++ b/examples/shaders/shaders_multi_sample2d.c @@ -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); diff --git a/examples/shaders/shaders_normal_map.c b/examples/shaders/shaders_normal_map.c index d2d15e545..efdd6cb72 100644 --- a/examples/shaders/shaders_normal_map.c +++ b/examples/shaders/shaders_normal_map.c @@ -14,7 +14,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 Jeremy Montgomery (@Sir_Irk) and Ramon Santamaria (@raysan5) +* Copyright (c) 2025 Jeremy Montgomery (@Sir_Irk) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_palette_switch.c b/examples/shaders/shaders_palette_switch.c index 346bc171c..048fe7fbc 100644 --- a/examples/shaders/shaders_palette_switch.c +++ b/examples/shaders/shaders_palette_switch.c @@ -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 diff --git a/examples/shaders/shaders_postprocessing.c b/examples/shaders/shaders_postprocessing.c index 117fa3886..c30686a7a 100644 --- a/examples/shaders/shaders_postprocessing.c +++ b/examples/shaders/shaders_postprocessing.c @@ -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 }; diff --git a/examples/shaders/shaders_raymarching.c b/examples/shaders/shaders_raymarching.c index 744181680..77e0442c4 100644 --- a/examples/shaders/shaders_raymarching.c +++ b/examples/shaders/shaders_raymarching.c @@ -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 diff --git a/examples/shaders/shaders_rounded_rectangle.c b/examples/shaders/shaders_rounded_rectangle.c index ddfab299c..64814fe6e 100644 --- a/examples/shaders/shaders_rounded_rectangle.c +++ b/examples/shaders/shaders_rounded_rectangle.c @@ -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) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_shapes_textures.c b/examples/shaders/shaders_shapes_textures.c index 080cfabbd..1517f0de8 100644 --- a/examples/shaders/shaders_shapes_textures.c +++ b/examples/shaders/shaders_shapes_textures.c @@ -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"); diff --git a/examples/shaders/shaders_simple_mask.c b/examples/shaders/shaders_simple_mask.c index df8310a9d..9df870188 100644 --- a/examples/shaders/shaders_simple_mask.c +++ b/examples/shaders/shaders_simple_mask.c @@ -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 }; diff --git a/examples/shaders/shaders_spotlight.c b/examples/shaders/shaders_spotlight.c index c7b35a262..4bff79e02 100644 --- a/examples/shaders/shaders_spotlight.c +++ b/examples/shaders/shaders_spotlight.c @@ -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"); diff --git a/examples/shaders/shaders_texture_rendering.c b/examples/shaders/shaders_texture_rendering.c index 3720f1954..b89c2a756 100644 --- a/examples/shaders/shaders_texture_rendering.c +++ b/examples/shaders/shaders_texture_rendering.c @@ -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 diff --git a/examples/shaders/shaders_write_depth.c b/examples/shaders/shaders_write_depth.c index a80eb83e5..677d0fb03 100644 --- a/examples/shaders/shaders_write_depth.c +++ b/examples/shaders/shaders_write_depth.c @@ -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)); diff --git a/examples/shapes/shapes_basic_shapes.c b/examples/shapes/shapes_basic_shapes.c index d0801ab0b..77f2246f0 100644 --- a/examples/shapes/shapes_basic_shapes.c +++ b/examples/shapes/shapes_basic_shapes.c @@ -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; diff --git a/examples/shapes/shapes_lines_bezier.c b/examples/shapes/shapes_lines_bezier.c index 1e0600edf..61def14b9 100644 --- a/examples/shapes/shapes_lines_bezier.c +++ b/examples/shapes/shapes_lines_bezier.c @@ -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 }; diff --git a/examples/shapes/shapes_logo_raylib.c b/examples/shapes/shapes_logo_raylib.c index 48db5d78f..aa770860e 100644 --- a/examples/shapes/shapes_logo_raylib.c +++ b/examples/shapes/shapes_logo_raylib.c @@ -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 //-------------------------------------------------------------------------------------- diff --git a/examples/shapes/shapes_logo_raylib_anim.c b/examples/shapes/shapes_logo_raylib_anim.c index 81c1e6d3f..ec6b043f4 100644 --- a/examples/shapes/shapes_logo_raylib_anim.c +++ b/examples/shapes/shapes_logo_raylib_anim.c @@ -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; diff --git a/examples/shapes/shapes_rectangle_advanced.c b/examples/shapes/shapes_rectangle_advanced.c index 5bd15cc55..15487ee55 100644 --- a/examples/shapes/shapes_rectangle_advanced.c +++ b/examples/shapes/shapes_rectangle_advanced.c @@ -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 //-------------------------------------------------------------------------------------- diff --git a/examples/shapes/shapes_rectangle_scaling.c b/examples/shapes/shapes_rectangle_scaling.c index 5ee03d7aa..530007f29 100644 --- a/examples/shapes/shapes_rectangle_scaling.c +++ b/examples/shapes/shapes_rectangle_scaling.c @@ -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 }; diff --git a/examples/shapes/shapes_ring_drawing.c b/examples/shapes/shapes_ring_drawing.c index c3a13729d..890747b7a 100644 --- a/examples/shapes/shapes_ring_drawing.c +++ b/examples/shapes/shapes_ring_drawing.c @@ -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 }; diff --git a/examples/text/text_3d_drawing.c b/examples/text/text_3d_drawing.c index 0202b49f7..202494bf7 100644 --- a/examples/text/text_3d_drawing.c +++ b/examples/text/text_3d_drawing.c @@ -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 diff --git a/examples/text/text_font_filters.c b/examples/text/text_font_filters.c index efd074c54..81a2e0394 100644 --- a/examples/text/text_font_filters.c +++ b/examples/text/text_font_filters.c @@ -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"; diff --git a/examples/text/text_font_sdf.c b/examples/text/text_font_sdf.c index d81e8b447..744450fa6 100644 --- a/examples/text/text_font_sdf.c +++ b/examples/text/text_font_sdf.c @@ -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) diff --git a/examples/text/text_font_spritefont.c b/examples/text/text_font_spritefont.c index 8c1a3b102..b78816ec9 100644 --- a/examples/text/text_font_spritefont.c +++ b/examples/text/text_font_spritefont.c @@ -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..."; diff --git a/examples/text/text_format_text.c b/examples/text/text_format_text.c index 2eadf05c2..7032a027b 100644 --- a/examples/text/text_format_text.c +++ b/examples/text/text_format_text.c @@ -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; diff --git a/examples/text/text_writing_anim.c b/examples/text/text_writing_anim.c index e52f96a03..c11d2399e 100644 --- a/examples/text/text_writing_anim.c +++ b/examples/text/text_writing_anim.c @@ -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! ;)"; diff --git a/examples/textures/textures_gif_player.c b/examples/textures/textures_gif_player.c index f62205b63..cdd95fde2 100644 --- a/examples/textures/textures_gif_player.c +++ b/examples/textures/textures_gif_player.c @@ -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; diff --git a/examples/textures/textures_image_generation.c b/examples/textures/textures_image_generation.c index f616c6bfe..8254d2e62 100644 --- a/examples/textures/textures_image_generation.c +++ b/examples/textures/textures_image_generation.c @@ -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); diff --git a/examples/textures/textures_image_kernel.c b/examples/textures/textures_image_kernel.c index 3c89bd620..6ecb1966d 100644 --- a/examples/textures/textures_image_kernel.c +++ b/examples/textures/textures_image_kernel.c @@ -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) diff --git a/examples/textures/textures_image_rotate.c b/examples/textures/textures_image_rotate.c index cf3278d22..f508adfc8 100644 --- a/examples/textures/textures_image_rotate.c +++ b/examples/textures/textures_image_rotate.c @@ -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"); diff --git a/examples/textures/textures_image_text.c b/examples/textures/textures_image_text.c index 354e15fad..e6777261a 100644 --- a/examples/textures/textures_image_text.c +++ b/examples/textures/textures_image_text.c @@ -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) diff --git a/examples/textures/textures_logo_raylib.c b/examples/textures/textures_logo_raylib.c index 4fb176217..cf767a631 100644 --- a/examples/textures/textures_logo_raylib.c +++ b/examples/textures/textures_logo_raylib.c @@ -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 diff --git a/examples/textures/textures_npatch_drawing.c b/examples/textures/textures_npatch_drawing.c index 005fc845e..9a7829a2b 100644 --- a/examples/textures/textures_npatch_drawing.c +++ b/examples/textures/textures_npatch_drawing.c @@ -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"); diff --git a/examples/textures/textures_polygon_drawing.c b/examples/textures/textures_polygon_drawing.c index 6a9e357d8..8005ad1a1 100644 --- a/examples/textures/textures_polygon_drawing.c +++ b/examples/textures/textures_polygon_drawing.c @@ -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] = { diff --git a/examples/textures/textures_raw_data.c b/examples/textures/textures_raw_data.c index 922ba575f..c38983b53 100644 --- a/examples/textures/textures_raw_data.c +++ b/examples/textures/textures_raw_data.c @@ -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) diff --git a/examples/textures/textures_srcrec_dstrec.c b/examples/textures/textures_srcrec_dstrec.c index 437587a79..8e9984009 100644 --- a/examples/textures/textures_srcrec_dstrec.c +++ b/examples/textures/textures_srcrec_dstrec.c @@ -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) diff --git a/examples/textures/textures_tiled_drawing.c b/examples/textures/textures_tiled_drawing.c index e3262be01..10bcad1ad 100644 --- a/examples/textures/textures_tiled_drawing.c +++ b/examples/textures/textures_tiled_drawing.c @@ -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"); diff --git a/examples/textures/textures_to_image.c b/examples/textures/textures_to_image.c index 16d55f84c..4da7ed553 100644 --- a/examples/textures/textures_to_image.c +++ b/examples/textures/textures_to_image.c @@ -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) From 688cf680c0d7d3c10e265ef5bb3aa847698216ed Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 7 Sep 2025 12:03:16 +0200 Subject: [PATCH 096/190] Update examples_list.txt --- examples/examples_list.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 5c5732da5..1a8407a48 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -15,7 +15,7 @@ core;core_input_gamepad;★☆☆☆;1.1;4.2;2013;2025;"Ramon Santamaria";@raysa 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;★★★☆;5.0;5.6-dev;2023;2025;"ubkp";@ubkp -core;core_input_virtual_controls;★★☆☆;5.0;5.0;2024;2025;"oblerion";@oblerion +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 From 266b8efbd6e21146a8c6aeefaaff4fa4e0af7aac Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 7 Sep 2025 12:05:11 +0200 Subject: [PATCH 097/190] REXM: Reviewed examples inconsistencies --- examples/README.md | 2 +- examples/audio/audio_sound_positioning.c | 2 +- examples/core/core_input_virtual_controls.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/README.md b/examples/README.md index 832917ecd..a3c361913 100644 --- a/examples/README.md +++ b/examples/README.md @@ -33,7 +33,7 @@ Examples using raylib[core](../src/rcore.c) platform functionality like window c | [core_input_multitouch](core/core_input_multitouch.c) | core_input_multitouch | ⭐☆☆☆ | 2.1 | 2.5 | [Berni](https://github.com/Berni8k) | | [core_input_gestures](core/core_input_gestures.c) | core_input_gestures | ⭐⭐☆☆ | 1.4 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [core_input_gestures_testbed](core/core_input_gestures_testbed.c) | core_input_gestures_testbed | ⭐⭐⭐☆ | 5.0 | 5.6-dev | [ubkp](https://github.com/ubkp) | -| [core_input_virtual_controls](core/core_input_virtual_controls.c) | core_input_virtual_controls | ⭐⭐☆☆ | 5.0 | 5.0 | [oblerion](https://github.com/oblerion) | +| [core_input_virtual_controls](core/core_input_virtual_controls.c) | core_input_virtual_controls | ⭐⭐☆☆ | 5.0 | 5.0 | [GreenSnakeLinux](https://github.com/GreenSnakeLinux) | | [core_2d_camera](core/core_2d_camera.c) | core_2d_camera | ⭐⭐☆☆ | 1.5 | 3.0 | [Ramon Santamaria](https://github.com/raysan5) | | [core_2d_camera_mouse_zoom](core/core_2d_camera_mouse_zoom.c) | core_2d_camera_mouse_zoom | ⭐⭐☆☆ | 4.2 | 4.2 | [Jeffery Myers](https://github.com/JeffM2501) | | [core_2d_camera_platformer](core/core_2d_camera_platformer.c) | core_2d_camera_platformer | ⭐⭐⭐☆ | 2.5 | 3.0 | [arvyy](https://github.com/arvyy) | diff --git a/examples/audio/audio_sound_positioning.c b/examples/audio/audio_sound_positioning.c index 9f9de7bd4..69756fa23 100644 --- a/examples/audio/audio_sound_positioning.c +++ b/examples/audio/audio_sound_positioning.c @@ -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-0 Le Juez Victor (@Bigfoot71) +* Copyright (c) 2025 Le Juez Victor (@Bigfoot71) * ********************************************************************************************/ diff --git a/examples/core/core_input_virtual_controls.c b/examples/core/core_input_virtual_controls.c index 006629a2a..6cae4b6c7 100644 --- a/examples/core/core_input_virtual_controls.c +++ b/examples/core/core_input_virtual_controls.c @@ -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) * ********************************************************************************************/ From 16fbca2e8bfad9940af0e1a0782c43808eee29ba Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:27:00 +0200 Subject: [PATCH 098/190] REXM: RENAME: example: `shapes_draw_rectangle_rounded` --> `shapes_rounded_rectangle_drawing` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...d.c => shapes_rounded_rectangle_drawing.c} | 0 ...g => shapes_rounded_rectangle_drawing.png} | Bin ... shapes_rounded_rectangle_drawing.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/shapes/{shapes_draw_rectangle_rounded.c => shapes_rounded_rectangle_drawing.c} (100%) rename examples/shapes/{shapes_draw_rectangle_rounded.png => shapes_rounded_rectangle_drawing.png} (100%) rename projects/VS2022/examples/{shapes_draw_rectangle_rounded.vcxproj => shapes_rounded_rectangle_drawing.vcxproj} (97%) diff --git a/examples/Makefile b/examples/Makefile index b04a462ef..46138356d 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -543,7 +543,7 @@ SHAPES = \ shapes/shapes_digital_clock \ shapes/shapes_double_pendulum \ shapes/shapes_draw_circle_sector \ - shapes/shapes_draw_rectangle_rounded \ + shapes/shapes_rounded_rectangle_drawing \ shapes/shapes_easings_ball_anim \ shapes/shapes_easings_box_anim \ shapes/shapes_easings_rectangle_array \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 50bfd1fd7..ced681f62 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -543,7 +543,7 @@ SHAPES = \ shapes/shapes_digital_clock \ shapes/shapes_double_pendulum \ shapes/shapes_draw_circle_sector \ - shapes/shapes_draw_rectangle_rounded \ + shapes/shapes_rounded_rectangle_drawing \ shapes/shapes_easings_ball_anim \ shapes/shapes_easings_box_anim \ shapes/shapes_easings_rectangle_array \ @@ -808,7 +808,7 @@ shapes/shapes_double_pendulum: shapes/shapes_double_pendulum.c shapes/shapes_draw_circle_sector: shapes/shapes_draw_circle_sector.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -shapes/shapes_draw_rectangle_rounded: shapes/shapes_draw_rectangle_rounded.c +shapes/shapes_rounded_rectangle_drawing: shapes/shapes_rounded_rectangle_drawing.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) shapes/shapes_easings_ball_anim: shapes/shapes_easings_ball_anim.c diff --git a/examples/README.md b/examples/README.md index a3c361913..58012f926 100644 --- a/examples/README.md +++ b/examples/README.md @@ -81,7 +81,7 @@ Examples using raylib shapes drawing functionality, provided by raylib [shapes]( | [shapes_easings_rectangle_array](shapes/shapes_easings_rectangle_array.c) | shapes_easings_rectangle_array | ⭐⭐⭐☆ | 2.0 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shapes_ring_drawing](shapes/shapes_ring_drawing.c) | shapes_ring_drawing | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | | [shapes_draw_circle_sector](shapes/shapes_draw_circle_sector.c) | shapes_draw_circle_sector | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | -| [shapes_draw_rectangle_rounded](shapes/shapes_draw_rectangle_rounded.c) | shapes_draw_rectangle_rounded | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | +| [shapes_rounded_rectangle_drawing](shapes/shapes_rounded_rectangle_drawing.c) | shapes_rounded_rectangle_drawing | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | | [shapes_top_down_lights](shapes/shapes_top_down_lights.c) | shapes_top_down_lights | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [Jeffery Myers](https://github.com/JeffM2501) | | [shapes_rectangle_advanced](shapes/shapes_rectangle_advanced.c) | shapes_rectangle_advanced | ⭐⭐⭐⭐️ | 5.5 | 5.5 | [Everton Jr.](https://github.com/evertonse) | | [shapes_splines_drawing](shapes/shapes_splines_drawing.c) | shapes_splines_drawing | ⭐⭐⭐☆ | 5.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 1a8407a48..dd47cfd9c 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -56,7 +56,7 @@ shapes;shapes_easings_box_anim;★★☆☆;2.5;2.5;2014;2025;"Ramon Santamaria" shapes;shapes_easings_rectangle_array;★★★☆;2.0;2.5;2014;2025;"Ramon Santamaria";@raysan5 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_rounded_rectangle_drawing;★★★☆;2.5;2.5;2018;2025;"Vlad Adrian";@demizdor shapes;shapes_top_down_lights;★★★★;4.2;4.2;2022;2025;"Jeffery Myers";@JeffM2501 shapes;shapes_rectangle_advanced;★★★★;5.5;5.5;2024;2025;"Everton Jr.";@evertonse shapes;shapes_splines_drawing;★★★☆;5.0;5.0;2023;2025;"Ramon Santamaria";@raysan5 diff --git a/examples/shapes/shapes_draw_rectangle_rounded.c b/examples/shapes/shapes_rounded_rectangle_drawing.c similarity index 100% rename from examples/shapes/shapes_draw_rectangle_rounded.c rename to examples/shapes/shapes_rounded_rectangle_drawing.c diff --git a/examples/shapes/shapes_draw_rectangle_rounded.png b/examples/shapes/shapes_rounded_rectangle_drawing.png similarity index 100% rename from examples/shapes/shapes_draw_rectangle_rounded.png rename to examples/shapes/shapes_rounded_rectangle_drawing.png diff --git a/projects/VS2022/examples/shapes_draw_rectangle_rounded.vcxproj b/projects/VS2022/examples/shapes_rounded_rectangle_drawing.vcxproj similarity index 97% rename from projects/VS2022/examples/shapes_draw_rectangle_rounded.vcxproj rename to projects/VS2022/examples/shapes_rounded_rectangle_drawing.vcxproj index 4317cb1cb..f86917fa3 100644 --- a/projects/VS2022/examples/shapes_draw_rectangle_rounded.vcxproj +++ b/projects/VS2022/examples/shapes_rounded_rectangle_drawing.vcxproj @@ -1,569 +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 - - - - {48871156-181A-475A-BD8D-200086A09675} - Win32Proj - shapes_draw_rectangle_rounded - 10.0 - shapes_draw_rectangle_rounded - - - - 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\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - - - - Level3 - Disabled - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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} - - - - - + + + + + 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 + + + + {48871156-181A-475A-BD8D-200086A09675} + Win32Proj + shapes_rounded_rectangle_drawing + 10.0 + shapes_rounded_rectangle_drawing + + + + 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\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 72db31240..f1a0ab80d 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -187,7 +187,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_colors_palette", "ex EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_draw_circle_sector", "examples\shapes_draw_circle_sector.vcxproj", "{33459B4E-1839-4856-BF6B-22480D11FE31}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_draw_rectangle_rounded", "examples\shapes_draw_rectangle_rounded.vcxproj", "{48871156-181A-475A-BD8D-200086A09675}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_rounded_rectangle_drawing", "examples\shapes_rounded_rectangle_drawing.vcxproj", "{48871156-181A-475A-BD8D-200086A09675}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_ring_drawing", "examples\shapes_ring_drawing.vcxproj", "{C4416DA1-9E62-46BA-9CD3-F8963C79E1A1}" EndProject From b67e7ffc4473783f704d96d8d70dcc2630e2929d Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:28:17 +0200 Subject: [PATCH 099/190] REXM: RENAME: example: `shapes_draw_circle_sector` --> `shapes_circle_sector_drawing` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...ector.c => shapes_circle_sector_drawing.c} | 0 ...r.png => shapes_circle_sector_drawing.png} | Bin ...j => shapes_circle_sector_drawing.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/shapes/{shapes_draw_circle_sector.c => shapes_circle_sector_drawing.c} (100%) rename examples/shapes/{shapes_draw_circle_sector.png => shapes_circle_sector_drawing.png} (100%) rename projects/VS2022/examples/{shapes_draw_circle_sector.vcxproj => shapes_circle_sector_drawing.vcxproj} (97%) diff --git a/examples/Makefile b/examples/Makefile index 46138356d..68c74875e 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -542,7 +542,7 @@ SHAPES = \ shapes/shapes_colors_palette \ shapes/shapes_digital_clock \ shapes/shapes_double_pendulum \ - shapes/shapes_draw_circle_sector \ + shapes/shapes_circle_sector_drawing \ shapes/shapes_rounded_rectangle_drawing \ shapes/shapes_easings_ball_anim \ shapes/shapes_easings_box_anim \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index ced681f62..c3af4d916 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -542,7 +542,7 @@ SHAPES = \ shapes/shapes_colors_palette \ shapes/shapes_digital_clock \ shapes/shapes_double_pendulum \ - shapes/shapes_draw_circle_sector \ + shapes/shapes_circle_sector_drawing \ shapes/shapes_rounded_rectangle_drawing \ shapes/shapes_easings_ball_anim \ shapes/shapes_easings_box_anim \ @@ -805,7 +805,7 @@ shapes/shapes_digital_clock: shapes/shapes_digital_clock.c shapes/shapes_double_pendulum: shapes/shapes_double_pendulum.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -shapes/shapes_draw_circle_sector: shapes/shapes_draw_circle_sector.c +shapes/shapes_circle_sector_drawing: shapes/shapes_circle_sector_drawing.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) shapes/shapes_rounded_rectangle_drawing: shapes/shapes_rounded_rectangle_drawing.c diff --git a/examples/README.md b/examples/README.md index 58012f926..fe60e1886 100644 --- a/examples/README.md +++ b/examples/README.md @@ -80,7 +80,7 @@ Examples using raylib shapes drawing functionality, provided by raylib [shapes]( | [shapes_easings_box_anim](shapes/shapes_easings_box_anim.c) | shapes_easings_box_anim | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shapes_easings_rectangle_array](shapes/shapes_easings_rectangle_array.c) | shapes_easings_rectangle_array | ⭐⭐⭐☆ | 2.0 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shapes_ring_drawing](shapes/shapes_ring_drawing.c) | shapes_ring_drawing | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | -| [shapes_draw_circle_sector](shapes/shapes_draw_circle_sector.c) | shapes_draw_circle_sector | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | +| [shapes_circle_sector_drawing](shapes/shapes_circle_sector_drawing.c) | shapes_circle_sector_drawing | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | | [shapes_rounded_rectangle_drawing](shapes/shapes_rounded_rectangle_drawing.c) | shapes_rounded_rectangle_drawing | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | | [shapes_top_down_lights](shapes/shapes_top_down_lights.c) | shapes_top_down_lights | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [Jeffery Myers](https://github.com/JeffM2501) | | [shapes_rectangle_advanced](shapes/shapes_rectangle_advanced.c) | shapes_rectangle_advanced | ⭐⭐⭐⭐️ | 5.5 | 5.5 | [Everton Jr.](https://github.com/evertonse) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index dd47cfd9c..944d84b70 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -55,7 +55,7 @@ shapes;shapes_easings_ball_anim;★★☆☆;2.5;2.5;2014;2025;"Ramon Santamaria 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_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_circle_sector_drawing;★★★☆;2.5;2.5;2018;2025;"Vlad Adrian";@demizdor shapes;shapes_rounded_rectangle_drawing;★★★☆;2.5;2.5;2018;2025;"Vlad Adrian";@demizdor shapes;shapes_top_down_lights;★★★★;4.2;4.2;2022;2025;"Jeffery Myers";@JeffM2501 shapes;shapes_rectangle_advanced;★★★★;5.5;5.5;2024;2025;"Everton Jr.";@evertonse diff --git a/examples/shapes/shapes_draw_circle_sector.c b/examples/shapes/shapes_circle_sector_drawing.c similarity index 100% rename from examples/shapes/shapes_draw_circle_sector.c rename to examples/shapes/shapes_circle_sector_drawing.c diff --git a/examples/shapes/shapes_draw_circle_sector.png b/examples/shapes/shapes_circle_sector_drawing.png similarity index 100% rename from examples/shapes/shapes_draw_circle_sector.png rename to examples/shapes/shapes_circle_sector_drawing.png diff --git a/projects/VS2022/examples/shapes_draw_circle_sector.vcxproj b/projects/VS2022/examples/shapes_circle_sector_drawing.vcxproj similarity index 97% rename from projects/VS2022/examples/shapes_draw_circle_sector.vcxproj rename to projects/VS2022/examples/shapes_circle_sector_drawing.vcxproj index 7189288fd..f841dc6df 100644 --- a/projects/VS2022/examples/shapes_draw_circle_sector.vcxproj +++ b/projects/VS2022/examples/shapes_circle_sector_drawing.vcxproj @@ -1,569 +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 - - - - {33459B4E-1839-4856-BF6B-22480D11FE31} - Win32Proj - shapes_draw_circle_sector - 10.0 - shapes_draw_circle_sector - - - - 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\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - - - - Level3 - Disabled - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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 - _CRT_SECURE_NO_WARNINGS;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} - - - - - + + + + + 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 + + + + {33459B4E-1839-4856-BF6B-22480D11FE31} + Win32Proj + shapes_circle_sector_drawing + 10.0 + shapes_circle_sector_drawing + + + + 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\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 + _CRT_SECURE_NO_WARNINGS;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 f1a0ab80d..1db714758 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -185,7 +185,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_collision_area", "ex EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_colors_palette", "examples\shapes_colors_palette.vcxproj", "{D91367C2-2189-4859-A7FE-D2CAB84FA15C}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_draw_circle_sector", "examples\shapes_draw_circle_sector.vcxproj", "{33459B4E-1839-4856-BF6B-22480D11FE31}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_circle_sector_drawing", "examples\shapes_circle_sector_drawing.vcxproj", "{33459B4E-1839-4856-BF6B-22480D11FE31}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_rounded_rectangle_drawing", "examples\shapes_rounded_rectangle_drawing.vcxproj", "{48871156-181A-475A-BD8D-200086A09675}" EndProject From 463d069eff38f3b5c5124b2d12d85124fd86259a Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:29:53 +0200 Subject: [PATCH 100/190] REXM: RENAME: example: `models_heightmap` --> `models_heightmap_rendering` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...ightmap.c => models_heightmap_rendering.c} | 0 ...map.png => models_heightmap_rendering.png} | Bin ...roj => models_heightmap_rendering.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/models/{models_heightmap.c => models_heightmap_rendering.c} (100%) rename examples/models/{models_heightmap.png => models_heightmap_rendering.png} (100%) rename projects/VS2022/examples/{models_heightmap.vcxproj => models_heightmap_rendering.vcxproj} (98%) diff --git a/examples/Makefile b/examples/Makefile index 68c74875e..afa390cb1 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -610,7 +610,7 @@ MODELS = \ models/models_first_person_maze \ models/models_geometric_shapes \ models/models_gpu_skinning \ - models/models_heightmap \ + models/models_heightmap_rendering \ models/models_loading \ models/models_loading_gltf \ models/models_loading_m3d \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index c3af4d916..fa3ebfde1 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -610,7 +610,7 @@ MODELS = \ models/models_first_person_maze \ models/models_geometric_shapes \ models/models_gpu_skinning \ - models/models_heightmap \ + models/models_heightmap_rendering \ models/models_loading \ models/models_loading_gltf \ models/models_loading_m3d \ @@ -1061,7 +1061,7 @@ models/models_gpu_skinning: models/models_gpu_skinning.c --preload-file models/resources/shaders/glsl100/skinning.vs@resources/shaders/glsl100/skinning.vs \ --preload-file models/resources/shaders/glsl100/skinning.fs@resources/shaders/glsl100/skinning.fs -models/models_heightmap: models/models_heightmap.c +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 fe60e1886..0b8660787 100644 --- a/examples/README.md +++ b/examples/README.md @@ -164,7 +164,7 @@ Examples using raylib models functionality, including models loading/generation | [models_rlgl_solar_system](models/models_rlgl_solar_system.c) | models_rlgl_solar_system | ⭐⭐⭐⭐️ | 2.5 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | | [models_yaw_pitch_roll](models/models_yaw_pitch_roll.c) | models_yaw_pitch_roll | ⭐⭐☆☆ | 1.8 | 4.0 | [Berni](https://github.com/Berni8k) | | [models_waving_cubes](models/models_waving_cubes.c) | models_waving_cubes | ⭐⭐⭐☆ | 2.5 | 3.7 | [Codecat](https://github.com/codecat) | -| [models_heightmap](models/models_heightmap.c) | models_heightmap | ⭐☆☆☆ | 1.8 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | +| [models_heightmap_rendering](models/models_heightmap_rendering.c) | models_heightmap_rendering | ⭐☆☆☆ | 1.8 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | | [models_skybox_rendering](models/models_skybox_rendering.c) | models_skybox_rendering | ⭐⭐☆☆ | 1.8 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | | [models_draw_cube_texture](models/models_draw_cube_texture.c) | models_draw_cube_texture | ⭐⭐☆☆ | 4.5 | 4.5 | [Ramon Santamaria](https://github.com/raysan5) | | [models_gpu_skinning](models/models_gpu_skinning.c) | models_gpu_skinning | ⭐⭐⭐☆ | 4.5 | 4.5 | [Daniel Holden](https://github.com/orangeduck) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 944d84b70..369d8ff3e 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -118,7 +118,7 @@ models;models_point_rendering;★★★☆;5.0;5.0;2024;2025;"Reese Gallagher";@ models;models_rlgl_solar_system;★★★★;2.5;4.0;2018;2025;"Ramon Santamaria";@raysan5 models;models_yaw_pitch_roll;★★☆☆;1.8;4.0;2017;2025;"Berni";@Berni8k models;models_waving_cubes;★★★☆;2.5;3.7;2019;2025;"Codecat";@codecat -models;models_heightmap;★☆☆☆;1.8;3.5;2015;2025;"Ramon Santamaria";@raysan5 +models;models_heightmap_rendering;★☆☆☆;1.8;3.5;2015;2025;"Ramon Santamaria";@raysan5 models;models_skybox_rendering;★★☆☆;1.8;4.0;2017;2025;"Ramon Santamaria";@raysan5 models;models_draw_cube_texture;★★☆☆;4.5;4.5;2022;2025;"Ramon Santamaria";@raysan5 models;models_gpu_skinning;★★★☆;4.5;4.5;2024;2025;"Daniel Holden";@orangeduck diff --git a/examples/models/models_heightmap.c b/examples/models/models_heightmap_rendering.c similarity index 100% rename from examples/models/models_heightmap.c rename to examples/models/models_heightmap_rendering.c diff --git a/examples/models/models_heightmap.png b/examples/models/models_heightmap_rendering.png similarity index 100% rename from examples/models/models_heightmap.png rename to examples/models/models_heightmap_rendering.png diff --git a/projects/VS2022/examples/models_heightmap.vcxproj b/projects/VS2022/examples/models_heightmap_rendering.vcxproj similarity index 98% rename from projects/VS2022/examples/models_heightmap.vcxproj rename to projects/VS2022/examples/models_heightmap_rendering.vcxproj index 734d68565..ce6a7bc5c 100644 --- a/projects/VS2022/examples/models_heightmap.vcxproj +++ b/projects/VS2022/examples/models_heightmap_rendering.vcxproj @@ -1,569 +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 - - - - {0859A973-E4FE-4688-8D16-0253163FDE24} - Win32Proj - models_heightmap - 10.0 - models_heightmap - - - - 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} - - - - - + + + + + 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 + + + + {0859A973-E4FE-4688-8D16-0253163FDE24} + Win32Proj + models_heightmap_rendering + 10.0 + models_heightmap_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 1db714758..e397ee0d0 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -97,7 +97,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_first_person_maze", EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_geometric_shapes", "examples\models_geometric_shapes.vcxproj", "{14BA7F98-02CC-4648-9236-676BFF9458AF}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_heightmap", "examples\models_heightmap.vcxproj", "{0859A973-E4FE-4688-8D16-0253163FDE24}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_heightmap_rendering", "examples\models_heightmap_rendering.vcxproj", "{0859A973-E4FE-4688-8D16-0253163FDE24}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_loading", "examples\models_loading.vcxproj", "{F3412853-2B6A-4334-8CF2-B796CDAE0850}" EndProject From ab3e99fd30f343b5639c251cdb29842b057fd2ec Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:30:07 +0200 Subject: [PATCH 101/190] REXM: RENAME: example: `models_cubicmap` --> `models_cubicmap_rendering` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...cubicmap.c => models_cubicmap_rendering.c} | 0 ...cmap.png => models_cubicmap_rendering.png} | Bin ...proj => models_cubicmap_rendering.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/models/{models_cubicmap.c => models_cubicmap_rendering.c} (100%) rename examples/models/{models_cubicmap.png => models_cubicmap_rendering.png} (100%) rename projects/VS2022/examples/{models_cubicmap.vcxproj => models_cubicmap_rendering.vcxproj} (98%) diff --git a/examples/Makefile b/examples/Makefile index afa390cb1..8355d3570 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -605,7 +605,7 @@ MODELS = \ models/models_billboard_rendering \ models/models_bone_socket \ models/models_box_collisions \ - models/models_cubicmap \ + models/models_cubicmap_rendering \ models/models_draw_cube_texture \ models/models_first_person_maze \ models/models_geometric_shapes \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index fa3ebfde1..272b802ad 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -605,7 +605,7 @@ MODELS = \ models/models_billboard_rendering \ models/models_bone_socket \ models/models_box_collisions \ - models/models_cubicmap \ + models/models_cubicmap_rendering \ models/models_draw_cube_texture \ models/models_first_person_maze \ models/models_geometric_shapes \ @@ -1038,7 +1038,7 @@ models/models_bone_socket: models/models_bone_socket.c models/models_box_collisions: models/models_box_collisions.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -models/models_cubicmap: models/models_cubicmap.c +models/models_cubicmap_rendering: models/models_cubicmap_rendering.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file models/resources/cubicmap.png@resources/cubicmap.png \ --preload-file models/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png diff --git a/examples/README.md b/examples/README.md index 0b8660787..14eae88f6 100644 --- a/examples/README.md +++ b/examples/README.md @@ -150,7 +150,7 @@ Examples using raylib models functionality, including models loading/generation | [models_animation](models/models_animation.c) | models_animation | ⭐⭐☆☆ | 2.5 | 3.5 | [Culacant](https://github.com/culacant) | | [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_cubicmap_rendering](models/models_cubicmap_rendering.c) | models_cubicmap_rendering | ⭐⭐☆☆ | 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) | | [models_geometric_shapes](models/models_geometric_shapes.c) | models_geometric_shapes | ⭐☆☆☆ | 1.0 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | | [models_mesh_generation](models/models_mesh_generation.c) | models_mesh_generation | ⭐⭐☆☆ | 1.8 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 369d8ff3e..38c736c19 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -104,7 +104,7 @@ text;text_codepoints_loading;★★★☆;4.2;4.2;2022;2025;"Ramon Santamaria";@ models;models_animation;★★☆☆;2.5;3.5;2019;2025;"Culacant";@culacant models;models_billboard_rendering;★★★☆;1.3;3.5;2015;2025;"Ramon Santamaria";@raysan5 models;models_box_collisions;★☆☆☆;1.3;3.5;2015;2025;"Ramon Santamaria";@raysan5 -models;models_cubicmap;★★☆☆;1.8;3.5;2015;2025;"Ramon Santamaria";@raysan5 +models;models_cubicmap_rendering;★★☆☆;1.8;3.5;2015;2025;"Ramon Santamaria";@raysan5 models;models_first_person_maze;★★☆☆;2.5;3.5;2019;2025;"Ramon Santamaria";@raysan5 models;models_geometric_shapes;★☆☆☆;1.0;3.5;2014;2025;"Ramon Santamaria";@raysan5 models;models_mesh_generation;★★☆☆;1.8;4.0;2017;2025;"Ramon Santamaria";@raysan5 diff --git a/examples/models/models_cubicmap.c b/examples/models/models_cubicmap_rendering.c similarity index 100% rename from examples/models/models_cubicmap.c rename to examples/models/models_cubicmap_rendering.c diff --git a/examples/models/models_cubicmap.png b/examples/models/models_cubicmap_rendering.png similarity index 100% rename from examples/models/models_cubicmap.png rename to examples/models/models_cubicmap_rendering.png diff --git a/projects/VS2022/examples/models_cubicmap.vcxproj b/projects/VS2022/examples/models_cubicmap_rendering.vcxproj similarity index 98% rename from projects/VS2022/examples/models_cubicmap.vcxproj rename to projects/VS2022/examples/models_cubicmap_rendering.vcxproj index 1ef1738a0..31e9bb00a 100644 --- a/projects/VS2022/examples/models_cubicmap.vcxproj +++ b/projects/VS2022/examples/models_cubicmap_rendering.vcxproj @@ -1,569 +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 - - - - {82F3D34B-8DB2-4C6A-98B1-132245DD9D99} - Win32Proj - models_cubicmap - 10.0 - models_cubicmap - - - - 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} - - - - - + + + + + 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 + + + + {82F3D34B-8DB2-4C6A-98B1-132245DD9D99} + Win32Proj + models_cubicmap_rendering + 10.0 + models_cubicmap_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 e397ee0d0..8439be7ef 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -91,7 +91,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_billboard_rendering" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_box_collisions", "examples\models_box_collisions.vcxproj", "{39DB56C7-05F8-492C-A8D4-F19E40FECB59}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_cubicmap", "examples\models_cubicmap.vcxproj", "{82F3D34B-8DB2-4C6A-98B1-132245DD9D99}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_cubicmap_rendering", "examples\models_cubicmap_rendering.vcxproj", "{82F3D34B-8DB2-4C6A-98B1-132245DD9D99}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_first_person_maze", "examples\models_first_person_maze.vcxproj", "{CBD6C0F8-8200-4E9A-9D7C-6505A2AA4A62}" EndProject From 14bef50464912969b9c34a6302e5da455a711a20 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:30:26 +0200 Subject: [PATCH 102/190] REXM: RENAME: example: `shaders_deferred_render` --> `shaders_deferred_rendering` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ..._render.c => shaders_deferred_rendering.c} | 0 ...der.png => shaders_deferred_rendering.png} | Bin ...roj => shaders_deferred_rendering.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/shaders/{shaders_deferred_render.c => shaders_deferred_rendering.c} (100%) rename examples/shaders/{shaders_deferred_render.png => shaders_deferred_rendering.png} (100%) rename projects/VS2022/examples/{shaders_deferred_render.vcxproj => shaders_deferred_rendering.vcxproj} (97%) diff --git a/examples/Makefile b/examples/Makefile index 8355d3570..284cb873b 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -629,7 +629,7 @@ SHADERS = \ shaders/shaders_basic_lighting \ shaders/shaders_basic_pbr \ shaders/shaders_custom_uniform \ - shaders/shaders_deferred_render \ + shaders/shaders_deferred_rendering \ shaders/shaders_eratosthenes \ shaders/shaders_fog_rendering \ shaders/shaders_hot_reloading \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 272b802ad..72a708c5e 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -629,7 +629,7 @@ SHADERS = \ shaders/shaders_basic_lighting \ shaders/shaders_basic_pbr \ shaders/shaders_custom_uniform \ - shaders/shaders_deferred_render \ + shaders/shaders_deferred_rendering \ shaders/shaders_eratosthenes \ shaders/shaders_fog_rendering \ shaders/shaders_hot_reloading \ @@ -1150,7 +1150,7 @@ shaders/shaders_custom_uniform: shaders/shaders_custom_uniform.c --preload-file shaders/resources/models/barracks_diffuse.png@resources/models/barracks_diffuse.png \ --preload-file shaders/resources/shaders/glsl100/swirl.fs@resources/shaders/glsl100/swirl.fs -shaders/shaders_deferred_render: shaders/shaders_deferred_render.c +shaders/shaders_deferred_rendering: shaders/shaders_deferred_rendering.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/shaders/glsl100/gbuffer.vs@resources/shaders/glsl100/gbuffer.vs \ --preload-file shaders/resources/shaders/glsl100/gbuffer.fs@resources/shaders/glsl100/gbuffer.fs \ diff --git a/examples/README.md b/examples/README.md index 14eae88f6..e90b0eea0 100644 --- a/examples/README.md +++ b/examples/README.md @@ -196,7 +196,7 @@ Examples using raylib shaders functionality, including shaders loading, paramete | [shaders_multi_sample2d](shaders/shaders_multi_sample2d.c) | shaders_multi_sample2d | ⭐⭐☆☆ | 3.5 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shaders_normal_map](shaders/shaders_normal_map.c) | shaders_normal_map | ⭐⭐⭐⭐️ | 5.6 | 5.6 | [Jeremy Montgomery](https://github.com/Sir_Irk) | | [shaders_spotlight](shaders/shaders_spotlight.c) | shaders_spotlight | ⭐⭐☆☆ | 2.5 | 3.7 | [Chris Camacho](https://github.com/chriscamacho) | -| [shaders_deferred_render](shaders/shaders_deferred_render.c) | shaders_deferred_render | ⭐⭐⭐⭐️ | 4.5 | 4.5 | [Justin Andreas Lacoste](https://github.com/27justin) | +| [shaders_deferred_rendering](shaders/shaders_deferred_rendering.c) | shaders_deferred_rendering | ⭐⭐⭐⭐️ | 4.5 | 4.5 | [Justin Andreas Lacoste](https://github.com/27justin) | | [shaders_hybrid_render](shaders/shaders_hybrid_render.c) | shaders_hybrid_render | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [Buğra Alptekin Sarı](https://github.com/BugraAlptekinSari) | | [shaders_texture_tiling](shaders/shaders_texture_tiling.c) | shaders_texture_tiling | ⭐⭐☆☆ | 4.5 | 4.5 | [Luis Almeida](https://github.com/luis605) | | [shaders_shadowmap](shaders/shaders_shadowmap.c) | shaders_shadowmap | ⭐⭐⭐⭐️ | 5.0 | 5.0 | [TheManTheMythTheGameDev](https://github.com/TheManTheMythTheGameDev) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 38c736c19..52d220293 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -143,7 +143,7 @@ shaders;shaders_mesh_instancing;★★★★;3.7;4.2;2020;2025;"seanpringle";@se shaders;shaders_multi_sample2d;★★☆☆;3.5;3.5;2020;2025;"Ramon Santamaria";@raysan5 shaders;shaders_normal_map;★★★★;5.6;5.6;2025;2025;"Jeremy Montgomery";@Sir_Irk shaders;shaders_spotlight;★★☆☆;2.5;3.7;2019;2025;"Chris Camacho";@chriscamacho -shaders;shaders_deferred_render;★★★★;4.5;4.5;2023;2025;"Justin Andreas Lacoste";@27justin +shaders;shaders_deferred_rendering;★★★★;4.5;4.5;2023;2025;"Justin Andreas Lacoste";@27justin shaders;shaders_hybrid_render;★★★★;4.2;4.2;2022;2025;"Buğra Alptekin Sarı";@BugraAlptekinSari shaders;shaders_texture_tiling;★★☆☆;4.5;4.5;2023;2025;"Luis Almeida";@luis605 shaders;shaders_shadowmap;★★★★;5.0;5.0;2023;2025;"TheManTheMythTheGameDev";@TheManTheMythTheGameDev diff --git a/examples/shaders/shaders_deferred_render.c b/examples/shaders/shaders_deferred_rendering.c similarity index 100% rename from examples/shaders/shaders_deferred_render.c rename to examples/shaders/shaders_deferred_rendering.c diff --git a/examples/shaders/shaders_deferred_render.png b/examples/shaders/shaders_deferred_rendering.png similarity index 100% rename from examples/shaders/shaders_deferred_render.png rename to examples/shaders/shaders_deferred_rendering.png diff --git a/projects/VS2022/examples/shaders_deferred_render.vcxproj b/projects/VS2022/examples/shaders_deferred_rendering.vcxproj similarity index 97% rename from projects/VS2022/examples/shaders_deferred_render.vcxproj rename to projects/VS2022/examples/shaders_deferred_rendering.vcxproj index 1ac650091..f91679417 100644 --- a/projects/VS2022/examples/shaders_deferred_render.vcxproj +++ b/projects/VS2022/examples/shaders_deferred_rendering.vcxproj @@ -1,569 +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 - - - - {88DE5AD6-0074-4A5A-BE22-C840153E35D5} - Win32Proj - shaders_deferred_render - 10.0 - shaders_deferred_render - - - - 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\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - 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} - - - - - + + + + + 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 + + + + {88DE5AD6-0074-4A5A-BE22-C840153E35D5} + Win32Proj + shaders_deferred_rendering + 10.0 + shaders_deferred_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\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + 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 8439be7ef..20ac97d7e 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -287,7 +287,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_smooth_pixelperfect", EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_draw_cube_texture", "examples\models_draw_cube_texture.vcxproj", "{4B39E5FC-0A96-4057-9AA5-8D5A52880DA7}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_deferred_render", "examples\shaders_deferred_render.vcxproj", "{88DE5AD6-0074-4A5A-BE22-C840153E35D5}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_deferred_rendering", "examples\shaders_deferred_rendering.vcxproj", "{88DE5AD6-0074-4A5A-BE22-C840153E35D5}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_texture_outline", "examples\shaders_texture_outline.vcxproj", "{A546E75A-5242-46E6-9A9E-6C91554EAB84}" EndProject From 4cf4c6645ed1e03f99f1b219702363dfe88174a9 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:30:45 +0200 Subject: [PATCH 103/190] REXM: RENAME: example: `shaders_hybrid_render` --> `shaders_hybrid_rendering` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...id_render.c => shaders_hybrid_rendering.c} | 0 ...ender.png => shaders_hybrid_rendering.png} | Bin ...xproj => shaders_hybrid_rendering.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/shaders/{shaders_hybrid_render.c => shaders_hybrid_rendering.c} (100%) rename examples/shaders/{shaders_hybrid_render.png => shaders_hybrid_rendering.png} (100%) rename projects/VS2022/examples/{shaders_hybrid_render.vcxproj => shaders_hybrid_rendering.vcxproj} (98%) diff --git a/examples/Makefile b/examples/Makefile index 284cb873b..1fe6356fb 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -633,7 +633,7 @@ SHADERS = \ shaders/shaders_eratosthenes \ shaders/shaders_fog_rendering \ shaders/shaders_hot_reloading \ - shaders/shaders_hybrid_render \ + shaders/shaders_hybrid_rendering \ shaders/shaders_julia_set \ shaders/shaders_lightmap \ shaders/shaders_mesh_instancing \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 72a708c5e..5fe6e9e70 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -633,7 +633,7 @@ SHADERS = \ shaders/shaders_eratosthenes \ shaders/shaders_fog_rendering \ shaders/shaders_hot_reloading \ - shaders/shaders_hybrid_render \ + shaders/shaders_hybrid_rendering \ shaders/shaders_julia_set \ shaders/shaders_lightmap \ shaders/shaders_mesh_instancing \ @@ -1171,7 +1171,7 @@ shaders/shaders_hot_reloading: shaders/shaders_hot_reloading.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/shaders/glsl100/reload.fs@resources/shaders/glsl100/reload.fs -shaders/shaders_hybrid_render: shaders/shaders_hybrid_render.c +shaders/shaders_hybrid_rendering: shaders/shaders_hybrid_rendering.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/shaders/glsl100/hybrid_raymarch.fs@resources/shaders/glsl100/hybrid_raymarch.fs \ --preload-file shaders/resources/shaders/glsl100/hybrid_raster.fs@resources/shaders/glsl100/hybrid_raster.fs diff --git a/examples/README.md b/examples/README.md index e90b0eea0..9393175d0 100644 --- a/examples/README.md +++ b/examples/README.md @@ -197,7 +197,7 @@ Examples using raylib shaders functionality, including shaders loading, paramete | [shaders_normal_map](shaders/shaders_normal_map.c) | shaders_normal_map | ⭐⭐⭐⭐️ | 5.6 | 5.6 | [Jeremy Montgomery](https://github.com/Sir_Irk) | | [shaders_spotlight](shaders/shaders_spotlight.c) | shaders_spotlight | ⭐⭐☆☆ | 2.5 | 3.7 | [Chris Camacho](https://github.com/chriscamacho) | | [shaders_deferred_rendering](shaders/shaders_deferred_rendering.c) | shaders_deferred_rendering | ⭐⭐⭐⭐️ | 4.5 | 4.5 | [Justin Andreas Lacoste](https://github.com/27justin) | -| [shaders_hybrid_render](shaders/shaders_hybrid_render.c) | shaders_hybrid_render | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [Buğra Alptekin Sarı](https://github.com/BugraAlptekinSari) | +| [shaders_hybrid_rendering](shaders/shaders_hybrid_rendering.c) | shaders_hybrid_rendering | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [Buğra Alptekin Sarı](https://github.com/BugraAlptekinSari) | | [shaders_texture_tiling](shaders/shaders_texture_tiling.c) | shaders_texture_tiling | ⭐⭐☆☆ | 4.5 | 4.5 | [Luis Almeida](https://github.com/luis605) | | [shaders_shadowmap](shaders/shaders_shadowmap.c) | shaders_shadowmap | ⭐⭐⭐⭐️ | 5.0 | 5.0 | [TheManTheMythTheGameDev](https://github.com/TheManTheMythTheGameDev) | | [shaders_vertex_displacement](shaders/shaders_vertex_displacement.c) | shaders_vertex_displacement | ⭐⭐⭐☆ | 5.0 | 4.5 | [Alex ZH](https://github.com/ZzzhHe) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 52d220293..dc94d31a5 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -144,7 +144,7 @@ shaders;shaders_multi_sample2d;★★☆☆;3.5;3.5;2020;2025;"Ramon Santamaria" shaders;shaders_normal_map;★★★★;5.6;5.6;2025;2025;"Jeremy Montgomery";@Sir_Irk shaders;shaders_spotlight;★★☆☆;2.5;3.7;2019;2025;"Chris Camacho";@chriscamacho shaders;shaders_deferred_rendering;★★★★;4.5;4.5;2023;2025;"Justin Andreas Lacoste";@27justin -shaders;shaders_hybrid_render;★★★★;4.2;4.2;2022;2025;"Buğra Alptekin Sarı";@BugraAlptekinSari +shaders;shaders_hybrid_rendering;★★★★;4.2;4.2;2022;2025;"Buğra Alptekin Sarı";@BugraAlptekinSari shaders;shaders_texture_tiling;★★☆☆;4.5;4.5;2023;2025;"Luis Almeida";@luis605 shaders;shaders_shadowmap;★★★★;5.0;5.0;2023;2025;"TheManTheMythTheGameDev";@TheManTheMythTheGameDev shaders;shaders_vertex_displacement;★★★☆;5.0;4.5;2023;2025;"Alex ZH";@ZzzhHe diff --git a/examples/shaders/shaders_hybrid_render.c b/examples/shaders/shaders_hybrid_rendering.c similarity index 100% rename from examples/shaders/shaders_hybrid_render.c rename to examples/shaders/shaders_hybrid_rendering.c diff --git a/examples/shaders/shaders_hybrid_render.png b/examples/shaders/shaders_hybrid_rendering.png similarity index 100% rename from examples/shaders/shaders_hybrid_render.png rename to examples/shaders/shaders_hybrid_rendering.png diff --git a/projects/VS2022/examples/shaders_hybrid_render.vcxproj b/projects/VS2022/examples/shaders_hybrid_rendering.vcxproj similarity index 98% rename from projects/VS2022/examples/shaders_hybrid_render.vcxproj rename to projects/VS2022/examples/shaders_hybrid_rendering.vcxproj index 4072e3988..68c14c966 100644 --- a/projects/VS2022/examples/shaders_hybrid_render.vcxproj +++ b/projects/VS2022/examples/shaders_hybrid_rendering.vcxproj @@ -1,569 +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 - - - - {3755E9F4-CB48-4EC3-B561-3B85964EBDEF} - Win32Proj - shaders_hybrid_render - 10.0 - shaders_hybrid_render - - - - 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\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - 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} - - - - - + + + + + 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 + + + + {3755E9F4-CB48-4EC3-B561-3B85964EBDEF} + Win32Proj + shaders_hybrid_rendering + 10.0 + shaders_hybrid_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\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + 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 20ac97d7e..183bb286a 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -271,7 +271,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_write_depth", "exam EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_view_depth", "examples\shaders_view_depth.vcxproj", "{DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_hybrid_render", "examples\shaders_hybrid_render.vcxproj", "{3755E9F4-CB48-4EC3-B561-3B85964EBDEF}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_hybrid_rendering", "examples\shaders_hybrid_rendering.vcxproj", "{3755E9F4-CB48-4EC3-B561-3B85964EBDEF}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "audio_sound_multi", "examples\audio_sound_multi.vcxproj", "{F81C5819-85B4-4D2E-B6DC-104A7634461B}" EndProject From 6afc608477ff0d7ececa901141bcb894dc3f9026 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:33:18 +0200 Subject: [PATCH 104/190] REXM: RENAME: example: `shaders_normal_map` --> `shaders_normalmap_rendering` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 ++-- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...s_normal_map.c => shaders_normalmap_rendering.c} | 0 ...rmal_map.png => shaders_normalmap_rendering.png} | Bin ....vcxproj => shaders_normalmap_rendering.vcxproj} | 6 +++--- projects/VS2022/raylib.sln | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) rename examples/shaders/{shaders_normal_map.c => shaders_normalmap_rendering.c} (100%) rename examples/shaders/{shaders_normal_map.png => shaders_normalmap_rendering.png} (100%) rename projects/VS2022/examples/{shaders_normal_map.vcxproj => shaders_normalmap_rendering.vcxproj} (99%) diff --git a/examples/Makefile b/examples/Makefile index 1fe6356fb..291ebed9f 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -639,7 +639,7 @@ SHADERS = \ shaders/shaders_mesh_instancing \ shaders/shaders_model_shader \ shaders/shaders_multi_sample2d \ - shaders/shaders_normal_map \ + shaders/shaders_normalmap_rendering \ shaders/shaders_palette_switch \ shaders/shaders_postprocessing \ shaders/shaders_raymarching \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 5fe6e9e70..5575f580f 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -639,7 +639,7 @@ SHADERS = \ shaders/shaders_mesh_instancing \ shaders/shaders_model_shader \ shaders/shaders_multi_sample2d \ - shaders/shaders_normal_map \ + shaders/shaders_normalmap_rendering \ shaders/shaders_palette_switch \ shaders/shaders_postprocessing \ shaders/shaders_raymarching \ @@ -1202,7 +1202,7 @@ shaders/shaders_multi_sample2d: shaders/shaders_multi_sample2d.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/shaders/glsl100/color_mix.fs@resources/shaders/glsl100/color_mix.fs -shaders/shaders_normal_map: shaders/shaders_normal_map.c +shaders/shaders_normalmap_rendering: shaders/shaders_normalmap_rendering.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/shaders/glsl100/normalmap.vs@resources/shaders/glsl100/normalmap.vs \ --preload-file shaders/resources/shaders/glsl100/normalmap.fs@resources/shaders/glsl100/normalmap.fs \ diff --git a/examples/README.md b/examples/README.md index 9393175d0..6d3d23f41 100644 --- a/examples/README.md +++ b/examples/README.md @@ -194,7 +194,7 @@ Examples using raylib shaders functionality, including shaders loading, paramete | [shaders_hot_reloading](shaders/shaders_hot_reloading.c) | shaders_hot_reloading | ⭐⭐⭐☆ | 3.0 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shaders_mesh_instancing](shaders/shaders_mesh_instancing.c) | shaders_mesh_instancing | ⭐⭐⭐⭐️ | 3.7 | 4.2 | [seanpringle](https://github.com/seanpringle) | | [shaders_multi_sample2d](shaders/shaders_multi_sample2d.c) | shaders_multi_sample2d | ⭐⭐☆☆ | 3.5 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | -| [shaders_normal_map](shaders/shaders_normal_map.c) | shaders_normal_map | ⭐⭐⭐⭐️ | 5.6 | 5.6 | [Jeremy Montgomery](https://github.com/Sir_Irk) | +| [shaders_normalmap_rendering](shaders/shaders_normalmap_rendering.c) | shaders_normalmap_rendering | ⭐⭐⭐⭐️ | 5.6 | 5.6 | [Jeremy Montgomery](https://github.com/Sir_Irk) | | [shaders_spotlight](shaders/shaders_spotlight.c) | shaders_spotlight | ⭐⭐☆☆ | 2.5 | 3.7 | [Chris Camacho](https://github.com/chriscamacho) | | [shaders_deferred_rendering](shaders/shaders_deferred_rendering.c) | shaders_deferred_rendering | ⭐⭐⭐⭐️ | 4.5 | 4.5 | [Justin Andreas Lacoste](https://github.com/27justin) | | [shaders_hybrid_rendering](shaders/shaders_hybrid_rendering.c) | shaders_hybrid_rendering | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [Buğra Alptekin Sarı](https://github.com/BugraAlptekinSari) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index dc94d31a5..32746ca45 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -141,7 +141,7 @@ shaders;shaders_simple_mask;★★☆☆;2.5;3.7;2019;2025;"Chris Camacho";@chri shaders;shaders_hot_reloading;★★★☆;3.0;3.5;2020;2025;"Ramon Santamaria";@raysan5 shaders;shaders_mesh_instancing;★★★★;3.7;4.2;2020;2025;"seanpringle";@seanpringle shaders;shaders_multi_sample2d;★★☆☆;3.5;3.5;2020;2025;"Ramon Santamaria";@raysan5 -shaders;shaders_normal_map;★★★★;5.6;5.6;2025;2025;"Jeremy Montgomery";@Sir_Irk +shaders;shaders_normalmap_rendering;★★★★;5.6;5.6;2025;2025;"Jeremy Montgomery";@Sir_Irk shaders;shaders_spotlight;★★☆☆;2.5;3.7;2019;2025;"Chris Camacho";@chriscamacho shaders;shaders_deferred_rendering;★★★★;4.5;4.5;2023;2025;"Justin Andreas Lacoste";@27justin shaders;shaders_hybrid_rendering;★★★★;4.2;4.2;2022;2025;"Buğra Alptekin Sarı";@BugraAlptekinSari diff --git a/examples/shaders/shaders_normal_map.c b/examples/shaders/shaders_normalmap_rendering.c similarity index 100% rename from examples/shaders/shaders_normal_map.c rename to examples/shaders/shaders_normalmap_rendering.c diff --git a/examples/shaders/shaders_normal_map.png b/examples/shaders/shaders_normalmap_rendering.png similarity index 100% rename from examples/shaders/shaders_normal_map.png rename to examples/shaders/shaders_normalmap_rendering.png diff --git a/projects/VS2022/examples/shaders_normal_map.vcxproj b/projects/VS2022/examples/shaders_normalmap_rendering.vcxproj similarity index 99% rename from projects/VS2022/examples/shaders_normal_map.vcxproj rename to projects/VS2022/examples/shaders_normalmap_rendering.vcxproj index a3e8e9981..a58992101 100644 --- a/projects/VS2022/examples/shaders_normal_map.vcxproj +++ b/projects/VS2022/examples/shaders_normalmap_rendering.vcxproj @@ -53,9 +53,9 @@ {6BFF72EA-7362-4A3B-B6E5-9A3655BBBDA3} Win32Proj - shaders_normal_map + shaders_normalmap_rendering 10.0 - shaders_normal_map + shaders_normalmap_rendering @@ -553,7 +553,7 @@ - + diff --git a/projects/VS2022/raylib.sln b/projects/VS2022/raylib.sln index 183bb286a..e89b64836 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -333,7 +333,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_input_virtual_controls EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_3d_camera_fps", "examples\core_3d_camera_fps.vcxproj", "{6B1A933E-71B8-4C1F-9E79-02D98830E671}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_normal_map", "examples\shaders_normal_map.vcxproj", "{6BFF72EA-7362-4A3B-B6E5-9A3655BBBDA3}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_normalmap_rendering", "examples\shaders_normalmap_rendering.vcxproj", "{6BFF72EA-7362-4A3B-B6E5-9A3655BBBDA3}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_unicode_ranges", "examples\text_unicode_ranges.vcxproj", "{6777EC3C-077C-42FC-B4AD-B799CE55CCE4}" EndProject From 07070b81e8c0ce20da1ed92c77f8420ab1f0e400 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:33:36 +0200 Subject: [PATCH 105/190] REXM: RENAME: example: `shaders_shadowmap` --> `shaders_shadowmap_rendering` --- examples/Makefile | 2 +- examples/Makefile.Web | 6 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...dowmap.c => shaders_shadowmap_rendering.c} | 0 ...ap.png => shaders_shadowmap_rendering.png} | Bin ...oj => shaders_shadowmap_rendering.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 575 insertions(+), 575 deletions(-) rename examples/shaders/{shaders_shadowmap.c => shaders_shadowmap_rendering.c} (100%) rename examples/shaders/{shaders_shadowmap.png => shaders_shadowmap_rendering.png} (100%) rename projects/VS2022/examples/{shaders_shadowmap.vcxproj => shaders_shadowmap_rendering.vcxproj} (98%) diff --git a/examples/Makefile b/examples/Makefile index 291ebed9f..52ace7b08 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -644,7 +644,7 @@ SHADERS = \ shaders/shaders_postprocessing \ shaders/shaders_raymarching \ shaders/shaders_rounded_rectangle \ - shaders/shaders_shadowmap \ + shaders/shaders_shadowmap_rendering \ shaders/shaders_shapes_textures \ shaders/shaders_simple_mask \ shaders/shaders_spotlight \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 5575f580f..e41d66a06 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -644,7 +644,7 @@ SHADERS = \ shaders/shaders_postprocessing \ shaders/shaders_raymarching \ shaders/shaders_rounded_rectangle \ - shaders/shaders_shadowmap \ + shaders/shaders_shadowmap_rendering \ shaders/shaders_shapes_textures \ shaders/shaders_simple_mask \ shaders/shaders_spotlight \ @@ -1240,12 +1240,12 @@ shaders/shaders_rounded_rectangle: shaders/shaders_rounded_rectangle.c --preload-file shaders/resources/shaders/glsl100/base.vs@resources/shaders/glsl100/base.vs \ --preload-file shaders/resources/shaders/glsl100/rounded_rectangle.fs@resources/shaders/glsl100/rounded_rectangle.fs -shaders/shaders_shadowmap: shaders/shaders_shadowmap.c +shaders/shaders_shadowmap_rendering: shaders/shaders_shadowmap_rendering.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/shaders/glsl100/shadowmap.vs@resources/shaders/glsl100/shadowmap.vs \ --preload-file shaders/resources/shaders/glsl100/shadowmap.fs@resources/shaders/glsl100/shadowmap.fs \ --preload-file shaders/resources/models/robot.glb@resources/models/robot.glb \ - --preload-file shaders/shaders_shadowmap.png@shaders_shadowmap.png + --preload-file shaders/shaders_shadowmap_rendering.png@shaders_shadowmap_rendering.png shaders/shaders_shapes_textures: shaders/shaders_shapes_textures.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ diff --git a/examples/README.md b/examples/README.md index 6d3d23f41..7f1dcb52f 100644 --- a/examples/README.md +++ b/examples/README.md @@ -199,7 +199,7 @@ Examples using raylib shaders functionality, including shaders loading, paramete | [shaders_deferred_rendering](shaders/shaders_deferred_rendering.c) | shaders_deferred_rendering | ⭐⭐⭐⭐️ | 4.5 | 4.5 | [Justin Andreas Lacoste](https://github.com/27justin) | | [shaders_hybrid_rendering](shaders/shaders_hybrid_rendering.c) | shaders_hybrid_rendering | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [Buğra Alptekin Sarı](https://github.com/BugraAlptekinSari) | | [shaders_texture_tiling](shaders/shaders_texture_tiling.c) | shaders_texture_tiling | ⭐⭐☆☆ | 4.5 | 4.5 | [Luis Almeida](https://github.com/luis605) | -| [shaders_shadowmap](shaders/shaders_shadowmap.c) | shaders_shadowmap | ⭐⭐⭐⭐️ | 5.0 | 5.0 | [TheManTheMythTheGameDev](https://github.com/TheManTheMythTheGameDev) | +| [shaders_shadowmap_rendering](shaders/shaders_shadowmap_rendering.c) | shaders_shadowmap_rendering | ⭐⭐⭐⭐️ | 5.0 | 5.0 | [TheManTheMythTheGameDev](https://github.com/TheManTheMythTheGameDev) | | [shaders_vertex_displacement](shaders/shaders_vertex_displacement.c) | shaders_vertex_displacement | ⭐⭐⭐☆ | 5.0 | 4.5 | [Alex ZH](https://github.com/ZzzhHe) | | [shaders_write_depth](shaders/shaders_write_depth.c) | shaders_write_depth | ⭐⭐☆☆ | 4.2 | 4.2 | [Buğra Alptekin Sarı](https://github.com/BugraAlptekinSari) | | [shaders_basic_pbr](shaders/shaders_basic_pbr.c) | shaders_basic_pbr | ⭐⭐⭐⭐️ | 5.0 | 5.5 | [Afan OLOVCIC](https://github.com/_DevDad) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 32746ca45..c66648a63 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -146,7 +146,7 @@ shaders;shaders_spotlight;★★☆☆;2.5;3.7;2019;2025;"Chris Camacho";@chrisc shaders;shaders_deferred_rendering;★★★★;4.5;4.5;2023;2025;"Justin Andreas Lacoste";@27justin shaders;shaders_hybrid_rendering;★★★★;4.2;4.2;2022;2025;"Buğra Alptekin Sarı";@BugraAlptekinSari shaders;shaders_texture_tiling;★★☆☆;4.5;4.5;2023;2025;"Luis Almeida";@luis605 -shaders;shaders_shadowmap;★★★★;5.0;5.0;2023;2025;"TheManTheMythTheGameDev";@TheManTheMythTheGameDev +shaders;shaders_shadowmap_rendering;★★★★;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.5;2023;2025;"Afan OLOVCIC";@_DevDad diff --git a/examples/shaders/shaders_shadowmap.c b/examples/shaders/shaders_shadowmap_rendering.c similarity index 100% rename from examples/shaders/shaders_shadowmap.c rename to examples/shaders/shaders_shadowmap_rendering.c diff --git a/examples/shaders/shaders_shadowmap.png b/examples/shaders/shaders_shadowmap_rendering.png similarity index 100% rename from examples/shaders/shaders_shadowmap.png rename to examples/shaders/shaders_shadowmap_rendering.png diff --git a/projects/VS2022/examples/shaders_shadowmap.vcxproj b/projects/VS2022/examples/shaders_shadowmap_rendering.vcxproj similarity index 98% rename from projects/VS2022/examples/shaders_shadowmap.vcxproj rename to projects/VS2022/examples/shaders_shadowmap_rendering.vcxproj index 48dbcb3e5..f5a2e13b8 100644 --- a/projects/VS2022/examples/shaders_shadowmap.vcxproj +++ b/projects/VS2022/examples/shaders_shadowmap_rendering.vcxproj @@ -1,569 +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 - - - - {41BBCC10-6FDE-48A1-B2E0-A0EC6A668629} - Win32Proj - shaders_shadowmap - 10.0 - shaders_shadowmap - - - - 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\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - 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} - - - - - + + + + + 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 + + + + {41BBCC10-6FDE-48A1-B2E0-A0EC6A668629} + Win32Proj + shaders_shadowmap_rendering + 10.0 + shaders_shadowmap_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\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + 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 e89b64836..bab2b32a8 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -301,7 +301,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_rectangle_advanced", EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_gpu_skinning", "examples\models_gpu_skinning.vcxproj", "{8245DAD9-D402-4D5C-8F45-32229CD3B263}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_shadowmap", "examples\shaders_shadowmap.vcxproj", "{41BBCC10-6FDE-48A1-B2E0-A0EC6A668629}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_shadowmap_rendering", "examples\shaders_shadowmap_rendering.vcxproj", "{41BBCC10-6FDE-48A1-B2E0-A0EC6A668629}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_bone_socket", "examples\models_bone_socket.vcxproj", "{3A7FE53D-35F7-49DC-9C9A-A5204A53523F}" EndProject From 11ca32493af1b8a57bada7e8c714d663117be946 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:34:16 +0200 Subject: [PATCH 106/190] REXM: RENAME: example: `shaders_lightmap` --> `shaders_lightmap_rendering` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 ++-- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...ders_lightmap.c => shaders_lightmap_rendering.c} | 0 ..._lightmap.png => shaders_lightmap_rendering.png} | Bin ...p.vcxproj => shaders_lightmap_rendering.vcxproj} | 6 +++--- projects/VS2022/raylib.sln | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) rename examples/shaders/{shaders_lightmap.c => shaders_lightmap_rendering.c} (100%) rename examples/shaders/{shaders_lightmap.png => shaders_lightmap_rendering.png} (100%) rename projects/VS2022/examples/{shaders_lightmap.vcxproj => shaders_lightmap_rendering.vcxproj} (99%) diff --git a/examples/Makefile b/examples/Makefile index 52ace7b08..179492c1d 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -635,7 +635,7 @@ SHADERS = \ shaders/shaders_hot_reloading \ shaders/shaders_hybrid_rendering \ shaders/shaders_julia_set \ - shaders/shaders_lightmap \ + shaders/shaders_lightmap_rendering \ shaders/shaders_mesh_instancing \ shaders/shaders_model_shader \ shaders/shaders_multi_sample2d \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index e41d66a06..a505b5f93 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -635,7 +635,7 @@ SHADERS = \ shaders/shaders_hot_reloading \ shaders/shaders_hybrid_rendering \ shaders/shaders_julia_set \ - shaders/shaders_lightmap \ + shaders/shaders_lightmap_rendering \ shaders/shaders_mesh_instancing \ shaders/shaders_model_shader \ shaders/shaders_multi_sample2d \ @@ -1180,7 +1180,7 @@ shaders/shaders_julia_set: shaders/shaders_julia_set.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/shaders/glsl100/julia_set.fs@resources/shaders/glsl100/julia_set.fs -shaders/shaders_lightmap: shaders/shaders_lightmap.c +shaders/shaders_lightmap_rendering: shaders/shaders_lightmap_rendering.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/shaders/glsl100/lightmap.vs@resources/shaders/glsl100/lightmap.vs \ --preload-file shaders/resources/shaders/glsl100/lightmap.fs@resources/shaders/glsl100/lightmap.fs \ diff --git a/examples/README.md b/examples/README.md index 7f1dcb52f..b09ef5114 100644 --- a/examples/README.md +++ b/examples/README.md @@ -203,7 +203,7 @@ Examples using raylib shaders functionality, including shaders loading, paramete | [shaders_vertex_displacement](shaders/shaders_vertex_displacement.c) | shaders_vertex_displacement | ⭐⭐⭐☆ | 5.0 | 4.5 | [Alex ZH](https://github.com/ZzzhHe) | | [shaders_write_depth](shaders/shaders_write_depth.c) | shaders_write_depth | ⭐⭐☆☆ | 4.2 | 4.2 | [Buğra Alptekin Sarı](https://github.com/BugraAlptekinSari) | | [shaders_basic_pbr](shaders/shaders_basic_pbr.c) | shaders_basic_pbr | ⭐⭐⭐⭐️ | 5.0 | 5.5 | [Afan OLOVCIC](https://github.com/_DevDad) | -| [shaders_lightmap](shaders/shaders_lightmap.c) | shaders_lightmap | ⭐⭐⭐☆ | 4.5 | 4.5 | [Jussi Viitala](https://github.com/nullstare) | +| [shaders_lightmap_rendering](shaders/shaders_lightmap_rendering.c) | shaders_lightmap_rendering | ⭐⭐⭐☆ | 4.5 | 4.5 | [Jussi Viitala](https://github.com/nullstare) | | [shaders_rounded_rectangle](shaders/shaders_rounded_rectangle.c) | shaders_rounded_rectangle | ⭐⭐⭐☆ | 5.5 | 5.5 | [Anstro Pleuton](https://github.com/anstropleuton) | | [shaders_view_depth](shaders/shaders_view_depth.c) | shaders_view_depth | ⭐⭐⭐☆ | 5.6-dev | 5.6-dev | [Luís Almeida](https://github.com/luis605) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index c66648a63..77bac81c7 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -150,7 +150,7 @@ shaders;shaders_shadowmap_rendering;★★★★;5.0;5.0;2023;2025;"TheManTheMyt 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.5;2023;2025;"Afan OLOVCIC";@_DevDad -shaders;shaders_lightmap;★★★☆;4.5;4.5;2019;2025;"Jussi Viitala";@nullstare +shaders;shaders_lightmap_rendering;★★★☆;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 audio;audio_module_playing;★☆☆☆;1.5;3.5;2016;2025;"Ramon Santamaria";@raysan5 diff --git a/examples/shaders/shaders_lightmap.c b/examples/shaders/shaders_lightmap_rendering.c similarity index 100% rename from examples/shaders/shaders_lightmap.c rename to examples/shaders/shaders_lightmap_rendering.c diff --git a/examples/shaders/shaders_lightmap.png b/examples/shaders/shaders_lightmap_rendering.png similarity index 100% rename from examples/shaders/shaders_lightmap.png rename to examples/shaders/shaders_lightmap_rendering.png diff --git a/projects/VS2022/examples/shaders_lightmap.vcxproj b/projects/VS2022/examples/shaders_lightmap_rendering.vcxproj similarity index 99% rename from projects/VS2022/examples/shaders_lightmap.vcxproj rename to projects/VS2022/examples/shaders_lightmap_rendering.vcxproj index d1be94f1c..245a321b1 100644 --- a/projects/VS2022/examples/shaders_lightmap.vcxproj +++ b/projects/VS2022/examples/shaders_lightmap_rendering.vcxproj @@ -53,9 +53,9 @@ {C54703BF-D68A-480D-BE27-49B62E45D582} Win32Proj - shaders_lightmap + shaders_lightmap_rendering 10.0 - shaders_lightmap + shaders_lightmap_rendering @@ -553,7 +553,7 @@ - + diff --git a/projects/VS2022/raylib.sln b/projects/VS2022/raylib.sln index bab2b32a8..221b8ea8c 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -325,7 +325,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_tesseract_view", "ex EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_basic_pbr", "examples\shaders_basic_pbr.vcxproj", "{4DF6D5E4-6796-4257-B466-BCD62DEBBCF8}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_lightmap", "examples\shaders_lightmap.vcxproj", "{C54703BF-D68A-480D-BE27-49B62E45D582}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_lightmap_rendering", "examples\shaders_lightmap_rendering.vcxproj", "{C54703BF-D68A-480D-BE27-49B62E45D582}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "audio_sound_positioning", "examples\audio_sound_positioning.vcxproj", "{9CD8BCAD-F212-4BCC-BA98-899743CE3279}" EndProject From f4f3325e1e1a43b6beb82ae81f600057180e590c Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:34:33 +0200 Subject: [PATCH 107/190] REXM: RENAME: example: `shaders_spotlight` --> `shaders_spotlight_rendering` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...tlight.c => shaders_spotlight_rendering.c} | 0 ...ht.png => shaders_spotlight_rendering.png} | Bin ...oj => shaders_spotlight_rendering.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/shaders/{shaders_spotlight.c => shaders_spotlight_rendering.c} (100%) rename examples/shaders/{shaders_spotlight.png => shaders_spotlight_rendering.png} (100%) rename projects/VS2022/examples/{shaders_spotlight.vcxproj => shaders_spotlight_rendering.vcxproj} (98%) diff --git a/examples/Makefile b/examples/Makefile index 179492c1d..b9e9c92ca 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -647,7 +647,7 @@ SHADERS = \ shaders/shaders_shadowmap_rendering \ shaders/shaders_shapes_textures \ shaders/shaders_simple_mask \ - shaders/shaders_spotlight \ + shaders/shaders_spotlight_rendering \ shaders/shaders_texture_outline \ shaders/shaders_texture_rendering \ shaders/shaders_texture_tiling \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index a505b5f93..5950ff160 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -647,7 +647,7 @@ SHADERS = \ shaders/shaders_shadowmap_rendering \ shaders/shaders_shapes_textures \ shaders/shaders_simple_mask \ - shaders/shaders_spotlight \ + shaders/shaders_spotlight_rendering \ shaders/shaders_texture_outline \ shaders/shaders_texture_rendering \ shaders/shaders_texture_tiling \ @@ -1258,7 +1258,7 @@ shaders/shaders_simple_mask: shaders/shaders_simple_mask.c --preload-file shaders/resources/plasma.png@resources/plasma.png \ --preload-file shaders/resources/mask.png@resources/mask.png -shaders/shaders_spotlight: shaders/shaders_spotlight.c +shaders/shaders_spotlight_rendering: shaders/shaders_spotlight_rendering.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/raysan.png@resources/raysan.png \ --preload-file shaders/resources/shaders/glsl100/spotlight.fs@resources/shaders/glsl100/spotlight.fs diff --git a/examples/README.md b/examples/README.md index b09ef5114..cf41a4879 100644 --- a/examples/README.md +++ b/examples/README.md @@ -195,7 +195,7 @@ Examples using raylib shaders functionality, including shaders loading, paramete | [shaders_mesh_instancing](shaders/shaders_mesh_instancing.c) | shaders_mesh_instancing | ⭐⭐⭐⭐️ | 3.7 | 4.2 | [seanpringle](https://github.com/seanpringle) | | [shaders_multi_sample2d](shaders/shaders_multi_sample2d.c) | shaders_multi_sample2d | ⭐⭐☆☆ | 3.5 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shaders_normalmap_rendering](shaders/shaders_normalmap_rendering.c) | shaders_normalmap_rendering | ⭐⭐⭐⭐️ | 5.6 | 5.6 | [Jeremy Montgomery](https://github.com/Sir_Irk) | -| [shaders_spotlight](shaders/shaders_spotlight.c) | shaders_spotlight | ⭐⭐☆☆ | 2.5 | 3.7 | [Chris Camacho](https://github.com/chriscamacho) | +| [shaders_spotlight_rendering](shaders/shaders_spotlight_rendering.c) | shaders_spotlight_rendering | ⭐⭐☆☆ | 2.5 | 3.7 | [Chris Camacho](https://github.com/chriscamacho) | | [shaders_deferred_rendering](shaders/shaders_deferred_rendering.c) | shaders_deferred_rendering | ⭐⭐⭐⭐️ | 4.5 | 4.5 | [Justin Andreas Lacoste](https://github.com/27justin) | | [shaders_hybrid_rendering](shaders/shaders_hybrid_rendering.c) | shaders_hybrid_rendering | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [Buğra Alptekin Sarı](https://github.com/BugraAlptekinSari) | | [shaders_texture_tiling](shaders/shaders_texture_tiling.c) | shaders_texture_tiling | ⭐⭐☆☆ | 4.5 | 4.5 | [Luis Almeida](https://github.com/luis605) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 77bac81c7..149388fc2 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -142,7 +142,7 @@ shaders;shaders_hot_reloading;★★★☆;3.0;3.5;2020;2025;"Ramon Santamaria"; shaders;shaders_mesh_instancing;★★★★;3.7;4.2;2020;2025;"seanpringle";@seanpringle shaders;shaders_multi_sample2d;★★☆☆;3.5;3.5;2020;2025;"Ramon Santamaria";@raysan5 shaders;shaders_normalmap_rendering;★★★★;5.6;5.6;2025;2025;"Jeremy Montgomery";@Sir_Irk -shaders;shaders_spotlight;★★☆☆;2.5;3.7;2019;2025;"Chris Camacho";@chriscamacho +shaders;shaders_spotlight_rendering;★★☆☆;2.5;3.7;2019;2025;"Chris Camacho";@chriscamacho shaders;shaders_deferred_rendering;★★★★;4.5;4.5;2023;2025;"Justin Andreas Lacoste";@27justin shaders;shaders_hybrid_rendering;★★★★;4.2;4.2;2022;2025;"Buğra Alptekin Sarı";@BugraAlptekinSari shaders;shaders_texture_tiling;★★☆☆;4.5;4.5;2023;2025;"Luis Almeida";@luis605 diff --git a/examples/shaders/shaders_spotlight.c b/examples/shaders/shaders_spotlight_rendering.c similarity index 100% rename from examples/shaders/shaders_spotlight.c rename to examples/shaders/shaders_spotlight_rendering.c diff --git a/examples/shaders/shaders_spotlight.png b/examples/shaders/shaders_spotlight_rendering.png similarity index 100% rename from examples/shaders/shaders_spotlight.png rename to examples/shaders/shaders_spotlight_rendering.png diff --git a/projects/VS2022/examples/shaders_spotlight.vcxproj b/projects/VS2022/examples/shaders_spotlight_rendering.vcxproj similarity index 98% rename from projects/VS2022/examples/shaders_spotlight.vcxproj rename to projects/VS2022/examples/shaders_spotlight_rendering.vcxproj index 39545d2a6..6048b7c99 100644 --- a/projects/VS2022/examples/shaders_spotlight.vcxproj +++ b/projects/VS2022/examples/shaders_spotlight_rendering.vcxproj @@ -1,569 +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 - - - - {11F33A39-74B7-4018-B5F9-CC285A673A8F} - Win32Proj - shaders_spotlight - 10.0 - shaders_spotlight - - - - 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\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - 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} - - - - - + + + + + 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 + + + + {11F33A39-74B7-4018-B5F9-CC285A673A8F} + Win32Proj + shaders_spotlight_rendering + 10.0 + shaders_spotlight_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\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + 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 221b8ea8c..6865e4717 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -225,7 +225,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_shapes_textures", " EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_simple_mask", "examples\shaders_simple_mask.vcxproj", "{600C3D4F-0670-4DB4-B30F-520A729053B5}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_spotlight", "examples\shaders_spotlight.vcxproj", "{11F33A39-74B7-4018-B5F9-CC285A673A8F}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_spotlight_rendering", "examples\shaders_spotlight_rendering.vcxproj", "{11F33A39-74B7-4018-B5F9-CC285A673A8F}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_texture_rendering", "examples\shaders_texture_rendering.vcxproj", "{A6F5E35E-B4A7-41B3-853A-75558E6E0715}" EndProject From 4a23ed698fd939efaa30af4416ea0b3f7edd03a4 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:34:48 +0200 Subject: [PATCH 108/190] REXM: RENAME: example: `shaders_raymarching` --> `shaders_raymarching_rendering` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...hing.c => shaders_raymarching_rendering.c} | 0 ....png => shaders_raymarching_rendering.png} | Bin ... => shaders_raymarching_rendering.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/shaders/{shaders_raymarching.c => shaders_raymarching_rendering.c} (100%) rename examples/shaders/{shaders_raymarching.png => shaders_raymarching_rendering.png} (100%) rename projects/VS2022/examples/{shaders_raymarching.vcxproj => shaders_raymarching_rendering.vcxproj} (98%) diff --git a/examples/Makefile b/examples/Makefile index b9e9c92ca..d0f06c37b 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -642,7 +642,7 @@ SHADERS = \ shaders/shaders_normalmap_rendering \ shaders/shaders_palette_switch \ shaders/shaders_postprocessing \ - shaders/shaders_raymarching \ + shaders/shaders_raymarching_rendering \ shaders/shaders_rounded_rectangle \ shaders/shaders_shadowmap_rendering \ shaders/shaders_shapes_textures \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 5950ff160..757f01a49 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -642,7 +642,7 @@ SHADERS = \ shaders/shaders_normalmap_rendering \ shaders/shaders_palette_switch \ shaders/shaders_postprocessing \ - shaders/shaders_raymarching \ + shaders/shaders_raymarching_rendering \ shaders/shaders_rounded_rectangle \ shaders/shaders_shadowmap_rendering \ shaders/shaders_shapes_textures \ @@ -1231,7 +1231,7 @@ shaders/shaders_postprocessing: shaders/shaders_postprocessing.c --preload-file shaders/resources/shaders/glsl100/bloom.fs@resources/shaders/glsl100/bloom.fs \ --preload-file shaders/resources/shaders/glsl100/blur.fs@resources/shaders/glsl100/blur.fs -shaders/shaders_raymarching: shaders/shaders_raymarching.c +shaders/shaders_raymarching_rendering: shaders/shaders_raymarching_rendering.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/shaders/glsl100/raymarching.fs@resources/shaders/glsl100/raymarching.fs diff --git a/examples/README.md b/examples/README.md index cf41a4879..a654f9804 100644 --- a/examples/README.md +++ b/examples/README.md @@ -183,7 +183,7 @@ Examples using raylib shaders functionality, including shaders loading, paramete | [shaders_custom_uniform](shaders/shaders_custom_uniform.c) | shaders_custom_uniform | ⭐⭐☆☆ | 1.3 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | | [shaders_postprocessing](shaders/shaders_postprocessing.c) | shaders_postprocessing | ⭐⭐⭐☆ | 1.3 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | | [shaders_palette_switch](shaders/shaders_palette_switch.c) | shaders_palette_switch | ⭐⭐⭐☆ | 2.5 | 3.7 | [Marco Lizza](https://github.com/MarcoLizza) | -| [shaders_raymarching](shaders/shaders_raymarching.c) | shaders_raymarching | ⭐⭐⭐⭐️ | 2.0 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | +| [shaders_raymarching_rendering](shaders/shaders_raymarching_rendering.c) | shaders_raymarching_rendering | ⭐⭐⭐⭐️ | 2.0 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | | [shaders_texture_rendering](shaders/shaders_texture_rendering.c) | shaders_texture_rendering | ⭐⭐☆☆ | 2.0 | 3.7 | [Michał Ciesielski](https://github.com/ciessielski) | | [shaders_texture_outline](shaders/shaders_texture_outline.c) | shaders_texture_outline | ⭐⭐⭐☆ | 4.0 | 4.0 | [Serenity Skiff](https://github.com/GoldenThumbs) | | [shaders_texture_waves](shaders/shaders_texture_waves.c) | shaders_texture_waves | ⭐⭐☆☆ | 2.5 | 3.7 | [Anata](https://github.com/anatagawa) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 149388fc2..d0d15894c 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -130,7 +130,7 @@ shaders;shaders_shapes_textures;★★☆☆;1.7;3.7;2015;2025;"Ramon Santamaria shaders;shaders_custom_uniform;★★☆☆;1.3;4.0;2015;2025;"Ramon Santamaria";@raysan5 shaders;shaders_postprocessing;★★★☆;1.3;4.0;2015;2025;"Ramon Santamaria";@raysan5 shaders;shaders_palette_switch;★★★☆;2.5;3.7;2019;2025;"Marco Lizza";@MarcoLizza -shaders;shaders_raymarching;★★★★;2.0;4.2;2018;2025;"Ramon Santamaria";@raysan5 +shaders;shaders_raymarching_rendering;★★★★;2.0;4.2;2018;2025;"Ramon Santamaria";@raysan5 shaders;shaders_texture_rendering;★★☆☆;2.0;3.7;2019;2025;"Michał Ciesielski";@ciessielski shaders;shaders_texture_outline;★★★☆;4.0;4.0;2021;2025;"Serenity Skiff";@GoldenThumbs shaders;shaders_texture_waves;★★☆☆;2.5;3.7;2019;2025;"Anata";@anatagawa diff --git a/examples/shaders/shaders_raymarching.c b/examples/shaders/shaders_raymarching_rendering.c similarity index 100% rename from examples/shaders/shaders_raymarching.c rename to examples/shaders/shaders_raymarching_rendering.c diff --git a/examples/shaders/shaders_raymarching.png b/examples/shaders/shaders_raymarching_rendering.png similarity index 100% rename from examples/shaders/shaders_raymarching.png rename to examples/shaders/shaders_raymarching_rendering.png diff --git a/projects/VS2022/examples/shaders_raymarching.vcxproj b/projects/VS2022/examples/shaders_raymarching_rendering.vcxproj similarity index 98% rename from projects/VS2022/examples/shaders_raymarching.vcxproj rename to projects/VS2022/examples/shaders_raymarching_rendering.vcxproj index c796134bc..c4e3557c0 100644 --- a/projects/VS2022/examples/shaders_raymarching.vcxproj +++ b/projects/VS2022/examples/shaders_raymarching_rendering.vcxproj @@ -1,569 +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 - - - - {D36EC43E-B31F-4CF4-8285-93A7A9D90189} - Win32Proj - shaders_raymarching - 10.0 - shaders_raymarching - - - - 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\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - 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} - - - - - + + + + + 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 + + + + {D36EC43E-B31F-4CF4-8285-93A7A9D90189} + Win32Proj + shaders_raymarching_rendering + 10.0 + shaders_raymarching_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\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + 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 6865e4717..fe91cb599 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -217,7 +217,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_palette_switch", "e EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_postprocessing", "examples\shaders_postprocessing.vcxproj", "{7381D91E-5C72-48F0-AAB4-95C9B10D7484}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_raymarching", "examples\shaders_raymarching.vcxproj", "{D36EC43E-B31F-4CF4-8285-93A7A9D90189}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_raymarching_rendering", "examples\shaders_raymarching_rendering.vcxproj", "{D36EC43E-B31F-4CF4-8285-93A7A9D90189}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_mesh_instancing", "examples\shaders_mesh_instancing.vcxproj", "{274C0319-7E1E-4188-936B-8DF3331230B3}" EndProject From d8f3b51a3f157e33f853198441863bc0144a6f69 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:35:27 +0200 Subject: [PATCH 109/190] REXM: RENAME: example: `models_animation` --> `models_animation_playing` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...animation.c => models_animation_playing.c} | 0 ...ation.png => models_animation_playing.png} | Bin ...xproj => models_animation_playing.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/models/{models_animation.c => models_animation_playing.c} (100%) rename examples/models/{models_animation.png => models_animation_playing.png} (100%) rename projects/VS2022/examples/{models_animation.vcxproj => models_animation_playing.vcxproj} (98%) diff --git a/examples/Makefile b/examples/Makefile index d0f06c37b..7d53b87d0 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -601,7 +601,7 @@ TEXT = \ text/text_writing_anim MODELS = \ - models/models_animation \ + models/models_animation_playing \ models/models_billboard_rendering \ models/models_bone_socket \ models/models_box_collisions \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 757f01a49..0d6bbc528 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -601,7 +601,7 @@ TEXT = \ text/text_writing_anim MODELS = \ - models/models_animation \ + models/models_animation_playing \ models/models_billboard_rendering \ models/models_bone_socket \ models/models_box_collisions \ @@ -1018,7 +1018,7 @@ text/text_writing_anim: text/text_writing_anim.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) # Compile MODELS examples -models/models_animation: models/models_animation.c +models/models_animation_playing: models/models_animation_playing.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file models/resources/models/iqm/guy.iqm@resources/models/iqm/guy.iqm \ --preload-file models/resources/models/iqm/guytex.png@resources/models/iqm/guytex.png \ diff --git a/examples/README.md b/examples/README.md index a654f9804..b35823b91 100644 --- a/examples/README.md +++ b/examples/README.md @@ -147,7 +147,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_animation_playing](models/models_animation_playing.c) | models_animation_playing | ⭐⭐☆☆ | 2.5 | 3.5 | [Culacant](https://github.com/culacant) | | [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_rendering](models/models_cubicmap_rendering.c) | models_cubicmap_rendering | ⭐⭐☆☆ | 1.8 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index d0d15894c..90014f633 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -101,7 +101,7 @@ text;text_unicode_emojis;★★★★;2.5;4.0;2019;2025;"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 +models;models_animation_playing;★★☆☆;2.5;3.5;2019;2025;"Culacant";@culacant models;models_billboard_rendering;★★★☆;1.3;3.5;2015;2025;"Ramon Santamaria";@raysan5 models;models_box_collisions;★☆☆☆;1.3;3.5;2015;2025;"Ramon Santamaria";@raysan5 models;models_cubicmap_rendering;★★☆☆;1.8;3.5;2015;2025;"Ramon Santamaria";@raysan5 diff --git a/examples/models/models_animation.c b/examples/models/models_animation_playing.c similarity index 100% rename from examples/models/models_animation.c rename to examples/models/models_animation_playing.c diff --git a/examples/models/models_animation.png b/examples/models/models_animation_playing.png similarity index 100% rename from examples/models/models_animation.png rename to examples/models/models_animation_playing.png diff --git a/projects/VS2022/examples/models_animation.vcxproj b/projects/VS2022/examples/models_animation_playing.vcxproj similarity index 98% rename from projects/VS2022/examples/models_animation.vcxproj rename to projects/VS2022/examples/models_animation_playing.vcxproj index 5b9399265..292c45fb6 100644 --- a/projects/VS2022/examples/models_animation.vcxproj +++ b/projects/VS2022/examples/models_animation_playing.vcxproj @@ -1,569 +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 - - - - {AFDDE100-2D36-4749-817D-12E54C56312F} - Win32Proj - models_animation - 10.0 - models_animation - - - - 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} - - - - - + + + + + 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 + + + + {AFDDE100-2D36-4749-817D-12E54C56312F} + Win32Proj + models_animation_playing + 10.0 + models_animation_playing + + + + 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 fe91cb599..56fe46e03 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -85,7 +85,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_window_letterbox", "ex EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_world_screen", "examples\core_world_screen.vcxproj", "{79417CE2-FEEB-42F0-BC53-62D5267B19B1}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_animation", "examples\models_animation.vcxproj", "{AFDDE100-2D36-4749-817D-12E54C56312F}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_animation_playing", "examples\models_animation_playing.vcxproj", "{AFDDE100-2D36-4749-817D-12E54C56312F}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_billboard_rendering", "examples\models_billboard_rendering.vcxproj", "{B7812167-50FB-4934-996F-DF6FE4CBBFDF}" EndProject From ede4547015bcc587472066bf0ac1d9f49e10e55b Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:35:37 +0200 Subject: [PATCH 110/190] REXM: RENAME: example: `models_draw_cube_texture` --> `models_textured_cube` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ..._cube_texture.c => models_textured_cube.c} | 0 ...e_texture.png => models_textured_cube.png} | Bin ...e.vcxproj => models_textured_cube.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/models/{models_draw_cube_texture.c => models_textured_cube.c} (100%) rename examples/models/{models_draw_cube_texture.png => models_textured_cube.png} (100%) rename projects/VS2022/examples/{models_draw_cube_texture.vcxproj => models_textured_cube.vcxproj} (97%) diff --git a/examples/Makefile b/examples/Makefile index 7d53b87d0..686810500 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -606,7 +606,7 @@ MODELS = \ models/models_bone_socket \ models/models_box_collisions \ models/models_cubicmap_rendering \ - models/models_draw_cube_texture \ + models/models_textured_cube \ models/models_first_person_maze \ models/models_geometric_shapes \ models/models_gpu_skinning \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 0d6bbc528..5065159d0 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -606,7 +606,7 @@ MODELS = \ models/models_bone_socket \ models/models_box_collisions \ models/models_cubicmap_rendering \ - models/models_draw_cube_texture \ + models/models_textured_cube \ models/models_first_person_maze \ models/models_geometric_shapes \ models/models_gpu_skinning \ @@ -1043,7 +1043,7 @@ models/models_cubicmap_rendering: models/models_cubicmap_rendering.c --preload-file models/resources/cubicmap.png@resources/cubicmap.png \ --preload-file models/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png -models/models_draw_cube_texture: models/models_draw_cube_texture.c +models/models_textured_cube: models/models_textured_cube.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file models/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png diff --git a/examples/README.md b/examples/README.md index b35823b91..72fd4d576 100644 --- a/examples/README.md +++ b/examples/README.md @@ -166,7 +166,7 @@ Examples using raylib models functionality, including models loading/generation | [models_waving_cubes](models/models_waving_cubes.c) | models_waving_cubes | ⭐⭐⭐☆ | 2.5 | 3.7 | [Codecat](https://github.com/codecat) | | [models_heightmap_rendering](models/models_heightmap_rendering.c) | models_heightmap_rendering | ⭐☆☆☆ | 1.8 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | | [models_skybox_rendering](models/models_skybox_rendering.c) | models_skybox_rendering | ⭐⭐☆☆ | 1.8 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | -| [models_draw_cube_texture](models/models_draw_cube_texture.c) | models_draw_cube_texture | ⭐⭐☆☆ | 4.5 | 4.5 | [Ramon Santamaria](https://github.com/raysan5) | +| [models_textured_cube](models/models_textured_cube.c) | models_textured_cube | ⭐⭐☆☆ | 4.5 | 4.5 | [Ramon Santamaria](https://github.com/raysan5) | | [models_gpu_skinning](models/models_gpu_skinning.c) | models_gpu_skinning | ⭐⭐⭐☆ | 4.5 | 4.5 | [Daniel Holden](https://github.com/orangeduck) | | [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) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 90014f633..90f453d2a 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -120,7 +120,7 @@ models;models_yaw_pitch_roll;★★☆☆;1.8;4.0;2017;2025;"Berni";@Berni8k models;models_waving_cubes;★★★☆;2.5;3.7;2019;2025;"Codecat";@codecat models;models_heightmap_rendering;★☆☆☆;1.8;3.5;2015;2025;"Ramon Santamaria";@raysan5 models;models_skybox_rendering;★★☆☆;1.8;4.0;2017;2025;"Ramon Santamaria";@raysan5 -models;models_draw_cube_texture;★★☆☆;4.5;4.5;2022;2025;"Ramon Santamaria";@raysan5 +models;models_textured_cube;★★☆☆;4.5;4.5;2022;2025;"Ramon Santamaria";@raysan5 models;models_gpu_skinning;★★★☆;4.5;4.5;2024;2025;"Daniel Holden";@orangeduck 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 diff --git a/examples/models/models_draw_cube_texture.c b/examples/models/models_textured_cube.c similarity index 100% rename from examples/models/models_draw_cube_texture.c rename to examples/models/models_textured_cube.c diff --git a/examples/models/models_draw_cube_texture.png b/examples/models/models_textured_cube.png similarity index 100% rename from examples/models/models_draw_cube_texture.png rename to examples/models/models_textured_cube.png diff --git a/projects/VS2022/examples/models_draw_cube_texture.vcxproj b/projects/VS2022/examples/models_textured_cube.vcxproj similarity index 97% rename from projects/VS2022/examples/models_draw_cube_texture.vcxproj rename to projects/VS2022/examples/models_textured_cube.vcxproj index a2ca31eb2..1e75df771 100644 --- a/projects/VS2022/examples/models_draw_cube_texture.vcxproj +++ b/projects/VS2022/examples/models_textured_cube.vcxproj @@ -1,569 +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 - - - - {4B39E5FC-0A96-4057-9AA5-8D5A52880DA7} - Win32Proj - models_draw_cube_texture - 10.0 - models_draw_cube_texture - - - - 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} - - - - - + + + + + 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 + + + + {4B39E5FC-0A96-4057-9AA5-8D5A52880DA7} + Win32Proj + models_textured_cube + 10.0 + models_textured_cube + + + + 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 56fe46e03..1c13b9e6d 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -285,7 +285,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_input_mouse_wheel", "e EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_smooth_pixelperfect", "examples\core_smooth_pixelperfect.vcxproj", "{71DB4284-5B1C-4E86-9AF5-B91542D44A6F}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_draw_cube_texture", "examples\models_draw_cube_texture.vcxproj", "{4B39E5FC-0A96-4057-9AA5-8D5A52880DA7}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_textured_cube", "examples\models_textured_cube.vcxproj", "{4B39E5FC-0A96-4057-9AA5-8D5A52880DA7}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_deferred_rendering", "examples\shaders_deferred_rendering.vcxproj", "{88DE5AD6-0074-4A5A-BE22-C840153E35D5}" EndProject From 84baaa6ee7b32be27243d3833190d46c2856c4e0 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:36:29 +0200 Subject: [PATCH 111/190] REXM: RENAME: example: `shapes_easings_ball_anim` --> `shapes_easings_ball` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...ings_ball_anim.c => shapes_easings_ball.c} | 0 ..._ball_anim.png => shapes_easings_ball.png} | Bin ...im.vcxproj => shapes_easings_ball.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/shapes/{shapes_easings_ball_anim.c => shapes_easings_ball.c} (100%) rename examples/shapes/{shapes_easings_ball_anim.png => shapes_easings_ball.png} (100%) rename projects/VS2022/examples/{shapes_easings_ball_anim.vcxproj => shapes_easings_ball.vcxproj} (97%) diff --git a/examples/Makefile b/examples/Makefile index 686810500..9a56f3bc2 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -544,7 +544,7 @@ SHAPES = \ shapes/shapes_double_pendulum \ shapes/shapes_circle_sector_drawing \ shapes/shapes_rounded_rectangle_drawing \ - shapes/shapes_easings_ball_anim \ + shapes/shapes_easings_ball \ shapes/shapes_easings_box_anim \ shapes/shapes_easings_rectangle_array \ shapes/shapes_following_eyes \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 5065159d0..4bb7bf993 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -544,7 +544,7 @@ SHAPES = \ shapes/shapes_double_pendulum \ shapes/shapes_circle_sector_drawing \ shapes/shapes_rounded_rectangle_drawing \ - shapes/shapes_easings_ball_anim \ + shapes/shapes_easings_ball \ shapes/shapes_easings_box_anim \ shapes/shapes_easings_rectangle_array \ shapes/shapes_following_eyes \ @@ -811,7 +811,7 @@ shapes/shapes_circle_sector_drawing: shapes/shapes_circle_sector_drawing.c shapes/shapes_rounded_rectangle_drawing: shapes/shapes_rounded_rectangle_drawing.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -shapes/shapes_easings_ball_anim: shapes/shapes_easings_ball_anim.c +shapes/shapes_easings_ball: shapes/shapes_easings_ball.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) shapes/shapes_easings_box_anim: shapes/shapes_easings_box_anim.c diff --git a/examples/README.md b/examples/README.md index 72fd4d576..badb7f14a 100644 --- a/examples/README.md +++ b/examples/README.md @@ -76,7 +76,7 @@ Examples using raylib shapes drawing functionality, provided by raylib [shapes]( | [shapes_lines_bezier](shapes/shapes_lines_bezier.c) | shapes_lines_bezier | ⭐☆☆☆ | 1.7 | 1.7 | [Ramon Santamaria](https://github.com/raysan5) | | [shapes_collision_area](shapes/shapes_collision_area.c) | shapes_collision_area | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shapes_following_eyes](shapes/shapes_following_eyes.c) | shapes_following_eyes | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | -| [shapes_easings_ball_anim](shapes/shapes_easings_ball_anim.c) | shapes_easings_ball_anim | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | +| [shapes_easings_ball](shapes/shapes_easings_ball.c) | shapes_easings_ball | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shapes_easings_box_anim](shapes/shapes_easings_box_anim.c) | shapes_easings_box_anim | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shapes_easings_rectangle_array](shapes/shapes_easings_rectangle_array.c) | shapes_easings_rectangle_array | ⭐⭐⭐☆ | 2.0 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shapes_ring_drawing](shapes/shapes_ring_drawing.c) | shapes_ring_drawing | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 90f453d2a..e50d597ca 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -51,7 +51,7 @@ shapes;shapes_rectangle_scaling;★★☆☆;2.5;2.5;2018;2025;"Vlad Adrian";@de shapes;shapes_lines_bezier;★☆☆☆;1.7;1.7;2017;2025;"Ramon Santamaria";@raysan5 shapes;shapes_collision_area;★★☆☆;2.5;2.5;2013;2025;"Ramon Santamaria";@raysan5 shapes;shapes_following_eyes;★★☆☆;2.5;2.5;2013;2025;"Ramon Santamaria";@raysan5 -shapes;shapes_easings_ball_anim;★★☆☆;2.5;2.5;2014;2025;"Ramon Santamaria";@raysan5 +shapes;shapes_easings_ball;★★☆☆;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_ring_drawing;★★★☆;2.5;2.5;2018;2025;"Vlad Adrian";@demizdor diff --git a/examples/shapes/shapes_easings_ball_anim.c b/examples/shapes/shapes_easings_ball.c similarity index 100% rename from examples/shapes/shapes_easings_ball_anim.c rename to examples/shapes/shapes_easings_ball.c diff --git a/examples/shapes/shapes_easings_ball_anim.png b/examples/shapes/shapes_easings_ball.png similarity index 100% rename from examples/shapes/shapes_easings_ball_anim.png rename to examples/shapes/shapes_easings_ball.png diff --git a/projects/VS2022/examples/shapes_easings_ball_anim.vcxproj b/projects/VS2022/examples/shapes_easings_ball.vcxproj similarity index 97% rename from projects/VS2022/examples/shapes_easings_ball_anim.vcxproj rename to projects/VS2022/examples/shapes_easings_ball.vcxproj index 682d29c96..bd3b24e50 100644 --- a/projects/VS2022/examples/shapes_easings_ball_anim.vcxproj +++ b/projects/VS2022/examples/shapes_easings_ball.vcxproj @@ -1,569 +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 - - - - {1C49E35A-2838-49D9-9D5F-4B8134960EF6} - Win32Proj - shapes_easings_ball_anim - 10.0 - shapes_easings_ball_anim - - - - 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\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - 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} - - - - - + + + + + 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 + + + + {1C49E35A-2838-49D9-9D5F-4B8134960EF6} + Win32Proj + shapes_easings_ball + 10.0 + shapes_easings_ball + + + + 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\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + 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 1c13b9e6d..79a6e8d60 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -191,7 +191,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_rounded_rectangle_dr EndProject 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}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_easings_ball", "examples\shapes_easings_ball.vcxproj", "{1C49E35A-2838-49D9-9D5F-4B8134960EF6}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_easings_box_anim", "examples\shapes_easings_box_anim.vcxproj", "{F91142E2-A999-47F0-9E74-38C1E2930EBE}" EndProject From 5ac0539481d7b3c2802add07f924f8dad915cd81 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:36:41 +0200 Subject: [PATCH 112/190] REXM: RENAME: example: `shapes_easings_box_anim` --> `shapes_easings_box` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...asings_box_anim.c => shapes_easings_box.c} | 0 ...gs_box_anim.png => shapes_easings_box.png} | Bin ...nim.vcxproj => shapes_easings_box.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/shapes/{shapes_easings_box_anim.c => shapes_easings_box.c} (100%) rename examples/shapes/{shapes_easings_box_anim.png => shapes_easings_box.png} (100%) rename projects/VS2022/examples/{shapes_easings_box_anim.vcxproj => shapes_easings_box.vcxproj} (97%) diff --git a/examples/Makefile b/examples/Makefile index 9a56f3bc2..6f49b148f 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -545,7 +545,7 @@ SHAPES = \ shapes/shapes_circle_sector_drawing \ shapes/shapes_rounded_rectangle_drawing \ shapes/shapes_easings_ball \ - shapes/shapes_easings_box_anim \ + shapes/shapes_easings_box \ shapes/shapes_easings_rectangle_array \ shapes/shapes_following_eyes \ shapes/shapes_lines_bezier \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 4bb7bf993..15c8fd341 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -545,7 +545,7 @@ SHAPES = \ shapes/shapes_circle_sector_drawing \ shapes/shapes_rounded_rectangle_drawing \ shapes/shapes_easings_ball \ - shapes/shapes_easings_box_anim \ + shapes/shapes_easings_box \ shapes/shapes_easings_rectangle_array \ shapes/shapes_following_eyes \ shapes/shapes_lines_bezier \ @@ -814,7 +814,7 @@ shapes/shapes_rounded_rectangle_drawing: shapes/shapes_rounded_rectangle_drawing shapes/shapes_easings_ball: shapes/shapes_easings_ball.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -shapes/shapes_easings_box_anim: shapes/shapes_easings_box_anim.c +shapes/shapes_easings_box: shapes/shapes_easings_box.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) shapes/shapes_easings_rectangle_array: shapes/shapes_easings_rectangle_array.c diff --git a/examples/README.md b/examples/README.md index badb7f14a..5d4794e95 100644 --- a/examples/README.md +++ b/examples/README.md @@ -77,7 +77,7 @@ Examples using raylib shapes drawing functionality, provided by raylib [shapes]( | [shapes_collision_area](shapes/shapes_collision_area.c) | shapes_collision_area | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shapes_following_eyes](shapes/shapes_following_eyes.c) | shapes_following_eyes | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shapes_easings_ball](shapes/shapes_easings_ball.c) | shapes_easings_ball | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | -| [shapes_easings_box_anim](shapes/shapes_easings_box_anim.c) | shapes_easings_box_anim | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | +| [shapes_easings_box](shapes/shapes_easings_box.c) | shapes_easings_box | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shapes_easings_rectangle_array](shapes/shapes_easings_rectangle_array.c) | shapes_easings_rectangle_array | ⭐⭐⭐☆ | 2.0 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shapes_ring_drawing](shapes/shapes_ring_drawing.c) | shapes_ring_drawing | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | | [shapes_circle_sector_drawing](shapes/shapes_circle_sector_drawing.c) | shapes_circle_sector_drawing | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index e50d597ca..7545c00b1 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -52,7 +52,7 @@ shapes;shapes_lines_bezier;★☆☆☆;1.7;1.7;2017;2025;"Ramon Santamaria";@ra shapes;shapes_collision_area;★★☆☆;2.5;2.5;2013;2025;"Ramon Santamaria";@raysan5 shapes;shapes_following_eyes;★★☆☆;2.5;2.5;2013;2025;"Ramon Santamaria";@raysan5 shapes;shapes_easings_ball;★★☆☆;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_box;★★☆☆;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_ring_drawing;★★★☆;2.5;2.5;2018;2025;"Vlad Adrian";@demizdor shapes;shapes_circle_sector_drawing;★★★☆;2.5;2.5;2018;2025;"Vlad Adrian";@demizdor diff --git a/examples/shapes/shapes_easings_box_anim.c b/examples/shapes/shapes_easings_box.c similarity index 100% rename from examples/shapes/shapes_easings_box_anim.c rename to examples/shapes/shapes_easings_box.c diff --git a/examples/shapes/shapes_easings_box_anim.png b/examples/shapes/shapes_easings_box.png similarity index 100% rename from examples/shapes/shapes_easings_box_anim.png rename to examples/shapes/shapes_easings_box.png diff --git a/projects/VS2022/examples/shapes_easings_box_anim.vcxproj b/projects/VS2022/examples/shapes_easings_box.vcxproj similarity index 97% rename from projects/VS2022/examples/shapes_easings_box_anim.vcxproj rename to projects/VS2022/examples/shapes_easings_box.vcxproj index 27b85b82b..e536eacaa 100644 --- a/projects/VS2022/examples/shapes_easings_box_anim.vcxproj +++ b/projects/VS2022/examples/shapes_easings_box.vcxproj @@ -1,569 +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 - - - - {F91142E2-A999-47F0-9E74-38C1E2930EBE} - Win32Proj - shapes_easings_box_anim - 10.0 - shapes_easings_box_anim - - - - 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\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - 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} - - - - - + + + + + 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 + + + + {F91142E2-A999-47F0-9E74-38C1E2930EBE} + Win32Proj + shapes_easings_box + 10.0 + shapes_easings_box + + + + 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\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + 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 79a6e8d60..9aca65c76 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -193,7 +193,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_ring_drawing", "exam EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_easings_ball", "examples\shapes_easings_ball.vcxproj", "{1C49E35A-2838-49D9-9D5F-4B8134960EF6}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_easings_box_anim", "examples\shapes_easings_box_anim.vcxproj", "{F91142E2-A999-47F0-9E74-38C1E2930EBE}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_easings_box", "examples\shapes_easings_box.vcxproj", "{F91142E2-A999-47F0-9E74-38C1E2930EBE}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_easings_rectangle_array", "examples\shapes_easings_rectangle_array.vcxproj", "{1EDD4BCF-345C-4065-8CBD-7285224293C3}" EndProject From adda398e6578612b083552f8cf176d771591784a Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:36:48 +0200 Subject: [PATCH 113/190] REXM: RENAME: example: `shapes_easings_rectangle_array` --> `shapes_easings_rectangles` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...le_array.c => shapes_easings_rectangles.c} | 0 ...rray.png => shapes_easings_rectangles.png} | Bin ...proj => shapes_easings_rectangles.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/shapes/{shapes_easings_rectangle_array.c => shapes_easings_rectangles.c} (100%) rename examples/shapes/{shapes_easings_rectangle_array.png => shapes_easings_rectangles.png} (100%) rename projects/VS2022/examples/{shapes_easings_rectangle_array.vcxproj => shapes_easings_rectangles.vcxproj} (97%) diff --git a/examples/Makefile b/examples/Makefile index 6f49b148f..93e08995c 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -546,7 +546,7 @@ SHAPES = \ shapes/shapes_rounded_rectangle_drawing \ shapes/shapes_easings_ball \ shapes/shapes_easings_box \ - shapes/shapes_easings_rectangle_array \ + shapes/shapes_easings_rectangles \ shapes/shapes_following_eyes \ shapes/shapes_lines_bezier \ shapes/shapes_logo_raylib \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 15c8fd341..d2eb6633e 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -546,7 +546,7 @@ SHAPES = \ shapes/shapes_rounded_rectangle_drawing \ shapes/shapes_easings_ball \ shapes/shapes_easings_box \ - shapes/shapes_easings_rectangle_array \ + shapes/shapes_easings_rectangles \ shapes/shapes_following_eyes \ shapes/shapes_lines_bezier \ shapes/shapes_logo_raylib \ @@ -817,7 +817,7 @@ shapes/shapes_easings_ball: shapes/shapes_easings_ball.c shapes/shapes_easings_box: shapes/shapes_easings_box.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -shapes/shapes_easings_rectangle_array: shapes/shapes_easings_rectangle_array.c +shapes/shapes_easings_rectangles: shapes/shapes_easings_rectangles.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) shapes/shapes_following_eyes: shapes/shapes_following_eyes.c diff --git a/examples/README.md b/examples/README.md index 5d4794e95..89953c494 100644 --- a/examples/README.md +++ b/examples/README.md @@ -78,7 +78,7 @@ Examples using raylib shapes drawing functionality, provided by raylib [shapes]( | [shapes_following_eyes](shapes/shapes_following_eyes.c) | shapes_following_eyes | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shapes_easings_ball](shapes/shapes_easings_ball.c) | shapes_easings_ball | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shapes_easings_box](shapes/shapes_easings_box.c) | shapes_easings_box | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | -| [shapes_easings_rectangle_array](shapes/shapes_easings_rectangle_array.c) | shapes_easings_rectangle_array | ⭐⭐⭐☆ | 2.0 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | +| [shapes_easings_rectangles](shapes/shapes_easings_rectangles.c) | shapes_easings_rectangles | ⭐⭐⭐☆ | 2.0 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | | [shapes_ring_drawing](shapes/shapes_ring_drawing.c) | shapes_ring_drawing | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | | [shapes_circle_sector_drawing](shapes/shapes_circle_sector_drawing.c) | shapes_circle_sector_drawing | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | | [shapes_rounded_rectangle_drawing](shapes/shapes_rounded_rectangle_drawing.c) | shapes_rounded_rectangle_drawing | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 7545c00b1..aa3c9e368 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -53,7 +53,7 @@ shapes;shapes_collision_area;★★☆☆;2.5;2.5;2013;2025;"Ramon Santamaria";@ shapes;shapes_following_eyes;★★☆☆;2.5;2.5;2013;2025;"Ramon Santamaria";@raysan5 shapes;shapes_easings_ball;★★☆☆;2.5;2.5;2014;2025;"Ramon Santamaria";@raysan5 shapes;shapes_easings_box;★★☆☆;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_easings_rectangles;★★★☆;2.0;2.5;2014;2025;"Ramon Santamaria";@raysan5 shapes;shapes_ring_drawing;★★★☆;2.5;2.5;2018;2025;"Vlad Adrian";@demizdor shapes;shapes_circle_sector_drawing;★★★☆;2.5;2.5;2018;2025;"Vlad Adrian";@demizdor shapes;shapes_rounded_rectangle_drawing;★★★☆;2.5;2.5;2018;2025;"Vlad Adrian";@demizdor diff --git a/examples/shapes/shapes_easings_rectangle_array.c b/examples/shapes/shapes_easings_rectangles.c similarity index 100% rename from examples/shapes/shapes_easings_rectangle_array.c rename to examples/shapes/shapes_easings_rectangles.c diff --git a/examples/shapes/shapes_easings_rectangle_array.png b/examples/shapes/shapes_easings_rectangles.png similarity index 100% rename from examples/shapes/shapes_easings_rectangle_array.png rename to examples/shapes/shapes_easings_rectangles.png diff --git a/projects/VS2022/examples/shapes_easings_rectangle_array.vcxproj b/projects/VS2022/examples/shapes_easings_rectangles.vcxproj similarity index 97% rename from projects/VS2022/examples/shapes_easings_rectangle_array.vcxproj rename to projects/VS2022/examples/shapes_easings_rectangles.vcxproj index cf14665b8..ef7c7a8f9 100644 --- a/projects/VS2022/examples/shapes_easings_rectangle_array.vcxproj +++ b/projects/VS2022/examples/shapes_easings_rectangles.vcxproj @@ -1,569 +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 - - - - {1EDD4BCF-345C-4065-8CBD-7285224293C3} - Win32Proj - shapes_easings_rectangle_array - 10.0 - shapes_easings_rectangle_array - - - - 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\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shapes - 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} - - - - - + + + + + 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 + + + + {1EDD4BCF-345C-4065-8CBD-7285224293C3} + Win32Proj + shapes_easings_rectangles + 10.0 + shapes_easings_rectangles + + + + 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\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shapes + 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 9aca65c76..dab68398f 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -195,7 +195,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_easings_ball", "exam EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_easings_box", "examples\shapes_easings_box.vcxproj", "{F91142E2-A999-47F0-9E74-38C1E2930EBE}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_easings_rectangle_array", "examples\shapes_easings_rectangle_array.vcxproj", "{1EDD4BCF-345C-4065-8CBD-7285224293C3}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shapes_easings_rectangles", "examples\shapes_easings_rectangles.vcxproj", "{1EDD4BCF-345C-4065-8CBD-7285224293C3}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_basic_lighting", "examples\shaders_basic_lighting.vcxproj", "{A6B2A11B-0669-4AF5-A025-8DD02DBBE5EA}" EndProject From 851bb3120d48fd0c0241269cc1883f7bd5cdad64 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:37:11 +0200 Subject: [PATCH 114/190] REXM: RENAME: example: `shaders_view_depth` --> `shaders_depth_rendering` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...view_depth.c => shaders_depth_rendering.c} | 0 ..._depth.png => shaders_depth_rendering.png} | Bin ...cxproj => shaders_depth_rendering.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/shaders/{shaders_view_depth.c => shaders_depth_rendering.c} (100%) rename examples/shaders/{shaders_view_depth.png => shaders_depth_rendering.png} (100%) rename projects/VS2022/examples/{shaders_view_depth.vcxproj => shaders_depth_rendering.vcxproj} (97%) diff --git a/examples/Makefile b/examples/Makefile index 93e08995c..275d96e6e 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -653,7 +653,7 @@ SHADERS = \ shaders/shaders_texture_tiling \ shaders/shaders_texture_waves \ shaders/shaders_vertex_displacement \ - shaders/shaders_view_depth \ + shaders/shaders_depth_rendering \ shaders/shaders_write_depth AUDIO = \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index d2eb6633e..9a8a6a4aa 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -653,7 +653,7 @@ SHADERS = \ shaders/shaders_texture_tiling \ shaders/shaders_texture_waves \ shaders/shaders_vertex_displacement \ - shaders/shaders_view_depth \ + shaders/shaders_depth_rendering \ shaders/shaders_write_depth AUDIO = \ @@ -1287,7 +1287,7 @@ shaders/shaders_vertex_displacement: shaders/shaders_vertex_displacement.c --preload-file shaders/resources/shaders/glsl100/vertex_displacement.vs@resources/shaders/glsl100/vertex_displacement.vs \ --preload-file shaders/resources/shaders/glsl100/vertex_displacement.fs@resources/shaders/glsl100/vertex_displacement.fs -shaders/shaders_view_depth: shaders/shaders_view_depth.c +shaders/shaders_depth_rendering: shaders/shaders_depth_rendering.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/shaders/glsl100/depth.fs@resources/shaders/glsl100/depth.fs diff --git a/examples/README.md b/examples/README.md index 89953c494..9e0b1e462 100644 --- a/examples/README.md +++ b/examples/README.md @@ -205,7 +205,7 @@ Examples using raylib shaders functionality, including shaders loading, paramete | [shaders_basic_pbr](shaders/shaders_basic_pbr.c) | shaders_basic_pbr | ⭐⭐⭐⭐️ | 5.0 | 5.5 | [Afan OLOVCIC](https://github.com/_DevDad) | | [shaders_lightmap_rendering](shaders/shaders_lightmap_rendering.c) | shaders_lightmap_rendering | ⭐⭐⭐☆ | 4.5 | 4.5 | [Jussi Viitala](https://github.com/nullstare) | | [shaders_rounded_rectangle](shaders/shaders_rounded_rectangle.c) | shaders_rounded_rectangle | ⭐⭐⭐☆ | 5.5 | 5.5 | [Anstro Pleuton](https://github.com/anstropleuton) | -| [shaders_view_depth](shaders/shaders_view_depth.c) | shaders_view_depth | ⭐⭐⭐☆ | 5.6-dev | 5.6-dev | [Luís Almeida](https://github.com/luis605) | +| [shaders_depth_rendering](shaders/shaders_depth_rendering.c) | shaders_depth_rendering | ⭐⭐⭐☆ | 5.6-dev | 5.6-dev | [Luís Almeida](https://github.com/luis605) | ### category: audio [8] diff --git a/examples/examples_list.txt b/examples/examples_list.txt index aa3c9e368..25786ff22 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -152,7 +152,7 @@ shaders;shaders_write_depth;★★☆☆;4.2;4.2;2022;2025;"Buğra Alptekin Sar shaders;shaders_basic_pbr;★★★★;5.0;5.5;2023;2025;"Afan OLOVCIC";@_DevDad shaders;shaders_lightmap_rendering;★★★☆;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 +shaders;shaders_depth_rendering;★★★☆;5.6-dev;5.6-dev;2025;2025;"Luís Almeida";@luis605 audio;audio_module_playing;★☆☆☆;1.5;3.5;2016;2025;"Ramon Santamaria";@raysan5 audio;audio_music_stream;★☆☆☆;1.3;4.2;2015;2025;"Ramon Santamaria";@raysan5 audio;audio_raw_stream;★★★☆;1.6;4.2;2015;2025;"Ramon Santamaria";@raysan5 diff --git a/examples/shaders/shaders_view_depth.c b/examples/shaders/shaders_depth_rendering.c similarity index 100% rename from examples/shaders/shaders_view_depth.c rename to examples/shaders/shaders_depth_rendering.c diff --git a/examples/shaders/shaders_view_depth.png b/examples/shaders/shaders_depth_rendering.png similarity index 100% rename from examples/shaders/shaders_view_depth.png rename to examples/shaders/shaders_depth_rendering.png diff --git a/projects/VS2022/examples/shaders_view_depth.vcxproj b/projects/VS2022/examples/shaders_depth_rendering.vcxproj similarity index 97% rename from projects/VS2022/examples/shaders_view_depth.vcxproj rename to projects/VS2022/examples/shaders_depth_rendering.vcxproj index 859628de8..21e73f1ee 100644 --- a/projects/VS2022/examples/shaders_view_depth.vcxproj +++ b/projects/VS2022/examples/shaders_depth_rendering.vcxproj @@ -1,569 +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 - - - - {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7} - Win32Proj - shaders_view_depth - 10.0 - shaders_view_depth - - - - 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\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - 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} - - - - - + + + + + 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 + + + + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7} + Win32Proj + shaders_depth_rendering + 10.0 + shaders_depth_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\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + 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 dab68398f..067a7c3e1 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -269,7 +269,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_loading_m3d", "examp EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_write_depth", "examples\shaders_write_depth.vcxproj", "{70B35F59-AFC2-4D8F-8833-5314D2047A81}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_view_depth", "examples\shaders_view_depth.vcxproj", "{DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_depth_rendering", "examples\shaders_depth_rendering.vcxproj", "{DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_hybrid_rendering", "examples\shaders_hybrid_rendering.vcxproj", "{3755E9F4-CB48-4EC3-B561-3B85964EBDEF}" EndProject From c7f8843200f7acd02dc30e6d243cd2840a9c21c6 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 20:37:27 +0200 Subject: [PATCH 115/190] REXM: RENAME: example: `shaders_eratosthenes` --> `shaders_eratosthenes_sieve` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- ...sthenes.c => shaders_eratosthenes_sieve.c} | 0 ...nes.png => shaders_eratosthenes_sieve.png} | Bin ...roj => shaders_eratosthenes_sieve.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 8 files changed, 574 insertions(+), 574 deletions(-) rename examples/shaders/{shaders_eratosthenes.c => shaders_eratosthenes_sieve.c} (100%) rename examples/shaders/{shaders_eratosthenes.png => shaders_eratosthenes_sieve.png} (100%) rename projects/VS2022/examples/{shaders_eratosthenes.vcxproj => shaders_eratosthenes_sieve.vcxproj} (98%) diff --git a/examples/Makefile b/examples/Makefile index 275d96e6e..8c2b1305a 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -630,7 +630,7 @@ SHADERS = \ shaders/shaders_basic_pbr \ shaders/shaders_custom_uniform \ shaders/shaders_deferred_rendering \ - shaders/shaders_eratosthenes \ + shaders/shaders_eratosthenes_sieve \ shaders/shaders_fog_rendering \ shaders/shaders_hot_reloading \ shaders/shaders_hybrid_rendering \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 9a8a6a4aa..ca3ddabb8 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -630,7 +630,7 @@ SHADERS = \ shaders/shaders_basic_pbr \ shaders/shaders_custom_uniform \ shaders/shaders_deferred_rendering \ - shaders/shaders_eratosthenes \ + shaders/shaders_eratosthenes_sieve \ shaders/shaders_fog_rendering \ shaders/shaders_hot_reloading \ shaders/shaders_hybrid_rendering \ @@ -1157,7 +1157,7 @@ shaders/shaders_deferred_rendering: shaders/shaders_deferred_rendering.c --preload-file shaders/resources/shaders/glsl100/deferred_shading.vs@resources/shaders/glsl100/deferred_shading.vs \ --preload-file shaders/resources/shaders/glsl100/deferred_shading.fs@resources/shaders/glsl100/deferred_shading.fs -shaders/shaders_eratosthenes: shaders/shaders_eratosthenes.c +shaders/shaders_eratosthenes_sieve: shaders/shaders_eratosthenes_sieve.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/shaders/glsl100/eratosthenes.fs@resources/shaders/glsl100/eratosthenes.fs diff --git a/examples/README.md b/examples/README.md index 9e0b1e462..608d9d3d7 100644 --- a/examples/README.md +++ b/examples/README.md @@ -188,7 +188,7 @@ Examples using raylib shaders functionality, including shaders loading, paramete | [shaders_texture_outline](shaders/shaders_texture_outline.c) | shaders_texture_outline | ⭐⭐⭐☆ | 4.0 | 4.0 | [Serenity Skiff](https://github.com/GoldenThumbs) | | [shaders_texture_waves](shaders/shaders_texture_waves.c) | shaders_texture_waves | ⭐⭐☆☆ | 2.5 | 3.7 | [Anata](https://github.com/anatagawa) | | [shaders_julia_set](shaders/shaders_julia_set.c) | shaders_julia_set | ⭐⭐⭐☆ | 2.5 | 4.0 | [Josh Colclough](https://github.com/joshcol9232) | -| [shaders_eratosthenes](shaders/shaders_eratosthenes.c) | shaders_eratosthenes | ⭐⭐⭐☆ | 2.5 | 4.0 | [ProfJski](https://github.com/ProfJski) | +| [shaders_eratosthenes_sieve](shaders/shaders_eratosthenes_sieve.c) | shaders_eratosthenes_sieve | ⭐⭐⭐☆ | 2.5 | 4.0 | [ProfJski](https://github.com/ProfJski) | | [shaders_fog_rendering](shaders/shaders_fog_rendering.c) | shaders_fog_rendering | ⭐⭐⭐☆ | 2.5 | 3.7 | [Chris Camacho](https://github.com/chriscamacho) | | [shaders_simple_mask](shaders/shaders_simple_mask.c) | shaders_simple_mask | ⭐⭐☆☆ | 2.5 | 3.7 | [Chris Camacho](https://github.com/chriscamacho) | | [shaders_hot_reloading](shaders/shaders_hot_reloading.c) | shaders_hot_reloading | ⭐⭐⭐☆ | 3.0 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 25786ff22..ed8cc3ff6 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -135,7 +135,7 @@ shaders;shaders_texture_rendering;★★☆☆;2.0;3.7;2019;2025;"Michał Ciesie shaders;shaders_texture_outline;★★★☆;4.0;4.0;2021;2025;"Serenity Skiff";@GoldenThumbs shaders;shaders_texture_waves;★★☆☆;2.5;3.7;2019;2025;"Anata";@anatagawa shaders;shaders_julia_set;★★★☆;2.5;4.0;2019;2025;"Josh Colclough";@joshcol9232 -shaders;shaders_eratosthenes;★★★☆;2.5;4.0;2019;2025;"ProfJski";@ProfJski +shaders;shaders_eratosthenes_sieve;★★★☆;2.5;4.0;2019;2025;"ProfJski";@ProfJski shaders;shaders_fog_rendering;★★★☆;2.5;3.7;2019;2025;"Chris Camacho";@chriscamacho shaders;shaders_simple_mask;★★☆☆;2.5;3.7;2019;2025;"Chris Camacho";@chriscamacho shaders;shaders_hot_reloading;★★★☆;3.0;3.5;2020;2025;"Ramon Santamaria";@raysan5 diff --git a/examples/shaders/shaders_eratosthenes.c b/examples/shaders/shaders_eratosthenes_sieve.c similarity index 100% rename from examples/shaders/shaders_eratosthenes.c rename to examples/shaders/shaders_eratosthenes_sieve.c diff --git a/examples/shaders/shaders_eratosthenes.png b/examples/shaders/shaders_eratosthenes_sieve.png similarity index 100% rename from examples/shaders/shaders_eratosthenes.png rename to examples/shaders/shaders_eratosthenes_sieve.png diff --git a/projects/VS2022/examples/shaders_eratosthenes.vcxproj b/projects/VS2022/examples/shaders_eratosthenes_sieve.vcxproj similarity index 98% rename from projects/VS2022/examples/shaders_eratosthenes.vcxproj rename to projects/VS2022/examples/shaders_eratosthenes_sieve.vcxproj index a8050804c..507db0d88 100644 --- a/projects/VS2022/examples/shaders_eratosthenes.vcxproj +++ b/projects/VS2022/examples/shaders_eratosthenes_sieve.vcxproj @@ -1,569 +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 - - - - {D08AA2A0-2F94-4BF5-B42D-E92450F03FD1} - Win32Proj - shaders_eratosthenes - 10.0 - shaders_eratosthenes - - - - 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\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - 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} - - - - - + + + + + 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 + + + + {D08AA2A0-2F94-4BF5-B42D-E92450F03FD1} + Win32Proj + shaders_eratosthenes_sieve + 10.0 + shaders_eratosthenes_sieve + + + + 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\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + 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 067a7c3e1..24f02766f 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -201,7 +201,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_basic_lighting", "e EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_custom_uniform", "examples\shaders_custom_uniform.vcxproj", "{B176BB4A-CA31-4E2A-B790-3EA0ED2EE870}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_eratosthenes", "examples\shaders_eratosthenes.vcxproj", "{D08AA2A0-2F94-4BF5-B42D-E92450F03FD1}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_eratosthenes_sieve", "examples\shaders_eratosthenes_sieve.vcxproj", "{D08AA2A0-2F94-4BF5-B42D-E92450F03FD1}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_fog_rendering", "examples\shaders_fog_rendering.vcxproj", "{4A7D0ECA-D7CC-4E66-B741-C92E9C1B42FF}" EndProject From ef0dd5f774499ab2296cbbe0eec218d50c0dcdfc Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 21:01:59 +0200 Subject: [PATCH 116/190] REXM: Updated examples after some renames --- examples/Makefile | 8 ++-- examples/Makefile.Web | 38 +++++++++---------- examples/models/models_animation_playing.c | 4 +- examples/models/models_cubicmap_rendering.c | 4 +- examples/models/models_heightmap_rendering.c | 4 +- examples/models/models_textured_cube.c | 4 +- examples/shaders/shaders_deferred_rendering.c | 4 +- examples/shaders/shaders_depth_rendering.c | 4 +- examples/shaders/shaders_eratosthenes_sieve.c | 4 +- examples/shaders/shaders_hybrid_rendering.c | 4 +- examples/shaders/shaders_lightmap_rendering.c | 4 +- .../shaders/shaders_normalmap_rendering.c | 4 +- .../shaders/shaders_raymarching_rendering.c | 4 +- .../shaders/shaders_spotlight_rendering.c | 4 +- .../shapes/shapes_circle_sector_drawing.c | 4 +- examples/shapes/shapes_easings_ball.c | 4 +- examples/shapes/shapes_easings_box.c | 4 +- examples/shapes/shapes_easings_rectangles.c | 4 +- .../shapes/shapes_rounded_rectangle_drawing.c | 4 +- tools/rexm/examples_report.md | 36 +++++++++--------- tools/rexm/examples_report_issues.md | 1 + 21 files changed, 76 insertions(+), 75 deletions(-) diff --git a/examples/Makefile b/examples/Makefile index 8c2b1305a..4c0320e2e 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -538,12 +538,11 @@ CORE = \ SHAPES = \ shapes/shapes_basic_shapes \ shapes/shapes_bouncing_ball \ + shapes/shapes_circle_sector_drawing \ shapes/shapes_collision_area \ shapes/shapes_colors_palette \ shapes/shapes_digital_clock \ shapes/shapes_double_pendulum \ - shapes/shapes_circle_sector_drawing \ - shapes/shapes_rounded_rectangle_drawing \ shapes/shapes_easings_ball \ shapes/shapes_easings_box \ shapes/shapes_easings_rectangles \ @@ -554,6 +553,7 @@ SHAPES = \ shapes/shapes_rectangle_advanced \ shapes/shapes_rectangle_scaling \ shapes/shapes_ring_drawing \ + shapes/shapes_rounded_rectangle_drawing \ shapes/shapes_splines_drawing \ shapes/shapes_top_down_lights @@ -606,7 +606,6 @@ MODELS = \ models/models_bone_socket \ models/models_box_collisions \ models/models_cubicmap_rendering \ - models/models_textured_cube \ models/models_first_person_maze \ models/models_geometric_shapes \ models/models_gpu_skinning \ @@ -622,6 +621,7 @@ MODELS = \ models/models_rlgl_solar_system \ models/models_skybox_rendering \ models/models_tesseract_view \ + models/models_textured_cube \ models/models_waving_cubes \ models/models_yaw_pitch_roll @@ -630,6 +630,7 @@ SHADERS = \ shaders/shaders_basic_pbr \ shaders/shaders_custom_uniform \ shaders/shaders_deferred_rendering \ + shaders/shaders_depth_rendering \ shaders/shaders_eratosthenes_sieve \ shaders/shaders_fog_rendering \ shaders/shaders_hot_reloading \ @@ -653,7 +654,6 @@ SHADERS = \ shaders/shaders_texture_tiling \ shaders/shaders_texture_waves \ shaders/shaders_vertex_displacement \ - shaders/shaders_depth_rendering \ shaders/shaders_write_depth AUDIO = \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index ca3ddabb8..744645e81 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -538,12 +538,11 @@ CORE = \ SHAPES = \ shapes/shapes_basic_shapes \ shapes/shapes_bouncing_ball \ + shapes/shapes_circle_sector_drawing \ shapes/shapes_collision_area \ shapes/shapes_colors_palette \ shapes/shapes_digital_clock \ shapes/shapes_double_pendulum \ - shapes/shapes_circle_sector_drawing \ - shapes/shapes_rounded_rectangle_drawing \ shapes/shapes_easings_ball \ shapes/shapes_easings_box \ shapes/shapes_easings_rectangles \ @@ -554,6 +553,7 @@ SHAPES = \ shapes/shapes_rectangle_advanced \ shapes/shapes_rectangle_scaling \ shapes/shapes_ring_drawing \ + shapes/shapes_rounded_rectangle_drawing \ shapes/shapes_splines_drawing \ shapes/shapes_top_down_lights @@ -606,7 +606,6 @@ MODELS = \ models/models_bone_socket \ models/models_box_collisions \ models/models_cubicmap_rendering \ - models/models_textured_cube \ models/models_first_person_maze \ models/models_geometric_shapes \ models/models_gpu_skinning \ @@ -622,6 +621,7 @@ MODELS = \ models/models_rlgl_solar_system \ models/models_skybox_rendering \ models/models_tesseract_view \ + models/models_textured_cube \ models/models_waving_cubes \ models/models_yaw_pitch_roll @@ -630,6 +630,7 @@ SHADERS = \ shaders/shaders_basic_pbr \ shaders/shaders_custom_uniform \ shaders/shaders_deferred_rendering \ + shaders/shaders_depth_rendering \ shaders/shaders_eratosthenes_sieve \ shaders/shaders_fog_rendering \ shaders/shaders_hot_reloading \ @@ -653,7 +654,6 @@ SHADERS = \ shaders/shaders_texture_tiling \ shaders/shaders_texture_waves \ shaders/shaders_vertex_displacement \ - shaders/shaders_depth_rendering \ shaders/shaders_write_depth AUDIO = \ @@ -793,6 +793,9 @@ shapes/shapes_basic_shapes: shapes/shapes_basic_shapes.c shapes/shapes_bouncing_ball: shapes/shapes_bouncing_ball.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) +shapes/shapes_circle_sector_drawing: shapes/shapes_circle_sector_drawing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + shapes/shapes_collision_area: shapes/shapes_collision_area.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) @@ -805,12 +808,6 @@ shapes/shapes_digital_clock: shapes/shapes_digital_clock.c shapes/shapes_double_pendulum: shapes/shapes_double_pendulum.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -shapes/shapes_circle_sector_drawing: shapes/shapes_circle_sector_drawing.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) - -shapes/shapes_rounded_rectangle_drawing: shapes/shapes_rounded_rectangle_drawing.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) - shapes/shapes_easings_ball: shapes/shapes_easings_ball.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) @@ -841,6 +838,9 @@ shapes/shapes_rectangle_scaling: shapes/shapes_rectangle_scaling.c shapes/shapes_ring_drawing: shapes/shapes_ring_drawing.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) +shapes/shapes_rounded_rectangle_drawing: shapes/shapes_rounded_rectangle_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) @@ -1043,10 +1043,6 @@ models/models_cubicmap_rendering: models/models_cubicmap_rendering.c --preload-file models/resources/cubicmap.png@resources/cubicmap.png \ --preload-file models/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png -models/models_textured_cube: models/models_textured_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_first_person_maze: models/models_first_person_maze.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file models/resources/cubicmap.png@resources/cubicmap.png \ @@ -1116,6 +1112,10 @@ models/models_skybox_rendering: models/models_skybox_rendering.c models/models_tesseract_view: models/models_tesseract_view.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) +models/models_textured_cube: models/models_textured_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_waving_cubes: models/models_waving_cubes.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) @@ -1157,6 +1157,10 @@ shaders/shaders_deferred_rendering: shaders/shaders_deferred_rendering.c --preload-file shaders/resources/shaders/glsl100/deferred_shading.vs@resources/shaders/glsl100/deferred_shading.vs \ --preload-file shaders/resources/shaders/glsl100/deferred_shading.fs@resources/shaders/glsl100/deferred_shading.fs +shaders/shaders_depth_rendering: shaders/shaders_depth_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/depth.fs@resources/shaders/glsl100/depth.fs + shaders/shaders_eratosthenes_sieve: shaders/shaders_eratosthenes_sieve.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/shaders/glsl100/eratosthenes.fs@resources/shaders/glsl100/eratosthenes.fs @@ -1245,7 +1249,7 @@ shaders/shaders_shadowmap_rendering: shaders/shaders_shadowmap_rendering.c --preload-file shaders/resources/shaders/glsl100/shadowmap.vs@resources/shaders/glsl100/shadowmap.vs \ --preload-file shaders/resources/shaders/glsl100/shadowmap.fs@resources/shaders/glsl100/shadowmap.fs \ --preload-file shaders/resources/models/robot.glb@resources/models/robot.glb \ - --preload-file shaders/shaders_shadowmap_rendering.png@shaders_shadowmap_rendering.png + --preload-file shaders/shaders_shadowmap.png@shaders_shadowmap.png shaders/shaders_shapes_textures: shaders/shaders_shapes_textures.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ @@ -1287,10 +1291,6 @@ shaders/shaders_vertex_displacement: shaders/shaders_vertex_displacement.c --preload-file shaders/resources/shaders/glsl100/vertex_displacement.vs@resources/shaders/glsl100/vertex_displacement.vs \ --preload-file shaders/resources/shaders/glsl100/vertex_displacement.fs@resources/shaders/glsl100/vertex_displacement.fs -shaders/shaders_depth_rendering: shaders/shaders_depth_rendering.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ - --preload-file shaders/resources/shaders/glsl100/depth.fs@resources/shaders/glsl100/depth.fs - shaders/shaders_write_depth: shaders/shaders_write_depth.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/shaders/glsl100/write_depth.fs@resources/shaders/glsl100/write_depth.fs diff --git a/examples/models/models_animation_playing.c b/examples/models/models_animation_playing.c index accb9c8ff..fd708b7dd 100644 --- a/examples/models/models_animation_playing.c +++ b/examples/models/models_animation_playing.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [models] example - animation +* raylib [models] example - animation playing * * 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 - animation"); + InitWindow(screenWidth, screenHeight, "raylib [models] example - animation playing"); // Define the camera to look into our 3d world Camera camera = { 0 }; diff --git a/examples/models/models_cubicmap_rendering.c b/examples/models/models_cubicmap_rendering.c index d6e1e04eb..55a8e2a47 100644 --- a/examples/models/models_cubicmap_rendering.c +++ b/examples/models/models_cubicmap_rendering.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [models] example - cubicmap +* raylib [models] example - cubicmap rendering * * 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"); + InitWindow(screenWidth, screenHeight, "raylib [models] example - cubicmap rendering"); // Define the camera to look into our 3d world Camera camera = { 0 }; diff --git a/examples/models/models_heightmap_rendering.c b/examples/models/models_heightmap_rendering.c index 89583fca0..f2b1d702a 100644 --- a/examples/models/models_heightmap_rendering.c +++ b/examples/models/models_heightmap_rendering.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [models] example - heightmap +* raylib [models] example - heightmap rendering * * 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"); + InitWindow(screenWidth, screenHeight, "raylib [models] example - heightmap rendering"); // Define our custom camera to look into our 3d world Camera camera = { 0 }; diff --git a/examples/models/models_textured_cube.c b/examples/models/models_textured_cube.c index bc55b4c15..c9f66bcaf 100644 --- a/examples/models/models_textured_cube.c +++ b/examples/models/models_textured_cube.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [models] example - draw cube texture +* raylib [models] example - textured cube * * 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 - draw cube texture"); + InitWindow(screenWidth, screenHeight, "raylib [models] example - textured cube"); // Define the camera to look into our 3d world Camera camera = { 0 }; diff --git a/examples/shaders/shaders_deferred_rendering.c b/examples/shaders/shaders_deferred_rendering.c index c5801bbeb..811566917 100644 --- a/examples/shaders/shaders_deferred_rendering.c +++ b/examples/shaders/shaders_deferred_rendering.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [shaders] example - deferred render +* raylib [shaders] example - deferred rendering * * Example complexity rating: [★★★★] 4/4 * @@ -67,7 +67,7 @@ int main(void) const int screenWidth = 800; const int screenHeight = 450; - InitWindow(screenWidth, screenHeight, "raylib [shaders] example - deferred render"); + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - deferred rendering"); Camera camera = { 0 }; camera.position = (Vector3){ 5.0f, 4.0f, 5.0f }; // Camera position diff --git a/examples/shaders/shaders_depth_rendering.c b/examples/shaders/shaders_depth_rendering.c index f75edde5b..849aaed8b 100644 --- a/examples/shaders/shaders_depth_rendering.c +++ b/examples/shaders/shaders_depth_rendering.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [shaders] example - view depth +* raylib [shaders] example - depth rendering * * 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 - view depth"); + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - depth rendering"); // Init camera Camera camera = { 0 }; diff --git a/examples/shaders/shaders_eratosthenes_sieve.c b/examples/shaders/shaders_eratosthenes_sieve.c index 854bb5c66..3ab293e93 100644 --- a/examples/shaders/shaders_eratosthenes_sieve.c +++ b/examples/shaders/shaders_eratosthenes_sieve.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [shaders] example - eratosthenes +* raylib [shaders] example - eratosthenes sieve * * 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 - eratosthenes"); + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - eratosthenes sieve"); RenderTexture2D target = LoadRenderTexture(screenWidth, screenHeight); diff --git a/examples/shaders/shaders_hybrid_rendering.c b/examples/shaders/shaders_hybrid_rendering.c index 066e6e0b6..ec6b8b0a6 100644 --- a/examples/shaders/shaders_hybrid_rendering.c +++ b/examples/shaders/shaders_hybrid_rendering.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [shaders] example - hybrid render +* raylib [shaders] example - hybrid rendering * * 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 - hybrid render"); + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - hybrid rendering"); // This Shader calculates pixel depth and color using raymarch Shader shdrRaymarch = LoadShader(0, TextFormat("resources/shaders/glsl%i/hybrid_raymarch.fs", GLSL_VERSION)); diff --git a/examples/shaders/shaders_lightmap_rendering.c b/examples/shaders/shaders_lightmap_rendering.c index 3da900921..232e0901b 100644 --- a/examples/shaders/shaders_lightmap_rendering.c +++ b/examples/shaders/shaders_lightmap_rendering.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [shaders] example - lightmap +* raylib [shaders] example - lightmap rendering * * Example complexity rating: [★★★☆] 3/4 * @@ -46,7 +46,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 - lightmap"); + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - lightmap rendering"); // Define the camera to look into our 3d world Camera camera = { 0 }; diff --git a/examples/shaders/shaders_normalmap_rendering.c b/examples/shaders/shaders_normalmap_rendering.c index efdd6cb72..e1c57fd0f 100644 --- a/examples/shaders/shaders_normalmap_rendering.c +++ b/examples/shaders/shaders_normalmap_rendering.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [shaders] example - normal map +* raylib [shaders] example - normalmap rendering * * Example complexity rating: [★★★★] 4/4 * @@ -39,7 +39,7 @@ int main(void) const int screenHeight = 450; SetConfigFlags(FLAG_MSAA_4X_HINT); - InitWindow(screenWidth, screenHeight, "raylib [shaders] example - normal map"); + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - normalmap rendering"); Camera camera = { 0 }; camera.position = (Vector3){ 0.0f, 2.0f, -4.0f }; diff --git a/examples/shaders/shaders_raymarching_rendering.c b/examples/shaders/shaders_raymarching_rendering.c index 77e0442c4..50a776382 100644 --- a/examples/shaders/shaders_raymarching_rendering.c +++ b/examples/shaders/shaders_raymarching_rendering.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [shaders] example - raymarching +* raylib [shaders] example - raymarching rendering * * 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"); + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - raymarching rendering"); Camera camera = { 0 }; camera.position = (Vector3){ 2.5f, 2.5f, 3.0f }; // Camera position diff --git a/examples/shaders/shaders_spotlight_rendering.c b/examples/shaders/shaders_spotlight_rendering.c index 4bff79e02..c9ee950c1 100644 --- a/examples/shaders/shaders_spotlight_rendering.c +++ b/examples/shaders/shaders_spotlight_rendering.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [shaders] example - spotlight +* raylib [shaders] example - spotlight rendering * * 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 - spotlight"); + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - spotlight rendering"); HideCursor(); Texture texRay = LoadTexture("resources/raysan.png"); diff --git a/examples/shapes/shapes_circle_sector_drawing.c b/examples/shapes/shapes_circle_sector_drawing.c index becd35228..4db470e04 100644 --- a/examples/shapes/shapes_circle_sector_drawing.c +++ b/examples/shapes/shapes_circle_sector_drawing.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [shapes] example - draw circle sector +* raylib [shapes] example - circle sector 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 circle sector"); + InitWindow(screenWidth, screenHeight, "raylib [shapes] example - circle sector drawing"); Vector2 center = {(GetScreenWidth() - 300)/2.0f, GetScreenHeight()/2.0f }; diff --git a/examples/shapes/shapes_easings_ball.c b/examples/shapes/shapes_easings_ball.c index d7f0bb72e..b501a188c 100644 --- a/examples/shapes/shapes_easings_ball.c +++ b/examples/shapes/shapes_easings_ball.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [shapes] example - easings ball anim +* raylib [shapes] example - easings ball * * Example complexity rating: [★★☆☆] 2/4 * @@ -27,7 +27,7 @@ int main(void) const int screenWidth = 800; const int screenHeight = 450; - InitWindow(screenWidth, screenHeight, "raylib [shapes] example - easings ball anim"); + InitWindow(screenWidth, screenHeight, "raylib [shapes] example - easings ball"); // Ball variable value to be animated with easings int ballPositionX = -100; diff --git a/examples/shapes/shapes_easings_box.c b/examples/shapes/shapes_easings_box.c index 4a76e7ef3..4be03c7f0 100644 --- a/examples/shapes/shapes_easings_box.c +++ b/examples/shapes/shapes_easings_box.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [shapes] example - easings box anim +* raylib [shapes] example - easings box * * Example complexity rating: [★★☆☆] 2/4 * @@ -27,7 +27,7 @@ int main(void) const int screenWidth = 800; const int screenHeight = 450; - InitWindow(screenWidth, screenHeight, "raylib [shapes] example - easings box anim"); + InitWindow(screenWidth, screenHeight, "raylib [shapes] example - easings box"); // Box variables to be animated with easings Rectangle rec = { GetScreenWidth()/2.0f, -100, 100, 100 }; diff --git a/examples/shapes/shapes_easings_rectangles.c b/examples/shapes/shapes_easings_rectangles.c index c55c07979..7c72a85ae 100644 --- a/examples/shapes/shapes_easings_rectangles.c +++ b/examples/shapes/shapes_easings_rectangles.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [shapes] example - easings rectangle array +* raylib [shapes] example - easings rectangles * * Example complexity rating: [★★★☆] 3/4 * @@ -38,7 +38,7 @@ int main(void) const int screenWidth = 800; const int screenHeight = 450; - InitWindow(screenWidth, screenHeight, "raylib [shapes] example - easings rectangle array"); + InitWindow(screenWidth, screenHeight, "raylib [shapes] example - easings rectangles"); Rectangle recs[MAX_RECS_X*MAX_RECS_Y] = { 0 }; diff --git a/examples/shapes/shapes_rounded_rectangle_drawing.c b/examples/shapes/shapes_rounded_rectangle_drawing.c index ebefe055f..3cd723391 100644 --- a/examples/shapes/shapes_rounded_rectangle_drawing.c +++ b/examples/shapes/shapes_rounded_rectangle_drawing.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [shapes] example - draw rectangle rounded +* raylib [shapes] example - rounded rectangle 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 rectangle rounded"); + InitWindow(screenWidth, screenHeight, "raylib [shapes] example - rounded rectangle drawing"); float roundness = 0.2f; float width = 200.0f; diff --git a/tools/rexm/examples_report.md b/tools/rexm/examples_report.md index 46e3ca125..87ff57c4d 100644 --- a/tools/rexm/examples_report.md +++ b/tools/rexm/examples_report.md @@ -64,12 +64,12 @@ Example elements validated: | shapes_lines_bezier | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_collision_area | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_following_eyes | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shapes_easings_ball_anim | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shapes_easings_box_anim | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shapes_easings_rectangle_array | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shapes_easings_ball | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shapes_easings_box | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shapes_easings_rectangles | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_ring_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shapes_draw_circle_sector | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shapes_draw_rectangle_rounded | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shapes_circle_sector_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shapes_rounded_rectangle_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_top_down_lights | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_rectangle_advanced | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_splines_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -114,10 +114,10 @@ Example elements validated: | text_unicode_ranges | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_3d_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_codepoints_loading | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| models_animation | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| models_animation_playing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_billboard_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_box_collisions | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| models_cubicmap | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| models_cubicmap_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_first_person_maze | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_geometric_shapes | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_mesh_generation | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -131,9 +131,9 @@ Example elements validated: | models_rlgl_solar_system | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_yaw_pitch_roll | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_waving_cubes | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| models_heightmap | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| models_heightmap_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_skybox_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| models_draw_cube_texture | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| models_textured_cube | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_gpu_skinning | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_bone_socket | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_tesseract_view | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -143,29 +143,29 @@ Example elements validated: | shaders_custom_uniform | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_postprocessing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_palette_switch | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shaders_raymarching | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shaders_raymarching_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_texture_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_texture_outline | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_texture_waves | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_julia_set | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shaders_eratosthenes | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shaders_eratosthenes_sieve | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_fog_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_simple_mask | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_hot_reloading | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_mesh_instancing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_multi_sample2d | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shaders_normal_map | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shaders_spotlight | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shaders_deferred_render | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shaders_hybrid_render | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shaders_normalmap_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shaders_spotlight_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shaders_deferred_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shaders_hybrid_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_texture_tiling | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shaders_shadowmap | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shaders_shadowmap_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_vertex_displacement | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_write_depth | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_basic_pbr | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shaders_lightmap | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shaders_lightmap_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_rounded_rectangle | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shaders_view_depth | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shaders_depth_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | audio_module_playing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | audio_music_stream | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | audio_raw_stream | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | diff --git a/tools/rexm/examples_report_issues.md b/tools/rexm/examples_report_issues.md index 5c4df4202..f1c8a8725 100644 --- a/tools/rexm/examples_report_issues.md +++ b/tools/rexm/examples_report_issues.md @@ -20,6 +20,7 @@ Example elements validated: ``` | **EXAMPLE NAME** | [C] | [CAT]| [INFO]|[PNG]|[WPNG]| [RES]| [MK] |[MKWEB]| [VCX]| [SOL]|[RDME]|[JS] | [WOUT]|[WMETA]| |:---------------------------------|:---:|:----:|:-----:|:---:|:----:|:----:|:----:|:-----:|:----:|:----:|:----:|:---:|:-----:|:-----:| +| shaders_shadowmap_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | rlgl_standalone | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | rlgl_compute_shader | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | easings_testbed | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | From 811ec4fb1e2d5613bbf1122469889510184911ef Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Sep 2025 21:02:58 +0200 Subject: [PATCH 117/190] REVIEWED: `shaders_shadowmap_rendering` example --- .../shaders/shaders_shadowmap_rendering.c | 158 +++++++++--------- 1 file changed, 79 insertions(+), 79 deletions(-) diff --git a/examples/shaders/shaders_shadowmap_rendering.c b/examples/shaders/shaders_shadowmap_rendering.c index 2c6abf66d..493541054 100644 --- a/examples/shaders/shaders_shadowmap_rendering.c +++ b/examples/shaders/shaders_shadowmap_rendering.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [shaders] example - shadowmap +* raylib [shaders] example - shadowmap rendering * * Example complexity rating: [★★★★] 4/4 * @@ -16,20 +16,21 @@ ********************************************************************************************/ #include "raylib.h" + #include "raymath.h" #include "rlgl.h" #if defined(PLATFORM_DESKTOP) -#define GLSL_VERSION 330 + #define GLSL_VERSION 330 #else // PLATFORM_ANDROID, PLATFORM_WEB -#define GLSL_VERSION 120 + #define GLSL_VERSION 100 #endif #define SHADOWMAP_RESOLUTION 1024 -RenderTexture2D LoadShadowmapRenderTexture(int width, int height); -void UnloadShadowmapRenderTexture(RenderTexture2D target); -void DrawScene(Model cube, Model robot); +static RenderTexture2D LoadShadowmapRenderTexture(int width, int height); +static void UnloadShadowmapRenderTexture(RenderTexture2D target); +static void DrawScene(Model cube, Model robot); //------------------------------------------------------------------------------------ // Program main entry point @@ -45,18 +46,19 @@ int main(void) // Shadows are a HUGE topic, and this example shows an extremely simple implementation of the shadowmapping algorithm, // which is the industry standard for shadows. This algorithm can be extended in a ridiculous number of ways to improve // realism and also adapt it for different scenes. This is pretty much the simplest possible implementation - InitWindow(screenWidth, screenHeight, "raylib [shaders] example - shadowmap"); + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - shadowmap rendering"); - Camera3D cam = (Camera3D){ 0 }; - cam.position = (Vector3){ 10.0f, 10.0f, 10.0f }; - cam.target = Vector3Zero(); - cam.projection = CAMERA_PERSPECTIVE; - cam.up = (Vector3){ 0.0f, 1.0f, 0.0f }; - cam.fovy = 45.0f; + Camera3D camera = (Camera3D){ 0 }; + camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; + camera.target = Vector3Zero(); + camera.projection = CAMERA_PERSPECTIVE; + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; + camera.fovy = 45.0f; Shader shadowShader = LoadShader(TextFormat("resources/shaders/glsl%i/shadowmap.vs", GLSL_VERSION), TextFormat("resources/shaders/glsl%i/shadowmap.fs", GLSL_VERSION)); shadowShader.locs[SHADER_LOC_VECTOR_VIEW] = GetShaderLocation(shadowShader, "viewPos"); + Vector3 lightDir = Vector3Normalize((Vector3){ 0.35f, -1.0f, -0.35f }); Color lightColor = WHITE; Vector4 lightColorNormalized = ColorNormalize(lightColor); @@ -75,122 +77,115 @@ int main(void) Model cube = LoadModelFromMesh(GenMeshCube(1.0f, 1.0f, 1.0f)); cube.materials[0].shader = shadowShader; Model robot = LoadModel("resources/models/robot.glb"); - for (int i = 0; i < robot.materialCount; i++) - { - robot.materials[i].shader = shadowShader; - } + for (int i = 0; i < robot.materialCount; i++) robot.materials[i].shader = shadowShader; int animCount = 0; - ModelAnimation* robotAnimations = LoadModelAnimations("resources/models/robot.glb", &animCount); + ModelAnimation *robotAnimations = LoadModelAnimations("resources/models/robot.glb", &animCount); RenderTexture2D shadowMap = LoadShadowmapRenderTexture(SHADOWMAP_RESOLUTION, SHADOWMAP_RESOLUTION); + // For the shadowmapping algorithm, we will be rendering everything from the light's point of view - Camera3D lightCam = (Camera3D){ 0 }; - lightCam.position = Vector3Scale(lightDir, -15.0f); - lightCam.target = Vector3Zero(); - // Use an orthographic projection for directional lights - lightCam.projection = CAMERA_ORTHOGRAPHIC; - lightCam.up = (Vector3){ 0.0f, 1.0f, 0.0f }; - lightCam.fovy = 20.0f; + Camera3D lightCamera = { 0 }; + lightCamera.position = Vector3Scale(lightDir, -15.0f); + lightCamera.target = Vector3Zero(); + lightCamera.projection = CAMERA_ORTHOGRAPHIC; // Use an orthographic projection for directional lights + lightCamera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; + lightCamera.fovy = 20.0f; + + int frameCounter = 0; + + // Store the light matrices + Matrix lightView = { 0 }; + Matrix lightProj = { 0 }; + Matrix lightViewProj = { 0 }; + int textureActiveSlot = 10; // Can be anything 0 to 15, but 0 will probably be taken up SetTargetFPS(60); //-------------------------------------------------------------------------------------- - int fc = 0; // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- - float dt = GetFrameTime(); + float deltaTime = GetFrameTime(); - Vector3 cameraPos = cam.position; + Vector3 cameraPos = camera.position; SetShaderValue(shadowShader, shadowShader.locs[SHADER_LOC_VECTOR_VIEW], &cameraPos, SHADER_UNIFORM_VEC3); - UpdateCamera(&cam, CAMERA_ORBITAL); + UpdateCamera(&camera, CAMERA_ORBITAL); - fc++; - fc %= (robotAnimations[0].frameCount); - UpdateModelAnimation(robot, robotAnimations[0], fc); + frameCounter++; + frameCounter %= (robotAnimations[0].frameCount); + UpdateModelAnimation(robot, robotAnimations[0], frameCounter); + // Move light with arrow keys const float cameraSpeed = 0.05f; if (IsKeyDown(KEY_LEFT)) { - if (lightDir.x < 0.6f) - lightDir.x += cameraSpeed*60.0f*dt; + if (lightDir.x < 0.6f) lightDir.x += cameraSpeed*60.0f*deltaTime; } if (IsKeyDown(KEY_RIGHT)) { - if (lightDir.x > -0.6f) - lightDir.x -= cameraSpeed*60.0f*dt; + if (lightDir.x > -0.6f) lightDir.x -= cameraSpeed*60.0f*deltaTime; } if (IsKeyDown(KEY_UP)) { - if (lightDir.z < 0.6f) - lightDir.z += cameraSpeed*60.0f*dt; + if (lightDir.z < 0.6f) lightDir.z += cameraSpeed*60.0f*deltaTime; } if (IsKeyDown(KEY_DOWN)) { - if (lightDir.z > -0.6f) - lightDir.z -= cameraSpeed*60.0f*dt; + if (lightDir.z > -0.6f) lightDir.z -= cameraSpeed*60.0f*deltaTime; } + lightDir = Vector3Normalize(lightDir); - lightCam.position = Vector3Scale(lightDir, -15.0f); + lightCamera.position = Vector3Scale(lightDir, -15.0f); SetShaderValue(shadowShader, lightDirLoc, &lightDir, SHADER_UNIFORM_VEC3); + //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- - BeginDrawing(); - // First, render all objects into the shadowmap // The idea is, we record all the objects' depths (as rendered from the light source's point of view) in a buffer // Anything that is "visible" to the light is in light, anything that isn't is in shadow // We can later use the depth buffer when rendering everything from the player's point of view // to determine whether a given point is "visible" to the light - - // Record the light matrices for future use! - Matrix lightView; - Matrix lightProj; BeginTextureMode(shadowMap); - ClearBackground(WHITE); - BeginMode3D(lightCam); - lightView = rlGetMatrixModelview(); - lightProj = rlGetMatrixProjection(); - DrawScene(cube, robot); - EndMode3D(); + ClearBackground(WHITE); + + BeginMode3D(lightCamera); + lightView = rlGetMatrixModelview(); + lightProj = rlGetMatrixProjection(); + DrawScene(cube, robot); + EndMode3D(); + EndTextureMode(); - Matrix lightViewProj = MatrixMultiply(lightView, lightProj); + lightViewProj = MatrixMultiply(lightView, lightProj); - ClearBackground(RAYWHITE); + // Draw the scene using the generated shadowmap + BeginDrawing(); + ClearBackground(RAYWHITE); - SetShaderValueMatrix(shadowShader, lightVPLoc, lightViewProj); + SetShaderValueMatrix(shadowShader, lightVPLoc, lightViewProj); + rlEnableShader(shadowShader.id); + + rlActiveTextureSlot(textureActiveSlot); + rlEnableTexture(shadowMap.depth.id); + rlSetUniform(shadowMapLoc, &textureActiveSlot, SHADER_UNIFORM_INT, 1); - rlEnableShader(shadowShader.id); - int slot = 10; // Can be anything 0 to 15, but 0 will probably be taken up - rlActiveTextureSlot(10); - rlEnableTexture(shadowMap.depth.id); - rlSetUniform(shadowMapLoc, &slot, SHADER_UNIFORM_INT, 1); - - BeginMode3D(cam); - - // Draw the same exact things as we drew in the shadowmap! - DrawScene(cube, robot); - - EndMode3D(); - - DrawText("Shadows in raylib using the shadowmapping algorithm!", screenWidth - 320, screenHeight - 20, 10, GRAY); - DrawText("Use the arrow keys to rotate the light!", 10, 10, 30, RED); + BeginMode3D(camera); + DrawScene(cube, robot); // Draw the same exact things as we drew in the shadowmap! + EndMode3D(); + DrawText("Use the arrow keys to rotate the light!", 10, 10, 30, RED); + DrawText("Shadows in raylib using the shadowmapping algorithm!", screenWidth - 280, screenHeight - 20, 10, GRAY); + EndDrawing(); - if (IsKeyPressed(KEY_F)) - { - TakeScreenshot("shaders_shadowmap.png"); - } + if (IsKeyPressed(KEY_F)) TakeScreenshot("shaders_shadowmap.png"); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- - UnloadShader(shadowShader); UnloadModel(cube); UnloadModel(robot); @@ -203,7 +198,10 @@ int main(void) return 0; } -RenderTexture2D LoadShadowmapRenderTexture(int width, int height) +// Load render texture for shadowmap projection +// NOTE: Load frmaebuffer with only a texture depth attachment, +// no color attachment required for shadowmap +static RenderTexture2D LoadShadowmapRenderTexture(int width, int height) { RenderTexture2D target = { 0 }; @@ -237,7 +235,7 @@ RenderTexture2D LoadShadowmapRenderTexture(int width, int height) } // Unload shadowmap render texture from GPU memory (VRAM) -void UnloadShadowmapRenderTexture(RenderTexture2D target) +static void UnloadShadowmapRenderTexture(RenderTexture2D target) { if (target.id > 0) { @@ -247,7 +245,9 @@ void UnloadShadowmapRenderTexture(RenderTexture2D target) } } -void DrawScene(Model cube, Model robot) +// Draw scene +// NOTE: Required several calls to generate shadowmap +static void DrawScene(Model cube, Model robot) { DrawModelEx(cube, Vector3Zero(), (Vector3) { 0.0f, 1.0f, 0.0f }, 0.0f, (Vector3) { 10.0f, 1.0f, 10.0f }, BLUE); DrawModelEx(cube, (Vector3) { 1.5f, 1.0f, -1.5f }, (Vector3) { 0.0f, 1.0f, 0.0f }, 0.0f, Vector3One(), WHITE); From 28c5d160004a7b71167060536db142c40538ef10 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 9 Sep 2025 00:15:26 +0200 Subject: [PATCH 118/190] Update shaders_shadowmap_rendering.c --- .../shaders/shaders_shadowmap_rendering.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/examples/shaders/shaders_shadowmap_rendering.c b/examples/shaders/shaders_shadowmap_rendering.c index 493541054..7b75b80e0 100644 --- a/examples/shaders/shaders_shadowmap_rendering.c +++ b/examples/shaders/shaders_shadowmap_rendering.c @@ -42,10 +42,11 @@ int main(void) const int screenWidth = 800; const int screenHeight = 450; - SetConfigFlags(FLAG_MSAA_4X_HINT); // Shadows are a HUGE topic, and this example shows an extremely simple implementation of the shadowmapping algorithm, // which is the industry standard for shadows. This algorithm can be extended in a ridiculous number of ways to improve // realism and also adapt it for different scenes. This is pretty much the simplest possible implementation + + SetConfigFlags(FLAG_MSAA_4X_HINT); InitWindow(screenWidth, screenHeight, "raylib [shaders] example - shadowmap rendering"); Camera3D camera = (Camera3D){ 0 }; @@ -143,8 +144,8 @@ int main(void) // Draw //---------------------------------------------------------------------------------- - // First, render all objects into the shadowmap - // The idea is, we record all the objects' depths (as rendered from the light source's point of view) in a buffer + // PASS 01: Render all objects into the shadowmap render texture + // We record all the objects' depths (as rendered from the light source's point of view) in a buffer // Anything that is "visible" to the light is in light, anything that isn't is in shadow // We can later use the depth buffer when rendering everything from the player's point of view // to determine whether a given point is "visible" to the light @@ -160,7 +161,7 @@ int main(void) EndTextureMode(); lightViewProj = MatrixMultiply(lightView, lightProj); - // Draw the scene using the generated shadowmap + // PASS 02: Draw the scene into main framebuffer, using the generated shadowmap BeginDrawing(); ClearBackground(RAYWHITE); @@ -199,7 +200,7 @@ int main(void) } // Load render texture for shadowmap projection -// NOTE: Load frmaebuffer with only a texture depth attachment, +// NOTE: Load framebuffer with only a texture depth attachment, // no color attachment required for shadowmap static RenderTexture2D LoadShadowmapRenderTexture(int width, int height) { @@ -214,11 +215,11 @@ static RenderTexture2D LoadShadowmapRenderTexture(int width, int height) rlEnableFramebuffer(target.id); // Create depth texture - // We don't need a color texture for the shadowmap + // NOTE: No need a color texture attachment for the shadowmap target.depth.id = rlLoadTextureDepth(width, height, false); target.depth.width = width; target.depth.height = height; - target.depth.format = 19; //DEPTH_COMPONENT_24BIT? + target.depth.format = 19; // DEPTH_COMPONENT_24BIT? target.depth.mipmaps = 1; // Attach depth texture to FBO @@ -245,8 +246,8 @@ static void UnloadShadowmapRenderTexture(RenderTexture2D target) } } -// Draw scene -// NOTE: Required several calls to generate shadowmap +// Draw full scene projecting shadows +// NOTE: Required to be called several time to generate shadowmap static void DrawScene(Model cube, Model robot) { DrawModelEx(cube, Vector3Zero(), (Vector3) { 0.0f, 1.0f, 0.0f }, 0.0f, (Vector3) { 10.0f, 1.0f, 10.0f }, BLUE); From adb078128b07638bd5b16f43d7b0e37130487739 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 9 Sep 2025 00:15:30 +0200 Subject: [PATCH 119/190] Update rexm.c --- tools/rexm/rexm.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index e28efdf21..3489990fd 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -2045,9 +2045,14 @@ 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) + int functionIndex01 = TextFindIndex(ptr - 40, "ExportImage"); // Check ExportImage() + int functionIndex02 = TextFindIndex(ptr - 10, "TraceLog"); // Check TraceLog() + int functionIndex03 = TextFindIndex(ptr - 40, "TakeScreenshot"); // Check TakeScreenshot() + + + if (!((functionIndex01 != -1) && (functionIndex01 < 40)) && // Not found ExportImage() before "" + !((functionIndex02 != -1) && (functionIndex02 < 10)) && // Not found TraceLog() before "" + !((functionIndex03 != -1) && (functionIndex03 < 40))) // Not found TakeScreenshot() before "" { int len = (int)(end - start); if ((len > 0) && (len < REXM_MAX_RESOURCE_PATH_LEN)) From 4447868c60cbb6874d68c92e0de5e2819f1857e6 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 9 Sep 2025 00:16:47 +0200 Subject: [PATCH 120/190] REXM: Updated examples, resources checking --- examples/Makefile.Web | 3 +-- tools/rexm/examples_report.md | 2 +- tools/rexm/examples_report_issues.md | 1 - 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 744645e81..0a3cf24f7 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -1248,8 +1248,7 @@ shaders/shaders_shadowmap_rendering: shaders/shaders_shadowmap_rendering.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/shaders/glsl100/shadowmap.vs@resources/shaders/glsl100/shadowmap.vs \ --preload-file shaders/resources/shaders/glsl100/shadowmap.fs@resources/shaders/glsl100/shadowmap.fs \ - --preload-file shaders/resources/models/robot.glb@resources/models/robot.glb \ - --preload-file shaders/shaders_shadowmap.png@shaders_shadowmap.png + --preload-file shaders/resources/models/robot.glb@resources/models/robot.glb shaders/shaders_shapes_textures: shaders/shaders_shapes_textures.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ diff --git a/tools/rexm/examples_report.md b/tools/rexm/examples_report.md index 87ff57c4d..b3aac08b9 100644 --- a/tools/rexm/examples_report.md +++ b/tools/rexm/examples_report.md @@ -159,7 +159,7 @@ Example elements validated: | shaders_deferred_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_hybrid_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_texture_tiling | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shaders_shadowmap_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shaders_shadowmap_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_vertex_displacement | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_write_depth | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_basic_pbr | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | diff --git a/tools/rexm/examples_report_issues.md b/tools/rexm/examples_report_issues.md index f1c8a8725..5c4df4202 100644 --- a/tools/rexm/examples_report_issues.md +++ b/tools/rexm/examples_report_issues.md @@ -20,7 +20,6 @@ Example elements validated: ``` | **EXAMPLE NAME** | [C] | [CAT]| [INFO]|[PNG]|[WPNG]| [RES]| [MK] |[MKWEB]| [VCX]| [SOL]|[RDME]|[JS] | [WOUT]|[WMETA]| |:---------------------------------|:---:|:----:|:-----:|:---:|:----:|:----:|:----:|:-----:|:----:|:----:|:----:|:---:|:-----:|:-----:| -| shaders_shadowmap_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | rlgl_standalone | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | rlgl_compute_shader | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | easings_testbed | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | From 0da5bc1e17f0de79f767b529800d8cb23bd14968 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 9 Sep 2025 00:26:38 +0200 Subject: [PATCH 121/190] REXM: REVIEWED: `TextReplaceBetween()` --- tools/rexm/rexm.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index 3489990fd..8b95c7094 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -187,7 +187,7 @@ static void UpdateWebMetadata(const char *exHtmlPath, const char *exFilePath); // Get text between two strings static char *GetTextBetween(const char *text, const char *begin, const char *end); // Replace text between two specific strings -static char *TextReplaceBetween(const char *text, const char *replace, const char *begin, const char *end); +static char *TextReplaceBetween(const char *text, const char *begin, const char *end, const char *replace); //------------------------------------------------------------------------------------ // Program main entry point @@ -2320,8 +2320,8 @@ 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(exTextUpdatedPtr, - TextFormat("%s] example - %s", info->category, exNameFormated), "* raylib [", "\n"); + exTextUpdated[0] = TextReplaceBetween(exTextUpdatedPtr, "* raylib [", "\n", + TextFormat("%s] example - %s", info->category, exNameFormated)); if (exTextUpdated[0] != NULL) exTextUpdatedPtr = exTextUpdated[0]; // Update example complexity rating @@ -2334,42 +2334,42 @@ 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(exTextUpdatedPtr, - TextFormat("%s] %i", starsText, info->stars), "* Example complexity rating: [", "/4\n"); + exTextUpdated[1] = TextReplaceBetween(exTextUpdatedPtr, "* Example complexity rating: [", "/4\n", + TextFormat("%s] %i", starsText, info->stars)); 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(exTextUpdatedPtr, - TextFormat("%s, last time updated with raylib %s", info->verCreated, info->verUpdated), "* Example originally created with raylib ", "\n"); + exTextUpdated[2] = TextReplaceBetween(exTextUpdatedPtr, "* Example originally created with raylib ", "\n", + TextFormat("%s, last time updated with raylib %s", info->verCreated, info->verUpdated)); 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(exTextUpdatedPtr, - TextFormat("%i %s (@%s", info->yearCreated, info->author, info->authorGitHub), "Copyright (c) ", ")"); + exTextUpdated[3] = TextReplaceBetween(exTextUpdatedPtr, "Copyright (c) ", ")", + TextFormat("%i %s (@%s", info->yearCreated, info->author, info->authorGitHub)); if (exTextUpdated[3] != NULL) exTextUpdatedPtr = exTextUpdated[3]; } else { - exTextUpdated[3] = TextReplaceBetween(exTextUpdatedPtr, - TextFormat("%i-%i %s (@%s", info->yearCreated, info->yearReviewed, info->author, info->authorGitHub), "Copyright (c) ", ")"); + exTextUpdated[3] = TextReplaceBetween(exTextUpdatedPtr, "Copyright (c) ", ")", + TextFormat("%i-%i %s (@%s", info->yearCreated, info->yearReviewed, info->author, info->authorGitHub)); 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, \"", "\");"); + exTextUpdated[4] = TextReplaceBetween(exTextUpdated[3], "InitWindow(screenWidth, screenHeight, \"", "\");", + TextFormat("raylib [%s] example - %s", info->category, exNameFormated)); 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(exTextUpdatedPtr, - TextFormat("%s (@%s", info->author, info->authorGitHub), "* Example contributed by ", ")"); + exTextUpdated[5] = TextReplaceBetween(exTextUpdatedPtr, "* Example contributed by ", ")", + TextFormat("%s (@%s", info->author, info->authorGitHub)); if (exTextUpdated[5] != NULL) exTextUpdatedPtr = exTextUpdated[5]; if (exTextUpdatedPtr != NULL) SaveFileText(exSourcePath, exTextUpdatedPtr); @@ -2469,7 +2469,7 @@ static char *GetTextBetween(const char *text, const char *begin, const char *end // Replace text between two specific strings // WARNING: Returned string must be freed by user -static char *TextReplaceBetween(const char *text, const char *replace, const char *begin, const char *end) +static char *TextReplaceBetween(const char *text, const char *begin, const char *end, const char *replace) { char *result = NULL; int beginIndex = TextFindIndex(text, begin); From f6ae596a1d6ed4637092f9497a2df92f21334047 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 9 Sep 2025 00:47:12 +0200 Subject: [PATCH 122/190] Update rexm.c --- tools/rexm/rexm.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index 8b95c7094..61a65f889 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -639,9 +639,15 @@ 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); + // Edit: Update example source code metadata + int exListCount = 0; + rlExampleInfo *exList = LoadExamplesData(exCollectionFilePath, exCategory, false, &exListCount); + for (int i = 0; i < exListCount; i++) + { + if (strcmp(exList[i].name, exRename) == 0) + UpdateSourceMetadata(TextFormat("%s/%s/%s.c", exBasePath, exCategory, exRename), &exList[i]); + } + UnloadExamplesData(exList); // NOTE: Example resource files do not need to be changed... // unless the example is moved from one caegory to another @@ -860,7 +866,8 @@ int main(int argc, char *argv[]) for (unsigned int i = 0; i < list.count; i++) { - if ((strcmp("examples_template", GetFileNameWithoutExt(list.paths[i])) != 0) && // HACK: Skip "examples_template" + // NOTE: Skipping "examples_template" from checks + if ((strcmp("examples_template", GetFileNameWithoutExt(list.paths[i])) != 0) && (TextFindIndex(exList, GetFileNameWithoutExt(list.paths[i])) == -1)) { // Add example to the examples collection list @@ -2043,7 +2050,7 @@ static char **ScanExampleResources(const char *filePath, int *resPathCount) if (!end) break; // 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... + // HACK: Just check previous position from pointer for function name including the string and the index "distance" // This is a quick solution, the good one would be getting the data loading function names... int functionIndex01 = TextFindIndex(ptr - 40, "ExportImage"); // Check ExportImage() int functionIndex02 = TextFindIndex(ptr - 10, "TraceLog"); // Check TraceLog() From f4250da042be051b1b117831946e380d62596c02 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 9 Sep 2025 09:37:06 +0200 Subject: [PATCH 123/190] Update text_unicode_ranges.c --- examples/text/text_unicode_ranges.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/text/text_unicode_ranges.c b/examples/text/text_unicode_ranges.c index 90853942b..473bee64f 100644 --- a/examples/text/text_unicode_ranges.c +++ b/examples/text/text_unicode_ranges.c @@ -150,6 +150,7 @@ int main(void) DrawRectangleLines(400, 16, 380, 380, RED); DrawText(TextFormat("ATLAS SIZE: %ix%i px (x%02.2f)", font.texture.width, font.texture.height, atlasScale), 20, 380, 20, BLUE); + DrawText(TextFormat("CODEPOINTS GLYPHS LOADED: %i", font.glyphCount), 20, 410, 20, LIME); // Display font attribution DrawText("Font: Noto Sans TC. License: SIL Open Font License 1.1", screenWidth - 300, screenHeight - 20, 10, GRAY); @@ -158,7 +159,7 @@ int main(void) { DrawRectangle(0, 0, screenWidth, screenHeight, Fade(WHITE, 0.8f)); DrawRectangle(0, 125, screenWidth, 200, GRAY); - DrawText("LOADING CODEPOINTS...", 150, 210, 40, BLACK); + DrawText("GENERATING FONT ATLAS...", 120, 210, 40, BLACK); } EndDrawing(); From 1b9aa0bcf3acc8e59a1ede08ff4e6a390e6e7b2a Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 9 Sep 2025 17:30:18 +0200 Subject: [PATCH 124/190] Update rmodels.c --- src/rmodels.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rmodels.c b/src/rmodels.c index 912bab081..111df133b 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -3865,7 +3865,7 @@ void DrawBillboard(Camera camera, Texture2D texture, Vector3 position, float sca { Rectangle source = { 0.0f, 0.0f, (float)texture.width, (float)texture.height }; - DrawBillboardRec(camera, texture, source, position, (Vector2) { scale*fabsf((float)source.width/source.height), scale }, tint); + DrawBillboardRec(camera, texture, source, position, (Vector2){ scale*fabsf((float)source.width/source.height), scale }, tint); } // Draw a billboard (part of a texture defined by a rectangle) From 698d37c57a7f5f8d37b3eec598b3720d5aa44b72 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 9 Sep 2025 17:30:25 +0200 Subject: [PATCH 125/190] Update shaders_normalmap_rendering.c --- examples/shaders/shaders_normalmap_rendering.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/shaders/shaders_normalmap_rendering.c b/examples/shaders/shaders_normalmap_rendering.c index e1c57fd0f..e66362c07 100644 --- a/examples/shaders/shaders_normalmap_rendering.c +++ b/examples/shaders/shaders_normalmap_rendering.c @@ -18,9 +18,9 @@ * ********************************************************************************************/ -#include +#include "raylib.h" -#include +#include "raymath.h" #if defined(PLATFORM_DESKTOP) #define GLSL_VERSION 330 @@ -155,7 +155,7 @@ int main(void) DrawText("Use keys [Up][Down] to change specular exponent", 10, 10 + yOffset*2, 10, BLACK); DrawText(TextFormat("Specular Exponent: %.2f", specularExponent), 10, 10 + yOffset*3, 10, BLUE); - DrawFPS(screenWidth - 80, 10); + DrawFPS(screenWidth - 90, 10); EndDrawing(); //-------------------------------------------------------------------------------------- From 866e7238bfca4492cbf5d75b076546f19d2e9005 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 9 Sep 2025 17:30:54 +0200 Subject: [PATCH 126/190] Remove projects from solution --- .../examples/rlgl_compute_shader.vcxproj | 2 +- .../examples/rlgl_compute_shaders.vcxproj | 570 ------------------ .../examples/textures_svg_loading.vcxproj | 390 ------------ projects/VS2022/raylib.sln | 2 +- 4 files changed, 2 insertions(+), 962 deletions(-) delete mode 100644 projects/VS2022/examples/rlgl_compute_shaders.vcxproj delete mode 100644 projects/VS2022/examples/textures_svg_loading.vcxproj diff --git a/projects/VS2022/examples/rlgl_compute_shader.vcxproj b/projects/VS2022/examples/rlgl_compute_shader.vcxproj index 84e267623..1e2436c1a 100644 --- a/projects/VS2022/examples/rlgl_compute_shader.vcxproj +++ b/projects/VS2022/examples/rlgl_compute_shader.vcxproj @@ -51,7 +51,7 @@
- {0981CA98-E4A5-4DF1-987F-A41D09131EFC} + {07CA51AD-72AE-46A2-AAED-DC3E3F807976} Win32Proj rlgl_compute_shader 10.0 diff --git a/projects/VS2022/examples/rlgl_compute_shaders.vcxproj b/projects/VS2022/examples/rlgl_compute_shaders.vcxproj deleted file mode 100644 index 48e5b20f6..000000000 --- a/projects/VS2022/examples/rlgl_compute_shaders.vcxproj +++ /dev/null @@ -1,570 +0,0 @@ - - - - - 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 - - - - {07CA51AD-72AE-46A2-AAED-DC3E3F807976} - Win32Proj - rlgl_compute_shaders - 10.0 - rlgl_compute_shaders - - - - 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\others - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\others - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\others - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\others - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\others - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\others - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\others - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\others - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\others - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\others - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\others - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\others - WindowsLocalDebugger - - - - - - Level3 - Disabled - _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) - CompileAsC - $(SolutionDir)..\..\src;$(SolutionDir)..\..\examples\others\external\include;%(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 - _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) - CompileAsC - $(SolutionDir)..\..\src;$(SolutionDir)..\..\examples\others\external\include;%(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 - _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) - CompileAsC - $(SolutionDir)..\..\src;$(SolutionDir)..\..\examples\others\external\include;%(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 - _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) - CompileAsC - $(SolutionDir)..\..\src;$(SolutionDir)..\..\examples\others\external\include;%(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 - _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) - CompileAsC - $(SolutionDir)..\..\src;$(SolutionDir)..\..\examples\others\external\include;%(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 - _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) - CompileAsC - $(SolutionDir)..\..\src;$(SolutionDir)..\..\examples\others\external\include;%(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 - _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP - $(SolutionDir)..\..\src;$(SolutionDir)..\..\examples\others\external\include;%(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 - _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP - $(SolutionDir)..\..\src;$(SolutionDir)..\..\examples\others\external\include;%(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 - _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP - $(SolutionDir)..\..\src;$(SolutionDir)..\..\examples\others\external\include;%(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 - _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP - $(SolutionDir)..\..\src;$(SolutionDir)..\..\examples\others\external\include;%(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 - _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP - $(SolutionDir)..\..\src;$(SolutionDir)..\..\examples\others\external\include;%(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 - _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP - $(SolutionDir)..\..\src;$(SolutionDir)..\..\examples\others\external\include;%(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/examples/textures_svg_loading.vcxproj b/projects/VS2022/examples/textures_svg_loading.vcxproj deleted file mode 100644 index fc2375aff..000000000 --- a/projects/VS2022/examples/textures_svg_loading.vcxproj +++ /dev/null @@ -1,390 +0,0 @@ - - - - - Debug.DLL - Win32 - - - Debug.DLL - x64 - - - Debug - Win32 - - - Debug - x64 - - - Release.DLL - Win32 - - - Release.DLL - x64 - - - Release - Win32 - - - Release - x64 - - - - {D8026C60-CCBC-45DF-9085-BF21569EB414} - Win32Proj - textures_svg_loading - 10.0 - textures_svg_loading - - - - 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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)\ - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\textures - 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) - - - 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)\ - - - 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 24f02766f..d6a14886e 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -255,7 +255,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_basic_screen_manager", EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_custom_frame_control", "examples\core_custom_frame_control.vcxproj", "{658A1B85-554E-4A5D-973A-FFE592CDD5F2}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rlgl_compute_shaders", "examples\rlgl_compute_shaders.vcxproj", "{07CA51AD-72AE-46A2-AAED-DC3E3F807976}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rlgl_compute_shader", "examples\rlgl_compute_shader.vcxproj", "{07CA51AD-72AE-46A2-AAED-DC3E3F807976}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_3d_drawing", "examples\text_3d_drawing.vcxproj", "{27B110CC-43C0-400A-89D9-245E681647D7}" EndProject From a42eb2f79b807c9a7fb0d91228fc6b90b509af6e Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 9 Sep 2025 17:32:13 +0200 Subject: [PATCH 127/190] REDESIGNED: example: `shapes_digital_clock` --- examples/shapes/shapes_digital_clock.c | 217 ++++++++++++++++++----- examples/shapes/shapes_digital_clock.png | Bin 3651 -> 18697 bytes 2 files changed, 174 insertions(+), 43 deletions(-) diff --git a/examples/shapes/shapes_digital_clock.c b/examples/shapes/shapes_digital_clock.c index aad933be0..48e19e2be 100644 --- a/examples/shapes/shapes_digital_clock.c +++ b/examples/shapes/shapes_digital_clock.c @@ -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 Hamza RAHAL (@hmz-rhl) +* Copyright (c) 2025 Hamza RAHAL (@hmz-rhl) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ @@ -20,37 +20,40 @@ #include // Required for: cosf(), sinf() #include // Required for: time(), localtime() -#define DIGIT_SIZE 30 +#define CLOCK_ANALOG 0 +#define CLOCK_DIGITAL 1 //---------------------------------------------------------------------------------- // Types and Structures Definition //---------------------------------------------------------------------------------- -typedef enum { - MODE_NORMAL = 0, - MODE_HANDS_FREE, -} ClockMode; - +// Clock hand type typedef struct { - int value; - Vector2 origin; - float angle; - int length; - int thickness; - Color color; + int value; // Time value + + // Visual elements + float angle; // Hand angle + int length; // Hand length + int thickness; // Hand thickness + Color color; // Hand color } ClockHand; +// Clock hands typedef struct { - ClockMode mode; - ClockHand second; - ClockHand minute; - ClockHand hour; + ClockHand second; // Clock hand for seconds + ClockHand minute; // Clock hand for minutes + ClockHand hour; // Clock hand for hours } Clock; //---------------------------------------------------------------------------------- // Module Functions Declaration //---------------------------------------------------------------------------------- static void UpdateClock(Clock *clock); // Update clock time -static void DrawClock(Clock clock, Vector2 centerPos); // Draw clock at desired position +static void DrawClockAnalog(Clock clock, Vector2 position); // Draw analog clock at desired center position +static void DrawClockDigital(Clock clock, Vector2 position); // Draw digital clock at desired position + +static void DrawDisplayValue(Vector2 position, int value, Color colorOn, Color colorOff); +static void Draw7SDisplay(Vector2 position, char segments, Color colorOn, Color colorOff); +static void DrawDisplaySegment(Vector2 center, int length, int thick, bool vertical, Color color); //------------------------------------------------------------------------------------ // Program main entry point @@ -62,16 +65,18 @@ int main(void) const int screenWidth = 800; const int screenHeight = 450; + SetConfigFlags(FLAG_MSAA_4X_HINT); InitWindow(screenWidth, screenHeight, "raylib [shapes] example - digital clock"); - // Initialize clock - Clock myClock = { - .mode = MODE_NORMAL, + int clockMode = CLOCK_DIGITAL; + // Initialize clock + // NOTE: Includes visual info for anlaog clock + Clock clock = { .second.angle = 45, .second.length = 140, .second.thickness = 3, - .second.color = BEIGE, + .second.color = MAROON, .minute.angle = 10, .minute.length = 130, @@ -94,11 +99,12 @@ int main(void) //---------------------------------------------------------------------------------- if (IsKeyPressed(KEY_SPACE)) { - if (myClock.mode == MODE_HANDS_FREE) myClock.mode = MODE_NORMAL; - else if (myClock.mode == MODE_NORMAL) myClock.mode = MODE_HANDS_FREE; + // Toggle clock mode + if (clockMode == CLOCK_DIGITAL) clockMode = CLOCK_ANALOG; + else if (clockMode == CLOCK_ANALOG) clockMode = CLOCK_DIGITAL; } - UpdateClock(&myClock); + UpdateClock(&clock); // Update clock required data: value and angle //---------------------------------------------------------------------------------- // Draw @@ -107,11 +113,21 @@ int main(void) ClearBackground(RAYWHITE); - DrawCircle(400, 225, 5, BLACK); // Clock center dot + // Draw clock in selected mode + if (clockMode == CLOCK_ANALOG) DrawClockAnalog(clock, (Vector2){ 400, 240 }); + else if (clockMode == CLOCK_DIGITAL) + { + DrawClockDigital(clock, (Vector2){ 30, 60 }); - DrawClock(myClock, (Vector2){ 400, 225 }); // Clock in selected mode + // Draw clock using default raylib font + // Get pointer to formated clock time string + // WARNING: Pointing to an internal static string that is reused between TextFormat() calls + const char *clockTime = TextFormat("%02i:%02i:%02i", clock.hour.value, clock.minute.value, clock.second.value); + DrawText(clockTime, GetScreenWidth()/2 - MeasureText(clockTime, 150)/2, 300, 150, BLACK); + } - DrawText("Press [SPACE] to switch clock mode", 10, 10, 20, DARKGRAY); + DrawText(TextFormat("Press [SPACE] to switch clock mode: %s", + (clockMode == CLOCK_DIGITAL)? "DIGITAL CLOCK" : "ANALOGUE CLOCK"), 10, 10, 20, DARKGRAY); EndDrawing(); //---------------------------------------------------------------------------------- @@ -154,31 +170,146 @@ static void UpdateClock(Clock *clock) clock->second.angle -= 90; } -// Draw clock -static void DrawClock(Clock clock, Vector2 centerPosition) +// Draw analog clock +// Parameter: position, refers to center position +static void DrawClockAnalog(Clock clock, Vector2 position) { - if (clock.mode == MODE_HANDS_FREE) - { - DrawCircleLinesV(centerPosition, clock.minute.length, LIGHTGRAY); + // Draw clock base + DrawCircleV(position, clock.second.length + 40, LIGHTGRAY); + DrawCircleV(position, 12, GRAY); - DrawText(TextFormat("%i", clock.second.value), centerPosition.x + (clock.second.length - 10)*cosf(clock.second.angle*(float)(PI/180)) - DIGIT_SIZE/2, centerPosition.y + clock.second.length*sinf(clock.second.angle*(float)(PI/180)) - DIGIT_SIZE/2, DIGIT_SIZE, GRAY); + // Draw clock minutes/seconds lines + for (int i = 0; i < 60; i++) + { + DrawLineEx((Vector2){ position.x + (clock.second.length + ((i%5)? 10 : 6))*cosf((6.0f*i - 90.0f)*DEG2RAD), + position.y + (clock.second.length + ((i%5)? 10 : 6))*sinf((6.0f*i - 90.0f)*DEG2RAD) }, + (Vector2){ position.x + (clock.second.length + 20)*cosf((6.0f*i - 90.0f)*DEG2RAD), + position.y + (clock.second.length + 20)*sinf((6.0f*i - 90.0f)*DEG2RAD) }, ((i%5)? 1.0f : 3.0f), DARKGRAY); + + // Draw seconds numbers + //DrawText(TextFormat("%02i", i), centerPosition.x + (clock.second.length + 50)*cosf((6.0f*i - 90.0f)*DEG2RAD) - 10/2, + // centerPosition.y + (clock.second.length + 50)*sinf((6.0f*i - 90.0f)*DEG2RAD) - 10/2, 10, GRAY); + } - DrawText(TextFormat("%i", clock.minute.value), centerPosition.x + clock.minute.length*cosf(clock.minute.angle*(float)(PI/180)) - DIGIT_SIZE/2, centerPosition.y + clock.minute.length*sinf(clock.minute.angle*(float)(PI/180)) - DIGIT_SIZE/2, DIGIT_SIZE, RED); - - DrawText(TextFormat("%i", clock.hour.value), centerPosition.x + clock.hour.length*cosf(clock.hour.angle*(float)(PI/180)) - DIGIT_SIZE/2, centerPosition.y + clock.hour.length*sinf(clock.hour.angle*(float)(PI/180)) - DIGIT_SIZE/2, DIGIT_SIZE, GOLD); - } - else if (clock.mode == MODE_NORMAL) - { // Draw hand seconds - DrawRectanglePro((Rectangle){ centerPosition.x, centerPosition.y, clock.second.length, clock.second.thickness }, + DrawRectanglePro((Rectangle){ position.x, position.y, clock.second.length, clock.second.thickness }, (Vector2){ 0.0f, clock.second.thickness/2.0f }, clock.second.angle, clock.second.color); // Draw hand minutes - DrawRectanglePro((Rectangle){ centerPosition.x, centerPosition.y, clock.minute.length, clock.minute.thickness }, + DrawRectanglePro((Rectangle){ position.x, position.y, clock.minute.length, clock.minute.thickness }, (Vector2){ 0.0f, clock.minute.thickness/2.0f }, clock.minute.angle, clock.minute.color); // Draw hand hours - DrawRectanglePro((Rectangle){ centerPosition.x, centerPosition.y, clock.hour.length, clock.hour.thickness }, + DrawRectanglePro((Rectangle){ position.x, position.y, clock.hour.length, clock.hour.thickness }, (Vector2){ 0.0f, clock.hour.thickness/2.0f }, clock.hour.angle, clock.hour.color); +} + +// Draw digital clock +// PARAM: position, refers to top-left corner +static void DrawClockDigital(Clock clock, Vector2 position) +{ + // Draw clock using custom 7-segments display (made of shapes) + DrawDisplayValue((Vector2){ position.x, position.y }, clock.hour.value/10, RED, Fade(LIGHTGRAY, 0.3f)); + DrawDisplayValue((Vector2){ position.x + 120, position.y }, clock.hour.value%10, RED, Fade(LIGHTGRAY, 0.3f)); + + DrawCircle(position.x + 240, position.y + 70, 12, (clock.second.value%2)? RED : Fade(LIGHTGRAY, 0.3f)); + DrawCircle(position.x + 240, position.y + 150, 12, (clock.second.value%2)? RED : Fade(LIGHTGRAY, 0.3f)); + + DrawDisplayValue((Vector2){ position.x + 260, position.y }, clock.minute.value/10, RED, Fade(LIGHTGRAY, 0.3f)); + DrawDisplayValue((Vector2){ position.x + 380, position.y }, clock.minute.value%10, RED, Fade(LIGHTGRAY, 0.3f)); + + DrawCircle(position.x + 500, position.y + 70, 12, (clock.second.value%2)? RED : Fade(LIGHTGRAY, 0.3f)); + DrawCircle(position.x + 500, position.y + 150, 12, (clock.second.value%2)? RED : Fade(LIGHTGRAY, 0.3f)); + + DrawDisplayValue((Vector2){ position.x + 520, position.y }, clock.second.value/10, RED, Fade(LIGHTGRAY, 0.3f)); + DrawDisplayValue((Vector2){ position.x + 640, position.y }, clock.second.value%10, RED, Fade(LIGHTGRAY, 0.3f)); +} + +// Draw 7-segment display with value +static void DrawDisplayValue(Vector2 position, int value, Color colorOn, Color colorOff) +{ + switch (value) + { + case 0: Draw7SDisplay(position, 0b00111111, colorOn, colorOff); break; + case 1: Draw7SDisplay(position, 0b00000110, colorOn, colorOff); break; + case 2: Draw7SDisplay(position, 0b01011011, colorOn, colorOff); break; + case 3: Draw7SDisplay(position, 0b01001111, colorOn, colorOff); break; + case 4: Draw7SDisplay(position, 0b01100110, colorOn, colorOff); break; + case 5: Draw7SDisplay(position, 0b01101101, colorOn, colorOff); break; + case 6: Draw7SDisplay(position, 0b01111101, colorOn, colorOff); break; + case 7: Draw7SDisplay(position, 0b00000111, colorOn, colorOff); break; + case 8: Draw7SDisplay(position, 0b01111111, colorOn, colorOff); break; + case 9: Draw7SDisplay(position, 0b01101111, colorOn, colorOff); break; + default: break; + } +} + +// Draw seven segments display +// Parameter: position, refers to top-left corner of display +// Parameter: segments, defines in binary the segments to be activated +static void Draw7SDisplay(Vector2 position, char segments, Color colorOn, Color colorOff) +{ + int segmentLen = 60; + int segmentThick = 20; + float offsetYAdjust = segmentThick*0.3f; // HACK: Adjust gap space between segment limits + + // Segment A + DrawDisplaySegment((Vector2){ position.x + segmentThick + segmentLen/2.0f, position.y + segmentThick }, + segmentLen, segmentThick, false, (segments & 0b00000001)? colorOn : colorOff); + // Segment B + DrawDisplaySegment((Vector2){ position.x + segmentThick + segmentLen + segmentThick/2.0f, position.y + 2*segmentThick + segmentLen/2.0f - offsetYAdjust }, + segmentLen, segmentThick, true, (segments & 0b00000010)? colorOn : colorOff); + // Segment C + DrawDisplaySegment((Vector2){ position.x + segmentThick + segmentLen + segmentThick/2.0f, position.y + 4*segmentThick + segmentLen + segmentLen/2.0f - 3*offsetYAdjust }, + segmentLen, segmentThick, true, (segments & 0b00000100)? colorOn : colorOff); + // Segment D + DrawDisplaySegment((Vector2){ position.x + segmentThick + segmentLen/2.0f, position.y + 5*segmentThick + 2*segmentLen - 4*offsetYAdjust }, + segmentLen, segmentThick, false, (segments & 0b00001000)? colorOn : colorOff); + // Segment E + DrawDisplaySegment((Vector2){ position.x + segmentThick/2.0f, position.y + 4*segmentThick + segmentLen + segmentLen/2.0f - 3*offsetYAdjust }, + segmentLen, segmentThick, true, (segments & 0b00010000)? colorOn : colorOff); + // Segment F + DrawDisplaySegment((Vector2){ position.x + segmentThick/2.0f, position.y + 2*segmentThick + segmentLen/2.0f - offsetYAdjust }, + segmentLen, segmentThick, true, (segments & 0b00100000)? colorOn : colorOff); + // Segment G + DrawDisplaySegment((Vector2){ position.x + segmentThick + segmentLen/2.0f, position.y + 3*segmentThick + segmentLen - 2*offsetYAdjust }, + segmentLen, segmentThick, false, (segments & 0b01000000)? colorOn : colorOff); +} + +// Draw one 7-segment display segment, horizontal or vertical +static void DrawDisplaySegment(Vector2 center, int length, int thick, bool vertical, Color color) +{ + if (!vertical) + { + // Horizontal segment points + // 3___________________________5 + // / \ + // /1 x 6\ + // \ / + // \2___________________________4/ + Vector2 segmentPointsH[6] = { + (Vector2){ center.x - length/2.0f - thick/2.0f, center.y }, // Point 1 + (Vector2){ center.x - length/2.0f, center.y + thick/2.0f }, // Point 2 + (Vector2){ center.x - length/2.0f, center.y - thick/2.0f }, // Point 3 + (Vector2){ center.x + length/2.0f, center.y + thick/2.0f }, // Point 4 + (Vector2){ center.x + length/2.0f, center.y - thick/2.0f }, // Point 5 + (Vector2){ center.x + length/2.0f + thick/2.0f, center.y }, // Point 6 + }; + + DrawTriangleStrip(segmentPointsH, 6, color); + } + else + { + // Vertical segment points + Vector2 segmentPointsV[6] = { + (Vector2){ center.x, center.y - length/2.0f - thick/2.0f }, // Point 1 + (Vector2){ center.x - thick/2.0f, center.y - length/2.0f }, // Point 2 + (Vector2){ center.x + thick/2.0f, center.y - length/2.0f }, // Point 3 + (Vector2){ center.x - thick/2.0f, center.y + length/2.0f }, // Point 4 + (Vector2){ center.x + thick/2.0f, center.y + length/2.0f }, // Point 5 + (Vector2){ center.x, center.y + length/2 + thick/2.0f }, // Point 6 + }; + + DrawTriangleStrip(segmentPointsV, 6, color); } } diff --git a/examples/shapes/shapes_digital_clock.png b/examples/shapes/shapes_digital_clock.png index 22939253176be52b334d781d99a2e7c23a750ddd..35ac56b93ba45b3d2b725c19f345a48305c50bce 100644 GIT binary patch literal 18697 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 literal 3651 zcmeHKYfzI{8h$^b35r3~ibA*qC|gB9z(5fMQ$(&SQe<|iS`8o&7KBIu5k)=)(bkGc zYu5`4$yP9ojJ8%jMG*ucD~^Jf0#(t<#eLGw{@9=FuboaandHqm@8x;k z%Q;^@iHryqPPLp$M8eRJz$hY~B@xqL%*RUUWpcsSBxOKov@u@Wj5qATZ;Q<3F`28< z6Eio*W+YHjTKdKW7iD}#LPDBSo}M|tYxIZGJcH7*jD*n34gl)Vzz?Ex%AVb;Io#<*MX^5neK#KPk3Y6~z$GIq zDDv-v?{qk>(PV$xWa|Mzl5#7PrUQU{KZnoz zg&<<~o`i_?Rx?CRQ-nm~2sySk1webxEYOvf{igbVlz~@6PZ?5_HI9$=j#T82zpR@T zY$SbhO-`8`Ea$ZL5i6NcB{}!q!;EH*n&A%j_v^_ZO`s1rb-y|2k{GoDbFTiq4>Pa|;2%^Sg-{|n``ONxKq zyKZAdlI3!`H)3uP$D@owK3A)&Hxp5borG+<(%!$wkZ6ifwMOY~=S4C z+W}$6no}hI3xrSFNtF=5(+7I$idru+?E!Kst9l5mwS|1?WMGu0Kv-@N7C=bo3Y#o7 zfv^if{)oX zDH8A%AA-Ir5j*#>;|bV8@AzOR%E7rRFU%6rtw1?R0-;29m08J0?#_u#O`5!utu zgpty*X6U=hp2oKw>OA_w%#xhTI}}=5QWo;*l3V@0sfG^JZa(fCmG|aF@?5@2Gn2DI zPJ;!GXqA?2b9F;cItobT-;%hXyt(<$3)dIVHKjT6K|I#JI?>HPe|+0u2-O?G$Ew!O z%7f3K2r0k?%Cw3g8ZHl3JV=p1^&)TVPH%I!&IG$>{ zc>zx`RWQPw|Nb*RRcgjuq@Bo6C0g_u*pwl$=dW4{>Fa;Vma^H0Zjj0n1(w5H-#&*)lnCOAvEOiiG-#3dX3|P{OqK15@?hFh2wH zc;x1SgBJ}aA-5kZ+xS|4RE+b)Kt45? zlClR=^GybiaKs9m_*y00dZD$Jo(HY31A)}_F~)ch+{ZCR{stv zfpI+fK~yr5L1&zHhvV7c$XVjdJ~(fmaFL~UHiDnLvNmwfG`$l_#fJHH+dF!&3kzh9T*w&?;3b@Zud~ZYTaaQu5F7AkuG=ZR#8!G&X(A> z!^7FH;|Kh* z!*Inh<$0^$K3+BY;7&@(TwPtyKtso&r0VD0Bc5a9NsBDP*F7Jqag3jDJE%gV{6}}*KTlD zE=~F2AIiG-S1fycyXD@GS!^)wh^XTgP78mE&ii5Lrb%b%%KPE#mFX$H51nk1))nXa zv3NRAMLAZSY`k!#sy}Y<+O8(g#)b1+xh41W(p+w_W4QGToExs>4Tp}FZhh3+8#>xm z`|9=5qsj9v@~_5(b+^`@3sUxOF`p8iboNC4`dOmzw<~M?mrZ)`pW8+Lu}f!xP2SNJ zr+&^R&IzBWC%d+t?lqG6VTMWC^(**OQs2n57yR{ZR>lqw{C%R( Date: Tue, 9 Sep 2025 17:33:19 +0200 Subject: [PATCH 128/190] Update complexity level for `shapes_digital_clock` --- examples/examples_list.txt | 2 +- examples/shapes/shapes_digital_clock.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/examples_list.txt b/examples/examples_list.txt index ed8cc3ff6..18c2e7e42 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -60,7 +60,7 @@ shapes;shapes_rounded_rectangle_drawing;★★★☆;2.5;2.5;2018;2025;"Vlad Adr shapes;shapes_top_down_lights;★★★★;4.2;4.2;2022;2025;"Jeffery Myers";@JeffM2501 shapes;shapes_rectangle_advanced;★★★★;5.5;5.5;2024;2025;"Everton Jr.";@evertonse shapes;shapes_splines_drawing;★★★☆;5.0;5.0;2023;2025;"Ramon Santamaria";@raysan5 -shapes;shapes_digital_clock;★★☆☆;5.5;5.6;2025;2025;"Hamza RAHAL";@hmz-rhl +shapes;shapes_digital_clock;★★★★;5.5;5.6;2025;2025;"Hamza RAHAL";@hmz-rhl shapes;shapes_double_pendulum;★★☆☆;5.5;5.5;2025;2025;"JoeCheong";@Joecheong2006 textures;textures_logo_raylib;★☆☆☆;1.0;1.0;2014;2025;"Ramon Santamaria";@raysan5 textures;textures_srcrec_dstrec;★★★☆;1.3;1.3;2015;2025;"Ramon Santamaria";@raysan5 diff --git a/examples/shapes/shapes_digital_clock.c b/examples/shapes/shapes_digital_clock.c index 48e19e2be..3317202b8 100644 --- a/examples/shapes/shapes_digital_clock.c +++ b/examples/shapes/shapes_digital_clock.c @@ -2,7 +2,7 @@ * * raylib [shapes] example - digital clock * -* Example complexity rating: [★★☆☆] 2/4 +* Example complexity rating: [★★★★] 4/4 * * Example originally created with raylib 5.5, last time updated with raylib 5.6 * From ffe74658abec0e3b9f95d226972b219f710ffc9d Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 10 Sep 2025 18:26:43 +0200 Subject: [PATCH 129/190] REXM: ADDED: example: `core_render_texture` --- examples/Makefile | 1 + examples/Makefile.Web | 4 + examples/README.md | 7 +- examples/core/core_render_texture.c | 99 +++ examples/core/core_render_texture.png | Bin 0 -> 17334 bytes examples/examples_list.txt | 1 + .../examples/core_render_texture.vcxproj | 569 ++++++++++++++++++ projects/VS2022/raylib.sln | 27 + 8 files changed, 705 insertions(+), 3 deletions(-) create mode 100644 examples/core/core_render_texture.c create mode 100644 examples/core/core_render_texture.png create mode 100644 projects/VS2022/examples/core_render_texture.vcxproj diff --git a/examples/Makefile b/examples/Makefile index 4c0320e2e..d7c9dcb81 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -526,6 +526,7 @@ CORE = \ core/core_input_virtual_controls \ core/core_random_sequence \ core/core_random_values \ + core/core_render_texture \ core/core_scissor_test \ core/core_smooth_pixelperfect \ core/core_storage_values \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 0a3cf24f7..d9c27b19d 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -526,6 +526,7 @@ CORE = \ core/core_input_virtual_controls \ core/core_random_sequence \ core/core_random_values \ + core/core_render_texture \ core/core_scissor_test \ core/core_smooth_pixelperfect \ core/core_storage_values \ @@ -761,6 +762,9 @@ core/core_random_sequence: core/core_random_sequence.c core/core_random_values: core/core_random_values.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) +core/core_render_texture: core/core_render_texture.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + core/core_scissor_test: core/core_scissor_test.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) diff --git a/examples/README.md b/examples/README.md index 608d9d3d7..0f20913e2 100644 --- a/examples/README.md +++ b/examples/README.md @@ -17,9 +17,9 @@ 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: 160] +## EXAMPLES COLLECTION [TOTAL: 161] -### category: core [35] +### category: core [36] Examples using raylib[core](../src/rcore.c) platform functionality like window creation, inputs, drawing modes and system functionality. @@ -60,6 +60,7 @@ Examples using raylib[core](../src/rcore.c) platform functionality like window c | [core_random_sequence](core/core_random_sequence.c) | core_random_sequence | ⭐☆☆☆ | 5.0 | 5.0 | [Dalton Overmyer](https://github.com/REDl3east) | | [core_automation_events](core/core_automation_events.c) | core_automation_events | ⭐⭐⭐☆ | 5.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) | | [core_high_dpi](core/core_high_dpi.c) | core_high_dpi | ⭐⭐☆☆ | 5.0 | 5.5 | [Jonathan Marler](https://github.com/marler8997) | +| [core_render_texture](core/core_render_texture.c) | core_render_texture | ⭐☆☆☆ | 5.6-dev | 5.6-dev | [@raysan5](https://github.com/ Santamaria") | ### category: shapes [20] @@ -85,7 +86,7 @@ Examples using raylib shapes drawing functionality, provided by raylib [shapes]( | [shapes_top_down_lights](shapes/shapes_top_down_lights.c) | shapes_top_down_lights | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [Jeffery Myers](https://github.com/JeffM2501) | | [shapes_rectangle_advanced](shapes/shapes_rectangle_advanced.c) | shapes_rectangle_advanced | ⭐⭐⭐⭐️ | 5.5 | 5.5 | [Everton Jr.](https://github.com/evertonse) | | [shapes_splines_drawing](shapes/shapes_splines_drawing.c) | shapes_splines_drawing | ⭐⭐⭐☆ | 5.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) | -| [shapes_digital_clock](shapes/shapes_digital_clock.c) | shapes_digital_clock | ⭐⭐☆☆ | 5.5 | 5.6 | [Hamza RAHAL](https://github.com/hmz-rhl) | +| [shapes_digital_clock](shapes/shapes_digital_clock.c) | shapes_digital_clock | ⭐⭐⭐⭐️ | 5.5 | 5.6 | [Hamza RAHAL](https://github.com/hmz-rhl) | | [shapes_double_pendulum](shapes/shapes_double_pendulum.c) | shapes_double_pendulum | ⭐⭐☆☆ | 5.5 | 5.5 | [JoeCheong](https://github.com/Joecheong2006) | ### category: textures [26] diff --git a/examples/core/core_render_texture.c b/examples/core/core_render_texture.c new file mode 100644 index 000000000..f08d3afe0 --- /dev/null +++ b/examples/core/core_render_texture.c @@ -0,0 +1,99 @@ +/******************************************************************************************* +* +* raylib [core] example - render texture +* +* Example complexity rating: [★☆☆☆] 1/4 +* +* Example originally created with raylib 5.6-dev, last time updated with raylib 5.6-dev +* +* 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 @raysan5 (@ Santamaria") +* +********************************************************************************************/ + +#include "raylib.h" + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main(void) +{ + // Initialization + //--------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [core] example - render texture"); + + // Define a render texture to render + int renderTextureWidth = 300; + int renderTextureHeight = 300; + RenderTexture2D target = LoadRenderTexture(renderTextureWidth, renderTextureHeight); + + Vector2 ballPosition = { renderTextureWidth/2.0f, renderTextureHeight/2.0f }; + Vector2 ballSpeed = { 5.0f, 4.0f }; + int ballRadius = 20; + + 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 + //----------------------------------------------------- + // Ball movement logic + ballPosition.x += ballSpeed.x; + ballPosition.y += ballSpeed.y; + + // Check walls collision for bouncing + if ((ballPosition.x >= (renderTextureWidth - ballRadius)) || (ballPosition.x <= ballRadius)) ballSpeed.x *= -1.0f; + if ((ballPosition.y >= (renderTextureHeight - ballRadius)) || (ballPosition.y <= ballRadius)) ballSpeed.y *= -1.0f; + + // Render texture rotation + rotation += 0.5f; + //----------------------------------------------------- + + // Draw + //----------------------------------------------------- + // Draw our scene to the render texture + BeginTextureMode(target); + + ClearBackground(SKYBLUE); + + DrawCircleV(ballPosition, (float)ballRadius, MAROON); + + EndTextureMode(); + + // Draw render texture to main framebuffer + BeginDrawing(); + + ClearBackground(RAYWHITE); + + // Draw our render texture with rotation applied + // NOTE: We set the origin of the texture to the center of the render texture + DrawTexturePro(target.texture, + (Rectangle){ 0, 0, target.texture.width, -target.texture.height }, + (Rectangle){ screenWidth/2, screenHeight/2, target.texture.width, -target.texture.height }, + (Vector2){ target.texture.width/2, target.texture.height/2 }, rotation, WHITE); + + DrawText("DRAWING BOUNCING BALL INSIDE RENDER TEXTURE!", 10, screenHeight - 40, 20, BLACK); + + + DrawFPS(10, 10); + + EndDrawing(); + //----------------------------------------------------- + } + + // De-Initialization + //--------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //---------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/core/core_render_texture.png b/examples/core/core_render_texture.png new file mode 100644 index 0000000000000000000000000000000000000000..312efdb399e3f00b822b08a36a3f12f825006c14 GIT binary patch literal 17334 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 literal 0 HcmV?d00001 diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 18c2e7e42..1cbc5b80b 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -42,6 +42,7 @@ core;core_smooth_pixelperfect;★★★☆;3.7;4.0;2021;2025;"Giancamillo Alessa 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;2025;"Jonathan Marler";@marler8997 +core;core_render_texture;★☆☆☆;5.6-dev;5.6-dev;2025;2025;"Ramon Santamaria";@raysan5 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 diff --git a/projects/VS2022/examples/core_render_texture.vcxproj b/projects/VS2022/examples/core_render_texture.vcxproj new file mode 100644 index 000000000..faa53557b --- /dev/null +++ b/projects/VS2022/examples/core_render_texture.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 + + + + {6B1A933E-71B8-4C1F-9E79-02D98830E671} + Win32Proj + core_render_texture + 10.0 + core_render_texture + + + + 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\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + 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 d6a14886e..4d9486e43 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -339,6 +339,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_unicode_ranges", "exam EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_input_gestures_testbed", "examples\core_input_gestures_testbed.vcxproj", "{A61DAD9C-271C-4E95-81AA-DB4CD58564D4}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_render_texture", "examples\core_render_texture.vcxproj", "{6B1A933E-71B8-4C1F-9E79-02D98830E671}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug.DLL|ARM64 = Debug.DLL|ARM64 @@ -4169,6 +4171,30 @@ Global {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release|x64.Build.0 = Release|x64 {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release|x86.ActiveCfg = Release|Win32 {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release|x86.Build.0 = Release|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|ARM64.Build.0 = Debug.DLL|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|ARM64.Build.0 = Debug|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x64.ActiveCfg = Debug|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x64.Build.0 = Debug|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x86.ActiveCfg = Debug|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x86.Build.0 = Debug|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|ARM64.ActiveCfg = Release.DLL|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|ARM64.Build.0 = Release.DLL|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|ARM64.ActiveCfg = Release|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|ARM64.Build.0 = Release|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x64.ActiveCfg = Release|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x64.Build.0 = Release|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x86.ActiveCfg = Release|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -4340,6 +4366,7 @@ Global {6BFF72EA-7362-4A3B-B6E5-9A3655BBBDA3} = {5317807F-61D4-4E0F-B6DC-2D9F12621ED9} {6777EC3C-077C-42FC-B4AD-B799CE55CCE4} = {8D3C83B7-F1E0-4C2E-9E34-EE5F6AB2502A} {A61DAD9C-271C-4E95-81AA-DB4CD58564D4} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} + {6B1A933E-71B8-4C1F-9E79-02D98830E671} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {E926C768-6307-4423-A1EC-57E95B1FAB29} From 9e14faffcc1c22319f8806a467628466c448bd94 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 10 Sep 2025 18:27:19 +0200 Subject: [PATCH 130/190] REXM: REVIEWED: example addition logic --- tools/rexm/rexm.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index 61a65f889..5d124315d 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -288,14 +288,14 @@ int main(int argc, char *argv[]) { if (IsFileExtension(argv[2], ".c")) // Check for valid file extension: input { - if (FileExists(inFileName)) + if (FileExists(argv[2])) { // Security checks for file name to verify category is included - int catIndex = TextFindIndex(argv[2], "_"); + int catIndex = TextFindIndex(GetFileName(argv[2]), "_"); if (catIndex > 3) { char cat[12] = { 0 }; - strncpy(cat, argv[2], catIndex); + strncpy(cat, GetFileName(argv[2]), catIndex); bool catFound = false; for (int i = 0; i < REXM_MAX_EXAMPLE_CATEGORIES; i++) { @@ -305,7 +305,7 @@ int main(int argc, char *argv[]) if (catFound) { strcpy(inFileName, argv[2]); // Register filename for addition - strcpy(exName, GetFileNameWithoutExt(argv[2])); // Register example name + strcpy(exName, GetFileNameWithoutExt(inFileName)); // Register example name strncpy(exCategory, exName, TextFindIndex(exName, "_")); opCode = OP_ADD; } @@ -439,16 +439,26 @@ int main(int argc, char *argv[]) case OP_ADD: // Add: Example from command-line input filename { // Add: raylib/examples//_example_name.c - if (opCode != 1) FileCopy(inFileName, TextFormat("%s/%s/%s.c", exBasePath, exCategory, exName)); + if (opCode != OP_CREATE) FileCopy(inFileName, TextFormat("%s/%s/%s.c", exBasePath, exCategory, exName)); // Create: raylib/examples//_example_name.png - FileCopy(exTemplateScreenshot, TextFormat("%s/%s/%s.png", exBasePath, exCategory, exName)); // WARNING: To be updated manually! + if (FileExists(TextFormat("%s/%s.png", GetDirectoryPath(inFileName), exName))) + { + FileCopy(TextFormat("%s/%s.png", GetDirectoryPath(inFileName), exName), + TextFormat("%s/%s/%s.png", exBasePath, exCategory, exName)); + } + else // No screenshot available next to source file + { + // Copy screenshot template + FileCopy(exTemplateScreenshot, TextFormat("%s/%s/%s.png", exBasePath, exCategory, exName)); + } // Copy: raylib/examples//resources/... // ----------------------------------------------------------------------------------------- // Scan resources used in example to copy + // NOTE: resources path will be relative to example source file directory int resPathCount = 0; - char **resPaths = ScanExampleResources(TextFormat("%s/%s/%s.c", exBasePath, exCategory, exName), &resPathCount); + char **resPaths = ScanExampleResources(TextFormat("%s/%s.c", GetDirectoryPath(inFileName), exName), &resPathCount); if (resPathCount > 0) { @@ -508,7 +518,7 @@ int main(int argc, char *argv[]) // ----------------------------------------------------------------------------------------- // Add example to the collection list, if not already there - // NOTE: Required format: shapes;shapes_basic_shapes;★☆☆☆;1.0;4.2;"Ray";@raysan5 + // NOTE: Required format: shapes;shapes_basic_shapes;★☆☆☆;1.0;4.2;2014;2025;"Ray";@raysan5 //------------------------------------------------------------------------------------------------ char *exCollectionList = LoadFileText(exCollectionFilePath); if (TextFindIndex(exCollectionList, exName) == -1) // Example not found @@ -555,7 +565,7 @@ int main(int argc, char *argv[]) // Add example to collection, at the end of the category list int categoryIndex = TextFindIndex(exCollectionList, exCategories[nextCategoryIndex]); memcpy(exCollectionListUpdated, exCollectionList, categoryIndex); - int textWritenSize = sprintf(exCollectionListUpdated + categoryIndex, TextFormat("%s;%s;%s;%s;%s;%i;%i\"%s\";@%s\n", + int textWritenSize = sprintf(exCollectionListUpdated + categoryIndex, TextFormat("%s;%s;%s;%s;%s;%i;%i;\"%s\";@%s\n", exInfo->category, exInfo->name, starsText, exInfo->verCreated, exInfo->verUpdated, exInfo->yearCreated, exInfo->yearReviewed, exInfo->author, exInfo->authorGitHub)); memcpy(exCollectionListUpdated + categoryIndex + textWritenSize, exCollectionList + categoryIndex, strlen(exCollectionList) - categoryIndex); } From 109b3b2d2e5832fbce00dbe2513c3fbfc0013c92 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 10 Sep 2025 18:31:49 +0200 Subject: [PATCH 131/190] REXM: ADDED: example: `text_inline_styling` --- examples/Makefile | 1 + examples/Makefile.Web | 4 + examples/README.md | 7 +- examples/examples_list.txt | 1 + examples/text/text_inline_styling.c | 273 +++++++++ examples/text/text_inline_styling.png | Bin 0 -> 16596 bytes .../examples/text_inline_styling.vcxproj | 569 ++++++++++++++++++ projects/VS2022/raylib.sln | 27 + 8 files changed, 879 insertions(+), 3 deletions(-) create mode 100644 examples/text/text_inline_styling.c create mode 100644 examples/text/text_inline_styling.png create mode 100644 projects/VS2022/examples/text_inline_styling.vcxproj diff --git a/examples/Makefile b/examples/Makefile index d7c9dcb81..23c976681 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -594,6 +594,7 @@ TEXT = \ text/text_font_sdf \ text/text_font_spritefont \ text/text_format_text \ + text/text_inline_styling \ text/text_input_box \ text/text_rectangle_bounds \ text/text_sprite_fonts \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index d9c27b19d..0b2fdec0b 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -594,6 +594,7 @@ TEXT = \ text/text_font_sdf \ text/text_font_spritefont \ text/text_format_text \ + text/text_inline_styling \ text/text_input_box \ text/text_rectangle_bounds \ text/text_sprite_fonts \ @@ -991,6 +992,9 @@ text/text_font_spritefont: text/text_font_spritefont.c text/text_format_text: text/text_format_text.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) +text/text_inline_styling: text/text_inline_styling.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + text/text_input_box: text/text_input_box.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) diff --git a/examples/README.md b/examples/README.md index 0f20913e2..bc50cfc1d 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: 161] +## EXAMPLES COLLECTION [TOTAL: 162] ### category: core [36] @@ -60,7 +60,7 @@ Examples using raylib[core](../src/rcore.c) platform functionality like window c | [core_random_sequence](core/core_random_sequence.c) | core_random_sequence | ⭐☆☆☆ | 5.0 | 5.0 | [Dalton Overmyer](https://github.com/REDl3east) | | [core_automation_events](core/core_automation_events.c) | core_automation_events | ⭐⭐⭐☆ | 5.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) | | [core_high_dpi](core/core_high_dpi.c) | core_high_dpi | ⭐⭐☆☆ | 5.0 | 5.5 | [Jonathan Marler](https://github.com/marler8997) | -| [core_render_texture](core/core_render_texture.c) | core_render_texture | ⭐☆☆☆ | 5.6-dev | 5.6-dev | [@raysan5](https://github.com/ Santamaria") | +| [core_render_texture](core/core_render_texture.c) | core_render_texture | ⭐☆☆☆ | 5.6-dev | 5.6-dev | [Ramon Santamaria](https://github.com/raysan5) | ### category: shapes [20] @@ -122,7 +122,7 @@ Examples using raylib textures functionality, including image/textures loading/g | [textures_image_rotate](textures/textures_image_rotate.c) | textures_image_rotate | ⭐⭐☆☆ | 1.0 | 1.0 | [Ramon Santamaria](https://github.com/raysan5) | | [textures_textured_curve](textures/textures_textured_curve.c) | textures_textured_curve | ⭐⭐⭐☆ | 4.5 | 4.5 | [Jeffery Myers](https://github.com/JeffM2501) | -### category: text [13] +### category: text [14] Examples using raylib text functionality, including sprite fonts loading/generation and text drawing, provided by raylib [text](../src/rtext.c) module. @@ -141,6 +141,7 @@ Examples using raylib text functionality, including sprite fonts loading/generat | [text_unicode_ranges](text/text_unicode_ranges.c) | text_unicode_ranges | ⭐⭐⭐⭐️ | 5.5 | 5.6 | [Vlad Adrian](https://github.com/demizdor) | | [text_3d_drawing](text/text_3d_drawing.c) | text_3d_drawing | ⭐⭐⭐⭐️ | 3.5 | 4.0 | [Vlad Adrian](https://github.com/demizdor) | | [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 [23] diff --git a/examples/examples_list.txt b/examples/examples_list.txt index 1cbc5b80b..c76176c86 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -102,6 +102,7 @@ text;text_unicode_emojis;★★★★;2.5;4.0;2019;2025;"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 +text;text_inline_styling;★★★☆;5.6-dev;5.6-dev;2025;2025;"Wagner Barongello";@SultansOfCode models;models_animation_playing;★★☆☆;2.5;3.5;2019;2025;"Culacant";@culacant models;models_billboard_rendering;★★★☆;1.3;3.5;2015;2025;"Ramon Santamaria";@raysan5 models;models_box_collisions;★☆☆☆;1.3;3.5;2015;2025;"Ramon Santamaria";@raysan5 diff --git a/examples/text/text_inline_styling.c b/examples/text/text_inline_styling.c new file mode 100644 index 000000000..865b1c5d0 --- /dev/null +++ b/examples/text/text_inline_styling.c @@ -0,0 +1,273 @@ +/******************************************************************************************* +* +* raylib [text] example - inline styling +* +* Example complexity rating: [★★★☆] 3/4 +* +* Example originally created with raylib 5.6-dev, last time updated with raylib 5.6-dev +* +* Example contributed by Wagner Barongello (@SultansOfCode) 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 +* +* Copyright (c) 2025 Wagner Barongello (@SultansOfCode) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include // Required for: strtoul(), NULL + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- +static void DrawTextStyled(Font font, const char *text, Vector2 position, float fontSize, float spacing, Color color); +static Vector2 MeasureTextStyled(Font font, const char *text, float fontSize, float spacing); + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [text] example - inline styling"); + + Vector2 textSize = { 0 }; // Measure text box for provided font and text + Color colRandom = RED; // Random color used on text + int frameCounter = 0; // Used to generate a new random color every certain frames + + 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 + //---------------------------------------------------------------------------------- + frameCounter++; + + if ((frameCounter%20) == 0) + { + colRandom.r = (unsigned char)GetRandomValue(0, 255); + colRandom.g = (unsigned char)GetRandomValue(0, 255); + colRandom.b = (unsigned char)GetRandomValue(0, 255); + colRandom.a = 255; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + // Text inline styling strategy used: [ ] delimiters for format + // - Define foreground color: [cRRGGBBAA] + // - Define background color: [bRRGGBBAA] + // - Reset formating: [r] + // Example: [bAA00AAFF][cFF0000FF]red text on gray background[r] normal text + + DrawTextStyled(GetFontDefault(), "This changes the [cFF0000FF]foreground color[r] of provided text!!!", + (Vector2){ 100, 80 }, 20.0f, 2.0f, BLACK); + + DrawTextStyled(GetFontDefault(), "This changes the [bFF00FFFF]background color[r] of provided text!!!", + (Vector2){ 100, 120 }, 20.0f, 2.0f, BLACK); + + DrawTextStyled(GetFontDefault(), "This changes the [c00ff00ff][bff0000ff]foreground and background colors[r]!!!", + (Vector2){ 100, 160 }, 20.0f, 2.0f, BLACK); + + // Get pointer to formated text + const char *text = TextFormat("Let's be [c%02x%02x%02xFF]CREATIVE[r] !!!", colRandom.r, colRandom.g, colRandom.b); + DrawTextStyled(GetFontDefault(), text, (Vector2){ 100, 220 }, 40.0f, 2.0f, BLACK); + + textSize = MeasureTextStyled(GetFontDefault(), text, 40.0f, 2.0f); + DrawRectangleLines(100, 220, textSize.x, textSize.y, GREEN); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- +// Draw text using inline styling +// PARAM: color is the default text color, background color is BLANK by default +static void DrawTextStyled(Font font, const char *text, Vector2 position, float fontSize, float spacing, Color color) +{ + // Text inline styling strategy used: [ ] delimiters for format + // - Define foreground color: [cRRGGBBAA] + // - Define background color: [bRRGGBBAA] + // - Reset formating: [r] + // Example: [bAA00AAFF][cFF0000FF]red text on gray background[r] normal text + + if (font.texture.id == 0) font = GetFontDefault(); + + int textLen = TextLength(text); + + Color colFront = color; + Color colBack = BLANK; + int backRecPadding = 4; // Background rectangle padding + + float textOffsetY = 0.0f; + float textOffsetX = 0.0f; + float textLineSpacing = 0.0f; + float scaleFactor = fontSize/font.baseSize; + + for (int i = 0; i < textLen;) + { + int codepointByteCount = 0; + int codepoint = GetCodepointNext(&text[i], &codepointByteCount); + + if (codepoint == '\n') + { + textOffsetY += (fontSize + textLineSpacing); + textOffsetX = 0.0f; + } + else + { + if (codepoint == '[') // Process pipe styling + { + if (((i + 2) < textLen) && (text[i + 1] == 'r') && (text[i + 2] == ']')) // Reset styling + { + colFront = color; + colBack = BLANK; + + i += 3; // Skip "[r]" + continue; // Do not draw characters + } + else if (((i + 1) < textLen) && ((text[i + 1] == 'c') || (text[i + 1] == 'b'))) + { + i += 2; // Skip "[c" or "[b" to start parsing color + + // Parse following color + char colHexText[9] = { 0 }; + char *textPtr = &text[i]; // Color should start here, let's see... + + int colHexCount = 0; + while ((textPtr != NULL) && (textPtr[colHexCount] != '\0') && (textPtr[colHexCount] != ']')) + { + if (((textPtr[colHexCount] >= '0') && (textPtr[colHexCount] <= '9')) || + ((textPtr[colHexCount] >= 'A') && (textPtr[colHexCount] <= 'F')) || + ((textPtr[colHexCount] >= 'a') && (textPtr[colHexCount] <= 'f'))) + { + colHexText[colHexCount] = textPtr[colHexCount]; + colHexCount++; + } + else break; // Only affects while loop + } + + // Convert hex color text into actual Color + unsigned int colHexValue = strtoul(colHexText, NULL, 16); + if (text[i - 1] == 'c') colFront = GetColor(colHexValue); + else if (text[i - 1] == 'b') colBack = GetColor(colHexValue); + + i += (colHexCount + 1); // Skip color value retrieved and ']' + continue; // Do not draw characters + } + } + + int index = GetGlyphIndex(font, codepoint); + float increaseX = 0.0f; + + if (font.glyphs[index].advanceX == 0) increaseX = ((float)font.recs[index].width*scaleFactor + spacing); + else increaseX += ((float)font.glyphs[index].advanceX*scaleFactor + spacing); + + // Draw background rectangle color (if required) + if (colBack.a > 0) DrawRectangle(position.x + textOffsetX, position.y + textOffsetY - backRecPadding, increaseX, fontSize + 2*backRecPadding, colBack); + + if ((codepoint != ' ') && (codepoint != '\t')) + { + DrawTextCodepoint(font, codepoint, (Vector2){ position.x + textOffsetX, position.y + textOffsetY }, fontSize, colFront); + } + + textOffsetX += increaseX; + } + + i += codepointByteCount; + } +} + +// Measure inline styled text +// NOTE: Measuring styled text requires skipping styling data +// WARNING: Not considering line breaks +static Vector2 MeasureTextStyled(Font font, const char *text, float fontSize, float spacing) +{ + Vector2 textSize = { 0 }; + + if ((font.texture.id == 0) || (text == NULL) || (text[0] == '\0')) return textSize; // Security check + + int textLen = TextLength(text); // Get size in bytes of text + float textLineSpacing = fontSize*1.5f; + + float textWidth = 0.0f; + float textHeight = fontSize; + float scaleFactor = fontSize/(float)font.baseSize; + + int codepoint = 0; // Current character + int index = 0; // Index position in sprite font + int validCodepointCounter = 0; + + for (int i = 0; i < textLen;) + { + int codepointByteCount = 0; + codepoint = GetCodepointNext(&text[i], &codepointByteCount); + + if (codepoint == '[') // Ignore pipe inline styling + { + if (((i + 2) < textLen) && (text[i + 1] == 'r') && (text[i + 2] == ']')) // Reset styling + { + i += 3; // Skip "[r]" + continue; // Do not measure characters + } + else if (((i + 1) < textLen) && ((text[i + 1] == 'c') || (text[i + 1] == 'b'))) + { + i += 2; // Skip "[c" or "[b" to start parsing color + + char *textPtr = &text[i]; // Color should start here, let's see... + + int colHexCount = 0; + while ((textPtr != NULL) && (textPtr[colHexCount] != '\0') && (textPtr[colHexCount] != ']')) + { + if (((textPtr[colHexCount] >= '0') && (textPtr[colHexCount] <= '9')) || + ((textPtr[colHexCount] >= 'A') && (textPtr[colHexCount] <= 'F')) || + ((textPtr[colHexCount] >= 'a') && (textPtr[colHexCount] <= 'f'))) + { + colHexCount++; + } + else break; // Only affects while loop + } + + i += (colHexCount + 1); // Skip color value retrieved and ']' + continue; // Do not measure characters + } + } + else if (codepoint != '\n') + { + index = GetGlyphIndex(font, codepoint); + + if (font.glyphs[index].advanceX > 0) textWidth += font.glyphs[index].advanceX; + else textWidth += (font.recs[index].width + font.glyphs[index].offsetX); + + validCodepointCounter++; + i += codepointByteCount; + } + } + + textSize.x = textWidth*scaleFactor + (validCodepointCounter - 1)*spacing; + textSize.y = textHeight; + + return textSize; +} diff --git a/examples/text/text_inline_styling.png b/examples/text/text_inline_styling.png new file mode 100644 index 0000000000000000000000000000000000000000..fac734d4921e7086429f2115f8d793d3d1a5b214 GIT binary patch literal 16596 zcmeHPdpwkR`yPkJup?tBjCGhM#m`nUgTgr0&;hd(vR;d|t)3#MP?^oS!R|P;bkZ(k zrw9@6s+d->CMmqHiLi=tD#X|=j6-<8Gm}Njcz@fkKYpLj{4<}K$9SImxxe>)-Pd(} z9}-CRHnK8k85j&EyUTV583vQkgu%pqMZm!krLPKVU@(h|yLMPQ9(Vuh&E)9I2uaE*r&0DKGgV7Ivxvk~)AdNTgOk2-*@adbCgrqC(};KLo!}^idRB zC563%uv{1xH&Mz%k+cmrmW_cah@p7d7IXGJdyeux^I(+dM2K9 zKDurKz9|B3>?n1SLfohFHAb&>;O8vYJ4t7`jO~GX)QUc24aEFJ$TeyIibVdCMfG_e z?Tl6Skh)*f3uS10j)AG>R`c*_t2i9H1P^%>9RPMn2==YEKj0QvLjc)$1Hb7)psDluCR}@0sk|# z)@`JG=cQ^aW;E8@7*U^AQ5SasM}E{TV>3dKFOkvkYSb#|mO5twf8c(eQnP8l&W~cs zS9{fpann7`4n0(p;?BDk>ogtJQ&k-<6`t3;;qIxtih;3+Ln;3#ref#4Jh|u7-Y?Tz zYt;Uru9CXm(((Oa^#&Myn?yN=D8#2WvHxUE-Di?w!u`B^iZX%1AQvV@mRRl>zQk8H&e8D42FN6#?IxW2drHX zN^w>!tc>zMaAReu!$%A@N9TEK9L-&=NNfRy#V?#L_pxtMEE3x zK;A-)kBvTtuFeAsN?x3?r-+z(|1Zn=cAa?$P$Hq9-nw*S@UYzk)c8^uFE}=Sir?;e zOF1O4IGB-v`b^bG)p%^3 zrW2tc#;2(4;FU8wS=6T%aX735b{jN{d!wOfY1;Y(*YvO*`X=dyE2JVGQ{b+eH#!JS z8>c%+?L+Y3Ci|YyYa(kj_xP52Z-xwlEC=`Ahcf18Cfy%_N|)Er>E%KMgY?%RQNr$- zZxZo(4b0U>7ICmfWwK7Dm_o8`|H?}HJi8wIXquJokT(mz80M9#%e*CBf3;Iz>7>7W z?jN?c1m9uU=8z)7y4a@5k<|PQmtzlW2|bfaEg9$$0=h)T!K?9w#oZScIoP1u{ksps z;67zGgEaH9QN>RQ4A>X&iWhxAGok4jW&11LiaIKV5kFkBGC%857nbla8k z=Vu*X$A_3>js_-bpGKQWT+VpXv&;8*W1C0p69!ujj{O_C=1KAPW0#n(buVxu6VK`b{7T`olk}Noi@t9yAKMdT zwImVszQ|_zOHr=-5_Km?g2DLFa8$;`Puz@nw(3Khk7_DW;#EiL%?jlyBjw1Z)l*p? zCtYHuHW4&qe_hiaZuN#u_QFfn00IbXm0+AOmybtRe6=wa`SQnHhXd)Od&P2}E4=gw zi!-{6jciJ?A#+1X{~%-$)cd&M^!%LB4n@~Ex!k)N*QfW?nC`ApZ9%RrA5-jn~H3Ag9e$U5Ra-r)o_{f-W>oO0*zX)qUbszcJKX=3E)0K9`Ns)DrN7S|KPA zDc{;XZI15Xqkj)*dRx?q&g#4M23J#`^mUv*{rOMdOid={spmLP=)2k{HV5#(7$aaZ zjXgrn>=`V_hf6V2jKz>a1tW@JYUN4iqG;KSMJ@Y4uxQ~nOEOM?M!ZF%0NTW#aIki3 z&(dL#PBIoJd8HhTVYRu+3IMGDR-)wZo1J_rk6zjj<_+C&Fyv*LApt1TDWDL~XxIfW z8k|9(+@+hL0S#e&$@7gx^ZGrr@Rwnk%o~<-JO_n{^7putRNV+6NCZjZInTrmd5g+! z!TN}ONSi&e<&Xct#z*CFEUY^sUT0P%j(Gh0fsV@Oce2)Y#B6e+Rlk7B zjDT3!$OnOa;KFmcS^Vy;SO8aZ!zq=Zi)W0(ZgZhP91MuX1lHH1B$dxJ>`WIGIa>Tu zoPZt(lf7?8CA3AlkbqrTDF#~|HvO3F0A-8s&1(xt)n->&7D@IjNc<2ZBmkHMdAoDcc%rBVx3k(w@g;sfn{V zN6?8cz}@c@@S&CN9`dr577OA!B7^nF%onHHI61*`@H#@w5$X%wGsB4!=C*zfGymS^ zifX_~+P0_aHF?D~&sZB}2FADBnx{X88-kFBn2c|qKDsGol9_&(#9tt5&QRDL6)>3W02kot%hV1jX^V&f<6d-7(rzxYm0 zm0fM1pr7uplizpf3$q534qH39q96_D2vk?HVLqUq=LPa*<2wa9|1tO@F`{Sk*erBB znJ3Isl*Ie6mW)nYH$=eEz?e0wZbRkxS1)PF$DKFXD3pt3`_twwypRw7bIll}8oD#JZ zOJzI8nHs1c_?Ucbz;5CB_@9|h12PG0BKj>MUg)rC0P;DcrXr7 zF*ZT=1XIm$mAT7n$->KGY0PuZ&&ejA#C>a`Gs+#v(ZbtBXFVi%zP1^{Y&ze+#;>n% zU5mThq-R&t?gM@O@g4m>C9?CfGSXZ?+kyfr)rB(JB(>t@Z zT;2Mvx>xrZ=NZf+H#f?9Tf5A@F>YChZ9>mlAD7TEhSH)0iS;K@8kW- zBZpTa1WhcySpL=v@wKKb&MwVIZo6YLJI3ULhCQYCA0Ec2T=BIUJc&tTCX*@g?TuDj zW@*h?tW&V^u9JAP`FxTD(e7MoF!7K5UrZ;Cm`YY|Sm~fVy}4X9hMl_(RPXg56EB}m zayO=M@rm%=?F2_I8Tn}Z*EQEl+HP5HI%=b9GD(HyQmm*xrri%-u;P#2xv6eU*9-NFBx}91Xrm?DwyNC4H z9NQZ%ZPiIEnA#3qfALk(U6U}gxHHK+63n+MA7RW{87aV2(sE%W2x#LHv}5H8U;erSkM7SWr1raXHIaH!r z5Y>XH7I;%plm$^1gze{xxTA + + + + 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 + + + + {6B1A933E-71B8-4C1F-9E79-02D98830E671} + Win32Proj + text_inline_styling + 10.0 + text_inline_styling + + + + 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\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\text + 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 4d9486e43..7ccb1b704 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -341,6 +341,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_input_gestures_testbed EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_render_texture", "examples\core_render_texture.vcxproj", "{6B1A933E-71B8-4C1F-9E79-02D98830E671}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_inline_styling", "examples\text_inline_styling.vcxproj", "{6B1A933E-71B8-4C1F-9E79-02D98830E671}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug.DLL|ARM64 = Debug.DLL|ARM64 @@ -4195,6 +4197,30 @@ Global {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x64.Build.0 = Release|x64 {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x86.ActiveCfg = Release|Win32 {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x86.Build.0 = Release|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|ARM64.Build.0 = Debug.DLL|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|ARM64.Build.0 = Debug|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x64.ActiveCfg = Debug|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x64.Build.0 = Debug|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x86.ActiveCfg = Debug|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x86.Build.0 = Debug|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|ARM64.ActiveCfg = Release.DLL|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|ARM64.Build.0 = Release.DLL|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|ARM64.ActiveCfg = Release|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|ARM64.Build.0 = Release|ARM64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x64.ActiveCfg = Release|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x64.Build.0 = Release|x64 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x86.ActiveCfg = Release|Win32 + {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -4367,6 +4393,7 @@ Global {6777EC3C-077C-42FC-B4AD-B799CE55CCE4} = {8D3C83B7-F1E0-4C2E-9E34-EE5F6AB2502A} {A61DAD9C-271C-4E95-81AA-DB4CD58564D4} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} {6B1A933E-71B8-4C1F-9E79-02D98830E671} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} + {6B1A933E-71B8-4C1F-9E79-02D98830E671} = {8D3C83B7-F1E0-4C2E-9E34-EE5F6AB2502A} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {E926C768-6307-4423-A1EC-57E95B1FAB29} From 2550a45821dfedf29f23d3a0bfa04960d9dcc868 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 10 Sep 2025 18:31:52 +0200 Subject: [PATCH 132/190] Update core_render_texture.c --- examples/core/core_render_texture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/core/core_render_texture.c b/examples/core/core_render_texture.c index f08d3afe0..a48982b3d 100644 --- a/examples/core/core_render_texture.c +++ b/examples/core/core_render_texture.c @@ -9,7 +9,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 @raysan5 (@ Santamaria") +* Copyright (c) 2025 Ramon Santamaria (@raysan5) * ********************************************************************************************/ From 8a1468c0c7db17307fb8248fafd7d785e0d26d65 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 10 Sep 2025 21:02:26 +0200 Subject: [PATCH 133/190] Update examples_report.md --- tools/rexm/examples_report.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/rexm/examples_report.md b/tools/rexm/examples_report.md index b3aac08b9..2c1555049 100644 --- a/tools/rexm/examples_report.md +++ b/tools/rexm/examples_report.md @@ -55,6 +55,7 @@ Example elements validated: | core_random_sequence | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_automation_events | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_high_dpi | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| core_render_texture | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_basic_shapes | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_bouncing_ball | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_colors_palette | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -114,6 +115,7 @@ Example elements validated: | text_unicode_ranges | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_3d_drawing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | text_codepoints_loading | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| text_inline_styling | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_animation_playing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_billboard_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | models_box_collisions | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | From 5a54fc12a25a451a3db2c1abd0cd3d2bb45231e3 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 10 Sep 2025 21:03:06 +0200 Subject: [PATCH 134/190] REVIEWED: Prioritize `calloc()` calls than `malloc()` on some cases --- src/platforms/rcore_desktop_glfw.c | 6 +++--- src/rcore.c | 4 ++-- src/rlgl.h | 24 ++++++++++++------------ src/utils.c | 4 ++-- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/platforms/rcore_desktop_glfw.c b/src/platforms/rcore_desktop_glfw.c index 9d1f64771..6cf5ffb84 100644 --- a/src/platforms/rcore_desktop_glfw.c +++ b/src/platforms/rcore_desktop_glfw.c @@ -148,8 +148,8 @@ static void CursorEnterCallback(GLFWwindow *window, int enter); static void JoystickCallback(int jid, int event); // GLFW3 Joystick Connected/Disconnected Callback // Wrappers used by glfwInitAllocator -static void *AllocateWrapper(size_t size, void *user); // GLFW3 GLFWallocatefun, wrapps around RL_MALLOC macro -static void *ReallocateWrapper(void *block, size_t size, void *user); // GLFW3 GLFWreallocatefun, wrapps around RL_MALLOC macro +static void *AllocateWrapper(size_t size, void *user); // GLFW3 GLFWallocatefun, wrapps around RL_CALLOC macro +static void *ReallocateWrapper(void *block, size_t size, void *user); // GLFW3 GLFWreallocatefun, wrapps around RL_REALLOC macro static void DeallocateWrapper(void *block, void *user); // GLFW3 GLFWdeallocatefun, wraps around RL_FREE macro //---------------------------------------------------------------------------------- @@ -1342,7 +1342,7 @@ static void SetDimensionsFromMonitor(GLFWmonitor *monitor) static void *AllocateWrapper(size_t size, void *user) { (void)user; - return RL_MALLOC(size); + return RL_CALLOC(size, 1); } static void *ReallocateWrapper(void *block, size_t size, void *user) { diff --git a/src/rcore.c b/src/rcore.c index 8dd9fd82c..3455ff8c3 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -2318,8 +2318,8 @@ FilePathList LoadDirectoryFiles(const char *dirPath) // Memory allocation for dirFileCount files.capacity = fileCounter; - files.paths = (char **)RL_MALLOC(files.capacity*sizeof(char *)); - for (unsigned int i = 0; i < files.capacity; i++) files.paths[i] = (char *)RL_MALLOC(MAX_FILEPATH_LENGTH*sizeof(char)); + files.paths = (char **)RL_CALLOC(files.capacity, sizeof(char *)); + for (unsigned int i = 0; i < files.capacity; i++) files.paths[i] = (char *)RL_CALLOC(MAX_FILEPATH_LENGTH, sizeof(char)); closedir(dir); diff --git a/src/rlgl.h b/src/rlgl.h index 884110c56..ec581fcdc 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -889,7 +889,7 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #endif #endif -#include // Required for: malloc(), free() +#include // Required for: calloc(), free() #include // Required for: strcmp(), strlen() [Used in rlglInit(), on extensions loading] #include // Required for: sqrtf(), sinf(), cosf(), floor(), log() @@ -2429,7 +2429,7 @@ void rlLoadExtensions(void *loader) // Get supported extensions list GLint numExt = 0; - const char **extList = (const char **)RL_MALLOC(512*sizeof(const char *)); // Allocate 512 strings pointers (2 KB) + const char **extList = (const char **)RL_CALLOC(512, sizeof(const char *)); // Allocate 512 strings pointers (2 KB) const char *extensions = (const char *)glGetString(GL_EXTENSIONS); // One big const string // NOTE: We have to duplicate string because glGetString() returns a const string @@ -2741,21 +2741,21 @@ rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) // Initialize CPU (RAM) vertex buffers (position, texcoord, color data and indexes) //-------------------------------------------------------------------------------------------- - batch.vertexBuffer = (rlVertexBuffer *)RL_MALLOC(numBuffers*sizeof(rlVertexBuffer)); + batch.vertexBuffer = (rlVertexBuffer *)RL_CALLOC(numBuffers, sizeof(rlVertexBuffer)); for (int i = 0; i < numBuffers; i++) { batch.vertexBuffer[i].elementCount = bufferElements; - batch.vertexBuffer[i].vertices = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad - batch.vertexBuffer[i].texcoords = (float *)RL_MALLOC(bufferElements*2*4*sizeof(float)); // 2 float by texcoord, 4 texcoord by quad - batch.vertexBuffer[i].normals = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad - batch.vertexBuffer[i].colors = (unsigned char *)RL_MALLOC(bufferElements*4*4*sizeof(unsigned char)); // 4 float by color, 4 colors by quad + batch.vertexBuffer[i].vertices = (float *)RL_CALLOC(bufferElements*3*4, sizeof(float)); // 3 float by vertex, 4 vertex by quad + batch.vertexBuffer[i].texcoords = (float *)RL_CALLOC(bufferElements*2*4, sizeof(float)); // 2 float by texcoord, 4 texcoord by quad + batch.vertexBuffer[i].normals = (float *)RL_CALLOC(bufferElements*3*4, sizeof(float)); // 3 float by vertex, 4 vertex by quad + batch.vertexBuffer[i].colors = (unsigned char *)RL_CALLOC(bufferElements*4*4, sizeof(unsigned char)); // 4 float by color, 4 colors by quad #if defined(GRAPHICS_API_OPENGL_33) - batch.vertexBuffer[i].indices = (unsigned int *)RL_MALLOC(bufferElements*6*sizeof(unsigned int)); // 6 int by quad (indices) + batch.vertexBuffer[i].indices = (unsigned int *)RL_CALLOC(bufferElements*6, sizeof(unsigned int)); // 6 int by quad (indices) #endif #if defined(GRAPHICS_API_OPENGL_ES2) - batch.vertexBuffer[i].indices = (unsigned short *)RL_MALLOC(bufferElements*6*sizeof(unsigned short)); // 6 int by quad (indices) + batch.vertexBuffer[i].indices = (unsigned short *)RL_CALLOC(bufferElements*6, sizeof(unsigned short)); // 6 int by quad (indices) #endif for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].vertices[j] = 0.0f; @@ -2843,7 +2843,7 @@ rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) // Init draw calls tracking system //-------------------------------------------------------------------------------------------- - batch.draws = (rlDrawCall *)RL_MALLOC(RL_DEFAULT_BATCH_DRAWCALLS*sizeof(rlDrawCall)); + batch.draws = (rlDrawCall *)RL_CALLOC(RL_DEFAULT_BATCH_DRAWCALLS, sizeof(rlDrawCall)); for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) { @@ -3649,7 +3649,7 @@ void *rlReadTexturePixels(unsigned int id, int width, int height, int format) if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) { - pixels = RL_MALLOC(size); + pixels = RL_CALLOC(size, 1); glGetTexImage(GL_TEXTURE_2D, 0, glFormat, glType, pixels); } else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Data retrieval not suported for pixel format (%i)", id, format); @@ -3674,7 +3674,7 @@ void *rlReadTexturePixels(unsigned int id, int width, int height, int format) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, id, 0); // We read data as RGBA because FBO texture is configured as RGBA, despite binding another texture format - pixels = (unsigned char *)RL_MALLOC(rlGetPixelDataSize(width, height, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8)); + pixels = RL_CALLOC(rlGetPixelDataSize(width, height, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8), 1); glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, pixels); glBindFramebuffer(GL_FRAMEBUFFER, 0); diff --git a/src/utils.c b/src/utils.c index 971ed5b6e..5ccbc4fa9 100644 --- a/src/utils.c +++ b/src/utils.c @@ -203,7 +203,7 @@ unsigned char *LoadFileData(const char *fileName, int *dataSize) if (size > 0) { - data = (unsigned char *)RL_MALLOC(size*sizeof(unsigned char)); + data = (unsigned char *)RL_CALLOC(size, sizeof(unsigned char)); if (data != NULL) { @@ -366,7 +366,7 @@ char *LoadFileText(const char *fileName) if (size > 0) { - text = (char *)RL_MALLOC((size + 1)*sizeof(char)); + text = (char *)RL_CALLOC(size + 1, sizeof(char)); if (text != NULL) { From d0c39db6c2c996c716ab97e7e486f6e6ac920162 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 12 Sep 2025 13:02:13 +0200 Subject: [PATCH 135/190] Update rlgl.h --- src/rlgl.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/rlgl.h b/src/rlgl.h index ec581fcdc..9038e2a48 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -870,6 +870,7 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #elif defined(GRAPHICS_API_OPENGL_ES2) // NOTE: OpenGL ES 2.0 can be enabled on Desktop platforms, // in that case, functions are loaded from a custom glad for OpenGL ES 2.0 + // TODO: OpenGL ES 2.0 support shouldn't be platform-dependant, neither require GLAD #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) #define GLAD_GLES2_IMPLEMENTATION #include "external/glad_gles2.h" From 8d3a4b8dd5483c96b04c603569a3c7c0c406c8bc Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 12 Sep 2025 13:03:28 +0200 Subject: [PATCH 136/190] REVIEWED: Renamed `PLATFORM_DESKTOP_SDL3` to `USING_VERSION_SDL3` #5175 Avoid using a new platform flag to address one platform version --- src/platforms/rcore_desktop_sdl.c | 52 +++++++++++++++---------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 33788d720..f07554762 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -85,8 +85,8 @@ #endif #if ((defined(SDL_MAJOR_VERSION) && (SDL_MAJOR_VERSION == 3)) && (defined(SDL_MINOR_VERSION) && (SDL_MINOR_VERSION >= 1))) - #ifndef PLATFORM_DESKTOP_SDL3 - #define PLATFORM_DESKTOP_SDL3 + #ifndef USING_VERSION_SDL3 + #define USING_VERSION_SDL3 #endif #endif @@ -255,7 +255,7 @@ static const int CursorsLUT[] = { }; // SDL3 Migration Layer made to avoid 'ifdefs' inside functions when we can -#if defined(PLATFORM_DESKTOP_SDL3) +#if defined(USING_VERSION_SDL3) // SDL3 Migration: // SDL_WINDOW_FULLSCREEN_DESKTOP has been removed, @@ -429,7 +429,7 @@ void *SDL_GetClipboardData(const char *mime_type, size_t *size) return NULL; } -#endif // PLATFORM_DESKTOP_SDL3 +#endif // USING_VERSION_SDL3 //---------------------------------------------------------------------------------- // Module Internal Functions Declaration @@ -463,7 +463,7 @@ void ToggleFullscreen(void) const int monitor = SDL_GetWindowDisplayIndex(platform.window); const int monitorCount = SDL_GetNumVideoDisplays(); -#if defined(PLATFORM_DESKTOP_SDL3) // SDL3 Migration: Monitor is an id instead of index now, returns 0 on failure +#if defined(USING_VERSION_SDL3) // SDL3 Migration: Monitor is an id instead of index now, returns 0 on failure if ((monitor > 0) && (monitor <= monitorCount)) #else if ((monitor >= 0) && (monitor < monitorCount)) @@ -491,7 +491,7 @@ void ToggleBorderlessWindowed(void) const int monitor = SDL_GetWindowDisplayIndex(platform.window); const int monitorCount = SDL_GetNumVideoDisplays(); -#if defined(PLATFORM_DESKTOP_SDL3) // SDL3 Migration: Monitor is an id instead of index now, returns 0 on failure +#if defined(USING_VERSION_SDL3) // SDL3 Migration: Monitor is an id instead of index now, returns 0 on failure if ((monitor > 0) && (monitor <= monitorCount)) #else if ((monitor >= 0) && (monitor < monitorCount)) @@ -548,7 +548,7 @@ void SetWindowState(unsigned int flags) const int monitor = SDL_GetWindowDisplayIndex(platform.window); const int monitorCount = SDL_GetNumVideoDisplays(); - #if defined(PLATFORM_DESKTOP_SDL3) // SDL3 Migration: Monitor is an id instead of index now, returns 0 on failure + #if defined(USING_VERSION_SDL3) // SDL3 Migration: Monitor is an id instead of index now, returns 0 on failure if ((monitor > 0) && (monitor <= monitorCount)) #else if ((monitor >= 0) && (monitor < monitorCount)) @@ -612,7 +612,7 @@ void SetWindowState(unsigned int flags) const int monitor = SDL_GetWindowDisplayIndex(platform.window); const int monitorCount = SDL_GetNumVideoDisplays(); - #if defined(PLATFORM_DESKTOP_SDL3) // SDL3 Migration: Monitor is an id instead of index now, returns 0 on failure + #if defined(USING_VERSION_SDL3) // SDL3 Migration: Monitor is an id instead of index now, returns 0 on failure if ((monitor > 0) && (monitor <= monitorCount)) #else if ((monitor >= 0) && (monitor < monitorCount)) @@ -850,7 +850,7 @@ void SetWindowMonitor(int monitor) const int screenHeight = CORE.Window.screen.height; SDL_Rect usableBounds; - #if defined(PLATFORM_DESKTOP_SDL3) // Different style for success checking + #if defined(USING_VERSION_SDL3) // Different style for success checking if (SDL_GetDisplayUsableBounds(monitor, &usableBounds)) #else if (SDL_GetDisplayUsableBounds(monitor, &usableBounds) == 0) @@ -966,7 +966,7 @@ Vector2 GetMonitorPosition(int monitor) { SDL_Rect displayBounds; - #if defined(PLATFORM_DESKTOP_SDL3) + #if defined(USING_VERSION_SDL3) if (SDL_GetDisplayUsableBounds(monitor, &displayBounds)) #else if (SDL_GetDisplayUsableBounds(monitor, &displayBounds) == 0) @@ -1098,7 +1098,7 @@ Vector2 GetWindowScaleDPI(void) { Vector2 scale = { 1.0f, 1.0f }; -#ifndef PLATFORM_DESKTOP_SDL3 +#ifndef USING_VERSION_SDL3 // NOTE: SDL_GetWindowDisplayScale was only added on SDL3 // see https://wiki.libsdl.org/SDL3/SDL_GetWindowDisplayScale // TODO: Implement the window scale factor calculation manually @@ -1184,7 +1184,7 @@ Image GetClipboardImage(void) // Show mouse cursor void ShowCursor(void) { -#if defined(PLATFORM_DESKTOP_SDL3) +#if defined(USING_VERSION_SDL3) SDL_ShowCursor(); #else SDL_ShowCursor(SDL_ENABLE); @@ -1195,7 +1195,7 @@ void ShowCursor(void) // Hides mouse cursor void HideCursor(void) { -#if defined(PLATFORM_DESKTOP_SDL3) +#if defined(USING_VERSION_SDL3) SDL_HideCursor(); #else SDL_ShowCursor(SDL_DISABLE); @@ -1208,7 +1208,7 @@ void EnableCursor(void) { SDL_SetRelativeMouseMode(SDL_FALSE); -#if defined(PLATFORM_DESKTOP_SDL3) +#if defined(USING_VERSION_SDL3) // SDL_ShowCursor() has been split into three functions: SDL_ShowCursor(), SDL_HideCursor(), and SDL_CursorVisible() SDL_ShowCursor(); #else @@ -1309,7 +1309,7 @@ const char *GetKeyName(int key) static void UpdateTouchPointsSDL(SDL_TouchFingerEvent event) { -#if defined(PLATFORM_DESKTOP_SDL3) // SDL3 +#if defined(USING_VERSION_SDL3) // SDL3 int count = 0; SDL_Finger **fingers = SDL_GetTouchFingers(event.touchID, &count); CORE.Input.Touch.pointCount = count; @@ -1436,7 +1436,7 @@ void PollInputEvents(void) CORE.Window.dropFilepaths[CORE.Window.dropFileCount] = (char *)RL_CALLOC(MAX_FILEPATH_LENGTH, sizeof(char)); - #if defined(PLATFORM_DESKTOP_SDL3) + #if defined(USING_VERSION_SDL3) // const char *data; /**< The text for SDL_EVENT_DROP_TEXT and the file name for SDL_EVENT_DROP_FILE, NULL for other events */ // Event memory is now managed by SDL, so you should not free the data in SDL_EVENT_DROP_FILE, and if you want to hold onto the text in SDL_EVENT_TEXT_EDITING and SDL_EVENT_TEXT_INPUT events, you should make a copy of it. SDL_TEXTINPUTEVENT_TEXT_SIZE is no longer necessary and has been removed. strcpy(CORE.Window.dropFilepaths[CORE.Window.dropFileCount], event.drop.data); @@ -1451,7 +1451,7 @@ void PollInputEvents(void) { CORE.Window.dropFilepaths[CORE.Window.dropFileCount] = (char *)RL_CALLOC(MAX_FILEPATH_LENGTH, sizeof(char)); - #if defined(PLATFORM_DESKTOP_SDL3) + #if defined(USING_VERSION_SDL3) strcpy(CORE.Window.dropFilepaths[CORE.Window.dropFileCount], event.drop.data); #else strcpy(CORE.Window.dropFilepaths[CORE.Window.dropFileCount], event.drop.file); @@ -1466,7 +1466,7 @@ void PollInputEvents(void) // Window events are also polled (Minimized, maximized, close...) - #ifndef PLATFORM_DESKTOP_SDL3 + #ifndef USING_VERSION_SDL3 // SDL3 states: // The SDL_WINDOWEVENT_* events have been moved to top level events, and SDL_WINDOWEVENT has been removed // In general, handling this change just means checking for the individual events instead of first checking for SDL_WINDOWEVENT @@ -1497,7 +1497,7 @@ void PollInputEvents(void) CORE.Window.currentFbo.height = height; CORE.Window.resizedLastFrame = true; - #ifndef PLATFORM_DESKTOP_SDL3 + #ifndef USING_VERSION_SDL3 // Manually detect if the window was maximized (due to SDL2 restore being unreliable on some platforms) to remove the FLAG_WINDOW_MAXIMIZED accordingly if ((CORE.Window.flags & FLAG_WINDOW_MAXIMIZED) > 0) { @@ -1538,7 +1538,7 @@ void PollInputEvents(void) if ((CORE.Window.flags & FLAG_WINDOW_MINIMIZED) > 0) CORE.Window.flags &= ~FLAG_WINDOW_MINIMIZED; } - #ifdef PLATFORM_DESKTOP_SDL3 + #ifdef USING_VERSION_SDL3 if ((SDL_GetWindowFlags(platform.window) & SDL_WINDOW_MAXIMIZED) == 0) { if ((CORE.Window.flags & SDL_WINDOW_MAXIMIZED) > 0) CORE.Window.flags &= ~SDL_WINDOW_MAXIMIZED; @@ -1564,7 +1564,7 @@ void PollInputEvents(void) if ((CORE.Window.flags & FLAG_WINDOW_UNFOCUSED) == 0) CORE.Window.flags |= FLAG_WINDOW_UNFOCUSED; } break; - #ifndef PLATFORM_DESKTOP_SDL3 + #ifndef USING_VERSION_SDL3 default: break; } } break; @@ -1573,7 +1573,7 @@ void PollInputEvents(void) // Keyboard events case SDL_KEYDOWN: { - #if defined(PLATFORM_DESKTOP_SDL3) + #if defined(USING_VERSION_SDL3) // SDL3 Migration: The following structures have been removed: * SDL_Keysym KeyboardKey key = ConvertScancodeToKey(event.key.scancode); #else @@ -1604,7 +1604,7 @@ void PollInputEvents(void) case SDL_KEYUP: { - #if defined(PLATFORM_DESKTOP_SDL3) + #if defined(USING_VERSION_SDL3) KeyboardKey key = ConvertScancodeToKey(event.key.scancode); #else KeyboardKey key = ConvertScancodeToKey(event.key.keysym.scancode); @@ -1620,7 +1620,7 @@ void PollInputEvents(void) if (CORE.Input.Keyboard.charPressedQueueCount < MAX_CHAR_PRESSED_QUEUE) { // Add character (codepoint) to the queue - #if defined(PLATFORM_DESKTOP_SDL3) + #if defined(USING_VERSION_SDL3) size_t textLen = strlen(event.text.text); unsigned int codepoint = (unsigned int)SDL_StepUTF8(&event.text.text, &textLen); #else @@ -1991,7 +1991,7 @@ int InitPlatform(void) } // Init window -#if defined(PLATFORM_DESKTOP_SDL3) +#if defined(USING_VERSION_SDL3) platform.window = SDL_CreateWindow(CORE.Window.title, CORE.Window.screen.width, CORE.Window.screen.height, flags); #else platform.window = SDL_CreateWindow(CORE.Window.title, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, CORE.Window.screen.width, CORE.Window.screen.height, flags); @@ -2085,7 +2085,7 @@ int InitPlatform(void) CORE.Storage.basePath = SDL_GetBasePath(); // Alternative: GetWorkingDirectory(); //---------------------------------------------------------------------------- -#if defined(PLATFORM_DESKTOP_SDL3) +#if defined(USING_VERSION_SDL3) TRACELOG(LOG_INFO, "PLATFORM: DESKTOP (SDL3): Initialized successfully"); #else TRACELOG(LOG_INFO, "PLATFORM: DESKTOP (SDL2): Initialized successfully"); From 7db5f56e814c7e91948580e61a9610ff417c3cb1 Mon Sep 17 00:00:00 2001 From: Bruno Cabral Date: Fri, 12 Sep 2025 04:07:46 -0700 Subject: [PATCH 137/190] [cmake] export automatically raylib definitions and compile/link options (#5179) --- cmake/InstallConfigurations.cmake | 11 +++- cmake/raylib-config.cmake | 83 +------------------------------ src/CMakeLists.txt | 2 +- 3 files changed, 13 insertions(+), 83 deletions(-) diff --git a/cmake/InstallConfigurations.cmake b/cmake/InstallConfigurations.cmake index 6c606e565..84caea2c0 100644 --- a/cmake/InstallConfigurations.cmake +++ b/cmake/InstallConfigurations.cmake @@ -19,9 +19,18 @@ join_paths(libdir_for_pc_file "\${exec_prefix}" "${CMAKE_INSTALL_LIBDIR}") join_paths(includedir_for_pc_file "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}") configure_file(../raylib.pc.in raylib.pc @ONLY) configure_file(../cmake/raylib-config-version.cmake raylib-config-version.cmake @ONLY) +configure_file(../cmake/raylib-config.cmake raylib-config.cmake @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/raylib.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") install(FILES ${CMAKE_CURRENT_BINARY_DIR}/raylib-config-version.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/raylib") -install(FILES ${PROJECT_SOURCE_DIR}/../cmake/raylib-config.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/raylib") +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/raylib-config-version.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/raylib-config.cmake" + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/raylib +) +install(EXPORT raylib-targets + FILE raylib-targets.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/raylib +) # populates raylib_{FOUND, INCLUDE_DIRS, LIBRARIES, LDFLAGS, DEFINITIONS} include(PopulateConfigVariablesLocally) diff --git a/cmake/raylib-config.cmake b/cmake/raylib-config.cmake index 8906ae4d4..f34087ccd 100644 --- a/cmake/raylib-config.cmake +++ b/cmake/raylib-config.cmake @@ -1,81 +1,2 @@ -# - Try to find raylib -# Options: -# raylib_USE_STATIC_LIBS - ON by default -# raylib_VERBOSE - OFF by default -# Once done, this defines a raylib target that can be passed to -# target_link_libraries as well as following variables: -# -# raylib_FOUND - System has raylib installed -# raylib_INCLUDE_DIRS - The include directories for the raylib header(s) -# raylib_LIBRARIES - The libraries needed to use raylib -# raylib_LDFLAGS - The linker flags needed with raylib -# raylib_DEFINITIONS - Compiler switches required for using raylib - -option(raylib_USE_STATIC_LIBS "Use static libs" ON) -option(raylib_VERBOSE "Show raylib verbose messages" OFF) - -if (NOT TARGET raylib) - set(XPREFIX PC_RAYLIB) - - find_package(PkgConfig QUIET) - pkg_check_modules(${XPREFIX} QUIET raylib) - - if (raylib_USE_STATIC_LIBS) - set(XPREFIX ${XPREFIX}_STATIC) - endif() - - set(raylib_DEFINITIONS ${${XPREFIX}_CFLAGS}) - - find_path(raylib_INCLUDE_DIR - NAMES raylib.h - HINTS ${${XPREFIX}_INCLUDE_DIRS} ${raylib_DIR}/../../../include/ - ) - - - if (raylib_USE_STATIC_LIBS) - set(RAYLIB_NAMES libraylib.a raylib.lib) - else () - set(RAYLIB_NAMES raylib) - endif () - - find_library(raylib_LIBRARY - NAMES ${RAYLIB_NAMES} - HINTS ${${XPREFIX}_LIBRARY_DIRS} ${raylib_DIR}/../../ - ) - - set(raylib_LIBRARIES ${raylib_LIBRARY}) - set(raylib_INCLUDE_DIRS ${raylib_INCLUDE_DIR}) - set(raylib_LDFLAGS ${${XPREFIX}_LDFLAGS}) - - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(raylib DEFAULT_MSG - raylib_LIBRARY - raylib_INCLUDE_DIR - ) - - mark_as_advanced(raylib_LIBRARY raylib_INCLUDE_DIR) - - if (raylib_USE_STATIC_LIBS) - add_library(raylib STATIC IMPORTED GLOBAL) - else() - add_library(raylib SHARED IMPORTED GLOBAL) - endif() - string (REPLACE ";" " " raylib_LDFLAGS "${raylib_LDFLAGS}") - - set_target_properties(raylib - PROPERTIES - IMPORTED_LOCATION "${raylib_LIBRARIES}" - IMPORTED_IMPLIB "${raylib_LIBRARIES}" - INTERFACE_INCLUDE_DIRECTORIES "${raylib_INCLUDE_DIRS}" - INTERFACE_LINK_LIBRARIES "${raylib_LDFLAGS}" - INTERFACE_COMPILE_OPTIONS "${raylib_DEFINITIONS}" - ) - - if (raylib_VERBOSE) - message(STATUS "raylib_FOUND: ${raylib_FOUND}") - message(STATUS "raylib_INCLUDE_DIRS: ${raylib_INCLUDE_DIRS}") - message(STATUS "raylib_LIBRARIES: ${raylib_LIBRARIES}") - message(STATUS "raylib_LDFLAGS: ${raylib_LDFLAGS}") - message(STATUS "raylib_DEFINITIONS: ${raylib_DEFINITIONS}") - endif() -endif() +@PACKAGE_INIT@ +include("${CMAKE_CURRENT_LIST_DIR}/raylib-targets.cmake") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4ce6cb81a..dc8ca3a9b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -91,7 +91,7 @@ if (BUILD_SHARED_LIBS) set_property(TARGET raylib PROPERTY C_VISIBILITY_PRESET hidden) endif () -target_link_libraries(raylib "${LIBS_PRIVATE}") +target_link_libraries(raylib PRIVATE $) # Sets some compile time definitions for the pre-processor # If CUSTOMIZE_BUILD option is on you will not use config.h by default From 71321d179b9742253169c7d17feaa69e37e64ee2 Mon Sep 17 00:00:00 2001 From: Bruno Cabral Date: Fri, 12 Sep 2025 12:42:50 -0700 Subject: [PATCH 138/190] [build][cmake] Added emscripten build options (#5180) * [cmake] export automatically raylib definitions and compile/link options * [cmake] pass emscripten options to consumer project --- CMakeLists.txt | 2 +- src/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f7597694c..ee095b844 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,7 +29,7 @@ include(CompilerFlags) # Registers build options that are exposed to cmake include(CMakeOptions.txt) -if (UNIX AND NOT APPLE AND NOT "${PLATFORM}" MATCHES "DRM") +if (UNIX AND NOT APPLE AND NOT "${PLATFORM}" MATCHES "DRM" AND NOT "${PLATFORM}" MATCHES "Web") if (NOT GLFW_BUILD_WAYLAND AND NOT GLFW_BUILD_X11) MESSAGE(FATAL_ERROR "Cannot disable both Wayland and X11") endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index dc8ca3a9b..4b3f87016 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -69,7 +69,7 @@ else() endif() if (${PLATFORM} MATCHES "Web") - target_link_options(raylib PUBLIC "-sUSE_GLFW=3") + target_link_options(raylib PUBLIC "-sUSE_GLFW=3" -sEXPORTED_RUNTIME_METHODS=ccall -sASYNCIFY) if(${GRAPHICS} MATCHES "GRAPHICS_API_OPENGL_ES3") target_link_options(raylib PUBLIC "-sMIN_WEBGL_VERSION=2") target_link_options(raylib PUBLIC "-sMAX_WEBGL_VERSION=2") From 28ce99b5398326260c35f5af8b63002a2f0044b7 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 12 Sep 2025 21:44:56 +0200 Subject: [PATCH 139/190] Update core_3d_camera_fps.c --- examples/core/core_3d_camera_fps.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/core/core_3d_camera_fps.c b/examples/core/core_3d_camera_fps.c index 0b1a5bdc5..c3c779431 100644 --- a/examples/core/core_3d_camera_fps.c +++ b/examples/core/core_3d_camera_fps.c @@ -261,8 +261,7 @@ static void UpdateCameraFPS(Camera *camera) Vector3 right = Vector3Normalize(Vector3CrossProduct(yaw, up)); // Rotate view vector around right axis - float pitchAngle = -lookRotation.y - - lean.y; + float pitchAngle = -lookRotation.y - lean.y; pitchAngle = Clamp(pitchAngle, -PI/2 + 0.0001f, PI/2 - 0.0001f); // Clamp angle so it doesn't go past straight up or straight down Vector3 pitch = Vector3RotateByAxisAngle(yaw, right, pitchAngle); From 6cf38b62928830c4fd42422b41fdf855070eb21a Mon Sep 17 00:00:00 2001 From: Bruno Cabral Date: Sat, 13 Sep 2025 01:17:17 -0700 Subject: [PATCH 140/190] fix SDL3 gamepad detection (#5176) --- src/platforms/rcore_desktop_sdl.c | 78 ++++++++++++++++++++----------- 1 file changed, 50 insertions(+), 28 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index f07554762..a0ddac075 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -98,7 +98,7 @@ typedef struct { SDL_GLContext glContext; SDL_GameController *gamepad[MAX_GAMEPADS]; - SDL_JoystickID gamepadId[MAX_GAMEPADS]; // Joystick instance ids + SDL_JoystickID gamepadId[MAX_GAMEPADS]; // Joystick instance ids, they do not start from 0 SDL_Cursor *cursor; bool cursorRelative; } PlatformData; @@ -1706,19 +1706,34 @@ void PollInputEvents(void) { int jid = event.jdevice.which; // Joystick device index - if (CORE.Input.Gamepad.ready[jid] && (jid < MAX_GAMEPADS)) + // check if already added at InitPlatform + for (int i = 0; i < MAX_GAMEPADS; ++i) { - platform.gamepad[jid] = SDL_GameControllerOpen(jid); - platform.gamepadId[jid] = SDL_JoystickInstanceID(SDL_GameControllerGetJoystick(platform.gamepad[jid])); - - if (platform.gamepad[jid]) + if (jid == platform.gamepadId[i]) { - CORE.Input.Gamepad.ready[jid] = true; - CORE.Input.Gamepad.axisCount[jid] = SDL_JoystickNumAxes(SDL_GameControllerGetJoystick(platform.gamepad[jid])); - CORE.Input.Gamepad.axisState[jid][GAMEPAD_AXIS_LEFT_TRIGGER] = -1.0f; - CORE.Input.Gamepad.axisState[jid][GAMEPAD_AXIS_RIGHT_TRIGGER] = -1.0f; - memset(CORE.Input.Gamepad.name[jid], 0, MAX_GAMEPAD_NAME_LENGTH); - strncpy(CORE.Input.Gamepad.name[jid], SDL_GameControllerNameForIndex(jid), MAX_GAMEPAD_NAME_LENGTH - 1); + return; + } + } + + int nextAvailableSlot = 0; + while (nextAvailableSlot < MAX_GAMEPADS && CORE.Input.Gamepad.ready[nextAvailableSlot]) + { + ++nextAvailableSlot; + } + + if ((nextAvailableSlot < MAX_GAMEPADS) && !CORE.Input.Gamepad.ready[nextAvailableSlot]) + { + platform.gamepad[nextAvailableSlot] = SDL_GameControllerOpen(jid); + platform.gamepadId[nextAvailableSlot] = SDL_JoystickInstanceID(SDL_GameControllerGetJoystick(platform.gamepad[nextAvailableSlot])); + + if (platform.gamepad[nextAvailableSlot]) + { + CORE.Input.Gamepad.ready[nextAvailableSlot] = true; + CORE.Input.Gamepad.axisCount[nextAvailableSlot] = SDL_JoystickNumAxes(SDL_GameControllerGetJoystick(platform.gamepad[nextAvailableSlot])); + CORE.Input.Gamepad.axisState[nextAvailableSlot][GAMEPAD_AXIS_LEFT_TRIGGER] = -1.0f; + CORE.Input.Gamepad.axisState[nextAvailableSlot][GAMEPAD_AXIS_RIGHT_TRIGGER] = -1.0f; + memset(CORE.Input.Gamepad.name[nextAvailableSlot], 0, MAX_GAMEPAD_NAME_LENGTH); + strncpy(CORE.Input.Gamepad.name[nextAvailableSlot], SDL_GameControllerNameForIndex(nextAvailableSlot), MAX_GAMEPAD_NAME_LENGTH - 1); } else { @@ -1746,7 +1761,7 @@ void PollInputEvents(void) { int button = -1; - switch (event.jbutton.button) + switch (event.gbutton.button) { case SDL_CONTROLLER_BUTTON_Y: button = GAMEPAD_BUTTON_RIGHT_FACE_UP; break; case SDL_CONTROLLER_BUTTON_B: button = GAMEPAD_BUTTON_RIGHT_FACE_RIGHT; break; @@ -1774,7 +1789,7 @@ void PollInputEvents(void) { for (int i = 0; i < MAX_GAMEPADS; i++) { - if (platform.gamepadId[i] == event.jbutton.which) + if (platform.gamepadId[i] == event.gbutton.which) { CORE.Input.Gamepad.currentButtonState[i][button] = 1; CORE.Input.Gamepad.lastButtonPressed = button; @@ -1787,7 +1802,7 @@ void PollInputEvents(void) { int button = -1; - switch (event.jbutton.button) + switch (event.gbutton.button) { case SDL_CONTROLLER_BUTTON_Y: button = GAMEPAD_BUTTON_RIGHT_FACE_UP; break; case SDL_CONTROLLER_BUTTON_B: button = GAMEPAD_BUTTON_RIGHT_FACE_RIGHT; break; @@ -1815,7 +1830,7 @@ void PollInputEvents(void) { for (int i = 0; i < MAX_GAMEPADS; i++) { - if (platform.gamepadId[i] == event.jbutton.which) + if (platform.gamepadId[i] == event.gbutton.which) { CORE.Input.Gamepad.currentButtonState[i][button] = 0; if (CORE.Input.Gamepad.lastButtonPressed == button) CORE.Input.Gamepad.lastButtonPressed = 0; @@ -2044,21 +2059,28 @@ int InitPlatform(void) platform.gamepadId[i] = -1; // Set all gamepad initial instance ids as invalid to not conflict with instance id zero } - for (int i = 0; (i < SDL_NumJoysticks()) && (i < MAX_GAMEPADS); i++) - { - platform.gamepad[i] = SDL_GameControllerOpen(i); - platform.gamepadId[i] = SDL_JoystickInstanceID(SDL_GameControllerGetJoystick(platform.gamepad[i])); + int numJoysticks = 0; + SDL_JoystickID *joysticks = SDL_GetJoysticks(&numJoysticks); // array of joystick IDs, they do not start from 0 - if (platform.gamepad[i]) + if (joysticks) + { + for (int i = 0; (i < numJoysticks) && (i < MAX_GAMEPADS); i++) { - CORE.Input.Gamepad.ready[i] = true; - CORE.Input.Gamepad.axisCount[i] = SDL_JoystickNumAxes(SDL_GameControllerGetJoystick(platform.gamepad[i])); - CORE.Input.Gamepad.axisState[i][GAMEPAD_AXIS_LEFT_TRIGGER] = -1.0f; - CORE.Input.Gamepad.axisState[i][GAMEPAD_AXIS_RIGHT_TRIGGER] = -1.0f; - strncpy(CORE.Input.Gamepad.name[i], SDL_GameControllerNameForIndex(i), MAX_GAMEPAD_NAME_LENGTH - 1); - CORE.Input.Gamepad.name[i][MAX_GAMEPAD_NAME_LENGTH - 1] = '\0'; + platform.gamepad[i] = SDL_GameControllerOpen(joysticks[i]); + platform.gamepadId[i] = SDL_JoystickInstanceID(SDL_GameControllerGetJoystick(platform.gamepad[i])); + + if (platform.gamepad[i]) + { + CORE.Input.Gamepad.ready[i] = true; + CORE.Input.Gamepad.axisCount[i] = SDL_JoystickNumAxes(SDL_GameControllerGetJoystick(platform.gamepad[i])); + CORE.Input.Gamepad.axisState[i][GAMEPAD_AXIS_LEFT_TRIGGER] = -1.0f; + CORE.Input.Gamepad.axisState[i][GAMEPAD_AXIS_RIGHT_TRIGGER] = -1.0f; + strncpy(CORE.Input.Gamepad.name[i], SDL_GameControllerNameForIndex(i), MAX_GAMEPAD_NAME_LENGTH - 1); + CORE.Input.Gamepad.name[i][MAX_GAMEPAD_NAME_LENGTH - 1] = '\0'; + } + else TRACELOG(LOG_WARNING, "PLATFORM: Unable to open game controller [ERROR: %s]", SDL_GetError()); } - else TRACELOG(LOG_WARNING, "PLATFORM: Unable to open game controller [ERROR: %s]", SDL_GetError()); + SDL_free(joysticks); } // Disable mouse events being interpreted as touch events From bb0c78476c32bca08fd4db515bd33ea3b6dfc1f1 Mon Sep 17 00:00:00 2001 From: Bruno Cabral Date: Sat, 13 Sep 2025 01:19:44 -0700 Subject: [PATCH 141/190] [build][cmake] Fix definition to use SDL3 (#5175) * fix definition to use SDL3 * [cmake] fix definition to use SDL3 * [build][cmake] prefer USING_VERSION_SDL3 over PLATFORM_DESKTOP_SDL3 * [build][cmake] when libs are added externally, consumer needs to import them too --- cmake/LibraryConfigurations.cmake | 8 ++++++-- cmake/raylib-config.cmake | 2 ++ src/CMakeLists.txt | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/cmake/LibraryConfigurations.cmake b/cmake/LibraryConfigurations.cmake index e4655500e..c0a7e3d4b 100644 --- a/cmake/LibraryConfigurations.cmake +++ b/cmake/LibraryConfigurations.cmake @@ -7,6 +7,8 @@ if(POLICY CMP0072) cmake_policy(SET CMP0072 NEW) endif() +set(RAYLIB_DEPENDENCIES "include(CMakeFindDependencyMacro)") + if (${PLATFORM} MATCHES "Desktop") set(PLATFORM_CPP "PLATFORM_DESKTOP") @@ -120,15 +122,17 @@ elseif ("${PLATFORM}" MATCHES "SDL") find_package(SDL3 QUIET) if(SDL3_FOUND) message(STATUS "Found SDL3 via find_package()") + set(LIBS_PUBLIC SDL3::SDL3) + set(RAYLIB_DEPENDENCIES "${RAYLIB_DEPENDENCIES}\nfind_dependency(SDL3 REQUIRED)") set(PLATFORM_CPP "PLATFORM_DESKTOP_SDL") - set(LIBS_PRIVATE SDL3::SDL3) add_compile_definitions(USING_SDL3_PACKAGE) else() # Fallback to SDL2 find_package(SDL2 REQUIRED) message(STATUS "Found SDL2 via find_package()") set(PLATFORM_CPP "PLATFORM_DESKTOP_SDL") - set(LIBS_PRIVATE SDL2::SDL2) + set(LIBS_PUBLIC SDL2::SDL2) + set(RAYLIB_DEPENDENCIES "${RAYLIB_DEPENDENCIES}\nfind_dependency(SDL3 REQUIRED)") add_compile_definitions(USING_SDL2_PACKAGE) endif() endif() diff --git a/cmake/raylib-config.cmake b/cmake/raylib-config.cmake index f34087ccd..16e677513 100644 --- a/cmake/raylib-config.cmake +++ b/cmake/raylib-config.cmake @@ -1,2 +1,4 @@ @PACKAGE_INIT@ +@RAYLIB_DEPENDENCIES@ + include("${CMAKE_CURRENT_LIST_DIR}/raylib-targets.cmake") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4b3f87016..eb37f1a8e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -92,6 +92,7 @@ if (BUILD_SHARED_LIBS) endif () target_link_libraries(raylib PRIVATE $) +target_link_libraries(raylib PUBLIC ${LIBS_PUBLIC}) # Sets some compile time definitions for the pre-processor # If CUSTOMIZE_BUILD option is on you will not use config.h by default From adac5f77707712410def0600f4c06426d2108839 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 13 Sep 2025 10:41:25 +0200 Subject: [PATCH 142/190] REXM: RENAME: example: `shaders_write_depth` --> `shaders_depth_writing` --- examples/Makefile | 2 +- examples/Makefile.Web | 4 +- examples/README.md | 2 +- examples/examples_list.txt | 2 +- examples/shaders/shaders_depth_rendering.c | 56 +- ..._write_depth.c => shaders_depth_writing.c} | 29 +- ...te_depth.png => shaders_depth_writing.png} | Bin ....vcxproj => shaders_depth_writing.vcxproj} | 1136 ++++++++--------- projects/VS2022/raylib.sln | 2 +- 9 files changed, 632 insertions(+), 601 deletions(-) rename examples/shaders/{shaders_write_depth.c => shaders_depth_writing.c} (92%) rename examples/shaders/{shaders_write_depth.png => shaders_depth_writing.png} (100%) rename projects/VS2022/examples/{shaders_write_depth.vcxproj => shaders_depth_writing.vcxproj} (97%) diff --git a/examples/Makefile b/examples/Makefile index 23c976681..68111fa41 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -656,7 +656,7 @@ SHADERS = \ shaders/shaders_texture_tiling \ shaders/shaders_texture_waves \ shaders/shaders_vertex_displacement \ - shaders/shaders_write_depth + shaders/shaders_depth_writing AUDIO = \ audio/audio_mixed_processor \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 0b2fdec0b..79fc04a78 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -656,7 +656,7 @@ SHADERS = \ shaders/shaders_texture_tiling \ shaders/shaders_texture_waves \ shaders/shaders_vertex_displacement \ - shaders/shaders_write_depth + shaders/shaders_depth_writing AUDIO = \ audio/audio_mixed_processor \ @@ -1298,7 +1298,7 @@ shaders/shaders_vertex_displacement: shaders/shaders_vertex_displacement.c --preload-file shaders/resources/shaders/glsl100/vertex_displacement.vs@resources/shaders/glsl100/vertex_displacement.vs \ --preload-file shaders/resources/shaders/glsl100/vertex_displacement.fs@resources/shaders/glsl100/vertex_displacement.fs -shaders/shaders_write_depth: shaders/shaders_write_depth.c +shaders/shaders_depth_writing: shaders/shaders_depth_writing.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file shaders/resources/shaders/glsl100/write_depth.fs@resources/shaders/glsl100/write_depth.fs diff --git a/examples/README.md b/examples/README.md index bc50cfc1d..fd6c9fcf3 100644 --- a/examples/README.md +++ b/examples/README.md @@ -203,7 +203,7 @@ Examples using raylib shaders functionality, including shaders loading, paramete | [shaders_texture_tiling](shaders/shaders_texture_tiling.c) | shaders_texture_tiling | ⭐⭐☆☆ | 4.5 | 4.5 | [Luis Almeida](https://github.com/luis605) | | [shaders_shadowmap_rendering](shaders/shaders_shadowmap_rendering.c) | shaders_shadowmap_rendering | ⭐⭐⭐⭐️ | 5.0 | 5.0 | [TheManTheMythTheGameDev](https://github.com/TheManTheMythTheGameDev) | | [shaders_vertex_displacement](shaders/shaders_vertex_displacement.c) | shaders_vertex_displacement | ⭐⭐⭐☆ | 5.0 | 4.5 | [Alex ZH](https://github.com/ZzzhHe) | -| [shaders_write_depth](shaders/shaders_write_depth.c) | shaders_write_depth | ⭐⭐☆☆ | 4.2 | 4.2 | [Buğra Alptekin Sarı](https://github.com/BugraAlptekinSari) | +| [shaders_depth_writing](shaders/shaders_depth_writing.c) | shaders_depth_writing | ⭐⭐☆☆ | 4.2 | 4.2 | [Buğra Alptekin Sarı](https://github.com/BugraAlptekinSari) | | [shaders_basic_pbr](shaders/shaders_basic_pbr.c) | shaders_basic_pbr | ⭐⭐⭐⭐️ | 5.0 | 5.5 | [Afan OLOVCIC](https://github.com/_DevDad) | | [shaders_lightmap_rendering](shaders/shaders_lightmap_rendering.c) | shaders_lightmap_rendering | ⭐⭐⭐☆ | 4.5 | 4.5 | [Jussi Viitala](https://github.com/nullstare) | | [shaders_rounded_rectangle](shaders/shaders_rounded_rectangle.c) | shaders_rounded_rectangle | ⭐⭐⭐☆ | 5.5 | 5.5 | [Anstro Pleuton](https://github.com/anstropleuton) | diff --git a/examples/examples_list.txt b/examples/examples_list.txt index c76176c86..ecbc3e2cc 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -150,7 +150,7 @@ shaders;shaders_hybrid_rendering;★★★★;4.2;4.2;2022;2025;"Buğra Alptekin shaders;shaders_texture_tiling;★★☆☆;4.5;4.5;2023;2025;"Luis Almeida";@luis605 shaders;shaders_shadowmap_rendering;★★★★;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_depth_writing;★★☆☆;4.2;4.2;2022;2025;"Buğra Alptekin Sarı";@BugraAlptekinSari shaders;shaders_basic_pbr;★★★★;5.0;5.5;2023;2025;"Afan OLOVCIC";@_DevDad shaders;shaders_lightmap_rendering;★★★☆;4.5;4.5;2019;2025;"Jussi Viitala";@nullstare shaders;shaders_rounded_rectangle;★★★☆;5.5;5.5;2025;2025;"Anstro Pleuton";@anstropleuton diff --git a/examples/shaders/shaders_depth_rendering.c b/examples/shaders/shaders_depth_rendering.c index 849aaed8b..0e69dba88 100644 --- a/examples/shaders/shaders_depth_rendering.c +++ b/examples/shaders/shaders_depth_rendering.c @@ -6,7 +6,7 @@ * * Example originally created with raylib 5.6-dev, last time updated with raylib 5.6-dev * -* Example contributed by Luís Almeida (@luis605) +* Example contributed by Luís Almeida (@luis605) 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 @@ -16,6 +16,7 @@ ********************************************************************************************/ #include "raylib.h" + #include "rlgl.h" #if defined(PLATFORM_DESKTOP) @@ -24,7 +25,14 @@ #define GLSL_VERSION 100 #endif -RenderTexture2D LoadRenderTextureWithDepth(int width, int height); +//-------------------------------------------------------------------------------------- +// Module Functions Declaration +//-------------------------------------------------------------------------------------- +// Load custom render texture with depth texture attached +static RenderTexture2D LoadRenderTextureDepthTex(int width, int height); + +// Unload render texture from GPU memory (VRAM) +static void UnloadRenderTextureDepthTex(RenderTexture2D target); //------------------------------------------------------------------------------------ // Program main entry point @@ -38,7 +46,7 @@ int main(void) InitWindow(screenWidth, screenHeight, "raylib [shaders] example - depth rendering"); - // Init camera + // Define the camera to look into our 3d world Camera camera = { 0 }; camera.position = (Vector3){ 4.0f, 1.0f, 5.0f }; camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; @@ -46,8 +54,8 @@ int main(void) camera.fovy = 45.0f; camera.projection = CAMERA_PERSPECTIVE; - // Load an empty render texture with a depth texture - RenderTexture2D target = LoadRenderTextureWithDepth(screenWidth, screenHeight); + // Load render texture with a depth texture attached + RenderTexture2D target = LoadRenderTextureDepthTex(screenWidth, screenHeight); // Load depth shader and get depth texture shader location Shader depthShader = LoadShader(0, TextFormat("resources/shaders/glsl%i/depth.fs", GLSL_VERSION)); @@ -55,7 +63,7 @@ int main(void) int flipTextureLoc = GetShaderLocation(depthShader, "flipY"); SetShaderValue(depthShader, flipTextureLoc, (int[]){ 1 }, SHADER_UNIFORM_INT); // Flip Y texture - // Load models + // Load scene models Model cube = LoadModelFromMesh(GenMeshCube(1.0f, 1.0f, 1.0f)); Model floor = LoadModelFromMesh(GenMeshPlane(20.0f, 20.0f, 1, 1)); @@ -78,12 +86,14 @@ int main(void) ClearBackground(WHITE); BeginMode3D(camera); - DrawModel(cube, (Vector3){ 0.0f, 0.0f, 0.0f }, 3.0f, YELLOW); + DrawModel(cube, (Vector3){ 0.0f, 0.0f, 0.0f }, 3.0f, YELLOW); DrawModel(floor, (Vector3){ 10.0f, 0.0f, 2.0f }, 2.0f, RED); EndMode3D(); EndTextureMode(); + // Draw into screen (main framebuffer) BeginDrawing(); + ClearBackground(RAYWHITE); BeginShaderMode(depthShader); SetShaderValueTexture(depthShader, depthLoc, target.depth); @@ -106,19 +116,24 @@ int main(void) //-------------------------------------------------------------------------------------- UnloadModel(cube); // Unload model UnloadModel(floor); // Unload model - UnloadRenderTexture(target); // Unload render texture + UnloadRenderTextureDepthTex(target); UnloadShader(depthShader); // Unload shader CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- + return 0; } -RenderTexture2D LoadRenderTextureWithDepth(int width, int height) +//-------------------------------------------------------------------------------------- +// Module Functions Definition +//-------------------------------------------------------------------------------------- +// Load custom render texture, create a writable depth texture buffer +static RenderTexture2D LoadRenderTextureDepthTex(int width, int height) { - RenderTexture2D target = {0}; + RenderTexture2D target = { 0 }; - target.id = rlLoadFramebuffer(); // Load an empty framebuffer + target.id = rlLoadFramebuffer(); // Load an empty framebuffer if (target.id > 0) { @@ -131,11 +146,11 @@ RenderTexture2D LoadRenderTextureWithDepth(int width, int height) target.texture.format = PIXELFORMAT_UNCOMPRESSED_R8G8B8A8; target.texture.mipmaps = 1; - // Create depth texture + // Create depth texture buffer (instead of raylib default renderbuffer) target.depth.id = rlLoadTextureDepth(width, height, false); target.depth.width = width; target.depth.height = height; - target.depth.format = 19; //DEPTH_COMPONENT_24BIT? THIS DOESN'T EXIST IN RAYLIB + target.depth.format = 19; // DEPTH_COMPONENT_24BIT: Not defined in raylib target.depth.mipmaps = 1; // Attach color texture and depth texture to FBO @@ -150,4 +165,19 @@ RenderTexture2D LoadRenderTextureWithDepth(int width, int height) else TRACELOG(LOG_WARNING, "FBO: Framebuffer object can not be created"); return target; +} + +// Unload render texture from GPU memory (VRAM) +void UnloadRenderTextureDepthTex(RenderTexture2D target) +{ + if (target.id > 0) + { + // Color texture attached to FBO is deleted + rlUnloadTexture(target.texture.id); + rlUnloadTexture(target.depth.id); + + // NOTE: Depth texture is automatically + // queried and deleted before deleting framebuffer + rlUnloadFramebuffer(target.id); + } } \ No newline at end of file diff --git a/examples/shaders/shaders_write_depth.c b/examples/shaders/shaders_depth_writing.c similarity index 92% rename from examples/shaders/shaders_write_depth.c rename to examples/shaders/shaders_depth_writing.c index 677d0fb03..6934dc2c0 100644 --- a/examples/shaders/shaders_write_depth.c +++ b/examples/shaders/shaders_depth_writing.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [shaders] example - write depth +* raylib [shaders] example - depth writing * * Example complexity rating: [★★☆☆] 2/4 * @@ -20,9 +20,9 @@ #include "rlgl.h" #if defined(PLATFORM_DESKTOP) -#define GLSL_VERSION 330 + #define GLSL_VERSION 330 #else // PLATFORM_ANDROID, PLATFORM_WEB -#define GLSL_VERSION 100 + #define GLSL_VERSION 100 #endif //-------------------------------------------------------------------------------------- @@ -44,13 +44,7 @@ int main(void) const int screenWidth = 800; const int screenHeight = 450; - 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)); - - // Use Customized function to create writable depth texture buffer - RenderTexture2D target = LoadRenderTextureDepthTex(screenWidth, screenHeight); + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - depth writing"); // Define the camera to look into our 3d world Camera camera = { @@ -61,6 +55,12 @@ int main(void) .projection = CAMERA_PERSPECTIVE // Camera projection type }; + // Load custom render texture with writable depth texture buffer + RenderTexture2D target = LoadRenderTextureDepthTex(screenWidth, screenHeight); + + // Load depth writting shader + // NOTE: 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)); SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- @@ -74,7 +74,7 @@ int main(void) // Draw //---------------------------------------------------------------------------------- - // Draw into our custom render texture (framebuffer) + // Draw into our custom render texture BeginTextureMode(target); ClearBackground(WHITE); @@ -92,7 +92,9 @@ int main(void) // Draw into screen our custom render texture BeginDrawing(); ClearBackground(RAYWHITE); + DrawTextureRec(target.texture, (Rectangle) { 0, 0, (float)screenWidth, (float)-screenHeight }, (Vector2) { 0, 0 }, WHITE); + DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- @@ -112,9 +114,8 @@ int main(void) //-------------------------------------------------------------------------------------- // Module Functions Definition //-------------------------------------------------------------------------------------- - // Load custom render texture, create a writable depth texture buffer -RenderTexture2D LoadRenderTextureDepthTex(int width, int height) +static RenderTexture2D LoadRenderTextureDepthTex(int width, int height) { RenderTexture2D target = { 0 }; @@ -135,7 +136,7 @@ RenderTexture2D LoadRenderTextureDepthTex(int width, int height) target.depth.id = rlLoadTextureDepth(width, height, false); target.depth.width = width; target.depth.height = height; - target.depth.format = 19; //DEPTH_COMPONENT_24BIT? + target.depth.format = 19; // DEPTH_COMPONENT_24BIT: Not defined in raylib target.depth.mipmaps = 1; // Attach color texture and depth texture to FBO diff --git a/examples/shaders/shaders_write_depth.png b/examples/shaders/shaders_depth_writing.png similarity index 100% rename from examples/shaders/shaders_write_depth.png rename to examples/shaders/shaders_depth_writing.png diff --git a/projects/VS2022/examples/shaders_write_depth.vcxproj b/projects/VS2022/examples/shaders_depth_writing.vcxproj similarity index 97% rename from projects/VS2022/examples/shaders_write_depth.vcxproj rename to projects/VS2022/examples/shaders_depth_writing.vcxproj index 4c19cd4b2..a411b2c52 100644 --- a/projects/VS2022/examples/shaders_write_depth.vcxproj +++ b/projects/VS2022/examples/shaders_depth_writing.vcxproj @@ -1,569 +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 - - - - {70B35F59-AFC2-4D8F-8833-5314D2047A81} - Win32Proj - shaders_write_depth - 10.0 - shaders_write_depth - - - - 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\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - WindowsLocalDebugger - - - $(SolutionDir)..\..\examples\shaders - 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} - - - - - + + + + + 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 + + + + {70B35F59-AFC2-4D8F-8833-5314D2047A81} + Win32Proj + shaders_depth_writing + 10.0 + shaders_depth_writing + + + + 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\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\shaders + 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 7ccb1b704..3eacc34ec 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -267,7 +267,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textures_textured_curve", " EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_loading_m3d", "examples\models_loading_m3d.vcxproj", "{6D9E00D8-2893-45E4-9363-3F7F61D416BD}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_write_depth", "examples\shaders_write_depth.vcxproj", "{70B35F59-AFC2-4D8F-8833-5314D2047A81}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_depth_writing", "examples\shaders_depth_writing.vcxproj", "{70B35F59-AFC2-4D8F-8833-5314D2047A81}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_depth_rendering", "examples\shaders_depth_rendering.vcxproj", "{DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}" EndProject From 314820675843f52ead4292d25e86896eb4ebb3bf Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 13 Sep 2025 10:44:12 +0200 Subject: [PATCH 143/190] Renamed shaders for consistency --- .../resources/shaders/glsl100/{depth.fs => depth_render.fs} | 0 .../shaders/glsl100/{write_depth.fs => depth_write.fs} | 0 .../resources/shaders/glsl120/{depth.fs => depth_render.fs} | 0 .../shaders/glsl120/{write_depth.fs => depth_write.fs} | 0 .../resources/shaders/glsl330/{depth.fs => depth_render.fs} | 0 .../shaders/glsl330/{write_depth.fs => depth_write.fs} | 0 examples/shaders/shaders_depth_rendering.c | 2 +- examples/shaders/shaders_depth_writing.c | 2 +- 8 files changed, 2 insertions(+), 2 deletions(-) rename examples/shaders/resources/shaders/glsl100/{depth.fs => depth_render.fs} (100%) rename examples/shaders/resources/shaders/glsl100/{write_depth.fs => depth_write.fs} (100%) rename examples/shaders/resources/shaders/glsl120/{depth.fs => depth_render.fs} (100%) rename examples/shaders/resources/shaders/glsl120/{write_depth.fs => depth_write.fs} (100%) rename examples/shaders/resources/shaders/glsl330/{depth.fs => depth_render.fs} (100%) rename examples/shaders/resources/shaders/glsl330/{write_depth.fs => depth_write.fs} (100%) diff --git a/examples/shaders/resources/shaders/glsl100/depth.fs b/examples/shaders/resources/shaders/glsl100/depth_render.fs similarity index 100% rename from examples/shaders/resources/shaders/glsl100/depth.fs rename to examples/shaders/resources/shaders/glsl100/depth_render.fs diff --git a/examples/shaders/resources/shaders/glsl100/write_depth.fs b/examples/shaders/resources/shaders/glsl100/depth_write.fs similarity index 100% rename from examples/shaders/resources/shaders/glsl100/write_depth.fs rename to examples/shaders/resources/shaders/glsl100/depth_write.fs diff --git a/examples/shaders/resources/shaders/glsl120/depth.fs b/examples/shaders/resources/shaders/glsl120/depth_render.fs similarity index 100% rename from examples/shaders/resources/shaders/glsl120/depth.fs rename to examples/shaders/resources/shaders/glsl120/depth_render.fs diff --git a/examples/shaders/resources/shaders/glsl120/write_depth.fs b/examples/shaders/resources/shaders/glsl120/depth_write.fs similarity index 100% rename from examples/shaders/resources/shaders/glsl120/write_depth.fs rename to examples/shaders/resources/shaders/glsl120/depth_write.fs diff --git a/examples/shaders/resources/shaders/glsl330/depth.fs b/examples/shaders/resources/shaders/glsl330/depth_render.fs similarity index 100% rename from examples/shaders/resources/shaders/glsl330/depth.fs rename to examples/shaders/resources/shaders/glsl330/depth_render.fs diff --git a/examples/shaders/resources/shaders/glsl330/write_depth.fs b/examples/shaders/resources/shaders/glsl330/depth_write.fs similarity index 100% rename from examples/shaders/resources/shaders/glsl330/write_depth.fs rename to examples/shaders/resources/shaders/glsl330/depth_write.fs diff --git a/examples/shaders/shaders_depth_rendering.c b/examples/shaders/shaders_depth_rendering.c index 0e69dba88..866135020 100644 --- a/examples/shaders/shaders_depth_rendering.c +++ b/examples/shaders/shaders_depth_rendering.c @@ -58,7 +58,7 @@ int main(void) RenderTexture2D target = LoadRenderTextureDepthTex(screenWidth, screenHeight); // Load depth shader and get depth texture shader location - Shader depthShader = LoadShader(0, TextFormat("resources/shaders/glsl%i/depth.fs", GLSL_VERSION)); + Shader depthShader = LoadShader(0, TextFormat("resources/shaders/glsl%i/depth_render.fs", GLSL_VERSION)); int depthLoc = GetShaderLocation(depthShader, "depthTexture"); int flipTextureLoc = GetShaderLocation(depthShader, "flipY"); SetShaderValue(depthShader, flipTextureLoc, (int[]){ 1 }, SHADER_UNIFORM_INT); // Flip Y texture diff --git a/examples/shaders/shaders_depth_writing.c b/examples/shaders/shaders_depth_writing.c index 6934dc2c0..e1112e9c2 100644 --- a/examples/shaders/shaders_depth_writing.c +++ b/examples/shaders/shaders_depth_writing.c @@ -60,7 +60,7 @@ int main(void) // Load depth writting shader // NOTE: 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)); + Shader shader = LoadShader(0, TextFormat("resources/shaders/glsl%i/depth_write.fs", GLSL_VERSION)); SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- From b8420d48219ada274fdde5ac07cd406edc3ca878 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 13 Sep 2025 10:46:14 +0200 Subject: [PATCH 144/190] REXM: Update examples --- examples/Makefile | 4 ++-- examples/Makefile.Web | 14 +++++++------- examples/shaders/shaders_depth_writing.c | 2 +- src/platforms/rcore_desktop_glfw.c | 2 +- tools/rexm/examples_report.md | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/examples/Makefile b/examples/Makefile index 68111fa41..c15a70c5b 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -633,6 +633,7 @@ SHADERS = \ shaders/shaders_custom_uniform \ shaders/shaders_deferred_rendering \ shaders/shaders_depth_rendering \ + shaders/shaders_depth_writing \ shaders/shaders_eratosthenes_sieve \ shaders/shaders_fog_rendering \ shaders/shaders_hot_reloading \ @@ -655,8 +656,7 @@ SHADERS = \ shaders/shaders_texture_rendering \ shaders/shaders_texture_tiling \ shaders/shaders_texture_waves \ - shaders/shaders_vertex_displacement \ - shaders/shaders_depth_writing + shaders/shaders_vertex_displacement AUDIO = \ audio/audio_mixed_processor \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 79fc04a78..9c5863471 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -633,6 +633,7 @@ SHADERS = \ shaders/shaders_custom_uniform \ shaders/shaders_deferred_rendering \ shaders/shaders_depth_rendering \ + shaders/shaders_depth_writing \ shaders/shaders_eratosthenes_sieve \ shaders/shaders_fog_rendering \ shaders/shaders_hot_reloading \ @@ -655,8 +656,7 @@ SHADERS = \ shaders/shaders_texture_rendering \ shaders/shaders_texture_tiling \ shaders/shaders_texture_waves \ - shaders/shaders_vertex_displacement \ - shaders/shaders_depth_writing + shaders/shaders_vertex_displacement AUDIO = \ audio/audio_mixed_processor \ @@ -1167,7 +1167,11 @@ shaders/shaders_deferred_rendering: shaders/shaders_deferred_rendering.c shaders/shaders_depth_rendering: shaders/shaders_depth_rendering.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ - --preload-file shaders/resources/shaders/glsl100/depth.fs@resources/shaders/glsl100/depth.fs + --preload-file shaders/resources/shaders/glsl100/depth_render.fs@resources/shaders/glsl100/depth_render.fs + +shaders/shaders_depth_writing: shaders/shaders_depth_writing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/depth_write.fs@resources/shaders/glsl100/depth_write.fs shaders/shaders_eratosthenes_sieve: shaders/shaders_eratosthenes_sieve.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ @@ -1298,10 +1302,6 @@ shaders/shaders_vertex_displacement: shaders/shaders_vertex_displacement.c --preload-file shaders/resources/shaders/glsl100/vertex_displacement.vs@resources/shaders/glsl100/vertex_displacement.vs \ --preload-file shaders/resources/shaders/glsl100/vertex_displacement.fs@resources/shaders/glsl100/vertex_displacement.fs -shaders/shaders_depth_writing: shaders/shaders_depth_writing.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ - --preload-file shaders/resources/shaders/glsl100/write_depth.fs@resources/shaders/glsl100/write_depth.fs - # Compile AUDIO examples audio/audio_mixed_processor: audio/audio_mixed_processor.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ diff --git a/examples/shaders/shaders_depth_writing.c b/examples/shaders/shaders_depth_writing.c index e1112e9c2..ec887ae09 100644 --- a/examples/shaders/shaders_depth_writing.c +++ b/examples/shaders/shaders_depth_writing.c @@ -58,7 +58,7 @@ int main(void) // Load custom render texture with writable depth texture buffer RenderTexture2D target = LoadRenderTextureDepthTex(screenWidth, screenHeight); - // Load depth writting shader + // Load depth writing shader // NOTE: 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/depth_write.fs", GLSL_VERSION)); SetTargetFPS(60); // Set our game to run at 60 frames-per-second diff --git a/src/platforms/rcore_desktop_glfw.c b/src/platforms/rcore_desktop_glfw.c index 6cf5ffb84..cfddf75b7 100644 --- a/src/platforms/rcore_desktop_glfw.c +++ b/src/platforms/rcore_desktop_glfw.c @@ -81,7 +81,7 @@ #define Font X11Font // Hack to fix 'Font' name collision // The definition and references to the X11 Font type will be replaced by 'X11Font' // Works as long as the current file consistently references any X11 Font as X11Font - // Since it is never referenced (as of writting), this does not pose an issue + // Since it is never referenced (as of writing), this does not pose an issue #endif #if defined(_GLFW_WAYLAND) diff --git a/tools/rexm/examples_report.md b/tools/rexm/examples_report.md index 2c1555049..df515917a 100644 --- a/tools/rexm/examples_report.md +++ b/tools/rexm/examples_report.md @@ -163,7 +163,7 @@ Example elements validated: | shaders_texture_tiling | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_shadowmap_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_vertex_displacement | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| shaders_write_depth | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| shaders_depth_writing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_basic_pbr | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_lightmap_rendering | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shaders_rounded_rectangle | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | From 6f01f3c06def68d94ab1da536a3bcd5ea6b2f6dd Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 13 Sep 2025 20:57:00 +0200 Subject: [PATCH 145/190] Update rexm.c --- tools/rexm/rexm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/rexm/rexm.c b/tools/rexm/rexm.c index 5d124315d..03b62e639 100644 --- a/tools/rexm/rexm.c +++ b/tools/rexm/rexm.c @@ -597,6 +597,8 @@ int main(int argc, char *argv[]) // Edit: raylib/projects/VS2022/raylib.sln --> Add new example project // WARNING: This function uses TextFormat() extensively inside, // we must store provided file paths because pointers will be overwriten + // TODO: It seems projects are added to solution BUT not to required solution folder, + // that process still requires to be done manually AddVSProjectToSolution(exVSProjectSolutionFile, TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exName), exCategory); //------------------------------------------------------------------------------------------------ From 161cab24da4430839414f8f4ea39ab1b8e43b44d Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 13 Sep 2025 20:57:20 +0200 Subject: [PATCH 146/190] Update core_random_sequence.c --- examples/core/core_random_sequence.c | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/core/core_random_sequence.c b/examples/core/core_random_sequence.c index 89753b649..580c2bb26 100644 --- a/examples/core/core_random_sequence.c +++ b/examples/core/core_random_sequence.c @@ -16,6 +16,7 @@ ********************************************************************************************/ #include "raylib.h" + #include "raymath.h" #include // Required for: malloc(), free() From 865b3310f8deb39b72d5823be86dcd4eed6a4cf9 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 13 Sep 2025 20:57:39 +0200 Subject: [PATCH 147/190] Updated project GUIDs --- projects/VS2022/examples/core_render_texture.vcxproj | 2 +- projects/VS2022/examples/text_inline_styling.vcxproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/VS2022/examples/core_render_texture.vcxproj b/projects/VS2022/examples/core_render_texture.vcxproj index faa53557b..3c80255a2 100644 --- a/projects/VS2022/examples/core_render_texture.vcxproj +++ b/projects/VS2022/examples/core_render_texture.vcxproj @@ -51,7 +51,7 @@
- {6B1A933E-71B8-4C1F-9E79-02D98830E671} + {49C67F03-1A56-4F96-B278-39B66EC93678} Win32Proj core_render_texture 10.0 diff --git a/projects/VS2022/examples/text_inline_styling.vcxproj b/projects/VS2022/examples/text_inline_styling.vcxproj index f0716dca2..88c6de7e5 100644 --- a/projects/VS2022/examples/text_inline_styling.vcxproj +++ b/projects/VS2022/examples/text_inline_styling.vcxproj @@ -51,7 +51,7 @@ - {6B1A933E-71B8-4C1F-9E79-02D98830E671} + {D496308F-3C3C-40B3-A3ED-EA327D244B3E} Win32Proj text_inline_styling 10.0 From 36824b6c0a0b5ec0eeb47b873c3bd9e328be3af5 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 13 Sep 2025 20:58:27 +0200 Subject: [PATCH 148/190] REXM: ADDED: example: `core_undo_redo` --- examples/Makefile | 1 + examples/Makefile.Web | 4 + examples/README.md | 5 +- examples/core/core_undo_redo.c | 313 ++++++++++ examples/core/core_undo_redo.png | Bin 0 -> 16180 bytes examples/examples_list.txt | 1 + .../VS2022/examples/core_undo_redo.vcxproj | 569 ++++++++++++++++++ projects/VS2022/raylib.sln | 131 ++-- 8 files changed, 970 insertions(+), 54 deletions(-) create mode 100644 examples/core/core_undo_redo.c create mode 100644 examples/core/core_undo_redo.png create mode 100644 projects/VS2022/examples/core_undo_redo.vcxproj diff --git a/examples/Makefile b/examples/Makefile index c15a70c5b..0f5af45fa 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -530,6 +530,7 @@ CORE = \ core/core_scissor_test \ core/core_smooth_pixelperfect \ core/core_storage_values \ + core/core_undo_redo \ core/core_vr_simulator \ core/core_window_flags \ core/core_window_letterbox \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 9c5863471..943ddb42a 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -530,6 +530,7 @@ CORE = \ core/core_scissor_test \ core/core_smooth_pixelperfect \ core/core_storage_values \ + core/core_undo_redo \ core/core_vr_simulator \ core/core_window_flags \ core/core_window_letterbox \ @@ -775,6 +776,9 @@ core/core_smooth_pixelperfect: core/core_smooth_pixelperfect.c core/core_storage_values: core/core_storage_values.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) +core/core_undo_redo: core/core_undo_redo.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + core/core_vr_simulator: core/core_vr_simulator.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ --preload-file core/resources/shaders/glsl100/distortion.fs@resources/shaders/glsl100/distortion.fs diff --git a/examples/README.md b/examples/README.md index fd6c9fcf3..52dab85e1 100644 --- a/examples/README.md +++ b/examples/README.md @@ -17,9 +17,9 @@ 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: 162] +## EXAMPLES COLLECTION [TOTAL: 163] -### category: core [36] +### category: core [37] Examples using raylib[core](../src/rcore.c) platform functionality like window creation, inputs, drawing modes and system functionality. @@ -61,6 +61,7 @@ Examples using raylib[core](../src/rcore.c) platform functionality like window c | [core_automation_events](core/core_automation_events.c) | core_automation_events | ⭐⭐⭐☆ | 5.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) | | [core_high_dpi](core/core_high_dpi.c) | core_high_dpi | ⭐⭐☆☆ | 5.0 | 5.5 | [Jonathan Marler](https://github.com/marler8997) | | [core_render_texture](core/core_render_texture.c) | core_render_texture | ⭐☆☆☆ | 5.6-dev | 5.6-dev | [Ramon Santamaria](https://github.com/raysan5) | +| [core_undo_redo](core/core_undo_redo.c) | core_undo_redo | ⭐☆☆☆ | 5.5 | 5.6 | [](https://github.com/) | ### category: shapes [20] diff --git a/examples/core/core_undo_redo.c b/examples/core/core_undo_redo.c new file mode 100644 index 000000000..01de35e3a --- /dev/null +++ b/examples/core/core_undo_redo.c @@ -0,0 +1,313 @@ +/******************************************************************************************* +* +* raylib [core] example - undo redo +* +* Example complexity rating: [★★★☆] 3/4 +* +* Example originally created with raylib 5.5, last time updated with raylib 5.6 +* +* Example contributed by Reamon 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 +* +* Copyright (c) 2025 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include // Required for: calloc(), free() +#include // Required for: memcpy(), strcmp() + +#define MAX_UNDO_STATES 26 // Maximum undo states supported for the ring buffer + +#define GRID_CELL_SIZE 24 +#define MAX_GRID_CELLS_X 30 +#define MAX_GRID_CELLS_Y 13 + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +// Point struct, like Vector2 but using int +typedef struct { + int x; + int y; +} Point; + +// Player state struct +// NOTE: Contains all player data that needs to be affected by undo/redo +typedef struct { + Point cell; + Color color; +} PlayerState; + +//------------------------------------------------------------------------------------ +// Module Functions Declaration +//------------------------------------------------------------------------------------ +// Draw undo system visualization logic +static void DrawUndoBuffer(Vector2 position, int firstUndoIndex, int lastUndoIndex, int currentUndoIndex, int slotSize); + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + // We have multiple options to implement an Undo/Redo system + // Probably the most professional one is using the Command pattern to + // define Actions and store those actions into an array as the events happen, + // raylib internal Automation System actually uses a similar approach, + // but in this example we are using another more simple solution, + // just record PlayerState changes when detected, checking for changes every certain frames + // This approach requires more memory and is more performance costly but it is quite simple to implement + + InitWindow(screenWidth, screenHeight, "raylib [core] example - undo redo"); + + // Undo/redo system variables + int currentUndoIndex = 0; + int firstUndoIndex = 0; + int lastUndoIndex = 0; + int undoFrameCounter = 0; + Vector2 undoInfoPos = { 110, 400 }; + + // Init current player state and undo/redo recorded states array + PlayerState player = { 0 }; + player.cell = (Point){ 10, 10 }; + player.color = RED; + + // Init undo buffer to store MAX_UNDO_STATES states + PlayerState *states = (PlayerState *)RL_CALLOC(MAX_UNDO_STATES, sizeof(PlayerState)); + // Init all undo states to current state + for (int i = 0; i < MAX_UNDO_STATES; i++) memcpy(&states[i], &player, sizeof(PlayerState)); + + // Grid variables + Vector2 gridPosition = { 40, 60 }; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + // Player movement logic + if (IsKeyPressed(KEY_RIGHT)) player.cell.x++; + else if (IsKeyPressed(KEY_LEFT)) player.cell.x--; + else if (IsKeyPressed(KEY_UP)) player.cell.y--; + else if (IsKeyPressed(KEY_DOWN)) player.cell.y++; + + // Make sure player does not go out of bounds + if (player.cell.x < 0) player.cell.x = 0; + else if (player.cell.x >= MAX_GRID_CELLS_X) player.cell.x = MAX_GRID_CELLS_X - 1; + if (player.cell.y < 0) player.cell.y = 0; + else if (player.cell.y >= MAX_GRID_CELLS_Y) player.cell.y = MAX_GRID_CELLS_Y - 1; + + // Player color change logic + if (IsKeyPressed(KEY_SPACE)) + { + player.color.r = (unsigned char)GetRandomValue(20, 255); + player.color.g = (unsigned char)GetRandomValue(20, 220); + player.color.b = (unsigned char)GetRandomValue(20, 240); + } + + // Undo layout change logic + undoFrameCounter++; + + // Waiting a number of frames before checking if we should store a new state snapshot + if (undoFrameCounter >= 2) // Checking every 2 frames + { + if (memcmp(&states[currentUndoIndex], &player, sizeof(PlayerState)) != 0) + { + // Move cursor to next available position of the undo ring buffer to record state + currentUndoIndex++; + if (currentUndoIndex >= MAX_UNDO_STATES) currentUndoIndex = 0; + if (currentUndoIndex == firstUndoIndex) firstUndoIndex++; + if (firstUndoIndex >= MAX_UNDO_STATES) firstUndoIndex = 0; + + memcpy(&states[currentUndoIndex], &player, sizeof(PlayerState)); + lastUndoIndex = currentUndoIndex; + } + + undoFrameCounter = 0; + } + + // Recover previous state from buffer: CTRL+Z + if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_Z)) + { + if (currentUndoIndex != firstUndoIndex) + { + currentUndoIndex--; + if (currentUndoIndex < 0) currentUndoIndex = MAX_UNDO_STATES - 1; + + if (memcmp(&states[currentUndoIndex], &player, sizeof(PlayerState)) != 0) + { + memcpy(&player, &states[currentUndoIndex], sizeof(PlayerState)); + } + } + } + + // Recover next state from buffer: CTRL+Y + if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_Y)) + { + if (currentUndoIndex != lastUndoIndex) + { + int nextUndoIndex = currentUndoIndex + 1; + if (nextUndoIndex >= MAX_UNDO_STATES) nextUndoIndex = 0; + + if (nextUndoIndex != firstUndoIndex) + { + currentUndoIndex = nextUndoIndex; + + if (memcmp(&states[currentUndoIndex], &player, sizeof(PlayerState)) != 0) + { + memcpy(&player, &states[currentUndoIndex], sizeof(PlayerState)); + } + } + } + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + // Draw controls info + DrawText("[ARROWS] MOVE PLAYER - [SPACE] CHANGE PLAYER COLOR", 40, 20, 20, DARKGRAY); + + // Draw player visited cells recorded by undo + // NOTE: Remember we are using a ring buffer approach so, + // some cells info could start at the end of the array and end at the beginning + if (lastUndoIndex > firstUndoIndex) + { + for (int i = firstUndoIndex; i < currentUndoIndex; i++) + DrawRectangle(gridPosition.x + states[i].cell.x*GRID_CELL_SIZE, gridPosition.y + states[i].cell.y*GRID_CELL_SIZE, + GRID_CELL_SIZE, GRID_CELL_SIZE, LIGHTGRAY); + } + else if (firstUndoIndex > lastUndoIndex) + { + if ((currentUndoIndex < MAX_UNDO_STATES) && (currentUndoIndex > lastUndoIndex)) + { + for (int i = firstUndoIndex; i < currentUndoIndex; i++) + DrawRectangle(gridPosition.x + states[i].cell.x*GRID_CELL_SIZE, gridPosition.y + states[i].cell.y*GRID_CELL_SIZE, + GRID_CELL_SIZE, GRID_CELL_SIZE, LIGHTGRAY); + } + else + { + for (int i = firstUndoIndex; i < MAX_UNDO_STATES; i++) + DrawRectangle(gridPosition.x + states[i].cell.x*GRID_CELL_SIZE, gridPosition.y + states[i].cell.y*GRID_CELL_SIZE, + GRID_CELL_SIZE, GRID_CELL_SIZE, LIGHTGRAY); + for (int i = 0; i < currentUndoIndex; i++) + DrawRectangle(gridPosition.x + states[i].cell.x*GRID_CELL_SIZE, gridPosition.y + states[i].cell.y*GRID_CELL_SIZE, + GRID_CELL_SIZE, GRID_CELL_SIZE, LIGHTGRAY); + } + } + + // Draw game grid + for (int y = 0; y <= MAX_GRID_CELLS_Y; y++) + DrawLine(gridPosition.x, gridPosition.y + y*GRID_CELL_SIZE, + gridPosition.x + MAX_GRID_CELLS_X*GRID_CELL_SIZE, gridPosition.y + y*GRID_CELL_SIZE, GRAY); + for (int x = 0; x <= MAX_GRID_CELLS_X; x++) + DrawLine(gridPosition.x + x*GRID_CELL_SIZE, gridPosition.y, + gridPosition.x + x*GRID_CELL_SIZE, gridPosition.y + MAX_GRID_CELLS_Y*GRID_CELL_SIZE, GRAY); + + // Draw player + DrawRectangle(gridPosition.x + player.cell.x*GRID_CELL_SIZE, gridPosition.y + player.cell.y*GRID_CELL_SIZE, + GRID_CELL_SIZE + 1, GRID_CELL_SIZE + 1, player.color); + + // Draw undo system buffer info + DrawText("UNDO STATES:", undoInfoPos.x - 85, undoInfoPos.y + 9, 10, DARKGRAY); + DrawUndoBuffer(undoInfoPos, firstUndoIndex, lastUndoIndex, currentUndoIndex, 24); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + RL_FREE(states); // Free undo states array + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +//------------------------------------------------------------------------------------ +// Module Functions Definition +//------------------------------------------------------------------------------------ +// Draw undo system visualization logic +// NOTE: Visualizing the ring buffer array, every square can store a player state +static void DrawUndoBuffer(Vector2 position, int firstUndoIndex, int lastUndoIndex, int currentUndoIndex, int slotSize) +{ + // Draw index marks + DrawRectangle(position.x + 8 + slotSize*currentUndoIndex, position.y - 10, 8, 8, RED); + DrawRectangleLines(position.x + 2 + slotSize*firstUndoIndex, position.y + 27, 8, 8, BLACK); + DrawRectangle(position.x + 14 + slotSize*lastUndoIndex, position.y + 27, 8, 8, BLACK); + + // Draw background gray slots + for (int i = 0; i < MAX_UNDO_STATES; i++) + { + DrawRectangle(position.x + slotSize*i, position.y, slotSize, slotSize, LIGHTGRAY); + DrawRectangleLines(position.x + slotSize*i, position.y, slotSize, slotSize, GRAY); + } + + // Draw occupied slots: firstUndoIndex --> lastUndoIndex + if (firstUndoIndex <= lastUndoIndex) + { + for (int i = firstUndoIndex; i < lastUndoIndex + 1; i++) + { + DrawRectangle(position.x + slotSize*i, position.y, slotSize, slotSize, SKYBLUE); + DrawRectangleLines(position.x + slotSize*i, position.y, slotSize, slotSize, BLUE); + } + } + else if (lastUndoIndex < firstUndoIndex) + { + for (int i = firstUndoIndex; i < MAX_UNDO_STATES; i++) + { + DrawRectangle(position.x + slotSize*i, position.y, slotSize, slotSize, SKYBLUE); + DrawRectangleLines(position.x + slotSize*i, position.y, slotSize, slotSize, BLUE); + } + + for (int i = 0; i < lastUndoIndex + 1; i++) + { + DrawRectangle(position.x + slotSize*i, position.y, slotSize, slotSize, SKYBLUE); + DrawRectangleLines(position.x + slotSize*i, position.y, slotSize, slotSize, BLUE); + } + } + + // Draw occupied slots: firstUndoIndex --> currentUndoIndex + if (firstUndoIndex < currentUndoIndex) + { + for (int i = firstUndoIndex; i < currentUndoIndex; i++) + { + DrawRectangle(position.x + slotSize*i, position.y, slotSize, slotSize, GREEN); + DrawRectangleLines(position.x + slotSize*i, position.y, slotSize, slotSize, LIME); + } + } + else if (currentUndoIndex < firstUndoIndex) + { + for (int i = firstUndoIndex; i < MAX_UNDO_STATES; i++) + { + DrawRectangle(position.x + slotSize*i, position.y, slotSize, slotSize, GREEN); + DrawRectangleLines(position.x + slotSize*i, position.y, slotSize, slotSize, LIME); + } + + for (int i = 0; i < currentUndoIndex; i++) + { + DrawRectangle(position.x + slotSize*i, position.y, slotSize, slotSize, GREEN); + DrawRectangleLines(position.x + slotSize*i, position.y, slotSize, slotSize, LIME); + } + } + + // Draw current selected UNDO slot + DrawRectangle(position.x + slotSize*currentUndoIndex, position.y, slotSize, slotSize, GOLD); + DrawRectangleLines(position.x + slotSize*currentUndoIndex, position.y, slotSize, slotSize, ORANGE); +} \ No newline at end of file diff --git a/examples/core/core_undo_redo.png b/examples/core/core_undo_redo.png new file mode 100644 index 0000000000000000000000000000000000000000..b125b8435e5b3a72c3f68eb9262762a3ce25a2b6 GIT binary patch literal 16180 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 literal 0 HcmV?d00001 diff --git a/examples/examples_list.txt b/examples/examples_list.txt index ecbc3e2cc..ec00f3961 100644 --- a/examples/examples_list.txt +++ b/examples/examples_list.txt @@ -43,6 +43,7 @@ core;core_random_sequence;★☆☆☆;5.0;5.0;2023;2025;"Dalton Overmyer";@REDl core;core_automation_events;★★★☆;5.0;5.0;2023;2025;"Ramon Santamaria";@raysan5 core;core_high_dpi;★★☆☆;5.0;5.5;2025;2025;"Jonathan Marler";@marler8997 core;core_render_texture;★☆☆☆;5.6-dev;5.6-dev;2025;2025;"Ramon Santamaria";@raysan5 +core;core_undo_redo;★★★☆;5.5;5.6;2025;2025;"Ramon Santamaria";@raysan5 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 diff --git a/projects/VS2022/examples/core_undo_redo.vcxproj b/projects/VS2022/examples/core_undo_redo.vcxproj new file mode 100644 index 000000000..ff621a8a7 --- /dev/null +++ b/projects/VS2022/examples/core_undo_redo.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 + + + + {3B27F358-2679-4F38-B297-17B536F580BB} + Win32Proj + core_undo_redo + 10.0 + core_undo_redo + + + + 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\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + 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 3eacc34ec..9fb624a20 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -339,9 +339,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_unicode_ranges", "exam EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_input_gestures_testbed", "examples\core_input_gestures_testbed.vcxproj", "{A61DAD9C-271C-4E95-81AA-DB4CD58564D4}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_render_texture", "examples\core_render_texture.vcxproj", "{6B1A933E-71B8-4C1F-9E79-02D98830E671}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_render_texture", "examples\core_render_texture.vcxproj", "{49C67F03-1A56-4F96-B278-39B66EC93678}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_inline_styling", "examples\text_inline_styling.vcxproj", "{6B1A933E-71B8-4C1F-9E79-02D98830E671}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_inline_styling", "examples\text_inline_styling.vcxproj", "{D496308F-3C3C-40B3-A3ED-EA327D244B3E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_undo_redo", "examples\core_undo_redo.vcxproj", "{3B27F358-2679-4F38-B297-17B536F580BB}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -4173,54 +4175,78 @@ Global {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release|x64.Build.0 = Release|x64 {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release|x86.ActiveCfg = Release|Win32 {A61DAD9C-271C-4E95-81AA-DB4CD58564D4}.Release|x86.Build.0 = Release|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|ARM64.Build.0 = Debug.DLL|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|ARM64.Build.0 = Debug|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x64.ActiveCfg = Debug|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x64.Build.0 = Debug|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x86.ActiveCfg = Debug|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x86.Build.0 = Debug|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|ARM64.ActiveCfg = Release.DLL|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|ARM64.Build.0 = Release.DLL|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x64.Build.0 = Release.DLL|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x86.Build.0 = Release.DLL|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|ARM64.ActiveCfg = Release|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|ARM64.Build.0 = Release|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x64.ActiveCfg = Release|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x64.Build.0 = Release|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x86.ActiveCfg = Release|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x86.Build.0 = Release|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|ARM64.Build.0 = Debug.DLL|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|ARM64.Build.0 = Debug|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x64.ActiveCfg = Debug|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x64.Build.0 = Debug|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x86.ActiveCfg = Debug|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Debug|x86.Build.0 = Debug|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|ARM64.ActiveCfg = Release.DLL|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|ARM64.Build.0 = Release.DLL|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x64.Build.0 = Release.DLL|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release.DLL|x86.Build.0 = Release.DLL|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|ARM64.ActiveCfg = Release|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|ARM64.Build.0 = Release|ARM64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x64.ActiveCfg = Release|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x64.Build.0 = Release|x64 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x86.ActiveCfg = Release|Win32 - {6B1A933E-71B8-4C1F-9E79-02D98830E671}.Release|x86.Build.0 = Release|Win32 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Debug.DLL|ARM64.Build.0 = Debug.DLL|ARM64 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Debug|ARM64.Build.0 = Debug|ARM64 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Debug|x64.ActiveCfg = Debug|x64 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Debug|x64.Build.0 = Debug|x64 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Debug|x86.ActiveCfg = Debug|Win32 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Debug|x86.Build.0 = Debug|Win32 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Release.DLL|ARM64.ActiveCfg = Release.DLL|ARM64 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Release.DLL|ARM64.Build.0 = Release.DLL|ARM64 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Release|ARM64.ActiveCfg = Release|ARM64 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Release|ARM64.Build.0 = Release|ARM64 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Release|x64.ActiveCfg = Release|x64 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Release|x64.Build.0 = Release|x64 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Release|x86.ActiveCfg = Release|Win32 + {49C67F03-1A56-4F96-B278-39B66EC93678}.Release|x86.Build.0 = Release|Win32 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Debug.DLL|ARM64.Build.0 = Debug.DLL|ARM64 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Debug|ARM64.Build.0 = Debug|ARM64 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Debug|x64.ActiveCfg = Debug|x64 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Debug|x64.Build.0 = Debug|x64 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Debug|x86.ActiveCfg = Debug|Win32 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Debug|x86.Build.0 = Debug|Win32 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Release.DLL|ARM64.ActiveCfg = Release.DLL|ARM64 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Release.DLL|ARM64.Build.0 = Release.DLL|ARM64 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Release|ARM64.ActiveCfg = Release|ARM64 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Release|ARM64.Build.0 = Release|ARM64 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Release|x64.ActiveCfg = Release|x64 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Release|x64.Build.0 = Release|x64 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Release|x86.ActiveCfg = Release|Win32 + {D496308F-3C3C-40B3-A3ED-EA327D244B3E}.Release|x86.Build.0 = Release|Win32 + {3B27F358-2679-4F38-B297-17B536F580BB}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 + {3B27F358-2679-4F38-B297-17B536F580BB}.Debug.DLL|ARM64.Build.0 = Debug.DLL|ARM64 + {3B27F358-2679-4F38-B297-17B536F580BB}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {3B27F358-2679-4F38-B297-17B536F580BB}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {3B27F358-2679-4F38-B297-17B536F580BB}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {3B27F358-2679-4F38-B297-17B536F580BB}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {3B27F358-2679-4F38-B297-17B536F580BB}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {3B27F358-2679-4F38-B297-17B536F580BB}.Debug|ARM64.Build.0 = Debug|ARM64 + {3B27F358-2679-4F38-B297-17B536F580BB}.Debug|x64.ActiveCfg = Debug|x64 + {3B27F358-2679-4F38-B297-17B536F580BB}.Debug|x64.Build.0 = Debug|x64 + {3B27F358-2679-4F38-B297-17B536F580BB}.Debug|x86.ActiveCfg = Debug|Win32 + {3B27F358-2679-4F38-B297-17B536F580BB}.Debug|x86.Build.0 = Debug|Win32 + {3B27F358-2679-4F38-B297-17B536F580BB}.Release.DLL|ARM64.ActiveCfg = Release.DLL|ARM64 + {3B27F358-2679-4F38-B297-17B536F580BB}.Release.DLL|ARM64.Build.0 = Release.DLL|ARM64 + {3B27F358-2679-4F38-B297-17B536F580BB}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {3B27F358-2679-4F38-B297-17B536F580BB}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {3B27F358-2679-4F38-B297-17B536F580BB}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {3B27F358-2679-4F38-B297-17B536F580BB}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {3B27F358-2679-4F38-B297-17B536F580BB}.Release|ARM64.ActiveCfg = Release|ARM64 + {3B27F358-2679-4F38-B297-17B536F580BB}.Release|ARM64.Build.0 = Release|ARM64 + {3B27F358-2679-4F38-B297-17B536F580BB}.Release|x64.ActiveCfg = Release|x64 + {3B27F358-2679-4F38-B297-17B536F580BB}.Release|x64.Build.0 = Release|x64 + {3B27F358-2679-4F38-B297-17B536F580BB}.Release|x86.ActiveCfg = Release|Win32 + {3B27F358-2679-4F38-B297-17B536F580BB}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -4392,8 +4418,9 @@ Global {6BFF72EA-7362-4A3B-B6E5-9A3655BBBDA3} = {5317807F-61D4-4E0F-B6DC-2D9F12621ED9} {6777EC3C-077C-42FC-B4AD-B799CE55CCE4} = {8D3C83B7-F1E0-4C2E-9E34-EE5F6AB2502A} {A61DAD9C-271C-4E95-81AA-DB4CD58564D4} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} - {6B1A933E-71B8-4C1F-9E79-02D98830E671} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} - {6B1A933E-71B8-4C1F-9E79-02D98830E671} = {8D3C83B7-F1E0-4C2E-9E34-EE5F6AB2502A} + {49C67F03-1A56-4F96-B278-39B66EC93678} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} + {D496308F-3C3C-40B3-A3ED-EA327D244B3E} = {8D3C83B7-F1E0-4C2E-9E34-EE5F6AB2502A} + {3B27F358-2679-4F38-B297-17B536F580BB} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {E926C768-6307-4423-A1EC-57E95B1FAB29} From 36ad7127c2d05cee97ec09d1679ead02293a070b Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 13 Sep 2025 21:09:59 +0200 Subject: [PATCH 149/190] REXM: Update --- examples/README.md | 2 +- examples/core/core_undo_redo.c | 2 +- tools/rexm/examples_report.md | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/README.md b/examples/README.md index 52dab85e1..56cf8fb3e 100644 --- a/examples/README.md +++ b/examples/README.md @@ -61,7 +61,7 @@ Examples using raylib[core](../src/rcore.c) platform functionality like window c | [core_automation_events](core/core_automation_events.c) | core_automation_events | ⭐⭐⭐☆ | 5.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) | | [core_high_dpi](core/core_high_dpi.c) | core_high_dpi | ⭐⭐☆☆ | 5.0 | 5.5 | [Jonathan Marler](https://github.com/marler8997) | | [core_render_texture](core/core_render_texture.c) | core_render_texture | ⭐☆☆☆ | 5.6-dev | 5.6-dev | [Ramon Santamaria](https://github.com/raysan5) | -| [core_undo_redo](core/core_undo_redo.c) | core_undo_redo | ⭐☆☆☆ | 5.5 | 5.6 | [](https://github.com/) | +| [core_undo_redo](core/core_undo_redo.c) | core_undo_redo | ⭐⭐⭐☆ | 5.5 | 5.6 | [Ramon Santamaria](https://github.com/raysan5) | ### category: shapes [20] diff --git a/examples/core/core_undo_redo.c b/examples/core/core_undo_redo.c index 01de35e3a..dc0590a69 100644 --- a/examples/core/core_undo_redo.c +++ b/examples/core/core_undo_redo.c @@ -6,7 +6,7 @@ * * Example originally created with raylib 5.5, last time updated with raylib 5.6 * -* Example contributed by Reamon Santamaria (@raysan5) +* Example contributed 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 diff --git a/tools/rexm/examples_report.md b/tools/rexm/examples_report.md index df515917a..384a89902 100644 --- a/tools/rexm/examples_report.md +++ b/tools/rexm/examples_report.md @@ -56,6 +56,7 @@ Example elements validated: | core_automation_events | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_high_dpi | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | core_render_texture | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| core_undo_redo | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_basic_shapes | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_bouncing_ball | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | shapes_colors_palette | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | From 9931ddd27a8db307c0194095e98dfeb526b1ef62 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 13 Sep 2025 21:17:16 +0200 Subject: [PATCH 150/190] Update core_undo_redo.c --- examples/core/core_undo_redo.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/examples/core/core_undo_redo.c b/examples/core/core_undo_redo.c index dc0590a69..874f68800 100644 --- a/examples/core/core_undo_redo.c +++ b/examples/core/core_undo_redo.c @@ -116,7 +116,7 @@ int main(void) player.color.b = (unsigned char)GetRandomValue(20, 240); } - // Undo layout change logic + // Undo state change logic undoFrameCounter++; // Waiting a number of frames before checking if we should store a new state snapshot @@ -176,7 +176,6 @@ int main(void) // Draw //---------------------------------------------------------------------------------- BeginDrawing(); - ClearBackground(RAYWHITE); // Draw controls info @@ -310,4 +309,4 @@ static void DrawUndoBuffer(Vector2 position, int firstUndoIndex, int lastUndoInd // Draw current selected UNDO slot DrawRectangle(position.x + slotSize*currentUndoIndex, position.y, slotSize, slotSize, GOLD); DrawRectangleLines(position.x + slotSize*currentUndoIndex, position.y, slotSize, slotSize, ORANGE); -} \ No newline at end of file +} From c9b1f2ce54e41c5daa72a5c867fcdd4ac1615a0c Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 14 Sep 2025 10:04:24 +0200 Subject: [PATCH 151/190] REVIEWED: example: `core_input_gestures_testbed`, follow default structure --- examples/core/core_input_gestures_testbed.c | 525 ++++++++++---------- 1 file changed, 252 insertions(+), 273 deletions(-) diff --git a/examples/core/core_input_gestures_testbed.c b/examples/core/core_input_gestures_testbed.c index 6cea3b03e..07b2ceece 100644 --- a/examples/core/core_input_gestures_testbed.c +++ b/examples/core/core_input_gestures_testbed.c @@ -19,56 +19,14 @@ #include // Required for the protractor angle graphic drawing -#if defined(PLATFORM_WEB) - #include // Required for the Web/HTML5 -#endif - #define GESTURE_LOG_SIZE 20 #define MAX_TOUCH_COUNT 32 -//-------------------------------------------------------------------------------------- -// Global Variables Definition -//-------------------------------------------------------------------------------------- -static int screenWidth = 800; // Update depending on web canvas -static const int screenHeight = 450; -static Vector2 messagePosition = { 160, 7 }; - -// Last gesture variables definitions -static int lastGesture = 0; -static Vector2 lastGesturePosition = { 165, 130 }; - -// Gesture log variables definitions -// NOTE: The gesture log uses an array (as an inverted circular queue) to store the performed gestures -static char gestureLog[GESTURE_LOG_SIZE][12] = { "" }; -// NOTE: The index for the inverted circular queue (moving from last to first direction, then looping around) -static int gestureLogIndex = GESTURE_LOG_SIZE; -static int previousGesture = 0; - -// Log mode values: -// - 0 shows repeated events -// - 1 hides repeated events -// - 2 shows repeated events but hide hold events -// - 3 hides repeated events and hide hold events -static int logMode = 1; - -static Color gestureColor = { 0, 0, 0, 255 }; -static Rectangle logButton1 = { 53, 7, 48, 26 }; -static Rectangle logButton2 = { 108, 7, 36, 26 }; -static Vector2 gestureLogPosition = { 10, 10 }; - -// Protractor variables definitions -static float angleLength = 90.0f; -static float currentAngleDegrees = 0.0f; -static Vector2 finalVector = { 0.0f, 0.0f }; -static char currentAngleStr[7] = ""; -static Vector2 protractorPosition = { 266.0f, 315.0f }; - //---------------------------------------------------------------------------------- // Module Functions Declaration //---------------------------------------------------------------------------------- -static void UpdateDrawFrame(void); // Update and Draw one frame -static char const *GetGestureName(int i); -static Color GetGestureColor(int i); +static char const *GetGestureName(int gesture); // Get text string for gesture value +static Color GetGestureColor(int gesture); // Get color for gesture value //------------------------------------------------------------------------------------ // Program main entry point @@ -77,20 +35,234 @@ int main(void) { // Initialization //-------------------------------------------------------------------------------------- - InitWindow(screenWidth, screenHeight, "raylib [core] example - input gestures testbed"); + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [core] example - input gestures testbed"); + + Vector2 messagePosition = { 160, 7 }; + + // Last gesture variables definitions + int lastGesture = 0; + Vector2 lastGesturePosition = { 165, 130 }; + + // Gesture log variables definitions + // NOTE: The gesture log uses an array (as an inverted circular queue) to store the performed gestures + char gestureLog[GESTURE_LOG_SIZE][12] = { "" }; + // NOTE: The index for the inverted circular queue (moving from last to first direction, then looping around) + int gestureLogIndex = GESTURE_LOG_SIZE; + int previousGesture = 0; + + // Log mode values: + // - 0 shows repeated events + // - 1 hides repeated events + // - 2 shows repeated events but hide hold events + // - 3 hides repeated events and hide hold events + int logMode = 1; + + Color gestureColor = { 0, 0, 0, 255 }; + Rectangle logButton1 = { 53, 7, 48, 26 }; + Rectangle logButton2 = { 108, 7, 36, 26 }; + Vector2 gestureLogPosition = { 10, 10 }; + + // Protractor variables definitions + float angleLength = 90.0f; + float currentAngleDegrees = 0.0f; + Vector2 finalVector = { 0.0f, 0.0f }; + char currentAngleStr[7] = ""; + Vector2 protractorPosition = { 266.0f, 315.0f }; -#if defined(PLATFORM_WEB) - emscripten_set_main_loop(UpdateDrawFrame, 0, 1); -#else SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { - UpdateDrawFrame(); + // Update + //-------------------------------------------------------------------------------------- + // Handle common gestures data + int i, ii; // Iterators that will be reused by all for loops + const int currentGesture = GetGestureDetected(); + const float currentDragDegrees = GetGestureDragAngle(); + const float currentPitchDegrees = GetGesturePinchAngle(); + const int touchCount = GetTouchPointCount(); + + // Handle last gesture + if ((currentGesture != 0) && (currentGesture != 4) && (currentGesture != previousGesture)) + lastGesture = currentGesture; // Filter the meaningful gestures (1, 2, 8 to 512) for the display + + // Handle gesture log + if (IsMouseButtonReleased(MOUSE_BUTTON_LEFT)) + { + if (CheckCollisionPointRec(GetMousePosition(), logButton1)) + { + switch (logMode) + { + case 3: logMode = 2; break; + case 2: logMode = 3; break; + case 1: logMode = 0; break; + default: logMode = 1; break; + } + } + else if (CheckCollisionPointRec(GetMousePosition(), logButton2)) + { + switch (logMode) + { + case 3: logMode = 1; break; + case 2: logMode = 0; break; + case 1: logMode = 3; break; + default: logMode = 2; break; + } + } + } + + int fillLog = 0; // Gate variable to be used to allow or not the gesture log to be filled + if (currentGesture !=0) + { + if (logMode == 3) // 3 hides repeated events and hide hold events + { + if (((currentGesture != 4) && (currentGesture != previousGesture)) || (currentGesture < 3)) fillLog = 1; + } + else if (logMode == 2) // 2 shows repeated events but hide hold events + { + if (currentGesture != 4) fillLog = 1; + } + else if (logMode == 1) // 1 hides repeated events + { + if (currentGesture != previousGesture) fillLog = 1; + } + else // 0 shows repeated events + { + fillLog = 1; + } + } + + if (fillLog) // If one of the conditions from logMode was met, fill the gesture log + { + previousGesture = currentGesture; + gestureColor = GetGestureColor(currentGesture); + if (gestureLogIndex <= 0) gestureLogIndex = GESTURE_LOG_SIZE; + gestureLogIndex--; + + // Copy the gesture respective name to the gesture log array + TextCopy(gestureLog[gestureLogIndex], GetGestureName(currentGesture)); + } + + // Handle protractor + if (currentGesture > 255) currentAngleDegrees = currentPitchDegrees; // Pinch In and Pinch Out + else if (currentGesture > 15) currentAngleDegrees = currentDragDegrees; // Swipe Right, Swipe Left, Swipe Up and Swipe Down + else if (currentGesture > 0) currentAngleDegrees = 0.0f; // Tap, Doubletap, Hold and Grab + + float currentAngleRadians = ((currentAngleDegrees + 90.0f)*PI/180); // Convert the current angle to Radians + // Calculate the final vector for display + finalVector = (Vector2){ (angleLength*sinf(currentAngleRadians)) + protractorPosition.x, + (angleLength*cosf(currentAngleRadians)) + protractorPosition.y }; + + // Handle touch and mouse pointer points + Vector2 touchPosition[MAX_TOUCH_COUNT] = { 0 }; + Vector2 mousePosition = { 0 }; + if (currentGesture != GESTURE_NONE) + { + if (touchCount != 0) + { + for (i = 0; i < touchCount; i++) touchPosition[i] = GetTouchPosition(i); // Fill the touch positions + } + else mousePosition = GetMousePosition(); + } + //-------------------------------------------------------------------------------------- + + // Draw + //-------------------------------------------------------------------------------------- + BeginDrawing(); + ClearBackground(RAYWHITE); + + // Draw common elements + DrawText("*", messagePosition.x + 5, messagePosition.y + 5, 10, BLACK); + DrawText("Example optimized for Web/HTML5\non Smartphones with Touch Screen.", messagePosition.x + 15, messagePosition.y + 5, 10, BLACK); + DrawText("*", messagePosition.x + 5, messagePosition.y + 35, 10, BLACK); + DrawText("While running on Desktop Web Browsers,\ninspect and turn on Touch Emulation.", messagePosition.x + 15, messagePosition.y + 35, 10, BLACK); + + // Draw last gesture + DrawText("Last gesture", lastGesturePosition.x + 33, lastGesturePosition.y - 47, 20, BLACK); + DrawText("Swipe Tap Pinch Touch", lastGesturePosition.x + 17, lastGesturePosition.y - 18, 10, BLACK); + DrawRectangle(lastGesturePosition.x + 20, lastGesturePosition.y, 20, 20, lastGesture == GESTURE_SWIPE_UP ? RED : LIGHTGRAY); + DrawRectangle(lastGesturePosition.x, lastGesturePosition.y + 20, 20, 20, lastGesture == GESTURE_SWIPE_LEFT ? RED : LIGHTGRAY); + DrawRectangle(lastGesturePosition.x + 40, lastGesturePosition.y + 20, 20, 20, lastGesture == GESTURE_SWIPE_RIGHT ? RED : LIGHTGRAY); + DrawRectangle(lastGesturePosition.x + 20, lastGesturePosition.y + 40, 20, 20, lastGesture == GESTURE_SWIPE_DOWN ? RED : LIGHTGRAY); + DrawCircle(lastGesturePosition.x + 80, lastGesturePosition.y + 16, 10, lastGesture == GESTURE_TAP ? BLUE : LIGHTGRAY); + DrawRing( (Vector2){lastGesturePosition.x + 103, lastGesturePosition.y + 16}, 6.0f, 11.0f, 0.0f, 360.0f, 0, lastGesture == GESTURE_DRAG ? LIME : LIGHTGRAY); + DrawCircle(lastGesturePosition.x + 80, lastGesturePosition.y + 43, 10, lastGesture == GESTURE_DOUBLETAP ? SKYBLUE : LIGHTGRAY); + DrawCircle(lastGesturePosition.x + 103, lastGesturePosition.y + 43, 10, lastGesture == GESTURE_DOUBLETAP ? SKYBLUE : LIGHTGRAY); + DrawTriangle((Vector2){ lastGesturePosition.x + 122, lastGesturePosition.y + 16 }, (Vector2){ lastGesturePosition.x + 137, lastGesturePosition.y + 26 }, (Vector2){ lastGesturePosition.x + 137, lastGesturePosition.y + 6 }, lastGesture == GESTURE_PINCH_OUT? ORANGE : LIGHTGRAY); + DrawTriangle((Vector2){ lastGesturePosition.x + 147, lastGesturePosition.y + 6 }, (Vector2){ lastGesturePosition.x + 147, lastGesturePosition.y + 26 }, (Vector2){ lastGesturePosition.x + 162, lastGesturePosition.y + 16 }, lastGesture == GESTURE_PINCH_OUT? ORANGE : LIGHTGRAY); + DrawTriangle((Vector2){ lastGesturePosition.x + 125, lastGesturePosition.y + 33 }, (Vector2){ lastGesturePosition.x + 125, lastGesturePosition.y + 53 }, (Vector2){ lastGesturePosition.x + 140, lastGesturePosition.y + 43 }, lastGesture == GESTURE_PINCH_IN? VIOLET : LIGHTGRAY); + DrawTriangle((Vector2){ lastGesturePosition.x + 144, lastGesturePosition.y + 43 }, (Vector2){ lastGesturePosition.x + 159, lastGesturePosition.y + 53 }, (Vector2){ lastGesturePosition.x + 159, lastGesturePosition.y + 33 }, lastGesture == GESTURE_PINCH_IN? VIOLET : LIGHTGRAY); + for (i = 0; i < 4; i++) DrawCircle(lastGesturePosition.x + 180, lastGesturePosition.y + 7 + i*15, 5, touchCount <= i? LIGHTGRAY : gestureColor); + + // Draw gesture log + DrawText("Log", gestureLogPosition.x, gestureLogPosition.y, 20, BLACK); + + // Loop in both directions to print the gesture log array in the inverted order (and looping around if the index started somewhere in the middle) + for (i = 0, ii = gestureLogIndex; i < GESTURE_LOG_SIZE; i++, ii = (ii + 1) % GESTURE_LOG_SIZE) DrawText(gestureLog[ii], gestureLogPosition.x, gestureLogPosition.y + 410 - i*20, 20, (i == 0 ? gestureColor : LIGHTGRAY)); + Color logButton1Color, logButton2Color; + switch (logMode) + { + case 3: logButton1Color=MAROON; logButton2Color=MAROON; break; + case 2: logButton1Color=GRAY; logButton2Color=MAROON; break; + case 1: logButton1Color=MAROON; logButton2Color=GRAY; break; + default: logButton1Color=GRAY; logButton2Color=GRAY; break; + } + DrawRectangleRec(logButton1, logButton1Color); + DrawText("Hide", logButton1.x + 7, logButton1.y + 3, 10, WHITE); + DrawText("Repeat", logButton1.x + 7, logButton1.y + 13, 10, WHITE); + DrawRectangleRec(logButton2, logButton2Color); + DrawText("Hide", logButton1.x + 62, logButton1.y + 3, 10, WHITE); + DrawText("Hold", logButton1.x + 62, logButton1.y + 13, 10, WHITE); + + // Draw protractor + DrawText("Angle", protractorPosition.x + 55, protractorPosition.y + 76, 10, BLACK); + const char *angleString = TextFormat("%f", currentAngleDegrees); + const int angleStringDot = TextFindIndex(angleString, "."); + const char *angleStringTrim = TextSubtext(angleString, 0, angleStringDot + 3); + DrawText( angleStringTrim, protractorPosition.x + 55, protractorPosition.y + 92, 20, gestureColor); + DrawCircle(protractorPosition.x, protractorPosition.y, 80.0f, WHITE); + DrawLineEx((Vector2){ protractorPosition.x - 90, protractorPosition.y }, (Vector2){ protractorPosition.x + 90, protractorPosition.y }, 3.0f, LIGHTGRAY); + DrawLineEx((Vector2){ protractorPosition.x, protractorPosition.y - 90 }, (Vector2){ protractorPosition.x, protractorPosition.y + 90 }, 3.0f, LIGHTGRAY); + DrawLineEx((Vector2){ protractorPosition.x - 80, protractorPosition.y - 45 }, (Vector2){ protractorPosition.x + 80, protractorPosition.y + 45 }, 3.0f, GREEN); + DrawLineEx((Vector2){ protractorPosition.x - 80, protractorPosition.y + 45 }, (Vector2){ protractorPosition.x + 80, protractorPosition.y - 45 }, 3.0f, GREEN); + DrawText("0", protractorPosition.x + 96, protractorPosition.y - 9, 20, BLACK); + DrawText("30", protractorPosition.x + 74, protractorPosition.y - 68, 20, BLACK); + DrawText("90", protractorPosition.x - 11, protractorPosition.y - 110, 20, BLACK); + DrawText("150", protractorPosition.x - 100, protractorPosition.y - 68, 20, BLACK); + DrawText("180", protractorPosition.x - 124, protractorPosition.y - 9, 20, BLACK); + DrawText("210", protractorPosition.x - 100, protractorPosition.y + 50, 20, BLACK); + DrawText("270", protractorPosition.x - 18, protractorPosition.y + 92, 20, BLACK); + DrawText("330", protractorPosition.x + 72, protractorPosition.y + 50, 20, BLACK); + if (currentAngleDegrees != 0.0f) DrawLineEx(protractorPosition, finalVector, 3.0f, gestureColor); + + // Draw touch and mouse pointer points + if (currentGesture != GESTURE_NONE) + { + if ( touchCount != 0 ) + { + for (i = 0; i < touchCount; i++) + { + DrawCircleV(touchPosition[i], 50.0f, Fade(gestureColor, 0.5f)); + DrawCircleV(touchPosition[i], 5.0f, gestureColor); + } + + if (touchCount == 2) DrawLineEx(touchPosition[0], touchPosition[1], ((currentGesture == 512)? 8 : 12), gestureColor); + } + else + { + DrawCircleV(mousePosition, 35.0f, Fade(gestureColor, 0.5f)); + DrawCircleV(mousePosition, 5.0f, gestureColor); + } + } + + EndDrawing(); + //-------------------------------------------------------------------------------------- } -#endif // De-Initialization //-------------------------------------------------------------------------------------- @@ -103,235 +275,42 @@ int main(void) //---------------------------------------------------------------------------------- // Module Functions Definition //---------------------------------------------------------------------------------- -static void UpdateDrawFrame(void) +// Get text string for gesture value +static char const *GetGestureName(int gesture) { - // Update - //-------------------------------------------------------------------------------------- - // Handle common gestures data - int i, ii; // Iterators that will be reused by all for loops - const int currentGesture = GetGestureDetected(); - const float currentDragDegrees = GetGestureDragAngle(); - const float currentPitchDegrees = GetGesturePinchAngle(); - const int touchCount = GetTouchPointCount(); - - // Handle last gesture - if ((currentGesture != 0) && (currentGesture != 4) && (currentGesture != previousGesture)) - lastGesture = currentGesture; // Filter the meaningful gestures (1, 2, 8 to 512) for the display - - // Handle gesture log - if (IsMouseButtonReleased(MOUSE_BUTTON_LEFT)) + switch (gesture) { - if (CheckCollisionPointRec(GetMousePosition(), logButton1)) - { - switch (logMode) - { - case 3: logMode=2; break; - case 2: logMode=3; break; - case 1: logMode=0; break; - default: logMode=1; break; - } - } - else if (CheckCollisionPointRec(GetMousePosition(), logButton2)) - { - switch (logMode) - { - case 3: logMode=1; break; - case 2: logMode=0; break; - case 1: logMode=3; break; - default: logMode=2; break; - } - } - } - - int fillLog = 0; // Gate variable to be used to allow or not the gesture log to be filled - if (currentGesture !=0) - { - if (logMode == 3) // 3 hides repeated events and hide hold events - { - if (((currentGesture != 4) && (currentGesture != previousGesture)) || (currentGesture < 3)) fillLog = 1; - } - else if (logMode == 2) // 2 shows repeated events but hide hold events - { - if (currentGesture != 4) fillLog = 1; - } - else if (logMode == 1) // 1 hides repeated events - { - if (currentGesture != previousGesture) fillLog = 1; - } - else // 0 shows repeated events - { - fillLog = 1; - } - } - - if (fillLog) // If one of the conditions from logMode was met, fill the gesture log - { - previousGesture = currentGesture; - gestureColor = GetGestureColor(currentGesture); - if (gestureLogIndex <= 0) gestureLogIndex = GESTURE_LOG_SIZE; - gestureLogIndex--; - - // Copy the gesture respective name to the gesture log array - TextCopy(gestureLog[gestureLogIndex], GetGestureName(currentGesture)); - } - - // Handle protractor - if (currentGesture > 255) // aka Pinch In and Pinch Out - { - currentAngleDegrees = currentPitchDegrees; - } - else if (currentGesture > 15) // aka Swipe Right, Swipe Left, Swipe Up and Swipe Down - { - currentAngleDegrees = currentDragDegrees; - } - else if (currentGesture > 0) // aka Tap, Doubletap, Hold and Grab - { - currentAngleDegrees = 0.0f; - } - - float currentAngleRadians = ((currentAngleDegrees +90.0f)*PI/180); // Convert the current angle to Radians - finalVector = (Vector2){ (angleLength*sinf(currentAngleRadians)) + protractorPosition.x, (angleLength*cosf(currentAngleRadians)) + protractorPosition.y }; // Calculate the final vector for display - - // Handle touch and mouse pointer points - Vector2 touchPosition[MAX_TOUCH_COUNT] = { 0 }; - Vector2 mousePosition = {0, 0}; - if (currentGesture != GESTURE_NONE) - { - if (touchCount != 0) - { - for (i = 0; i < touchCount; i++) touchPosition[i] = GetTouchPosition(i); // Fill the touch positions - } - else mousePosition = GetMousePosition(); - } - //-------------------------------------------------------------------------------------- - - // Draw - //-------------------------------------------------------------------------------------- - BeginDrawing(); - ClearBackground(RAYWHITE); - - // Draw common elements - DrawText("*", messagePosition.x + 5, messagePosition.y + 5, 10, BLACK); - DrawText("Example optimized for Web/HTML5\non Smartphones with Touch Screen.", messagePosition.x + 15, messagePosition.y + 5, 10, BLACK); - DrawText("*", messagePosition.x + 5, messagePosition.y + 35, 10, BLACK); - DrawText("While running on Desktop Web Browsers,\ninspect and turn on Touch Emulation.", messagePosition.x + 15, messagePosition.y + 35, 10, BLACK); - - // Draw last gesture - DrawText("Last gesture", lastGesturePosition.x + 33, lastGesturePosition.y - 47, 20, BLACK); - DrawText("Swipe Tap Pinch Touch", lastGesturePosition.x + 17, lastGesturePosition.y - 18, 10, BLACK); - DrawRectangle(lastGesturePosition.x + 20, lastGesturePosition.y, 20, 20, lastGesture == GESTURE_SWIPE_UP ? RED : LIGHTGRAY); - DrawRectangle(lastGesturePosition.x, lastGesturePosition.y + 20, 20, 20, lastGesture == GESTURE_SWIPE_LEFT ? RED : LIGHTGRAY); - DrawRectangle(lastGesturePosition.x + 40, lastGesturePosition.y + 20, 20, 20, lastGesture == GESTURE_SWIPE_RIGHT ? RED : LIGHTGRAY); - DrawRectangle(lastGesturePosition.x + 20, lastGesturePosition.y + 40, 20, 20, lastGesture == GESTURE_SWIPE_DOWN ? RED : LIGHTGRAY); - DrawCircle(lastGesturePosition.x + 80, lastGesturePosition.y + 16, 10, lastGesture == GESTURE_TAP ? BLUE : LIGHTGRAY); - DrawRing( (Vector2){lastGesturePosition.x + 103, lastGesturePosition.y + 16}, 6.0f, 11.0f, 0.0f, 360.0f, 0, lastGesture == GESTURE_DRAG ? LIME : LIGHTGRAY); - DrawCircle(lastGesturePosition.x + 80, lastGesturePosition.y + 43, 10, lastGesture == GESTURE_DOUBLETAP ? SKYBLUE : LIGHTGRAY); - DrawCircle(lastGesturePosition.x + 103, lastGesturePosition.y + 43, 10, lastGesture == GESTURE_DOUBLETAP ? SKYBLUE : LIGHTGRAY); - DrawTriangle((Vector2){ lastGesturePosition.x + 122, lastGesturePosition.y + 16 }, (Vector2){ lastGesturePosition.x + 137, lastGesturePosition.y + 26 }, (Vector2){ lastGesturePosition.x + 137, lastGesturePosition.y + 6 }, lastGesture == GESTURE_PINCH_OUT? ORANGE : LIGHTGRAY); - DrawTriangle((Vector2){ lastGesturePosition.x + 147, lastGesturePosition.y + 6 }, (Vector2){ lastGesturePosition.x + 147, lastGesturePosition.y + 26 }, (Vector2){ lastGesturePosition.x + 162, lastGesturePosition.y + 16 }, lastGesture == GESTURE_PINCH_OUT? ORANGE : LIGHTGRAY); - DrawTriangle((Vector2){ lastGesturePosition.x + 125, lastGesturePosition.y + 33 }, (Vector2){ lastGesturePosition.x + 125, lastGesturePosition.y + 53 }, (Vector2){ lastGesturePosition.x + 140, lastGesturePosition.y + 43 }, lastGesture == GESTURE_PINCH_IN? VIOLET : LIGHTGRAY); - DrawTriangle((Vector2){ lastGesturePosition.x + 144, lastGesturePosition.y + 43 }, (Vector2){ lastGesturePosition.x + 159, lastGesturePosition.y + 53 }, (Vector2){ lastGesturePosition.x + 159, lastGesturePosition.y + 33 }, lastGesture == GESTURE_PINCH_IN? VIOLET : LIGHTGRAY); - for (i = 0; i < 4; i++) DrawCircle(lastGesturePosition.x + 180, lastGesturePosition.y + 7 + i*15, 5, touchCount <= i? LIGHTGRAY : gestureColor); - - // Draw gesture log - DrawText("Log", gestureLogPosition.x, gestureLogPosition.y, 20, BLACK); - - // Loop in both directions to print the gesture log array in the inverted order (and looping around if the index started somewhere in the middle) - for (i = 0, ii = gestureLogIndex; i < GESTURE_LOG_SIZE; i++, ii = (ii + 1) % GESTURE_LOG_SIZE) DrawText(gestureLog[ii], gestureLogPosition.x, gestureLogPosition.y + 410 - i*20, 20, (i == 0 ? gestureColor : LIGHTGRAY)); - Color logButton1Color, logButton2Color; - switch (logMode) - { - case 3: logButton1Color=MAROON; logButton2Color=MAROON; break; - case 2: logButton1Color=GRAY; logButton2Color=MAROON; break; - case 1: logButton1Color=MAROON; logButton2Color=GRAY; break; - default: logButton1Color=GRAY; logButton2Color=GRAY; break; - } - DrawRectangleRec(logButton1, logButton1Color); - DrawText("Hide", logButton1.x + 7, logButton1.y + 3, 10, WHITE); - DrawText("Repeat", logButton1.x + 7, logButton1.y + 13, 10, WHITE); - DrawRectangleRec(logButton2, logButton2Color); - DrawText("Hide", logButton1.x + 62, logButton1.y + 3, 10, WHITE); - DrawText("Hold", logButton1.x + 62, logButton1.y + 13, 10, WHITE); - - // Draw protractor - DrawText("Angle", protractorPosition.x + 55, protractorPosition.y + 76, 10, BLACK); - const char *angleString = TextFormat("%f", currentAngleDegrees); - const int angleStringDot = TextFindIndex(angleString, "."); - const char *angleStringTrim = TextSubtext(angleString, 0, angleStringDot + 3); - DrawText( angleStringTrim, protractorPosition.x + 55, protractorPosition.y + 92, 20, gestureColor); - DrawCircle(protractorPosition.x, protractorPosition.y, 80.0f, WHITE); - DrawLineEx((Vector2){ protractorPosition.x - 90, protractorPosition.y }, (Vector2){ protractorPosition.x + 90, protractorPosition.y }, 3.0f, LIGHTGRAY); - DrawLineEx((Vector2){ protractorPosition.x, protractorPosition.y - 90 }, (Vector2){ protractorPosition.x, protractorPosition.y + 90 }, 3.0f, LIGHTGRAY); - DrawLineEx((Vector2){ protractorPosition.x - 80, protractorPosition.y - 45 }, (Vector2){ protractorPosition.x + 80, protractorPosition.y + 45 }, 3.0f, GREEN); - DrawLineEx((Vector2){ protractorPosition.x - 80, protractorPosition.y + 45 }, (Vector2){ protractorPosition.x + 80, protractorPosition.y - 45 }, 3.0f, GREEN); - DrawText("0", protractorPosition.x + 96, protractorPosition.y - 9, 20, BLACK); - DrawText("30", protractorPosition.x + 74, protractorPosition.y - 68, 20, BLACK); - DrawText("90", protractorPosition.x - 11, protractorPosition.y - 110, 20, BLACK); - DrawText("150", protractorPosition.x - 100, protractorPosition.y - 68, 20, BLACK); - DrawText("180", protractorPosition.x - 124, protractorPosition.y - 9, 20, BLACK); - DrawText("210", protractorPosition.x - 100, protractorPosition.y + 50, 20, BLACK); - DrawText("270", protractorPosition.x - 18, protractorPosition.y + 92, 20, BLACK); - DrawText("330", protractorPosition.x + 72, protractorPosition.y + 50, 20, BLACK); - if (currentAngleDegrees != 0.0f) DrawLineEx(protractorPosition, finalVector, 3.0f, gestureColor); - - // Draw touch and mouse pointer points - if (currentGesture != GESTURE_NONE) - { - if ( touchCount != 0 ) - { - for (i = 0; i < touchCount; i++) - { - DrawCircleV(touchPosition[i], 50.0f, Fade(gestureColor, 0.5f)); - DrawCircleV(touchPosition[i], 5.0f, gestureColor); - } - - if (touchCount == 2) DrawLineEx(touchPosition[0], touchPosition[1], ((currentGesture == 512)? 8 : 12), gestureColor); - } - else - { - DrawCircleV(mousePosition, 35.0f, Fade(gestureColor, 0.5f)); - DrawCircleV(mousePosition, 5.0f, gestureColor); - } - } - - EndDrawing(); - //-------------------------------------------------------------------------------------- -} - -static char const *GetGestureName(int i) -{ - switch (i) - { - case 0: return "None"; break; - case 1: return "Tap"; break; - case 2: return "Double Tap"; break; - case 4: return "Hold"; break; - case 8: return "Drag"; break; - case 16: return "Swipe Right"; break; - case 32: return "Swipe Left"; break; - case 64: return "Swipe Up"; break; - case 128: return "Swipe Down"; break; - case 256: return "Pinch In"; break; - case 512: return "Pinch Out"; break; - default: return "Unknown"; break; + case 0: return "None"; break; + case 1: return "Tap"; break; + case 2: return "Double Tap"; break; + case 4: return "Hold"; break; + case 8: return "Drag"; break; + case 16: return "Swipe Right"; break; + case 32: return "Swipe Left"; break; + case 64: return "Swipe Up"; break; + case 128: return "Swipe Down"; break; + case 256: return "Pinch In"; break; + case 512: return "Pinch Out"; break; + default: return "Unknown"; break; } } -static Color GetGestureColor(int i) +// Get color for gesture value +static Color GetGestureColor(int gesture) { - switch (i) + switch (gesture) { - case 0: return BLACK; break; - case 1: return BLUE; break; - case 2: return SKYBLUE; break; - case 4: return BLACK; break; - case 8: return LIME; break; - case 16: return RED; break; - case 32: return RED; break; - case 64: return RED; break; - case 128: return RED; break; - case 256: return VIOLET; break; - case 512: return ORANGE; break; - default: return BLACK; break; + case 0: return BLACK; break; + case 1: return BLUE; break; + case 2: return SKYBLUE; break; + case 4: return BLACK; break; + case 8: return LIME; break; + case 16: return RED; break; + case 32: return RED; break; + case 64: return RED; break; + case 128: return RED; break; + case 256: return VIOLET; break; + case 512: return ORANGE; break; + default: return BLACK; break; } } From b2811010015e613c58b66eb3c640950fb815bb14 Mon Sep 17 00:00:00 2001 From: Bruno Cabral Date: Sun, 14 Sep 2025 01:05:07 -0700 Subject: [PATCH 152/190] [build][cmake] Review web compilation system (#5181) * [cmake] export automatically raylib definitions and compile/link options * [cmake] pass emscripten options to consumer project * [web] compile for web * [web] canvas width 100% --- examples/CMakeLists.txt | 46 +++++++++++++------ .../others/web_basic_window.c | 4 +- projects/CMake/CMakeLists.txt | 41 ----------------- projects/CMake/README.md | 27 ----------- src/CMakeLists.txt | 8 ---- src/shell.html | 2 +- 6 files changed, 34 insertions(+), 94 deletions(-) rename projects/CMake/core_basic_window.c => examples/others/web_basic_window.c (95%) delete mode 100644 projects/CMake/CMakeLists.txt delete mode 100644 projects/CMake/README.md diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 135db49f5..e63c1a7c8 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -97,17 +97,9 @@ if (${PLATFORM} MATCHES "Android") list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_basic_lighting.c) elseif (${PLATFORM} MATCHES "Web") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Os") - # Since WASM is used, ALLOW_MEMORY_GROWTH has no extra overheads - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s WASM=1 -s ASYNCIFY -s ALLOW_MEMORY_GROWTH=1 --shell-file ${CMAKE_SOURCE_DIR}/src/shell.html") - set(CMAKE_EXECUTABLE_SUFFIX ".html") - - list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/raylib_opengl_interop.c) - - # Remove the -rdynamic flag because otherwise emscripten - # does not generate HTML+JS+WASM files, only a non-working - # and fat HTML - string(REPLACE "-rdynamic" "" CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS}") + set(example_sources) # clear example_sources + list(APPEND example_sources others/web_basic_window.c) + list(APPEND example_sources core/core_input_gestures_testbed.c) elseif ("${PLATFORM}" STREQUAL "DRM") list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/rlgl_standalone.c) @@ -165,10 +157,34 @@ foreach (example_source ${example_sources}) string(REGEX MATCH ".*/.*/" resources_dir ${example_source}) string(APPEND resources_dir "resources") - if (${PLATFORM} MATCHES "Web" AND EXISTS ${resources_dir}) - # The local resources path needs to be mapped to /resources virtual path - string(APPEND resources_dir "@resources") - set_target_properties(${example_name} PROPERTIES LINK_FLAGS "--preload-file ${resources_dir}") + if (${PLATFORM} MATCHES "Web") + target_compile_options(${example_name} PRIVATE -Os) + target_link_options(${example_name} PRIVATE + -sALLOW_MEMORY_GROWTH=1 + -sEXPORTED_RUNTIME_METHODS=[requestFullscreen] + -sUSE_GLFW=3 + --shell-file "${CMAKE_SOURCE_DIR}/src/shell.html" + ) + set_target_properties(${example_name} PROPERTIES SUFFIX ".html") + + if (EXISTS ${resources_dir}) + # The local resources path needs to be mapped to /resources virtual path + string(APPEND resources_dir "@resources") + set_target_properties(${example_name} PROPERTIES LINK_FLAGS "--preload-file ${resources_dir}") + endif () + + if(${GRAPHICS} MATCHES "GRAPHICS_API_OPENGL_ES3") + target_link_options(${example_name} PUBLIC "-sMIN_WEBGL_VERSION=2") + target_link_options(${example_name} PUBLIC "-sMAX_WEBGL_VERSION=2") + endif() + + # Checks if OSX and links appropriate frameworks (Only required on MacOS) + if (APPLE) + target_link_libraries(${example_name} "-framework IOKit") + target_link_libraries(${example_name} "-framework Cocoa") + target_link_libraries(${example_name} "-framework OpenGL") + endif() + endif () endforeach () diff --git a/projects/CMake/core_basic_window.c b/examples/others/web_basic_window.c similarity index 95% rename from projects/CMake/core_basic_window.c rename to examples/others/web_basic_window.c index cb23a6f87..8aeebf414 100644 --- a/projects/CMake/core_basic_window.c +++ b/examples/others/web_basic_window.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [core] example - Basic window (adapted for HTML5 platform) +* raylib [others] example - Basic window (adapted for HTML5 platform) * * This example is prepared to compile for PLATFORM_WEB and PLATFORM_DESKTOP * As you will notice, code structure is slightly different to the other examples... @@ -37,7 +37,7 @@ int main() { // Initialization //-------------------------------------------------------------------------------------- - InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window"); + InitWindow(screenWidth, screenHeight, "raylib [others] example - web basic window"); #if defined(PLATFORM_WEB) emscripten_set_main_loop(UpdateDrawFrame, 0, 1); diff --git a/projects/CMake/CMakeLists.txt b/projects/CMake/CMakeLists.txt deleted file mode 100644 index 56a5a5f51..000000000 --- a/projects/CMake/CMakeLists.txt +++ /dev/null @@ -1,41 +0,0 @@ -cmake_minimum_required(VERSION 3.11) # FetchContent is available in 3.11+ -project(example) - -# Generate compile_commands.json -set(CMAKE_EXPORT_COMPILE_COMMANDS ON) - -# Dependencies -set(RAYLIB_VERSION 5.5) -find_package(raylib ${RAYLIB_VERSION} QUIET) # QUIET or REQUIRED -if (NOT raylib_FOUND) # If there's none, fetch and build raylib - include(FetchContent) - FetchContent_Declare( - raylib - DOWNLOAD_EXTRACT_TIMESTAMP OFF - URL https://github.com/raysan5/raylib/archive/refs/tags/${RAYLIB_VERSION}.tar.gz - ) - FetchContent_GetProperties(raylib) - if (NOT raylib_POPULATED) # Have we downloaded raylib yet? - set(FETCHCONTENT_QUIET NO) - FetchContent_MakeAvailable(raylib) - endif() -endif() - -# Our Project - -add_executable(${PROJECT_NAME} core_basic_window.c) -#set(raylib_VERBOSE 1) -target_link_libraries(${PROJECT_NAME} raylib) - -# Web Configurations -if (${PLATFORM} STREQUAL "Web") - set_target_properties(${PROJECT_NAME} PROPERTIES SUFFIX ".html") # Tell Emscripten to build an example.html file. - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s USE_GLFW=3 -s ASSERTIONS=1 -s WASM=1 -s ASYNCIFY -s GL_ENABLE_GET_PROC_ADDRESS=1") -endif() - -# Checks if OSX and links appropriate frameworks (Only required on MacOS) -if (APPLE) - target_link_libraries(${PROJECT_NAME} "-framework IOKit") - target_link_libraries(${PROJECT_NAME} "-framework Cocoa") - target_link_libraries(${PROJECT_NAME} "-framework OpenGL") -endif() diff --git a/projects/CMake/README.md b/projects/CMake/README.md deleted file mode 100644 index fc4fe5542..000000000 --- a/projects/CMake/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# raylib CMake Project - -This provides a base project template which builds with [CMake](https://cmake.org). - -## Usage - -To compile the example, use one of the following dependending on your build target... - -### Desktop - -Use the following to build for desktop: - -``` bash -cmake -B build -cmake --build build -``` - -### Web - -Compiling for the web requires the [Emscripten SDK](https://emscripten.org/docs/getting_started/downloads.html): - -``` bash -mkdir build -cd build -emcmake cmake .. -DPLATFORM=Web -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXECUTABLE_SUFFIX=".html" -emmake make -``` diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index eb37f1a8e..f31c4e578 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -68,14 +68,6 @@ else() ) endif() -if (${PLATFORM} MATCHES "Web") - target_link_options(raylib PUBLIC "-sUSE_GLFW=3" -sEXPORTED_RUNTIME_METHODS=ccall -sASYNCIFY) - if(${GRAPHICS} MATCHES "GRAPHICS_API_OPENGL_ES3") - target_link_options(raylib PUBLIC "-sMIN_WEBGL_VERSION=2") - target_link_options(raylib PUBLIC "-sMAX_WEBGL_VERSION=2") - endif() -endif() - set_target_properties(raylib PROPERTIES PUBLIC_HEADER "${raylib_public_headers}" VERSION ${PROJECT_VERSION} diff --git a/src/shell.html b/src/shell.html index 9483c47fd..e6c80a39b 100644 --- a/src/shell.html +++ b/src/shell.html @@ -34,7 +34,7 @@