From cc5739a6d7f6514e9c60173b14c0a38c4a928955 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 13 Apr 2025 20:55:38 +0200 Subject: [PATCH] REVIEWED: Some PRs formating --- examples/audio/audio_sound_positioning.c | 94 ++++++++++-------- examples/audio/audio_sound_positioning.png | Bin 12217 -> 26205 bytes .../resources/shaders/glsl100/depth.fs | 8 +- .../resources/shaders/glsl330/depth.fs | 11 +- examples/shaders/shaders_view_depth.c | 14 +-- examples/shaders/shaders_view_depth.png | Bin 11335 -> 30653 bytes examples/shaders/shaders_write_depth.c | 2 - .../examples/shaders_view_depth.vcxproj | 2 +- projects/VS2022/raylib.sln | 50 +++++++++- src/platforms/rcore_desktop_sdl.c | 5 +- src/rcore.c | 4 +- 11 files changed, 111 insertions(+), 79 deletions(-) diff --git a/examples/audio/audio_sound_positioning.c b/examples/audio/audio_sound_positioning.c index 4c78b66e3..45f211ec4 100644 --- a/examples/audio/audio_sound_positioning.c +++ b/examples/audio/audio_sound_positioning.c @@ -15,40 +15,12 @@ * ********************************************************************************************/ -#include -#include +#include "raylib.h" + +#include "raymath.h" -//------------------------------------------------------------------------------------ // 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); -} +static void SetSoundPosition(Camera listener, Sound sound, Vector3 position, float maxDist); //------------------------------------------------------------------------------------ // Program main entry point @@ -57,12 +29,13 @@ int main(void) { // Initialization //-------------------------------------------------------------------------------------- - InitWindow(800, 600, "Quick Spatial Sound"); + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [audio] example - Playing spatialized 3D sound"); + InitAudioDevice(); - SetTargetFPS(60); - DisableCursor(); - Sound sound = LoadSound("resources/coin.wav"); Camera camera = { @@ -70,7 +43,12 @@ int main(void) .target = (Vector3) { 0, 0, 0 }, .up = (Vector3) { 0, 1, 0 }, .fovy = 60, + .projection = CAMERA_PERSPECTIVE }; + + DisableCursor(); + + SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop @@ -83,9 +61,9 @@ int main(void) float th = GetTime(); Vector3 spherePos = { - .x = 5.0f * cosf(th), + .x = 5.0f*cosf(th), .y = 0.0f, - .z = 5.0f * sinf(th) + .z = 5.0f*sinf(th) }; SetSoundPosition(camera, sound, spherePos, 20.0f); @@ -95,14 +73,14 @@ int main(void) // Draw //---------------------------------------------------------------------------------- BeginDrawing(); - { - ClearBackground(BLACK); + + ClearBackground(RAYWHITE); BeginMode3D(camera); DrawGrid(10, 2); DrawSphere(spherePos, 0.5f, RED); EndMode3D(); - } + EndDrawing(); //---------------------------------------------------------------------------------- } @@ -110,6 +88,36 @@ int main(void) // De-Initialization //-------------------------------------------------------------------------------------- UnloadSound(sound); - CloseAudioDevice(); - CloseWindow(); + 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 index 3e7a8ffdd0362afc0840717bc176d30d6f1daa0a..6feaf7e4ce62bf764021dc199659ebb3bbf89f0a 100644 GIT binary patch literal 26205 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

y}7g+yxB(?>W}q;V-)aXZgEcQrk1nI}!*#zVzX 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 BaUK8w literal 12217 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 MT~{?<#U|wc0o}j6-~a#s 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/shaders_view_depth.vcxproj b/projects/VS2022/examples/shaders_view_depth.vcxproj index 5f6250256..c176cbf33 100644 --- a/projects/VS2022/examples/shaders_view_depth.vcxproj +++ b/projects/VS2022/examples/shaders_view_depth.vcxproj @@ -51,7 +51,7 @@ - {70B35F59-AFC2-4D8F-8833-5314D2047A81} + {DFDE29A7-4F54-455D-B20B-D2BF79D3B3F7} Win32Proj shaders_view_depth 10.0 diff --git a/projects/VS2022/raylib.sln b/projects/VS2022/raylib.sln index 8c0c7f747..4f8c3beea 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -271,7 +271,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_loading_m3d", "examp EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_write_depth", "examples\shaders_write_depth.vcxproj", "{70B35F59-AFC2-4D8F-8833-5314D2047A81}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders_view_depth", "examples\shaders_view_depth.vcxproj", "{70B35F59-AFC2-4D8F-8833-5314D2047A81}" +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 @@ -761,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 @@ -3293,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_sdl.c b/src/platforms/rcore_desktop_sdl.c index 517e43914..70d529202 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -1363,10 +1363,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/rcore.c b/src/rcore.c index ea971b52f..ec6c94e94 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1879,8 +1879,8 @@ 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; } - // apply a scale if we are doing HIGHDPI auto-scaling - Vector2 scale = { 1,1 }; + // 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));