DirectShow 보유 멀티미디어 스트리밍 멀티미디어 스트리밍 인터페이스 IDirectDraw   [목차열람] [주소복사] [슬롯비우기]
IDirectDraw 인터페이스
 
Microsoft DirectX 9.0

IDirectDraw 인터페이스

IDirectDraw 인터페이스는, DirectShow 멀티미디어 스트리밍 API 로 사용되는 DirectDraw 개체상에서 공개되지만, 편의상 DirectShow 의 문서에 포함되어 있다.

DirectDraw 개체는 디스플레이 하드웨어를 나타낸다. 이 개체가 인스턴스화하는 디스플레이 장치가 하드웨어 가속화 기능을 가지고 있는 경우, 이 개체는 하드웨어에 의해 액셀러레이트 된다. DirectDraw 개체에 의해 생성 할 수 있는 개체는, DirectDrawSurface 개체, DirectDrawPalette 개체, DirectDrawClipper 개체의 3 개이다.

DirectDraw 개체는, 생성 하는 모든 개체를 관리한다. 이 개체는, 1차 표면이 8 bpp 모드인 경우의 디폴트의 팔레트, 디폴트의 컬러 키값, 하드웨어의 디스플레이 모드를 제어한다. 또, 할당하고 끝난 리소스와 지금부터 할당하는 리소스도 식별된다.

디스플레이 모드의 변경은, DirectDraw 의 중요한 기능의 1 개이다. 디스플레이 모드의 해상도는, 다른 애플리케이션이 배타적으로 DirectDraw 에 액세스 하고 있지 않는 한, 언제라도 변경할 수 있다. 디스플레이 모드의 픽셀 깊이는, 변경을 요구하고 있는 애플리케이션이 DirectDraw 개체에 배타적으로 액세스 하고 있는 경우에만 변경할 수 있다. 디스플레이 모드를 변경 하면, 모든 DirectDrawSurface 개체는 표면 메모리를 잃어, 기능하지 않게 된다. 이러한 표면의 메모리는,Restore 메서드를 사용해 재할인 맞히고 할 필요가 있다.

IUnknown 로부터 계승한 메서드에 가세해,IDirectDraw 인터페이스는 다음의 메서드를 공개한다.

메서드 설명
Compact 아직 처리되지 않다.
CreateClipper DirectDrawClipper 개체를 생성 한다.
CreatePalette 이 DirectDraw 개체에 대한 DirectDrawPalette 개체를 생성 한다.
CreateSurface 이 DirectDraw 개체에 대한 DirectDrawSurface 개체를 생성 한다.
DuplicateSurface DirectDrawSurface 개체를 복제한다.
EnumDisplayModes 하드웨어가 DirectDraw 개체를 개입시켜 공개하는 디스플레이 모드 가운데, 제공된 표면 기술과 호환성이 있는 모든 디스플레이 모드를 열거한다.
EnumSurfaces 지정된 검색 기준에 맞는, 기존의 또는 가능한 표면을 모두 열거한다.
FlipToGDISurface GDI 가 기입하는 표면을 1차 표면으로 한다.
GetCaps 장치 드라이버 (하드웨어)나 하드웨어 에뮬레이션 계층 (HEL)의 미처리 (미해결이 아니다) 능력을 저장 한다.
GetDisplayMode 현재의 디스플레이 모드를 돌려준다.
GetFourCCCodes DirectDraw 개체에 의해 지원 되는 FourCC 코드를 얻어온다.
GetGDISurface GDI 가 1차 표면으로서 처리하는 표면 메모리를 현재 나타내고 있는 DirectDrawSurface 개체를 돌려준다.
GetMonitorFrequency DirectDraw 개체가 동작하는 모니터의 주파수를 돌려준다.
GetScanLine 모니터상에서 현재 드로잉(Drawing) 되고 있는 주사선을 돌려준다.
GetVerticalBlankStatus 수직 동기 상태를 돌려준다.
Initialize DirectDraw 개체를 초기화한다.
RestoreDisplayMode 1차 표면의 디스플레이 장치 하드웨어의 모드를,SetDisplayMode 메서드가 변경하기 전 상태에 리셋 한다.
SetCooperativeLevel 애플리케이션의 최상정도 동작을 결정한다.
SetDisplayMode 디스플레이 장치 하드웨어의 모드를 설정한다. 모드를 변경하기 전에,SetCooperativeLevel 를 사용해 배타 레벨의 액세스를 설정할 필요가 있다.
WaitForVerticalBlank 호출원이 수직 동기 간격과 동기 할 수 있도록(듯이) 한다.

↑TOP