Интерфейсы DirectDrawSurface
Множественные интерфейсы DirectDrawSurface, как и интерфейсы DirectDraw, возникли из-за особенностей спецификации COM. В исходном варианте работа с поверхностями осуществлялась через интерфейс DirectDrawSurface. В DirectX 2 появились новые функциональные возможности, представленные интерфейсом DirectDrawSurface2, а в DirectX 5 возник интерфейс DirectDrawSurface3.
Хотя в этой книге вместо DirectDraw повсюду используется интерфейс DirectDraw2, для работы с поверхностями мы будем придерживаться исходного интерфейса DirectDrawSurface, потому что нововведения интерфейсов DirectDrawSurface2 и DirectDrawSurface3 не слишком важны. В оставшейся части книги термин интерфейс DirectDrawSurface будет обозначать все три интерфейса, если при этом не возникает двусмысленности.
Самый большой из всех интерфейсов DirectDraw, DirectDrawSurface, позволяет копировать и стирать содержимое поверхности, а также напрямую работать с ним из программы. В общей сложности он поддерживает 36 функций, перечисленных ниже (в алфавитном порядке):
- AddAttachedSurface()
- AddOverlayDirtyRect()
- Blt()
- BltBatch()
- BltFast()
- DeleteAttachedSurface()
- EnumAttachedSurfaces()
- EnumOverlayZOrders
- Flip
- GetAttachedSurface()
- GetBltStatus()
- GetCaps()
- GetClipper()
- GetColorKey()
- GetDC()
- GetDDInterface()
- GetFlipStatus()
- GetOverlayPosition()
- GetPalette()
- GetPixelFormat()
- GetSurfaceDesc()
- IsLost()
- Lock()
- PageLock()
- PageUnlock()
- ReleaseDC()
- Restore()
- SetClipper()
- SetColorKey()
- SetOverlayPosition()
- SetPalette()
- SetSurfaceDesc()
- Unlock()
- UpdateOverlay()
- UpdateOverlayDisplay()
- UpdateOverlayZOrder()