Forum > Russian

ZenGL Update +android + MacOS Cocoa + Green Engine

(1/10) > >>

Seenkao:
Rus:
Текущая версия: ZenGL 0.4.7 (download)

ZenGL - это библиотека создающая контекст окна для работы с OpenGL на разных платформах. Так же, это игровой 2D движок, позволяющий писать игры (приложение), без знаний OpenGL.
На данное время, есть возможность использования полного OpenGL и OpenGL ES (начиная с версии 0.4.3).
Green Engine - это наработки над ZenGL, своеобразное API.

Среда разработки и поддерживаемые платформы для:
Lazarus/FreePascal:
   - Windows 32/64
   - Linux 32/64
   - Android ARM32(v5, v6, v7a)/ARM64(v8a)/x86/x86_64
   - Портативные компьютеры: Steam Deck, Rog Ally, Ayaneo и другие основанные на ОС Windows и Linux.
   - MacOS Cocoa beta version

Delphi:
   - Windows 32 (вероятно некоторые демо-версии будут работать и с Windows 64, но точно не все)

!!! Здесь информация по сборке проекта под Android!
---------------------------------------------------------------------------------------------------------------------

Eng:
Google translate:
Current version: ZenGL 0.4.7 (download)

ZenGL is a window context library for working with OpenGL on different platforms. Also, this is a 2D game engine that allows you to write games (applications) without knowledge of OpenGL.
At this time, it is possible to use full OpenGL and OpenGL ES (starting from version 0.4.3).
Green Engine are developments on ZenGL, a kind of API.

Development environment and supported platforms for:
Lazarus/FreePascal:
    - Windows 32/64
    - Linux 32/64
    - Android ARM32(v5, v6, v7a)/ARM64(v8a)/x86/x86_64
    - Portable computers: Steam Deck, Rog Ally, Ayaneo and others based on Windows and Linux OS.
    - MacOS Cocoa beta version

Delphi:
    - Windows 32 (probably some demos will work with Windows 64, but definitely not all)

!!! Here is information on building a project for Android!
see more information on GitHub.

---------------------------------------------------------------------------------------------------------------------
Внимание! Для новых версий FPC (> 3.0.4) для Unix-систем и не LCL в запускаемом модуле обязательно надо выставлять:

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---uses{$IFDEF UNIX}   cthreads;{$ENDIF}---------------------------------------------------------------------------------------------------------------------
старые версии не включённые в SourceForge:

ZenGL до версии 4.2 (GitHub)
ZenGL 3.24
ZenGL 3.20

и версия от Скалогрыза - данная версия должна работать с iOS.
---------------------------------------------------------------------------------------------------------------------

Сопутствующие видео:
решение проблем, связанных с запуском приложений на Android.

Запустил демо-версии на андроиде. Запустил я все демо-версии, и все заставил работать, поэтому при сборке у вас тоже они должны работать, но на видео ещё тот момент, когда не удалось найти все ошибки и исправить их.

На данный момент проверено большинство демок для Android под большинство поддерживаемых архитектур! 8)

В версии 3.20 не сильно много поменялось, но корректирована работа с fpc (версия желательно больше 3.0.4) под андроид и настроены дефайны.

Проблемы с компиляцией под андроид могут возникнуть в множестве случаев. Смотрите видео, задавайте вопросы.

Первые проблемы бывают с тем, что некоторые установленные у вас Lazarus-ы путают дефайны и для них Linux и Android одно и то же, а это не так!!!

Может быть где-то пути упустили, где-то Лазарус тянет за собой шлейф ненужной информации и зачастую прийдётся удалить *.lpi файл.

Ещё один из простых вариантов, вы используете не тот компилятор.

вопросы, предложения можно оставлять здесь или отправлять на мыло M12Mirrel@yandex.ru

Благодарю за внимание.  :)

skalogryz:
хорошая работа!

а почему на яндекс-диске, а не гитхабе? :)

скажу за себя: https://github.com/skalogryz/zengl - тут есть "последний" zengl, но с правками под 64-битность.


--- Quote from: Seenkao on April 01, 2020, 12:53:33 am ---Проблемы с компиляцией под андроид могут возникнуть в множестве случаев. Смотрите видео, задавайте вопросы.

--- End quote ---
исходники ZenGL требуют корректировки.
последний "официальный" ZenGL писался ещё когда Android не был выведен в отдельную целевую платформу, для него использовасля Linux. (чем по-сути native android и ялвяется)

Seenkao:
https://youtu.be/IGFjcyWu4Ew - занимаюсь разработкой джойстиков и клавиатуры под андроид. Если есть какие мысли, что надо переделать или что-то изменить, был бы благодарен за информацию!!!

Так же, пока занимался разработкой, приходилось многие вещи доделывать, постарался исправить множество моментов, так же которые были описаны некоторыми людьми.

В следующей версии поддержка 64-х битной системы Windows реализована, были некоторые недоработки в дефайнах, случайно заметил, после подсказки одного из отписавшихся. Подредактировал редактор фонта, и надеюсь его теперь можно будет запустить везде. Ну и ещё куча разных доработок, о которых может уже и не упомню

Seenkao:
Всем привет!

Я продолжаю работать с ZenGL, но, чтоб вам было понятно, для меня сам ZenGL - это несколько основных файлов по созданию рабочего проекта/программы под определённую ОС или под несколько или, возможно, и под все сразу. Изначально меня интересовала разработка под Windows и Linux. Но столкнувшись (уже более полугода как) с тем что ZenGL может создавать программы и под Android, я всё же решил использовать это для своего развития, и возможно для развития самого ZenGL.

За прошедшее время, пока я хотел разобраться как можно создать джойстики, а потом меня осенило - создать клавиатуру... А потом меня ещё осенило и я понял, что это возможность создавать меню для любой платформы.

И я утопал всё глубже и глубже... Одно тянуло за собой другое... потом третье и т. д. Заниматься этим можно вечно и так ни чего и не выпустить в свет. Поэтому меню/джойстики на данной версии откладываются, так как они вытянули очень много не решённых до этого "проблем" и меню будет уже в другой версии... Но она будет не совсем совместима со старыми версиями, особенно это касается Android.

-----------------------------------------------------------------------------------------------------------------------
Изменения в версии 0.3.24:

- Версия стабильно компилирует под Win64, изменено для версий FPC > 3

- Для Windows, теперь "ALT" + клавиша не вызывает системных звуков

- Для Linux - теперь создаётся рабочая дирректория, но помните!!! Это может быть общий каталог, куда вы "установили" свою программу. Поэтому это сделано для тех программ (которые вы создаёте) для которых вы выделяете отдельный каталог

- Введено несколько дефайнов:

- Escape = exit

- Дефайны для полных версий OpenGL, но пока реализовано только для OpenGL ES, в дальнейшем коснётся и самого OpenGL для компьютеров

- для инициализации под LCL/VCL (handle - окна), по умолчанию включены в данной версии, в следующих версиях по умолчанию будет отключено

- редактированы дефайны под Android, исключён не используемый код

- вернул некоторые функции (которые удалил ранее :/ понял что если человек будет создавать библиотеку, то они нужны будут), некоторые немного изменил, так же исключая повторный и не используемый код

- дополнил OpenGL ES (1.0) отсутствующими, до этого времени, функциями (кроме glColor4f, в данной версии она сделана под определённую работу и занята), так же указаны не используемые функции версии 1.1

- дополнил OpenGL недостающими функциями, но немногими, очень много ещё отсутствует


!!! Внимание!!! Поддержка создания библиотек отключена!!! zglHeader.pas не редактирован, и возможно не пригоден для использования. Если хотите попробовать, берите его в версии 0.3.12 (так же надо будет восстанавлиать демо-версии как в версии 0.3.12)

Ещё одна причина отказа от поддержки LCL библиотек, это то, что я не запустил демо-версии на FPC + LCL.
(Но вот ZenFont(LCL) запустить удалось, так что возможно проблема где-то на поверхности).

- в демо-версии со звуком показано как остановить звуки, для их изначального воспроизведения. Звук теперь можно "передвигать" (в версии OpenAL)

- Множественные изменения в файлах, для облегчения кода и более корректной работы. (а возможно и нет...)

- Множественные изменения под разработку под Android. Изменён файл ZenGL.java, корректирована работа Android приложений под коснувшиеся изменения.

- ZenFont теперь можно запускать и под Delphi 7. Так же редактирована работа приложения, введены некоторые ограничения на работу приложения, для избежания ошибок при создании нового шрифта.

-----------------------------------------------------------------------------------------------------------------------

Дальнейшие планируемые изменения:
- Введение джойстиков/меню для Android, а так же возможность использовать меню и создавать своё меню для компьютеров.

- расширение OpenGL или возможность подключения dglOpenGL (будет возможность создавать умельцам как 3D- приложения, так и работы с шейдерами).

- после расширения OpenGL будет поддержка освещения и возможно тумана. И вероятно многое другое, что включено в OpenGL.

- доработка OpenAL. (если руки дойдут)

-----------------------------------------------------------------------------------------------------------------------

Прошу многих извинить!!! Но специально заниматься разработкой/доработкой под MacOS/iOS в данное время не буду. Так же специальной поддержкой DelphiXE заниматься не буду. Большинство примеров под Delphi 7 будут работать и под DelphiXE для Windows. Возможно, если DelphiXE поддерживает, будет поддержка Linux. Если DelphiXE поддерживает приложения под Linux, просьба сообщить мне об этом (сильного желания устанавливать эту среду программирования, нет).

Так же не буду продолжать поддержку DirectX, это в ваших руках, но на это так же надо потратить много времени.


Множество вопросов по работе с ZenGL решены и приведены в примерах. Примеры смотрите под Delphi 7, Lazarus и Android.
Под FP (без Lazarus), MacOS и iOS я не переделывал примеры, их можно так же переделать, подсмотрев в других примерах указанных выше.

До документации пока руки не дойдут, за это больше всего извиняюсь! На сайте zengl.org смотрите, там достаточно не мало информации.

-----------------------------------------------------------------------------------------------------------------------

Теперь относительно Android. Google отказалось от поддержки 32-х битных версий программ... а точнее программ, которые содержат 32-х битный код...
Это очередная долгая песня. Надо искать скомпилированные библиотеки под 64-х битную систему, и потому в данное время я этим заниматься не буду.
Если у вас есть данные библиотеками, то вы можете ими поделиться или поделиться ссылками на них. Потому что кроме самих библиотек, надо будет и настраивать компиляцию под 64-х битную систему и решать все выявляющиеся проблемы.

Меня устроит и 32-х битная система, так как она вполне запускается и на более поздних версиях телефонов и уж точно запустится на большинстве телефонов. )))

-----------------------------------------------------------------------------------------------------------------------

Все вопросы можете задавать на форуме сайта zengl.org , или задавая вопросы мне:
M12Mirrel@yandex.ru - почта
https://www.youtube.com/channel/UCn46Rn ... g/featured - канал на ютубе, выкладываю периодически видео может кому полезно будет. Ну, или так же на форумах, просматриваю темы, по возможности отвечаю (или отмечаю о недоработках для себя)

-----------------------------------------------------------------------------------------------------------------------

Всего доброго, до встреч!

P.S. Шапка обновлена, исходник выложен

Seenkao:
Обнаружена ошибка, с которой уже давно борюсь, но не мог понять в чём проблема. После обновления FPC до версии 3.2 проблема выявилась более явно, но для LCL это было не заметно, а вот для большинства приложений ZenGL, не использующих LCL очень сильно сказалось...

Шапка обновлена!!!
Для Unix- систем обязательно в запускаемом файле должно идти самым первым модулем!!! :

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---uses{$IFDEF UNIX}cthreads;{$ENDIF} В противном случае ваше приложение может вылетать с ошибкой.

Navigation

[0] Message Index

[#] Next page

Go to full version