본문 바로가기

GDI

Direct2D : Your New Windows 2D Rendering API 윈도우 1.0이 세상에 나온지 25년이 지났지만, 아직도 초기와 비교해 크게 달라진 것이 없으며, 현역으로 사용되고 있는 것을 꼽으라면 단연 GDI일 것이다. GDI는 XP까지도 윈도우의 2D 프레젠테이션 엔진이었고, GDI+라는 확장된 버전이 작성되기도 했지만 근본적으로 2D 클리핑 기반 엔진이라는 한계를 가지고 있었다. GDI는 윈도우를 서로 겹칠 때 그 단점을 가장 뚜렷하게 관찰할 수 있다. 예를 들어 투명 효과를 구현하다면 복잡한 일이 될 수 밖에 없다. 직접 전체 화면에 대한 DC를 얻어내어 해당 위치에 대한 픽셀값을 계산해야 했기 때문이다. 또, 근본적으로 래스터라이즈된 이미지를 기반으로 동작하기 때문에, 확대, 축소 시에 이미지 손실이 발생한다. .NET에 탑재된 WPF는 벡터 기반으로 작성.. 더보기
GDI, GDI+, WPF 고전적인 윈도우 프로그래밍은 곧 이벤트 핸들러를 작성하는 것이었고, WinMain()과 WndProc()를 작성하는 것이다. 사실, 이 방법론은 여러번 변경되어왔다. SDK를 사용한 Win32 API를 직접 사용하는 방법에서 MFC를 사용한 C++ 클래스 라이브러리를 사용하는 방법으로, 최근에는 Windows Forms을 사용하는 것으로 변경되어 왔는데, 숱하게 많은 방법론이 등장했음에도 불구하고 상대적으로 느린 변화를 보였던 것이 바로 윈도우 프리젠테이션 엔진이었다. 윈도우 프리젠테이션 엔진은 전통적으로 GDI라는 2D 클리핑 기반 엔진인데, 사실 MFC 시절까지도 이것은 큰 변화가 없었다. 이것이 .NET이 등장하면서 GDI+라는 것으로 재작성되어 나타났다. 그러나 근본적인 면에서 GDI+ 역시 2D.. 더보기