GDI 편집하기


편집하면 당신의 IP 주소가 공개적으로 기록됩니다. 계정을 만들고 로그인하면 편집 시 사용자 이름만 보이며, 위키 이용에 여러 가지 편의가 주어집니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
1번째 줄: 1번째 줄:
{{다른 뜻|GDI (동음이의)|컴퓨터 용어}}
'''GDI'''란 그래픽 디바이스 인터페이스(Graphic Device Interface)의 약자로서 윈도우1.0부터 윈도우XP때까지 사용하였던 기본 2D 그래픽 라이브러리이다.
 
'''GDI'''란 그래픽 디바이스 인터페이스(Graphic Device Interface)의 약자로서 [[윈도우]] 1.0부터 [[윈도우 XP]] 때까지 사용하였던 기본 2D 그래픽 라이브러리이다.
 
기본적으로 C언어 함수와 각 오브젝트를 관리하는 구조체의 핸들로 이루어져 있다. 따라서 다양한 언어에서 함수를 바인딩하여 사용할 수 있다.
== 역사 ==
== 역사 ==
윈도우 이전의 [[운영 체제]]인 [[도스]]의 경우 그리는 것에 대한 지원이 없었기 때문에 각 [[그래픽 카드]]에 맞는 코드를 프로그래머가 직접 작성해 주어야 했다. 따라서 이는 응용프로그램/게임을 제작하는 제작자에게는 아주 무거운 짐이 되었다. 각 그래픽 카드에 맞는 모든 코드를 제작자가 작성하고, 그것을 프로그램에 넣어야 했기 때문이다.
윈도우 이전의 도스의 경우 그리는 것에 대한 지원이 없었기 때문에 각 그래픽 카드에 맞는 코드를 프로그래머가 직접 작성해 주어야 했다. 따라서 이는 응용프로그램/게임을 제작하는 제작자에게는 아주 무거운 짐이 되었다. 각 그래픽 카드에 맞는 모든 코드를 제작자가 작성하고, 그것을 프로그램에 넣어야 했기 때문이다.
 
GDI는 프로그래머가 그래픽카드에 직접 접근하지 않아도 2D 그리기를 할 수 있도록 만들어졌다.


이후 [[윈도우 비스타]]부터는 [[Direct2D]]에 이러한 역할이 옮겨졌고, GDI는 하위호환을 지원하기 위하여 남아있게 되었다. 여전히 [[윈도우 10]]에서 GDI를 이용한 2D그리기가 가능하다.
GDI는 그래픽카드에 않는, 프로그래머가 그래픽카드에 직접 접근하지 않아도 2D 그리기를 할 수 있도록 만들어졌다.


이후 윈도우 비스타부터는 Direct2D에 이러한 역할이 옮겨졌고, GDI는 하위호환을 지원하기 위하여 남아있게 되었다. 여전히 윈도우10에서 GDI를 이용한 2D그리기가 가능하다.
== 장점 ==
== 장점 ==
* 하드웨어를 추상화함
* 하드웨어를 추상화함
: 프로그래머가 하드웨어에 대해 자세히 알지 못해도 2D그리기를 할 수 있도록 작성되어 있다. 이는 프로그램의 독립성을 높이는 장점이 되었다.
: 프로그래머가 하드웨어에 대해 자세히 알지 못해도 2D그리기를 할 수 있도록 작성되어 있다. 이는 프로그램의 독립성을 높이는 장점이 되었따.


== 단점 ==
== 단점 ==
* 2D 그리기를 [[CPU]]에서 처리함
* 2D 그리기를 CPU에서 처리함
: 그래픽카드에 구애받지 않기 위해서 GDI는 그리는 동작을 전부 CPU에서 처리를 한다. 따라서 그리는 속도가 느렸으며, 그래픽카드의 계산속도가 빨라진 현재에 와서는 GDI의 이러한 동작은 단점이 되었다.
: 그래픽카드에 구애받지 않기 위해서 GDI는 그리는 동작을 전부 CPU에서 처리를 한다. 따라서 그리는 속도가 느렸으며, 그래픽카드의 계산속도가 빨라진 현재에 와서는 GDI의 이러한 동작은 단점이 되었다.
* 기능부족
* 기능부족
33번째 줄: 28번째 줄:
|GDI 2D그리기(CPU에서 계산)
|GDI 2D그리기(CPU에서 계산)
|
|
|DirectX 2D,3D그리기(GPU에서 계산) <br /> 레스터라이즈
|DirectX 2D,3D그리기(GPU에서 계산) <br/> 레스터라이즈
|-
|-
|↓
|↓
49번째 줄: 44번째 줄:
|colspan="3" |모니터
|colspan="3" |모니터
|}
|}
{{각주}}
[[분류:라이브러리]]
[[분류:API]]
[[분류:마이크로소프트]]
리브레 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포됩니다(자세한 내용에 대해서는 리브레 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
글이 직접 작성되었거나 호환되는 라이선스인지 확인해주세요. 리그베다 위키, 나무위키, 오리위키, 구스위키, 디시위키 및 CCL 미적용 사이트 등에서 글을 가져오실 때는 본인이 문서의 유일한 기여자여야 하고, 만약 본인이 문서의 유일한 기여자라는 증거가 없다면 그 문서는 불시에 삭제될 수 있습니다.
취소 편집 도움말 (새 창에서 열림)

| () [] [[]] {{}} {{{}}} · <!-- --> · [[분류:]] · [[파일:]] · [[미디어:]] · #넘겨주기 [[]] · {{ㅊ|}} · <onlyinclude></onlyinclude> · <includeonly></includeonly> · <noinclude></noinclude> · <br /> · <ref></ref> · {{각주}} · {|class="wikitable" · |- · rowspan=""| · colspan=""| · |}

이 문서에서 사용한 틀: