그래픽 장치 인터페이스
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
그래픽 장치 인터페이스(GDI)는 마이크로소프트 윈도우 운영 체제에서 그래픽 출력을 담당하는 API이다. 초기 윈도우 버전부터 존재하며, 2D 그래픽 가속을 위해 비트 블리트 기능을 사용했다. 윈도우 XP에서는 GDI+가 도입되어 2D 그래픽 기능을 확장했으며, 윈도우 비스타에서는 데스크톱 창 관리자(DWM)를 통해 GDI/GDI+ 응용 프로그램이 실행되었다. 윈도우 7부터는 GDI 하드웨어 가속이 다시 도입되었고, Direct2D 및 DirectWrite가 GDI/GDI+와 유니스크라이브를 대체하기 위해 추가되었다. GDI는 장치 컨텍스트를 통해 텍스트 및 이미지의 속성을 정의하며, 다양한 그래픽 객체를 사용하여 출력을 생성한다. GDI 프린터는 호스트 컴퓨터에서 모든 인쇄 처리를 수행하도록 설계되었으며, GDI 객체 사용량 제한으로 인해 문제가 발생할 수 있다. Direct2D는 GDI/GDI+의 후속 제품으로 Direct3D를 활용하여 하드웨어 가속을 지원한다.
더 읽어볼만한 페이지
- 그래픽 라이브러리 - Direct2D
Direct2D는 마이크로소프트에서 개발한 2D 그래픽 API로, 낮은 수준의 추상화, 고품질 텍스트 렌더링, 안티앨리어싱, 하드웨어 가속, 높은 DPI 지원 등의 특징을 가지며 다양한 분야에서 활용된다. - 그래픽 라이브러리 - WinG
WinG는 윈도우 3.x의 그래픽 성능 향상을 위해 개발된 기술로, DirectX로 발전하는 기반이 되었으며 한국 게임 산업에도 영향을 미쳤다. - 마이크로소프트 API - 윈도우 API
윈도우 API는 마이크로소프트 윈도우 운영 체제에서 응용 프로그램이 시스템 기능에 접근하도록 돕는 인터페이스 집합이며, 다양한 버전으로 발전해 왔고, 현재 Win32가 널리 사용되며, 유연성을 제공하지만 복잡하다는 단점을 보완하기 위해 다양한 래퍼 라이브러리가 개발되었다. - 마이크로소프트 API - WinFS
WinFS는 마이크로소프트가 개발한 파일 시스템으로, 검색 기능 내장 및 메타데이터 관리를 통해 데이터 관리 효율성을 높이는 것을 목표로 했으나 별도 제품으로 출시되지는 못하고 핵심 기능들이 윈도우 비스타 이후 기술에 통합되었다. - 마이크로소프트 윈도우 - 윈도우 8
윈도우 8은 2012년 마이크로소프트가 출시한 운영 체제로, 터치스크린 기기 사용성을 개선하기 위해 메트로 디자인을 도입했으며, 윈도우 8.1로 개선되었고, 32/64비트 등 다양한 에디션으로 출시되었으나 2016년 지원이 종료되었다. - 마이크로소프트 윈도우 - 윈도우 2.0
윈도우 2.0은 1987년 마이크로소프트가 출시한 16비트 GUI 기반 운영 환경으로, 창 겹치기, 바탕 화면 아이콘, 단축키 등의 기능 추가와 VGA 그래픽, EMS 메모리 지원을 통해 사용자 인터페이스와 기능이 향상되었으며, 마이크로소프트 워드, 엑셀 등의 응용 프로그램이 처음 실행된 운영체제이다.
그래픽 장치 인터페이스 | |
---|---|
기본 정보 | |
종류 | API |
약자 | GDI |
개발 | 마이크로소프트 |
운영체제 | 마이크로소프트 윈도우 운영체제 |
상세 정보 | |
목적 | 그래픽 카드 및 프린터와 같은 출력 장치용 그래픽을 표현하기 위한 API 제공 |
역사 | 윈도우 1.0부터 사용 |
설명 | 윈도우에서 그래픽 표현을 관리하는 핵심 부분 |
기능 | 선, 곡선, 도형을 그리고, 글꼴과 이미지를 관리 창, 메뉴, 대화 상자 같은 그래픽 사용자 인터페이스 요소 렌더링 |
작동 방식 | 응용 프로그램이 GDI 함수를 호출하여 그래픽 작업을 수행 GDI는 장치 독립적인 방식으로 이러한 작업을 처리 장치 드라이버와 상호 작용하여 특정 장치에 맞게 그래픽 명령을 변환 |
기술적 특징 | |
장점 | 장치 독립성: 다양한 장치에서 일관된 그래픽 표현 가능 널리 사용됨: 대부분의 윈도우 응용 프로그램에서 그래픽 렌더링에 사용 |
단점 | DirectX: 보다 복잡한 2D 및 3D 그래픽 작업에 적합하지 않음 성능: 최신 그래픽 하드웨어의 모든 기능을 활용하지 못할 수 있음 |
대체 기술 | DirectX OpenGL WPF |
2. 역사
GDI는 윈도우 초기 릴리스에 존재했다. MS-DOS 프로그램은 소프트웨어 인터럽트(때로는 비디오 BIOS를 통해) 비디오 메모리를 직접 조작하여 그래픽 하드웨어를 조작했다. 이러한 방식으로 작성된 코드는 비디오 메모리의 유일한 사용자가 자신이라고 예상했지만, 이는 윈도우와 같은 컴퓨터 멀티태스킹 환경에서는 유지될 수 없었다. 1983년 12월 ''BYTE'' 잡지에서는 마이크로소프트가 곧 출시될 윈도우의 첫 번째 릴리스에서 동일한 코드로 프린터와 모니터에 모두 그래픽을 출력하는 시스템에 대한 계획을 논의했다고 보도했다.[2]
윈도우 XP와 함께 도입된 C++ 기반의 '''GDI+'''는 GDI의 기능을 개선하였다. GDI+는 앤티 에일리어싱, 부동소수점 좌표 체계, 그라디언트, JPEG나 PNG 등의 이미지 포맷 지원(GDI에서는 지원되지 않음), 아핀 변환 등의 고급 2차원 그래픽 환경을 제공한다. GDI+는 색을 표현할 때 ARGB 값을 사용한다.[4] GDI+는 텍스트 처리 및 해상도 독립 기능이 추가되어, CPU가 텍스트 렌더링을 수행한다.[5]
윈도우 비스타에서는 GDI/GDI+ 응용 프로그램을 비롯한 모든 윈도우 응용 프로그램들이 윈도우 디스플레이 드라이버 모델의 최상위에 있는 새로운 컴포지션 엔진 데스크톱 창 관리자(DWM)에서 실행된다. GDI 렌더 경로는 데스크톱 창 관리자를 통해 연결되며, GDI는 더 이상 그래픽 카드 드라이버를 통해 하드웨어 가속을 하지 않는다.[39][40]
윈도우 7에는 GDI 하드웨어 가속이 추가되어 윈도우 디스플레이 드라이버 모델 v1.1의 기능을 제공한다. Windows 7은 Windows 디스플레이 드라이버 모델 v1.1에서 블리팅 작업에 대한 GDI 하드웨어 가속을 포함한다. 그러나 기본 요소 GDI 작업의 대부분은 Direct2D와 달리 여전히 하드웨어 가속을 지원하지 않는다. GDI+는 Windows 7에서 소프트웨어 렌더링에 계속 의존한다.[10] Windows 7 이후에는 GDI의 일부[25]가 다시 하드웨어 가속을 지원하게 되었지만, DWM이 활성화되어 있어야 한다.[26]
2. 1. 초기 버전
GDI는 윈도우 초기 릴리스에 존재했다. MS-DOS 프로그램은 소프트웨어 인터럽트를 사용하고 (때로는 비디오 BIOS를 통해) 비디오 메모리를 직접 조작하여 그래픽 하드웨어를 조작했다. 이러한 방식으로 작성된 코드는 비디오 메모리의 유일한 사용자가 자신이라고 예상했지만, 이는 윈도우와 같은 컴퓨터 멀티태스킹 환경에서는 유지될 수 없었다. 1983년 12월 ''BYTE'' 잡지에서는 마이크로소프트가 곧 출시될 윈도우의 첫 번째 릴리스에서 동일한 코드로 프린터와 모니터에 모두 그래픽을 출력하는 시스템에 대한 계획을 논의했다고 보도했다.[2]2. 2. 윈도우 XP
윈도우 XP와 함께 도입된 C++ 기반의 '''GDI+'''는 GDI의 기능을 개선하였다. GDI+는 앤티 에일리어싱, 부동소수점 좌표 체계, 그라디언트, JPEG나 PNG 등의 이미지 포맷 지원(GDI에서는 지원되지 않음), 아핀 변환 등의 고급 2차원 그래픽 환경을 제공한다. GDI+는 색을 표현할 때 ARGB 값을 사용한다.[4] 이러한 기능들은 그림판, 윈도우 사진 및 팩스 뷰어, 내 그림 슬라이드쇼 등에서 확인할 수 있다. GDI+ 동적 라이브러리는 구 버전의 윈도우에서도 동작한다. GDI+는 애플사의 쿼츠 2D라는 하위 시스템과 유사하다.GDI+는 텍스트 처리 및 해상도 독립 기능이 추가되어, CPU가 텍스트 렌더링을 수행한다.[5] 이로 인해 하드웨어 가속 GDI보다 속도가 느려지는 경우가 있다.[6]
2. 3. 윈도우 비스타
윈도우 비스타에서는 GDI/GDI+ 응용 프로그램을 비롯한 모든 윈도우 응용 프로그램들이 윈도우 디스플레이 드라이버 모델의 최상위에 있는 새로운 컴포지션 엔진 데스크톱 창 관리자(DWM)에서 실행된다. GDI 렌더 경로는 데스크톱 창 관리자를 통해 연결되며, GDI는 더 이상 그래픽 카드 드라이버를 통해 하드웨어 가속을 하지 않는다.[39][40] 그러나 데스크톱 컴포지션(움직이는 비트맵과 투명도, GDI+의 앤티에일리어싱이 DWM 코어에서 관리됨)의 특성으로 인해 창 이동과 같은 기능들은 훨씬 더 빠르고 반응이 좋다. 콘텐츠가 응용 프로그램을 통해 다시 렌더링될 필요가 없기 때문이다.[39]2. 4. 윈도우 7
윈도우 7에는 GDI 하드웨어 가속이 추가되어 윈도우 디스플레이 드라이버 모델 v1.1의 기능을 제공한다. 이를 통해 DWM 엔진이 로컬 비디오 메모리를 사용하여 컴포지션을 수행할 수 있게 되어 시스템 메모리의 영향을 줄이고 그래픽 기능의 성능을 향상시킨다.[10] 2009년 4월, ATI와 엔비디아는 WDDM v1.1 호환 그래픽 드라이버를 공개하였다.Windows 7은 Windows 디스플레이 드라이버 모델 v1.1에서 블리팅 작업에 대한 GDI 하드웨어 가속을 포함한다. 이는 GDI 성능을 향상시키고 DWM이 로컬 비디오 메모리를 사용하여 합성을 수행할 수 있도록 하여 시스템 메모리 사용량을 줄이고 그래픽 작업의 성능을 향상시킨다. 그러나 기본 요소 GDI 작업의 대부분은 Direct2D와 달리 여전히 하드웨어 가속을 지원하지 않는다. GDI+는 Windows 7에서 소프트웨어 렌더링에 계속 의존한다.[10]
Windows 7 이후에는 GDI의 일부[25]가 다시 하드웨어 가속을 지원하게 되었지만, DWM이 활성화되어 있어야 한다.[26]
3. 기술적 세부 사항
GDI는 브레젠험의 선 그리기 알고리즘을 사용하여 앨리어싱된 선을 그린다.[1] GDI는 직선 및 곡선 그리기, 사각형 및 타원 그리기와 채우기, 비트맵 이미지 조작, 글꼴 관리 및 렌더링, 팔레트 제어[19] 등의 처리를 담당한다(gdi32.dll). 윈도우나 메뉴 등과 같은 상위 레벨의 그리기는 직접 관여하지 않으며, 더 상위의 user32.dll에 있는 사용자 서브 시스템에 맡겨진다.
GDI는 하드웨어에 직접 접근하는 장치 드라이버보다 상위에 위치하며, 장치의 기능적인 조정과 추상화가 GDI의 역할이다. GDI를 사용함으로써, 화면이나 프린터 등 다양한 장치에 쉽게 그릴 수 있으며, 각 장치에서 적절한 표시 결과를 기대할 수 있다. 이 기능은 Windows의 모든 WYSIWYG 애플리케이션의 핵심이다.
프리셀이나 지뢰 찾기 (Windows XP 이전)와 같이 빠른 그리기가 필요하지 않은 게임은 GDI를 사용했다. 그러나 GDI는 애니메이션을 잘 표시할 수 없고(프레임 버퍼 동기화 개념 없음), 3D 래스터화 기능이 없는 점도 있어, 게임 개발에는 적합하지 않다. 따라서 게임 개발에서는 일반적으로 2D/3D를 불문하고 하드웨어의 기능과 성능을 더 활용할 수 있는 DirectX (Direct2D/Direct3D)나 OpenGL, Vulkan이 사용된다.
Windows Vista에서는 GDI 애플리케이션은 새로운 렌더링 엔진인 Desktop Window Manager (DWM) 하에서 동작하며, GDI 콘텐츠는 일단 시스템 메모리상의 비트맵에 CPU로 그려지며, 하드웨어 가속은 사용되지 않는다. Windows 7 이후에는 GDI의 일부[25]가 다시 하드웨어 가속을 지원하게 되었지만, DWM이 활성화되어 있어야 한다.[26]
3. 1. 장치 컨텍스트
GDI에서 장치 컨텍스트(DC)는 출력 장치(예: 화면, 프린터)에 표시되는 텍스트 및 이미지의 속성을 정의한다. GDI는 실제 컨텍스트를 관리하며, 출력을 생성하려면 장치 컨텍스트에 대한 핸들(HDC)이 필요하다. 출력을 생성한 후에는 핸들을 해제할 수 있다.디바이스 컨텍스트는 그래픽을 그리는 대상을 추상화한 것이다. 관련된 그래픽 객체와 관련 속성의 집합으로 구성된다. 대부분의 GDI 객체처럼 디바이스 컨텍스트는 직접 데이터에 접근할 수 없지만, 이를 제어하고, 무언가를 그리고, 정보를 얻고, 객체를 변경하는 등 다양한 GDI 함수에 디바이스 컨텍스트를 전달할 수 있다.
장치 컨텍스트에는 다음과 같은 종류가 있다.
- 화면
- 프린터
- 메모리
- 정보 (인포메이션 컨텍스트)
이 중, 정보는 그리기에 사용할 수 없는 정보 획득 전용 장치 컨텍스트이다.
3. 2. 그래픽 객체
장치 컨텍스트에 연결할 수 있는 그래픽 객체에는 다음과 같은 종류가 있다. 이러한 객체들은 `SelectObject` 함수[27]나 `SelectPalette` 함수[28]를 통해 장치 컨텍스트에 연결할 수 있다.GDI 객체의 수는 1세션당 65,535개, 1프로세스당 10,000개로 제한되어 있다[29].
4. GDI 프린터
GDI 프린터(Winprinter)는 윈도우를 실행하는 호스트 컴퓨터에서 출력을 받도록 설계된 프린터이다. 호스트 컴퓨터가 모든 인쇄 처리를 수행한다. GDI는 페이지를 비트맵으로 렌더링하고, 프린터 드라이버는 이를 받아 처리하여 관련 프린터로 보낸다.[11][12] GDI와 드라이버의 조합은 양방향으로 작동하며, 인쇄 준비가 되었는지 또는 용지가 부족한지 등 프린터로부터 정보를 받는다.
GDI에 의존하지 않는 프린터는 페이지 렌더링을 위해 하드웨어, 펌웨어 및 메모리가 필요하지만, GDI 프린터는 호스트 컴퓨터를 이 용도로 사용한다. 그러나 자체 제어 언어를 가진 프린터는 적절한 드라이버가 있는 모든 장치로부터 입력을 받을 수 있는 반면, GDI 프린터는 윈도우를 실행하는 PC가 필요하다. GDI 프린터는 윈도우를 실행하는 컴퓨터에서 공유 프린터로 연결되면 네트워크상의 컴퓨터에서 사용할 수 있다. pnm2ppa
와 같은 일부 "일반" GDI 드라이버가 작성되었으며, 이러한 드라이버는 GDI 프린터를 FreeBSD와 같은 비 윈도우 운영 체제와 호환되도록 하는 것을 목표로 하지만, 모든 프린터를 지원할 수는 없다.[11]
윈프린터용 드라이버를 더 쉽게 만들 수 있도록 마이크로소프트 범용 프린터 드라이버(Microsoft Universal Printer Driver)가 개발되었다. 이를 통해 프린터 제조업체는 커널 모드 드라이버 개발을 수행하는 대신, 프린터의 기능과 명령 집합을 일반 텍스트로 설명하는 일반 프린터 설명(GPD) "미니 드라이버"를 작성할 수 있다.
GDI 프린터는 호스트 컴퓨터(PC) 측에서 처리의 일부를 대신 처리한다. 호스트 컴퓨터에서 비트맵 이미지를 렌더링하고 프린터로 비트맵을 전송한다. 이 방식의 장점과 단점은 다음과 같다.
장점 | 단점 |
---|---|
최신 잉크젯 프린터 모델은 GDI 기반이지만, 더 유연한 경향을 보인다. 많은 기종이 Mac을 지원하며, Linux 커뮤니티에서는 Linux용 드라이버 지원을 상당히 개선했다. 일부 (특히 세이코엡손)에서는 보다 전통적인 에뮬레이션을 예비로 제공하는 경우가 많다.
일반적으로 저렴한 레이저 프린터는 GDI 장치이지만, 많은 제조업체에서 PCL 또는 PostScript 또는 둘 다의 기능을 가진 모델을 제조하고 있다. GDI만 지원하는 프린터는 모든 제조업체에서 가장 저렴한 모델로 자리매김하고 있다.
5. 한계
각 창은 GDI 객체를 소비한다. 창의 복잡성이 버튼 및 이미지와 같은 추가 기능으로 증가함에 따라 GDI 객체 사용량도 증가한다. 너무 많은 객체가 사용 중일 때 윈도우는 더 이상 GDI 객체를 그릴 수 없어 소프트웨어가 오작동하고 프로그램이 정지되어 응답하지 않게 된다.[13] 많은 응용 프로그램도 잘못 코딩되어 사용 후 GDI 객체를 해제하지 못하여 문제를 더욱 악화시킨다.[14] GDI 용량 초과는 윈도우 자체에 영향을 미쳐 새 창이 열리지 않고, 메뉴가 표시되지 않으며, 경고 상자가 나타나지 않을 수 있다. 이 상황은 해결하기 어려울 수 있으며, 핵심 시스템 프로그램이 작동하지 않게 되므로 시스템을 강제로 재설정해야 할 수도 있다. Windows 8 및 8.1에서는 재부팅 대신 GDI 용량 초과의 결과로 강제 로그오프가 발생한다.
총 사용 가능한 GDI 객체 수는 윈도우 버전에 따라 다르다.
윈도우 버전 | GDI 객체 제한 |
---|---|
윈도우 9x | 총 1,200개 |
윈도우 2000 | 16,384개 |
윈도우 XP 이상 | 프로세스당 10,000개 (이론상 최대 65,536개, 레지스트리 설정 필요)[15][16] |
윈도우 8 이상 | 사용자 로그인 세션당 65,536개 |
6. Direct2D와 DirectWrite
Direct2D는 GDI와 GDI+의 후속 제품으로, Direct3D 10.1 위에 구축된 COM 기반의 고수준 API이다. GDI/GDI+에서 문제시되었던 그리기 속도 성능을 Direct3D에 의한 하드웨어 가속을 활용함으로써 대폭 개선하였다. Direct2D는 Direct3D 위에 구축되어 있기 때문에 DWM 사용 여부에 관계없이 하드웨어 가속된다.
DirectWrite는 유니스크라이브를 대체하며, OpenType 폰트 지원이나 수직 방향의 ClearType 앤티앨리어싱과 같은 기능을 갖추고 있다.[17]
GDI+에서 강화되었던 각종 형식의 이미지 파일 읽기 및 쓰기 기능은 Direct2D 컴포넌트가 직접 지원하지 않고, 대신 WIC(Windows Imaging Component)가 담당한다.
Direct2D는 기반이 되는 Direct3D와의 연계 기구가 확보되어 있어, Direct2D 1.0 API를 사용하여 DXGI 인터페이스를 통해 Direct3D 10.x 텍스처에 직접 쓰거나, Direct2D 1.1 API를 사용하여 Direct3D 11.x 텍스처에 직접 쓰는 것이 가능하다.
윈도우 7 및 윈도우 비스타 SP2 + Platform Update 이후에 제공되는 Direct2D 1.0에서는 인쇄 기능을 직접 지원하지 않으므로, 인쇄 시에는 GDI/GDI+ 또는 XPS 문서 API를 사용해야 한다. 하지만 윈도우 8 및 윈도우 7 SP1 + Platform Update 이후에 제공되는 Direct2D 1.1 이후부터는 메타데이터 출력 기능 등이 추가 구현되어, 그려진 내용을 프린터 장치로 출력하여 인쇄하는 것도 가능하다.[36][37]
참조
[1]
웹사이트
Comparing Direct2D and GDI Hardware Acceleration
https://docs.microso[...]
Microsoft
2018-05-31
[2]
뉴스
Device-Independent Graphics Output for Microsoft Windows
https://archive.org/[...]
2013-10-20
[3]
웹사이트
https://www.dosdays.[...]
[4]
URL
Platform SDK Redistributable: GDI+
http://www.microsoft[...]
[5]
웹사이트
2D Drawing APIs in Windows -
http://blogs.msdn.co[...]
MSDN Blogs
2012-07-19
[6]
웹사이트
GDI vs. GDI+ Text Rendering Performance
http://blogs.msdn.co[...]
Microsoft
[7]
URL
MSDN: Comparing Direct2D and GDI Hardware Acceleration
http://msdn.microsof[...]
[8]
URL
GDI is not hardware accelerated in Windows Vista
http://blogs.msdn.co[...]
[9]
URL
Layered windows...SW is sometimes faster than HW
http://blogs.msdn.co[...]
[10]
웹사이트
Introducing the Microsoft Direct2D API
https://blogs.techne[...]
2008-10-29
[11]
웹사이트
Generic GDI Printer
https://www.openprin[...]
The Linux Foundation
2021-07-21
[12]
웹사이트
Windows-only printers
https://www.tldp.org[...]
Linux Documentation Project
2019-10-29
[13]
URL
Microsoft Knowledgebase article 838283 - Desktop application menus are improperly displayed if a process exceeds its GDI object quota in Windows XP or in Windows 2000
http://support.micro[...]
[14]
URL
Microsoft Developer Network Blog - GDI leak in Outlook 2007 causes problems when GDI usage reaches 10,000 objects
http://blogs.msdn.co[...]
[15]
URL
Microsoft Developer Network - GDI Object limits
http://msdn.microsof[...]
[16]
URL
Microsoft Knowledge base Article 894500 - .NET programs designed on newer NT operating systems may malfunction on older Win 95 / Win 98 / Win ME due to lower GDI usage limits
http://support.micro[...]
[17]
웹사이트
Win2D
https://github.com/m[...]
Microsoft
2021-07-21
[18]
URL
Overview of the Windows Graphics Architecture - Win32 apps | Microsoft Learn
https://learn.micros[...]
[19]
URL
GDI Support for Palettes - Windows drivers | Microsoft Learn
https://learn.micros[...]
[20]
URL
What Is a Swap Chain? (Direct3D 9) - Win32 apps | Microsoft Learn
https://learn.micros[...]
[21]
URL
§Presentation Model : Comparing Direct2D and GDI Hardware Acceleration - Win32 apps | Microsoft Learn
https://learn.micros[...]
[22]
URL
WM_TIMER message (Winuser.h) - Win32 apps | Microsoft Learn
https://learn.micros[...]
[23]
URL
SetTimer function (winuser.h) - Win32 apps | Microsoft Learn
https://learn.micros[...]
[24]
URL
Windows Animation Manager - Win32 apps | Microsoft Learn
https://learn.micros[...]
[25]
URL
§GDI rendering in Windows 7 : Comparing Direct2D and GDI Hardware Acceleration - Win32 apps | Microsoft Learn
https://learn.micros[...]
[26]
URL
§Availability of Hardware Acceleration : Comparing Direct2D and GDI Hardware Acceleration - Win32 apps | Microsoft Learn
https://learn.micros[...]
[27]
URL
SelectObject function (wingdi.h) | Microsoft Docs
https://docs.microso[...]
[28]
URL
SelectPalette function (wingdi.h) | Microsoft Docs
https://docs.microso[...]
[29]
URL
Windows の限界に挑む: USER オブジェクトと GDI オブジェクト – 第 2 部
https://technet.micr[...]
[30]
웹사이트
GDI+
http://msdn.microsof[...]
マイクロソフト
2009-02-22
[31]
웹사이트
Platform SDK Redistributable: GDI+
http://www.microsoft[...]
マイクロソフト
2009-02-22
[32]
웹사이트
Download Platform SDK Redistributable: GDI+ from Official Microsoft Download Center
https://www.microsof[...]
Microsoft
2015-01-25
[33]
URL
System.Drawing Namespace | Microsoft Docs
https://docs.microso[...]
[34]
URL
About GDI+ Managed Code | Microsoft Docs
https://docs.microso[...]
[35]
URL
§GDI and Direct2D hardware acceleration : Comparing Direct2D and GDI Hardware Acceleration - Win32 apps | Microsoft Learn
https://learn.micros[...]
[36]
웹사이트
What's new in Direct2D - Win32 apps | Microsoft Learn
https://learn.micros[...]
[37]
웹사이트
Printing and command lists - Win32 apps | Microsoft Learn
https://learn.micros[...]
[38]
서적
Pro WPF 4.5 in C#: Windows Presentation Foundation in .NET 4.5
https://www.academia[...]
Apress
2012-11-27
[39]
블로그
GDI is not hardware accelerated in Windows Vista
http://blogs.msdn.co[...]
[40]
블로그
Layered windows...SW is sometimes faster than HW
http://blogs.msdn.co[...]
Avalite on MSDN Blogs
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com