diff --git a/src/raylib.h b/src/raylib.h index 7f05445bd..8f01e4834 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -928,6 +928,8 @@ RLAPI void SetWindowSize(int width, int height); // Set window RLAPI void *GetWindowHandle(void); // Get native window handle RLAPI int GetScreenWidth(void); // Get current screen width RLAPI int GetScreenHeight(void); // Get current screen height +RLAPI int GetRenderWidth(void); // Get current render width +RLAPI int GetRenderHeight(void); // Get current render height RLAPI int GetMonitorCount(void); // Get number of connected monitors RLAPI int GetCurrentMonitor(void); // Get current connected monitor RLAPI Vector2 GetMonitorPosition(int monitor); // Get specified monitor position diff --git a/src/rcore.c b/src/rcore.c index ec1601ca1..58bbbbf41 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -2184,6 +2184,14 @@ void BeginScissorMode(int x, int y, int width, int height) rlEnableScissorTest(); +#if defined(__APPLE__) + Vector2 scale = GetWindowScaleDPI(); + rlScissor( + (int)(x*scale.x), + (int)(GetScreenHeight() * scale.y - (((y + height) * scale.y))), + (int)(width*scale.x), + (int)(height*scale.y)); +#else if ((CORE.Window.flags & FLAG_WINDOW_HIGHDPI) > 0) { Vector2 scale = GetWindowScaleDPI(); @@ -2194,6 +2202,7 @@ void BeginScissorMode(int x, int y, int width, int height) { rlScissor(x, CORE.Window.currentFbo.height - (y + height), width, height); } +#endif } // End scissor mode