function FPS: Integer
Возвращает текущий показатель FPS. Меняется не чаще, чем раз в секунду.
procedure VSync(Active: Boolean)
Включение/отключение вертикальной синхронизации. Установит верхний предел FPS близкой к частоте монитора.
function VSync: Boolean
Возвращает выставленное значение синхронизации.
procedure Clear(Color, Depth, Stencil: Boolean)
Очистка буфера цвета/глубины/трафарета. Полностью аналогична вызову glClear.
procedure Swap
Вывод содержимого BackBuffer'а на экран
procedure AntiAliasing(Samples: Integer)
Задаёт степень сглаживания. Samples должна принимать значения 2, 4, 8, 16... Рекомендуемое - 4. Функция должна вызываться до создания главного окна и инициализации OpenGL (IWindow.Create). В случае невозможности установки заданной степени сглаживания, выбирается предыдущее по величине значение, вплоть до нуля.
function AntiAliasing: Integer
Возвращает установленный режим сглаживания. Значение корректно только после создания окна и инициализации OpenGL (IWindow.Create)
procedure Set2D(x, y, w, h: Single)
Установка ортогональной проекции. Используется для вывода 2D примитивов.
procedure Set3D(FOV, zNear, zFar: Single)
Установка перспективной проекции. FOV - угол обзора, zNear, zFar - ближняя и дальняя плоскости отсечения. Чем больше zFar/zNear тем точнее работа с буфером глубины.
function Light: ILight;
Возвращает интерфейс для работы с источником света
procedure Enable(ID: Integer)
Включает источник под номером ID (0..7).
procedure Disable(ID: Integer)
Отключает указанный источкник света.
procedure Position(ID: Integer; Pos: TVec3f)
Установка позиции источника света (всего 8 штук). В качестве ID принимается GL_LIGHT0 + N, где N - номер источника света [0..7]
procedure Diffuse(ID: Integer; Color: TRGBA)
Установить основной цвет освещения источника.
procedure Ambient(Color: TRGBA)
Установить цвет затенения от источника.
function Font: IFont
Возвращает интерфейс для работ с шрифтом
procedure TextOut(Font: TFont; X, Y: Single; Text: PChar)
Вывод текста на экран в указанной позиции. При Font = 0 используется стандартный debug шрифт движка (FixedSys). Перед выводом текста рекомендуется установить ортогональную проекцию. Освещение, тест глубины и отличный от BT_SUB блендинг не применяется.
function TextLen(Font: TFont; Text: PChar): Integer
Получение длины строки текста Text с шрифтом Font.
procedure Blend(BType: TBlendType)
Режим смешивания. Надстройка над glBlendFunc, значения параметра:
BT_NONE
отключить смешивание
BT_SUB
стандартный режим смешивания по Alpha компонентам
BT_ADD
режим сложения цветов
BT_MULT
умножение цветов
function ScreenShot(FileName: PChar): Boolean
Сохранение текущего изображения на экране в графический файл формата bmp или tga по выбору.
function Create(Name: PChar; c, f, W, H: Integer; Data: Pointer; Clamp, MipMap: Boolean; Group: Integer): TTexture
Создаёт текстуру с заданными параметрами по битовому массиву. Имя текстуры должно быть уникальным (или nil), чтобы обеспечить корректную работу менеджера. с - количество компонент цвета (1, 3, 4, GL_RGB8...), f - формат цвета (GL_RGB, GL_BGR...). Group является битовым (1, 2, 4, 8...) идентификатором группы к которой принадлежит текстура. Рекомендуется использовать текстуры размером 2^N не превышающим максимально поддерживаемый видеокартой (до 1024 - используйте смело :) Если загрузка текстуры не удалась, функция возвращает 0.
function Load(FileName: PChar; Clamp, MipMap: Boolean; Group: Integer): TTexture
Загрузка текстуры из графического файла формата tga, bmp, jpg и gif. Сжатые RLE кодированием tga - не поддерживаются! Для анимированных gif загрузится только первый кадр. Параметры имеют то же значение, что и в функции Create. Формат файла текстуры определяется по имени файла.
function Load(Name: PChar; Mem: Pointer; Size: Integer; Clamp, MipMap: Boolean; Group: Integer): TTexture;
Загрузка текстуры из блока памяти по адресу Mem размером равным Size. Полностью аналогична предыдущей. По окончанию Name определяется формат загружаемой текстуры (tga, bmp, jpg, gif).
function Load(FileName: PChar; var W, H, BPP: Integer; var Data: Pointer): Boolean
Загрузка данных текстуры (массива пикселей) в буфер Data (память выделяется автоматически). Возвращяет ширину (W), высоту (H), количество бит на пиксель (BPP) и указатель на данные. Результат работы функции равен True при успешной загрузке.
function Load(Name: PChar; Mem: Pointer; Size: Integer; var W, H, BPP: Integer; var Data: Pointer): Boolean
Аналог предыдущей, только загрузка осуществляется из участка памяти.
procedure Free(var Data: Pointer)
Освобождение памяти под данные текстуры выделенной предыдущими двумя функциями. После выполнения Data приравнивается к nil.
procedure Free(ID: TTexture)
Высвобождение памяти под текстуру. При условии, что количество указателей на текстуру равно нулю.
procedure Enable(ID: TTexture; Channel: Integer)
Включение текстуры для заданного текстурного блока (количество ограничивается видеокартой)
procedure Disable(Channel: Integer)
Отключение текстуры для блока.
procedure Update_Begin(Group: Integer)
Обновление группы текстур. При этом все текстуры группы помечаются специальным флагом, который снимается в случае повторной загрузки текстуры. Group является битовым флагом, т.е. может содержать в себе до 30 групп. При Group = -1 функция помечает все текстуры.
procedure Update_End(Group: Integer)
Удаление всех помеченных флагом текстур указанной группы. Параметр -1 действует для всех групп текстур.
procedure Filter(FilterType: Integer; Group: Integer)
Установка режима фильтрации для группы (битовый флаг):
FT_NONE
Отключить фильтрацию
FT_BILINEAR
Билинейная фильтрация.
FT_TRILINEAR
Трилинейная фильтрация для текстур с MipMap уровнями, для остальных - обычная билинейная.
FT_ANISOTROPY
Анизотропная фильтрация, показывает лучшее качество изображения т.к. зависит от угла обзора. Выставляется максимально возможный уровень.
function Render_Init(TexSize: Integer): Boolean
Инициализация FBO (Frame Buffer Object) для дальнейшего использования при рендеринге в текстуру. TexSize указывает на размер текстуры передаваемой на рендеринг. При нулевом размере - происходит высвобождение ресурсов под color и depth буферы.
procedure Render_Copy(ID: TTexture; X, Y, W, H, Format: Integer; Level: Integer)
Копирует содержимое BackBuffer'а в текстуру. Операция не быстрая, но в некоторых случаях может пригодиться. XY - координаты начала области копирования, WH - размеры текстуры, Format - формат текстуры, Level - MipMap уровень (если таковой имеется) в который производится копирование.
procedure Render_Begin(ID: TTexture; Mode: TTexMode)
Начинает рендеринг цвета или глубины в текстуру ID. Всё что следует после вызова этой функции будет выведено в текстуру, а не на экран. Внимание! Нельзя в рендере использовать текстуру в которую в это время производится вывод! %)
procedure Render_End
Окончить рендеринг в текстуру. После этого полученную текстуру можно использовать по собственному усмотрению.
function Load(FileName: PChar; Group: Integer): TSound
Загрузка сэмпла из несжатого стандартного Microsoft wav файла без дополнительных chunk'ов (cue и т.п.)
function Load(Name: PChar; Mem: Pointer; Size: Integer; Group: Integer): TSound
Аналогична предыдущей за исключением того, что загрузка происходит из области памяти по адресу Mem размером Size
function Free(ID: TSound): Boolean
Удалить сэмпл из памяти, в случае если количество ссылок на него равно нулю (иначе уменьшить счётчик на 1)
function Play(ID: TSound; X, Y, Z: Single; Loop: Boolean): TChannel
Начать проигрывание сэмпла. XYZ - позиция, Loop - повторять проигрывание "бесконечно".
procedure Stop(ID: TChannel)
Останавливает канал (сэмпл).
procedure Update_Begin(Group: Integer)
Аналогично ITexture.Update_Begin
procedure Update_End(Group: Integer)
Аналогично ITexture.Update_End
procedure Volume(Value: Integer)
Установка громкости звука всех сэмплов [0..100]
procedure Freq(Value: Integer)
Установка общей частоты звучания. Предполагается, что для нормальной скорости проигрывания, все сэмплы должны иметь ту же частоту, что задаётся этой функцией (22050 Hz по умолчанию)
procedure Channel_Pos(ID: TChannel; X, Y, Z: Single)
Установка 3D позиции источника звука.
procedure Pos(X, Y, Z: Single)
Установка позиции слушателя.
procedure Dir(dX, dY, dZ, uX, uY, uZ: Single)
Изменение ориентации "головы" слушателя. dXYZ - вектор направления, uXYZ - вектор направленный вверх (относительно)
procedure Factor_Pan(Value: Single)
Коэффициент панорамы
procedure Factor_Rolloff(Value: Single)
Коэффициент затухания звука (громкость) в зависимости от расстояния.
procedure PlayFile(FileName: PChar; Loop: Boolean)
Проигрывает мультимедийные файлы (звук, видео) формата wav, mp3, ogg, avi, mpg и др. Loop - повтор проигрывания после окончания.
procedure PlayFile(Mem: Pointer; Size: Integer; Loop: Boolean)
Проигрывание данных медиа файла из памяти (потока). Работает только для Ogg файлов.
procedure StopFile
Остановить проигрываемый мультимедийный файл.
function Create(X, Y, Z: Single): TVec3f
Возвращает запись-вектор по 3 координатам.
function Create(X, Y: Single): TVec2f
Возвращает двухмерный вектор по 2 координатам.
function Add(v1, v2: TVec3f): TVec3f
Векторная сумма.
function Sub(v1, v2: TVec3f): TVec3f
Разность двух векторов.
function Mult(v: TVec3f; x: Single): TVec3f
Произведение координат вектора на число.
function Length(v: TVec3f): Single
Длина вектора.
function LengthQ(v: TVec3f): Single
Квадрат длины вектора (работает на порядок шустрее предыдущей)
function Normalize(v: TVec3f): TVec3f
Нормализация вектора (приведение к единичному)
function Dot(v1, v2: TVec3f): Single
Скалярное произведение двух векторов.
function Cross(v1, v2: TVec3f): TVec3f
Векторное произведение.
function Angle(v1, v2: TVec3f): Single
Угол между двумя векторами (можно не единичные)