LUC1EL: BLOG

Demoforge DFMirage Mirror Display Driver >> Delphi 본문

소프트웨어 개발/개발환경, 툴, 스크립팅

Demoforge DFMirage Mirror Display Driver >> Delphi

LUC1EL 2009. 12. 23. 18:12
데모포지의 미러 드라이버를 사용하기 위한 파스칼용 유닛.

TVideoDriver가 해당 클래스이고, TightVNC의 CVideoDriver를 그대로 포팅한 듯 하다.

파스칼에서 쓸 때(델파이) 오류가 부분 발생한다는 글을 본적이 있는데, 글쎄 오류 발생의 이유가 유닛의 잘못된 포팅인지 개발자의 실수인지 알아봐야겠다.

미러 드라이버의 강점은, 윈도우의 화면 업데이트마다 커널모드에서 감시하여 해당 영역만큼만 새로 업데이트 하는 것으로 알고 있다. 그러므로 원격제어 솔루션 같은 곳에 쓰이는 기술로는 아주 막강한 기술이다.

매번 GDI를 이용한 캡쳐를 하여 화면을 압축하여 전송하는 것보다 업데이트 영역과 업데이트된 부분만 압축하여 전송하는 것 차이가 얼마나 큰지 보지 않아도 느낄 것이다. GDI 역시도 WM_PAINT를 후킹하면 된다지만, 게임가드 같은 API 훅으로 제한된 상태라면 미러드라이버를 쓰는 것이 가장 훌륭한 대안이라 생각한다.

하지만 마이크로소프트 개발자 뉴스그룹에서 다이렉트 X 가속 환경과 동영상 플레이 같은 경우에도 미러드라이버로 캡쳐 가능하다고 하였으나, 내가 확인한 바로 데모포지의 미러드라이버는 동영상 캡쳐가 안되었다. 다이렉트 X를 사용한 게임 대부분을 캡쳐하는 것은 확인하였다.

캡쳐보드등의 오버레이 기술을 사용하는 것 역시도 캡쳐가 안되었다.
해당 캡쳐보드 구동 소프트웨어에서 소프트웨어적인 드로잉를 하면 캡쳐는 가능했다. (TV수신프로그램)

미러드라이버 유닛:


DFMIRAGE 1.2 SDK 문서:
데모포지에서 배포하는게 1.1.xx.x 버전 범위인데, 이 문서는 1.2 SDK 문서란다. 도대체 버전 체계가 어찌 된건지 =_=


링크:
http://www.demoforge.com