ZenGL/ru

From Free Pascal wiki

Deutsch (de) English (en) español (es) français (fr) русский (ru)


ZenGL/ru | Tutorial 1 | Tutorial 2 | Tutorial 3 | Edit

О ZenGL

ZenGL - кросс-платформенная библиотека, разработанная, чтобы обеспечить необходимый функционал для отрисовки двухмерных игр, обработки устройств ввода, воспроизведение звука и музыки.

  • Поддерживаемые ОС: GNU/Linux(32/64), Windows(32/64), macOS(Carbon/Cocoa), iOS, Android 2.1+
  • Компиляторы: Free Pascal, Delphi
  • Графические API: OpenGL, OpenGL ES 1.x, Direct3D 8/9
  • Аудио API: OpenAL, DirectSound
  • Лицензия: zlib

В данное время библиотека дорабатывается.

Ссылки

Обучающие примеры

Внимание! Все примеры содержатся в скачиваемой версии библиотеки (в новых версиях они могут незначительно, но критично для работы разрабатываемой программы, отличаться).

ZenGL Tutorial: Первый пример для ZenGL знакомит с самой библиотекой. Рассказывается о том как скачать, установить библиотеку. Настроить компилятор (среду разработки) для компиляции проектов. Сборка проекта как статической так динамической библиотекой ZenGL. А так же рассматривается одна и программ-примеров 'Initialization', которая входит в библиотеку ZenGL.

ZenGL Tutorial 2: Второй пример рассказывает о том, как создавать шрифты и выводить текст на экран.

Возможности библиотеки

  • Основные
    • библиотека может быть скомпилирована статически к проекту, или использоваться, как динамическая библиотека (в обновлённой версии только статическая компиляция)
    • рендеринг как в собственное, так и в заранее подготовленное окно (LCL, VCL)
    • журнал событий
    • загрузка ресурсов из файлов, памяти и zip архивов
    • многопоточная загрузка ресурсов
    • возможность расширить количество поддерживаемых форматов данных
  • Возможности настройки графики
    • Сглаживание (antialiasing), разрешение и частоту обновления экрана (screen resolution, refresh rate) а так же контролировать вертикальную синхронизацию (v-sync)
    • коррекция пропорций выводимого изображения относительно заданных размеров
    • управление заголовком и размером окна, наличие автоматического центрирования
    • управление видимостью курсора в пределах окна
  • Устройства ввода
    • обработка событий клавиатуры, мыши и джойстика
    • ввод Unicode символов
    • возможность ограничить ввод только латинской раскладкой
  • Вывод Текстур
    • поддержка форматов tga, png, jpg и pvr
    • поддержка текстур размером не кратным 2 (Non Power Of Two)
    • управление параметрами фильтрации
    • работа с масками
    • render targets отрисовка в текстуры
  • Вывод текста
    • реализация Unicode шрифты на основе текстур
    • вывод UTF-8 текста
    • управление отступами, размером, цветом вершин и количеством символов в тексте
  • 2D подсистема
    • batch render для повышения производительности рендеринга
    • рендеринг основных видов примитивов
    • спрайтовый движок
    • вывод статических и анимированных спрайтов и тайлов
    • рендеринг трансформирующейся сетки
    • рендеринг спрайтов с ручным указанием текстурных координат(с пиксельной размерностью и обычным 0..1)
    • управление режимом блендинга и смешивания цвета
    • возможность назначения цвета и альфы отдельным вершинам спрайтов и примитивов
    • дополнительные трансформации спрайтов(зеркальное отражения, увеличение, смещение вершин)
    • быстрое отсечение спрайтов выходящих за пределы видимости
    • наличие 2D камеры с возможностью увеличения и поворота содержимого сцены
  • Звук
    • вывод звука с помощью библиотек OpenAL или DirectSound (зависит от настроек проекта и операционной системы)
    • возможность правильной работы, даже при отсутствии звуковой карты
    • поддержка форматов wav и 'ogg
    • потоковое воспроизведение аудио-файлов
    • контроль за громкостью звука и темпом воспроизведения
    • трехмерное позиционирование источника звука в пространстве
  • Видео
    • декодирование видео заставок в текстуры
    • поддержка кодека theora в формате ogv
  • Математический вычисление
    • базовый набор вспомогательных мат. функций
    • необходимый набор функций для триангуляции
    • простейшие функции проверки столкновений
  • Доплнительно
    • чтение и запись INI файлов
    • дополнительные функции для работы с файлами и памятью

В обновлённой версии

  • Корректирована компиляция под android под версию FPC 3.2.0 и выше.
  • Перебран основной код для коррекции работы библиотеки
  • Редактирована работа с Windows 64
  • Исправлены мелкие баги
  • Редактированы демо-версии (для iOS демки не правились, перебраны демо-версии для Lazarus, FPC и Delphi)
  • Введены DEFINE
    • define - USE_EXIT_ESCAPE - выход. Возможность не писать дополнительный код для выхода из программы по нажатию клавиши Escape
    • define - USE_INIT_HANDLE - для использования ZenGL в уже созданное окно (LCL/VCL)
  • Введена поддержка MacOS Cocoa
  • Редактирована работа с таймерами
  • Редактирована работа со шрифтами
  • Редактирована работа с LCL/VCL