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

ZenGL Update

Страницы: 1 2 330 31 Следующая »
#0
(Правка: 20 фев 2025, 0:34) 1:00, 10 авг 2020

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

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

Поддерживаемые платформы для FPC/Lazarus:
  - Windows 32/64
  - Linux 32/64
  - Android ARM32/ARM64/x86/x86_64
  - портативные компьютеры (Steam Deck, Rog Ally, Ayaneo и другие основанные на Linux или Windows).
  - MacOS Cocoa - тестовая версия

- MacOS Carbon в версии 4.0 было удалено, при необходимости используйте версию 3.12

 

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

ZenGL - исходный код.

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

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

--------------------------------------------------------------------------------------
Старые версии:

GitHub вплоть до версии 4.2.

ZenGL 3.24

+ изменения

--------------------------------------------------------------------------------------
ZenGL 3.20

+ изменения

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

Игры и программы с использованием ZenGL:

  • open-flappybird - исходный код.
  • Пэкмен - исходный код.
  • Penuhi Gizi Game - исходный код.
  • Охотник на троллей - исходный код.
  • Retroid - Графический интерфейс для ретро-игр и многого другого... (c)
  • Andry World - игра под Android.
  • исходники тетриса - тема откуда взяты исходники.
  • Lasers, Ropes, Bombs and Portals (WIP)
  • Planet R-12
  • Сюда буду выкладывать игры, которые затерялись на просторах интернета.
  • в списке пока:

    Dangerous caves

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

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

    демо-версии запущенные на андроид


    Android:
      Видео, где показана сборка проектов используя Android Studio.
      Решение проблем, связанных с запуском приложений на Android

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

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

    Старый сайт больше недоступен. Информация почти утеряна по нему. :(

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

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

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

    #1
    (Правка: 20 фев 2025, 0:40) 1:00, 10 авг 2020

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

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

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

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

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

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

    + Дальнейшие планируемые изменения:

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

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

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


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

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

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

    Связь со мной:
    - почта
    Канал на ютубе, выкладываю периодически видео может кому полезно будет. Ну, или так же на форумах, просматриваю темы, по возможности отвечаю (или отмечаю о недоработках для себя)

    #2
    (Правка: 4 июля 2023, 18:58) 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, 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 330 31 Следующая »
    ПрограммированиеФорумОбщее