Recent

Author Topic: ZenGL Update +android + MacOS Cocoa + Green Engine  (Read 8385 times)

Seenkao

  • Full Member
  • ***
  • Posts: 173
ZenGL Update +android + MacOS Cocoa + Green Engine
« on: April 01, 2020, 12:53:33 am »
Текущая версия ZenGL 3.28
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.

ZenGL - это бибилотека создающая контекст окна для работы с OpenGL на разных платформах.
Green Engine - это наработки над ZenGL, своеобразное API.

Среда разработки
   - Lazarus/FreePascal
   - Delphi

Поддерживаемые платформы для Lazarus/FreePascal:
   - Windows 32/64
   - Linux 32/64
   - Android
   - MacOS Carbon (не проверено используйте версию 3.12 если не будет работать)
    - MacOS Cocoa beta version

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

Будте внимательны!!!, по моей неопытности работы с Гитом ветки перепутались!!! И тестовая версия с основной поменяны в названиях. (но подписаны, надеюсь читать умеете  :) )

---------------------------------------------------------------------------------------------------------------------
Внимание! Для новых версий FPC (> 3.0.4) для Unix-систем и не LCL в запускаемом модуле обязательно надо выставлять:
Code: Pascal  [Select][+][-]
  1. uses
  2. {$IFDEF UNIX}
  3.    cthreads;
  4. {$ENDIF}
----------------------------------------------------------------------------
ZenGL 3.26   - DOWNLOAD -

ZenGL 3.24

ZenGL 3.20

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

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

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

Сайт Andru - основная информация не поменялась, кроме исходного кода. Поэтому, что-то нужное там всё же найдёте.

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

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

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

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

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

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

Благодарю за внимание.  :)
« Last Edit: July 18, 2021, 08:21:03 am by Seenkao »

skalogryz

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2627
    • havefunsoft.com
Re: ZenGL 3.20 ++android
« Reply #1 on: April 01, 2020, 05:43:48 am »
хорошая работа!

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

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

Проблемы с компиляцией под андроид могут возникнуть в множестве случаев. Смотрите видео, задавайте вопросы.
исходники ZenGL требуют корректировки.
последний "официальный" ZenGL писался ещё когда Android не был выведен в отдельную целевую платформу, для него использовасля Linux. (чем по-сути native android и ялвяется)
« Last Edit: April 01, 2020, 05:47:15 am by skalogryz »

Seenkao

  • Full Member
  • ***
  • Posts: 173
Re: ZenGL 3.20 ++android
« Reply #2 on: May 16, 2020, 06:07:14 pm »
https://youtu.be/IGFjcyWu4Ew - занимаюсь разработкой джойстиков и клавиатуры под андроид. Если есть какие мысли, что надо переделать или что-то изменить, был бы благодарен за информацию!!!

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

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

Seenkao

  • Full Member
  • ***
  • Posts: 173
Re: ZenGL Update ++android
« Reply #3 on: August 08, 2020, 09:19:13 pm »
Всем привет!

Я продолжаю работать с 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. Шапка обновлена, исходник выложен
« Last Edit: August 08, 2020, 09:25:27 pm by Seenkao »

Seenkao

  • Full Member
  • ***
  • Posts: 173
Re: ZenGL Update ++android
« Reply #4 on: August 11, 2020, 05:47:47 pm »
Обнаружена ошибка, с которой уже давно борюсь, но не мог понять в чём проблема. После обновления FPC до версии 3.2 проблема выявилась более явно, но для LCL это было не заметно, а вот для большинства приложений ZenGL, не использующих LCL очень сильно сказалось...

Шапка обновлена!!!
Для Unix- систем обязательно в запускаемом файле должно идти самым первым модулем!!! :
Code: Pascal  [Select][+][-]
  1. uses
  2. {$IFDEF UNIX}
  3. cthreads;
  4. {$ENDIF}
  5.  
В противном случае ваше приложение может вылетать с ошибкой.
« Last Edit: August 11, 2020, 06:01:31 pm by Seenkao »

Seenkao

  • Full Member
  • ***
  • Posts: 173
Re: ZenGL Update ++android
« Reply #5 on: September 28, 2020, 04:25:13 am »
Всем привет!

Представляю новую версию ZenGL! 3.25!!!
ссылка на скачивание: https://yadi.sk/d/ka6mbI5UQwd0Cw

Изменения коснулись в основном LCL(VCL)-приложений. Так как выяснилось, что ZenGL не отвечал на некоторые системные запросы формы. В том числе клавиатуры и мыши. В следствии чего пришлось перерабатывать библиотеку, для возможности работы с клавиатурой и мышью, но некоторые функции и процедуры теперь не работают, если вы используете не нативное приложение. Но это вполне можно компенсировать всеми библиотеками Lazarus, ведь теперь ZenGL дружественно себя ведёт с LCL-приложениями.

Так же были запросы по поводу работы ZenGL на MacOS. Я проверил, OpenGL работает на MacOS, но с определёнными ограничениями. Поэтому так же введу поддержу MacOS, но работать эти приложения будут только под LCL, не нативно.

Парочка видео:
https://youtu.be/OAyIcvzWbtw
https://youtu.be/nsbjTGZfwwU

Да, забыл, в процессе были обьеденены два файла zgl_window и zgl_main, второго файла больше не существует. Поэтому где встретиться ошибка, удалить или заменить по надобности.

Seenkao

  • Full Member
  • ***
  • Posts: 173
Re: ZenGL Update ++android
« Reply #6 on: November 15, 2020, 04:59:53 pm »
ZenGL in MacOS, удалось запустить демо-версию  >:D, правда в самом ZenGL было почти всё отключено.

Так что осталось только всё на доработку отправить и настроить для полной совместимости с MacOS. 8-)

Seenkao

  • Full Member
  • ***
  • Posts: 173
Re: ZenGL Update ++android
« Reply #7 on: December 20, 2020, 01:29:18 am »
Представляю вашему вниманию новую версию ZenGL.
Введена новая работа с таймерами и шрифтами.
Таймера теперь можно запускать и останавливать в любое время, а так же это можно делать с задержкой. ограничено 20-ю таймерами.
Так же, теперь можно работать с несколькими разными шрифтами одновременно, не более 5.

Введено ограничение FPS для всех PC-систем. Это не то же самое что вертикальная синхронизация!!! При установке FPS > 60, вертикальная синхронизация автоматически включается (не все мониторы поддерживают частоту > 60 Гц).
Возможные значения ограничения FPS = 30, 60, 75, 85, 90, 100, 120 и 144. Исключающие эти значения будут переведены в значение 60.

Сопутствующие видео на моём канале.

New modification for ZenGL. I'm sorry, use google translate. :)

Eng:
I present to your attention a new version of ZenGL.
Introduced new work with timers and fonts.
The timer can now be started and stopped at any time, as well as it can be done with a delay. limited to 20 timers.
Also, now you can work with several different fonts at the same time, no more than 5.

Introduced an FPS limitation for all PC systems. This is not the same as vertical sync !!! When set to FPS> 60, V-sync is automatically enabled (not all monitors support> 60 Hz).
Possible FPS limit values ​​are 30, 60, 75, 85, 90, 100, 120 and 144. Excluding these values ​​will be converted to 60.

Similar videos on my channel in Russian
« Last Edit: January 01, 2021, 07:04:28 pm by Seenkao »

Seenkao

  • Full Member
  • ***
  • Posts: 173
Re: ZenGL Update ++android
« Reply #8 on: December 21, 2020, 12:30:16 am »
Следом выкладываю версию для MacOS  :)
Внимание!!! ветки перепутались (я по неопытности нахимичил) поэтому смотрите какую ветку скачиваете!
На ветке ZenGL_3_26 - бета версия 3.27 для MacOS. (хотя, вероятнее всего будет работать, просто я не проверял).

Часть демонстрационных примеров для MacOS не работает, основную часть доведу до ума позже. Выложил больше для проверки работы.
Не доделана 3-я демка, 4-я, 12-я, 15-18-е.

LCL не поддерживается!!!

Необходимо включить триангуляцию и проверить будет работать или нет.
Так же необходимо или скомпилировать файлы для 15-й демки или найти другое решение. Физика не совместима с предоставляемым в ZenGL файлом. Требуется полная переработка.

12-я демка считается устаревшей для MacOs Cocoa. Затрагивать не буду.

Seenkao

  • Full Member
  • ***
  • Posts: 173
Re: ZenGL Update +android + MacOS Cocoa
« Reply #9 on: December 24, 2020, 10:08:16 pm »
Объединил ветки 3.26 и 3.27 (вторая затёрла обновления первой... по моей вине). И версия 3.26 удалена.

Seenkao

  • Full Member
  • ***
  • Posts: 173
Re: ZenGL Update +android + MacOS Cocoa
« Reply #10 on: January 01, 2021, 06:57:15 pm »
Обновил репозиторий, добавил компилирование из командной строки (как было изначально).
17-я демо-версия работает, но только для примера использования клавиатуры (вводить текст пока нельзя, в разработке).
Исправлены проблемы с физикой, которые сам совершил, когда хотел запустить физику на MacOS. :-[

Eng:
Updated the repository, added command line compilation (as it was originally).
The 17th demo version works, but only for an example of using the keyboard (you cannot enter text yet, in development).
Fixed physics issues that I myself made when I wanted to run physics on macOS. :-[

Seenkao

  • Full Member
  • ***
  • Posts: 173
Re: ZenGL Update +android + MacOS Cocoa
« Reply #11 on: February 25, 2021, 07:03:55 pm »
В процессе нынешних наработок, выявилась проблема в файле font.zfi идущем вместе с библиотекой. Не пропечатывается и может вызывать проблемы работы программы из-за символа - если вы его используете в своей программе. Выявилось в Windows.

Используйте свой шрифт, если нужен данный символ.

В последующих версиях заменю данный файл (если не забуду :) ).

Eng:
In the course of the current developments, a problem came to light in the font.zfi file that comes with the library. Does not print and can cause problems with the program because of the symbol - if you use it in your program. Revealed in Windows.

Use your own font if you need this character.

In subsequent versions I will replace this file (if I don’t forget :)).
« Last Edit: March 01, 2021, 11:34:09 am by Seenkao »

Seenkao

  • Full Member
  • ***
  • Posts: 173
Re: ZenGL Update +android + MacOS Cocoa
« Reply #12 on: March 01, 2021, 11:37:20 am »
Обновил репозиторий и обновил каталог tools - как обычно выползли старые версии файлов, которые наверняка не работали вряд ли бы вы сделали бы какой-нибудь рабочий фонт.

Добавлена "древняя" библиотека Vampire - только для Windows. Для того, чтоб вы могли сохранять файл в PNG-формат. (пути, вроде как не настраивал, вам надо будет самим настроить)

Изначальный файл font.zfi и его PNG-файл не менял. Проблема символа "№" - именно в этом файле. Если у вас не получится создать фонт с данным символом, скажите, выложу каким образом делал это я. (хотя проблем не должно быть).

-----------------------------------------------------------------------------------------
Eng:
I updated the repository and updated the tools directory - as usual, old versions of files crawled out, which probably did not work, it is unlikely that you would have made any working font.

Added "ancient" Vampire library - Windows only. So that you can save the file in PNG format. (I didn’t seem to configure the path, you will need to configure it yourself)

The original font.zfi file and its PNG file did not change. The problem with the symbol "№" is in this file. If you can't create a font with this symbol, tell me, I'll post how I did it. (although there shouldn't be any problems).

Handoko

  • Hero Member
  • *****
  • Posts: 4317
  • My goal: build my own game engine using Lazarus
Re: ZenGL Update +android + MacOS Cocoa
« Reply #13 on: March 01, 2021, 11:43:32 am »
Thank you for updating it.

ZenGL is an interesting project, I always wanted to explore it since long ago. Hope I can have more time soon.

Seenkao

  • Full Member
  • ***
  • Posts: 173
Re: ZenGL Update +android + MacOS Cocoa + Green Engine
« Reply #14 on: July 18, 2021, 03:15:36 am »
Handoko   :-[

-------------------------------------------------------------------------------------------------------------
Всем привет! Обновил версию ZenGL до 3.28.
И с данного момента (так то и раньше уже было) теперь параллельно идёт разработка собственной библиотеки Green Engine. Она основана на ZenGL и больше её ни куда не прицепить (у меня и не было желания это всё ещё и с остальным состыковывать 8) и так убил тонну времени на всю мелочёвку  >:().

GE - предоставляет в данное время только возможность работать с полем ввода, и виртуальной клавиатурой, которую ещё надо доделывать... :'( Для мобильных систем пока ни как не состыкована эта клавиатура, хотя для неё изначально только и делал.

Поле ввода пока только проверены на Windows и Linux. На MacOS должно работать, но пока не проверял.

В дальнейших планах доработать клавиатуру и джойстики, и уже доводить до ума Android-версию. (где-то там на проходил слушок, что надо отделить многое от рендериндга... как раз есть возможность заняться  :-[).

Пока занимаюсь переделкой всякой мелочёвки, добавляю комментарии к процедурам/функциям. Глядишь людям удобнее при работе будет.

Надеюсь полезное видео, где я переделываю 3-ю демо-версию. В конце видео показываю, как можно использовать несколько полей ввода.

Google translate:
Hello everyone! Updated ZenGL version to 3.28.
And from this moment (and it has already happened before), the development of its own Green Engine library is now going on in parallel. It is based on ZenGL and you can't attach it anywhere else.

GE - at this time only provides the ability to work with the input field, and the virtual keyboard, which still needs to be completed ... :'( For mobile systems, this keyboard has not yet been docked, although it was originally only done for it.

The input field has only been tested on Windows and Linux so far. It should work on macOS, but haven't tested it yet.

In the future, there are plans to finalize the keyboard and joysticks, and already bring to mind the Android version. (somewhere there was a rumor that it was necessary to separate a lot from rendering ... just there is an opportunity to do :-[).

While I am reworking all the little things, I add comments to procedures/functions. You look people will be more comfortable at work.

Hopefully useful video where I am remaking the 3rd demo version (rus) . At the end of the video, I show you how you can use multiple input fields.
« Last Edit: July 18, 2021, 08:21:40 am by Seenkao »

 

TinyPortal © 2005-2018