From d30cfea82da302b394006b45e80707f90ad1a956 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Apr 2024 20:10:15 +0200 Subject: [PATCH] REVIEWED: `GetScreenToWorldRayEx()` --- src/raylib.h | 2 +- src/rcore.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index edf4f1384..e351d33fd 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1051,7 +1051,7 @@ RLAPI void UnloadShader(Shader shader); // Un // Screen-space-related functions #define GetMouseRay GetScreenToWorldRay // Compatibility hack for previous raylib versions RLAPI Ray GetScreenToWorldRay(Vector2 position, Camera camera); // Get a ray trace from screen position (i.e mouse) -RLAPI Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, float width, float height); // Get a ray trace from screen position (i.e mouse) in a viewport +RLAPI Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, int width, int height); // Get a ray trace from screen position (i.e mouse) in a viewport RLAPI Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Get the screen space position for a 3d world space position RLAPI Vector2 GetWorldToScreenEx(Vector3 position, Camera camera, int width, int height); // Get size position for a 3d world space position RLAPI Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera); // Get the screen space position for a 2d camera world space position diff --git a/src/rcore.c b/src/rcore.c index 3645c6179..9705495ee 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1419,18 +1419,18 @@ void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture) // Get a ray trace from screen position (i.e mouse) Ray GetScreenToWorldRay(Vector2 position, Camera camera) { - return GetScreenToWorldRayEx(position, camera, (float)GetScreenWidth(), (float)GetScreenHeight()); + return GetScreenToWorldRayEx(position, camera, GetScreenWidth(), GetScreenHeight()); } // Get a ray trace from the screen position (i.e mouse) within a specific section of the screen -Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, float width, float height) +Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, int width, int height) { Ray ray = { 0 }; // Calculate normalized device coordinates // NOTE: y value is negative - float x = (2.0f*position.x)/width - 1.0f; - float y = 1.0f - (2.0f*position.y)/height; + float x = (2.0f*position.x)/(float)width - 1.0f; + float y = 1.0f - (2.0f*position.y)/(float)height; float z = 1.0f; // Store values in a vector