В первоначальном варианте библиотеки DirectX
В первоначальном варианте библиотеки DirectX (еще в те времена, когда она называлась Game SDK) вся основная функциональность DirectDraw была сосредоточена в интерфейсе DirectDraw. Позднее, с выходом DirectX 2, рабочий интерфейс был усовершенствован. В соответствии со спецификацией COM интерфейс DirectDraw не изменился, а для работы с новыми возможностями использовался новый интерфейс DirectDraw2. Следует заметить, что интерфейс DirectDraw2 представляет собой расширение DirectDraw. Он предоставляет все возможности интерфейса DirectDraw, а также ряд дополнительных. При работе с DirectX версий 2 и выше можно выбирать между интерфейсом DirectDraw и DirectDraw2. Поскольку DirectDraw2 делает все то же, что и DirectDraw, а также многое другое, вряд ли можно найти какие-то доводы в пользу работы с DirectDraw. Кроме того, Microsoft выступает против хаотичного, непоследовательного использования этих интерфейсов. По этим причинам во всех программах, приведенных в книге, будет использован интерфейс DirectDraw2.
Ниже перечислены все функции интерфейсов DirectDraw и DirectDraw2 (в алфавитном порядке):
- Compact()
- CreateClipper()
- CreatePalette()
- CreateSurface()
- DuplicateSurface()
- EnumDisplayModes()
- EnumSurfaces()
- FlipToGDISurface()
- GetAvailableVidMem()
- GetCaps()
- GetDisplayMode()
- GetFourCCCodes()
- GetGDISurface()
- GetMonitorFrequency()
- GetScanLine()
- GetVerticalBlankStatus()
- RestoreDisplayMode()
- SetCooperativeLevel()
- SetDisplayMode()
- WaitForVerticalBlank()
Далее рассмотрены функции интерфейса DirectDraw. Обратите внимание на то, что в оставшейся части этой главы термин интерфейс DirectDraw относится как к интерфейсу DirectDraw, так и к DirectDraw2. Уточнения будут приведены лишь в тех случаях, когда функция отличается в двух интерфейсах.