Menu

Rus

Serge

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


Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.