diff options
| author | Ray <[email protected]> | 2021-03-20 20:06:38 +0100 |
|---|---|---|
| committer | Ray <[email protected]> | 2021-03-20 20:06:38 +0100 |
| commit | 95f9a6171b19596411d1f77295f33f09ebd2eeba (patch) | |
| tree | 47df6524a30504a830a758ab6f6def700597d804 | |
| parent | f4d6bad607ef1eb1f932abdc9b357802925a012f (diff) | |
| download | raylib-95f9a6171b19596411d1f77295f33f09ebd2eeba.tar.gz raylib-95f9a6171b19596411d1f77295f33f09ebd2eeba.zip | |
Review HighDPI macOS support #1510
| -rw-r--r-- | src/core.c | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -4261,9 +4261,16 @@ static void SetupViewport(int width, int height) // Set viewport width and height // NOTE: We consider render size (scaled) and offset in case black bars are required and // render area does not match full display area (this situation is only applicable on fullscreen mode) - float xScale = 1, yScale = 1; - glfwGetWindowContentScale(CORE.Window.handle, &xScale, &yScale); - rlViewport(CORE.Window.renderOffset.x/2*xScale, CORE.Window.renderOffset.y/2*yScale, (CORE.Window.render.width - CORE.Window.renderOffset.x)*xScale, (CORE.Window.render.height - CORE.Window.renderOffset.y)*yScale); +#if defined(__APPLE__) + if ((CORE.Window.flags & FLAG_WINDOW_HIGHDPI) > 0) + { + float xScale = 1.0f, yScale = 1.0f; + glfwGetWindowContentScale(CORE.Window.handle, &xScale, &yScale); + rlViewport(CORE.Window.renderOffset.x/2*xScale, CORE.Window.renderOffset.y/2*yScale, (CORE.Window.render.width - CORE.Window.renderOffset.x)*xScale, (CORE.Window.render.height - CORE.Window.renderOffset.y)*yScale); + } +#else + rlViewport(CORE.Window.renderOffset.x/2, CORE.Window.renderOffset.y/2, CORE.Window.render.width - CORE.Window.renderOffset.x, CORE.Window.render.height - CORE.Window.renderOffset.y); +#endif rlMatrixMode(RL_PROJECTION); // Switch to projection matrix rlLoadIdentity(); // Reset current matrix (projection) |
