Glfw: Windows์—์„œ ๋‘ ๋ฒˆ ํ˜ธ์ถœ๋œ ํ”„๋ ˆ์ž„/์ฐฝ ํฌ๊ธฐ ์ฝœ๋ฐฑ

์— ๋งŒ๋“  2019๋…„ 12์›” 13์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: glfw/glfw

GLFW3์˜ Windows ํฌํŠธ์—์„œ _glfwInputFramebufferSize ๋ฐ _glfwInputWindowSize ๊ฐ€ ํ˜„์žฌ ์ฐฝ ํฌ๊ธฐ์— ๊ด€๊ณ„์—†์ด ํ˜ธ์ถœ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ฐฝ ๋„ˆ๋น„/๋†’์ด๋Š” win32 ๊ตฌ์กฐ์— ์ €์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ฝœ๋ฐฑ์— ๋Œ€ํ•œ ๋ฐ˜๋ณต ํ˜ธ์ถœ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

win32_window.c ์ฝ”๋“œ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

        case WM_SIZE:
        {
            const GLFWbool iconified = wParam == SIZE_MINIMIZED;
            const GLFWbool maximized = wParam == SIZE_MAXIMIZED ||
                                       (window->win32.maximized &&
                                        wParam != SIZE_RESTORED);
            const int width = LOWORD(lParam);
            const int height = HIWORD(lParam);

            if (_glfw.win32.disabledCursorWindow == window)
                updateClipRect(window);

            if (window->win32.iconified != iconified)
                _glfwInputWindowIconify(window, iconified);

            if (window->win32.maximized != maximized)
                _glfwInputWindowMaximize(window, maximized);

            if (window->win32.width != width || window->win32.height != height) {
                _glfwInputFramebufferSize(window, width, height);
                _glfwInputWindowSize(window, width, height);
            }

            if (window->monitor && window->win32.iconified != iconified)
            {
                if (iconified)
                    releaseMonitor(window);
                else
                {
                    acquireMonitor(window);
                    fitToMonitor(window);
                }
            }

            window->win32.iconified = iconified;
            window->win32.maximized = maximized;
            window->win32.width = width;
            window->win32.height = height;
            return 0;
        }
Windows enhancement

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ž, ์ด์ œ X11์ด a7ff236 ์ดํ›„๋กœ, Cocoa - 1fe319d(#1085) ์ดํ›„๋กœ ์ด๊ฒƒ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.
Windows๋„ ๊ฐ™์€ ํŠธ๋ฆญ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์„ ๋•Œ ์ด ์ด๋ฒคํŠธ๊ฐ€ ํ˜ธ์ถœ๋  ์ˆ˜ ์žˆ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๋ชจ๋“  4 ๋Œ“๊ธ€

์ด๊ฒƒ์€ ์ž ์žฌ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๊นจ๋œจ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ˆ„๊ตฐ๊ฐ€๋Š” ์ด ๋™์ž‘์— ์˜์กดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ž ์žฌ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๊นจ๋œจ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ˆ„๊ตฐ๊ฐ€๋Š” ์ด ๋™์ž‘์— ์˜์กดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์ด ์˜ณ์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ window ๊ตฌ์กฐ๋Š” ๋„ˆ๋น„/๋†’์ด ํ•„๋“œ๋ฅผ ํŠน์ง•์œผ๋กœ ํ•˜๊ณ  Windows ํฌํŒ…์—์„œ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ๋‹จ์ง€ (์‚ฌ์†Œํ•œ) ์‹ค์ˆ˜๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ž, ์ด์ œ X11์ด a7ff236 ์ดํ›„๋กœ, Cocoa - 1fe319d(#1085) ์ดํ›„๋กœ ์ด๊ฒƒ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.
Windows๋„ ๊ฐ™์€ ํŠธ๋ฆญ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์„ ๋•Œ ์ด ์ด๋ฒคํŠธ๊ฐ€ ํ˜ธ์ถœ๋  ์ˆ˜ ์žˆ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ. ์‚ฌ์‹ค, ๋‚˜๋Š” ์ฒ˜์Œ์— 1x1 ์ˆจ๊ฒจ์ง„ ์ฐฝ์„ ์—ฐ ๋‹ค์Œ ์ ์ ˆํ•œ(๊ณ„์‚ฐ๋œ) ํฌ๊ธฐ๋กœ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ํ‘œ์‹œํ•˜๋Š” ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์ผ๋ จ์˜ ์ž‘์—…์„ ํ†ตํ•ด ์ฐฝ ํฌ๊ธฐ๊ฐ€ ์„ค์ •๋œ ํ›„ ์ฝœ๋ฐฑ์ด ๋‘ ๋ฒˆ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค(ํฌ๊ธฐ ์กฐ์ • ํ›„ ์ฒซ ๋ฒˆ์งธ, ํ‘œ์‹œํ•  ๋•Œ ๋‘ ๋ฒˆ์งธ).

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰