Delphi GFX

       

Создание поверхности


Для использования 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.
Замечание: Если опция установлена в true, а видеокарта не поддерживает акселерацию, опция будет установлена в false. это можно использовать для определения поддержки аппаратного ускорения.

doRetainedMode Опция имеет эффект только если установлена опция do3D. Если опция равна true, используется режим Direct3D Retained, иначе - Immediate.
doSelectDriver В полноэкранном режиме определяет будет ли использоваться драйвер DirectDraw. Для Voodoo и подобных видеоадаптеров опция должна быть установлена в True.
doDrawPrimitive Использовать рисование примитивов.
doZBuffer Использовать ли Z-буфер. Эта опция может устранить некоторые проблемы с пропаданием объектов или наоборот, с появлением объектов, которые должны находиться на заднем плане. Требует часть процессорного времени. Некоторые карты поддерживают эту функцию аппаратно.
doTexture Будем ли мы использовать текстуры на 3D объектах?
doRGB Определяет, станет ли использоваться цветовая модель RGB. Может улучшить внешний вид 3D объектов, но отнимает процессорное время. Если карта аппаратно поддерживает эту функцию, опция не влияет на работу.
doMono Использовать ли черно-белую цветовую модель.
doDither Определяет будет ли подбираться ближайший цвет из палитры, если в ней не окажется запрашиваемого нами цвета. В основном используется с атрибутом doAllowPalette256.

Наши установки буду выглядеть следующим образом:

  • doFullScreen=False (программа будет стартовать в обычном окне)
  • doAllowReboot=True (Возможно, возникнет ситуация, когда нам нужно будет снять задачу из-за ошибок)
  • doWaitVBlank=True/False (Попробуйте оба значения. Возможно, вы получите приемлемое качество при установке False, при этом возрастет FPS)
  • do3D=False (Наше приложение будет использовать только 2D)
  • doHardware=True (Нам нужно определить, поддерживает ли аппаратура акселерацию.)

Остальные атрибуты оставлены как есть.



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