์ ๋ฐ์ดํธ: ๋ผ์ด๋ธ๋ฅผ ์์ฒญํ๊ณ ์ฐ๋ฆฌ์ ์ด์ผ๊ธฐํ๊ฑฐ๋ ๋ น์์ ์์ฒญํ ์ ์์๋ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ -
๋ค์ WinUI ์ปค๋ฎค๋ํฐ ์ฝ์ 2์ 19์ผ ์์์ผ์ ์์ต๋๋ค.
Windows ๊ฐ๋ฐ์ YouTube ์ฑ๋์์ ๋ค์ ์์ค๊ณํฉ๋๋ค.
๋ ์ง: 2์ 19์ผ ์์์ผ
์๊ฐ: 17:00-18:00 UTC (ํํ์ ํ์ค์ ์ค์ 9:00-10:
๋๊ตฌ๋ ์ง ํ์ํฉ๋๋ค. ์ฌ์ ๋ฑ๋ก์ด ํ์ํ์ง ์์ต๋๋ค.
์ด๊ฒ์ ์์ง๋์ด๋ง ํ ๊ตฌ์ฑ์๊ณผ ์ง์ ๋น๊ณต์ ์จ๋ผ์ธ ํตํ์
๋๋ค.
๊ทํ์ ์ง๋ฌธ์ ๋ค์ ๋ต๋ณํ๋ ๋ฐ ์๊ฐ์ ํ ์ ํ๊ณ ์ถ์ต๋๋ค. ๋ค์ ์ฃผ์ ๋ค๋ฃจ์์ผ๋ฉด ํ๋ ์ง๋ฌธ์ด๋ ์ฃผ์ ๊ฐ ์์ผ๋ฉด ์ด ํธ์ ๋๊ธ์ ๋จ๊ฒจ ์ฃผ์ธ์!
์๋ก์ด WinUI 3 Alpha 2020๋ 2์ ์ ๋ฐ์ดํธ ๋ฅผ ์ฌ์ฉํด ๋ณธ ๊ฒฝ์ฐ WebView2 ๋๋ ๊ธฐํ ํญ๋ชฉ์ ๋ํด ์ง๊ธ๊น์ง ์์ ์ ์๋ ํผ๋๋ฐฑ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์ถ์ต๋๋ค.
๋ํ ์ด๋ฒ ๋ฌ์ ๋ช ๋ช ์ ๊ฐ๋ฐ ํ ๋ฆฌ๋ ๊ฐ ์ ํ๋ฅผ ๊ฑธ์ด ์๊ฒฌ์ ์ ์ํ๊ฑฐ๋ ์ง๋ฌธ์ ๋ต๋ณํ ์์ ์ ๋๋ค.
Windows 10X ๊ฐ๋ฐ์ ๊ดํด ์ง๋ฌธ์ด ์์ต๋๋ค. ์ด๋ฅผ ์ํด ๊ฐ๋ฐํ๋ ค๋ฉด ์๋ฎฌ๋ ์ดํฐ๊ฐ ํ์ํฉ๋๋ค. ์ธ์ AMD ํ๋ก์ธ์(์ค์ฒฉ ๊ฐ์ํ)๊ฐ ์ง์๋ฉ๋๊น? Windows 10 2003 ๋ฒ์ ์ ๋ฏฟ์ ์ ์์ต๋๊น?
#1958์ ๊ธฐ๋ฐ์ผ๋ก ํ WinUI ๊ด๋ จ, Live Tiles์ ๋ฏธ๋๋?
AMD Ryzen ์ง์์ผ๋ก ์ธํด ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์คํํ ์ ์์ผ๋ฏ๋ก ์ธ์ ์์ ๋ ์ง์ ๋ํ ์์์ ๋ฃ๋ ๊ฒ์ด ์ข์ต๋๋ค.
@jp-weber @mdtauk
์ด๊ฒ์ ๊ณต์ ๋ฌธ๊ตฌ์ ๋๋ค(https://docs.microsoft.com/en-us/dual-screen/windows/get-dev-tools).
AMD ํ๋ก์ธ์๋ ํ์ฌ ์ง์๋์ง ์์ต๋๋ค. ์๋ฎฌ๋ ์ดํฐ์์ Windows 10X๋ฅผ ์คํํ๋ ค๋ฉด ์ค์ฒฉ ๊ฐ์ํ๊ฐ ํ์ํ๋ฉฐ Windows๋ ์์ง AMD ํ๋ก์ธ์์์ ์ด๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. ๊ณ์ ์ง์ผ๋ด ์ฃผ์ธ์!
๋ ์์ธํ ์ ๋ณด๋ฅผ ์ํ์๋ฉด [email protected]์ ๋ฌธ์
@Felix-Dev์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ง์ต๋๋ค. ๋ฌธ์๋ 10X ์๋ฎฌ๋ ์ดํฐ์ ์ต์ ์ํ๋ฅผ ์ป์ ์ ์๋ ๊ฐ์ฅ ์ข์ ์ฅ์์ด๋ฉฐ ํด๋น ์ด๋ฉ์ผ ์ฃผ์๋ WinUI์ ๊ด๋ จ์ด ์๋ ๋ค๋ฅธ 10X ์ง๋ฌธ์ ๋ํ ๊ฐ์ฅ ์ข์ ์ฐ๋ฝ์ฒ์ ๋๋ค.
๊ณตํํ๊ฒ, ๋ง์ดํฌ๋ก์ํํธ๊ฐ ๊ทธ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ ์ค๋น๊ฐ ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ ๊ฒ์ด๋ค.
Windows 10X์์ Win32 ์ฑ์ VEIL ์ปจํ ์ด๋์์ ์คํ๋ฉ๋๋ค. UWP๊ฐ ์๋ WinUI 3.0 ์ฑ์ ์ด๋ป์ต๋๊น?
๊ธฐ๋ณธ UWP ์ฑ์ด 10X์์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ํ์๋๋์?
@mdtauk WinUI ๋ฐ์คํฌํฑ ์ฑ์ ๊ธฐ๋ณธ UWP ์ฑ์ด
๋ํ ์์ผ๋ก WinUI ์ฑ ๊ฒฉ๋ฆฌ์ ๋ํ ๊ณํ์ด ๋ฌด์์ธ์ง ์๊ณ ์ถ์ต๋๋ค. ์ํฐํ๋ผ์ด์ฆ ๊ด์ ์์ ์ฐ๋ฆฌ๋ ๊ฒฉ๋ฆฌ/์๋๋ฐ์ฑ ๋ฐ ๊ธฐ๋ฅ ์ ์ด(์ฌ์ฉ์ ์ตํธ์ธ ์๋)๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋์ ๋ฏธ๊ตฌ์์ ์ํ ์ฃผ์ ๋ก ๊ณต๊ฐํฉ๋๋ค..
@mdtauk WinUI ๋ฐ์คํฌํฑ ์ฑ์ ๊ธฐ๋ณธ UWP ์ฑ์ด
์กฐ๊ธ ์ค๋ง์ค๋ฝ์ต๋๋ค. Win32 ์ฑ์ ๋ค๋ฅธ ์ฐฝ ๋์์ ๋ํ๋ด๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉฐ ์ ๊ฒฝ์ ์์ ๋ ํ๋ฉด์ ์ด๋ก๊ฒ ํฉ๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ ๋ค๋ฅด๊ฒ ์๋ํฉ๋๋ค.
Xaml UI๋ฅผ ์ฌ์ฉํ์ฌ WinUI ๋ฐ์คํฌํฑ ์ฑ์ด ์ต์ํ ์ฌ์ฉ์์๊ฒ ํ๋ฉด์ ์ผ๋ก๋ ๋ ๊ฐ์ง ์๋๋ฆฌ์ค ๋ชจ๋์์ ์ต๊ณ ๊ฐ ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@mdtauk ์ฐ๋ฆฌ์๊ฒ ์ถ์๋ ํ์ฌ 10X ์๋ฎฌ๋ ์ดํฐ ์ด๋ฏธ์ง๋ ์์ง ๋งค์ฐ ์ด๊ธฐ ๋จ๊ณ์ด๊ธฐ ๋๋ฌธ์ ๋น์ ์ด ์์์ฐจ๋ฆฐ ๋ฌธ์ /๋์(๋ด ํ ์คํธ์์๋ ๋ง์ฐฌ๊ฐ์ง)์ด ์ถ์๋ ๋๊น์ง ํด๊ฒฐ/๋ณ๊ฒฝ๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค(์ฆ, ์ง๊ธ ๋ก๋ํ ์ ์์).
์ฆ, 10X์ WinUI ๋ฐ์คํฌํฑ ์ฑ ์ปจํ
์ด๋์์ ์์ ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ๋ด ํ์ฌ ์๊ฐ์ ์ง๊ธ๊น์ง WinUI ๋ฐ์คํฌํฑ(Win32 ์ฑ ๋ชจ๋ธ), 10X ํ๋ ์ ํ
์ด์
How Windows 10X runs UWP and Win32 apps
๋ฐ ๋ฐ์คํฌํฑ ๋ธ๋ฆฌ์ง ํ
์คํธ ์ฑ์ ๋ํด ๋ค์๋ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ๋ถํํ๋ ๋ด XAML Island ํ
์คํธ ์ฑ์ ํ์ฌ ์๋ฎฌ๋ ์ดํฐ์์ ๋ก๋๋์ง ์์ผ๋ฏ๋ก( App Launch Initialized
๋จ๊ณ์์ ๋ฉ์ถค) ์ด๋ค ์ปจํ
์ด๋๋ฅผ ์ฌ์ฉํ ์ง ํ์ธํ ์ ์์ต๋๋ค. ์ฌ์ ํ Win32 ์ฑ์ด๊ธฐ ๋๋ฌธ์ Win32 ์ปจํ
์ด๋๊ฐ ์๋๋ผ๋ฉด ๋๋ ๊ฒ์
๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ด WinUI ๋ฐ์คํฌํฑ ์ฑ์ด 10X์ Win32 ์ปจํ
์ด๋์์ ์คํ๋ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ๊ฒ ๋ง๋ญ๋๋ค.
๊ทธ๊ฒ์ ํ์คํ ํ์๊ฒ ๋ฌผ์ด๋ณด๋ ์ข์ ์ง๋ฌธ์ ๋๋ค!
@Felix-Dev๊ฐ ์ธ๊ธํ ๋์ผํ ๋น๋์ค(Windows 10X๊ฐ UWP ๋ฐ Win32 ์ฑ์ ์คํํ๋ ๋ฐฉ๋ฒ)์ ๋ฐ๋ฅด๋ฉด 20:18๋ถ์ ํ์ด๋ธ๋ฆฌ๋ ์ฑ(Win32/UWP)์ด ์ง์๋์ง ์๋๋ค๊ณ (์์ง?) ๋ด ์ดํด๋ ๋ค์๊ณผ ๊ฐ์ ์ฑ์ ๋๋ค. XAML Island๋ฅผ ์ฌ์ฉํ๋ ํ์ด๋ธ๋ฆฌ๋ ์ฑ์ ๋๋ค.
Q1) SwapchainPanel์ ์ธ์ WinUI์์ ์ฌ์ฉํ ์ ์์ต๋๊น? ์ด๊ฒ์ ๋์ ๋ค๋ฅธ ๋ง์ ์ฌ๋๋ค์ด ํ๋ ์ผ์ ์ ๋์ ์ผ๋ก ํ์ํฉ๋๋ค.
Q2) SharpDX๋ ์ ์์๊ฐ ๋ ์ด์ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ Microsoft๋ SharpDX์ WinUI์ ํ๋์จ์ด ๋ ๋๋ง ํ๋ฉด ๊ฐ์ ํธํ์ฑ์ ๊ฐํํ๊ณ ์ ๊ณตํ ์์ ์ ๋๊น? MS๋ SharpDX ์์ด C#์ผ๋ก ํ๋์จ์ด ๋ ๋๋ง์ ํ๋ค๋ ์ด์ผ๊ธฐ๋ ๋ด ๋๊น? ๊ทธ๋ฆฌ๊ณ ์ ๋ Unity์ ๋ํด ๊ด์ฌ์ด ์์ต๋๋ค. ์ฆ, C#์์ ์์ฒด ๊ทธ๋ํฝ ๋๊ตฌ, ์์ง ๋ฐ Unity๊ฐ ์๋ ๊ฒ์์ ๋ง๋ค๊ธฐ ์ํ ์์ ๋ก์ด ํ์์ ๊ทธ๋ํฝ ๊ฐ๋ฐ์ ์๋ฏธํฉ๋๋ค. ๋ํ Win2d๋ฅผ ์๋ฏธํ๋ ๊ฒ์ด ์๋๋ผ ์ ์ฒด ํ๋์จ์ด ๋ ๋๋ง ๊ธฐ๋ฅ(DirectX)์ด ํ์ํฉ๋๋ค.
Q3) ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋ง์ฐ์ค๋ฅผ ํ๋ฉด์ ์์ชฝ ๋ฐ ์๋์ชฝ ๊ฐ์ฅ์๋ฆฌ๋ก ์ด๋ํ ๋ ์์ ํ์์ค ๋ฐ ์ ๋ชฉ ํ์์ค ํ์ ์ ๋๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์ด๊ฒ์ ์นด๋ฉ๋ผ ํฌ ๋๋ ํ์ ๊ณผ ๊ฐ์ ์์ ์ ์ํด ์์ฒด UI์์ ํ๋ฉด ๊ฐ์ฅ์๋ฆฌ๋ฅผ ํ์ฉํ๋ ๋ง์ ๊ฒ์(๋ฐ ์ผ๋ถ ์ฑ)์ ๋ํ ๊ฑฐ๋ ์ฐจ๋จ๊ธฐ์ ๋๋ค. ์ด ๋ฌธ์ ๋ ์ธ์ ์์ ๋ ์์ ์ ๋๊น(Windows ๋ฌธ์ ์ผ ์ ์์ง๋ง API๋ก ๊ตฌ๋ํด์ผ ํ๋ฏ๋ก WinUI์ ๊ด๋ จ๋จ).
Q4) Xaml์ ์ฐํํ๊ณ ์ฐฝ ๋ฐ์ธ๋ฉ๋ Swapchain์ ์ง์ ๋ ๋๋งํ๋ ค๋ ๊ฒฝ์ฐ์ ๋ํด CoreWindow(IFrameworkView) ์ฑ ๋ชจ๋ธ์ ํฌํจํ๋๋ก WinUI๋ฅผ ์ป์ ์ ์์ต๋๊น?
WinUI๊ฐ Xaml์ด ์๋ ํ๋ฉด์ ์ ๊ณตํ๋๋ก ์์ฒญํ๋ ๊ฒ์ด ์ฝ๊ฐ ์ด์ํ๊ฒ ๋ค๋ฆด ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ CoreWindow๋ ๋์ผํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ XamlWindow(UWP์์๋ Window๋ผ๊ณ ํจ)์ ์ํ๋ฉฐ .net 5์์ ์ฌ์ฉํ ์ ์๋๋ก UWP์๋ ๋ถ๋ฆฌ๋์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. .net 5๊ฐ uwp๋ฟ๋ง ์๋๋ผ ๋น uwp๋ ๋์์ผ๋ก ์ง์ ํ ์ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ํ์ฌ UWP ์ธ๋ถ์๋ ์ต์ C++ ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ธ์ด ์์ต๋๋ค. ๊ฒ์ ๊ฐ๋ฐ์๋ ๋ ๊ฑฐ์ C ์ฝ๋(Win32)๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ ๋๋ ๊ทธ๋ํฝ ์ฑ์ฉ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์ ์์ฑํด์ผ ํฉ๋๋ค. .net ์ฝ์ด์๋ ์ต์ ๋ฐ์คํฌํ ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ธ๋ ์์ต๋๋ค. CoreWindow์ฉ UWP ์๋ฃจ์ ์ ํจ๊ณผ์ ์ด๊ณ ์ฌ์ฉํ๊ธฐ ์ฝ์ต๋๋ค. UWP ์ธ๋ถ์ ์กด์ฌํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค(C++/๋น uwp ๋ฐ .net 5 ๋ชจ๋). UWP์์ CoreWindow๋ฅผ ๊ฐ์ ธ์ค๋ ๋ ๋ค๋ฅธ ์ด์ ์ UWP์์ .net 5(๋ฐ uwp๊ฐ ์๋ ์ต์ ์์ฉ ํ๋ก๊ทธ๋จ ๋ชจ๋ธ์ด ์๋ ๊ฒฝ์ฐ C++)๋ก ์ฝ๋๋ฅผ ์ง์ ์ด์ํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค๋ ๊ฒ์ ๋๋ค.
๊ฒ์ ๊ฐ๋ฐ์๋ ์ฐฝ ๋์์ด ๋ณ๊ฒฝ๋๊ณ ๋ฐฐํฌ ์คํ ๋ฆฌ๊ฐ ์ ๋ ฌ๋ ๋๊น์ง UWP๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋๋ฌด ์ค๋๋์ด์ Microsoft๊ฐ ๋ฌธ์ ๋ฅผ ์ดํดํ์ง ๋ชปํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ API๋ฅผ UWP ์ธ๋ถ๋ก ๊ฐ์ ธ์์ผ ํฉ๋๋ค. UWP๊ฐ ์์ ๋์๋ค๋ฉด ๊ทธ๋ด ํ์๊ฐ ์์์ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ 1215 ํธ์ ์ถ๊ฐ ๋ ผํ
๋นํฌํจ/๋นXaml ์๋๋ฆฌ์ค์ ๋ํด Win32 ์ฐฝ์ CoreWindow๋ก ๋ฐ๊พธ๊ณ CoreWindow๋ฅผ .Net 5 ๋น UWP์ ์ ๊ณตํ๋ฉด ๋น Xaml ์์ ์ ์ํด Windows ์ ์ฒด์์ ํตํฉ๋ ์ฑ/์ฐฝ ๋ชจ๋ธ์ ๊ฐ์ง ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ Win32 FOR EVER๋ฅผ ์ ์งํ๊ฑฐ๋ ์๋ก์ด ์ฑ ๋ชจ๋ธ์ ๋ง๋๋ ๊ฒ๋ณด๋ค ๋ ํฉ๋ฆฌ์ ์ ๋๋ค.
ํฌํจ๋ ์คํ๊ณผ ํฌํจ๋์ง ์์ ์คํ(์: UWP์ Win32 ๊ฐ)์ ์ ํํ๊ธฐ ์ํด ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์ ๋ค์ ์์ฑํด์ผ ํ๋ ์ด์ - ์ค๋๋ ๊ฒ์ ๊ฐ๋ฐ์๊ฐ ์ง๋ฉดํ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์ ๋๋ค. UWP์ ์ปค๋ฐํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. Win32 ๋ฐฐํฌ ์์ ๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋์ ๊ทธ๋ค์ HWnd ๋๋ .Net Framework ์ฑ ๋ชจ๋ธ์ ๊ฐ์ ๋ก ์ฌ์ฉํฉ๋๋ค. UWP ์ฑ/์ฐฝ ๋ชจ๋ธ์ uwp๊ฐ ํฌํจ๋์ง ์์ ์ฑ์ ์ฌ์ฉํ ์ ์๊ฒ ๋ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์ ๋ํด ๋์ผํ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ๋์ผํ ์ฝ๋ ๊ธฐ๋ฐ์์ MS ์คํ ์ด์ ๋ค๋ฅธ ์คํ ์ด ๋ชจ๋์ ๋ํด ์ปดํ์ผํ ์ ์์ต๋๋ค.
@leoniDEV ์ด ์ค ๋๋ถ๋ถ์ "ํ์ด๋ธ๋ฆฌ๋ ์ฑ"์ด ์ ํํ ๋ฌด์์ ์๋ฏธํ๋์ง ์ฌ์ ํ ์ถ์ธก์
๋๋ค. ์๋ฅผ ๋ค์ด XAML Island ์ฑ์ด ํด๋น ๋ฒ์ฃผ์ ์ํ์ง ์๋๋ค๋ ์ด ํธ์ํฐ ์ค๋ ๋ ๋ฅผ ์ฐธ์กฐํ์ญ์์ค(Matteo Pagani๋ Microsoft์์ Windows AppConsult Engineer
๋ก ๊ทผ๋ฌดํฉ๋๋ค). UWP ์ปค๋ฎค๋ํฐ ์ MS ์ง์์ Win32 ์์ ์ ๋ขฐ ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ UWP ์ฑ์ ๋ํ ์ง์์ด ํ๋ฃจ ๋ง์ ์ง์๋์ง๋ ์์ง๋ง ๋์ค์ ์ถ๊ฐ๋ ์์ ์ด๋ผ๊ณ ๋งํ์ต๋๋ค.
@Gavin-Williams WinUI์๋ WinUI UWP์ WinUI Desktop์ ๋ ๊ฐ์ง ๋ฒ์ ์ด ์์ต๋๋ค. WinUI UWP๋ฅผ ์ฌ์ฉํ๋ฉด Windows 10X์ UWP ์ปจํ
์ด๋์์ ์คํ๋๋ ์ ์ฒด UWP ์ฑ์ ๋ง๋ค ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ Win32 ์ฑ์ด UWP UI API(XAML, ๊ตฌ์ฑ, ์
๋ ฅ,... - CoreWindow
์ ๊ฐ์ ๋ช ๊ฐ์ง API ์ ์ธ)์ ๋ํ ์ ์ฒด ์ก์ธ์ค ๊ถํ์ ๊ฐ์ง ์ ์๋๋ก ํ๋ WinUI ๋ฐ์คํฌํฑ์ด ์์ต๋๋ค. ์ด๋ฌํ ์ ํ์ ์ฑ์ UWP ์๋๋ฐ์ค ๋๋ UWP์ ๊ธฐํ ๋์์ธ ์ ํ์ ์ฒ๋ฆฌํ ํ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ UWP ์ฑ์ด ์๋๋ฏ๋ก WinUI ๋ฐ์คํฌํฑ ์ฑ์ UWP ์ฑ์ด ํ ์ ์๋ ๊ด๋ฒ์ํ Windows 10 ์ฅ์น ๋ฒ์ฃผ๋ฅผ ๋์์ผ๋ก ์ง์ ํ ์ ์์ต๋๋ค.
์ข์ ๊ฐ์๋ WinUI ๋ก๋๋งต ์์ ๊ฐ์ ธ์จ ์๋ ์ด๋ฏธ์ง๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
WinUI๋ ์ฒ์๋ถํฐ C++๋ก ์์ฑ๋์์ผ๋ฏ๋ก ๊ด๋ฆฌ๋์ง ์๋ ์ฑ ์ปจํ ์คํธ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์์ ๊ฐ์กฐํ๋ฏ์ด I believe they will run in the mentioned Win32 container
์ ์์ํ๊ฒ WinUI Desktop, 10X์์ ์คํํ 10X ๋น๋์ค ๋ฐ ๋ฐ์คํฌํ ๋ธ๋ฆฌ์ง ํ
์คํธ ์ฑ์ ๋ํ ํ์ฌ์ ์ดํด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ๋ด๋ถ ์ง์์ด ์์ต๋๋ค. WinUI ํ์ WinUI ๋ฐ์คํฌํฑ ์ฑ๊ณผ ์ฌ์ฉ๋ 10X ์ปจํ
์ด๋์ ๋ํ ๊ณํ์ด ๋ฌด์์ธ์ง ํ์คํ ์๋ ค์ค ๊ฒ์ด๋ฉฐ ์ฌ๊ธฐ์ ์์ ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ์, WinUI ๋ฐ์คํฌํฑ ์ฑ์ 10X์ UWP ์ปจํ
์ด๋์์ ์คํ๋ฉ๋๋ค.
WinUI/Microsoft UI๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ์ ๋น๋ํ ๋ Java, Python, JavaScript ๋ฑ๊ณผ ๊ฐ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ ์ฌ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค๋ ์๊ฐ์ ๋ํด ๋ ๋ฃ๊ณ ์ถ์ต๋๋ค.
Xlang(cross-lang)์ด๋ผ๋ ํ๋ก์ ํธ๊ฐ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ์ด๋ ๋ณธ์ง์ ์ผ๋ก .NET์ด ๋ ๋์ COM์ด์ด์ผ ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
WinUI์ ์ด๋ค ๊ด๋ จ์ด ์์ต๋๊น?
xlang์ ๊ธฐ๋ณธ์ ์ผ๋ก WinRT(Windows ๋ฐํ์)์ ํ๋ซํผ ๊ฐ ์คํ ์์ค ๋ฒ์ ์ด์ง๋ง ์์ ํ ํธํ๋์ง๋ ์์ต๋๋ค. WinRT์ ๋ชฉ์ ์ ๋ง์ํ์ ๋๋ก ์ธ์ด ๊ฐ์ ์ํธ ์ด์ฉ์ฑ์ด๋ฉฐ COM์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. WinUI์ API๋ C++์ C#์ ๋ชจ๋ ์ง์ํ๋ WinRT๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. Python , Rust (์ด๊ฒ์ ๋ด๊ฐ ๊ฐ์ธ์ ์ผ๋ก ์์
ํ ์ธ์ด) ๋ฐ JavaScript๋ฅผ ํฌํจํ์ฌ WinRT์ ๋ํ ๋ค์ํ ์์ค์ ์ง์์ ์ ๊ณตํ๋ ๋ค๋ฅธ ์ธ์ด๊ฐ ์์ง๋ง (์์ง) WinUI๋ฅผ ์ง์ํ์ง ์๋ ์ธ์ด๊ฐ ์๋ ํ WinUI ์ง์์ ํนํ ์ด๋ ต์ต๋๋ค. ์ปดํฌ์ง์
๋ฐ XAML API๋ ๋ค๋ฅธ WinRT ๋ฐ UWP API๊ฐ ์ฌ์ฉํ์ง ์๊ณ ๋ค๋ฅธ ์ธ์ด์ ํ์ ์์คํ
์ ๋งคํํ๊ธฐ ๊น๋ค๋ก์ธ ์ ์๋ ๊ตฌ์ฑ ๊ฐ๋ฅํ ํ์(๊ธฐ๋ณธ์ ์ผ๋ก ๊ตฌํ ์์์ ํ ํํ)์ด๋ผ๋ ํ์ ์์คํ
๊ธฐ๋ฅ์ ํฌ๊ฒ ์์กดํ๊ธฐ ๋๋ฌธ์
๋๋ค.
C++/WinRT์ ์ฐฝ์์์ธ Kenny Kerr๋ ํ์ฌ ์๋ก์ด Rust WinRT ํ๋ก์ ์
์ ์์
์ค์
๋๋ค.
์ ๋ ์ฌ์ค ์ต๊ทผ์ Rust๊ฐ ๊ตฌ์ฑ ๊ฐ๋ฅํ ์ ํ(๋ฐ WinUI)์ ๊ฐ์ฅ ์ ์ง์ํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ง์ด ์๊ฐํ์ต๋๋ค. ํ์คํ ๊ฐ๋ฅํ์ง๋ง ๊ฐ๋ฐ์์๊ฒ ์ผ๋ง๋ ์์ฐ์ค๋ฝ๊ฒ ๋๋ ์ ์๋์ง ์์ง ํ์คํ์ง ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋๊ตฐ๊ฐ๊ฐ ํ๋ก์ ์ ์ ๋ง๋๋ ์์ ์ ํ๋ฉด ๋ชจ๋ ์ธ์ด๊ฐ WinRT๋ฅผ ์ง์ํ ์ ์์ด์ผ ํ์ง๋ง ์ธ์ด์ ๋์์ธ์ ๋ฐ๋ผ WinRT ์ ํ ์์คํ ๊ตฌ์ฑ์ ์ธ์ด์ ์ ํ ์์คํ ์ ๋งคํํ๋ ๊ฒ์ด ๋๋๋ก ์ด๋ ค์ธ ์ ์์ต๋๋ค. ์์ฐ์ค๋ฝ๊ฒ ๋๊ปด์ง๋ค.
xlang์ ๋์๊ฒ ์ฃฝ์ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. C++/WinRT๋ ์ค์ ๋ก ์์ฑ๋ ์ ์ด ์์ต๋๋ค. ๋ฒ๊ทธ์ ๋งค์ฐ ์ด์ํ ์ฌ์ฉ ์ฌ๋ก๊ฐ ๋จ์ ์์ด ์ผ๋ฐ ๊ฐ๋ฐ์์๊ฒ๋ ๋ฐ๋์งํ์ง ์์ต๋๋ค. ๋๋ C++/WinRT๋ฅผ ์๋์ํค๊ธฐ ์ํด ๋ง์ ์๊ฐ ๋์ ๊ณ ๊ตฐ๋ถํฌํ๊ณ C++/CX๋ก 30๋ถ ๋ง์ ํ๋ ์ผ์ ํ์ง ๋ชปํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ C++/CX๋ ์ฅ๊ธฐ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ๋ ์ฌ์ ์ต๋๋ค. Microsoft๊ฐ Average Joe๊ฐ ์ด๋ฌํ ๊ต์ฐจ ์ธ์ด ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํ๋ฉด ๋ฌธ์ ์ ํ์ ๋ฐฐ์นํด์ผ ํ๋ฉฐ Kenny Kerr๊ฐ ๋ชจ๋ ์์ ์ ํผ์ ์ฒ๋ฆฌํ๋๋ก ๋๋์ด์๋ ์ ๋ฉ๋๋ค. ๊ทธ๋ ์ข์ ์์ด๋์ด๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ๋๊ตฌ๋ ํญ๋์ ๋งค๋ ฅ์ ํ์๋ก ํ๋ฉฐ ์ด๋ฌํ ์ ํ์ ์์ฑํ๊ณ ์ต๋ํ ํ์ฉํ๋ ค๋ฉด ๋์์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํ์ฌ UWP ๋ฐ ํ์ ์ ํ์ธ WinUI๋ LOB ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ ์ค๋น๊ฐ ๋์ง ์์์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ง๋ฉดํ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค
WinUI๊ฐ ์ด๋ฌํ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ณ ํฅํ 10๋ ๋์ ์ฐจ์ธ๋ LOB ์ง์ ํ๋ ์์ํฌ๊ฐ ๋ ์ ์๋ค๊ณ ์๊ฐํ์ญ๋๊น? ๋๋ ์ ์ ๋ธ๋ ์ด์ ์ฑ์ผ๋ก ์ด๋ํ ๋์ ๋๋ค)
WinUI์ ํ์ฌ ์ํ์ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
C++/WinRT๋ C++/CX ๋๊ตฌ ๋ฐ ์ ๋ฐ์ ์ธ ๊ฐ๋ฐ์ ๊ฒฝํ์ ๋นํด ์ฌ์ ํ ๋งค์ฐ ์ด์ ํ ๊ฐ๋ฐ์ ๊ฒฝํ์ ๋๋ค. C++๋ก ์์ฑ๋ WinUI ๊ตฌ์ฑ ์์๋ฅผ ์ฒ๋ฆฌํ ๊ฒ์ผ๋ก ์์๋๋ ๊ฒฝ์ฐ C++/CX ๋๊ตฌ๊ฐ ํ ์ ์๋ ๋ฒ์์ ๋ํด ์ต์ํ 1:1 ์ ์ฉ ๋ฒ์๋ฅผ ๊ฐ์ง ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
C++/CX๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ์์ฐ์ฑ์ด ๋จ์ด์ง๊ณ UWP ๊ตฌ์ฑ ์์๋ XAML ๊ธฐ๋ฐ UI๋ฅผ ์์ฑํ๋ ๋ฐ ๋ ๋ฐฐ์ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค๋ฉด ํ์ค C++17์ด ๋๋ ๊ฒ์ ์๋ฌด ์์ฉ์ด ์์ต๋๋ค.
UWP/WinUI์์ C++๋ฅผ ๋ค๋ฃจ์ด์ผ ํ๋ ์ฃผ๋ ์ด์ ์ธ ๋ ๋ฒ์งธ ์ง๋ฌธ์ผ๋ก ์ด์ด์ง๋ ๊ฒ์ Microsoft๊ฐ .NET ์ธ์ด์ ๋ํ ๋ชจ๋ ์ข ๋ฅ์ DirectX ๋ฐ์ธ๋ฉ์์ ๊ณต์ ๋์ณค๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด WinUI๋ ๋์ฒด ๋๋ WPF 3D ์ฅ๋ฉด ๊ทธ๋ํ์ ๊ฐ์ XNA์ ๋ํ ์ง์์ ์ ๊ณตํ ๊ฒ์ ๋๊น? ๋ถ๋ช ํ ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์์ ๋ผ๋์ค ์นจ๋ฌต์ ์ป์๊ณ MonoGame๊ณผ ๊ฐ์ ์ปค๋ฎค๋ํฐ ํ๋ก์ ํธ ๋๋ Unity์ ๊ฐ์ ์์ ํ ์์ง์ ๊ฐ์ ๋ก ์ฐธ์ฌํด์ผ ํฉ๋๋ค.
Win2D๊ฐ ๋ง์นจ๋ด WinUI์ ์ผ๋ถ๊ฐ ๋๋ ์๊ธฐ๋ ์ธ์ ์ ๋๊น? ํ์ฌ๋ก์๋ ๋ถํ์คํ ๋ฏธ๋์ ํจ๊ป ์ ์ง ๋ณด์ ๋ชจ๋์ ์๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
ํ์ฌ ๋ด ๋น๋ ์์ ์ฃผ๋ณ์ ์ฒญ์ทจ์๊ฐ ๊ณ์ ์ค์ด๋ค๋ฉด์ UWP ๊ฟ์ ๊ณ์ ํ๋งคํ๋ ๊ฒ์ด ๋งค์ฐ ์ด๋ ค์์ง๊ณ ์์ต๋๋ค.
Windows 10X UI ์์๋ ์ธ์ ๋ฐ์คํฌํฑ Windows 10์ ์ ์ฉ๋ฉ๋๊น?
@carmellolb 2022-2025?
ํธ์ง: MS๋ ์๋ง๋ ์ด๊ฒ์ ์ญ์ ํ ๊ฒ์ ๋๋ค. ์กด์ฌํ์ง ์๊ณ ๋ฐ๋ผ์ ์คํด์ ์์ง๊ฐ ์๋ ์ ํ ๋ฐฐ์ก ์ผ์ ์ ์ ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค ;)
@Felix-Dev "WinUI Desktop ..์ ์ฌ์ฉํ๋ฉด Win32 ์ฑ์ด CoreWindow์ ๊ฐ์ ๋ช ๊ฐ์ง API๋ฅผ ์ ์ธํ๊ณ UWP UI API์ ๋ํ ์ ์ฒด ์ก์ธ์ค ๊ถํ์ ๊ฐ์ง ์ ์์ต๋๋ค.
CoreWindow ์ ์ธ? OMG - UWP์์ ์ ๊ฑฐํด์ผ ํ๋ ์ฒซ ๋ฒ์งธ์ด์ ๊ฐ์ฅ ์ค์ํ API์ ๋๋ค. ๊ธฐ๋ณธ ์ฐฝ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ API์ ๋๋ค. UWP ์ปจํ ์ด๋ ๋ด๋ถ ๋ฐ ์ธ๋ถ์์ ๋ณดํธ์ ์ด์ด์ผ ํฉ๋๋ค. ๊ทธ๊ฒ์ด ๋์ฌ ๋๊น์ง ์ฐ๋ฆฌ๋ ์์ฉ ํ๋ก๊ทธ๋จ ๊ณ์ธต์ ๋ํ ๊ณตํต ์ฝ๋ ๊ธฐ๋ฐ์ ๊ฐ์ง ์ ์์ผ๋ฉฐ C++์ ๋ ๊ฑฐ์ Win32 c ์ฝ๋ ๋๋ C#์ ๋ํด .net ์ฝ์ด๊ฐ ์ ๊ณตํ ๋ชจ๋ ๊ฒ(๋ ๋ค๋ฅธ Window ํด๋์ค?)์ ๊ฐํ ์์ต๋๋ค.
Microsoft๋ฅผ ์ฌ์ฉํ์ธ์. UWP ์ํ์์ XamlWindow๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ฒ๋ผ UWP ์ํ์์ CoreWindow๋ ์ ๊ณตํ์ธ์.
ํตํ ์ ๋ณด: Teams์์ ๋ฉ์ด์ง ์ด์ ๋ ๋ฌด์์ธ๊ฐ์? YouTube๋ ๋ง์ง๋ง์ ๊ทธ๋ ๊ฒ ์ ์๋ํ์ง ์์์ต๋๋ค.
@Gavin-Williams
https://github.com/microsoft/microsoft-ui-xaml/issues/1215#issuecomment -531994216์์:
์ฐ๋ฆฌ์ ์ ๊ทผ ๋ฐฉ์์ WinUI 3๊ฐ UWP์์ ์คํํ ๋ CoreWindow๋ฅผ ์ฌ์ฉํ๊ณ ๋ฐ์คํฌํฑ(Win32)์์ ์คํํ ๋ Win32 Window(HWind)๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค.
UWP ์ฑ์ WinUI 3์ AppWindow API๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. Desktop์ ๊ฒฝ์ฐ ๋น์ทํ ๊ฒ์ด ๋์์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ์ ํ ์ด๊ฒ์ ์ค๊ณํ๊ณ ์์ผ๋ฏ๋ก ์ง๊ธ๊น์ง ์์ธํ ๋ด์ฉ์ด ์์ต๋๋ค.
์ด ํ์ ๋ํ ๊ฐ์ API๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์ฐพ๊ณ ๋งํ๋ค CoreApplicationViewTitleBar.ExtendViewIntoTitleBar ์ฐ๋ฆฌ๋ ๋ ์ธ๊ณ์ ์ต๊ณ ์ป์ ์์์ ์ ์๋๋ก๋ฟ๋ง ์๋๋ผ WinUI ๋ฐ์คํฌํ์. Win32 ์ฐฝ ๋์์ธ(์: ์ ๋ชฉ ํ์์ค ์์/100% ์ฌ์ฉ์ ์ง์ ์ ๋ชฉ ํ์์ค, ์ฑ ์ฐฝ < ํ์ํ ์ต์ ํฌ๊ธฐ, ์์ ํ์์ค ๋ฒํผ ์์ ๋ฑ) ๋ฐ ์๋ก์ด ์ต์ UWP ์ฌ์ฉ์ ์ง์ API์ ๋ชจ๋ ๊ธฐ๋ฅ. (UWP์ ๊ฒฝ์ฐ AppWindow V2๊ฐ ํ์ฌ Win32 ์๋์ฐ ๊ธฐ๋ฅ์ ๊ฐ๊น์ด ์๋์ฐ ๊ธฐ๋ฅ์ ๊ฐ์ง ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค.)
@jesbis WinUI ๋ฐ์คํฌํฑ ๊ด๋ จ ์ง๋ฌธ: https://github.com/microsoft/microsoft-ui-xaml/issues/1939 ๋ฌธ์ ์์ (์ ์ด๋) MSIX ํจํค์ง ๋ฐ์คํฌํฑ ์ฑ์์ ์๋ฆผ ํ์ฑํ๊ฐ ์๋ํ์ง ์๋๋ค๊ณ ์ง์ ๋์์ต๋๋ค. ๋ฌธ์์ ์ธ๊ธ๋ 1909๋ :
Desktop Bridge ์ฑ์ ๊ฒฝ์ฐ UWP ์ฑ์ฒ๋ผ ์๋ฆผ์ ๋ณด๋ด์ญ์์ค. ์ฌ์ฉ์๊ฐ ์๋ฆผ์ ํด๋ฆญํ๋ฉด ์๋ฆผ์์ ์ง์ ํ ์์ ์ธ์์ ํจ๊ป ์ฑ์ด ๋ช ๋ น์ค์์ ์์๋ฉ๋๋ค.
์ธ๊ธ๋ ์์ ์ฌํญ์ด ๋ฐ์คํฌํฑ ๋ธ๋ฆฌ์ง ์ฑ์ ์ํฅ์ ๋ฐ๋ OS ๋ฒ์ ์ผ๋ก ๋ฐฑํฌํธ๋๋์ง ํ์ธํ๊ณ ๊ธฐ๋ค๋ ค์ผ ํ๋ ๋์ ๋ด ์ง๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. WinUI ๋ฐ์คํฌํฑ ์ฑ์ด ์์ ์ธ์ฉ๋ ๊ธฐ๋ณธ ํ ์คํธ ํ์ฑํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๊น COM Activator) ๋ชจ๋ WinUI ๋์ Windows 10 ๋ฒ์ ์์? (๋๋ ์ ์ฌํ ํ ์คํธ ํ์ฑํ ๊ฐ๋ .)
@Felix-Dev ์ค๋ช ์์์ XAML Island๋ ํ์ด๋ธ๋ฆฌ๋ ์ฑ์ ์๊ฒฉํ๊ฒ ์๋ฏธํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ดํดํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์ ์ง์ ์ปจํธ๋กค ์ฌ์ฉ๊ณผ ๊ฐ์ ์ผ๋ถ ๊ธฐ๋ฅ์ ์๋ ๋์ Win32 ์ฑ์์ UWP XAML ํธ์คํ API๋ฅผ ์ง์ ํธ์ถํ ์ ์์ต๋๋ค. ์ฌ๋ฐ๋ฅด๊ฒ ๋ฌธ์(๋ฐ ๋ฌธ์์ ์ฐธ๊ณ ):
XAML ์์ผ๋๋๋ฅผ ์ฌ์ฉํ์ฌ WPF ์ฑ์์ ํ์ค UWP ์ปจํธ๋กค ํธ์คํ
ํ์ ๊ตฌ์ฑ ์์
์ฑ์ ํ๋ก์ ํธ ๋ฐ ์์ค ์ฝ๋์ ๋๋ค. WindowsXamlHost ์ปจํธ๋กค์ ์ฌ์ฉํ์ฌ ํ์ค ์์ฌ UWP ์ปจํธ๋กค์ ํธ์คํธํ๋ ๊ฒ์ .NET Framework ๋๋ .NET Core 3์ ๋์์ผ๋ก ํ๋ ์ฑ์์ ์ง์๋ฉ๋๋ค.
XamlApplication ์์ ํ์๋๋ ๋ฃจํธ Application ํด๋์ค๋ฅผ ์ ์ํ๋ UWP ์ฑ ํ๋ก์ ํธ์ ๋๋ค . WPF ๋๋ Windows Forms ํ๋ก์ ํธ์๋ Windows Community Toolkit์์ ์ ๊ณตํ๋ Microsoft.Toolkit.Win32.UI.XamlHost.XamlApplication ํด๋์ค์ ์ธ์คํด์ค์ ๋ํ ์ก์ธ์ค ๊ถํ์ด ์์ด์ผ ํฉ๋๋ค. ์ด ๊ฐ์ฒด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฌ ๋๋ ํฐ๋ฆฌ์ ์๋ ์ด์ ๋ธ๋ฆฌ์ ์ฌ์ฉ์ ์ง์ UWP XAML ํ์์ ๋ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๊ธฐ ์ํ ๋ฃจํธ ๋ฉํ๋ฐ์ดํฐ ๊ณต๊ธ์ ์ญํ ์ ํฉ๋๋ค.
Although this component isn't required for trivial XAML Island scenarios such as hosting a first-party UWP control, your app needs this XamlApplication object to support the full range of XAML Island scenarios, including hosting custom UWP controls. Therefore, we recommend that you always define a XamlApplication object in any solution in which you are using XAML Islands.
๋๋ C++/WinRT๋ฅผ ์๋์ํค๊ธฐ ์ํด ๋ง์ ์๊ฐ ๋์ ๊ณ ๊ตฐ๋ถํฌํ๊ณ C++/CX๋ก 30๋ถ ๋ง์ ํ๋ ์ผ์ ํ์ง ๋ชปํ์ต๋๋ค.
C++๋ก ์์ฑ๋ WinUI ๊ตฌ์ฑ ์์๋ฅผ ์ฒ๋ฆฌํ ๊ฒ์ผ๋ก ์์๋๋ ๊ฒฝ์ฐ C++/CX ๋๊ตฌ๊ฐ ํ ์ ์๋ ๋ฒ์์ ๋ํด ์ต์ํ 1:1 ์ ์ฉ ๋ฒ์๋ฅผ ๊ฐ์ง ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
@Gavin-Williams, @pjmlp ์ฐพ๊ณ ์๋ ๋ฌธ์ ์ ๋ํด cppwinrt ๋ฆฌํฌ์งํ ๋ฆฌ ์์ ๋ฌธ์ ๋ฅผ ์ด์์ต๋๊น? ์๋๋ฉด ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๋ฌธ์ ๋ฅผ ์ด โโ์ ์๋ WinUI ๊ด๋ จ ๋ฌธ์ ์ ๋๊น? ์ฐ๋ฆฌ๋ C++/WinRT ์ง์์ ๋ํด ์ ๊ทน์ ์ผ๋ก ๋ ธ๋ ฅํ๊ณ ์์ผ๋ฏ๋ก ์ ์๋ํ์ง ์๋ ๋ถ๋ถ์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ฃ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์๋ก์ด WinUI ๊ธฐ๋ฅ์ ๋ชจ๋ C++/WinRT์ ์์ผ๋ฉฐ ์ด๋ฅผ ์ฌ์ฉํ๋ ์ฑ(์: ๊ณ์ฐ๊ธฐ )๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
ํตํ ์ ๋ณด: Teams์์ ๋ฉ์ด์ง ์ด์ ๋ ๋ฌด์์ธ๊ฐ์? YouTube๋ ๋ง์ง๋ง์ ๊ทธ๋ ๊ฒ ์ ์๋ํ์ง ์์์ต๋๋ค.
์ค๋์ค ๋ฌธ์ ๋ฅผ ์๋ฏธํ๋ค๋ฉด: ์ฐ๋ฆฌ๋ ์ง๋ ๋ฌ์ ์ผ์ด๋ธ์ด ๋ถ๋ํ์ผ๋ฉฐ ๋ด์ผ์ ๋ ๋์์ง๊ธฐ๋ฅผ ๋ฐ๋ผ๊ณ ์์ต๋๋ค. YouTube๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ๋ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋ ๊ฒ ๊ฐ์๊ณ Channel9 ์คํ๋์ค๋ ์ฐ๋ฆฌ๊ฐ Teams์์ ์ฌ์ฉํ๋ ํ์์ค๋ณด๋ค ํจ์ฌ ๋ ๋์ ์ค๋์ค ๋ฐ ๋น๋์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
RE: CoreWindow, win32 ์ง์, ์ปจํ ์ด๋ - ๋ด์ผ ์ปค๋ฎค๋ํฐ ์ฝ์์ @marb2000 ๊ณผ ํจ๊ป ํ์ฌ ๋ฐฉํฅ์ ๋ํด ์ด์ผ๊ธฐ
๋ํ ์ง๊ธ๊น์ง์ ๋ค๋ฅธ ์ง๋ฌธ(์: SwapChainPanel ํ์๋ผ์ธ, Win2D/DirectX, ์ฌ ๋ฑ์ ํ์ฌ ์ํ)์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ์ง๊ธ๊น์ง ์๊ฒฌ๊ณผ ์ง๋ฌธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
@jebis ๋ค์
๊ฐ๋ฐ์ ๋ํ C++/WinRT ์ ๊ทผ ๋ฐฉ์์ C++/CX๊ฐ ์ ๊ณตํ๋ ์์ฐ์ฑ์ ์์ ํ ๋ค๋จ์ด์ง๊ธฐ ๋๋ฌธ์ ์ด์ด์ผ ํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
C++/CX๋ฅผ ์ฌ์ฉํ์ฌ ์ฒ์์๋ Microsoft๊ฐ ๋ง์นจ๋ด Visual C++๋ฅผ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ํ๋งคํ๊ณ ์๋ค๊ณ ์๊ฐํ์ง๋ง 25๋ ํ Visual C++๋ C++ Builder์ RAD ๊ฒฝํ์ ๋ฐ๋ผ ์ก์์ต๋๋ค.
๋์ C++/WinRT๊ฐ ์ ๊ณตํ๋ ๊ฒ์ MIDL ์์ฉ๊ตฌ๋ฅผ ์์ฑํด์ผ ํ๋ ATL/WTL ์์ ๋ก ๋์๊ฐ๋ ๊ฒ์ ๋๋ค. MIDL 3.0์ด ์๋ MIDL๋ณด๋ค ๋ค์ ๋ซ๊ธด ํ์ง๋ง C++/CX๊ฐ ์ฒ๋ฆฌํ๋ UWP ๋ฐ์ธ๋ฉ ์์ฉ๊ตฌ๋ฅผ ์๋์ผ๋ก ์์ฑํด์ผ ํฉ๋๋ค. ๋.
C++/CX๊ฐ ์๋ฒฝํ๋ค๋ ๊ฒ์ ์๋์ง๋ง ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ์ฌ์ ํ โโC#/VB.NET ๋๋ C++ Builder์ ๋ฏธ์น์ง ๋ชปํฉ๋๋ค.
UWP๋ ์ด์จ๋ Windows์ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฏ๋ก ์์ํ C++ ๋ฐ์ธ๋ฉ์ ์ฌ์ฉํ๋ ๊ฒ์ C++/Winrt๋ฅผ ๊ตฌ์ ํ๋ ๊ฒ์ด ์๋๋ผ C# ๋๋ VB.NET์์์ ๋๊ฐ์ ์์ ์ ์ํํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ATL/WTL.
๊ทธ๋ฆฌ๊ณ ์ธ๊ธํ๋ฏ์ด DirectX๋ฅผ UWP ๋ฐํ์ ๊ตฌ์ฑ ์์ ์งํฉ์ผ๋ก ๋ ธ์ถํ๋ ค๋ ํธ์๊ฐ ๊ณ์ ๋ฌด์๋๊ธฐ ๋๋ฌธ์ ์ ๋ C++๋ก๋ง ๋ฐ์ฉ๋๋ค.
๋ฐ๋ผ์ cppwinrt์์ ๋ฌธ์ ๋ฅผ ์ฌ๋ ๊ฒ์ด C++/CX๋งํผ ์ฝ๊ฒ Blend ๋ฐ Visual Studio์์ C++/Winrt๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ํฅ์์ํฌ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. cppwinrt ํ์ด Visual Studio ํ์ ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ๊ณ , ์ ํต์ ์ผ๋ก(MFC/ATL/WTL) C++ ๋๊ตฌ ํ์ ๋ค๋ฅธ ํ์ฌ๊ฐ C++(Qt, ์ ๋ฐ์นด๋ฐ๋ก).
@pjmlp ์ธ๋ถ ์ ๋ณด ๊ฐ์ฌํฉ๋๋ค. C++/WinRT ๋๊ตฌ์ ๋ํด ๊ณต์ ํ ์ ๋ณด๊ฐ ๋ ์๋์ง ํ์ธํ๊ธฐ ์ํด ์ผ๋ถ ์ฌ๋๋ค๊ณผ ํ์ธ ์ค์ ๋๋ค. ํ์ง๋ง ๋ด์ผ๊น์ง ์ข์ ๋ต๋ณ์ ์ป์ง ๋ชปํ ์๋ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์๋ก์ด ๊ฐ๋ฐ์ ์ํด C++/WinRT์ ์ค์ ์ ๋๊ณ ์์ง๋ง, ๋์์ด๋๋ค๋ฉด WinUI 3์ฉ C++/CX ํ ํ๋ฆฟ๋ ํฌํจํ๋๋ก ๋ก๋๋งต์ ์์ต๋๋ค.
๋ํ ์์ผ๋ก WinUI ์ฑ ๊ฒฉ๋ฆฌ์ ๋ํ ๊ณํ์ด ๋ฌด์์ธ์ง ์๊ณ ์ถ์ต๋๋ค. ์ํฐํ๋ผ์ด์ฆ ๊ด์ ์์ ์ฐ๋ฆฌ๋ ๊ฒฉ๋ฆฌ/์๋๋ฐ์ฑ ๋ฐ ๊ธฐ๋ฅ ์ ์ด(์ฌ์ฉ์ ์ตํธ์ธ ์๋)๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋์ ๋ฏธ๊ตฌ์์ ์ํ ์ฃผ์ ๋ก ๊ณต๊ฐํฉ๋๋ค..
@infoequipt ๊ฒฉ๋ฆฌ๊ฐ ๋ฌด์์ ์๋ฏธํ๋์ง ์์ธํ AppContainer ์ง์๊ณผ ๊ฐ์๊ฐ์?
ํ์ฌ UWP ๋ฐ ํ์ ์ ํ์ธ WinUI๋ LOB ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ ์ค๋น๊ฐ ๋์ง ์์์ต๋๋ค.
- ๋ฆด๋ฆฌ์ค ์ฌ์ด์ ๋ง์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ต๋๋ค.
@Xarlot ์ด๋ค ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ธํด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๊น? UWP API๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆด๋ฆฌ์ค๋ง๋ค ๋์ ์์ค์ ํธํ์ฑ์ ์ ์งํ๋ ค๊ณ ํฉ๋๋ค.
์ ๊ดํ ๊ฐ๋น ์๋ฆฌ์ @ SharpDX
์ฌ์ฉ๋์ง๋ฅผ, ๋น์ ์ ๋ณด๊ธธ ์ํ๋ ๊ฒ์ผ ์๋ Vortice.Windows
๊ทธ๊ฒ์ ๋ํ ํ๋ฅญํ ๋์์ด๋ค. @Aminator ๋ ํ์ฌ ์์ ์ ์์ ํ UWP/C#/XAML DX12 ๊ฒ์ ์์ง ๋ฐ ํธ์ง๊ธฐ์ธ DX12GameEngine
์์ต๋๋ค.
๊ทํ์ ์ฑ์์ ๊ทํ์ ์๊ตฌ ์ฌํญ์ ์ ํฉํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค! ๐
ํตํ์ ๋ํ ์ง๋ฌธ๊ณผ ๊ด๋ จํ์ฌ ์ฌ์ํ ์ธ๋ถ ์ฌํญ์ด ํ๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๊ฐ ์งํํ๋ ๋์ WinUI 3์ผ๋ก ์ ํํ์ฌ ๋ค์๊ณผ ๊ฐ์ด "์ค์ํ ๋ณ๊ฒฝ ์ฌํญ"์ผ๋ก ๊ฐ์ฃผ๋ ์ ์๋ ์์ ๋ ๊ฑฐ์ UI ๋ฒ๊ทธ๋ฅผ ์์ ํ ์ ์์ต๋๊น? StackPanel
Spacing
์์ฑ์ ์ ํ ํญ๋ชฉ์ ์๋ชป ์ ์ฉํ์ต๋๊น?
์ฆ. StackPanel
์ ํ ํญ๋ชฉ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ ํ ํญ๋ชฉ ์ฌ์ด์ ๊ฐ๊ฒฉ์ด ์ ์ฉ๋์ด ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ํ์/์จ๊ธธ ์ ์๋ ํญ๋ชฉ์ด ์๋ ๊ฒฝ์ฐ ํญ๋ชฉ ์ฌ์ด์ ์๋ ํจ๋ฉ/์ฌ๋ฐฑ์ผ๋ก ๋์ฒดํด์ผ ํฉ๋๋ค. ๋๋์ ๋ํ PR์ด ํน์ ๋ฒ๊ทธ๋ฅผ ์์ ํ WrapPanel
์๋์ฐ ์ปค๋ฎค๋ํฐ ํดํท ( # 2838 ), ๊ทธ๋ฆฌ๊ณ ๋ถ๋ช
ํ์ด ํ๋ StackPanel
์๋ ค์ง ๋ฌธ์ ๋ ๋ค๋ฅธ MS์ ์์ง๋์ด์ ์ํด ์ธ์ ๋์๋ค ๋ํ. ๐ค
์์ผ๋ก๋ ํ์จ์ฃผ์ธ์! ๐
@leoniDEV ์ง์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ด์ผ ํ์คํ ๋ต์ด ๋์ฌ์ง ์ง์ผ๋ด ์๋ค ๐
@jesbis WinUI Desktop์ ๊ดํ ๋ ๊ฐ์ง ์ถ๊ฐ ์ง๋ฌธ(์๋ก ๊ด๋ จ๋จ):
WinUI ๋ฐ์คํฌํฑ ์ฑ์์ UWP Jumplist API๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น? ํ์ฌ ๋ฐ์คํฌํฑ ๋ธ๋ฆฌ์ง ์ฑ์ ์ฑ์ ํ์ฑํํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค(๋ฌธ์ ์ ๋ํ ๊ฐ๋ตํ ๊ฐ์๋ Windows ํฐ๋ฏธ๋ ๋ฌธ์ https://github.com/microsoft/terminal/issues/576 ์ฐธ์กฐ). Win32/WPF API๋ณด๋ค ์์
ํ๊ธฐ๊ฐ ํจ์ฌ ์ฝ๊ธฐ ๋๋ฌธ์ WinUI ๋ฐ์คํฌํฑ ์ฑ์ ๋ํด ์ด API๋ฅผ ์๋ฒฝํ๊ฒ ์ง์ํ๊ณ ์ถ์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ ํ ๋ชฉ๋ก ์์
์์ด์ฝ์ ์ด๋ฏธ์ง๊ฐ ํฌํจ๋ .exe ๋๋ .dll์ ๋ง๋ ๋ค์ ํด๋น ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ค์ ํ๋ ๋์ ms-appx:///
๋๋ ms-appdata:///
URI ์ฒด๊ณ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๊ฒ ์ค์ ํ ์ ์์ต๋๋ค ๋ํ ํน์ ์์ด์ฝ์ ๋ํ ํ์ผ์ ์คํ์
์
๋๋ค.
๋ฌธ์ ์๋ UWP Jumplist API์ ์ฅ์ ์ด ์์ฝ๋์ด ์์ต๋๋ค.
๋๋ UWP Windows.UI.StartScreen.JumpList API๋ฅผ ๋์ ์ฌ์ฉํ๋ฉด ํจํค์ง ๊ด๋ จ ms-resource URI ์ฒด๊ณ(์ธ์ด, DPI ๋ฐ ๊ณ ๋๋น ์ธ์)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด ๋ฐ ์ด๋ฏธ์ง ์์ฐ์ ์ฐธ์กฐํ ์ ์์ต๋๋ค.
UWP ์ฑ์ ๋จ์ผ ์ธ์คํด์ค ๋์์ ์ ์ฌ์ ์ผ๋ก ์ ํ ๋ชฉ๋ก ์์
์ ํจ์ฌ ์ฝ๊ฒ ๋ง๋ญ๋๋ค. ํ์ฌ ์คํ ์ค์ธ ์ฑ ์ธ์คํด์ค์์ ์๋ํด์ผ ํ๋ ์ ํ ๋ชฉ๋ก ์์
์ด ์๋ ๊ฒฝ์ฐ WPF/Win32์์ ๋ ๋ฒ์งธ ์ฑ ์ธ์คํด์ค๊ฐ ์์๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์์ฒญ๋ ์์
์ ๋ณด๋ด๊ธฐ ์ํด SendMessage
Win32 API๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ธฐ๋ณธ ์ฑ ์ธ์คํด์ค์. ์คํ ์ค์ธ ์ฑ์์ UWP์ ๋จ์ผ ์ธ์คํด์ค ๋์์ ์ฌ์ฉ ํ๋ฉด ํธ์ถ๋ ์ ํ ์์
์ ์ฝ๊ฒ ์ป์ ์ ์์ต๋๋ค. Win32์ ๊ฒฝ์ฐ ๋ชจ๋ ์ถ๊ฐ ์์
์์ด.
@pjmlp ๋น์ ์ด ๋ณด์ง ๋ชปํ๋ค๋ฉด ํฅ๋ฏธ๋ก์ธ ์ ์๋ ๋ ๋ค๋ฅธ ๊ฒ์ ์ง๋ Build ์ปจํผ๋ฐ์ค์ Kenny Kerr์ Scott Jones์ ์ด ์ธ์ ์ ๋๋ค. ํนํ ๋ฐ์ธ๋ฉ์ ๋ํ ํ๋กํ ํ์ ๊ฐ์ ์ฌํญ๊ณผ ์ผ๋ถ C++์ ๋ํด ์ด์ผ๊ธฐํ๋ ๋ง์ง๋ง ~11๋ถ์ ๋๋ค. ํ์ฌ IDL ๋ฐ ๋ฉํ๋ฐ์ดํฐ ์ฝ๋ ์์ฑ ์๊ตฌ ์ฌํญ์ ์์ ํ ์ ๊ฑฐํ ์ ์๋ ๋ฆฌํ๋ ์ ๋ฐ ๋ฉํํด๋์ค ์ง์์ ์ถ๊ฐํ๊ธฐ ์ํ ๊ธฐ์ ์ฌ์:
https://youtu.be/X41j_gzSwOY?t=2659
์๊ฐ์ด ๋๋ค๋ฉด ๋ด์ผ ํตํ์์๋ ์ด์ ๋ํด ์กฐ๊ธ ์ด์ผ๊ธฐํ ์ ์์ต๋๋ค.
@jesbis ๊ฐ์ฌํฉ๋๋ค. ๊ทธ ์ด์ผ๊ธฐ๋ฅผ ์๊ณ ์์ต๋๋ค. ๋ด๊ฐ ๋งํ ์ ์๋ ๊ฒ์ ์์ง ๋๋ฌด ๋จผ ๋ฏธ๋๋ค.
์ง๊ธ ๋น์ฅ์ ๊ธฐ์กด DirectX ์ฝ๋๋ฅผ @Sergio0694 ๊ฐ ์ง์ ํ ์ด์ํ๋ ๊ฒ์ด ๊ทธ๋ฌํ ๋๊ตฌ๊ฐ ์ด๋งค๋ฅผ
๋๋ ๋น์ ์ ๋ ธ๋ ฅ์ ๊ฐํํ์ง๋ง Silverlight, XNA, WinRT, UAP, UWP, WinUI, .NET Framework, WCF, EF6 ์ดํ์ ์ฐธํธ์์ ๊ฒฐ๊ตญ ์ฐ๋ฆฌ๋ ๊ณ์ ์ฌ์์ฑ์ ํ๋ ๋ฐ ์ง์ณค์ต๋๋ค.
WinUI๋ ๋ชจ๋ ๋ฉด์์ WPF๋ณด๋ค ์ฐ์ํด์ผ ํ๋ฉฐ ์ด์ ๋๋ฌธ์ C++๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ ํด๋น ๋๊ตฌ๋ .NET ๊ฐ๋ฐ์๊ฐ ์ข์ํ๊ฒ ๋ ๊ฒ๊ณผ ๋์ผํ ์์ค์ด์ด์ผ ํฉ๋๋ค. Electron ์คํ์ผ ์ฑ์ ์ฌ์ฉํ๋ ค๋ ๋น์ฆ๋์ค๋ฅผ ํผํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
@Sergio0694๊ฐ ์ด๋ฏธ ์ง๋ฌธํ ๊ฒ์ฒ๋ผ WinUi 3.0์ ๋ค์์คํ์ด์ค๋ฅผ ์ ํํ ๋ฟ๋ง ์๋๋ผ ์๋ชป ์ ์ฉ๋ ๊ณต๋ฐฑ๊ณผ ๊ฐ์ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ ๋ฐ ํ์ํ ๋ค๋ฅธ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ํฌํจํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๊น?
๊ทธ๋ ๋ค๋ฉด ์ด๋ฆ๊ณผ ์ ํ์ด ํ์ฌ ์ค์ ๋ก ์ ๋ ฌ๋์ง ์์ผ๋ฏ๋ก NavigationView.IsBackButtonVisible
์์ฑ์ ์ด๋ฆ์ BackButtonVisibility
๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค(IsBackButtonVisible์ bool์ด ์๋ NavigationViewBackButtonVisible ์ด๊ฑฐํ์). ์ด๊ฒ ์ ์ฌ๊ธฐ ์์๋ ๋
ผ์
@chingucoding ํ์์ WinUI 3.0 ์์ฒด์ ๊ฒฝ์ฐ ๊ธฐ์กด(UWP) ์ฑ์ ๊ฐ๋ฅํ ํ ๊ฐ๋จํ๊ฒ ์ด์ํ๋ ค๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ ์ต์ํํด์ผ ํ๋ค๊ณ ๋งํ ๊ฒ์ ๊ธฐ์ตํฉ๋๋ค. ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ด ์น์ธ๋๋ฉด ํ์ WinUI 3.x/4/5/.... ๋ฆด๋ฆฌ์ค์์ ๊ตฌํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
Q: WinUI 3.x๋ AcrylicBrush
์ ํจ๊ป HostBackdrop
AcrylicBrush
๋ฅผ ์ง์ํฉ๋๊น? ํ์ฌ ์ํ์์ ๊นจ์ง ๊ฒ์ผ๋ก ์๋ ค์ ธ ์์ง๋ง ๋ฆด๋ฆฌ์ค ์ ์ ์์ ํด์ผ ํ ๋ก๋๋งต์ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
Q: WinUI Desktop์ ์ฌ์ฉํ๋ฉด ๋ฐ์คํฌํฑ ์ฑ ๊ฐ๋ฐ์๊ฐ AcrylicBrush
์ ํจ๊ป HostBackdrop
AcrylicBrush
๋ฅผ _๋ง์นจ๋ด_ ์ฌ์ฉํ ์ ์์ต๋๊น? ์ฐ๋ฆฌ๋ ์ด์ ์ ๊ตฌ์ฑ ์์ฑ ์ฌ์ฉ WCA_ACCENT_POLICY
๊ฐ์ง ACCENT_ENABLE_ACRYLICBLURBEHIND
๊ทธ๋ฌ๋ ๋ง์ดํฌ๋ก ์ํํธ๋ ๋นํ์ 19H1 +์ด ํ์ฐํ๊ณ ์ฐ๋ฆฌ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ดํ ๊ณ ํต์ํ๊ณ ์๋ค. (์ด๋ Emoji Picker์ ๊ฐ์ ๊ฒ๋ค์๋ ์ํฅ์ ์ฃผ์์ง๋ง Microsoft๋ ๋์ ์ํฌ๋ฆด์ด ์๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋๋ก ํด๋น ๊ตฌ์ฑ ์์๋ฅผ ์๋น์คํ์ต๋๋ค.)
WebView2 ์ ๋ณด:
https://docs.microsoft.com/en-us/microsoft-edge/hosting/webview2
"๊ฐ๋ฐ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ Windows 10, Windows 8.1, Windows 8 ๋ฐ Windows 7์์ Win32 C++์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ผ๋ก .NET์์ WebView2 ๋ฐ XAML์ ์ง์ํ ๊ณํ์ ๋๋ค."
์ ์ง๋ฌธ์ .. WebView2 SDK์ .NET ๋ฒ์ ์ด Win8.1, 8 ๋ฐ 7์ ์ ์ฉ๋๋๋ก ๊ณํ๋์ด ์์ต๋๊น?
.NET์ WebView2๋ WinUI3์ ํตํด์๋ง ์ง์๋๋ค๋ ์ฐ๋ ค๊ฐ ์์ต๋๋ค. ๋ด ์ดํด์ ๋ฐ๋ฅด๋ฉด WinUI3 WinForms ์ฑ ์ง์์ .NET Core ๊ธฐ๋ฐ ๋ฐ Win10์๋ง ์ ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
๋ด ์ํฉ์ ์ค๋ช
ํ๊ฒ ์ต๋๋ค. ๋ด ํด๋ผ์ด์ธํธ์๋ IE BrowserControl์ ์ฌ์ฉํ๋ WinForm ๋ฐ์คํฌํฑ ์ฑ์ด ๋ง์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ IE๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ ์ต์ ๋ธ๋ผ์ฐ์ ๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ์ฑ์ Win7, 8, 8.1์ ์ง์ํด์ผ ํฉ๋๋ค(SHOULD). (์ค๋๋ os ์ง์์ ๋ํด ๋๋ฅผ ๋น๋ํ์ง ๋ง์ญ์์ค)
๊ฐ๋ฅํ๋ค๋ฉด:
์์ค ์ฝ๋๋ฅผ ๊ณต์ ํ ์ค๋น๊ฐ ๋์ง ์์ ๊ฒฝ์ฐ ๋ค์ด๋ก๋ํ์ฌ ์คํํ ์ ์๋ ์คํ ์ค์ธ ์ผ๋ถ UI ์์์ ์ด๋ฏธ ์ปดํ์ผ๋ ๋ฐ๋ชจ exe๋ฅผ ์ ๊ณตํ๋ฉด ๋๋ฃ ๋๋ฃ์๊ฒ ์๋ํ ์ ์์ต๋๋ค.
WinUI 3.0์ WPF/Silverlight์ ๊ฐ์ ์ฌ์ฉ์ ์ง์ ์ ฐ์ด๋ ํจ๊ณผ๋ฅผ ์ง์ํฉ๋๊น? ๊ทธ๋ ์ง ์๋ค๋ฉด ๋์ค์ ์ถ๊ฐํ ์๊ฐ์ด ์์ต๋๊น? WinUI์์ ์ฌ์ฉํ๋ ๋ ๋๋ง ๋ ์ด์ด์์๋ ์ด๊ฒ์ด ๊ฐ๋ฅํฉ๋๊น?
@leoniDEV ๊ฐ์กฐ ํ์ํ ๋๋ก XAML Island ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์์ต๋๋ค(๋ณ๋์ UWP ํ๋ก์ ํธ ์์). ๋จ์ผ UWP ๋ฐ์ ํธ์งํจ ์ปจํธ๋กค(๋ฒํผ)์ด ํฌํจ๋์ด ์์ผ๋ฉฐ 10X์์ ์ ๋๋ก ์๋ํฉ๋๋ค. ์ปจํ ์ด๋ ์ด์ผ๊ธฐ๋ ๋๋์ง ์์ต๋๋ค... ์์๋๋ก Win32 ์ปจํ ์ด๋์์ ์คํ๋ฉ๋๋ค.
๋ฐ๋ผ์ ์ต์ํ ํ์ฌ๋ก์๋ ๋ณ๋์ UWP ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํ๋ XAML Island ์ฑ์ ๋ํ ์์ ํ ์ง์์ด ์์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ ๊ฑฐ์ WPF ์ฑ์ v-next๋ฅผ ์ฐพ๊ณ ์์ต๋๋ค. ์๋ง๋ .NET Core WPF๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง ์ค์ ๋ก WinUI๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค. ์ฌ์ ํ Windows.UI.Xaml(Microsoft.UI.Xaml๊ณผ ๋ฐ๋)์์ ํ์๋๋ Prism๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ์ ํ์ ๋ฌธ์ ๋ ๊ธฐ๋ณธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. WinUI์ ๋ํ ํ์คํ PnP ์ง์นจ์ด ์์ง ์์ต๋๊น, ์๋๋ฉด ๋๋ฌด ์ด๋ฅธ ๊ฒ์ ๋๊น?
Windows 10x์ ์์ ๋ฉ๋ด์ ํ์ผ ํ์๊ธฐ๊ฐ WinUI๋ฅผ ์ฌ์ฉํ๋ ๋์ ์น ๊ธฐ๋ฐ์ธ ์ด์ ์ ๋ํด ์ ธ ํ์ด๋ ๋ฐ์ ํธ์งํจ ์ฑ ํ์ ๋๊ตฐ๊ฐ์๊ฒ ์ด์ผ๊ธฐํ๋๋ก ํ ์ ์์ต๋๊น?
ํ์ํ ๊ฒ์ ํ์ฌ UWP ์ฑ(๋ฐ์คํฌํฑ ํ์ฅ ํฌํจ)์์ WinUI ๋ฐ์คํฌํฑ ์ฑ(๋ฐ์คํฌํฑ ํ์ฅ ์์)์ผ๋ก์ ์ํํ ํฌํ ํ๊ฒฝ์ ๋๋ค. ์ด๊ฒ์ด ๊ฐ๋ฅํ ๊น์? ์ด ์๋๋ฆฌ์ค์ ํจ์ ์ ๋ฌด์์ ๋๊น?
์ด๊ฒ์ด ์ด๋ ค์ด ๊ฒ์ผ๋ก ํ๋ช ๋๋ฉด ์์ผ๋ก ํญ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ฑ์ ์คํํ๊ณ P/Invoke๋ฅผ ํตํด ๋ชจ๋ win32 API๋ฅผ ํธ์ถํ๊ณ ๋ก๋๋๋ dll์ ํ์ฉํ๋๋ก UWP(๋ฐ์คํฌํฑ์์ ์คํ๋๋ ์ฑ์ฉ)๋ฅผ ๊ฐ์ ํ ์ ์์ต๋๊น? LoadPackagedLibrary๊ฐ ์๋ ๋ค๋ฅธ dll(๊ทธ๋ฌ๋ LoadLibrary๊ฐ ์์).
์ฒซ ๋ฒ์งธ Windows 10X ์ฅ์น๊ฐ ์คํ๋ ๋ WinUI 3.0์ด ์คํ๋ ๊ฐ๋ฅ์ฑ์ ์ผ๋ง๋ ๋ฉ๋๊น? ์ ๋ Windows ๊ฐ๋ฐ ์ธ๊ณ๋ก ๋ฐ์ด๋๋ ๋ฐ ๊ด์ฌ์ด ์์ผ๋ฉฐ ์ด ์์ ์์ ์ด๋ค ์ ๊ทผ ๋ฐฉ์์ด ๊ฐ์ฅ ํ๋นํ์ง ๊ฒฐ์ ํ๋ ค๊ณ ํฉ๋๋ค.
์ง๋ฌธ์ ํด์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฌ๋ฉฐ, ์์ฒญํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๋ น์์ ๊ฐ์ ๋งํฌ์์ ์์ค๊ณ๋ฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ป์ง ๋ชปํ ๋ง์ ์ง๋ฌธ์ด ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ๋ค์ ์์ฝํ๊ณ ์ฌ๊ธฐ์ ๋ช ๊ฐ์ง ๋ต๋ณ์ ๊ณง ๊ฒ์ํ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค.
์ข์ ์ผ ์ฌ๋ฌ๋ถ, ์ ์ง๋ฌธ์ ๋ฐ์์ฃผ์๊ณ Miguel์ด ๋ฐํํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
ํด๊ฒฐ๋๊ธฐ๋ฅผ ๋ฐ๋ผ๋ ๋ง์์ผ๋ก ๋ช ๊ฐ์ง ์ง๋ฌธ์ ๋ ์ถ๊ฐํ๊ฒ ์ต๋๋ค.
๊ธฐ์กด Win32 ์ฑ์ WM_PAINT์ ํ๋ฉด์ ๊ทธ๋ฆฝ๋๋ค. XAML ์ฑ์ ์ ์ง ๋ชจ๋์ ๋๋ค. ๊ฐ๋ณ ๊ฐ์ฒด/์ปจํธ๋กค์ ๋ง๋ค๊ธฐ์๋ ๋๋ฌด ๋ง์ ๊ฒ์ ํ๋ฉด์ ๊ทธ๋ฆฝ๋๋ค. ์ฐฝ์ ๊ทธ๋ฆด ์ ์์ง๋ง ๋ ํ๋์ ์ธ API๋ฅผ ์ฌ์ฉํ ์ ์๋ WM_PAINT๊ฐ ์ฌ์ ํ ์์ต๋๊น? Win2D ๋๋ ๋ค๋ฅธ ์ฆ์ ๋ชจ๋ API?
์ ๊ทผ์ฑ์ Win32(COM API)์ WPF(์๋ํ ํผ์ด)์์ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌ๋ฉ๋๋ค. Win32 + WinUI ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ฉด ์ ๊ทผ์ฑ ํธ๋ฆฌ๋ฅผ ๋ ์ฝ๊ฒ ํ์ฅํ๊ฑฐ๋ ์ ์ดํ ์ ์์ต๋๊น? ์๋๋ฉด ์ด์ COM API๋ฅผ ๊ณ์ ์ฌ์ฉํ ๊ฒ์ ๋๊น? ๋ด ์ฌ์ฉ์ ์ง์ ๊ทธ๋ฆฐ ์ฝํ ์ธ ๋ฅผ ์ ๊ทผ์ฑ ํธ๋ฆฌ์ ์ ๊ทผ์ฑ ์ปจํธ๋กค๊ณผ ์ด๋ป๊ฒ ํผํฉํฉ๋๊น?
์ค๋๋ ์ฐ๋ฆฌ๋ ํ๋ฆฐํฐ DC์ ๊ทธ๋ฆผ์ ๊ทธ๋ ค์ ์ธ์ํฉ๋๋ค. Win32+WinUI๋ก ์๋ก์ด ์ธ์๊ฐ ์์ต๋๊น?
๋๋ ์ฌ์ ํ HWND, CoreWindow ๋ฐ WinUI์ ๋ํด ๋ค์์ ์ค๋ ๋ชจ๋ ๊ฒ ์ฌ์ด์ ๊ด๊ณ์ ๊ด๋ จํ์ฌ ์ฝ๊ฐ ๋นํฉํฉ๋๋ค. HWND๊ฐ ์ฌ์ ํ ์กด์ฌํฉ๋๊น, ์๋๋ฉด CreateWindow ํธ์ถ์ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋์ฒดํฉ๋๊น? ๋๋ ๊ทธ๋ ๊ฒ ๊ฐ์ ํฉ๋๋ค... ๊ทธ๋ฌ๋ ๋ง์ฝ ๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ๊ฐ ํ๋๋ฅผ ์ธ๋ถ ๊ตฌ์ฑ ์์์ ๋๊ฒจ์ผ ํ๋ ๊ฒฝ์ฐ์ ๋ํ ๊ธฐ๋ณธ HWND๊ฐ ์ฌ์ ํ ์์ด์ผ ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค(์: ์์ HWND).
Win32+WinUI ์ฑ์์ WebView2๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฒ ๋๋ IE ์ปจํธ๋กค์์ ๋ฐ์ํ๋ ๊ณต์ญ ๋ฌธ์ ๊ฐ ์์ต๋๊น?
๋ช ๊ฐ์ง ์ง๋ฌธ์ ๋ฐ๋ผ์ก๊ธฐ ์์:
WinUI๋ ๋จ์ง UWP ๊ฐ๋ฐ์ด์ง๋ง ๋ ํ๋์ ์ธ ์ฌ์์ ๋๊น? WinUI์ ๋ํ ๋ํ๋ฅผ ๋ณด๊ณ UWP ๊ฐ๋ฐ, UWP ๊ฐ๋ฐ์ ํน์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ์์ ํ ๋ค๋ฅธ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ๋์ง 100% ํ์ ํ ์ ์์ต๋๋ค.
WinUI๋ ํนํ UI ๊ณ์ธต์ด๋ฉฐ ์ผ์ ์ค๋จ/์ฌ๊ฐ์ฉ ์ฑ ๋ชจ๋ธ, ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ๋ฑ๊ณผ ๊ฐ์ UWP ์ฑ ํ๋ซํผ์ ๋ค๋ฅธ ์ธก๋ฉด์ ํฌํจํ์ง ์์ต๋๋ค.
UWP ์ฑ์ ๊ฒฝ์ฐ ํนํ Windows.UI.Xaml
, Windows.UI.Composition
๋ฐ Windows.UI.Input
์ผ๋ถ๋ฅผ ๋์ฒดํ ์ ์์ต๋๋ค.
WinUI ์ฑ์ ๋ค์ค ์ธ์คํด์ค(Win32 ํ์ค)์ ๋จ์ผ ์ธ์คํด์ค(UWP ํ์ค) ๊ฐ์ ๋ด์ฅ๋ ์ค์์น๊ฐ ์์ต๋๊น?
@Felix-Dev ์ฐ๋ฆฌ๋ ์์ง win32 ์ฑ์ ๋ํ ๋ ๋์ ๋จ์ผ ์ธ์คํด์ค ์ง์์ ๋ํ ์์ด๋์ด๋ฅผ ํ์ํ์ง ์์์ต๋๋ค. ์ ์์ด ์๋ ๊ฒฝ์ฐ ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์์ ๋กญ๊ฒ ๋ฌธ์ ๋ฅผ ์ด โโ์ ์์ต๋๋ค!
WinUI 3.x๋ HostBackdrop๊ณผ ํจ๊ป AcrylicBrush๋ฅผ ์ง์ํฉ๋๊น? ํ์ฌ ์ํ์์ ๊นจ์ง ๊ฒ์ผ๋ก ์๋ ค์ ธ ์์ง๋ง ๋ฆด๋ฆฌ์ค ์ ์ ์์ ํด์ผ ํ ๋ก๋๋งต์ ์๋์ง ๊ถ๊ธํฉ๋๋ค. WinUI Desktop์ ์ฌ์ฉํ๋ฉด ๋ฐ์คํฌํฑ ์ฑ ๊ฐ๋ฐ์๊ฐ ๋ง์นจ๋ด HostBackdrop๊ณผ ํจ๊ป AcrylicBrush๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น?
@riverar ๋ถํํ๋ ์ด๊ฒ์ WinUI 3.0 RTM ๊ณํ์ ์์ต๋๋ค. OS์ ๋ถ๋ฆฌ๋ UI ํ๋ซํผ์์ ์ด๋ฅผ ์ง์ํ๋ ๋ฐ ์ด๋ ค์์ด ์์ง๋ง 3.0 ์ดํ์ ๋ค์ ๊ฒํ ํ ๊ณํ์ ๋๋ค.
WebView2 ์ ๋ณด: ์ ์ง๋ฌธ์ .. WebView2 SDK์ .NET ๋ฒ์ ์ด Win8.1, 8 ๋ฐ 7์ ์ ์ฉ๋๋๋ก ๊ณํ๋์ด ์์ต๋๊น?
.NET์ WebView2๋ WinUI3์ ํตํด์๋ง ์ง์๋๋ค๋ ์ฐ๋ ค๊ฐ ์์ต๋๋ค.
@pnp0a03 WinUI Xaml ์ปจํธ๋กค์ WinUI 3์์๋ง ์ง์๋์ง๋ง win32 ์ฑ์ฉ Windows 7, 8 ๋ฐ 8.1์ฉ ํต์ฌ WebView 2 SDK์ ๊ฐ๋ฐ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ ์์ต๋๋ค.
https://docs.microsoft.com/microsoft-edge/hosting/webview2
์ฌ์ ํ Windows.UI.Xaml(Microsoft.UI.Xaml๊ณผ ๋ฐ๋)์์ ํ์๋๋ Prism๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ์ ํ์ ๋ฌธ์ ๋ ๊ธฐ๋ณธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. WinUI์ ๋ํ ํ์คํ PnP ์ง์นจ์ด ์์ง ์์ต๋๊น, ์๋๋ฉด ๋๋ฌด ์ด๋ฅธ ๊ฒ์ ๋๊น?
@GraniteStateHacker ๋ด ์๊ฐ์๋ ๋๋ฌด ์ด๋ฅด๋ค๊ณ ์๊ฐํฉ๋๋ค. WinUI 3์ ์์ง ๋ง์ ์ํ๊ณ ์ง์์ ํ๊ธฐ์๋ ๋๋ฌด ์๋กญ์ง๋ง(์ํ์๋ง ์์) @hassanuz ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํธํ์ฑ/๋ง์ด๊ทธ๋ ์ด์ ์ต์ ์ ์กฐ์ฌํ๊ธฐ ์ํ ์์
WinUI๋ ์คํ ์ด ์ฑ ์ ์ฉ์ ๋๊น?
์๋์ค - ๋ค์๊ณผ ๊ฐ์ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ Windows 10X ์ฅ์น๊ฐ ์คํ๋ ๋ WinUI 3.0์ด ์คํ๋ ๊ฐ๋ฅ์ฑ์ ์ผ๋ง๋ ๋ฉ๋๊น? ์ ๋ Windows ๊ฐ๋ฐ ์ธ๊ณ๋ก ๋ฐ์ด๋๋ ๋ฐ ๊ด์ฌ์ด ์์ผ๋ฉฐ ์ด ์์ ์์ ์ด๋ค ์ ๊ทผ ๋ฐฉ์์ด ๊ฐ์ฅ ํ๋นํ์ง ๊ฒฐ์ ํ๋ ค๊ณ ํฉ๋๋ค.
@dwalleck WinUI 3์๋ ์ด๋ฏธ ์ํ๊ฐ ์์ผ๋ฉฐ ๋น๋ ํ์ ๊ธฐ๊ฐ ๋์ ๋ ๊ธฐ๋ฅ์ ์ธ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๊ฐ ์์ด์ผ ํ๋ฉฐ ๋ ๋ค 2020๋ ํ๋ฐ์ ๋ชฉํ๋ก ํฉ๋๋ค. UWP Xaml ๋ฐ/๋๋ WinUI๋ก ์์ํ๋ ๊ฒฝ์ฐ 10X ๊ฐ๋ฐ์ ์ํ ์ข์ ๊ฒฝ๋ก์ ์์ด์ผ ํฉ๋๋ค. .
๊ธฐ์กด Win32 ์ฑ์ WM_PAINT์ ํ๋ฉด์ ๊ทธ๋ฆฝ๋๋ค. XAML ์ฑ์ ์ ์ง ๋ชจ๋์ ๋๋ค. ๊ฐ๋ณ ๊ฐ์ฒด/์ปจํธ๋กค์ ๋ง๋ค๊ธฐ์๋ ๋๋ฌด ๋ง์ ๊ฒ์ ํ๋ฉด์ ๊ทธ๋ฆฝ๋๋ค. ์ฐฝ์ ๊ทธ๋ฆด ์ ์์ง๋ง ๋ ํ๋์ ์ธ API๋ฅผ ์ฌ์ฉํ ์ ์๋ WM_PAINT๊ฐ ์ฌ์ ํ ์์ต๋๊น? Win2D ๋๋ ๋ค๋ฅธ ์ฆ์ ๋ชจ๋ API?
@jschroedl Xaml ์์ ํธ๋ฆฌ ๋ฐ ๋ธ๋ฌ์๋ ์ ์ง ๋ชจ๋์ด์ง๋ง ์ฌ๋ฌ ์ต์ ์ค ํ๋ ์ด์์ ์ฌ์ฉํ์ฌ ๋ ๊ฐ๋ฒผ์ด ๋ ๋๋ง ๊ธฐ๋ณธ ์์๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
AnimatedVisualPlayer
์ปจํธ๋กค๊ณผ ๊ฐ์ ์ฉ๋๋ก๋ ์ฌ์ฉ๋ฉ๋๋ค.์ ๊ทผ์ฑ์ Win32(COM API)์ WPF(์๋ํ ํผ์ด)์์ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌ๋ฉ๋๋ค. Win32 + WinUI ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ฉด ์ ๊ทผ์ฑ ํธ๋ฆฌ๋ฅผ ๋ ์ฝ๊ฒ ํ์ฅํ๊ฑฐ๋ ์ ์ดํ ์ ์์ต๋๊น? ์๋๋ฉด ์ด์ COM API๋ฅผ ๊ณ์ ์ฌ์ฉํ ๊ฒ์ ๋๊น? ๋ด ์ฌ์ฉ์ ์ง์ ๊ทธ๋ฆฐ ์ฝํ ์ธ ๋ฅผ ์ ๊ทผ์ฑ ํธ๋ฆฌ์ ์ ๊ทผ์ฑ ์ปจํธ๋กค๊ณผ ์ด๋ป๊ฒ ํผํฉํฉ๋๊น?
์ข์ ์ง๋ฌธ์ ๋๋ค! @marb2000 ์ ํ์ด์งํ์ฌ ์ด๊ฒ์ด ํฌํจ๋๋์ง ํ์ธํ๊ณ ์ต์ ์ ๋ฐ์ดํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก WinUI Xaml ํธ๋ฆฌ๋ AutomationPeers๋ฅผ ์ฌ์ฉํด์ผ ํ์ง๋ง ์ด๊ฒ์ด ์๋ก์ด ๊ธฐ๋ฅ์ WinUI๊ฐ ์๋ win32 ์ฝํ ์ธ ๋ก ํ์ฅํ ์ง ์ฌ๋ถ๋ ์์ง ํ์คํ์ง ์์ต๋๋ค.
์ค๋๋ ์ฐ๋ฆฌ๋ ํ๋ฆฐํฐ DC์ ๊ทธ๋ฆผ์ ๊ทธ๋ ค์ ์ธ์ํฉ๋๋ค. Win32+WinUI๋ก ์๋ก์ด ์ธ์๊ฐ ์์ต๋๊น?
WinUI ์ฝํ
์ธ ์ ์ฃผ์ ์ธ์ ๊ธฐ๋ฅ์ WinRT PrintDocument
API์ WinUI ๋ฒ์ ์ ํตํด ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค.
๋๋ ์ฌ์ ํ HWND, CoreWindow ๋ฐ WinUI์ ๋ํด ๋ค์์ ์ค๋ ๋ชจ๋ ๊ฒ ์ฌ์ด์ ๊ด๊ณ์ ๊ด๋ จํ์ฌ ์ฝ๊ฐ ๋นํฉํฉ๋๋ค. HWND๊ฐ ์ฌ์ ํ ์กด์ฌํฉ๋๊น, ์๋๋ฉด CreateWindow ํธ์ถ์ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋์ฒดํฉ๋๊น? ๋๋ ๊ทธ๋ ๊ฒ ๊ฐ์ ํฉ๋๋ค... ํ์ง๋ง ๋ง์ฝ ๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ๊ฐ ํ๋๋ฅผ ์ธ๋ถ ๊ตฌ์ฑ ์์์ ๋๊ฒจ์ผ ํ๋ ๊ฒฝ์ฐ์ ๋ํ ๊ธฐ๋ณธ HWND๊ฐ ์ฌ์ ํ ์์ด์ผ ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค(์:
WinUI๋ hwnds๋ฅผ ๋์ฒดํ์ง ์์ง๋ง ๋ชฉํ๋ WPF ์๋ ๋ฐฉ์๊ณผ ์ ์ฌํ Xaml API๋ฅผ ์ ๊ณตํ์ฌ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ์ฌ์ฉ๋ฒ์ ์ถ์ํํ๋ ๊ฒ์ ๋๋ค. Xaml API๋ ์ฌ์ ํ ๊ธฐ๋ณธ ๊ตฌํ ์ธ๋ถ ์ ๋ณด๋ก hwnds/CoreWindows๋ฅผ ์ฌ์ฉํ๋ฉฐ ํ์ํ ๋ hwnd์ ์ง์ ์ก์ธ์คํ ์ ์๋ "backdoor"/"escape-hatch" API๊ฐ ์์ ์ ์์ต๋๋ค. ๋ช ์ฃผ ์์ ์ ์ ์ด์์ด ์์ด์ผ ์ด๋ฅผ ๋ ๋ช ํํ๊ฒ ํ ์ ์์ต๋๋ค.
@jebis ๋ต๋ณ ๊ฐ์ฌ
ํ์ฌ WebView2 SDK Win32 "C++"(๋ฏธ๋ฆฌ๋ณด๊ธฐ) ๋ฒ์ ์ด ์ด ์ฌ์ดํธ์์ ๋ฆด๋ฆฌ์ค๋์์ต๋๋ค. Win7, 8 ๋ฐ 8.1์ ์ง์ํฉ๋๋ค.
https://docs.microsoft.com/en-us/microsoft-edge/hosting/webview2
์ ์ง๋ฌธ์ .NET ๋ฒ์ ์ ๊ดํ ๊ฒ์
๋๋ค. ํ์ฌ .NET ๋ฒ์ ์ WinUI 3์์๋ง ์ง์๋์ง๋ง, ์์๋ค์ํผ Win7, 8, 8.1์์๋ WinUI 3์ ์ฌ์ฉํ ์ ์์ต๋๋ค(๋ง๋์?).
๊ทธ๋์ ์๋์ ๊ฐ์ด ์ง๋ฌธ๊ธ์ ์ฌ๋ฆฝ๋๋ค.
์ ์ง๋ฌธ์ .. WebView2 SDK์ .NET ๋ฒ์ ์ด Win8.1, 8 ๋ฐ 7์ ์ ์ฉ๋๋๋ก ๊ณํ๋์ด ์์ต๋๊น?
@jebis ์์์ด ๋ค๊ธด ํ์ง๋ง ์ ์ง๋ฌธ์ ๋ต
์ฌ๊ธฐ์ ๊ฑด์ค์ ์ธ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ด๊ณ ์์ต๋๋ค.
๋ฐ๋ผ์ Microsoft๊ฐ C++/WinRT ๋๊ตฌ์ ๊ด๋ จํ์ฌ ์ ๊ณตํ ์ ์๋ ์ต์ ์ ์ผ๋ถ ๊ณต๊ฐ ์ ์์ ์ง์ ํ๋ ๊ฒ์ ๋๋ค. ์ด์ด ์ข์ผ๋ฉด ISO๊ฐ C++23 ๋๋ C++26 ์ฌ์ด์ ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ Visual Studio ํ์ด ๊ฒฐ๊ตญ ๊ทธ ์์ C++/CX๋ฅผ ๋ค์ ๋น๋ํ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ญ์์ค. ๊ทธ๋ฌ๋ฉด ์ง๊ธ์ผ๋ก๋ถํฐ ์ฝ 6๋ ์ด ๋ฉ๋๋ค.
ํ๋ฅญํ C++ UI ๋๊ตฌ๋ฅผ ์ํ๋ค๋ฉด WinUI๋ ํ์คํ ํ๋ซํผ ์ด์์ฑ์ ์ด์ ์ด ์ถ๊ฐ๋ Qt ๋๋ C++ Builder๊ฐ ์๋๋๋ค.
๋ฐ๋ผ์ ํ๋ ์ ํ ์ด์ ์ ๋ณธ ํ์๋ ์ฌ์ ํ XNA(DirectXTK๋ฅผ ์ฌ์ฉํ์ฌ C++๋ก ๋ค์ ์์ฑ), WinRT 8.0, WinRT UAP 8.1, UWP W10, C++ Direct2D์ ํํฐ๋ฅผ System ๋์ ์ฐฉ์ฉํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ธฐ(Win2D๊ฐ ๋์ค๊ธฐ ์ ๊น์ง, ์ง๊ธ์ ์ ์ฒด ์ํ), WinUI๋ ํ์คํ ๋ณด๋ฅํ ๊ฒ์ ๋๋ค.
์์ผ๋ก ์ ๋ ๊ณ ๊ฐ์๊ฒ .NET์ ์ฌ์ฉํ ๋๋ WPF๋ฅผ ์ฌ์ฉํ๊ณ C++๋ฅผ ์ฌ์ฉํ ๋๋ Qt๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์น ๊ธฐ์ ๋ก ๊ฐ๋ฅํ ๊ฒฝ์ฐ PWA์ ์ง์คํ๋ผ๊ณ ์กฐ์ธํ ๊ฒ์ ๋๋ค.
WinUI 3.0 ๋ก๋๋งต์ ๋ฐ์คํฌํฑ ์์ฅ์์ UWP ํ๋งค๊ฐ ๊ณ์ ์คํจํ ๊ฒฝ์ฐ ๋ ๋ค๋ฅธ ์ฌ๋ถํ ์ด ์๋ฐํ๋ค๋ ํ์ ์ ๋ถ๋ฌ์ผ์ผํค์ง ์์ต๋๋ค.
์ด๋ค ์๋ฏธ์์ ๋ด๊ฐ ์ง์ ํ๊ณ ์ถ์ ๊ฒ์ Microsoft ๊ฒฝ์์ง์ด Windows 8 ๋ฆด๋ฆฌ์ค ์ดํ๋ก ์ฐ๋ฆฌ๋ฅผ ์์์ด ์คํจ์ํจ ํ WinUI ์ฑํ์ ๋ํ ์์ด๋์ด๋ฅผ ์ฐ๋ฆฌ์๊ฒ ํ๋งคํ๋ ๋ฐฉ๋ฒ์ ํตํด ์๊ฐํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
@pjmlp ์ผ๋ฐ C++/WinRT ํผ๋๋ฐฑ์ ์๋ง๋ cppwinrt ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ๊ฐ์ฅ ์ ์ ๋ฌ๋ ๊ฒ์ ๋๋ค. ISO ํ์ค ์ ๋ฐ์ดํธ์๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง๋ง ์ธ๊ธํ์ ๊ธฐ๊ฐ๋ณด๋ค ์งง์์ผ๋ฉด ํฉ๋๋ค. ๋ฐ์ ์ง์์ด ์ต์ฐ์ ๊ณผ์ ์ด๋ฉฐ ์ง๋ ์ฃผ ํ๋ผํ์์ ์ด๋ฆฐ C++ ํ์์์ ์ด์ ๋ํด ๋ ผ์ํ ๊ฒ์ ๋๋ค.
DirectXTK๋ ์์ง ๊ฐ๋ฐ ์ค์ด๋ฉฐ ์ ๊ธฐ์ ์ธ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ๊ณ ์์ต๋๋ค.
Xaml ํ๋ ์์ํฌ API์ ๊ด์ ์์ WinUI๋ ์์ผ๋ก ๋์๊ฐ๋ ๊ธธ์ด๋ฉฐ Windows 8๋ก ๋์๊ฐ๋ ์๋นํ ๊นจ์ง์ง ์์ ํธํ์ฑ ๊ณ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋์ ์์ค์ ํธํ์ฑ์ ์ ์งํ๊ธฐ ์ํด ๋ง์ ์๊ฐ์ ํ ์ ํฉ๋๋ค ๐ ๋ช ๊ฐ์ง ๋ณ๊ฒฝ ์ฌํญ์ด ์์ต๋๋ค(์ ธ ํตํฉ์ผ๋ก ์ธํด, VS ํ๋ก์ ํธ ๊ตฌ์กฐ ๋ฑ) ๊ทธ๋ฌ๋ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ Windows 8 Xaml์ ํ์ฌ Windows 10 ์ฑ์ผ๋ก ์ด์ํ๊ณ ๋ค์ ์ปดํ์ผํ๊ณ ์ต์ ๋ด๋ถ์ ๋นํ์์ ์คํํ๋ฉด ์๋ํฉ๋๋ค.
WinUI์ ๋์ ์์ค์ ์ด์ ์ค ์ผ๋ถ์๋ UWP WinRT API์ win32 API ๊ฐ์ ์ฅ๋ฒฝ ์ ๊ฑฐ, .NET 5 ์ง์, ์๋ก์ด ๊ธฐ๋ฅ์ ๋ํ ์ฆ๊ฐ์ ์ธ ํ์ ์์ค ์ง์ ํ์ฑํ, ๋ง์ ์กฐ๊ฑด๋ถ OS ๋ฒ์ ํ์ธ ์ํ์ ํ์์ฑ ์ ๊ฑฐ, OSS ๊ธฐ์ฌ ํ์ฑํ ๋ฐ Xaml ์ฌ์ ์ฌ์ฉํ์ฌ ๊ธฐ์กด win32 ์ฑ์ ๋ํ ์ฆ๋ถ ์ ๋ฐ์ดํธ๋ฅผ ํ์ฑํํฉ๋๋ค.
@pnp0a03 .NET ์์๋ฅผ ์์ฅ์ ๋ด๋๊ธฐ ์ํ ๋ ธ๋ ฅ๋ ์์ต๋๋ค. ๊ตฌ์ฒด์ ์ธ ๋ ์ง๋ฅผ ๋ง์๋๋ฆด ์๋ ์์ง๋ง ์ด์ ๋ํ ์์๋ฅผ ์ธ์งํ๊ณ ์์ผ๋ฉฐ ์ธ๋ถ ์ฌํญ์ ์กฐ์จ ์ค์ ๋๋ค.
@jschroedl ์ฐ๋ฆฌ๋ ์๊ณต ๋ฌธ์ ๋ฅผ ์ ๊ฑฐํ๊ธฐ๋ฅผ ์ํ๋ฉฐ ์ด๋ฅผ ๋ฌ์ฑํ๋ ๋ฐ ๋์์ด ๋ ๋ ๋๋ง ๊ณํ์ ์ธ์ฐ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
@jesbis ์ธ๊ธํ๋ฏ์ด cppwinrt์ ๋ํด ๋ถํํ๋ ๊ฒ์ด ์๋ฌด ๊ฒ๋ ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํนํ ๋ก๋๋งต์ด ์์ฉ๋์ง ์์ ์ ์๋ ๊ธฐ๋ฅ์ ์ฑํํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ํผํ ์ ์๋ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋ ํ C++/WinRT๋ฅผ ์ฑํํ์ง ์์์ผ๋ก์จ ๋ถํํฉ๋๋ค. ISO.
DirectXTK์ ๊ด๋ จํ์ฌ ์ ๋ Microsoft๊ฐ XNA๋ฅผ ์ญ์ ํ๊ณ DirectXTK๋ฅผ "๋์"์ผ๋ก ์ ๊ณตํ์ฌ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ C# ์ฝ๋๋ฅผ C++๋ก ๋ค์ ์์ฑํ๋๋ก ๊ฐ์ํ ๋ฐฉ๋ฒ์ ๋ํ ๋ ๋ค๋ฅธ ์๋ฅผ ์ ๊ณตํ์ต๋๋ค.
๊ณ ๋ง๊ฒ๋ ์คํ ์์ค ์ปค๋ฎค๋ํฐ๋ MonoGame์ ๊ณ ์ํ๊ณ Microsoft๊ฐ XNA๋ก ์ถ๊ตฌํ๊ธฐ๋ฅผ ๊ฑฐ๋ถํ ์์ ์ ์ํํ ์ ์์์ต๋๋ค.
ํ๋ ์ ํ ์ด์ ์ค ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ์ผ๋ถ ๋๊ธ์์ C++๊ฐ ์ผ๋ง๋ ํ๋ฅญํ๊ณ ์ฌ๋ฏธ์๋์ง, WinDev(Longhorn์ด ์ธ์ํ ์ดํ ํ ๋ฒ ๋)๊ฐ C++๋ฅผ ๋จผ์ ํ๋งคํ๊ณ .NET์ ๋์ค์ ํ๋งคํ๋ ๋ฐฉ๋ฒ์ ๋ณด์์ต๋๋ค.
ํ๋ฅญํ C++ ๋๊ตฌ๋ฅผ ์ํ๋ฉด Visual C++๊ฐ ์๋๋ผ Qt ๋ฐ C++ Builder๋ฅผ ์ ํํฉ๋๋ค.
ISO์์ ์ผ๋ถ ๋ฉํํด๋์ค์ ๋ฆฌํ๋ ์ ์์ด๋์ด๊ฐ ๋ฐ์๋ค์ฌ์ง๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ ๋์ ํ์ด ๊ฒฝ์์์ ์ค๋๋ ๊ฐ๋ฅํ ๊ฒ์ ๋ณผ ์ ์๋๋ก ๊ฒฝ์์ง์๊ฒ ์ ๋ง๋ก ์์ฒญํด์ผ ํฉ๋๋ค.
.NET Framework์์ .NET Core๋ก ์ ๋ฌ๋์ง ์๋ API ๋ฐ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํด์ผ ํ ๋ฟ๋ง ์๋๋ผ WPF/UWP์์ WinUI๋ก์ ๋ชจ๋ ๋ง์ด๊ทธ๋ ์ด์ ๋ฌธ์ ์ "๊ทธ๋ฅ ์ฐ๊ธฐ C++/WinRT์์๋ ๋ฉ์ง๊ณ ๋ช ๋ ์์ ๋ ์ข์์ง ๊ฒ์ ๋๋ค."
Microsoft ๊ฒฝ์์ง์ ์ด ์ฌ์์ฑ์ ๋ถํ๋ฒ๋ฆฐ .NET ๊ฐ๋ฐ์์๊ฒ ํ๋งคํ๋ ๋ฐฉ๋ฒ์ ๊น์ด ์๊ฐํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ด๋ฏธ ์ ์ญํ ์ ํ๊ณ ์๋ ์คํ์์ ๋ฉ์ด์ง์ง ์์ ๊ฒ์ ๋๋ค.
@pjmlp DirectX์ ๋ํด ๋งํ์๋ฉด ์ ๋ ์์ ์๊ฐ ์ WinUI ๋ณด๊ธฐ์์ D3D12/11 ๋ฑ์ ์คํํ ์ ์๋ ํด๋์ฉ ๋ฐ ๋ถ๊ฐ์ง๋ก ์ C# ๊ทธ๋ํฝ, ์ค๋์ค ๋ฐ ์ ๋ ฅ ํ๋ ์์ํฌ ์ ๊ทน์ ์ผ๋ก ์์ ํ๊ณ ์์ต๋๋ค.
XNA์ ๊ฐ์ ๋ ๋๋ง์ ๋ํ ํจ์ฌ ๋ ํ๋์ ์ด๊ณ ์ฑ๋ฅ ์ค์ฌ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์ง์ํฉ๋๋ค. ์์ง ์ฌ์ฉํ ์ค๋น๊ฐ ๋์ง ์์์ง๋ง ์ ๋ฅผ ํฌํจํด ๋ง์ ๋ถ๋ค์ด ์ํ์ ์ ๋ง๋ค์ด ๋ดค์ต๋๋ค. D3D12 ๋ฐ Vulkan์ด ์ง์๋๋ ์ฒซ ๋ฒ์งธ ๋์์ด ๋ฉ๋๋ค. HLSL์ด๋ GLSL ๋ฑ ๋์ C#์ผ๋ก ์ ฐ์ด๋๋ฅผ ์์ฑํ ์๋ ์์ต๋๋ค.
์ฌ์ฉํ ์ค๋น๊ฐ ๋๋ฉด ๋ ๋ง์ ์ ๋ณด๋ฅผ ๊ณต์ ํ๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ๋๊ท๋ชจ SDK๋ ๊ฒ์ ์์ง์ด ์๋ ํ๋ ์์ํฌ์ด๊ธฐ ๋๋ฌธ์ ํด๋๊ฐ ๊ฐํธํ๊ณ ๊ฐ๋ฒผ์ฐ๋ฉด์๋ ๊ฐ๋ ฅํ๊ณ ์ฌ์ฉํ๊ธฐ ์ฝ์ต๋๋ค. WinUI, WPF ๋๋ ์ผ๋ถ ๊ธฐ๋ณธ C# Win32 ๋๋ WinRT ์ฑ์์ 3D ์ฝํ ์ธ ๋ฅผ ๋ ๋๋งํ๋ ๋ฐ ์ ํฉํฉ๋๋ค.
@zezba9000 ์ ๋ณด ๊ฐ์ฌํฉ๋๋ค, ๋ง์ ์ธ์์ ์ธ ์ผ์ ํ์ จ์ต๋๋ค.
DirectX์ ๋ํ ๊ด๋ฆฌ ์ง์๊ณผ ๊ด๋ จํ์ฌ ์ฐ๋ฆฌ๋ Managed DirectX ๋ฐ XNA๋ฅผ ํฑํนํ ํ DirectX ๊ฐ๋ฐ ๋ ธ๋ ฅ์ ์ธ์ํ C++ MS ๊ตฐ์ค๊ณผ ๊ฐ์ ์ปค๋ฎค๋ํฐ ๋ ธ๋ ฅ์๋ง ์์กดํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
WinDev๊ฐ ์ถ์งํ๊ธฐ๋ฅผ ์ข์ํ๋ "C++ ๋๋ ํ์ด ๋ก๋"์ผ ํ์๋ ์๋ค๋ ๊ฒ์ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ๋ง์ผํ ์ผ๋ก์ ์ด๋ฌํ ํ๋ก์ ํธ ์ค ์ ์ด๋ ๋ชจ๋ ํ๋ก์ ํธ๋ ๋ด ์นํธ๋ก ๊ฐ์ฃผ๋ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์์ ๊ทธ๋ค์ OpenGL ES/Metal with Swift ๋๋ OpenGL ES/Vulkan with Java/Kotlin์์ ๊ตํ์ ์ป์ ์ ์์ต๋๋ค. ๋ถ๋ช ํ 3D ํ๋ก๊ทธ๋๋ฐ์ ์ํด ๊ด๋ฆฌ๋๋ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ชจ๋ฐ์ผ ํ๋ซํผ์ด Windows๋ฅผ ์ด๊ธฐ๋ ๋ฌธ์ ๊ฐ ์๋์์ต๋๋ค(์ฌํ๊ฒ๋ WP๋ ํ๋ฅญํ ๊ฒฝํ์ด์์ต๋๋ค).
์ฌ๋ฌ๋ถ์ ๋ ธ๋ ฅ์ ํ์ด์ ๋น๋๋ค. C#์ผ๋ก ์ ฐ์ด๋๋ฅผ ์์ฑํ๋ ๊ฒ์ ์ ๋ง ๋งค๋ ฅ์ ์ผ๋ก ๋ณด์ด์ง๋ง CS2X๋ฅผ ์์ง ๋ชปํ์ต๋๋ค.
@pjmlp Ya CS2X ๋ถ๋ถ์ C#์์ ๋ถ๊ฐ์ง๋ก ์ GPU ์ ฐ์ด๋๋ฅผ ์์ฑํ ์ ์๊ฒ ํด์ฃผ๋ ๋ถ๋ถ์ ๋๋ค(์ด๋ก ์ ์ผ๋ก ์ ฐ์ด๋๋ฅผ ๋จ์ ํ ์คํธํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฉ์ง ๊ธฐ๋ฅ์ ๋๋ค). C# ํ์ ์งํฉ์ ์ฌ์ฉํ ์ ์๋ ๋์์ ๊ฒฝ์ฐ CS2X๋ฅผ ์ฌ์ฉํ๋ฉด CS2X๊ฐ C# ํ์ ์งํฉ์ C89 ๋ฐํ์์ผ๋ก ์ปดํ์ผํ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ฌ .NET ๋ฐํ์์ด ์ง์ํ๋ ๊ฒ ์ด์ธ์ ํ๋ซํผ์ ๋์์ผ๋ก ์ง์ ํ ์ ์์ต๋๋ค. CS2X => C89 ๋ฐํ์์ ๋์์ผ๋ก ํ ์ ์์ผ๋ฉฐ ์ฐจ๋ก๋ก ์ด๋ฌํ ํ๋ซํผ๋ ๋์์ผ๋ก ํ ์ ์์ต๋๋ค.
ํฐ ํ๋ก์ ํธ์ง๋ง ๋ด๊ฐ ๊ด์ฌ์ ๊ฐ๊ณ ์๋ ์ผ์ ํ๊ธฐ ์ํด ์ต์ ์ ๋คํ๊ณ ์์ต๋๋ค.
WinUI 2.4์์ HwndHost๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น?
์ํํ ๋ฒ์ ์์ ์๋ํ์ง๋ง ์๋ํ์ง ์์์ต๋๋ค.
๋ํ ์ด ๋ชจ๋ ์๋ก์ด ๊ณํ๋ ์ฐฝ(XAML ์ฐฝ) ๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ(XAML ์์ฉ ํ๋ก๊ทธ๋จ)์ด ํฌํจ๋ WinUI3์์ ๊ฐ๋ฅํ ๊ฒ์ด๋ฉฐ, ๊ทธ๋ ๋ค๋ฉด ์ฒซ ๋ฒ์งธ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ์์ ์ด๋ฅผ ํ์ธํ ์ ์์ ๋์
๋๋ค.
์ค์ ๋ก WinUI3์์ ๊ฐ๋ฅํ๊ฒ ๋๋ค๋ฉด ์ด ๊ธฐ๋ฅ์ด WinUI 2 ์ ๋ฆด๋ฆฌ์ค์ ์ถ๊ฐ๋๊ฑฐ๋ WinUI 2๊ฐ Uwp ์ฑ์์ ์๋ํ ๊ฒ์
๋๋ค.
์๋ฅผ ๋ค์ด ์ง๊ธ ์ฐ๋ฆฌ๋ HwndHost๋ฅผ ํตํด ๋ง์ C++ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ WPF ์ฑ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๋ชจ๋ ๊ฒ์ WinUI๋ก ์ด๋ํ ๊ณํ์ด๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ์ WinUI ๋๋ ๋ค๋ฅธ ๊ฒ์ผ๋ก ์ด๋ํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ํ WinUI 2๋ ๋ณด๊ธฐ์ ์ข๊ณ XAML ๋ถ๋ถ์ ์ ์กํ๊ธฐ ๋งค์ฐ ์ฝ๊ณ Composition Api๋ ํ๋ฅญํ๊ฒ ์๋ํ๋ฉฐ Uwp Community Toolkit์ ํ๋ฅญํ๊ฒ ์๋ํ์ง๋ง HwndHost ๋ฐ C++ Win32 ์ฝ๋๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ธ์ WinUI3๊ฐ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฒ์
๋๊น? ๋ํ x:Bind๋ฅผ ๋ง์ด ์ข์ํ์ง๋ง WinUI3 ๋ฆด๋ฆฌ์ค์ ๊ฒฝ์ฐ์๋ ์ํํฉ๋๋ค.
@zezba9000
DirectX์ ๋ํด ๋งํ์๋ฉด, ์ ๋ ์ฌ๊ฐ ์๊ฐ ์ WinUI ๋ณด๊ธฐ์์.... ๋ค๋ฅธ ๋ง์ ๊ฒ๋ค ์ค์์ D3D12/11 ๋ฑ์ ์คํํ ์ ์๋ ํด๋์ฉ ๋ฐ ๋ถ๊ฐ์ง๋ก ์ C# ๊ทธ๋ํฝ, ์ค๋์ค ๋ฐ ์ ๋ ฅ ํ๋ ์์ํฌ ์ ๊ทน์ ์ผ๋ก ์์ ํ๊ณ ์์ต๋๋ค.
ํ์ด์ ๋น๋๋ค! ๋ฏธ์น ์์ ๋์ ๋๋ค!
WinUI 2.4์์ HwndHost๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น?
์ํํ ๋ฒ์ ์์ ์๋ํ์ง๋ง ์๋ํ์ง ์์์ต๋๋ค.
๋ํ ์ด ๋ชจ๋ ์๋ก์ด ๊ณํ๋ ์ฐฝ(XAML ์ฐฝ) ๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ(XAML ์์ฉ ํ๋ก๊ทธ๋จ)์ด ํฌํจ๋ WinUI3์์ ๊ฐ๋ฅํ ๊ฒ์ด๋ฉฐ, ๊ทธ๋ ๋ค๋ฉด ์ฒซ ๋ฒ์งธ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ์์ ์ด๋ฅผ ํ์ธํ ์ ์์ ๋์ ๋๋ค.
์ค์ ๋ก WinUI3์์ ๊ฐ๋ฅํ๊ฒ ๋๋ค๋ฉด ์ด ๊ธฐ๋ฅ์ด WinUI 2 ์ ๋ฆด๋ฆฌ์ค์ ์ถ๊ฐ๋๊ฑฐ๋ WinUI 2๊ฐ Uwp ์ฑ์์ ์๋ํ ๊ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด ์ง๊ธ ์ฐ๋ฆฌ๋ HwndHost๋ฅผ ํตํด ๋ง์ C++ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ WPF ์ฑ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๋ชจ๋ ๊ฒ์ WinUI๋ก ์ด๋ํ ๊ณํ์ด๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ์ WinUI ๋๋ ๋ค๋ฅธ ๊ฒ์ผ๋ก ์ด๋ํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
WinUI XAML ๋ด์์ user32/comctl ๋๋ WPF UI๋ฅผ ํธ์คํ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ด๋ ค ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. https://github.com/microsoft/microsoft-ui-xaml/issues/1833
๋ง๋ค์ด์ง๋ฉด 3.0 ์ดํ์๋ ๋ง๋ค์ด์ง์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
๋๋ ์ด๊ฒ์ #1833์ ๊ฒ์ํ๋ค
https://github.com/microsoft/microsoft-ui-xaml/issues/1833 ํ์ง๋ง ๋ณต์ฌํ๊ฒ ์ต๋๋ค.
๊ทธ๊ฒ์ ์ฌ๊ธฐ์๋ ์์ต๋๋ค: ์ง๊ธ ์ฐ๋ฆฌ๋ ๋ง์ C++ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ WPF ์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
HwndHost ์ปจํธ๋กค. Wpf ์ฑ์ WinUI๋ก ์ฎ๊ธฐ๊ณ Xaml์ ์ฎ๊ธธ ๊ณํ์
๋๋ค.
๋ฌธ์ ์์ด ์ ์๋ํ์ง๋ง HwndHost๋ ์ด๋ป์ต๋๊น?
WinUI3์์ ๊ฐ๋ฅํฉ๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ์ํธ ์ด์ฉ์ฑ์ ์ํํ๊ณ ์์ต๋๋ค.
HwndHost๋ฅผ ํตํ DirectShow์ ํ์ฌ WinUI 2์์๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
๊ฐ๋ฅํ. WinUI3์์ HwndHost๋ฅผ ์ฌ์ฉํ๋ ํ์ค์ ์ธ ๋ ์ง๋ ์ธ์ ์
๋๊น? ๋
์ด ์๋ก์ด Xaml ์ฐฝ ๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ต๊ทผ 2์์ ๋
ผ์๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
WinUI ์ปค๋ฎค๋ํฐ ํธ์ถ, ๋์์ด ๋ ์ ์์ต๋๊น?
์๋, 2์ 23์ผ de 2020 a la(s) 13:42, Max Strini(
[email protected]) ์ค๋ช
:
WinUI 2.4์์ HwndHost๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น?
์ํํ ๋ฒ์ ์์ ์๋ํ์ง๋ง ์๋ํ์ง ์์์ต๋๋ค.
๋ํ ์ด ๋ชจ๋ ์๋ก์ด ๊ณํ์ด ์๋ WinUI3์์ ๊ฐ๋ฅํ ๊น์?
์๋์ฐ(XAML ์ฐฝ) ๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ(XAML ์์ฉ ํ๋ก๊ทธ๋จ) ๋ฐ ์์ธ ๊ฒฝ์ฐ
์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๋ณผ ์ฒซ ๋ฒ์งธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๊ธฐ๋ํ ์ ์์ต๋๋ค.
์ค์ ๋ก WinUI3์์ ๊ฐ๋ฅํ๊ฒ ๋๋ค๋ฉด ์ด ๊ธฐ๋ฅ์
WinUI 2 ์ ๋ฆด๋ฆฌ์ค์ ์ถ๊ฐ๋์ง ์์ผ๋ฉด WinUI 2๊ฐ Uwp ์ฑ์์๋ง ์๋ํฉ๋๋ค.
์๋ฅผ ๋ค์ด ์ง๊ธ ์ฐ๋ฆฌ๋ ๋ง์ C++ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ WPF ์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
HwndHost, ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๋ชจ๋ ๊ฒ์ WinUI๋ก ์ฎ๊ธธ ๊ณํ์ด๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ์
WinUI ๋๋ ๋ค๋ฅธ ๊ฒ์ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ ๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ๋งค์ฐ ์ค์ํฉ๋๋ค.๋ด๋ถ์ user32/comctl ๋๋ WPF UI๋ฅผ ํธ์คํ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ด๋ ค ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
WinUI XAML: #1833
https://github.com/microsoft/microsoft-ui-xaml/issues/1833๋ง๋ค์ด์ง๋ฉด 3.0 ์ดํ์๋ ๋ง๋ค์ด์ง์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
โ
๋น์ ์ด ๋๊ธ์ ๋ฌ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธ
https://github.com/microsoft/microsoft-ui-xaml/issues/1972?email_source=notifications&email_token=AG66BVVOQ6W3Z6LBVYZVJ63REJVLPA5CNFSM4KUFQ63REJVLPA5CNFSM4KUFQ6MKYY3PNVWWK3TUL52HS4DFVEXG43VM
๋๋ ๊ตฌ๋ ์ทจ์
https://github.com/notifications/unsubscribe-auth/AG66BVRWNTNC7FUIBBP5C6DREJVLPANCNFSM4KUFQ6MA
.
--
๋ง๋ฆฌ์ค ๋์น์น
์ํํธ์จ์ด ์์ง๋์ด
๋ง์ดํฌ๋ก์ํํธ ๊ณต์ธ ์ ๋ฌธ๊ฐ
์ง๋ ์ฃผ์ ์ ๋ง ์ข์ WinUI ์ปค๋ฎค๋ํฐ ํธ์ถ์ด์์ต๋๋ค! ๋ด์ฉ์ ๋ง์ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ๊ธฐ์ ์ถฉ๋ถํ ํฅ๋ฏธ๋กญ๊ณ ์์ธํ๊ณ /๊ธฐ์ ์ ์ด์์ต๋๋ค. ๋ก๋๋งต/๊ฐ๋ฐ ์ํ ์ ๋ฐ์ดํธ๋ WinUI ์๋น์์ ์์ฒด ๊ฐ๋ฐ ๋ก๋๋งต์๊ฒ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ค์ ์ ํ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ฒ ์ต๋๋ค!
WinUI 3์ HwndHost ์ ๋ณด.
HwndHost๋ฅผ ์ฌ์ฉํ๋ฉด WPF ๋ด๋ถ์์ Win32 ์ฝํ
์ธ ๋ฅผ ํธ์คํ
ํ ์ ์์ต๋๋ค. ๋ถํํ๋ WinUI 3.0 ๋ฐ์คํฌํฑ ๋๋ WinUI ์์ผ๋๋๋ฅผ ํฌํจํ์ฌ WinUI 3.0์๋ ์ด๋ฅผ ์ง์ํ ๊ณํ์ด ์์ต๋๋ค. @mariorancic01์์ ์ค๋ช
ํ ์๋๋ฆฌ์ค์ ๋ํด DirectShow ๋์ UWP MediaPlayer API๋ฅผ ํ๊ฐํ์ต๋๊น?
Uwp ์นด๋ฉ๋ผ๊ฐ ๋ ์ข์ ๋ณด์ด์ง๋ง ์๋๋ฆฌ์ค์์ ์ฌ์ฉํ ์ ์๋์ง ํ์คํ์ง ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์นด๋ฉ๋ผ๋ฅผ DirectShow์ ํจ๊ป ๊ฐ์ ์นด๋ฉ๋ผ๋ก ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ๊ทธ๊ฒ์ด ํ์ํฉ๋๋ค.
๋น๋์ค, ์ฌ์ง ๋ฐ PjSip์ ์ฌ์ฉํ์ฌ ์นด๋ฉ๋ผ ์คํธ๋ฆผ์ ๊ฐ์ ธ์ต๋๋ค.
๊ฐ์ ์๊ฐ์ DirectShow๋ก ํ๊ธฐ ์ ์ ๋ง์ด์ฃ . ์ด Uwp๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น?
PjSip์ด ์๋ MediaPlayer.
El miรฉ., 2์ 26์ผ de 2020 a la(s) 23:47, Miguel Ramos(
[email protected]) ์ค๋ช
:
WinUI 3์ HwndHost ์ ๋ณด.
HwndHost๋ฅผ ์ฌ์ฉํ๋ฉด WPF ๋ด๋ถ์์ Win32 ์ฝํ ์ธ ๋ฅผ ํธ์คํ ํ ์ ์์ต๋๋ค. ๋ถํํ๋ ๊ฑฐ๊ธฐ
WinUI 3.0 Desktop์ ํฌํจํ์ฌ WinUI 3.0์์๋ ์ด๋ฅผ ์ง์ํ ๊ณํ์ด ์์ต๋๋ค.
WinUI ์ ๋. ์๋๋ฆฌ์ค ์ ๋ณด @mariorancic01
https://github.com/mariorancic01 ์ค๋ช , UWP๋ฅผ ํ๊ฐํ์ต๋๊น?
DirectShow ๋์ MediaPlayer API?โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธ
https://github.com/microsoft/microsoft-ui-xaml/issues/1972?email_source=notifications&email_token=AG66BVR4ABZ7KA3S2RQVHELRE3WOJA5CNFSM4KUFQ6MKYY3PNVWWK3TUL52HS4DFVREXG43VMXVBW
๋๋ ๊ตฌ๋ ์ทจ์
https://github.com/notifications/unsubscribe-auth/AG66BVSBFMKZMD3TD5RGDKTRE3WOJANCNFSM4KUFQ6MA
.
--
๋ง๋ฆฌ์ค ๋์น์น
์ํํธ์จ์ด ์์ง๋์ด
๋ง์ดํฌ๋ก์ํํธ ๊ณต์ธ ์ ๋ฌธ๊ฐ
๋น์ฆ๋์ค์ฉ Windows Store์ ๋ํด ์ง๋ฌธ์ด ์์ต๋๋ค. ์ด๊ฒ์ LOB ์ฑ์ ๋งค์ฐ ์ ์ฉํ๊ณ ๋งค์ฐ ์ ์ฉํด ๋ณด์ด์ง๋ง ํฌ๊ธฐํ ์ ์๋ค๋ ๊ฒ์ ์ฝ์์ต๋๋ค. ์๋ฌด๋ ์ด๊ฒ ์ ๋ํ ๊ณํ ์ ๋ํด ๋งํ ์ ์์ต๋๋ค .
@marionrancic01 ์ด์ MSIX ํจํค์ง์ ํตํด UWP ์ฑ์ ๋ฐฐํฌํ ์ ์์ผ๋ฏ๋ก ์ค์ ๋ก ํ์ํ์ง ์์ต๋๋ค.
์ฌํ๊ฒ๋ @mariorancic01 ์ฒ๋ผ ๋น์ฆ๋์ค์ฉ Windows ์คํ ์ด๋ ์ ์ฉํฉ๋๋ค ๐
@kmgallahan ๋งํ๋ฏ์ด @leoniDEV ๋ ๋น์ ์ด ๋จ์ํ MSIX๋ก ๊ฒ์ ํ ์ ์์ต๋๋ค ๋ ๋น์ฆ๋์ค, ์ฉ Windows ์คํ ์ด๋ฅผ ํ์๋กํ๋ ์ด์ ์์งํ ๊ถ๊ธํฉ๋๋ค
@kmgallahan @jtorjo ๊ทธ๋ค์ด ์ฐพ๊ณ ์๋ ๊ฒ์ ์ฌ์ค ์ ํ๋ฆฌ์ผ์ด์
์นดํ๋ก๊ทธ๋ฅผ ๊ฐ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. MSIX๋ ๋ด๊ฐ ๋ฏฟ๋ ๊ฒ์ ์ ๊ณตํ์ง ์์ต๋๊น? ํ์ฌ์์ ์ ๊ณตํ๋ MSIX๋ฅผ ๋์ดํ๋ ์น ์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ๊ฑฐ๋ ์ผ๋ถ ๊ด๋ฆฌ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ฐฐํฌํ์ง ์๋ ํ?
๋น์ทํ ๋ฐฉ์์ผ๋ก ์ด์ MSI ์ค์น ํ๋ก๊ทธ๋จ์ ์ฑ์ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ๋ ์ ๊ณตํ์ง ์์ต๋๋ค.
Windows ์คํ ์ด์ ๊ฒ์ํ๋ ๊ฒ์ ์ฌ์ด ์ผ์ด ์๋๋๋ค. ์๊ฐ๋ณด๋ค ํจ์ฌ ๋ณต์กํฉ๋๋ค. ๋จผ์ MS์ ์ธ์ฆ์๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค. ์ด ์ธ์ฆ์๋ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉํ ์ธ์ฆ์์ ๋๋ค(์ง๊ธ ์ ํํ ๋จ๊ณ๋ ๊ธฐ์ต๋์ง ์์ต๋๋ค). ๊ทธ๋ฐ ๋ค์ ์ฑ์ด ์คํ ์ด ์๊ตฌ ์ฌํญ์ ์๋ฐํ์ง ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ ๋ฐ์ดํธ๋ฅผ ์๋ฝํ๋ ๋ฐ ๋ฉฐ์น ์ด ๊ฑธ๋ฆด ์ ์์ผ๋ฉฐ(๋๋ ๊ฑฐ๋ถ๋ ์ ์์) ์ฌ๋๋ค์ด ์ฑ์ ์ฐพ๋ ๋ฐ ์คํ ์ด์ ์๊ณ ๋ฆฌ์ฆ์ ์์กดํ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ์ง์ ๋ฐฐํฌํ๋ฉด ์ค์ ํ๊ธฐ๊ฐ ์ฝ๊ฐ ์ด๋ ค์ธ ์ ์์ง๋ง(์๊ฒ ์ต๋๋ค) ์ผ๋จ ์๋ฃ๋๋ฉด ์ฌ์ธ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๋ค, ๋น์ ์ ๋น์ ์ ์ฑ์ ์ธ์์ ๋ณด์ฌ์ค ์ฑ ์์ด ์์ต๋๋ค.
๋น์ฆ๋์ค์ฉ ์คํ ์ด๋ฅผ ํฌํจํ์ฌ Microsoft Store์ ์ฌ๋ฌ ์ฑ์ ๊ฐ์ง๊ณ ์๋ ์ฌ๋์ผ๋ก์ ์ ๋ ์ง๋ ๋ช ๊ฐ์ ๋์ Microsoft Store์ ๊ฒ์ํ๋ ๊ฒ์ด ํจ์ฌ ์ข์์ก๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. ์ ๊ธฐ ์
๋ฐ์ดํธ์ ๋ํ ์ธ์ฆ์ ๋๋๋ก ๋ช ์๊ฐ ๋ด์ ์ด๋ฃจ์ด์ง๋๋ค. ๋งค์ฅ ๊ฐ์ด๋๋ผ์ธ๋ ์ค์ํ๊ธฐ๊ฐ ๋งค์ฐ ์ฝ์ต๋๋ค.
๋ฐ๋ฉด์ ๋
๋ฆฝ ์คํํ msix๋ฅผ ๋ฐฉํดํ๋ ๊ฒ์ ๋ณต์กํ ์ ์์ต๋๋ค. ํจํค์ง์ ์๋ช
ํ๋ ์คํ ์ด์ ๋ฌ๋ฆฌ ์คํ ์ด ์ธ๋ถ์ ์ฑ์ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ ์ง์ ์๋ช
ํด์ผ ํฉ๋๋ค.
@jtorjo ์ธ์ฆ์๊ฐ ํ์ํ์ง ์์ต๋๋ค.
๋ถ๋ช ํ ์คํ ์ด์ ๋ฌธ์ ๊ฐ ์๊ณ ๊ฐ๋ฐ์ ๋์๋ณด๋๊ฐ โโ๊ฐ๋ ๋ค์ด๋๋ ๊ฒฝ์ฐ๊ฐ ์์ง๋ง, ์์ ์์ ์ ๋น์ฆ๋์ค ์ฑ์ฉ ์คํ ์ด๊ฐ ์์ผ๋ฉด ๊ฝค ํธ๋ฆฌํ๋ค๋ ๊ฒ์ ๋๋ค.
๋น์ฆ๋์ค์ฉ ์คํ ์ด๋ฅผ ํฌํจํ์ฌ Microsoft Store์ ์ฌ๋ฌ ์ฑ์ ๊ฐ์ง๊ณ ์๋ ์ฌ๋์ผ๋ก์ ์ ๋ ์ง๋ ๋ช ๊ฐ์ ๋์ Microsoft Store์ ๊ฒ์ํ๋ ๊ฒ์ด ํจ์ฌ ์ข์์ก๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. ์ ๊ธฐ ์ ๋ฐ์ดํธ์ ๋ํ ์ธ์ฆ์ ๋๋๋ก ๋ช ์๊ฐ ๋ด์ ์ด๋ฃจ์ด์ง๋๋ค. ๋งค์ฅ ๊ฐ์ด๋๋ผ์ธ๋ ์ค์ํ๊ธฐ๊ฐ ๋งค์ฐ ์ฝ์ต๋๋ค.
@yaichenbaum ํ์คํ ์๊ณ ์์ด์ ์ข์ต๋๋ค. ์ ๊ฐ ์ถํํ ๋(2๋ ์ ์ฏค)์๋ ํจ์ฌ ๋ ์ด๋ ค์ ์ต๋๋ค. ์, ์ง์ ์๋ช ํด์ผ ํฉ๋๋ค. ์ค์ ๋ก ์ธ์ฆ์๋ฅผ ๊ตฌ์ ํ๊ณ "๊ฒ์" ํ๋ก์ธ์ค์ ์ผ๋ถ๋ก ์๋ช ํฉ๋๋ค. ๋ฐ๋ผ์ ํ ๋ฒ ์ค์ ํ๋ฉด ์์ด๋ฒ๋ฆด ์ ์์ต๋๋ค.
@riverar ๋ด๊ฐ ์ถํํ ๋(2๋ ์ ์ฏค), ์ด๋ฆ์ ์์ฝํด์ผ ํ๊ณ , ๊ทธ๋ฐ ๋ค์ MS๊ฐ ์ฑ์ ์๋ช ํ๋ ๋ฐ ์ฌ์ฉํ ๋ฌด์ธ๊ฐ๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํ๋ค๋ ๊ฒ์ ๊ธฐ์ตํฉ๋๋ค(์ด๋ ์ธ์ฆ์๋ก ์๋ฏธํ๋ ๊ฒ์ ๋๋ค. > MS๊ฐ ๊ทํ๋ฅผ ์ํด ๋ฐํํ ๊ฒ).
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@pjmlp DirectX์ ๋ํด ๋งํ์๋ฉด ์ ๋ ์์ ์๊ฐ ์ WinUI ๋ณด๊ธฐ์์ D3D12/11 ๋ฑ์ ์คํํ ์ ์๋ ํด๋์ฉ ๋ฐ ๋ถ๊ฐ์ง๋ก ์ C# ๊ทธ๋ํฝ, ์ค๋์ค ๋ฐ ์ ๋ ฅ ํ๋ ์์ํฌ ์ ๊ทน์ ์ผ๋ก ์์ ํ๊ณ ์์ต๋๋ค.
XNA์ ๊ฐ์ ๋ ๋๋ง์ ๋ํ ํจ์ฌ ๋ ํ๋์ ์ด๊ณ ์ฑ๋ฅ ์ค์ฌ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์ง์ํฉ๋๋ค. ์์ง ์ฌ์ฉํ ์ค๋น๊ฐ ๋์ง ์์์ง๋ง ์ ๋ฅผ ํฌํจํด ๋ง์ ๋ถ๋ค์ด ์ํ์ ์ ๋ง๋ค์ด ๋ดค์ต๋๋ค. D3D12 ๋ฐ Vulkan์ด ์ง์๋๋ ์ฒซ ๋ฒ์งธ ๋์์ด ๋ฉ๋๋ค. HLSL์ด๋ GLSL ๋ฑ ๋์ C#์ผ๋ก ์ ฐ์ด๋๋ฅผ ์์ฑํ ์๋ ์์ต๋๋ค.
์ฌ์ฉํ ์ค๋น๊ฐ ๋๋ฉด ๋ ๋ง์ ์ ๋ณด๋ฅผ ๊ณต์ ํ๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ๋๊ท๋ชจ SDK๋ ๊ฒ์ ์์ง์ด ์๋ ํ๋ ์์ํฌ์ด๊ธฐ ๋๋ฌธ์ ํด๋๊ฐ ๊ฐํธํ๊ณ ๊ฐ๋ฒผ์ฐ๋ฉด์๋ ๊ฐ๋ ฅํ๊ณ ์ฌ์ฉํ๊ธฐ ์ฝ์ต๋๋ค. WinUI, WPF ๋๋ ์ผ๋ถ ๊ธฐ๋ณธ C# Win32 ๋๋ WinRT ์ฑ์์ 3D ์ฝํ ์ธ ๋ฅผ ๋ ๋๋งํ๋ ๋ฐ ์ ํฉํฉ๋๋ค.
https://github.com/reignstudios/Orbital-Framework