ZenGL/ru

From Free Pascal wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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 и выше.
  • Скомпилированы библиотеки (Ogg, Vorbis, Theora) для всех архитектур Android: x86, x86_64, ARM32 и ARM64.
  • Перебран основной код для коррекции работы библиотеки
  • Редактирована работа с Windows 64
  • Исправлены мелкие баги
  • Редактированы демо-версии (для iOS демки не правились, перебраны демо-версии для Lazarus, FPC и Delphi)
  • Введены DEFINE
    • define - USE_EXIT_ESCAPE - выход. Возможность не писать дополнительный код для выхода из программы по нажатию клавиши Escape
    • define - USE_INIT_HANDLE - для использования ZenGL в уже созданное окно (LCL/VCL)
  • Введена поддержка MacOS Cocoa
  • Редактирована работа с таймерами
  • Редактирована работа со шрифтами
  • Редактирована работа с LCL/VCL

Добавлен внутренний движок, основанный на функциональности ZenGL - Green Engine.

Возможности Green Engine:

- собственное поле ввода и его функциональность.


Ведётся документация внутри модулей ZenGL.

Так же смотрите обновления в файле Update _ZenGL.txt (на русском).