Rus: данный проект переехал на SourceForge. Из-за перехода GitHub на двухфакторную авторизацию - здесь архивирую.
Eng: This project has moved to SourceForge. Due to GitHub's transition to two-factor authentication, I'm archiving it here.
Внимание!!! Данная версия претерпела много изменений. Исключён код для MacOS-carbon. Собраны библиотеки Ogg, Vorbis, Theora, LibZip для Android ARM32/ARM64/X86/X86_64. Могут быть проблемы с запуском на MacOS-Cocoa, это будет исправляться. Вы можете использовать версию ZenGL 3.30 она наиболее стабильна, но не поддерживает обновлений для Android.
Attention!!! This version has undergone many changes. Excluded code for MacOS-carbon. Compiled and added libraries Ogg, Vorbis, Theora, LibZip for Android ARM32/ARM64/X86/X86_64. There may be problems with running on MacOS-Cocoa, this will be fixed. You can use ZenGL version 3.30, it is the most stable version but does not support Android updates.
Eng
1.
About
2.
Features
3.
Green Engine
Rus
1.
О ZenGL
2.
Возможности библиотеки
3.
Green Engine
zengl 3.12 - version that also supports iOS.
ZenGL - it is a library that creates window context for working with OpenGL on different platforms.
Important to know! You don't need to know OpenGL to use this library. The ZenGL library provides many library features for any programmer who knows Pascal and does not know OpenGL.
Development environment
- Lazarus/FreePascal
- Delphi
Supported platforms for Lazarus/FreePascal:
- Windows 32/64
- Linux 32/64
- Android - ARM32 (v5, v6, v7a)/ARM64(v8a)/x86/x86_64
- MacOS Cocoa - beta version
Supported Platforms for Delphi:
- Windows 32 (some demos will probably work with Windows 64 too, but certainly not all)
See the changes in the Update_ZenGL.txt file. Sorry, the information is only in Russian. :(
Important update: This version has updated OpeGL to the latest version as per end of 2021. All extensions have also been updated. Files: zgl_pasOpenGL.pas, zgl_GLU.pas, zgl_GLX_WGL.pas, zgl_gltypeconst.pas, GLdefine.cfg.
Ways to work with 3D were not implemented. You will need to do this manually or set oglMode to 3. I haven't tested it! You can rewrite the procedure Set3DMode(FOVY: Single = 45); and set all the parameters yourself.
Clicking on the image will take you to the video. Where I redo the 3rd demo. At the end of the video, it shows that you can make multiple input fields.
- Main
can be used as so/dll/dylib or statically compiled with your application (in this version only static compilation)
rendering to own or any other prepared window
logging
resource loading from files, memory and zip archives
multithreaded resource loading
easy way to add support for new resource format - Configuration of
antialiasing, screen resolution, refresh rate and vertical synchronization
aspect correction
title, position and size of window
cursor visibility in window space - Input
handling of keyboard, mouse and joystick input
handling of Unicode text input
possibility to restrict the input to the Latin alphabet - Textures
supports tga, png, jpg and pvr
correct work with NPOT textures
control the filter parameters
masking
render targets for rendering into texture - Text
textured Unicode font
rendering UTF-8 text
rendering text with alignment and other options like size, color and count of symbols - 2D subsystem
batch render for high-speed rendering
rendering different primitives
sprite engine
rendering static and animated sprites and tiles
rendering distortion grid
rendering sprites with new texture coordinates (with the pixel dimension and the usual 0..1)
control the blend mode and color mix mode
control the color and alpha of vertices of sprites and primitives
additional sprite transformations (flipping, zooming, vertices offset)
fast clipping of invisible sprites
2D camera with ability to zoom and rotate the scene - Sound
works through OpenAL or DirectSound; depends on configuration or OS
correct work without soundcard
supports wav and ogg as sound sample formats
playing audio files in separate thread
control volume and playback speed
moving sound sources in 3D space - Video
decoding video frames into texture
supports theora codec in ogv container - Math
basic set of additional math functions
triangulation functions
basic set of collision functions - Additional
reading and writing INI files
functions for working with files and memory
GE is a library that works on top of ZenGL features. Currently, it includes an input field with additional functions for it, and a module for working with color, where there are standard colors and you can set your own.
Communication: [email protected]
You can also contact me on the Lazarus forums and express your wishes and shortcomings.
You can support through Sberbank: 2202200951985520
The source code is on SourceForge, the project is no longer supported on GitHub.
Please write about the errors found in the process of working with ZenGL. )))
zengl 3.12 - версия которая так же поддерживает iOS.
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
Поддерживаемые платформы для Delphi:
- Windows 32 (вероятно некоторые демо-версии будут работать и с Windows 64, но точно не все)
Изменения смотрите в файле Update_ZenGL.txt.
Важное обновление: в данной версии обновлён OpeGL до последней версии согласно конца 2021 года. Так же обновлены все расширения. Файлы: zgl_pasOpenGL.pas, zgl_GLU.pas, zgl_GLX_WGL.pas, zgl_gltypeconst.pas, GLdefine.cfg.
Способов работы с 3D не реализовывалось. Вам надо будет делать это вручную или oglMode приравнять 3. Я не проверял работоспособность! Вы можете переписать процедуру Set3DMode(FOVY: Single = 45); и задать все параметры самим.
при нажатии на картинку перейдёте на видео. Где я переделываю 3-ю демо версию. В конце видео показано, что можно делать несколько полей ввода.
- Основные
библиотека может быть скомпилирована статически к проекту, или использоваться, как динамическая библиотека (в данной версии только статическая компиляция)
рендеринг как в собственное, так и в заранее подготовленное окно (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 файлов
дополнительные функции для работы с файлами и памятью
GE - это библиотека которая работает поверх возможностей ZenGL. В данное время она включает в себя поле ввода с дополнительными функциями для него, и модуль для работы с цветом, где есть стандартные цвета и можно задавать свои.
Связь: [email protected]
Так же можно связаться со мной на форумах Lazarus и высказать пожелания и недоработки.
Поддержать можно через сбер: 2202200951985520
Исходный код находится на SourceForge, на GitHub проект больше не поддерживается.
Просьба писать об ошибках выявленных в процессе работы с ZenGL. )))