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

ZenGL Update (29 стр)

Страницы: 126 27 28 29 30 31 Следующая »
#420
(Правка: 6:27) 6:05, 5 янв 2025

Skvoznjak
> Пришлось это место в коде {$R-} {$R+} окучивать
хорошо, уговорил, исправил это место, не совсем так как у тебя, но исправил. )))

Задал работы, теперь всем демкам включать эти флаги для отладки... Ну может оно и к лучшему?


Да, и ты у себя лучше сделай так:

{$Push}
      {$R-}
      SetLength(joyArray[joyCount].Info.Name, 256);
      FpIOCtl(joyArray[joyCount].device, JSIOCGNAME,    @joyArray[joyCount].Info.Name[1]);
      FpIOCtl(joyArray[joyCount].device, JSIOCGAXMAP,  @joyArray[joyCount].axesMap[0]);
      FpIOCtl(joyArray[joyCount].device, JSIOCGAXES,    @joyArray[joyCount].Info.Count.Axes);
      FpIOCtl(joyArray[joyCount].device, JSIOCGBUTTONS, @joyArray[joyCount].Info.Count.Buttons);
      {$Pop}

потому что состояние до R- может быть уже R-.

#421
7:15, 5 янв 2025

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

#422
(Правка: 7 янв 2025, 13:34) 16:36, 6 янв 2025

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

  Больших изменений нет, но какие-то критичные изменения присутствуют:

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

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

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

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

#423
(Правка: 17:04) 16:56, 6 янв 2025

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

Так в линуксе давно так было, что некоторые программы требовали чтобы первым был указан какой-то модуль связанный с памятью, иначе не заработает. А у Sysutils могут быть похожие с другими модулями процедуры, и емнип как раз у этого модуля были проблемы с ошибками при невозможности открыть файл, так что приходилось заранее предсказывать, функцией padlofail откроется он или нет:) Ещё в лазарусе есть похожие с фпц имена. Наделали одинаковых имён процедур, классов, констант и т.д. а потом такое вылазит. Ещё когда статически линковали gdb с fp, то там часто не собиралось потому, что линковалось с внутрянкой системной библиотеки вместо нужных отладчику. Линковщик находил функции с нужными именами где-то в системе и кидал ошибки на недостающие элементы. А если бы нормально слинковал, то потом не работало бы.

#424
13:11, 7 янв 2025

Skvoznjak, ты демку обещал для частиц запилить. )))

#425
(Правка: 6:01) 5:53, 14 фев 2025

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

Выпущена новая версия --> 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

+ ютуб
#426
10:26, 25 фев 2025

Mirrel
>Skvoznjak, ты демку обещал для частиц запилить. )))

А ты обещал окошко в сверхольшом размере протестить;)
И заметь, я выполнил обещание раньше тебя - не прошло и 10 лет, а оно уже готово!
https://disk.yandex.ru/d/zAn4We8tslME0g
Демка21. Уже собран бинарь для линукса, смотреть со звуком. В корне реадме, там написано что да как.

Будешь смотреть код, обрати внимание на ssprite2d_Draw(tttq, Если ей задать Х координату 0, то как-то незамечательно левый край спрайта растянут, совсем тонким слоем. Или у картинки левый край не замечательный, или масштабирует так голимо.

#427
(Правка: 14:04) 13:41, 25 фев 2025

Skvoznjak
> А ты обещал окошко в сверхольшом размере протестить;)
если ты про Linux, то тестируй, там не должно быть ни каких проблем с размерами мониторов.

  Вопрос, как ты поставишь разрешение больше чем максимальное разрешение монитора? (ну чтоб долго не гуглить).

  Твою демку проверю! ))) И посмотрю что за "баг".

  Забыл... там же ограничение стоит в wnd_create на размеры окна (чтоб не было больше размеров монитора), просто отключи его. Но определений для этого я делать не буду! Помни, библиотека создана для обычного пользователя, не для программиста. Нужные, дополнительные действия, я думаю ты сможешь сделать сам.

#428
17:45, 25 фев 2025

Mirrel

> Вопрос, как ты поставишь разрешение больше чем максимальное разрешение монитора? (ну чтоб долго не гуглить).

Так в линуксе и 8К ставится, только показывается фрагмент, а акошко можно перетягивать мышкой с зажатым альтом или винкеем. Сколько видеосистема позволит, столько и получится, а разрешение выше будет профанацией, а зенгл покажет что всё норм, в результате собьётся прицел при клике мышкой по экрану. Недавно опять это тестировал, на встройке райзена 7700, на своей версии движка - там же автор не успел всё так под мобилки заточить, потому нет никаких ограничений для этого.

#429
18:04, 25 фев 2025

Skvoznjak, повторяюсь, ты можешь сделать какое угодно окно, пошамань в процедуре wnd_create, будет тебе окно какое хочешь.
  Ограничения введены не для тебя, а для пользователей. Когда пользователь пытается что-то сделать, не думая о последствиях, то результат зачастую плачевным получается.

  Если я буду судить всех пользователей по себе, то я 1/10 кода могу просто выкинуть, потому что он мне не нужен. Я знаю рамки, и в нужные моменты не буду выходить за эти рамки. Но для пользователей эти рамки нужны, чтоб они "не сделали что-то не так". )))

#430
19:04, 25 фев 2025

Это понятно. Там ещё вопрос полезности движка эмиттеров не для демок. Он проигрывает сразу все эмиттеры, а бывает что бОльшую их часть нужно на время затушить.

#431
19:10, 25 фев 2025

Skvoznjak, если эмиттер существует, он его проигрывает. Не смотрел сильно, но вероятно есть проверка находится ли эмиттер сейчас в кадре (спрайты, тайлы и подобное именно так и реализованы), что повышает скорость обработки. Эмиттер не отрисовывается.

#432
(Правка: 18:47) 18:23, 5 мар 2025
Всем привет!

Очередное обновление для --> ZenGL 0.4.17.

- исправлены проблемы в работе многих менеджеров. Ранее могла проявляться ошибка когда ресурс якобы не загрузился/не создался.
- исправлена ошибка в функции text_Draw, это было при использовании выравнивания и проявлялось когда переносится только одно слово.
- теперь в функциях text_DrawEx и text_DrawInRectEx шкала размерности производит масштаб согласно заданному размеру шрифта.
- исправлена ошибка при переключении рендеринга с фреймбуфера на экран.
- добавлены проекты "LightEngine2D" и "Particle editor".
- в модуле zgl_primitives_2d.pas изменены процедуры: pr2d_Circle и pr2d_Ellipse. Теперь с помощью этих функций, при сплошной заливке, можно менять градиент цвета от центра к краям.

и некоторые другие изменения.

Динамические библиотеки были пересобраны.


Skvoznjak, я твою демку уже успел удалить... переименовывай папки. )))

себе я это тоже отмечаю, сам тоже виноват.

#433
19:21, 5 мар 2025

Mirrel
А зачем мне её переименовывать? Ты исторически перемещение партиклов ненавидишь, а я им давно во всю пользуюсь и потому использую ту версию движка, в которой есть то, что мне нужно, а в твою заглядываю посмотреть что там нового. А из нового там обычно то, каким ещё способом поломаешь сборку демок в линуксе. Попробуй в ZenGL_SRC/demos/FPC-Lazarus открыть консоль и набрать make - узнаешь много интересного и познавательного про вновь пропавший каталог и ошибки сборки 17 демки, а раньше все собирались.

И непонятно зачем ты поднял вопрос про движение частиц, если решил, что оно не нужно? Это какое-то типичное злодейское внедрение фич получается: чтобы внедрить новое, нужно изничтожить старое работающее, чтобы не было альтернативы.

#434
(Правка: 20:42) 20:39, 5 мар 2025

Skvoznjak
> Ты исторически перемещение партиклов ненавидишь
> непонятно зачем ты поднял вопрос про движение частиц, если решил, что оно не нужно?
откуда такие выводы? )))

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

> ошибки сборки 17 демки
я её даже не пытался запустить из терминала... извиняюсь... Ну посмотри пути в Lazarus и установи нужные. Тебе нафиг вообще она сдалась? Она для LCL приложений, 18-я так же не собирается в терминале.

Там есть 19-я и 20-я демки, которые показывают полный функционал, вне LCL.

> про вновь пропавший каталог
как эта борода задолбала... надо создавать этот каталог с помощью маке-файла... не забыть бы...

Страницы: 126 27 28 29 30 31 Следующая »
ПрограммированиеФорумОбщее