Войти
ПрограммированиеФорумОбщее

ZenGL Update

Страницы: 1 2 3 4 5 6 7 Следующая »
#0
(Правка: 18 июля 2021, 4:36) 1:00, 10 авг. 2020

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

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

Поддерживаемые платформы для Lazarus/FreePascal:
  - Windows 32/64
  - Linux 32/64
  - Android
  - MacOS Cocoa - тестовая версия

- MacOS Carbon (не проверено используйте версию 3.12 если не будет работать)

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

ZenGL - загрузить

ведётся разработка библиотеки Green Engine, основанной на ZenGL. Работать они будут только вместе!

Старая страничка, много полезного: ZenGL - архив гейдейва

--------------------------------------------------------------------------------------
старые версии:
ZenGL 3.24
ZenGL 3.20
--------------------------------------------------------------------------------------

Версия ZenGL 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 недостающими функциями, но немногими, очень много ещё отсутствует


Версия ZenGL 3.20 изменения:

  - мелкие модификации внутреннего кода.
  - настройка поддержки компиляции под Android, прописывание дефайнов, модификация кода.

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры
демо-версии запущенные на андроид


Android:
Решение проблем, связанных с запуском приложений на Android

Unix-системы:
Важно! В самом первом модуле надо прописывать код:

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}  

Основная информация не поменялась, кроме исходного кода. Смотрите  демо-версии и на сайте: ZENGL

сопутствующие видео.

+ Показать

Все вопросы и пожелания можно оставлять здесь или отправлять на мыло

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


#1
1:00, 10 авг. 2020

Я продолжаю работать с 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 , или задавая вопросы мне:
- почта
https://www.youtube.com/channel/UCn46Rn ... g/featured - канал на ютубе, выкладываю периодически видео может кому полезно будет. Ну, или так же на форумах, просматриваю темы, по возможности отвечаю (или отмечаю о недоработках для себя)

-----------------------------------------------------------------------------------------------------------------------
Новая версия выложена в шапке.

#2
(Правка: 24 дек. 2020, 19:02) 5:31, 28 сен. 2020

Представляю новую версию ZenGL! 3.25!!!
ссылка на скачивание

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

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

Парочка ссылок видео:

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#3
(Правка: 24 дек. 2020, 19:05) 18:11, 15 ноя. 2020

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры
Запуск демки на MacOS Cocoa
а тем временем, потихоньку полегоньку, глядишь и на маке можно будет создавать игрушки. (и пофиг что поздновато :) )

P.S. А походу ни сколько и не поздно! Big Sur продолжает поддержку OpenGL и OpenCL. )))

#4
19:53, 15 ноя. 2020

А ты не решал проблему совпадения имён библиотек движка с системными и паскалевскими? Она наблюдалась линуксе  и в этом движке, и в редакторе fp при его сборке с отладчиком. Суть её в том, что в  библиотеках заархавирована туева куча мелких либ *.o и иногда в разных  библиотеках находятся *.o с одинаковыми именами. А при линковке звёзды иногда складываются так, что *.o линковщик танет не оттуда, откуда ожидает разработчик. В зенгл линковщик тянул вместо движковой либы паскалевскую. Шаманить со сборочными скриптами чтобы этого избежать, это неудобный метод, из-за него сборка усложняется. Превентивно все  *.o из движка, которые можно переименовать, и после этого всё будет собираться, переименовал, пропатчил в движке линковку по типу

{$IFDEF USE_LIBJPEG}
  {$IFNDEF ANDROID}
    {$L z_jpeg_helper} //[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
    {$L z_jaricom}
    {$L z_jcomapi}
    {$L z_jdapimin}
    {$L z_jdapistd}
    {$L z_jdarith}
    {$L z_jdatasrc}
    {$L z_jdcoefct}
    {$L z_jdcolor}
    {$L z_jddctmgr}
    {$L z_jdhuff}
    {$L z_jdinput}
    {$L z_jdmainct}
    {$L z_jdmarker}
    {$L z_jdmaster}
    {$L z_jdmerge}
    {$L z_jdpostct}
    {$L z_jdsample}
    {$L z_jerror}
    {$L z_jidctflt}
    {$L z_jidctfst}
    {$L z_jidctint}
    {$L z_jmemmgr}
    {$L z_jmemnobs}
    {$L z_jquant1}
    {$L z_jquant2}
    {$L z_jutils} //[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
  {$ENDIF}
  {$IFDEF MACOSX}
И больше такого не случалось.

#5
20:44, 15 ноя. 2020

Вроде сталкивался. Там достаточно было модули местами поменять, чтобы прогружались первыми те, которые требуются.

Ну, или перебираешь модули и делаешь последовательную загрузку библиотек в том порядке, в котором тебе надо. (муторно, зато надёжно)

#6
(Правка: 19:52) 8:11, 16 ноя. 2020

Зашёл на форум зенгээла, оказывается ты на кирпиче застрял. Я тоже ,через два года там спотыкнулся.

Выложил прохождение  с некоторыми исправлениями.
+ Показать

#7
(Правка: 18:59) 18:59, 16 ноя. 2020

не сейчас... мак ждёт (хотя не наркоман я вроде)

ссылочку внутрь убери, а то как-то она не очень хорошо выглядит )))

#8
21:11, 16 ноя. 2020

Mirrel
> Я проверил, OpenGL работает на MacOS, но с определёнными ограничениями.
если ты и вправду устремился переточить ZenGL под мак, то твой следующий шаг - перепись на Метал!
(а от туда, для других платформ - Вулкан)

в 100й раз тебе повторю, твой единственный шанс, это публиковаться на не яндекс диске, а на каком-нить github-е.

#9
(Правка: 2:20) 2:18, 17 ноя. 2020

skalogryz, если и буду делать метал, то не сейчас.
Для этого опять информацию надо собирать. А информация опять вся в Си и objective-c как обычно... и выцарапывать её оттуда...

это публиковаться на не яндекс диске
кто-то давно не следил за версиями... )))
странно, а тут забыл подправить, исправил недочёт
#10
4:07, 17 ноя. 2020

Mirrel
> странно, а тут забыл подправить, исправил недочёт
во! уже дело!

#11
3:48, 20 дек. 2020

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

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

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

#12
18:06, 20 дек. 2020

Есть же программы для записи, есть эмуляторы. Зачем так мучить зрителя?

#13
18:26, 20 дек. 2020

Salamandr, смотря про что вы пишите!

#14
19:08, 20 дек. 2020

Mirrel
я про видео конечно, смотреть его не возможно. Где стабилизация камеры, почему идут постоянные дергания. Ну можно же её поставить жестко.

Страницы: 1 2 3 4 5 6 7 Следующая »
ПрограммированиеФорумОбщее