Для использования DirectDraw нужно создать поверхность, на которой мы бдем рисовать. Просто перетащите компоненту
TDXDraw на вашу форму. Дайте ей имя DXDraw. В инспекторе объектов вы увидите 4 свойства, которые нас интересуют. Это Align, Autoinitialize, Display и Options.Установите свойство Align в alClient, т.к. мы хотим, чтобы весь экран стал поверхностью DirectDraw.
Autoinitialize всегда должно быть установлено в true, только если мы не хотим инициализировать поверхность вручную, для чего, наверное, нужно использовать метод DXDraw.Initialize в обработчике OnCreate формы.
Свойство Display поможет вам выбрать размер области рисования. Допустимые видеорежимы показаны в выпадающем списке. Для нашего примера установите свойство в 640x480x8.
Свойство Options дает доступ к 18 атрибутам. Таблица объясняет их назначение.
Атрибут | Описание |
doFullScreen | Запускает приложение в полноэкранном режиме. Видеорежим может быть указан в свойстве Display. |
doNoWindowChange | Если выбрана эта опция и doFullScreen, приложение сначала максимизирует свое окно, а затем устанавливает режим, указанный в свойстве Display. |
doAllowReboot | Определяет, можно ли в программе использовать комбинацию Alt+Ctrl+Del. Это полезно во время отладки. |
doWaitForBlank | Определяет, будет ли ожидаться вертикальная развертка при выполнении операции флиппинга. Опция немного уменьшает FPS. |
doAllowPalette256 | Будет ли использоваться 256-цветная палитра |
doSystemMemory | Определяет, использовать ли системную память вместо видеопамяти. Опция немного уменьшает FPS. |
doStretch | Если ваша игра использует область отображения большую (или меньшую), чем указано в свойстве Display, с помощью этой опции можно сжать (растянуть) изображение на весь экран. |
doCenter | Поверхность отобразится в центре экрана. |
doFlip | Применяется только для полноэкранных режимов. Если используется двойная буферизация и требуется отобразить буфер, то в случае установленной опции это происходит очень быстро (применяется операция флиппинга). Замечание: размер буфера должен равняться размеру основной поверхности. |
do3D | Позволено ли использовать 3D акселерацию |
doHadrware |
Если видеоадаптер поддерживает аппаратное ускорение типа 3D или 2D, то полезно установить опцию в true. |
doRetainedMode | Опция имеет эффект только если установлена опция do3D. Если опция равна true, используется режим Direct3D Retained, иначе - Immediate. |
doSelectDriver | В полноэкранном режиме определяет будет ли использоваться драйвер DirectDraw. Для Voodoo и подобных видеоадаптеров опция должна быть установлена в True. |
doDrawPrimitive | Использовать рисование примитивов. |
doZBuffer | Использовать ли Z-буфер. Эта опция может устранить некоторые проблемы с пропаданием объектов или наоборот, с появлением объектов, которые должны находиться на заднем плане. Требует часть процессорного времени. Некоторые карты поддерживают эту функцию аппаратно. |
doTexture | Будем ли мы использовать текстуры на 3D объектах? |
doRGB | Определяет, станет ли использоваться цветовая модель RGB. Может улучшить внешний вид 3D объектов, но отнимает процессорное время. Если карта аппаратно поддерживает эту функцию, опция не влияет на работу. |
doMono | Использовать ли черно-белую цветовую модель. |
doDither | Определяет будет ли подбираться ближайший цвет из палитры, если в ней не окажется запрашиваемого нами цвета. В основном используется с атрибутом doAllowPalette256. |
Наши установки буду выглядеть следующим образом:
Остальные атрибуты оставлены как есть.