diff --git a/BINDINGS.md b/BINDINGS.md index 6f96103c7..df53bb0ed 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -71,7 +71,7 @@ Some people ported raylib to other languages in the form of bindings or wrappers | [raylib-rs](https://github.com/raylib-rs/raylib-rs) | **5.5** | [Rust](https://www.rust-lang.org) | Zlib | | [raylib-ruby](https://github.com/wilsonsilva/raylib-ruby) | 4.5 | [Ruby](https://www.ruby-lang.org) | Zlib | | [Relib](https://github.com/RedCubeDev-ByteSpace/Relib) | 3.5 | [ReCT](https://github.com/RedCubeDev-ByteSpace/ReCT) | **???** | -| [racket-raylib](https://github.com/eutro/racket-raylib) | 4.0 | [Racket](https://racket-lang.org) | MIT/Apache-2.0 | +| [racket-raylib](https://github.com/eutro/racket-raylib) | **5.5** | [Racket](https://racket-lang.org) | MIT/Apache-2.0 | | [raylib-swift](https://github.com/STREGAsGate/Raylib) | 4.0 | [Swift](https://swift.org) | MIT | | [raylib-scopes](https://github.com/salotz/raylib-scopes) | auto | [Scopes](http://scopes.rocks) | MIT | | [raylib-SmallBASIC](https://github.com/smallbasic/smallbasic.plugins/tree/master/raylib) | **5.5** | [SmallBASIC](https://github.com/smallbasic/SmallBASIC) | GPLv3 | diff --git a/ROADMAP.md b/ROADMAP.md index 87ca2e1c8..9a8111133 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -3,16 +3,18 @@ Here is a wishlist with features and ideas to improve the library. Note that features listed here are usually long term improvements or just describe a route to follow for the library. There are also some additional places to look for raylib improvements and ideas: - [GitHub Issues](https://github.com/raysan5/raylib/issues) has several open issues for possible improvements or bugs to fix. + - [GitHub PRs](https://github.com/raysan5/raylib/pulls) open with improvements to be reviewed. - [raylib source code](https://github.com/raysan5/raylib/tree/master/src) has multiple *TODO* comments around code with pending things to review or improve. - raylib wishlists discussions are open to everyone to ask for improvements, feel free to check and comment: - - [raylib wishlist 2021](https://github.com/raysan5/raylib/discussions/1502) - - [raylib wishlist 2022](https://github.com/raysan5/raylib/discussions/2272) + - [raylib 6.0 wishlist](https://github.com/raysan5/raylib/discussions/4660) - [raylib 5.0 wishlist](https://github.com/raysan5/raylib/discussions/2952) - + - [raylib wishlist 2022](https://github.com/raysan5/raylib/discussions/2272) + - [raylib wishlist 2021](https://github.com/raysan5/raylib/discussions/1502) + _Current version of raylib is complete and functional but there is always room for improvements._ **raylib 5.x** - - [ ] `rcore`: Support additional platforms: iOS, Xbox Series S|X + - [ ] `rcore`: Support additional platforms: iOS, consoles? - [ ] `rcore_web`: Avoid GLFW dependency, functionality can be directly implemented using emscripten SDK - [ ] `rlgl`: Review GLSL shaders naming conventions for consistency - [ ] `textures`: Improve compressed textures support, loading and saving diff --git a/build.zig b/build.zig index d7d118003..b3da65984 100644 --- a/build.zig +++ b/build.zig @@ -192,7 +192,6 @@ fn compileRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std. setDesktopPlatform(raylib, options.platform); }, .linux => { - if (options.platform == .drm) { if (options.opengl_version == .auto) { raylib.linkSystemLibrary("GLESv2"); @@ -209,34 +208,32 @@ fn compileRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std. } else if (target.result.abi == .android) { //these are the only tag options per https://developer.android.com/ndk/guides/other_build_systems - const hostTuple = switch(builtin.target.os.tag) { - .linux => "linux-x86_64", + const hostTuple = switch (builtin.target.os.tag) { + .linux => "linux-x86_64", .windows => "windows-x86_64", - .macos => "darwin-x86_64", - else => { - @panic("unsupported host OS"); - } + .macos => "darwin-x86_64", + else => @panic("unsupported host OS"), }; const androidTriple = try target.result.linuxTriple(b.allocator); const androidNdkPathString: []const u8 = options.android_ndk; - if(androidNdkPathString.len < 1) @panic("no ndk path provided and ANDROID_NDK_HOME is not set"); + if (androidNdkPathString.len < 1) @panic("no ndk path provided and ANDROID_NDK_HOME is not set"); const androidApiLevel: []const u8 = options.android_api_version; - const androidSysroot = try std.fs.path.join(b.allocator, &.{androidNdkPathString, "/toolchains/llvm/prebuilt/", hostTuple, "/sysroot"}); - const androidLibPath = try std.fs.path.join(b.allocator, &.{androidSysroot, "/usr/lib/", androidTriple}); - const androidApiSpecificPath = try std.fs.path.join(b.allocator, &.{androidLibPath, androidApiLevel}); - const androidIncludePath = try std.fs.path.join(b.allocator, &.{androidSysroot, "/usr/include"}); - const androidArchIncludePath = try std.fs.path.join(b.allocator, &.{androidIncludePath, androidTriple}); - const androidAsmPath = try std.fs.path.join(b.allocator, &.{androidIncludePath, "/asm-generic"}); - const androidGluePath = try std.fs.path.join(b.allocator, &.{androidNdkPathString, "/sources/android/native_app_glue/"}); + const androidSysroot = try std.fs.path.join(b.allocator, &.{ androidNdkPathString, "/toolchains/llvm/prebuilt/", hostTuple, "/sysroot" }); + const androidLibPath = try std.fs.path.join(b.allocator, &.{ androidSysroot, "/usr/lib/", androidTriple }); + const androidApiSpecificPath = try std.fs.path.join(b.allocator, &.{ androidLibPath, androidApiLevel }); + const androidIncludePath = try std.fs.path.join(b.allocator, &.{ androidSysroot, "/usr/include" }); + const androidArchIncludePath = try std.fs.path.join(b.allocator, &.{ androidIncludePath, androidTriple }); + const androidAsmPath = try std.fs.path.join(b.allocator, &.{ androidIncludePath, "/asm-generic" }); + const androidGluePath = try std.fs.path.join(b.allocator, &.{ androidNdkPathString, "/sources/android/native_app_glue/" }); - raylib.addLibraryPath(.{ .cwd_relative = androidLibPath}); + raylib.addLibraryPath(.{ .cwd_relative = androidLibPath }); raylib.root_module.addLibraryPath(.{ .cwd_relative = androidApiSpecificPath }); raylib.addSystemIncludePath(.{ .cwd_relative = androidIncludePath }); - raylib.addSystemIncludePath(.{ .cwd_relative = androidArchIncludePath}); - raylib.addSystemIncludePath( .{ .cwd_relative = androidAsmPath}); - raylib.addSystemIncludePath(.{ .cwd_relative = androidGluePath}); + raylib.addSystemIncludePath(.{ .cwd_relative = androidArchIncludePath }); + raylib.addSystemIncludePath(.{ .cwd_relative = androidAsmPath }); + raylib.addSystemIncludePath(.{ .cwd_relative = androidGluePath }); var libcData = std.ArrayList(u8).init(b.allocator); const writer = libcData.writer(); @@ -442,7 +439,7 @@ pub const PlatformBackend = enum { rgfw, sdl, drm, - android + android, }; pub fn build(b: *std.Build) !void { diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index f77ece4c0..135db49f5 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -90,13 +90,14 @@ if (${PLATFORM} MATCHES "Android") list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_custom_uniform.c) list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_model_shader.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_view_depth.c) list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_postprocessing.c) list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_raymarching.c) list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_palette_switch.c) 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") + 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") diff --git a/examples/Makefile b/examples/Makefile index 5f2a18c6f..548e869c2 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -232,7 +232,7 @@ CFLAGS = -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces -Wunused-result ifeq ($(BUILD_MODE),DEBUG) CFLAGS += -g -D_DEBUG -else +else ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) ifeq ($(BUILD_WEB_ASYNCIFY),TRUE) CFLAGS += -O3 @@ -341,12 +341,12 @@ ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_R # --source-map-base # allow debugging in browser with source map # --shell-file shell.html # define a custom shell .html and output extension LDFLAGS += -sTOTAL_MEMORY=$(BUILD_WEB_HEAP_SIZE) -sFORCE_FILESYSTEM=1 -sMINIFY_HTML=0 - + # Using GLFW3 library (instead of RGFW) ifeq ($(TARGET_PLATFORM),PLATFORM_WEB) LDFLAGS += -sUSE_GLFW=3 endif - + # Build using asyncify ifeq ($(BUILD_WEB_ASYNCIFY),TRUE) LDFLAGS += -sASYNCIFY @@ -642,6 +642,7 @@ SHADERS = \ shaders/shaders_texture_outline \ shaders/shaders_texture_tiling \ shaders/shaders_texture_waves \ + shaders/shaders_view_depth \ shaders/shaders_write_depth \ shaders/shaders_vertex_displacement @@ -652,6 +653,7 @@ AUDIO = \ audio/audio_raw_stream \ audio/audio_sound_loading \ audio/audio_sound_multi \ + audio/audio_sound_positioning \ audio/audio_stream_effects OTHERS = \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 7ec6868e2..04fbe927a 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -278,7 +278,7 @@ ifeq ($(PLATFORM),$(filter $(PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) # --source-map-base # allow debugging in browser with source map # --shell-file shell.html # define a custom shell .html and output extension LDFLAGS += -sTOTAL_MEMORY=$(BUILD_WEB_HEAP_SIZE) -sFORCE_FILESYSTEM=1 -sEXPORTED_RUNTIME_METHODS=ccall -sMINIFY_HTML=0 - + # Using GLFW3 library (instead of RGFW) ifeq ($(PLATFORM),PLATFORM_WEB) LDFLAGS += -sUSE_GLFW=3 @@ -525,6 +525,7 @@ SHADERS = \ shaders/shaders_texture_tiling \ shaders/shaders_texture_waves \ shaders/shaders_vertex_displacement \ + shaders/shaders_view_depth \ shaders/shaders_write_depth AUDIO = \ @@ -534,6 +535,7 @@ AUDIO = \ audio/audio_raw_stream \ audio/audio_sound_loading \ audio/audio_sound_multi \ + audio/audio_sound_positioning \ audio/audio_stream_effects OTHERS = \ @@ -1150,6 +1152,10 @@ shaders/shaders_texture_waves: shaders/shaders_texture_waves.c --preload-file shaders/resources/space.png@resources/space.png \ --preload-file shaders/resources/shaders/glsl100/wave.fs@resources/shaders/glsl100/wave.fs +shaders/shaders_view_depth: shaders/shaders_view_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 + 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 @@ -1235,4 +1241,3 @@ ifeq ($(PLATFORM),$(filter $(PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) del *.o *.html *.js endif @echo Cleaning done - diff --git a/examples/README.md b/examples/README.md index 38daad717..9982c2001 100644 --- a/examples/README.md +++ b/examples/README.md @@ -201,6 +201,7 @@ Examples using raylib shaders functionality, including shaders loading, paramete | 139 | [shaders_basic_pbr](shaders/shaders_basic_pbr.c) | shaders_basic_pbr | ⭐️⭐️⭐️⭐️ | 5.0 | 5.1-dev | [Afan OLOVCIC](https://github.com/_DevDad) | | 140 | [shaders_lightmap](shaders/shaders_lightmap.c) | shaders_lightmap | ⭐️⭐️⭐️☆ | 4.5 | 4.5 | [Jussi Viitala](https://github.com/nullstare) | | 141 | [shaders_rounded_rectangle](shaders/shaders_rounded_rectangle.c) | shaders_rounded_rectangle | ⭐️⭐️⭐️☆ | 5.5 | 5.5 | [Anstro Pleuton](https://github.com/anstropleuton) | +| 142 | [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 @@ -215,6 +216,7 @@ Examples using raylib audio functionality, including sound/music loading and pla | 146 | [audio_mixed_processor](audio/audio_mixed_processor.c) | audio_mixed_processor | ⭐️⭐️⭐️⭐️ | 4.2 | 4.2 | [hkc](https://github.com/hatkidchan) | | 147 | [audio_stream_effects](audio/audio_stream_effects.c) | audio_stream_effects | ⭐️⭐️⭐️⭐️ | 4.2 | 5.0 | [Ray](https://github.com/raysan5) | | 148 | [audio_sound_multi](audio/audio_sound_multi.c) | audio_sound_multi | ⭐️⭐️☆☆ | 4.6 | 4.6 | [Jeffery Myers](https://github.com/JeffM2501) | +| 149 | [audio_sound_positioning](audio/audio_sound_positioning.c) | audio_sound_positioning | ⭐️⭐️☆☆ | 5.5 | 5.5 | [Le Juez Victor](https://github.com/Bigfoot71) | ### category: others @@ -222,12 +224,11 @@ Examples showing raylib misc functionality that does not fit in other categories | ## | example | image | difficulty
level | version
created | last version
updated | original
developer | |----|----------|--------|:-------------------:|:------------------:|:-----------------------:|:----------------------| -| 149 | [rlgl_standalone](others/rlgl_standalone.c) | rlgl_standalone | ⭐️⭐️⭐️⭐️ | 1.6 | 4.0 | [Ray](https://github.com/raysan5) | -| 150 | [rlgl_compute_shader](others/rlgl_compute_shader.c) | rlgl_compute_shader | ⭐️⭐️⭐️⭐️ | 4.0 | 4.0 | [Teddy Astie](https://github.com/tsnake41) | -| 151 | [easings_testbed](others/easings_testbed.c) | easings_testbed | ⭐️⭐️⭐️☆ | 2.5 | 3.0 | [Juan Miguel López](https://github.com/flashback-fx) | -| 152 | [raylib_opengl_interop](others/raylib_opengl_interop.c) | raylib_opengl_interop | ⭐️⭐️⭐️⭐️ | 3.8 | 4.0 | [Stephan Soller](https://github.com/arkanis) | -| 153 | [embedded_files_loading](others/embedded_files_loading.c) | embedded_files_loading | ⭐️⭐️☆☆ | 3.0 | 3.5 | [Kristian Holmgren](https://github.com/defutura) | -| 154 | [raymath_vector_angle](others/raymath_vector_angle.c) | raymath_vector_angle | ⭐️⭐️☆☆ | 1.0 | 4.6 | [Ray](https://github.com/raysan5) | +| 150 | [rlgl_standalone](others/rlgl_standalone.c) | rlgl_standalone | ⭐️⭐️⭐️⭐️ | 1.6 | 4.0 | [Ray](https://github.com/raysan5) | +| 151 | [rlgl_compute_shader](others/rlgl_compute_shader.c) | rlgl_compute_shader | ⭐️⭐️⭐️⭐️ | 4.0 | 4.0 | [Teddy Astie](https://github.com/tsnake41) | +| 152 | [easings_testbed](others/easings_testbed.c) | easings_testbed | ⭐️⭐️⭐️☆ | 2.5 | 3.0 | [Juan Miguel López](https://github.com/flashback-fx) | +| 153 | [raylib_opengl_interop](others/raylib_opengl_interop.c) | raylib_opengl_interop | ⭐️⭐️⭐️⭐️ | 3.8 | 4.0 | [Stephan Soller](https://github.com/arkanis) | +| 154 | [embedded_files_loading](others/embedded_files_loading.c) | embedded_files_loading | ⭐️⭐️☆☆ | 3.0 | 3.5 | [Kristian Holmgren](https://github.com/defutura) | +| 155 | [raymath_vector_angle](others/raymath_vector_angle.c) | raymath_vector_angle | ⭐️⭐️☆☆ | 1.0 | 4.6 | [Ray](https://github.com/raysan5) | As always contributions are welcome, feel free to send new examples! Here is an [examples template](examples_template.c) to start with! - diff --git a/examples/audio/audio_sound_positioning.c b/examples/audio/audio_sound_positioning.c new file mode 100644 index 000000000..45f211ec4 --- /dev/null +++ b/examples/audio/audio_sound_positioning.c @@ -0,0 +1,123 @@ +/******************************************************************************************* +* +* raylib [audio] example - Playing spatialized 3D sound +* +* Example complexity rating: [★★☆☆] 2/4 +* +* Example originally created with raylib 5.5, last time updated with raylib 5.5 +* +* Example contributed by Le Juez Victor (@Bigfoot71) 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 Le Juez Victor (@Bigfoot71) +* +********************************************************************************************/ + +#include "raylib.h" + +#include "raymath.h" + +// Sound positioning function +static void SetSoundPosition(Camera listener, Sound sound, Vector3 position, float maxDist); + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [audio] example - Playing spatialized 3D sound"); + + InitAudioDevice(); + + Sound sound = LoadSound("resources/coin.wav"); + + Camera camera = { + .position = (Vector3) { 0, 5, 5 }, + .target = (Vector3) { 0, 0, 0 }, + .up = (Vector3) { 0, 1, 0 }, + .fovy = 60, + .projection = CAMERA_PERSPECTIVE + }; + + DisableCursor(); + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) + { + // Update + //---------------------------------------------------------------------------------- + UpdateCamera(&camera, CAMERA_FREE); + + float th = GetTime(); + + Vector3 spherePos = { + .x = 5.0f*cosf(th), + .y = 0.0f, + .z = 5.0f*sinf(th) + }; + + SetSoundPosition(camera, sound, spherePos, 20.0f); + if (!IsSoundPlaying(sound)) PlaySound(sound); + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + BeginMode3D(camera); + DrawGrid(10, 2); + DrawSphere(spherePos, 0.5f, RED); + EndMode3D(); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadSound(sound); + CloseAudioDevice(); // Close audio device + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- +} + +// Sound positioning function +static void SetSoundPosition(Camera listener, Sound sound, Vector3 position, float maxDist) +{ + // Calculate direction vector and distance between listener and sound source + Vector3 direction = Vector3Subtract(position, listener.position); + float distance = Vector3Length(direction); + + // Apply logarithmic distance attenuation and clamp between 0-1 + float attenuation = 1.0f/(1.0f + (distance/maxDist)); + attenuation = Clamp(attenuation, 0.0f, 1.0f); + + // Calculate normalized vectors for spatial positioning + Vector3 normalizedDirection = Vector3Normalize(direction); + Vector3 forward = Vector3Normalize(Vector3Subtract(listener.target, listener.position)); + Vector3 right = Vector3Normalize(Vector3CrossProduct(forward, listener.up)); + + // Reduce volume for sounds behind the listener + float dotProduct = Vector3DotProduct(forward, normalizedDirection); + if (dotProduct < 0.0f) attenuation *= (1.0f + dotProduct*0.5f); + + // Set stereo panning based on sound position relative to listener + float pan = 0.5f + 0.5f*Vector3DotProduct(normalizedDirection, right); + + // Apply final sound properties + SetSoundVolume(sound, attenuation); + SetSoundPan(sound, pan); +} \ No newline at end of file diff --git a/examples/audio/audio_sound_positioning.png b/examples/audio/audio_sound_positioning.png new file mode 100644 index 000000000..6feaf7e4c Binary files /dev/null and b/examples/audio/audio_sound_positioning.png differ diff --git a/examples/core/core_high_dpi.c b/examples/core/core_high_dpi.c index db0d6e9e6..b9417bd63 100644 --- a/examples/core/core_high_dpi.c +++ b/examples/core/core_high_dpi.c @@ -15,9 +15,9 @@ static void DrawTextCenter(const char *text, int x, int y, int fontSize, Color color) { - Vector2 size = MeasureTextEx(GetFontDefault(), text, fontSize, 3); + Vector2 size = MeasureTextEx(GetFontDefault(), text, (float)fontSize, 3); Vector2 pos = (Vector2){x - size.x/2, y - size.y/2 }; - DrawTextEx(GetFontDefault(), text, pos, fontSize, 3, color); + DrawTextEx(GetFontDefault(), text, pos, (float)fontSize, 3, color); } //------------------------------------------------------------------------------------ @@ -86,11 +86,11 @@ int main(void) const int minTextSpace = 30; int last_text_x = -minTextSpace; for (int i = cellSize; i < GetRenderWidth(); i += cellSize, odd = !odd) { - int x = ((float)i) / dpiScale.x; + int x = (int)(((float)i) / dpiScale.x); if (odd) { - DrawRectangle(x, pixelGridTop, cellSizePx, pixelGridBottom-pixelGridTop, CLITERAL(Color){ 0, 121, 241, 100 }); + DrawRectangle(x, pixelGridTop, (int)cellSizePx, pixelGridBottom-pixelGridTop, CLITERAL(Color){ 0, 121, 241, 100 }); } - DrawLine(x, pixelGridTop, ((float)i) / dpiScale.x, pixelGridLabelY - 10, GRAY); + DrawLine(x, pixelGridTop, (int)(((float)i) / dpiScale.x), pixelGridLabelY - 10, GRAY); if (x - last_text_x >= minTextSpace) { DrawTextCenter(TextFormat("%d", i), x, pixelGridLabelY, 12, LIGHTGRAY); last_text_x = x; diff --git a/examples/examples.rc b/examples/examples.rc index e5024b731..14938ae9d 100644 --- a/examples/examples.rc +++ b/examples/examples.rc @@ -1,27 +1,27 @@ GLFW_ICON ICON "raylib.ico" 1 VERSIONINFO -FILEVERSION 1,0,0,0 -PRODUCTVERSION 1,0,0,0 +FILEVERSION 5,5,0,0 +PRODUCTVERSION 5,5,0,0 BEGIN BLOCK "StringFileInfo" BEGIN - //BLOCK "080904E4" // English UK - BLOCK "040904E4" // English US + //BLOCK "080904E4" // English UK + BLOCK "040904E4" // English US BEGIN - VALUE "CompanyName", "raylib technologies" - VALUE "FileDescription", "raylib example" - VALUE "FileVersion", "1.0" + VALUE "CompanyName", "raylib technologies" + VALUE "FileDescription", "raylib application (www.raylib.com)" + VALUE "FileVersion", "5.5.0" VALUE "InternalName", "raylib-example" - VALUE "LegalCopyright", "(c) 2025 raylib technologies (@raylibtech)" - //VALUE "OriginalFilename", "raylib_app.exe" + VALUE "LegalCopyright", "(c) 2025 Ramon Santamaria (@raysan5)" + VALUE "OriginalFilename", "raylib-example" VALUE "ProductName", "raylib-example" - VALUE "ProductVersion", "1.0" + VALUE "ProductVersion", "5.5.0" END END BLOCK "VarFileInfo" BEGIN - //VALUE "Translation", 0x809, 1252 // English UK - VALUE "Translation", 0x409, 1252 // English US + //VALUE "Translation", 0x809, 1252 // English UK + VALUE "Translation", 0x409, 1252 // English US END END diff --git a/examples/shaders/resources/shaders/glsl100/depth.fs b/examples/shaders/resources/shaders/glsl100/depth.fs index e638e81d1..b330bd9c6 100644 --- a/examples/shaders/resources/shaders/glsl100/depth.fs +++ b/examples/shaders/resources/shaders/glsl100/depth.fs @@ -1,26 +1,28 @@ #version 100 -precision mediump float; - // Input vertex attributes (from vertex shader) varying vec2 fragTexCoord; -varying vec4 fragColor; // Input uniform values -uniform sampler2D texture0; // Depth texture -uniform vec4 colDiffuse; +uniform sampler2D depthTexture; +uniform bool flipY; -// NOTE: Add your custom variables here +float nearPlane = 0.1; +float farPlane = 100.0; void main() { - float zNear = 0.01; // camera z near - float zFar = 10.0; // camera z far - float z = texture2D(texture0, fragTexCoord).x; + // Handle potential Y-flipping + vec2 texCoord = fragTexCoord; + if (flipY) + texCoord.y = 1.0 - texCoord.y; - // Linearize depth value - float depth = (2.0*zNear)/(zFar + zNear - z*(zFar - zNear)); + // Sample depth texture + float depth = texture2D(depthTexture, texCoord).r; - // Calculate final fragment color - gl_FragColor = vec4(depth, depth, depth, 1.0); + // Linearize depth + float linearDepth = (2.0*nearPlane)/(farPlane + nearPlane - depth*(farPlane - nearPlane)); + + // Output final color + gl_FragColor = vec4(vec3(linearDepth), 1.0); } \ No newline at end of file diff --git a/examples/shaders/resources/shaders/glsl330/depth.fs b/examples/shaders/resources/shaders/glsl330/depth.fs index 43e30f9be..65592c83f 100644 --- a/examples/shaders/resources/shaders/glsl330/depth.fs +++ b/examples/shaders/resources/shaders/glsl330/depth.fs @@ -2,26 +2,29 @@ // Input vertex attributes (from vertex shader) in vec2 fragTexCoord; -in vec4 fragColor; // Input uniform values -uniform sampler2D texture0; // Depth texture -uniform vec4 colDiffuse; +uniform sampler2D depthTexture; +uniform bool flipY; + +const float nearPlane = 0.1; +const float farPlane = 100.0; // Output fragment color out vec4 finalColor; -// NOTE: Add your custom variables here - void main() { - float zNear = 0.01; // camera z near - float zFar = 10.0; // camera z far - float z = texture(texture0, fragTexCoord).x; + // Handle potential Y-flipping + vec2 texCoord = fragTexCoord; + if (flipY) texCoord.y = 1.0 - texCoord.y; + + // Sample depth + float depth = texture(depthTexture, texCoord).r; // Linearize depth value - float depth = (2.0*zNear)/(zFar + zNear - z*(zFar - zNear)); + float linearDepth = (2.0*nearPlane)/(farPlane + nearPlane - depth*(farPlane - nearPlane)); - // Calculate final fragment color - finalColor = vec4(depth, depth, depth, 1.0); + // Output final color + finalColor = vec4(vec3(linearDepth), 1.0); } \ No newline at end of file diff --git a/examples/shaders/shaders_rounded_rectangle.c b/examples/shaders/shaders_rounded_rectangle.c index 754110d92..2256db6c3 100644 --- a/examples/shaders/shaders_rounded_rectangle.c +++ b/examples/shaders/shaders_rounded_rectangle.c @@ -108,8 +108,8 @@ int main(void) // Draw rectangle box with rounded corners using shader Rectangle rec = { 50, 70, 110, 60 }; - DrawRectangleLines(rec.x - 20, rec.y - 20, rec.width + 40, rec.height + 40, DARKGRAY); - DrawText("Rounded rectangle", rec.x - 20, rec.y - 35, 10, DARKGRAY); + DrawRectangleLines((int)rec.x - 20, (int)rec.y - 20, (int)rec.width + 40, (int)rec.height + 40, DARKGRAY); + DrawText("Rounded rectangle", (int)rec.x - 20, (int)rec.y - 35, 10, DARKGRAY); // Flip Y axis to match shader coordinate system rec.y = screenHeight - rec.y - rec.height; @@ -128,8 +128,8 @@ int main(void) // Draw rectangle shadow using shader rec = (Rectangle){ 50, 200, 110, 60 }; - DrawRectangleLines(rec.x - 20, rec.y - 20, rec.width + 40, rec.height + 40, DARKGRAY); - DrawText("Rounded rectangle shadow", rec.x - 20, rec.y - 35, 10, DARKGRAY); + DrawRectangleLines((int)rec.x - 20, (int)rec.y - 20, (int)rec.width + 40, (int)rec.height + 40, DARKGRAY); + DrawText("Rounded rectangle shadow", (int)rec.x - 20, (int)rec.y - 35, 10, DARKGRAY); rec.y = screenHeight - rec.y - rec.height; SetShaderValue(shader, roundedRectangle.rectangleLoc, (float[]){ rec.x, rec.y, rec.width, rec.height }, SHADER_UNIFORM_VEC4); @@ -147,8 +147,8 @@ int main(void) // Draw rectangle's border using shader rec = (Rectangle){ 50, 330, 110, 60 }; - DrawRectangleLines(rec.x - 20, rec.y - 20, rec.width + 40, rec.height + 40, DARKGRAY); - DrawText("Rounded rectangle border", rec.x - 20, rec.y - 35, 10, DARKGRAY); + DrawRectangleLines((int)rec.x - 20, (int)rec.y - 20, (int)rec.width + 40, (int)rec.height + 40, DARKGRAY); + DrawText("Rounded rectangle border", (int)rec.x - 20, (int)rec.y - 35, 10, DARKGRAY); rec.y = screenHeight - rec.y - rec.height; SetShaderValue(shader, roundedRectangle.rectangleLoc, (float[]){ rec.x, rec.y, rec.width, rec.height }, SHADER_UNIFORM_VEC4); @@ -166,8 +166,8 @@ int main(void) // Draw one more rectangle with all three colors rec = (Rectangle){ 240, 80, 500, 300 }; - DrawRectangleLines(rec.x - 30, rec.y - 30, rec.width + 60, rec.height + 60, DARKGRAY); - DrawText("Rectangle with all three combined", rec.x - 30, rec.y - 45, 10, DARKGRAY); + DrawRectangleLines((int)rec.x - 30, (int)rec.y - 30, (int)rec.width + 60, (int)rec.height + 60, DARKGRAY); + DrawText("Rectangle with all three combined", (int)rec.x - 30, (int)rec.y - 45, 10, DARKGRAY); rec.y = screenHeight - rec.y - rec.height; SetShaderValue(shader, roundedRectangle.rectangleLoc, (float[]){ rec.x, rec.y, rec.width, rec.height }, SHADER_UNIFORM_VEC4); diff --git a/examples/shaders/shaders_view_depth.c b/examples/shaders/shaders_view_depth.c new file mode 100644 index 000000000..4f141acb9 --- /dev/null +++ b/examples/shaders/shaders_view_depth.c @@ -0,0 +1,153 @@ +/******************************************************************************************* +* +* raylib [shader] example - render depth texture +* +* Example complexity rating: [★★★☆] 3/4 +* +* Example originally created with raylib 5.6-dev, last time updated with raylib 5.6-dev +* +* Example contributed by Luís Almeida (@luis605) +* +* 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) +* +********************************************************************************************/ + +#include "raylib.h" +#include "rlgl.h" + +#if defined(PLATFORM_DESKTOP) + #define GLSL_VERSION 330 +#else // PLATFORM_ANDROID, PLATFORM_WEB + #define GLSL_VERSION 100 +#endif + +RenderTexture2D LoadRenderTextureWithDepth(int width, int height); + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shader] example - render depth texture"); + + // Init camera + Camera camera = { 0 }; + camera.position = (Vector3){ 4.0f, 1.0f, 5.0f }; + camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; + camera.fovy = 45.0f; + camera.projection = CAMERA_PERSPECTIVE; + + // Load an empty render texture with a depth texture + RenderTexture2D target = LoadRenderTextureWithDepth(screenWidth, screenHeight); + + // Load depth shader and get depth texture shader location + Shader depthShader = LoadShader(0, TextFormat("resources/shaders/glsl%i/depth.fs", GLSL_VERSION)); + int depthLoc = GetShaderLocation(depthShader, "depthTexture"); + int flipTextureLoc = GetShaderLocation(depthShader, "flipY"); + SetShaderValue(depthShader, flipTextureLoc, (int[]){ 1 }, SHADER_UNIFORM_INT); // Flip Y texture + + // Load models + Model cube = LoadModelFromMesh(GenMeshCube(1.0f, 1.0f, 1.0f)); + Model floor = LoadModelFromMesh(GenMeshPlane(20.0f, 20.0f, 1, 1)); + + DisableCursor(); // Limit cursor to relative movement inside the window + + 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_FREE); + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginTextureMode(target); + ClearBackground(WHITE); + + BeginMode3D(camera); + 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(); + + BeginDrawing(); + + BeginShaderMode(depthShader); + SetShaderValueTexture(depthShader, depthLoc, target.depth); + DrawTexture(target.depth, 0, 0, WHITE); + EndShaderMode(); + + DrawRectangle( 10, 10, 320, 93, Fade(SKYBLUE, 0.5f)); + DrawRectangleLines( 10, 10, 320, 93, BLUE); + + DrawText("Camera Controls:", 20, 20, 10, BLACK); + DrawText("- WASD to move", 40, 40, 10, DARKGRAY); + DrawText("- Mouse Wheel Pressed to Pan", 40, 60, 10, DARKGRAY); + DrawText("- Z to zoom to (0, 0, 0)", 40, 80, 10, DARKGRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadModel(cube); // Unload model + UnloadModel(floor); // Unload model + UnloadRenderTexture(target); // Unload render texture + UnloadShader(depthShader); // Unload shader + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + return 0; +} + +RenderTexture2D LoadRenderTextureWithDepth(int width, int height) +{ + RenderTexture2D target = {0}; + + target.id = rlLoadFramebuffer(); // Load an empty framebuffer + + if (target.id > 0) + { + rlEnableFramebuffer(target.id); + + // Create color texture (default to RGBA) + target.texture.id = rlLoadTexture(0, width, height, PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, 1); + target.texture.width = width; + target.texture.height = height; + target.texture.format = PIXELFORMAT_UNCOMPRESSED_R8G8B8A8; + target.texture.mipmaps = 1; + + // Create depth texture + 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.mipmaps = 1; + + // Attach color texture and depth texture to FBO + rlFramebufferAttach(target.id, target.texture.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_TEXTURE2D, 0); + rlFramebufferAttach(target.id, target.depth.id, RL_ATTACHMENT_DEPTH, RL_ATTACHMENT_TEXTURE2D, 0); + + // Check if fbo is complete with attachments (valid) + if (rlFramebufferComplete(target.id)) TRACELOG(LOG_INFO, "FBO: [ID %i] Framebuffer object created successfully", target.id); + + rlDisableFramebuffer(); + } + else TRACELOG(LOG_WARNING, "FBO: Framebuffer object can not be created"); + + return target; +} \ No newline at end of file diff --git a/examples/shaders/shaders_view_depth.png b/examples/shaders/shaders_view_depth.png new file mode 100644 index 000000000..ae4c84502 Binary files /dev/null and b/examples/shaders/shaders_view_depth.png differ diff --git a/examples/shaders/shaders_write_depth.c b/examples/shaders/shaders_write_depth.c index d47ea1ae3..2d24dcaed 100644 --- a/examples/shaders/shaders_write_depth.c +++ b/examples/shaders/shaders_write_depth.c @@ -74,7 +74,6 @@ int main(void) // Draw //---------------------------------------------------------------------------------- - // Draw into our custom render texture (framebuffer) BeginTextureMode(target); ClearBackground(WHITE); @@ -93,7 +92,6 @@ 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(); diff --git a/projects/VS2022/examples/audio_mixed_processor.vcxproj b/projects/VS2022/examples/audio_mixed_processor.vcxproj index 9adf33344..9efacd72f 100644 --- a/projects/VS2022/examples/audio_mixed_processor.vcxproj +++ b/projects/VS2022/examples/audio_mixed_processor.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/audio_module_playing.vcxproj b/projects/VS2022/examples/audio_module_playing.vcxproj index 32535ada7..c13247e6b 100644 --- a/projects/VS2022/examples/audio_module_playing.vcxproj +++ b/projects/VS2022/examples/audio_module_playing.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/audio_music_stream.vcxproj b/projects/VS2022/examples/audio_music_stream.vcxproj index 1507a8458..afa3b1b65 100644 --- a/projects/VS2022/examples/audio_music_stream.vcxproj +++ b/projects/VS2022/examples/audio_music_stream.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/audio_raw_stream.vcxproj b/projects/VS2022/examples/audio_raw_stream.vcxproj index 48da2c9a0..3c39abf1a 100644 --- a/projects/VS2022/examples/audio_raw_stream.vcxproj +++ b/projects/VS2022/examples/audio_raw_stream.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/audio_sound_loading.vcxproj b/projects/VS2022/examples/audio_sound_loading.vcxproj index 65af71240..9f189225b 100644 --- a/projects/VS2022/examples/audio_sound_loading.vcxproj +++ b/projects/VS2022/examples/audio_sound_loading.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/audio_sound_multi.vcxproj b/projects/VS2022/examples/audio_sound_multi.vcxproj index ca4eb2b38..ae53a0a72 100644 --- a/projects/VS2022/examples/audio_sound_multi.vcxproj +++ b/projects/VS2022/examples/audio_sound_multi.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/audio_stream_effects.vcxproj b/projects/VS2022/examples/audio_stream_effects.vcxproj index b9ac9c4df..a6e1b789c 100644 --- a/projects/VS2022/examples/audio_stream_effects.vcxproj +++ b/projects/VS2022/examples/audio_stream_effects.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_2d_camera.vcxproj b/projects/VS2022/examples/core_2d_camera.vcxproj index fc2a75b2d..f82685b09 100644 --- a/projects/VS2022/examples/core_2d_camera.vcxproj +++ b/projects/VS2022/examples/core_2d_camera.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_2d_camera_mouse_zoom.vcxproj b/projects/VS2022/examples/core_2d_camera_mouse_zoom.vcxproj index 30df1d318..f3a568d0a 100644 --- a/projects/VS2022/examples/core_2d_camera_mouse_zoom.vcxproj +++ b/projects/VS2022/examples/core_2d_camera_mouse_zoom.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_2d_camera_platformer.vcxproj b/projects/VS2022/examples/core_2d_camera_platformer.vcxproj index 789998f1c..287d52594 100644 --- a/projects/VS2022/examples/core_2d_camera_platformer.vcxproj +++ b/projects/VS2022/examples/core_2d_camera_platformer.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_2d_camera_split_screen.vcxproj b/projects/VS2022/examples/core_2d_camera_split_screen.vcxproj index 7e63a4589..734f3789d 100644 --- a/projects/VS2022/examples/core_2d_camera_split_screen.vcxproj +++ b/projects/VS2022/examples/core_2d_camera_split_screen.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_3d_camera_first_person.vcxproj b/projects/VS2022/examples/core_3d_camera_first_person.vcxproj index 9831a3f6d..39f971318 100644 --- a/projects/VS2022/examples/core_3d_camera_first_person.vcxproj +++ b/projects/VS2022/examples/core_3d_camera_first_person.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_3d_camera_free.vcxproj b/projects/VS2022/examples/core_3d_camera_free.vcxproj index d2640f751..638f8123c 100644 --- a/projects/VS2022/examples/core_3d_camera_free.vcxproj +++ b/projects/VS2022/examples/core_3d_camera_free.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_3d_camera_mode.vcxproj b/projects/VS2022/examples/core_3d_camera_mode.vcxproj index 552d7fb73..fc6ec60ab 100644 --- a/projects/VS2022/examples/core_3d_camera_mode.vcxproj +++ b/projects/VS2022/examples/core_3d_camera_mode.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_3d_camera_split_screen.vcxproj b/projects/VS2022/examples/core_3d_camera_split_screen.vcxproj index 529aff1f1..dba830c87 100644 --- a/projects/VS2022/examples/core_3d_camera_split_screen.vcxproj +++ b/projects/VS2022/examples/core_3d_camera_split_screen.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_3d_picking.vcxproj b/projects/VS2022/examples/core_3d_picking.vcxproj index b38ef71d9..e0d216235 100644 --- a/projects/VS2022/examples/core_3d_picking.vcxproj +++ b/projects/VS2022/examples/core_3d_picking.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_automation_events.vcxproj b/projects/VS2022/examples/core_automation_events.vcxproj index 275d39c98..71bbb0730 100644 --- a/projects/VS2022/examples/core_automation_events.vcxproj +++ b/projects/VS2022/examples/core_automation_events.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_basic_screen_manager.vcxproj b/projects/VS2022/examples/core_basic_screen_manager.vcxproj index 8794ef92f..c741f89a9 100644 --- a/projects/VS2022/examples/core_basic_screen_manager.vcxproj +++ b/projects/VS2022/examples/core_basic_screen_manager.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_basic_window.vcxproj b/projects/VS2022/examples/core_basic_window.vcxproj index baec0bf2b..c8c7879ba 100644 --- a/projects/VS2022/examples/core_basic_window.vcxproj +++ b/projects/VS2022/examples/core_basic_window.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_custom_frame_control.vcxproj b/projects/VS2022/examples/core_custom_frame_control.vcxproj index e37b43ca1..5b69e0aaf 100644 --- a/projects/VS2022/examples/core_custom_frame_control.vcxproj +++ b/projects/VS2022/examples/core_custom_frame_control.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_custom_logging.vcxproj b/projects/VS2022/examples/core_custom_logging.vcxproj index 373671308..dbdd74c59 100644 --- a/projects/VS2022/examples/core_custom_logging.vcxproj +++ b/projects/VS2022/examples/core_custom_logging.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_drop_files.vcxproj b/projects/VS2022/examples/core_drop_files.vcxproj index 6936f2806..512681f5e 100644 --- a/projects/VS2022/examples/core_drop_files.vcxproj +++ b/projects/VS2022/examples/core_drop_files.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_high_dpi.vcxproj b/projects/VS2022/examples/core_high_dpi.vcxproj index 9e4fa1406..11e1b41c0 100644 --- a/projects/VS2022/examples/core_high_dpi.vcxproj +++ b/projects/VS2022/examples/core_high_dpi.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_input_gamepad.vcxproj b/projects/VS2022/examples/core_input_gamepad.vcxproj index 8b5e0274e..bdc31509b 100644 --- a/projects/VS2022/examples/core_input_gamepad.vcxproj +++ b/projects/VS2022/examples/core_input_gamepad.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_input_gestures.vcxproj b/projects/VS2022/examples/core_input_gestures.vcxproj index 56485cea3..36c5ec228 100644 --- a/projects/VS2022/examples/core_input_gestures.vcxproj +++ b/projects/VS2022/examples/core_input_gestures.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_input_keys.vcxproj b/projects/VS2022/examples/core_input_keys.vcxproj index efdf5e9cc..8b1838a00 100644 --- a/projects/VS2022/examples/core_input_keys.vcxproj +++ b/projects/VS2022/examples/core_input_keys.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_input_mouse.vcxproj b/projects/VS2022/examples/core_input_mouse.vcxproj index ab8964094..abdeca101 100644 --- a/projects/VS2022/examples/core_input_mouse.vcxproj +++ b/projects/VS2022/examples/core_input_mouse.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_input_mouse_wheel.vcxproj b/projects/VS2022/examples/core_input_mouse_wheel.vcxproj index 41ffebd82..e7975abcf 100644 --- a/projects/VS2022/examples/core_input_mouse_wheel.vcxproj +++ b/projects/VS2022/examples/core_input_mouse_wheel.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_input_multitouch.vcxproj b/projects/VS2022/examples/core_input_multitouch.vcxproj index b3b18a8bd..fb57bca70 100644 --- a/projects/VS2022/examples/core_input_multitouch.vcxproj +++ b/projects/VS2022/examples/core_input_multitouch.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_input_virtual_controls.vcxproj b/projects/VS2022/examples/core_input_virtual_controls.vcxproj index 63d6a6cc6..8a86ba29a 100644 --- a/projects/VS2022/examples/core_input_virtual_controls.vcxproj +++ b/projects/VS2022/examples/core_input_virtual_controls.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_loading_thread.vcxproj b/projects/VS2022/examples/core_loading_thread.vcxproj index 57d68768c..f9c5203cf 100644 --- a/projects/VS2022/examples/core_loading_thread.vcxproj +++ b/projects/VS2022/examples/core_loading_thread.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_random_sequence.vcxproj b/projects/VS2022/examples/core_random_sequence.vcxproj index de86d3f2b..5afdebe91 100644 --- a/projects/VS2022/examples/core_random_sequence.vcxproj +++ b/projects/VS2022/examples/core_random_sequence.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_random_values.vcxproj b/projects/VS2022/examples/core_random_values.vcxproj index 0567c4d7b..822d8c741 100644 --- a/projects/VS2022/examples/core_random_values.vcxproj +++ b/projects/VS2022/examples/core_random_values.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_scissor_test.vcxproj b/projects/VS2022/examples/core_scissor_test.vcxproj index 3f5a5a6e1..69b72776b 100644 --- a/projects/VS2022/examples/core_scissor_test.vcxproj +++ b/projects/VS2022/examples/core_scissor_test.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_smooth_pixelperfect.vcxproj b/projects/VS2022/examples/core_smooth_pixelperfect.vcxproj index 61870fac4..8abffabc0 100644 --- a/projects/VS2022/examples/core_smooth_pixelperfect.vcxproj +++ b/projects/VS2022/examples/core_smooth_pixelperfect.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_storage_values.vcxproj b/projects/VS2022/examples/core_storage_values.vcxproj index 14c9e07e8..782f6c89c 100644 --- a/projects/VS2022/examples/core_storage_values.vcxproj +++ b/projects/VS2022/examples/core_storage_values.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_vr_simulator.vcxproj b/projects/VS2022/examples/core_vr_simulator.vcxproj index eaa45c83f..a47bf5d10 100644 --- a/projects/VS2022/examples/core_vr_simulator.vcxproj +++ b/projects/VS2022/examples/core_vr_simulator.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_window_flags.vcxproj b/projects/VS2022/examples/core_window_flags.vcxproj index cd8fbbfea..188c2ab98 100644 --- a/projects/VS2022/examples/core_window_flags.vcxproj +++ b/projects/VS2022/examples/core_window_flags.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_window_letterbox.vcxproj b/projects/VS2022/examples/core_window_letterbox.vcxproj index f2678eed1..c589d623d 100644 --- a/projects/VS2022/examples/core_window_letterbox.vcxproj +++ b/projects/VS2022/examples/core_window_letterbox.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_window_should_close.vcxproj b/projects/VS2022/examples/core_window_should_close.vcxproj index 4135ed8c7..30c18941b 100644 --- a/projects/VS2022/examples/core_window_should_close.vcxproj +++ b/projects/VS2022/examples/core_window_should_close.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/core_world_screen.vcxproj b/projects/VS2022/examples/core_world_screen.vcxproj index 241e67008..8a04dc873 100644 --- a/projects/VS2022/examples/core_world_screen.vcxproj +++ b/projects/VS2022/examples/core_world_screen.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/easings_testbed.vcxproj b/projects/VS2022/examples/easings_testbed.vcxproj index 38736ddd1..44cd894f1 100644 --- a/projects/VS2022/examples/easings_testbed.vcxproj +++ b/projects/VS2022/examples/easings_testbed.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/embedded_files_loading.vcxproj b/projects/VS2022/examples/embedded_files_loading.vcxproj index 8f717a619..73c603a25 100644 --- a/projects/VS2022/examples/embedded_files_loading.vcxproj +++ b/projects/VS2022/examples/embedded_files_loading.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_animation.vcxproj b/projects/VS2022/examples/models_animation.vcxproj index 434dea9bf..5b9399265 100644 --- a/projects/VS2022/examples/models_animation.vcxproj +++ b/projects/VS2022/examples/models_animation.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_billboard.vcxproj b/projects/VS2022/examples/models_billboard.vcxproj index 62eb6539c..7ee85637c 100644 --- a/projects/VS2022/examples/models_billboard.vcxproj +++ b/projects/VS2022/examples/models_billboard.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_bone_socket.vcxproj b/projects/VS2022/examples/models_bone_socket.vcxproj index 481b4efc3..85ccf99a4 100644 --- a/projects/VS2022/examples/models_bone_socket.vcxproj +++ b/projects/VS2022/examples/models_bone_socket.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_box_collisions.vcxproj b/projects/VS2022/examples/models_box_collisions.vcxproj index fc5176cd0..870e8400b 100644 --- a/projects/VS2022/examples/models_box_collisions.vcxproj +++ b/projects/VS2022/examples/models_box_collisions.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_cubicmap.vcxproj b/projects/VS2022/examples/models_cubicmap.vcxproj index cd92efc26..1ef1738a0 100644 --- a/projects/VS2022/examples/models_cubicmap.vcxproj +++ b/projects/VS2022/examples/models_cubicmap.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_draw_cube_texture.vcxproj b/projects/VS2022/examples/models_draw_cube_texture.vcxproj index d44ddabc9..a2ca31eb2 100644 --- a/projects/VS2022/examples/models_draw_cube_texture.vcxproj +++ b/projects/VS2022/examples/models_draw_cube_texture.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_first_person_maze.vcxproj b/projects/VS2022/examples/models_first_person_maze.vcxproj index c963da561..c3b7eb803 100644 --- a/projects/VS2022/examples/models_first_person_maze.vcxproj +++ b/projects/VS2022/examples/models_first_person_maze.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_geometric_shapes.vcxproj b/projects/VS2022/examples/models_geometric_shapes.vcxproj index 7c3784ac9..190ec51ab 100644 --- a/projects/VS2022/examples/models_geometric_shapes.vcxproj +++ b/projects/VS2022/examples/models_geometric_shapes.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_gpu_skinning.vcxproj b/projects/VS2022/examples/models_gpu_skinning.vcxproj index 7d58012e0..25b94488f 100644 --- a/projects/VS2022/examples/models_gpu_skinning.vcxproj +++ b/projects/VS2022/examples/models_gpu_skinning.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_heightmap.vcxproj b/projects/VS2022/examples/models_heightmap.vcxproj index 5875f0ee3..734d68565 100644 --- a/projects/VS2022/examples/models_heightmap.vcxproj +++ b/projects/VS2022/examples/models_heightmap.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_loading.vcxproj b/projects/VS2022/examples/models_loading.vcxproj index c0d83f258..e81631339 100644 --- a/projects/VS2022/examples/models_loading.vcxproj +++ b/projects/VS2022/examples/models_loading.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_loading_gltf.vcxproj b/projects/VS2022/examples/models_loading_gltf.vcxproj index a9989ef3b..29b14abcd 100644 --- a/projects/VS2022/examples/models_loading_gltf.vcxproj +++ b/projects/VS2022/examples/models_loading_gltf.vcxproj @@ -558,9 +558,6 @@ - - - {e89d61ac-55de-4482-afd4-df7242ebc859} diff --git a/projects/VS2022/examples/models_loading_m3d.vcxproj b/projects/VS2022/examples/models_loading_m3d.vcxproj index d6110af04..61e647ffb 100644 --- a/projects/VS2022/examples/models_loading_m3d.vcxproj +++ b/projects/VS2022/examples/models_loading_m3d.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_loading_vox.vcxproj b/projects/VS2022/examples/models_loading_vox.vcxproj index 60b961c05..3490fd377 100644 --- a/projects/VS2022/examples/models_loading_vox.vcxproj +++ b/projects/VS2022/examples/models_loading_vox.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_mesh_generation.vcxproj b/projects/VS2022/examples/models_mesh_generation.vcxproj index 42dbb3e6a..67fe94609 100644 --- a/projects/VS2022/examples/models_mesh_generation.vcxproj +++ b/projects/VS2022/examples/models_mesh_generation.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_mesh_picking.vcxproj b/projects/VS2022/examples/models_mesh_picking.vcxproj index 937d7756f..689816721 100644 --- a/projects/VS2022/examples/models_mesh_picking.vcxproj +++ b/projects/VS2022/examples/models_mesh_picking.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_orthographic_projection.vcxproj b/projects/VS2022/examples/models_orthographic_projection.vcxproj index 0a001c1bf..fad2e9786 100644 --- a/projects/VS2022/examples/models_orthographic_projection.vcxproj +++ b/projects/VS2022/examples/models_orthographic_projection.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_rlgl_solar_system.vcxproj b/projects/VS2022/examples/models_rlgl_solar_system.vcxproj index 0386214ba..6d0fa7cfd 100644 --- a/projects/VS2022/examples/models_rlgl_solar_system.vcxproj +++ b/projects/VS2022/examples/models_rlgl_solar_system.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_skybox.vcxproj b/projects/VS2022/examples/models_skybox.vcxproj index 55856ab2c..3fbdc170e 100644 --- a/projects/VS2022/examples/models_skybox.vcxproj +++ b/projects/VS2022/examples/models_skybox.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_waving_cubes.vcxproj b/projects/VS2022/examples/models_waving_cubes.vcxproj index f7b927290..6b1d7e748 100644 --- a/projects/VS2022/examples/models_waving_cubes.vcxproj +++ b/projects/VS2022/examples/models_waving_cubes.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/models_yaw_pitch_roll.vcxproj b/projects/VS2022/examples/models_yaw_pitch_roll.vcxproj index d4f9f16a0..26b1a9c6f 100644 --- a/projects/VS2022/examples/models_yaw_pitch_roll.vcxproj +++ b/projects/VS2022/examples/models_yaw_pitch_roll.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/rlgl_compute_shaders.vcxproj b/projects/VS2022/examples/rlgl_compute_shaders.vcxproj index 0dc6301c7..48e5b20f6 100644 --- a/projects/VS2022/examples/rlgl_compute_shaders.vcxproj +++ b/projects/VS2022/examples/rlgl_compute_shaders.vcxproj @@ -557,7 +557,7 @@ - + diff --git a/projects/VS2022/examples/shaders_basic_lighting.vcxproj b/projects/VS2022/examples/shaders_basic_lighting.vcxproj index febc38190..b0941b092 100644 --- a/projects/VS2022/examples/shaders_basic_lighting.vcxproj +++ b/projects/VS2022/examples/shaders_basic_lighting.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_custom_uniform.vcxproj b/projects/VS2022/examples/shaders_custom_uniform.vcxproj index 03b0a292f..3cf7a092e 100644 --- a/projects/VS2022/examples/shaders_custom_uniform.vcxproj +++ b/projects/VS2022/examples/shaders_custom_uniform.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_deferred_render.vcxproj b/projects/VS2022/examples/shaders_deferred_render.vcxproj index b9750389c..1ac650091 100644 --- a/projects/VS2022/examples/shaders_deferred_render.vcxproj +++ b/projects/VS2022/examples/shaders_deferred_render.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_eratosthenes.vcxproj b/projects/VS2022/examples/shaders_eratosthenes.vcxproj index 1efb47922..a8050804c 100644 --- a/projects/VS2022/examples/shaders_eratosthenes.vcxproj +++ b/projects/VS2022/examples/shaders_eratosthenes.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_fog.vcxproj b/projects/VS2022/examples/shaders_fog.vcxproj index eddd00e7f..0c00c5124 100644 --- a/projects/VS2022/examples/shaders_fog.vcxproj +++ b/projects/VS2022/examples/shaders_fog.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_hot_reloading.vcxproj b/projects/VS2022/examples/shaders_hot_reloading.vcxproj index 29820341e..95e1842d1 100644 --- a/projects/VS2022/examples/shaders_hot_reloading.vcxproj +++ b/projects/VS2022/examples/shaders_hot_reloading.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_hybrid_render.vcxproj b/projects/VS2022/examples/shaders_hybrid_render.vcxproj index 799e4e40b..4072e3988 100644 --- a/projects/VS2022/examples/shaders_hybrid_render.vcxproj +++ b/projects/VS2022/examples/shaders_hybrid_render.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_julia_set.vcxproj b/projects/VS2022/examples/shaders_julia_set.vcxproj index 21ca5d36b..c8027f0e5 100644 --- a/projects/VS2022/examples/shaders_julia_set.vcxproj +++ b/projects/VS2022/examples/shaders_julia_set.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_mesh_instancing.vcxproj b/projects/VS2022/examples/shaders_mesh_instancing.vcxproj index 00f3de055..e5727f629 100644 --- a/projects/VS2022/examples/shaders_mesh_instancing.vcxproj +++ b/projects/VS2022/examples/shaders_mesh_instancing.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_model_shader.vcxproj b/projects/VS2022/examples/shaders_model_shader.vcxproj index a558602bc..bf8fe16fe 100644 --- a/projects/VS2022/examples/shaders_model_shader.vcxproj +++ b/projects/VS2022/examples/shaders_model_shader.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_multi_sample2d.vcxproj b/projects/VS2022/examples/shaders_multi_sample2d.vcxproj index 0dd3046a5..61be03f08 100644 --- a/projects/VS2022/examples/shaders_multi_sample2d.vcxproj +++ b/projects/VS2022/examples/shaders_multi_sample2d.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_palette_switch.vcxproj b/projects/VS2022/examples/shaders_palette_switch.vcxproj index c427b3c01..34ed5e7b3 100644 --- a/projects/VS2022/examples/shaders_palette_switch.vcxproj +++ b/projects/VS2022/examples/shaders_palette_switch.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_postprocessing.vcxproj b/projects/VS2022/examples/shaders_postprocessing.vcxproj index edb3a8869..4b15a06e2 100644 --- a/projects/VS2022/examples/shaders_postprocessing.vcxproj +++ b/projects/VS2022/examples/shaders_postprocessing.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_raymarching.vcxproj b/projects/VS2022/examples/shaders_raymarching.vcxproj index 6845f7de4..c796134bc 100644 --- a/projects/VS2022/examples/shaders_raymarching.vcxproj +++ b/projects/VS2022/examples/shaders_raymarching.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_rounded_rectangle.vcxproj b/projects/VS2022/examples/shaders_rounded_rectangle.vcxproj index 6c1a215e2..d67b3ee2d 100644 --- a/projects/VS2022/examples/shaders_rounded_rectangle.vcxproj +++ b/projects/VS2022/examples/shaders_rounded_rectangle.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_shadowmap.vcxproj b/projects/VS2022/examples/shaders_shadowmap.vcxproj index 8c10615ed..48dbcb3e5 100644 --- a/projects/VS2022/examples/shaders_shadowmap.vcxproj +++ b/projects/VS2022/examples/shaders_shadowmap.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_shapes_textures.vcxproj b/projects/VS2022/examples/shaders_shapes_textures.vcxproj index e27f2f944..6d1dc545e 100644 --- a/projects/VS2022/examples/shaders_shapes_textures.vcxproj +++ b/projects/VS2022/examples/shaders_shapes_textures.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_simple_mask.vcxproj b/projects/VS2022/examples/shaders_simple_mask.vcxproj index bed9ea8de..b4f402694 100644 --- a/projects/VS2022/examples/shaders_simple_mask.vcxproj +++ b/projects/VS2022/examples/shaders_simple_mask.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_spotlight.vcxproj b/projects/VS2022/examples/shaders_spotlight.vcxproj index c137e618e..39545d2a6 100644 --- a/projects/VS2022/examples/shaders_spotlight.vcxproj +++ b/projects/VS2022/examples/shaders_spotlight.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_texture_drawing.vcxproj b/projects/VS2022/examples/shaders_texture_drawing.vcxproj index cebe69330..744642015 100644 --- a/projects/VS2022/examples/shaders_texture_drawing.vcxproj +++ b/projects/VS2022/examples/shaders_texture_drawing.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_texture_outline.vcxproj b/projects/VS2022/examples/shaders_texture_outline.vcxproj index ceb3be8f8..8d608b2a6 100644 --- a/projects/VS2022/examples/shaders_texture_outline.vcxproj +++ b/projects/VS2022/examples/shaders_texture_outline.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_texture_tiling.vcxproj b/projects/VS2022/examples/shaders_texture_tiling.vcxproj index 5c733ae99..18220515b 100644 --- a/projects/VS2022/examples/shaders_texture_tiling.vcxproj +++ b/projects/VS2022/examples/shaders_texture_tiling.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_texture_waves.vcxproj b/projects/VS2022/examples/shaders_texture_waves.vcxproj index b7510fcd2..d9cfa3e6d 100644 --- a/projects/VS2022/examples/shaders_texture_waves.vcxproj +++ b/projects/VS2022/examples/shaders_texture_waves.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_vertex_displacement.vcxproj b/projects/VS2022/examples/shaders_vertex_displacement.vcxproj index 44d6deeaa..0a770afa5 100644 --- a/projects/VS2022/examples/shaders_vertex_displacement.vcxproj +++ b/projects/VS2022/examples/shaders_vertex_displacement.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shaders_view_depth.vcxproj b/projects/VS2022/examples/shaders_view_depth.vcxproj new file mode 100644 index 000000000..859628de8 --- /dev/null +++ b/projects/VS2022/examples/shaders_view_depth.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 + + + + {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} + + + + + + \ No newline at end of file diff --git a/projects/VS2022/examples/shaders_write_depth.vcxproj b/projects/VS2022/examples/shaders_write_depth.vcxproj index 836ab1a5c..4c19cd4b2 100644 --- a/projects/VS2022/examples/shaders_write_depth.vcxproj +++ b/projects/VS2022/examples/shaders_write_depth.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_basic_shapes.vcxproj b/projects/VS2022/examples/shapes_basic_shapes.vcxproj index ba3805967..6e30a1fca 100644 --- a/projects/VS2022/examples/shapes_basic_shapes.vcxproj +++ b/projects/VS2022/examples/shapes_basic_shapes.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_bouncing_ball.vcxproj b/projects/VS2022/examples/shapes_bouncing_ball.vcxproj index 542a62165..162427c53 100644 --- a/projects/VS2022/examples/shapes_bouncing_ball.vcxproj +++ b/projects/VS2022/examples/shapes_bouncing_ball.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_collision_area.vcxproj b/projects/VS2022/examples/shapes_collision_area.vcxproj index 45230ca39..5088493ec 100644 --- a/projects/VS2022/examples/shapes_collision_area.vcxproj +++ b/projects/VS2022/examples/shapes_collision_area.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_colors_palette.vcxproj b/projects/VS2022/examples/shapes_colors_palette.vcxproj index 6f9234444..97b7f262f 100644 --- a/projects/VS2022/examples/shapes_colors_palette.vcxproj +++ b/projects/VS2022/examples/shapes_colors_palette.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_draw_circle_sector.vcxproj b/projects/VS2022/examples/shapes_draw_circle_sector.vcxproj index 6a2278000..7189288fd 100644 --- a/projects/VS2022/examples/shapes_draw_circle_sector.vcxproj +++ b/projects/VS2022/examples/shapes_draw_circle_sector.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_draw_rectangle_rounded.vcxproj b/projects/VS2022/examples/shapes_draw_rectangle_rounded.vcxproj index 9ad7fd3e1..4317cb1cb 100644 --- a/projects/VS2022/examples/shapes_draw_rectangle_rounded.vcxproj +++ b/projects/VS2022/examples/shapes_draw_rectangle_rounded.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_draw_ring.vcxproj b/projects/VS2022/examples/shapes_draw_ring.vcxproj index 526006f3d..a22feb5e4 100644 --- a/projects/VS2022/examples/shapes_draw_ring.vcxproj +++ b/projects/VS2022/examples/shapes_draw_ring.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_easings_ball_anim.vcxproj b/projects/VS2022/examples/shapes_easings_ball_anim.vcxproj index c85bb7493..682d29c96 100644 --- a/projects/VS2022/examples/shapes_easings_ball_anim.vcxproj +++ b/projects/VS2022/examples/shapes_easings_ball_anim.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_easings_box_anim.vcxproj b/projects/VS2022/examples/shapes_easings_box_anim.vcxproj index e9fbdbec3..27b85b82b 100644 --- a/projects/VS2022/examples/shapes_easings_box_anim.vcxproj +++ b/projects/VS2022/examples/shapes_easings_box_anim.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_easings_rectangle_array.vcxproj b/projects/VS2022/examples/shapes_easings_rectangle_array.vcxproj index 71ec5198e..cf14665b8 100644 --- a/projects/VS2022/examples/shapes_easings_rectangle_array.vcxproj +++ b/projects/VS2022/examples/shapes_easings_rectangle_array.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_following_eyes.vcxproj b/projects/VS2022/examples/shapes_following_eyes.vcxproj index c4ff36235..1527bb0ae 100644 --- a/projects/VS2022/examples/shapes_following_eyes.vcxproj +++ b/projects/VS2022/examples/shapes_following_eyes.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_lines_bezier.vcxproj b/projects/VS2022/examples/shapes_lines_bezier.vcxproj index b07622ac2..86af34f5a 100644 --- a/projects/VS2022/examples/shapes_lines_bezier.vcxproj +++ b/projects/VS2022/examples/shapes_lines_bezier.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_logo_raylib.vcxproj b/projects/VS2022/examples/shapes_logo_raylib.vcxproj index 86f4d161f..c325c6ea3 100644 --- a/projects/VS2022/examples/shapes_logo_raylib.vcxproj +++ b/projects/VS2022/examples/shapes_logo_raylib.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_logo_raylib_anim.vcxproj b/projects/VS2022/examples/shapes_logo_raylib_anim.vcxproj index a1553a422..9b6841c0b 100644 --- a/projects/VS2022/examples/shapes_logo_raylib_anim.vcxproj +++ b/projects/VS2022/examples/shapes_logo_raylib_anim.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_rectangle_advanced.vcxproj b/projects/VS2022/examples/shapes_rectangle_advanced.vcxproj index 809254c83..8f46e7360 100644 --- a/projects/VS2022/examples/shapes_rectangle_advanced.vcxproj +++ b/projects/VS2022/examples/shapes_rectangle_advanced.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_rectangle_scaling.vcxproj b/projects/VS2022/examples/shapes_rectangle_scaling.vcxproj index fadd78ae8..d632f7eef 100644 --- a/projects/VS2022/examples/shapes_rectangle_scaling.vcxproj +++ b/projects/VS2022/examples/shapes_rectangle_scaling.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_splines_drawing.vcxproj b/projects/VS2022/examples/shapes_splines_drawing.vcxproj index 249b40d22..d4f29e67c 100644 --- a/projects/VS2022/examples/shapes_splines_drawing.vcxproj +++ b/projects/VS2022/examples/shapes_splines_drawing.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/shapes_top_down_lights.vcxproj b/projects/VS2022/examples/shapes_top_down_lights.vcxproj index d8b1817f7..1eb11724e 100644 --- a/projects/VS2022/examples/shapes_top_down_lights.vcxproj +++ b/projects/VS2022/examples/shapes_top_down_lights.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/text_codepoints_loading.vcxproj b/projects/VS2022/examples/text_codepoints_loading.vcxproj index f56507a90..f92d39c61 100644 --- a/projects/VS2022/examples/text_codepoints_loading.vcxproj +++ b/projects/VS2022/examples/text_codepoints_loading.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/text_draw_3d.vcxproj b/projects/VS2022/examples/text_draw_3d.vcxproj index f21549544..c3dd4a37d 100644 --- a/projects/VS2022/examples/text_draw_3d.vcxproj +++ b/projects/VS2022/examples/text_draw_3d.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/text_font_filters.vcxproj b/projects/VS2022/examples/text_font_filters.vcxproj index 80dc4a786..962695d9f 100644 --- a/projects/VS2022/examples/text_font_filters.vcxproj +++ b/projects/VS2022/examples/text_font_filters.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/text_font_loading.vcxproj b/projects/VS2022/examples/text_font_loading.vcxproj index 1cdd7413f..0a7f20d93 100644 --- a/projects/VS2022/examples/text_font_loading.vcxproj +++ b/projects/VS2022/examples/text_font_loading.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/text_font_sdf.vcxproj b/projects/VS2022/examples/text_font_sdf.vcxproj index 967273ee7..3bc5d8a59 100644 --- a/projects/VS2022/examples/text_font_sdf.vcxproj +++ b/projects/VS2022/examples/text_font_sdf.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/text_font_spritefont.vcxproj b/projects/VS2022/examples/text_font_spritefont.vcxproj index 4c73d87cd..7ea74daa8 100644 --- a/projects/VS2022/examples/text_font_spritefont.vcxproj +++ b/projects/VS2022/examples/text_font_spritefont.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/text_format_text.vcxproj b/projects/VS2022/examples/text_format_text.vcxproj index 5ca406ef8..2b7d250e4 100644 --- a/projects/VS2022/examples/text_format_text.vcxproj +++ b/projects/VS2022/examples/text_format_text.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/text_input_box.vcxproj b/projects/VS2022/examples/text_input_box.vcxproj index 6655dff57..6e1db62f6 100644 --- a/projects/VS2022/examples/text_input_box.vcxproj +++ b/projects/VS2022/examples/text_input_box.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/text_raylib_fonts.vcxproj b/projects/VS2022/examples/text_raylib_fonts.vcxproj index 29847ed58..4ca414afd 100644 --- a/projects/VS2022/examples/text_raylib_fonts.vcxproj +++ b/projects/VS2022/examples/text_raylib_fonts.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/text_rectangle_bounds.vcxproj b/projects/VS2022/examples/text_rectangle_bounds.vcxproj index 9c379294d..3175bd09b 100644 --- a/projects/VS2022/examples/text_rectangle_bounds.vcxproj +++ b/projects/VS2022/examples/text_rectangle_bounds.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/text_unicode.vcxproj b/projects/VS2022/examples/text_unicode.vcxproj index 4dbc45524..26a679de1 100644 --- a/projects/VS2022/examples/text_unicode.vcxproj +++ b/projects/VS2022/examples/text_unicode.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/text_writing_anim.vcxproj b/projects/VS2022/examples/text_writing_anim.vcxproj index 0b685a32b..2920eaf5b 100644 --- a/projects/VS2022/examples/text_writing_anim.vcxproj +++ b/projects/VS2022/examples/text_writing_anim.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_background_scrolling.vcxproj b/projects/VS2022/examples/textures_background_scrolling.vcxproj index 2004a1338..ab8cf2248 100644 --- a/projects/VS2022/examples/textures_background_scrolling.vcxproj +++ b/projects/VS2022/examples/textures_background_scrolling.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_blend_modes.vcxproj b/projects/VS2022/examples/textures_blend_modes.vcxproj index c7aaeaa00..4ada1c3cd 100644 --- a/projects/VS2022/examples/textures_blend_modes.vcxproj +++ b/projects/VS2022/examples/textures_blend_modes.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_bunnymark.vcxproj b/projects/VS2022/examples/textures_bunnymark.vcxproj index d3c1ee256..0c230fd13 100644 --- a/projects/VS2022/examples/textures_bunnymark.vcxproj +++ b/projects/VS2022/examples/textures_bunnymark.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_draw_tiled.vcxproj b/projects/VS2022/examples/textures_draw_tiled.vcxproj index 2566985d7..209a12091 100644 --- a/projects/VS2022/examples/textures_draw_tiled.vcxproj +++ b/projects/VS2022/examples/textures_draw_tiled.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_fog_of_war.vcxproj b/projects/VS2022/examples/textures_fog_of_war.vcxproj index 46377acc1..9ab2544c0 100644 --- a/projects/VS2022/examples/textures_fog_of_war.vcxproj +++ b/projects/VS2022/examples/textures_fog_of_war.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_gif_player.vcxproj b/projects/VS2022/examples/textures_gif_player.vcxproj index 89c7a37f6..96b028a03 100644 --- a/projects/VS2022/examples/textures_gif_player.vcxproj +++ b/projects/VS2022/examples/textures_gif_player.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_image_drawing.vcxproj b/projects/VS2022/examples/textures_image_drawing.vcxproj index 27bba85ef..8aca17c08 100644 --- a/projects/VS2022/examples/textures_image_drawing.vcxproj +++ b/projects/VS2022/examples/textures_image_drawing.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_image_generation.vcxproj b/projects/VS2022/examples/textures_image_generation.vcxproj index a780b82de..1f32eaabe 100644 --- a/projects/VS2022/examples/textures_image_generation.vcxproj +++ b/projects/VS2022/examples/textures_image_generation.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_image_loading.vcxproj b/projects/VS2022/examples/textures_image_loading.vcxproj index c772c064e..2d7f98faf 100644 --- a/projects/VS2022/examples/textures_image_loading.vcxproj +++ b/projects/VS2022/examples/textures_image_loading.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_image_processing.vcxproj b/projects/VS2022/examples/textures_image_processing.vcxproj index 604926e8b..f91f8d70c 100644 --- a/projects/VS2022/examples/textures_image_processing.vcxproj +++ b/projects/VS2022/examples/textures_image_processing.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_image_text.vcxproj b/projects/VS2022/examples/textures_image_text.vcxproj index 6c20b084c..97f17cb22 100644 --- a/projects/VS2022/examples/textures_image_text.vcxproj +++ b/projects/VS2022/examples/textures_image_text.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_logo_raylib.vcxproj b/projects/VS2022/examples/textures_logo_raylib.vcxproj index d68b61d23..0b97aeb4a 100644 --- a/projects/VS2022/examples/textures_logo_raylib.vcxproj +++ b/projects/VS2022/examples/textures_logo_raylib.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_mouse_painting.vcxproj b/projects/VS2022/examples/textures_mouse_painting.vcxproj index dc9546e62..a164c5cc7 100644 --- a/projects/VS2022/examples/textures_mouse_painting.vcxproj +++ b/projects/VS2022/examples/textures_mouse_painting.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_npatch_drawing.vcxproj b/projects/VS2022/examples/textures_npatch_drawing.vcxproj index e7482f90c..0759bc180 100644 --- a/projects/VS2022/examples/textures_npatch_drawing.vcxproj +++ b/projects/VS2022/examples/textures_npatch_drawing.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_particles_blending.vcxproj b/projects/VS2022/examples/textures_particles_blending.vcxproj index 8b3d96fe9..9d9dfb414 100644 --- a/projects/VS2022/examples/textures_particles_blending.vcxproj +++ b/projects/VS2022/examples/textures_particles_blending.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_polygon.vcxproj b/projects/VS2022/examples/textures_polygon.vcxproj index f655da8c0..3c15bc8f3 100644 --- a/projects/VS2022/examples/textures_polygon.vcxproj +++ b/projects/VS2022/examples/textures_polygon.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_raw_data.vcxproj b/projects/VS2022/examples/textures_raw_data.vcxproj index 705cdd93f..8040d5fe6 100644 --- a/projects/VS2022/examples/textures_raw_data.vcxproj +++ b/projects/VS2022/examples/textures_raw_data.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_sprite_anim.vcxproj b/projects/VS2022/examples/textures_sprite_anim.vcxproj index ef69ed173..ee2259dfa 100644 --- a/projects/VS2022/examples/textures_sprite_anim.vcxproj +++ b/projects/VS2022/examples/textures_sprite_anim.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_sprite_button.vcxproj b/projects/VS2022/examples/textures_sprite_button.vcxproj index 058bad757..ae15d9aec 100644 --- a/projects/VS2022/examples/textures_sprite_button.vcxproj +++ b/projects/VS2022/examples/textures_sprite_button.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_sprite_explosion.vcxproj b/projects/VS2022/examples/textures_sprite_explosion.vcxproj index 066965dc5..0ceb1e3af 100644 --- a/projects/VS2022/examples/textures_sprite_explosion.vcxproj +++ b/projects/VS2022/examples/textures_sprite_explosion.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_srcrec_dstrec.vcxproj b/projects/VS2022/examples/textures_srcrec_dstrec.vcxproj index f3150aea7..d0ddbdf66 100644 --- a/projects/VS2022/examples/textures_srcrec_dstrec.vcxproj +++ b/projects/VS2022/examples/textures_srcrec_dstrec.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_svg_loading.vcxproj b/projects/VS2022/examples/textures_svg_loading.vcxproj index 8b59d9526..fc2375aff 100644 --- a/projects/VS2022/examples/textures_svg_loading.vcxproj +++ b/projects/VS2022/examples/textures_svg_loading.vcxproj @@ -377,7 +377,7 @@ - + diff --git a/projects/VS2022/examples/textures_textured_curve.vcxproj b/projects/VS2022/examples/textures_textured_curve.vcxproj index f8b720335..cd87a0536 100644 --- a/projects/VS2022/examples/textures_textured_curve.vcxproj +++ b/projects/VS2022/examples/textures_textured_curve.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/examples/textures_to_image.vcxproj b/projects/VS2022/examples/textures_to_image.vcxproj index 41e7faf71..07271a554 100644 --- a/projects/VS2022/examples/textures_to_image.vcxproj +++ b/projects/VS2022/examples/textures_to_image.vcxproj @@ -556,7 +556,7 @@ - + diff --git a/projects/VS2022/raylib.sln b/projects/VS2022/raylib.sln index 66c385ff1..4f8c3beea 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -271,6 +271,8 @@ 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}" +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_hybrid_render", "examples\shaders_hybrid_render.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}" @@ -759,6 +761,30 @@ Global {0199E349-0701-40BC-8A7F-06A54FFA3E7C}.Release|x64.Build.0 = Release|x64 {0199E349-0701-40BC-8A7F-06A54FFA3E7C}.Release|x86.ActiveCfg = Release|Win32 {0199E349-0701-40BC-8A7F-06A54FFA3E7C}.Release|x86.Build.0 = Release|Win32 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Debug.DLL|ARM64.Build.0 = Debug.DLL|ARM64 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Debug|ARM64.Build.0 = Debug|ARM64 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Debug|x64.ActiveCfg = Debug|x64 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Debug|x64.Build.0 = Debug|x64 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Debug|x86.ActiveCfg = Debug|Win32 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Debug|x86.Build.0 = Debug|Win32 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Release.DLL|ARM64.ActiveCfg = Release.DLL|ARM64 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Release.DLL|ARM64.Build.0 = Release.DLL|ARM64 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Release|ARM64.ActiveCfg = Release|ARM64 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Release|ARM64.Build.0 = Release|ARM64 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Release|x64.ActiveCfg = Release|x64 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Release|x64.Build.0 = Release|x64 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Release|x86.ActiveCfg = Release|Win32 + {BCB71111-8505-4B35-8CEF-EC6115DC9D4D}.Release|x86.Build.0 = Release|Win32 {8F19E3DA-8929-4000-87B5-3CA6929636CC}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 {8F19E3DA-8929-4000-87B5-3CA6929636CC}.Debug.DLL|ARM64.Build.0 = Debug.DLL|ARM64 {8F19E3DA-8929-4000-87B5-3CA6929636CC}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 @@ -3291,6 +3317,30 @@ Global {70B35F59-AFC2-4D8F-8833-5314D2047A81}.Release|x64.Build.0 = Release|x64 {70B35F59-AFC2-4D8F-8833-5314D2047A81}.Release|x86.ActiveCfg = Release|Win32 {70B35F59-AFC2-4D8F-8833-5314D2047A81}.Release|x86.Build.0 = Release|Win32 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Debug.DLL|ARM64.Build.0 = Debug.DLL|ARM64 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Debug|ARM64.Build.0 = Debug|ARM64 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Debug|x64.ActiveCfg = Debug|x64 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Debug|x64.Build.0 = Debug|x64 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Debug|x86.ActiveCfg = Debug|Win32 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Debug|x86.Build.0 = Debug|Win32 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Release.DLL|ARM64.ActiveCfg = Release.DLL|ARM64 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Release.DLL|ARM64.Build.0 = Release.DLL|ARM64 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Release|ARM64.ActiveCfg = Release|ARM64 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Release|ARM64.Build.0 = Release|ARM64 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Release|x64.ActiveCfg = Release|x64 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Release|x64.Build.0 = Release|x64 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Release|x86.ActiveCfg = Release|Win32 + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7}.Release|x86.Build.0 = Release|Win32 {3755E9F4-CB48-4EC3-B561-3B85964EBDEF}.Debug.DLL|ARM64.ActiveCfg = Debug.DLL|ARM64 {3755E9F4-CB48-4EC3-B561-3B85964EBDEF}.Debug.DLL|ARM64.Build.0 = Debug.DLL|ARM64 {3755E9F4-CB48-4EC3-B561-3B85964EBDEF}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 diff --git a/src/platforms/rcore_desktop_glfw.c b/src/platforms/rcore_desktop_glfw.c index a08033a93..239df0657 100644 --- a/src/platforms/rcore_desktop_glfw.c +++ b/src/platforms/rcore_desktop_glfw.c @@ -307,6 +307,8 @@ void RestoreWindow(void) // Set window configuration state using flags void SetWindowState(unsigned int flags) { + if (!CORE.Window.ready) TRACELOG(LOG_WARNING, "WINDOW: SetWindowState does nothing before window initialization, Use \"SetConfigFlags\" instead"); + // Check previous state and requested state to apply required changes // NOTE: In most cases the functions already change the flags internally @@ -1759,7 +1761,7 @@ static void WindowSizeCallback(GLFWwindow *window, int width, int height) width = (int)(width/GetWindowScaleDPI().x); height = (int)(height/GetWindowScaleDPI().y); } - + // Set render size CORE.Window.render.width = width; CORE.Window.render.height = height; diff --git a/src/platforms/rcore_desktop_rgfw.c b/src/platforms/rcore_desktop_rgfw.c index 9a5841c83..92e3def05 100644 --- a/src/platforms/rcore_desktop_rgfw.c +++ b/src/platforms/rcore_desktop_rgfw.c @@ -350,6 +350,8 @@ void RestoreWindow(void) // Set window configuration state using flags void SetWindowState(unsigned int flags) { + if (!CORE.Window.ready) TRACELOG(LOG_WARNING, "WINDOW: SetWindowState does nothing before window initialization, Use \"SetConfigFlags\" instead"); + CORE.Window.flags |= flags; if (flags & FLAG_VSYNC_HINT) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 517e43914..1621dd2a5 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -518,6 +518,8 @@ void RestoreWindow(void) // Set window configuration state using flags void SetWindowState(unsigned int flags) { + if (!CORE.Window.ready) TRACELOG(LOG_WARNING, "WINDOW: SetWindowState does nothing before window initialization, Use \"SetConfigFlags\" instead"); + CORE.Window.flags |= flags; if (flags & FLAG_VSYNC_HINT) @@ -1363,10 +1365,7 @@ void PollInputEvents(void) for (int i = 0; i < MAX_TOUCH_POINTS; i++) CORE.Input.Touch.previousTouchState[i] = CORE.Input.Touch.currentTouchState[i]; // Map touch position to mouse position for convenience - if (CORE.Input.Touch.pointCount == 0) - { - CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition; - } + if (CORE.Input.Touch.pointCount == 0) CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition; int touchAction = -1; // 0-TOUCH_ACTION_UP, 1-TOUCH_ACTION_DOWN, 2-TOUCH_ACTION_MOVE bool realTouch = false; // Flag to differentiate real touch gestures from mouse ones diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index b3bb43b5b..bf5a6ba5a 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -364,6 +364,8 @@ void RestoreWindow(void) // Set window configuration state using flags void SetWindowState(unsigned int flags) { + if (!CORE.Window.ready) TRACELOG(LOG_WARNING, "WINDOW: SetWindowState does nothing before window initialization, Use \"SetConfigFlags\" instead"); + // Check previous state and requested state to apply required changes // NOTE: In most cases the functions already change the flags internally diff --git a/src/raudio.c b/src/raudio.c index 2b6628a24..66d337567 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -2104,8 +2104,12 @@ AudioStream LoadAudioStream(unsigned int sampleRate, unsigned int sampleSize, un // The size of a streaming buffer must be at least double the size of a period unsigned int periodSize = AUDIO.System.device.playback.internalPeriodSizeInFrames; - // If the buffer is not set, compute one that would give us a buffer good enough for a decent frame rate - unsigned int subBufferSize = (AUDIO.Buffer.defaultSize == 0)? AUDIO.System.device.sampleRate/30 : AUDIO.Buffer.defaultSize; + // If the buffer is not set, compute one that would give us a buffer good enough for a decent frame rate at the device bit size/rate + int deviceBitsPerSample = AUDIO.System.device.playback.format; + if (deviceBitsPerSample > 4) deviceBitsPerSample = 4; + deviceBitsPerSample *= AUDIO.System.device.playback.channels; + + unsigned int subBufferSize = (AUDIO.Buffer.defaultSize == 0) ? (AUDIO.System.device.sampleRate/30*deviceBitsPerSample) : AUDIO.Buffer.defaultSize; if (subBufferSize < periodSize) subBufferSize = periodSize; diff --git a/src/rcore.c b/src/rcore.c index 65c37a23c..5b2679c95 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1879,7 +1879,10 @@ void TakeScreenshot(const char *fileName) // Security check to (partially) avoid malicious code if (strchr(fileName, '\'') != NULL) { TRACELOG(LOG_WARNING, "SYSTEM: Provided fileName could be potentially malicious, avoid [\'] character"); return; } - Vector2 scale = GetWindowScaleDPI(); + // Apply a scale if we are doing HIGHDPI auto-scaling + Vector2 scale = { 1.0f, 1.0f }; + if (IsWindowState(FLAG_WINDOW_HIGHDPI)) scale = GetWindowScaleDPI(); + unsigned char *imgData = rlReadScreenPixels((int)((float)CORE.Window.render.width*scale.x), (int)((float)CORE.Window.render.height*scale.y)); Image image = { imgData, (int)((float)CORE.Window.render.width*scale.x), (int)((float)CORE.Window.render.height*scale.y), 1, PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 }; @@ -1902,6 +1905,8 @@ void TakeScreenshot(const char *fileName) // To configure window states after creation, just use SetWindowState() void SetConfigFlags(unsigned int flags) { + if (CORE.Window.ready) TRACELOG(LOG_WARNING, "WINDOW: SetConfigFlags called after window initialization, Use \"SetWindowState\" to set flags instead"); + // Selected flags are set but not evaluated at this point, // flag evaluation happens at InitWindow() or SetWindowState() CORE.Window.flags |= flags; diff --git a/src/rmodels.c b/src/rmodels.c index 73dba6aa7..a7f48fd11 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -2286,38 +2286,28 @@ void UpdateModelAnimationBones(Model model, ModelAnimation anim, int frame) } } - // Update all bones and boneMatrices of first mesh with bones. - for (int boneId = 0; boneId < anim.boneCount; boneId++) - { - Vector3 inTranslation = model.bindPose[boneId].translation; - Quaternion inRotation = model.bindPose[boneId].rotation; - Vector3 inScale = model.bindPose[boneId].scale; - - Vector3 outTranslation = anim.framePoses[frame][boneId].translation; - Quaternion outRotation = anim.framePoses[frame][boneId].rotation; - Vector3 outScale = anim.framePoses[frame][boneId].scale; - - Quaternion invRotation = QuaternionInvert(inRotation); - Vector3 invTranslation = Vector3RotateByQuaternion(Vector3Negate(inTranslation), invRotation); - Vector3 invScale = Vector3Divide((Vector3){ 1.0f, 1.0f, 1.0f }, inScale); - - Vector3 boneTranslation = Vector3Add(Vector3RotateByQuaternion( - Vector3Multiply(outScale, invTranslation), outRotation), outTranslation); - Quaternion boneRotation = QuaternionMultiply(outRotation, invRotation); - Vector3 boneScale = Vector3Multiply(outScale, invScale); - - Matrix boneMatrix = MatrixMultiply(MatrixMultiply( - QuaternionToMatrix(boneRotation), - MatrixTranslate(boneTranslation.x, boneTranslation.y, boneTranslation.z)), - MatrixScale(boneScale.x, boneScale.y, boneScale.z)); - - model.meshes[firstMeshWithBones].boneMatrices[boneId] = boneMatrix; - } - - // Update remaining meshes with bones - // NOTE: Using deep copy because shallow copy results in double free with 'UnloadModel()' if (firstMeshWithBones != -1) { + // Update all bones and boneMatrices of first mesh with bones. + for (int boneId = 0; boneId < anim.boneCount; boneId++) + { + Transform *bindTransform = &model.bindPose[boneId]; + Matrix bindMatrix = MatrixMultiply(MatrixMultiply( + MatrixScale(bindTransform->scale.x, bindTransform->scale.y, bindTransform->scale.z), + QuaternionToMatrix(bindTransform->rotation)), + MatrixTranslate(bindTransform->translation.x, bindTransform->translation.y, bindTransform->translation.z)); + + Transform *targetTransform = &anim.framePoses[frame][boneId]; + Matrix targetMatrix = MatrixMultiply(MatrixMultiply( + MatrixScale(targetTransform->scale.x, targetTransform->scale.y, targetTransform->scale.z), + QuaternionToMatrix(targetTransform->rotation)), + MatrixTranslate(targetTransform->translation.x, targetTransform->translation.y, targetTransform->translation.z)); + + model.meshes[firstMeshWithBones].boneMatrices[boneId] = MatrixMultiply(MatrixInvert(bindMatrix), targetMatrix); + } + + // Update remaining meshes with bones + // NOTE: Using deep copy because shallow copy results in double free with 'UnloadModel()' for (int i = firstMeshWithBones + 1; i < model.meshCount; i++) { if (model.meshes[i].boneMatrices) diff --git a/src/rtext.c b/src/rtext.c index 0d06caa9a..e7bc341f1 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1075,7 +1075,7 @@ bool ExportFontAsCode(Font font, const char *fileName) byteCount += sprintf(txtData + byteCount, " Image imFont = { fontImageData_%s, %i, %i, 1, %i };\n\n", styleName, image.width, image.height, image.format); #endif byteCount += sprintf(txtData + byteCount, " // Load texture from image\n"); - byteCount += sprintf(txtData + byteCount, " if (isGpuReady) font.texture = LoadTextureFromImage(imFont);\n"); + byteCount += sprintf(txtData + byteCount, " font.texture = LoadTextureFromImage(imFont);\n"); #if defined(SUPPORT_COMPRESSED_FONT_ATLAS) byteCount += sprintf(txtData + byteCount, " UnloadImage(imFont); // Uncompressed data can be unloaded from memory\n\n"); #endif