크로스플랫폼 개발을 하고 있는데, 문제가 OS마다 다르다.
그 중 하나가 macOS에서 갑자기 왼쪽 아래쪽에만 viewport가 나타나는 현상이었다.
4.3 - Why is my output in the lower-left corner of the window?
You are passing the window size, which is in screen coordinates, to glViewport, which works with pixels. On macOS with a Retina display, and possibly on other platforms in the future, screen coordinates and pixels do not map 1:1. Use the framebuffer size, which is in pixels, instead of the window size.
- glfw.org
구글링을 하다가 이런 글을 찾았다.
GLFW 공식 홈페이지에 있는 글이다.
macOS에서는 스크린 좌표와 픽셀이 1:1 매치가 아니라는 이야기이다.
그래서 해결방법은 framebuffer size를 사용하라는 것이다. window size 대신!
glViewport(0, 0, window_width, window_height);
원래는 이런 식으로 viewport 크기와 위치를 지정했었는데,
int width, height;
glfwGetFramebufferSize(window, &width, &height);
glViewport(0, 0, width, height);
이렇게 수정했다.
간단히 해결!
'etc.' 카테고리의 다른 글
The breakpoint will not currently be hit 에러 해결방법 (0) | 2020.11.16 |
---|---|
Sourcetrail 사용하기 - 소스파일 전체 flow 그래프 보기 (feat. Visual Studio) (0) | 2020.11.13 |
git push가 안 될 때 / detached HEAD 문제 해결 방법 (4) | 2020.11.09 |
Windows 10 시작메뉴 옆 알림센터가 열리지 않을 때 해결방법 (0) | 2020.11.05 |
MacOS에서 icon 변경하기 | customized icon | ICNS (1) | 2020.10.30 |