ZenGL - это библиотека создающая контекст окна для работы с OpenGL на разных платформах. С её помощью можно создавать кроссплатформенные игры и программы.
Важно знать! Для использования данной библиотеки, вам не обязательно знать OpenGL. Библиотека ZenGL предоставляет много возможностей библиотеки для любого программиста знающего паскаль и не знающего OpenGL.
Среда разработки
Lazarus/FreePascal
Delphi
Поддерживаемые платформы для Lazarus/FreePascal:
Windows 32/64
Linux 32/64
Android - ARM32 (v5, v6, v7a)/ARM64(v8a)/x86/x86_64
MacOS Cocoa - beta version
Портативные игровые компьютеры (Steam Deck, Rog Ally, Ayaneo и другие основанные на Linux или Windows).
Поддерживаемые платформы для Delphi:
Windows 32/64 (Windows 64 только с динамическими библиотеками, хотя определённую часть можно запустить и статически)
Последние изменения смотрите в файле Update_ZenGL.txt.
Способов работы с 3D изначально не реализовывалось. Вам надо будет делать это вручную. Добавлена 19-я демка, где показано как это можно сделать. Данная демка оформлена только для Lazarus.
Видео где разбирал данную демку.
Возможности библиотеки:
Основные
- библиотека может быть скомпилирована статически к проекту, или использоваться, как динамическая библиотека
(в данной версии только статическая компиляция)
- рендеринг как в собственное, так и в заранее подготовленное окно (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 файлов
- дополнительные функции для работы с файлами и памятью
Так же добавлен внутренний движок работающий на ZenGL - Green Engine
Связь: M12Mirrel@yandex.ru
Так же можно связаться со мной на форумах Lazarus и высказать пожелания и недоработки.
Поддержать проект можно через ВТБ: 2200 2414 1473 2952