Graphics Device Interface

Graphics Device Interface(GDI)는 Microsoft Windows의 2차원 그래픽스·문자와 프린터 출력을 위한 API 계층이다. 응용 프로그램은 GDI를 통해 선·도형·비트맵·글꼴을 화면과 프린터에 그릴 수 있으며, 실제 디스플레이 또는 인쇄 장치의 특성은 운영체...

약칭GDI
분류Windows 2D 그래픽스·문자·프린터 API
개발사Microsoft
초기 계보Windows 1.x부터
주요 기능선·사각형·텍스트·비트맵·프린터 출력
핵심 개념Device Context(HDC), GDI Objects
렌더링2D 래스터·기본 도형·폰트
관련 기술GDI+, Direct2D, Desktop Window Manager
운영체제Microsoft Windows
APIBitBlt, TextOut, CreateCompatibleDC 등
공식 문서Microsoft Learn: Windows GDI

Graphics Device Interface(GDI)는 Microsoft Windows의 2차원 그래픽스·문자와 프린터 출력을 위한 API 계층이다. 응용 프로그램은 GDI를 통해 선·도형·비트맵·글꼴을 화면과 프린터에 그릴 수 있으며, 실제 디스플레이 또는 인쇄 장치의 특성은 운영체제와 드라이버가 처리한다. 1980년대 Windows 초기부터 제공됐고 현대 Windows에도 호환성과 문서·UI 그리기 기능으로 유지된다.[1]

GDI 프로그래밍의 중심에는 Device Context(HDC)가 있다. 이는 대상 화면·프린터·메모리 비트맵 등의 그리기 상태를 표현하고 펜·브러시·글꼴과 색상·좌표 변환을 결합한다. 개발자는 LineTo·Rectangle·TextOut·BitBlt 같은 API를 사용해 도형·텍스트와 이미지를 출력한다. 일부 GDI 객체의 생성·선택과 삭제 순서를 지키지 않으면 자원 누수가 발생할 수 있다.

Windows 프로그램은 WM_PAINT 같은 창 메시지에서 현재 창의 무효 영역을 다시 그리는 것이 기본적인 방법이다. GDI는 화면뿐 아니라 프린터·메타파일 등의 장치 중립적인 출력에도 활용된다. 그래서 사용자 인터페이스와 문서 인쇄에서 오랫동안 중요한 역할을 했다. 그러나 GDI는 최신 3D 게임의 하드웨어 렌더링 기능을 담당하는 Direct3D와는 전혀 다른 API 체계다.

Windows Vista 이후에는 Desktop Window Manager가 창의 출력을 합성하여 데스크톱에 표시한다. GDI가 생성한 픽셀도 합성 대상이 될 수 있지만 GDI 자체가 DWM과 동의어는 아니다. 최신 UI 개발에는 Direct2D·DirectWrite·WinUI 등의 기술도 사용되며 각 API의 성능·DPI·폰트 및 GPU 지원 특성이 다르다.[2]

GDI는 대규모 기존 Win32 응용 프로그램과 인쇄 소프트웨어에서 필수적인 호환성 구성 요소다. 드라이버·프로세스 경계와 그래픽스 메모리 관리의 세대별 변화에도 주요 프로그래밍 인터페이스가 유지됐다는 점이 기술사적으로 중요하다. 이를 저수준 GPU API인 Direct3D나 Windows 그래픽 드라이버 모델 전체와 혼동하지 않아야 한다.

역사

개발 배경과 설계

주요 구성 요소와 버전

실행·렌더링 및 자료 구조

하드웨어와 장치 드라이버

개발 도구·프로그래밍

성능·호환성 및 제약

관련 소프트웨어

영향

관련 문서

  1. Microsoft Learn: Windows GDI ↩
  2. Microsoft Learn: GDI concepts ↩