죄송합니다. 그렇다면; 해당 사이트로 자유롭게 이동하십시오.
DirectX 또는 OpenGL과 같은 GPU와 통신하기 위해 낮은 수준의 API를 사용하지 않고 GDI/GDI +를 그래픽 카드 (화면의 콘텐츠 표시)로 렌더링하는 방법은 무엇입니까? API를 사용하지 않으면 어떻게 화면에 그려 집니까? 예; 이미지가 합성되어 CPU에 렌더링되었지만 모니터에 표시되기 전에 어느 정도 GPU로 전송되어야한다는 것을 알고 있습니다. 이게 어떻게 작동합니까?GDI/GDI +가 OpenGL 또는 DirectX없이 작동하는 방식
9
A
답변
12
GDI 프리미티브는 비디오 카드 드라이버에서 구현됩니다. 비디오 드라이버는 GPU 제조업체가 제공하며 독점적 인 레지스터 레벨 인터페이스를 사용하여 GPU와 통신하며이 레벨에서는 공개 API가 필요하지 않습니다.
귀하가 알고 계신 것과는 반대로 이미지는 일반적으로 CPU에서 완전히 렌더링되고 합성되지 않습니다. 오히려 비디오 드라이버는 CPU와 GPU 프로세싱의 조합을 자유롭게 사용할 수 있으며 일반적으로 많은 수의 GDI 명령 (특히 비트 블록 전송, 블리 팅)이 GPU에 위임됩니다.
독점 인터페이스는 OpenGL 클라이언트 드라이버와 DirectX 드라이버를 지원할만큼 강력해야하므로 GDI 드라이버가 실행을 위해 GPU에 명령을 전달할 수 있다는 것은 놀라운 일이 아닙니다. 부팅시 초기
(및 Windows 설치)에는 제조업체 별 드라이버를 사용할 수없는 경우, 비디오 API는 소프트웨어의 모든 렌더링을 수행하고 GPU의 RAMDAC을 공급 단지 메모리 영역 인 프레임 버퍼에 기록 않습니다 CPU 주소 공간에 매핑됩니다. 프레임 버퍼는 몇 가지 잘 알려진 형식 중 하나 (VESA로 정의 됨)에 저장됩니다.
관련 문제
- 1. MySQL에서 비교에서 curdate()가 작동하는 방식
- 2. 메신저 (IM)가 작동하는 방식 (듣기)?
- 3. JqueryMobile에서 CSS가 작동하는 방식
- 4. django 로케일이보기간에 작동하는 방식
- 5. 설명 CRF (조건부 난수 필드)가 예제를 사용하여 작동하는 방식
- 6. MVC 패턴이 ZKoss에서 작동하는 방식
- 7. MVC에서 Asp.net MasterPage가 작동하는 방식
- 8. DropDownListFor가 MVC3에서 작동하는 방식 이해
- 9. C#에서 새로운 키워드가 작동하는 방식
- 10. magento 지불 과정 .. 일반적으로 작동하는 방식
- 11. SQL 서버 2005에서 Serializable이 작동하는 방식
- 12. 경로가 css 및 js에서 작동하는 방식
- 13. 웹 응용 프로그램에서 보안 인증이 작동하는 방식
- 14. OpenGL 또는 OpenGL ES
- 15. iPhone 3G/iPhone 4에서 작동하는 OpenGL 조명
- 16. JQuery 데이터 유효성 검사 플러그인이 제출 작업에서 작동하는 방식
- 17. 프로그래머보기가 아닌 최종 사용자 측에서 wcf가 작동하는 방식
- 18. UIImage의 drawPatternInRect :가 Views 컨텍스트에서만 작동하는 이유
- 19. AJAX 요청이 Android 2.2와 Android 2.2에서 작동하는 방식
- 20. Rx 프레임 워크에서 linq 구문이 IQueryable 인터페이스에서 작동하는 방식
- 21. 코어 애니메이션 또는 OpenGL?
- 22. 캔버스 또는 OpenGL ES?
- 23. java.util.Time.scheduleXXX()가 중재자 패턴으로 작동하는 방법은 무엇입니까?
- 24. iOS/openGL ES - drawRect를 재정의하면 OpenGL 함수 "glGetRenderbufferParameterivOES"가 잘못되었습니다.
- 25. pyglet을 구현하면 한 번 작동하는 프레임 버퍼 OpenGL 코드가 깨집니다.
- 26. GLSL OpenGL ES 2에서 이전 출력에서 작동하는 쉐이더를 작성하려면 어떻게해야합니까?
- 27. ".is"가 이전 버전의 Internet Explorer에서 작동하는 방법
- 28. C++ 집합 또는 priority_queue처럼 작동하는 C# 모음?
- 29. IE 또는 Firefox에서 작동하는 코드에 문제가있는 경우
- 30. 가
그래서 GDI는 Direct3d 또는 OpenGL 레벨에 배치되지만 (창 기반 도면에 필요한 API 만 구현하지만) 이들과 병렬 (서로를 사용하지 않음)합니다. 내가 맞습니까? – SerG
@SerG : 대다수. 비디오 드라이버는 하나의 명령 집합 만 하드웨어에 구현하고 나머지는 다른 명령 집합에 자유롭게 배치하거나 명령 집합 중 하나와 완전히 일치하지 않는 명령 집합을 가질 수 있지만 API는 별도로 구현되어 있습니다. 독점 API/명령 세트의 맨 위에있는 레이어입니다. 최근 버전의 Windows에서는 또한 GDI 및 GDI +를 오프 스크린 표면에 렌더링 한 다음 DirectX를 사용하여 전체 이미지를 합성합니다. 그러나 애플리케이션 측면에서 보면 완전히 분리되어 있습니다. –