GDI_Object

AKA GDI 객체, GDI 오브젝트

그래픽을 구현하는 데 쓰이는 펜, 브러시, 비트맵, 폰트 등을 저장

기본적으로 제공되는 스톡 오브젝트(Stock_Object)가 있다. 이것은 GetStockObject 함수로 얻어 올 수 있다. GetStockObject로 얻은 오브젝트를 DC에 대입하려면 SelectObject를 쓴다. GDI 오브젝트를 사용 후 삭제하려면 DeleteObject 함수를 쓴다.

예: 밝은 회색 브러시를 얻어온 후 DC에 대입하기
currentBrush = (HBRUSH)GetStockObject(LTGRAY_BRUSH);
oldTypeBrush = (HBRUSH)SelectObject(hdc, currentBrush);






Up: WinAPI


DOS시절엔 graphics card(이른바 'CGA, EGA, VGA, SVGA, 그리고 SVGA도 표준인 VESA가 너무 늦게 나와서(? chk) 수많은 표준이 난립하는...')를 detect하여 카드별로 별도의 처리를 해야 했다... 너무 번거롭고 힘들다.
그래서 하드웨어 독립적인 graphics 환경이 필요해서 GDI가 만들어진 것?
WinXP부터 GDI+? chk
현재는 하드웨어 가속 등의 이슈로 인해 DirectX 성능이 더 좋다?

GDI는 응용프로그램(application)과 장치드라이버(device_driver)사이의 역할을 하며, Windows_kernel 에 포함?


Compare:
Apple_QuickDraw ... Google:Apple_QuickDraw
DirectX > Direct2D
DirectX > DirectWrite

... Google:windows gdi
}