[DirectX] DirectX์ GDI+์ ์ฐจ์ด์ , ๊ทธ๋ฆฌ๊ณ SharpDX ์ดํดํ๊ธฐ
DirectX์ GDI์ ์ฐจ์ด์
SharpDX๋ฅผ ์ค๋ช ํ๊ธฐ ์ ์, DirectX๊ฐ ๋ฌด์์ธ์ง ๊ทธ๋ฆฌ๊ณ GDI์ ๋ฌด์จ ์ฐจ์ด๊ฐ ์๋์ง๋ถํฐ ์์๋ณด๊ฒ ์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ํํ ์๊ณ ์๋ GDI(Graphics Device Interface)๋ ์๋์ฐ ์ด์ ์ฒด์ ์ ๊ทธ๋ํฝ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ๋ํ(์ง์ , ์ฌ๊ฐํ, ์ํ ๋ฑ) ๋๋ ๋ฌธ์์ด, ์ด๋ฏธ์ง ๋ฑ์ ๊ทธ๋ฆด ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ณด๋ค ๋ ์ง๋ณด๋ ๊ธฐ์ ์ด GDI+์ด๋ฉฐ, GDI๋ณด๋ค ๋ ๋ค์ํ ๊ทธ๋ํฝ ๋ ๋๋ง ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค. ์ฃผ์ ํน์ง์ผ๋ก, GDI๋ CPU์์ ์ํ๋๋ค ๋ณด๋ ํ๋์จ์ด ๊ฐ์์ ์ง์ํ์ง ์์ต๋๋ค.
DirectX๋ ๊ฒ์, ๋ฉํฐ๋ฏธ๋์ด ๋ฐ ๊ทธ๋ํฝ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ธ ์ ๋ ฅ ์ฅ์น(ํค๋ณด๋, ๋ง์ฐ์ค ๋ฑ)์ ์ฌ์ด๋ ์ถ๋ ฅ, 2์ฐจ์๋ฟ๋ง ์๋๋ผ 3์ฐจ์ ๋ ๋๋ง ๊ธฐ๋ฅ๋ ์ง์ํฉ๋๋ค. ๋ํ GDI์ ๋ค๋ฅด๊ฒ ํ๋์จ์ด ๊ฐ์์ ์ง์ํ์ฌ ๋์ ํ์ง์ ๊ทธ๋ํฝ ๋ ๋๋ง์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ณ์ธต์ ์ธ ์ฐจ์ด๋ฅผ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
GDI๋ ์ปค๋ ๋ชจ๋์์, DirectX๋ ์ฌ์ฉ์ ๋ชจ๋์์ ์คํ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ปค๋ ๋ชจ๋์์ ์คํ๋๋ ์ฝ๋๊ฐ ํ๋์จ์ด์ ์ง์ ์ ์ผ๋ก ์ํธ์์ฉํ์ฌ ์ฌ์ฉ์ ๋ชจ๋๋ณด๋ค ๋ ๋น ๋ฅด๊ฒ ์คํ๋ฉ๋๋ค. ๋จ์ํ ์ด๋ฏธ์ง ์์ฒด๋ง ๋ ๋๋ง ํ๋ค๋ฉด GDI๊ฐ ๋ ๋น ๋ฅผ ์ ์์ง๋ง, ํน์ํ ์กฐ๊ฑด(์ข ๋ ๋ณต์กํ ๊ทธ๋ํฝ ์ฒ๋ฆฌ)์์๋ DirectX์ ์ฑ๋ฅ์ด ๋์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์, ์ด๋ค ๋ชฉ์ ์ผ๋ก ๊ทธ๋ํฝ์ ์ฒ๋ฆฌํ ๊ฒ์ธ๊ฐ์ ๋ฐ๋ผ ์ ์ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ํํด์ผ ํฉ๋๋ค.
DirectX ๊ตฌ์ฑ ์์
DirectX๊ฐ ์ฌ๋ฌ ๋ถ์ผ๋ก ์ง์ํ๋ค ๋ณด๋, DirectX์๋ ๋ค์ํ ๊ตฌ์ฑ ์์๊ฐ ์์ต๋๋ค. ๊ทธ์ค ๋ํ์ ์ธ ๊ฒ ๋ช ๊ฐ๋ง ๋์ดํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Direct2D: 2D ๊ทธ๋ํฝ์ ์ํ API(๊ธฐ์กด GDI/GDI+ ๋์ฒด)
- Direct3D: 3D ๊ทธ๋ํฝ์ ์ํ API
- DirectWrite: ํ ์คํธ ๋ ๋๋ง์ ์ํ API
SharpDX๋?
์ด์ ๋ณธ๋ก ์ผ๋ก ์์ต๋๋ค. SharpDX๋, DirectX API๋ฅผ .Net์ ์ฌ์ฉํ ์ ์๋๋ก ๋ํ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์ฆ, C#์์ DirectX๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ณ ์ดํดํ๋ฉด ๋๊ฒ ์ต๋๋ค.
SharpDX์์ ์ ๊ณตํ๋ API ์ข ๋ฅ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- 3D ๊ทธ๋ํฝ: Direct3D9+, Direct3D11+, Direct3D12+
- 2D ๊ทธ๋ํฝ: Direct2D1+, DirectWrite+, WIC
- ๊ทธ๋ํฝ ์ฝ์ด: DXGI+, MediaFoundation, DirectComposition, DirectManipulation, Animation
- ์ฌ์ด๋: DirectSound, XAudio, X3DAudio
- ์ ๋ ฅ: DirectInput, RawInput, XInput
์ฐธ๊ณ ๋ก, SharpDX๋ 2019๋ 3์ 29์ผ๋ถ๋ก ๋ ์ด์ ๊ฐ๋ฐ ๋ฐ ์ ์ง ๊ด๋ฆฌ๊ฐ ๋์ง ์์ต๋๋ค. ๊ธฐ์ ๋ฆฌ๋์ ์ปค๋ฎค๋ํฐ ์ฐธ์ฌ๊ฐ ๋ถ์กฑํ์ฌ ๋ ์ด์ ๊ฐ๋ฐ๋์ง ์๋๋ค๊ณ ํ๋๊ตฐ์. ํ์ง๋ง NuGet์์๋ ๋ค์ด๋ก๋๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ์ฌ์ ํ ์ฌ์ฉํ๋ ๋ฐ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ง์ฝ, ์ต์ ๋ฒ์ ์ DirectX๋ฅผ .Net์์ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด ์ง์ ๋ํํ์ฌ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
๋ค์ ํฌ์คํ ์์๋ .Net WinForm ํ๋ก์ ํธ์์ SharpDX๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง, ๊ทธ๋ฆฌ๊ณ GDI+์ ๋น๊ตํ์ฌ ์ผ๋ง๋ ์ฑ๋ฅ ์ฐจ์ด๊ฐ ๋๋์ง ์์๋ณด๊ฒ ์ต๋๋ค.
'Programming > DirectX' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DirectX] .Net WinForm์์ GDI+์ SharpDX ์ฌ์ฉํ๊ธฐ (์์ ํฌํจ) (1) | 2023.06.10 |
---|
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[DirectX] .Net WinForm์์ GDI+์ SharpDX ์ฌ์ฉํ๊ธฐ (์์ ํฌํจ)
[DirectX] .Net WinForm์์ GDI+์ SharpDX ์ฌ์ฉํ๊ธฐ (์์ ํฌํจ)
2023.06.10