Microsoft DirectX 2



              

DirectDraw


Самое большое увеличение эффективности в DirectX 2 SDK происходит из-за DirectDraw, комбинации четырех моделей компонентных объектов (COM интерфейсов): IDirectDraw, IDirectDrawSurface, IDirectDrawPalette, и IDirectDrawClipper. Для большего количества информации относительно COM концепций см. Модель компонентных объектов

Объект DirectDraw, созданный использованием функции DirectDrawCreate, представляет собой плату адаптера дисплея. Один из методов объекта, IDirectDraw:: CreateSurface, создает основной объект DirectDrawSurface, который представляет память дисплея,  просматриваемую на мониторе. Из основной поверхности может быть создана вне экранная поверхность.

В наиболее общем случае, создается еще одна дополнительная буферная поверхность в дополнение к основной поверхности и обменивается изображениями с первичной поверхностью. В то время как экран занят показом изображения в основной поверхности, дополнительная поверхность заполняется фреймами. Это выполняется путем пересылки вне экранных растров, сохраненных в других объектах DirectDrawSurface в оперативной памяти дисплея. Метод IDirectDrawSurface:: Flip вызывается, когда фреймы размещены, регистры устанавливаются и происходит переключение, когда экран выполняет вертикальную развертку. Эта операция асинхронная, так что прикладная программа может продолжать обработку после вызова IDirectDrawSurface::Flip. (После того, как этот метод вызвался, обратный буфер автоматически блокирует запись до тех пор, пока не произойдет обмен .) После того как  произошел обмен, процесс продолжается: прикладная программа составляет следующий фрейм в обратном буфере, вызывает IDirectDrawSurface::Flip, и так далее.

DirectDraw эффективней чем GDI модель Windows 3.1. GDI модель Windows 3.1 не имела никакого прямого доступа к растрам в памяти дисплея. Бит-блиттинг всегда происходил в оперативной памяти системы и лишь затем перемещался в память дисплея, таким образом замедляя эффективность. В DirectDraw, вся обработка выполняется  на плате адаптера дисплея всегда, когда это возможно. DirectDraw также  эффективней GDI моделей Microsoft Windows 95 и Windows NT, которые используют функцию CreateDIBSection, чтобы разрешить аппаратную обработку.




Содержание  Назад  Вперед