ZenGL + поддержка android

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Re: ZenGL + поддержка android

Сообщение Seenkao » 08.10.2024 23:17:57

Записал видео, где пробегаюсь по сборке проектов под Android, как создать свой проект под Android (на данное время) и решение ошибки при открытии проекта.
Информация в видео, больше техническая.

Добавлено спустя 19 часов 25 минут 16 секунд:
Есть большой недочёт с моей стороны, я ни где на форуме не расписывал как создавать проекты с использованием ZenGL. Вот, восполняю этот пробел.

Вы можете посмотреть видео, где я создаю игру "Змейка".

Но так же лучше распишу весь процесс дополнительно.
1. Создайте папку рядом с папкой ZenGL.
2. В созданной папке создайте свой простой проект не LCL (если вы хотите наоборот использовать LCL, то надо будет создавать именно LCL проект).
3. Можете скопировать код из любой из демок (кроме первой строчки, где идёт название вашей программы).
4. Необходимо прописать пути для проекта.
4.1. Для этого нажмите Ctrl + Shift + F11 (можете открыть в главном окне "Проект -> Параметры проекта...).
4.2. Выберите "Пути".
4.3. В пункте "Другие модули (-Fu):" пропишите:
../ZenGL/extra;../ZenGL/src;../ZenGL/srcGL;../ZenGL/srcGE;../ZenGL/srcGL/EGL;../ZenGL/srcGL/GLES/;../ZenGL/lib/jpeg/$(TargetCPU)-$(TargetOS);../ZenGL/lib/msvcrt/$(TargetCPU);
../ZenGL/lib/ogg/$(TargetCPU)-$(TargetOS);../ZenGL/lib/theora/$(TargetCPU)-$(TargetOS);../ZenGL/lib/zlib/$(TargetCPU)-$(TargetOS);../ZenGL/lib/zip/$(TargetCPU)-$(TargetOS)

4.4.В пункте "Включаемые файлы (-Fi):" пропишите:
$(ProjOutDir);../ZenGL/headers;../ZenGL/srcGE;../ZenGL/src;../ZenGL/srcGL;../ZenGL/srcGL/EGL;../ZenGL/srcGL/GLES/

5. В настройках проекта, нажмите на «Анализ» и в «Режим синтаксиса (-M, {$MODE})» выберите «Delphi (-Mdelphi)» (обычно там стоит «Object Pascal — по умолчанию (-MobjFPC)»).

-----------------------
Так же, вместо всех этих действий, вы можете создать свою папку в ZenGL/demos/FPC-Lazarus скопировать туда файлы из любого демонстрационного примера (если вы хотите использовать функциональность ZenGL, то демки от 1 до 16-й, или 18-ю для LCL) и использовать "созданный проект" в своих нуждах (можете просто использовать любую демку так).
Seenkao
энтузиаст
 
Сообщения: 547
Зарегистрирован: 01.04.2020 03:37:12

Re: ZenGL + поддержка android

Сообщение Seenkao » 28.10.2024 05:21:02

Всем привет!
Очередные обновления для ZenGL, это уже версия 4.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".

сделал очередную каплю в море. :mrgreen:
Seenkao
энтузиаст
 
Сообщения: 547
Зарегистрирован: 01.04.2020 03:37:12

Re: ZenGL + поддержка android

Сообщение Alex2013 » 28.10.2024 09:12:19

Кстати кто-то тут обещал "мастер класс " по легкой сборке программ под андроид (но не видео а пошаговое описание )... ( а то я ткнулся собрать примеры от ZenGL в своей самодельной "android студии"(LAMW\laz4android2.0.12 он хорош тем что в нем минимум постороннего софта ) и красиво повис в эмуляторе ) :roll:
Зы
ИМХО проще делать отдельные установочные файлы под разные архитектуры чем лепить их поддержку в один apk
Зы Зы
Пример пошагового руководства "LAZARUS For Android" ( не обязательно так подобно но даже "основные шаги" бы были бы полезны )
http://www.loginovprojects.ru/LAZARUSForAndroid.pdf
Alex2013
долгожитель
 
Сообщения: 3093
Зарегистрирован: 03.04.2013 11:59:44

Re: ZenGL + поддержка android

Сообщение Seenkao » 28.10.2024 10:52:35

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

Добавлено спустя 3 минуты 19 секунд:
могу ссылку дать на видео в контакте, либо вообще залить его туда.

Добавлено спустя 12 минут 58 секунд:
Необходимы: FPC 3.2.2 (желательно), Lazarus (не обязательно) и Android Studio.

Немного расписал в файле ReadMe.txt в папке с демками для Android.

Собираешь проект через терминал (сразу 4-ре архитектуры) или нужные тебе архитектуры используя Lazarus.
После сборки проекта с помощью FPC/Lazarus открываешь данный проект в Android Studio. Когда открываешь проект в студии, достаточно зайти в папку "ZenGL_SRC/demos/AndroidStudio" и там выбрать нужную демку. Она откроется полностью.

Для создания своего проекта проще всего взять готовую демку и использовать её.

Если хочешь полноценную свою демку, то демку надо скопировать и многие "demoNN" заменить на имя своей программы. Как в названиях файлов, так и внутри самих файлов, загляни всё-таки в видео, там полностью указан этот момент (насколько возможно).

Пока так...

Добавлено спустя 5 минут 18 секунд:
Почему FPC 3.2.2? Потому что версия 3.3.1 глючная и для 32-х битных проектов надо выставлять флаг оптимизации O1.

Возможно ты словишь ошибку: "SDK location not found", в студии открой файл "local.properties" и измени строчку "sdk.dir=/home/mirrel/Android/Sdk" на путь где лежит твой SDK. Студия иногда не делает это по умолчанию.
Seenkao
энтузиаст
 
Сообщения: 547
Зарегистрирован: 01.04.2020 03:37:12

Re: ZenGL + поддержка android

Сообщение Alex2013 » 28.10.2024 21:00:33

Ок спасибо за отзыв ! Буду пытается в никнуть в то что уже есть . Жаль что laz4android не помогает (как минимум пока ) бо как-то это способ сборки ближе к привычному лазарусу
Alex2013
долгожитель
 
Сообщения: 3093
Зарегистрирован: 03.04.2013 11:59:44

Re: ZenGL + поддержка android

Сообщение Seenkao » 21.12.2024 20:48:30

Выпущена новая версия 4.14, изменений не много:
- корректирована работа с мышью, как оказалось, если окно не занимает всё рабочее пространство, то мышь могла работать не корректно.
- добавлен флаг "ERROR_MOUSE_DXDY", если мышь вне пределов окна, то "mouseDX" и "mouseDY" будут возвращать данные значения.
- таймера теперь работают с типом Double (раньше были LongWord), для большей точности, но требуется проверка.
- возвращены функции: "u_IntToStr", "u_StrToInt", "u_FloatToStr", "u_StrToFloat", "u_BoolToStr" и "u_StrToBool" (в версии 4.13 были удалены, но это вызвало не совсем верную работу логов).
- добавлены функции: "u_DoubleToStr" и "u_StrToDouble" (мне надоело бодаться с Delphi и вместо переопределения я их сделал отдельно).
- добавлены флаги: "WINDOW_FOR_FULL_X", "WINDOW_FOR_FULL_Y", "WINDOW_FULL_WIDTH" и "WINDOW_FULL_HEIGHT" - возвращают значения полного рабочего окна (не корректированного). Теперь флаги: "WINDOW_X", "WINDOW_Y", "WINDOW_WIDTH" и "WINDOW_HEIGHT" - возвращают значения корректированного окна (значения результата функции zgl_Get для этих флагов могут совпадать, если корректировки не производилось).
- немного корректирован код для Mac.

Дополнительно ввёл новые функции в файл "zgl_text.pas", так как собираюсь создавать диалоговые окна: "procedure CreateDataDialog(font: LongWord; Width, Height: Integer);" и "procedure AddTextDialog(const Text: UTF8String; Flags: LongWord; Scale: Single = 1; Color: LongWord = cl_White);". Ни где примеров работы с ними нет. С их помощью можно выводить разнообразный текст в определённую область, но делал я её для вывода в текстуру.
Seenkao
энтузиаст
 
Сообщения: 547
Зарегистрирован: 01.04.2020 03:37:12

Re: ZenGL + поддержка android

Сообщение Seenkao » 24.12.2024 12:53:36

Создал канал на Рутубе, многим проще сейчас там смотреть. Большинство роликов перенесено на автомате (но походу все ролики переноситься будут долго, один ролик уже второй день обрабатывает).
https://rutube.ru/channel/51284137/
Seenkao
энтузиаст
 
Сообщения: 547
Зарегистрирован: 01.04.2020 03:37:12

Re: ZenGL + поддержка android

Сообщение Снег Север » 24.12.2024 13:03:51

Seenkao :!:
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3046
Зарегистрирован: 27.11.2007 16:14:47

Re: ZenGL + поддержка android

Сообщение Seenkao » 28.12.2024 21:56:00

Обновил последнюю версию, так как сам же и накосячил. Исправлена коррекция окна для Windows и вроде исправил работу полноэкранного приложения (не уверен что исправил, фигня какая-то там творится, надо будет разобраться что не так).

Ах, да, править начал из-за того что несколько китайцев решили поинтересоваться ZenGL. Точнее поинтересовался один, а вот скачало уже несколько китайцев, видимо им посоветовали. Как бы бума не наступило...
Seenkao
энтузиаст
 
Сообщения: 547
Зарегистрирован: 01.04.2020 03:37:12

Re: ZenGL + поддержка android

Сообщение Снег Север » 28.12.2024 23:35:33

Seenkao, китайцев уже почти полтора миллиарда, это необъятный рынок. Не упустите...
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3046
Зарегистрирован: 27.11.2007 16:14:47

Re: ZenGL + поддержка android

Сообщение Seenkao » 29.12.2024 09:32:50

Снег Север, я наверно боюсь такой популярности... Хотя вроде должен радоваться.
Seenkao
энтузиаст
 
Сообщения: 547
Зарегистрирован: 01.04.2020 03:37:12

Re: ZenGL + поддержка android

Сообщение Seenkao » 07.01.2025 14:19:01

Обновил версию до ZenGL 4.15.

Больших изменений нет, но какие-то критичные изменения присутствуют:
- исправлен баг для Linux, когда при вызове "zgl_SetParam" параметры рабочей области не менялись вместе с общей областью. Это критично для функционала мыши: например в игре "Змейка", если включить мышь, не работал нижний пункт меню, мышь якобы выходила за пределы окна.
- исправлены ошибки для Mac OS. В том числе и изменение размеров окна и переключения окна в полноэкранный режим и обратно (теперь 4-я демка правильно работает, кроме одного пункта).
- когда при создании окна задан хоть один параметр больше размера окна, приложение переходит в полноэкранный режим.
- исправлены ошибки связанные с Android. В том числе исправлена ошибка по работе с тачскрином, теперь корректированное окно возвращает значения касаний только в пределах рабочего окна (для полного окна есть глобальные координаты).
- исправлена "древняя" ошибка джойстиков (Linux) при отладке приложений (и сразу во все демки добавлены все флаги отладки) - благодарность Skvoznjak за напоминание и напоминание как обойти проблему.
- исправлена работа с мышкой в LCL-приложениях.
- исправлено возвращение дирректорий для LCL-приложений.


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

Вот что это за баг выполз? Для Android-приложений. Если где-то в начале объявить одним из первых модулей Sysutils, то приложение просто "не запустится", и ошибок не выдаст. Просто будет висеть и пытаться проинициализироваться.
Отметьте для себя, что для Android не надо Sysutils ставить одним из первых модулей в главном модуле программы.

В общем, думаю достаточно стабильная версия. Я даже до Mac-а добрался, чтоб исправить ошибки (хотя, там исправлять то нечего было для изменения разрешения, сам давным давно пропустил момент обновления окна).

Всех с праздниками! 8)
Seenkao
энтузиаст
 
Сообщения: 547
Зарегистрирован: 01.04.2020 03:37:12

Re: ZenGL + поддержка android

Сообщение Seenkao » 14.02.2025 06:55:19

Привет всем! ;)

Выпущена новая версия --> ZenGL 4.16. <--

Из важных изменений ZenGL это:
- созданы динамические библиотеки (в архиве содержаться, но можете собрать и сами).
- перебраны модули "zgl_sprite_2d.pas", "zgl_grid_2d.pas", "zgl_render_target.pas" и "zgl_textures.pas". Из-за чего новая версия обратно не совместима с прошлыми версиями. :(


Теперь вы можете собрать четыре разных динамических библиотеки ZenGL! Обратите внимание на это.
- одна библиотека для стандартного функционала ZenGL.
- одна библиотека для использования ZenGL в LCL/VCL приложениях.
- одна библиотека для использования нужной вам версии OpenGL (можно использовать полную функциональность OpenGL, но в большинстве случаев не совместима с графическим функционалом ZenGL).
- одна библиотека для использования нужной вам версии OpenGL в LCL/VCL приложениях.

Из обновлений ZenGL:
- изменены константы для таймеров, теперь: TIMER_STOP, TIMER_START, TIMER_SLEEP_TO_START и TIMER_SLEEP_TO_STOP.
- в модуль "zgl_textures.pas" добавлены функции: "tex_GetWidth", "tex_GetHeight", "tex_GetTextireID" и "tex_GetZglPTexture".
- в модуль "zgl_render_target.pas" добавлена функция "rtarget_GetSurface".
- исправлена ошибка в процедуре "pr2d_Rect", при определённых данных прямоугольник мог не прорисоваться.
- добавлена процедура "mouse_LockInScreen", которая производит захват мыши в области экрана. Пока только для Windows и для Linux.
- исправлена давняя проблема в процедуре "tex_CalcAlpha". Пока не известно, влияла ли на что-то эта ошибка, но есть подозрения что это вызывало переполнение памяти в демках "LightEngine2D" для Delphi.
- добавлена 17-я демка, показывающая работу с полным OpenGL в LCL/VCL приложениях.
- в модуль "zgl_pasOpenGL" добавлены функции: "gl_GetVerMajor" и "gl_GetVerMinor". Нужны только для связи ZenGL с данным модулем.
- в модуль "zgl_font.pas" добавлена функция "zgl_GetFont".
- созданы демки для новых версий Delphi. С динамическими библиотеками теперь можно запускать 64-х битные приложения на Delphi.
- в модуль "zgl_application" добавлены процедуры "app_MainLoopHandle" и "app_MouseProc" для обратной связи с ZenGL. Нужно только для LCL/VCL приложений.
- другие множественные изменения.


Из обновлений Green Engine:
- добавлена функция "ge_GetEdit" - возвращает указатель на структуру поля ввода.
- функция "ge_GetEditToText" переименована в "ge_GetTextEdit".
- функция "ge_SetTextToEdit" переименована в "ge_SetTextEdit".
- некоторые другие корректировки кода.


Изменений очень много, если хотите с ними ознакомиться, читайте "Update_ZenGL.txt".

Множество примеров в демках и документированы! Так же лежат сопровождающие файлы "ReadMe.txt".

Всем успехов! :D

https://rutube.ru/video/339a1e879650052 ... ea3f48919/
ну и видео вдовесок. )))
Seenkao
энтузиаст
 
Сообщения: 547
Зарегистрирован: 01.04.2020 03:37:12

Пред.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Рейтинг@Mail.ru