Nagie's DevStory
[DX11] 다이렉트 X와 Win32 API의 차이점 본문
728x90
1. 목적
- Win32 API : Windows 응용 프로그램의 기본적인 윈도우 생성, 이벤트 처리, 파일 입출력 등과 같은
- 운영 체제 기능에 관련된 API를 제공하며 GUI 애플리케이션 및 시스템 프로그래밍과 관련된 작업에 사용된다.
- Direct X : 주로 그래픽 및 멀티미디어 기능에 중점을 둔 API 집합이며, 2D 및 3D 그래픽 처리, 음향 처리,
- 입력 장치 처리 및 비디오 스트리밍과 같은 멀티미디어 작업에 사용된다.
2. 사용 언어
- Win32 API : 초기에는 C를 사용해 프로그래밍하는 것이 일반적이었으나 시간이 흘러
- C++의 객체 지향적인 특징을 활용하기 위해 C++와 함께 사용할 수 있도록 MS에서 확장했다.
- Direct X : C++를 기반으로 멀티미디어 및 게임 개발을 위한 API이며,
- 그래픽과 관련된 작업을 간편하게 수행할 수 있도록 설계가 되었다.
3. 접근 레벨
- Win32 API : Direct X와 비교하면 상대적으로 낮은 수준의 API로,
- 프로그래머에게 OS 기능에 직접적인 액세스를 제공한다.
- Direct X : Win32 API와 비교하면 상대적으로 높은 수준의 API로, 그래픽 및 멀티미디어 작업을 추상화해
- 개발자가 하드웨어 세부 사항에 대한 걱정 없이 더 쉽게 작업할 수 있도록 도와준다.
4. GPU 사용률
- Win32 API : 일반적인 응용 프로그램을 개발하기 위한 API이기에 그 자체로는 그래픽 처리에 특화되어 있지 않으며
- 그래픽 처리와 관련된 작업은 주로 GDI(Graphic Device Interface)를 통해 이뤄진다.
- 즉 CPU를 주로 사용하기에 대량의 그래픽 처리에는 성능이 매우 낮다.
- Direct X : 태생적으로 GPU(Graphic Processing Unit)를 효과적으로 활용하기 위해 설계된 API이다.
- CPU와는 다르게 GPU는 병렬 컴퓨팅에 특화되어 있기에 그래픽 처리에서 Win32 API 대비 상당한 성능을 보인다.
728x90
Comments