Режимы Mode X и Mode 13

"Теория DirectDraw"

<Уголок DirectX>


DirectDraw поддерживает режимы экрана Mode X и Mode 13.

Mode 13 - это линейный, не поддерживающий флиппинг, палетизированный режим 320x200x8, получивший свое название по своему шестнадцатиричному номеру 13 в BIOS.

DirectDraw может дать приложению в этом режиме прямой доступ к буферу кадра. В отличие от Mode X вы можете вызывать методы DirectDrawSurface7.Lock, Blt и BltFast, для прямого доступа к главной поверхности.

Mode X - это гибрид, получившийся из стандартного VGA режима Mode 13. Этот режим позволяет использовать до 256 килобайт памяти (в отличии от 64 килобайт Mode 13). DirectDraw позволяет работать в двух режимах Mode X (320x200x80 и 320x240x8) для всех видеокарт.

Некоторые видеокарты также поддерживают линейные режимы низкого разрешения. В этих режимах главная поверхность может быть блокирована и иметь возможность прямого доступа к ней. Это невозможно в режиме Mode X.

Режим Mode X доступен только если приложение использует флаги DDSCL_ALLOWMODEX, DDSCL_FULLSCREEN, и DDSCL_EXCLUSIVE, когда устанавлиевается cooperative level. Если флаг DDSCL_ALLOWMODEX не указан, DirectDraw7.GetDisplayModesEnum не будет находить Mode X, а DirectDraw7.SetDisplayMode вообще работать не будет. В прежиме Mode X вы не можете использовать методы DirectDrawSurface7.Lock или DirectDrawSurface7.Blt. Также вы не можете использовать метод DirectDrawSurface7.GetDC для главной поверхности или GDI с экранным DC.

Mode X обозначается флагом DDSCAPS_MODEX в типе DDSCAPS2, который является частью типа DDSURFACEDESC2, возвращаемым функцией DirectDrawSurface7.GetCaps и DirectDrawEnumModes.


>>> Реклама <<<