Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Звук, графика и видео > ZenGL - библиотека для создания контекста окна |
Автор: Seenkao 20.12.2020, 14:29 |
Приветствую всех! Представляю вам доработанную версию ZenGL, текущая версия 0.4.16. ZenGL - это библиотека для создания 2D игр/приложений с возможностью создания контекста окна для работы с OpenGL на разных платформах. Обратите внимание! Если вы хотите делать игры в 2D то вам не надо знать OpenGL. Вы всё можете сделать средствами ZenGL, не вдаваясь в подробности, как работает OpenGL. Eng I'm sorry, I don't know English well, so the basic information is in Russian. ZenGL - it is a library that creates window context for working with OpenGL on different platforms. Ссылка на скачивание строчкой ниже. ))) ---->https://sourceforge.net/projects/new-zengl/ <---- Среда разработки Lazarus/FreePascal Delphi Поддерживаемые платформы для Lazarus/FreePascal: Windows 32/64 Linux 32/64 Портативные компьютеры: Steam Deck, Rog Ally, Ayaneo и другие основанные на Windows и Linux. Android ARM 32(v5, v6, v7a)/ARM64(v8a)/x86/x86_64. MacOS Cocoa (проверено на версии x86_64, следуйте инструкциям для запуска под другие процессоры). Если хотите использовать MacOS Carbon то вам нужна будет версия ZenGL 3.12. Поддерживаемые платформы для Delphi: Windows 32/64 (64-х битные только с динамическими библиотеками). https://zengl.org/index_ru.html - можно найти много полезной информации. - сайт больше не существует (если умеете копаться в архивах, то на архивах можете найти). https://github.com/Seenkao/New-ZenGL - последняя версия не стабильна, скачивайте на SourceForge. https://github.com/skalogryz/zengl Сопутствующие видео на каналах: https://www.youtube.com/channel/UCn46Rnq_opul3pxkCLtYPYg https://rutube.ru/channel/51284137/videos/ Возможности библиотеки: общее - рендеринг как в собственное, так и в заранее подготовленное окно - логирование событий - загрузка ресурсов непосредственно из файлов, памяти и zip архивов - многопоточная загрузка ресурсов - возможность расширить количество поддерживаемых форматов данных Настройки - управление антиалиасингом, разрешением экрана, частотой развертки и вертикальной синхронизацией - коррекция пропорций выводимого изображения относительно заданных размеров - управление заголовком и размером окна, наличие автоматического центрирования - управление видимостью курсора в пределах окна Ввод - обработка событий клавиатуры, мыши и джойстика - обработка ввода Unicode-текста - возможность ограничить ввод латинским алфавитом Текстуры - поддержка форматов tga, png,jpg и pvr - корректная работа с NPOT текстурами - управление параметрами фильтрации - работа с масками - наличие render targets для рендеринга в текстуру Text - текстурные Unicode-шрифты - вывод форматированного текста в кодировке UTF-8 с возможностью использования разных шрифтов - управление отступами, размером, цветом вершин и количеством символов в тексте 2D-подсистема - batch render для повышения производительности - рендеринг основных видов примитивов - наличие менеджера спрайтов - рендеринг статичных спрайтов, спрайтов с анимацией и тайлов - рендеринг трансформирующейся сетки - рендеринг спрайтов с ручным указанием текстурных координат(с пиксельной размерностью и обычным 0..1) - управление режимом блендинга и смешивания цвета - возможность назначения цвета и альфы отдельным вершинам спрайтов и примитивов - дополнительные трансформации спрайтов(зеркальное отражения, увеличение, смещение вершин) - быстрое отсечение спрайтов выходящих за пределы видимости - наличие камеры с возможностью увеличения и поворота содержимого сцены Звук - работа посредством OpenAL или DirectSound в зависимости от настроек сборки или ОС - корректная работа при отсутствии звуковой карты - поддержка wav и ogg в качестве сэмплов - потоковое воспроизведение аудио-файлов - управление параметрами громкости и скорости воспроизведения - трехмерное позиционирование источника звука Видео - декодирование кадров в текстуру - поддержка кодека theora в контейнере ogv Математика - базовый набор вспомогательных мат. функций - необходимый набор функций для триангуляции - базовый набор collision-функций Дополнительно - работа с ini-файлами - вспомогательные функции для работы с файлами и памятью - возможность работы с таймерами, запускать/останавливать как немедленно, так и с задержкой. В новой версии добавлено: - дополнительные примитивы. - ускорена работа с текстом - добавлена возможность отдельного запуска/остановки таймера. А так же возможность их запуска/остановки по истечению определённого времени. - добавлена возможность работать с полным OpenGL (https://youtu.be/wXd77SR_Xsg). - добавлена библиотека Green Engine которая работает на основе ZenGL. В данное время она предоставляет возможность работы с полем ввода, так же укоряет немного работу с цветом в ZenGL и содержит в себе ускоренные функции перевода строки в числа (StrToInt). GreenEngine - нативные методы работы с определёнными компонентами: - Поле ввода. - Виртуальная клавиатура - для мобильных систем это основная клавиатура на данный момент. Она должна и быстрее работать и быть более отзывчивой, чем предоставляемая системой клавиатура (для Android как минимум). Благодарю за внимание! ![]() |
Автор: Seenkao 21.12.2020, 03:35 |
Теперь доступна и тестовая версия для MacOS Cocoa. |
Автор: Seenkao 25.12.2020, 00:11 |
Объединил ветки 3.26 и 3.27, по причине, что вторая затёрла обновления первой... Моя вина, недавно с гитом работаю. ![]() |
Автор: Seenkao 1.1.2021, 21:09 |
Обновил репозиторий, добавил компилирование из командной строки (как было изначально). 17-я демо-версия работает, но только для примера использования клавиатуры (вводить текст пока нельзя, в разработке). Исправлены проблемы с физикой, которые сам совершил, когда хотел запустить физику на MacOS. |
Автор: Seenkao 18.7.2021, 04:59 |
Всем привет! Обновил версию ZenGL до 3.28. И с данного момента (так то и раньше уже было) теперь параллельно идёт разработка собственной библиотеки Green Engine. Она основана на ZenGL и больше её ни куда не прицепить. GE - предоставляет в данное время только возможность работать с полем ввода, и виртуальной клавиатурой, которую ещё надо доделывать... ![]() Поле ввода пока только проверены на Windows и Linux. На MacOS должно работать, но пока не проверял. В дальнейших планах доработать клавиатуру и джойстики, и уже доводить до ума Android-версию. (где-то там на проходил слушок, что надо отделить многое от рендериндга... как раз есть возможность заняться ![]() Пока занимаюсь переделкой всякой мелочёвки, добавляю комментарии к процедурам/функциям. Глядишь людям удобнее при работе будет. https://youtu.be/qb8hxilAI_I В конце видео показываю, как можно использовать несколько полей ввода. |
Автор: Seenkao 27.7.2021, 22:33 |
Обновлено. Исправлены недоработки, проверено на MacOS Cocoa x84_64 (ARM64 не проверено, потому что нет скомпилированных библиотек под них. Смотрите версию 3.27, там рассказано как можно запустить версию для ARM64). |
Автор: Seenkao 27.2.2022, 17:44 |
После долгой и кропотливой разработки в разных направлениях выпускаю новую версию http:////github.com/Seenkao/New-ZenGL. Обновления все в файле Update_ZenGL.txt. Основное можно выделить, то, что прицепил полный OpenGL к ZenGL с обновлениями на конец 2021 года (тем кто пользуется Linux много возможностей открывается, как я посмотрел, пока перебирал). Есть возможность создания нового контекста для тех, кто хочет потренироваться в работе с OpenGL. Окно и контекст как обычно создаёт ZenGL, но есть только "устаревшие" объявления View порта, те, что ещё Андрей разрабатывал. Потому, если есть умельцы, можете подменить своими начинками и в путь. Для создания нового контекста, вам минимально нужно будет отключить дефайн USE_MIN_OPENGL в файле GLdefine.cfg (смотрим первую демку). Он включен для основной функциональности ZenGL. Если поковыряться в этом файле настроек, то вы можете настроить OpenGL под чисто ваш выбор (не переусердствуйте, какие-то процедуры/функции нужны будут достаточно давних лет). Сразу оговорюсь, изменения были произведены только для демок для Lazarus, поэтому копируем демку куда нам нужно и запускаем (проверить ещё много надо ![]() Linux, Windows должно работать. Для определённых версий Windows (например 10) LCL работать не будет. Происходит конфликт. Пока даже не копал по какой причине. Проблема решена. Смотрите соответствующие демки. |
Автор: Seenkao 8.7.2022, 01:50 |
Корректирована работа библиотеки под Android. Стабилизировал версию. Убрал недочёты, где-то довёл до ума код. Редактировал демки. Если будете компилировать демки под Android, вам надо будет убрать все пробелы и скобки присутствующие в пути до папки демки. Иначе могут возникнуть проблемы при компиляции. Напоминаю, для работы с данной библиотекой, вам не надо знать OpenGL. Вы всё можете сделать средствами ZenGL, не вдаваясь в подробности, как работает OpenGL. ![]() |
Автор: Seenkao 22.3.2023, 09:31 |
Выпущена очередная версия! ![]() Изменений было достаточно немало, в основном коснулись стабилизации работы ZenGL. Так же были добавлены расширенные примитивы (широкие) и нативная клавиатура (для настольных систем - виртуальная, для мобильных - основная). Джойстики были в разработке для мобильных систем, но на данное время не протестированы. В ближайшее время буду избавляться от "устаревшего" кода. Во первых, мне приходится тратить много времени на его поддержку, а во вторых непонятно, нужен он кому-то или нет. Всем успехов! ![]() |
Автор: Seenkao 30.6.2023, 04:32 |
Выпущена новая версия 4.0. В связи с глобальными изменениями. ![]() Произведено много изменений: - удалён "старый" код, вместо него сейчас используются обновлённые методы и Green Engine. - добавлены библиотеки (в основном динамические) Ogg, Vorbis, Theora, LibZip, turboJPG для Android v7a/v8a/x86/x86_64. - корректирован код в соответствии с изменениями в Android. - для 32-х битных систем ARM добавлен и включен по умолчанию новый дефайн CPUARMV7A. При необходимости собрать приложение для более старых версий Android (v5, v6) его нужно отключить. - удалены объектные файлы для не поддерживаемых систем. - разделены демки для Android. Паскалевсий файл остаётся один, а проектов стало шесть. Для каждой архитектуры свой. - файлы предварительного запуска (*.sh) теперь встроены в проект и их не обязательно запускать вручную. Батники для Windows удалены, Lazarus справляется с *.sh в Windows хорошо. в зопу всё... это было муторно... очень много времени убивают библиотеки... особенно на языках которыми не пользуешься, а лишь читаешь код. Если кто будет работать под MacOS, то вероятнее всего придётся использовать версию 3.30. и пусть Chipmunk подождёт... 16-я демка работать не будет пока для новых Android ну и для Мака. Это всё позже. Корректирован код ZenGL для Android, Linux и Windows. До этого проверял только на Linux и отдельных версиях Android. Версия ZengL 4.0 теперь стабильна. Все демки запускаются без особых проблем для всех ОС и всех архитектур, кроме MacOS. Увы пока не все условия выполнены для работы ZenGL на MacOS. Так же, я считаю, что проекты от ZenGL смогут заработать на портативных консолях Steam Deck, ROC Ally и прочих компьютеро-подобных консолях. Для Steam Deck надо компилировать под Linux, для ROC Ally под Wondows. Проблема будет только в поддержке управляющих элементов. А у меня нет ни каких контроллеров и ни каких портативных консолей, чтобы можно было корректировать код ZenGL под контроллеры. Будет ли работать код из zgl_joystick я не знаю. Это было сделано больше 10 лет назад. Так что, если кто хочет, может попробовать. ![]() ![]() |
Автор: Seenkao 2.10.2023, 20:58 |
![]() Выпущена версия 4.2. И вроде как стабилизирована. Вернул возможность сборки демо-проектов под MacOS. Добавлены демки 19 и 20 где показывается возможность работы с OpenGL 3.3. ![]() Ссылка на скачивание ниже или в первопосте. https://sourceforge.net/projects/new-zengl/ |
Автор: Seenkao 19.10.2023, 04:47 |
Выпущена версия ZenGL 4.3. Добавлено: - таймера для Android. - добавлена поддержка проектов для Android Studio. Теперь вы можете собрать проект используя FPC/Lazarus + Android Studio. Для сборки необходимы будут FPC/Lazarus, кросскомпилятор FPC и Android Studio (+SDK, +NDK). Процесс сборки: Компилируете демку FPC/Lazarus. Необходимые файлы для демок автоматически будут скопированы в нужные папки для дальнейшей сборки проектов под Android Studio. Открываете Android Studio и в нём открываете папку с проектом, например демка 5: Zengl_SRC/demos/AndroidStudio/05-Primitives Проверяете. Будьте внимательны! Если вы собираете проекты из Lazarus, вам нужно будет открыть соответствующие демки, для архитектуры ARMv7a - demoNN_v7a.lpi, для архитектуры AARCHv8a - demoNN_v8alpi, для архитектуры x86 - demoNN_x86.lpi, для архитектуры x86_64 - demoNN_x64.lpi. Вы можете собрать все демки по отдельности. Android Studio будет их все использовать только для одного APK или AAB файлов. Где NN - номер демки. Если вы скомпилируете под четыре архитектуры, вы получите APK или AAB файлы которые запустятся на девайсах с данными архитектурами. На данный момент это самые популярные архитектуры для Android. ![]() |
Автор: Seenkao 4.1.2024, 16:58 |
Выпущена новая версия. 4.4. Из основных изменений это есть поддержка геймпадов для Android. |
Автор: Seenkao 27.1.2024, 14:35 |
Новая версия https://sourceforge.net/projects/new-zengl/ - Корректирован код для работы с полным OpenGL. - Корректированы большинство демо-версий. - Удалены демки для Eclipse (для Android Studio остались). - Корректирован код для MacOS и демки с использованием шейдеров (19 и 20) теперь можно запустить. |
Автор: Seenkao 11.6.2024, 21:58 |
Текущая версия ZenGL 0.4.10, Green Engine - 0.0.3. Изменений было много по сравнению с прошлой версией, потому смотрите всё в файле Update_ZenGL.txt . |
Автор: Seenkao 24.6.2024, 07:45 |
Обновил версию до 0.4.11. -->https://sourceforge.net/p/new-zengl/wiki/Home/<-- Теперь ZenGL стабилен для ОС: Windows, Linux и Android. Один из пользователей напомнил про Delphi и про Windows... на которые я похоже подзабил, считая что всё стабильно... Ну и заодно подтянул LightEngine к новой версии. В общем исправления в отношении Windows и Delphi (и не только): - Исправлен код для Delphi. - Исправлена третья демка. - Исправлен VCL проект по созданию шрифтов для ZenGL. - Исправлена ошибка в модуле "zgl_lib_zip" проявляющаяся в LCL (а может и в VCL) проектах с использованием png-формата. - Исправлена проблема "длинного пути" в Delphi XE (не правильно определялась длина пути и могла содержать лишний мусор в строке). Некоторые создаваемые приложения могли не правильно работать из-за данной ошибки. Возможно проблема осталась, просто значительно уменьшен её шанс. - Исправлены демки библиотеки LightEngine2D для данной версии ZenGL и для Delphi тоже (уменьшены вылеты в третьей демке из-за памяти, но демка остаётся не стабильной. Возмножно другие демки с использованием Delphi так же будут вылетать). Исправления коснувшиеся Delphi походу достаточно критичные и ноги этих багов росли хрен знает с каких времён. Даже LightEngine стал стабильнее работать, но всё равно не стабилен с Delphi. а где-то там ещё Мак ждёт тестов... |
Автор: Seenkao 29.10.2024, 04:36 |
Всем привет! В очередной раз библиотека была обновлена, уже до версии -->https://sourceforge.net/projects/new-zengl/<-- ------------------------------------------------------------------------------ Основные изменения для 12-й версии: - ViewPort работает на всё создаваемое окно. При корректировке изображения, оно корректируется средствами OpenGL. - исправлена проблема работы с двумя и более мониторами в Linux. - демки для FreePascal и Lazarus объеденены в одну папку. - переработаны 7-я и 12-я демки. Теперь они содержат дополнительный функционал ZenGL. - в проекты Android добавлен функционал определения полного экрана (java-код). Это необходимо больше для более поздних версий Android. - исправлен баг с видео в Android (при попытке восстановить приложение). - проекты Android разделены на Windows и на Unix (win и unix - соответственно). Добавлены файлы быстрых сборок для Windows - "build_android.bat". - работа со спрайтами и определёнными примитивами теперь происходить от заданного прямоугольника (zglPRect2D / zglTRecr2D). ------------------------------------------------------------------------------ Основные изменения для 13-й версии: - для Windows, если ваш рабочий стол масштабирован, то при создании приложения будет производится учёт массштабирования. - исправлены недочёты для FPC 3.3.1. - добавлена функция "scr_TestResolution" для проверки существования разрешения. - из модуля "zgl_utils.pas" удалены функции: u_IntToStr, u_StrToInt, u_FloatToStr, u_StrToFloat, u_BoolToStr, u_StrToBool и u_Sleep. Используйте стандартные функции идущие с FPC/Lazarus. - некоторые изменения для MacOS: теперь 12-я демка работает, окна создаются по центру экрана (исправлены основные проблемы, но далеко не все). - корректированы программы для создания шрифтов. - корректирован код для Delphi (так же связано с масштабированием). - небольшие другие изменения. ------------------------------------------------------------------------------ Полные изменения можно узнать в файле "Update_ZenGL.txt" |
Автор: Seenkao 2.5.2025, 16:24 | ||
Всем привет! ![]() Выпущено очередное обновление для -->https://sourceforge.net/projects/new-zengl/.<--
и некоторые другие изменения. Динамические библиотеки были пересобраны (напоминаю, вы можете их собрать сами). ![]() |