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

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

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

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

Сообщение ArmanHayots » 20.01.2024 13:49:03

Глаз зацепился за function col2d_PointInQuad(X, Y: Single; Quad: zglTRectPoints2D): Boolean. Если я правильно читал доки, то это проверка на вхождение точки в прямоугольник — и сразу вопрос: зачем прямоугольник описывать четырьмя точками, если достаточно двух противоположных, определяющих граничные значения по осям? Или это на случай повёрнутого прямоугольника или просто четырёхугольника? Но тогда задолбаетесь писать проверку на вхождение точки. Я слегка запутался.

UPD: Вижу в типах вроде как более подходящие zglTRectBPEP2D и zglTRect2D. Имеет смысл перегрузить функцию под них?
Аватара пользователя
ArmanHayots
незнакомец
 
Сообщения: 3
Зарегистрирован: 13.01.2024 16:51:49

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

Сообщение Seenkao » 20.01.2024 14:02:23

ArmanHayots писал(а):function col2d_PointInQuad(X, Y: Single; Quad: zglTRectPoints2D): Boolean

Делает проверку именно на произвольный четырёхугольник на плоскости.

ArmanHayots писал(а):Но тогда задолбаетесь писать проверку на вхождение точки.

нет, надо просто создать переменную как zglTRectPoints2D и использовать её в своей программе далее (если в этом есть необходимость).

Вам нужна функция col2d_PointInRect(X, Y: Single; const Rect: zglTRect2D): Boolean;
Задайте переменную как zglTRect2D (координаты, ширина и высота) и передайте точку и описание параллелограмма.

ArmanHayots писал(а):Имеет смысл перегрузить функцию под них?

ZenGL использует процедурный подход, перезагрузка функции производится немного другим путём. Но FPC может поддерживать данную перезагрузку (в отличии от Delphi) функций. Для себя вы можете это реализовать, мне же приходится учитывать код и для Delphi.
Seenkao
энтузиаст
 
Сообщения: 526
Зарегистрирован: 01.04.2020 03:37:12

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

Сообщение ArmanHayots » 20.01.2024 14:06:00

Спасибо, а то уже полез улучшать.
Аватара пользователя
ArmanHayots
незнакомец
 
Сообщения: 3
Зарегистрирован: 13.01.2024 16:51:49

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

Сообщение Seenkao » 27.01.2024 15:28:02

Новая версия ZenGL 0.4.7.

- Корректирован код для работы с полным OpenGL.
- Корректированы большинство демо-версий.
- Удалены демки для Eclipse (для Android Studio остались).
- Корректирован код для MacOS и демки с использованием шейдеров (19 и 20) теперь можно запустить.
Seenkao
энтузиаст
 
Сообщения: 526
Зарегистрирован: 01.04.2020 03:37:12

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

Сообщение Seenkao » 07.06.2024 10:05:13

Всем привет!
Встречайте очередное обновление ZenGL 0.4.9.

Изменений и много и не много. Визуально немного, но по мелочи было сделано много:
- Убрал очередной баг, который ломал загрузку текстур. И из-за этого теперь только вручную можно включить/выключить поддерживаемые расширения (определения) для изображений. Большая вероятность что баг уже давно появился, но вот я его увидел только недавно.
- Добавлена документация в определённых модулях, но ещё не везде.
- Исправил маленький баг OpenAL.
- Добавил функцию ge_SetTextToEdit, которая может записать в поле ввода строку (Green Engine).
- Корректирована и отделена работа устаревшего OpenGL с новым, но наверняка ещё много не учтено, я мало тестировал OpenGL 3+.
- 19-я демка для Android теперь работает правильно, до 20-й так и не добрался перебрать её... Если есть желающие помучать GLES 2.0 милости просим. )))
- некоторые другие мелочи, на которые как раз больше всего времени уходит. :evil:

Демки корректированы согласно изменений, но могут содержать ошибки. :oops:
Seenkao
энтузиаст
 
Сообщения: 526
Зарегистрирован: 01.04.2020 03:37:12

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

Сообщение Alex2013 » 09.06.2024 10:20:37

Эх мечты мечты: Поддержку Oculus Quest в ZenGL как я понимаю ждать бесполезно ? :roll:
Alex2013
долгожитель
 
Сообщения: 3049
Зарегистрирован: 03.04.2013 11:59:44

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

Сообщение Seenkao » 09.06.2024 15:40:04

Alex2013, суть не в том, что бесполезно, суть в том, что я просто зарыт в мелочах...

Сейчас пытаюсь сделать визуальные элементы. По той причине, что работа с визуальными элементами нужна везде. Я какую программу не берусь делать и втыкаюсь из раза в раз: меню нужно реализовать... диалоги нужно реализовать... кнопки нужно реализовать... ещё что-нибудь нужно реализовать...

Честно говорю, задалбывает. Сколько можно одно и то же из раза в раз реализовывать и не автоматизировать эти все вещи?

А начал реализовывать эти элементы начал втыкаться в другие мелочи: чтоб всё работало одинаково везде, чтоб баги для всех систем выползали одинаковые, чтоб была полная совместимость со всеми поддерживаемыми системами и системами, которые возможно будут поддерживаться. Чтобы при добавлении очередной поддерживаемой системы я не бодался с проблемами ZenGL, а искал проблемы именно с той системой, что добавляю. Точнее, чтоб внутренний функционал ZenGL + GE работал практически без проблем, не зависимо от системы.

Не сложно что-то добавить в ZenGL, сложно "основы" сделать. Которые не зависимы ни от системы, ни от графической реализации (DX, OpenGL, Vulkan, Metal), ни от реализаций звука (DS, OpenAL) - тут кстати, заковырка... и за это я ещё не брался...
Эти основы должны работать при любых изменениях: изменилась ОС? - работаем! Изменился контекст вывода? - работаем! Изменился контекст для звука? - работаем!

Я начал делать диалоговые окна (уже якобы были сделаны кнопки, меню) и наткнулся на проблему с реализацией работы с цветом. Каждый визуальный элемент должен иметь свой свет. И я долго и упорно соображал, что я "изобразил" ранее с цветом. Полдня убил на то, что понял, что уже реализовал частично эту работу с цветом, но для визуальных элементов не доделал. И "доделал" (надеюсь).
А до диалоговых окон так дело и не дошло.

---------------------------
Alex2013, ты сам попробуй реализовать поддержку. Возможно всё не так сложно, как кажется. Если какие-то советы/подсказки нужны - обращайся, может и смогу подсказать что. Только помни, я в OpenGL 3+ практически профан, шейдеры почти не писал, хотя знаю как они работают. Если хочешь использовать устаревший контекст для 3D, то демку могу наклепать по быстрому, как она будет делаться в ZenGL. Для более старшего контекста уже демки есть.
Seenkao
энтузиаст
 
Сообщения: 526
Зарегистрирован: 01.04.2020 03:37:12

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

Сообщение Seenkao » 11.06.2024 23:19:03

Прювет!!!

В очередной раз внеплановое обновление. ZenGL 0.4.10. Решил протестировать демки для Android и понял что некоторые файлы настроек перепутаны. Новичкам будет не понятно где искать проблему, потому постарался её сразу устранить. Ну и сразу внёс изменения в код:
- Тачскрин для Andorid теперь правильно показывает Click, до этого и Click и удержание работали одинаково. Теперь отдельно.
- для Green Engine все приставки gegl заменены на ge. Так же изменено название папки с исходниками с srcGEGL на srcGE. Для избежания дальнейшей неразберихи, если в ZenGL добавятся другие контексты отображения (DX, Vulkan или ещё что-нибудь).
- добавлен массив для работы с цветом в модуле ge_color и все визуальные элементы будут основываться на данных в этих массивах.

Все изменения в файле Update_ZenGL.txt .
Seenkao
энтузиаст
 
Сообщения: 526
Зарегистрирован: 01.04.2020 03:37:12

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

Сообщение Alex2013 » 14.06.2024 15:21:38

Seenkao писал(а):Alex2013, суть не в том, что бесполезно, суть в том, что я просто зарыт в мелочах...

Сочувствую...
Seenkao писал(а):Alex2013, ты сам попробуй реализовать поддержку. Возможно всё не так сложно, как кажется. Если какие-то советы/подсказки нужны - обращайся, может и смогу подсказать что.


Там если честно действительно не так уж сложно ( если дело касается собственно VR) проблемы начинаются в том что нет ( или не было нужно будет поискать) нормального прота OpenVR/OpenXR, а Oculus SDK ворде как тот-же самый но как его использовать в среде Andorid дело темное.
Alex2013
долгожитель
 
Сообщения: 3049
Зарегистрирован: 03.04.2013 11:59:44

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

Сообщение Seenkao » 24.06.2024 08:18:01

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

В связи с тем что меня "подопнули", произвёл корректировку кода для Windows и Delphi. Засиделся я на Linux и про Windows совсем забыл... :-[
И сразу же обновил LightEngine2D для использования её в последней версии ZenGL. Теперь я прицепляю в конце архива приставку _for_ZenGL_N_N_N, чтобы было понятно с какой версией её использовать (возможно придёт время и библиотека полностью стабилизируется).

Основные изменения:
- Исправлен код для Delphi.
- Исправлена третья демка (по моей вине проблемы в ней были).
- Исправлен VCL проект по созданию шрифтов для ZenGL.
- Исправлена ошибка в модуле "zgl_lib_zip" проявляющаяся в LCL (а может и в VCL) проектах с использованием png-формата.
- Исправлена проблема "длинного пути" в Delphi XE (не правильно определялась длина пути и могла содержать лишний мусор в строке). Некоторые создаваемые приложения могли не правильно работать из-за данной ошибки. Возможно проблема осталась, просто значительно уменьшен её шанс.
- Исправлены демки библиотеки LightEngine2D для данной версии ZenGL и для Delphi тоже (уменьшены вылеты в третьей демке из-за памяти, но демка остаётся не стабильной. Возмножно другие демки с использованием Delphi так же будут вылетать).

Исправления коснувшиеся Delphi походу достаточно критичные и ноги этих багов росли хрен знает с каких времён. Даже LightEngine стал стабильнее работать, но всё равно не стабилен с Delphi.

Данная версия для ОС: Windows, Linux и Android достаточно стабильна. MacOS пока не проверял, если работать не будет, используйте версию 0.4.7 - она была стабильной для MacOS.

Скачать можно здесь.

Добавлено спустя 45 секунд:
Alex2013, ты забыл ещё что на это надо время. )))
Seenkao
энтузиаст
 
Сообщения: 526
Зарегистрирован: 01.04.2020 03:37:12

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

Сообщение Снег Север » 24.06.2024 09:29:54

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

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

Сообщение Снег Север » 11.07.2024 12:53:51

А можно добавить простейшую демку, которая бы иллюстрировала работу с ge_game_menu?
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

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

Сообщение Seenkao » 11.07.2024 13:27:30

Работаю над этим, как раз для змейки простейшее меню хочу сделать. Но у меня пока заказ, и сильно не отвлекаюсь от заказа.

Тут видео, где я делал меню. Больше предоставить пока не чего. :cry:
Seenkao
энтузиаст
 
Сообщения: 526
Зарегистрирован: 01.04.2020 03:37:12

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

Сообщение Снег Север » 11.07.2024 14:38:19

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

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

Сообщение Seenkao » 04.10.2024 02:29:21

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

Выпушена новая версия ZenGL 0.4.12.

Основные изменения:
- теперь ViewPort работает на всё создаваемое окно. При корректировке изображения, оно корректируется средствами OpenGL.
- исправлена проблема работы с двумя и более мониторами в Linux.
- демки для FreePascal и Lazarus объеденены в одну папку.
- переработаны 7-я и 12-я демки. Теперь они содержат дополнительный функционал ZenGL.
- в проекты Android добавлен функционал определения полного экрана (java-код). Это необходимо больше для более поздних версий Android.
- исправлен баг с видео в Android (при попытке восстановить приложение).
- проекты Android разделены на Windows и на Unix (win и unix - соответственно). Добавлены файлы быстрых сборок для Windows - "build_android.bat".
- работа со спрайтами и определёнными примитивами теперь происходить от заданного прямоугольника (zglPRect2D / zglTRecr2D).


и множество изменений в следствии перечисленных изменений и корректировки кода. Все изменения в файле Update_ZenGL.txt.

Данная версия не проверена только на MacOS. Ну уж очень много править пришлось, хотя изменений чуть больше капли. )))

Со спрайтами и примитивами сейчас внимательнее будьте! Это изменение заставляет больше производить инициализации, но уменьшает саму работу со спрайтами и примитивами в коде (меньше надо передавать данных). И правильно передавайте данные! Где-то надо указатель передать, а где-то сами данные.

Зато можно похвастаться. Виртуальная клавиатура заработала с минимальными правками. Вот что значит готовый рабочий код. ))) Жаль что её всё равно перелопачивать придётся почти полностью.

Позже выложу пример как собирать проекты под Android и как создавать свои проекты под Android наиболее простым путём на данный момент. Многое постарался описать в сопровождающих файлах ReadMe.txt.
Со временем доделаю всё как надо и добавлю нормальное создание проектов, где не надо будет мучаться с мелкими проблемами, только будет это не в скором времени. :(

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

Пред.След.

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

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

Сейчас этот форум просматривают: MailRu[bot] и гости: 2

Рейтинг@Mail.ru