|
@@ -1,4 +1,4 @@
|
|
|
-# ZenGL version 3.27 + MacOS Cocoa - beta version
|
|
|
+# ZenGL version 3.28 + MacOS Cocoa - beta version + Green Engine v1.0
|
|
|
|
|
|
[zengl](https://zengl.org) - изначальный сайт создателя библиотеки.
|
|
|
|
|
@@ -21,88 +21,37 @@
|
|
|
[zengl for iOS](https://github.com/skalogryz/zengl) - версия которая поддерживает iOS (мною не проверено).
|
|
|
|
|
|
***
|
|
|
-В данной версии корректирована работа с VCL/LCL (для Delphi не была создана демка, код можно скопировать из проекта Lazarus)
|
|
|
-!требуется проверка!
|
|
|
+В данной версии:
|
|
|
|
|
|
-Введено ограничение по FPS до 30 кадров в секунду.
|
|
|
-Для изменения FPS введена процедура **scr_SetFPS(FPS: Byte)**. При FPS > 60 включается вертикальная синхронизация, во избежание проблем с разными видеокартами.
|
|
|
-!Внимание! Эта процедура и вертикальная синхронизация не одно и то же!!!
|
|
|
+- Добавлена библиотека Green Engine собственной разработки. Это вроде как дополнительное API для библиотеки ZenGL. Разрабатывалась ранее и клавиатура из Green Engine была добавлена в более ранние версии. __Внимание!!! Работает только с ZenGL!!! (bold)__
|
|
|
+ - В данной версии GE создано независимое от платформы поле ввода. Должно работать на всех платформах, но на мобильных платформах и MacOS не проверено. Будет проверено и добавлено в исправления.
|
|
|
|
|
|
-Редактированы демки (надеюсь все). На данное время удалены не используемые демки.
|
|
|
+ - В дальнейшем ожидается доработка библиотеки GE.
|
|
|
|
|
|
-Для Windows 64 решена проблема вывода видеофайла.
|
|
|
-***
|
|
|
-Введены функции для работы с таймерами.
|
|
|
-создание таймера:
|
|
|
-- function timer_Add(OnTimer: Pointer; Interval: Cardinal; Flags: Byte; SleepInterval: Cardinal = 5): Byte;
|
|
|
-Flags - указывает какой таймер запускаем. Start/Stop - таймер запуска/остановки. SleepToStart/SleepToStop - таймер с задержкой в установленное время (секунды),
|
|
|
-задержка указана в SleepInterval.
|
|
|
-На выходе будет номер таймера. Максимальное количество таймеров 20.
|
|
|
+- изменены названия малой части процедур/функций, для более визуального восприятия. В частности __utf8_GetID (bold)__ заменена на __utf8_toUnicode (bold)__ так как она как раз переводит UTF8 в юникод.
|
|
|
|
|
|
-удаление таймера:
|
|
|
-- procedure timer_Del(var num: Byte) - где "num" номер таймера который надо удалить
|
|
|
+- добавлена функция __function Unicode_toUTF8(Symb: LongWord): UTF8String; (bold)__ перевода из юникода в UTF8.
|
|
|
|
|
|
-Запуск/остановка уже созданного таймера:
|
|
|
-- function timer_StartStop(num: Byte; Flags: Byte): Boolean - "num" номер таймера, "Flags" флаг Start или Stop
|
|
|
+- изменена и ускорена работа с текстом.
|
|
|
+ - теперь вы не получите ошибку кода, если символа не существует при загруженном шрифте. Все не существующие символы будут отмечены знаком __? (bold)__ .
|
|
|
+ - вы сможете писать на любом языке, но, если шрифт для этого не предназначен, все "не печатаемые" (не определённые в шрифте) символы будут так же отмечены знаком __? (bold)__. При сохранинии такого текста в файл, вероятнее всего он будет выведен правильно.
|
|
|
+ - в демонстрационной версии 6, показана работа со шрифтами. Если вам нужен шрифт определённого размера, вы должны с ним работать через __procedure setFontTextScale(Index: LongWord; fnt: Byte); (bold)__, она позволит вам более быстро работать с данным шрифтом. Если не постоянно, то смотрите демонстрационную версию.
|
|
|
+ - дополнен ряд функций для работы с текстом-шрифтами. Смотрите в файле zgl_text.pas.
|
|
|
+ - созданы процедуры для загрузки/сохранения текста __procedure txt_LoadFromFile(const FileName: UTF8String; out Buf: UTF8String);, procedure txt_SaveFromFile(const FileName: UTF8String; const Buf: UTF8String); (bold)__.
|
|
|
|
|
|
-Запуск/остановка созданного таймера с установленной задержкой:
|
|
|
-- function timer_SleepStartStop(num: Byte; Flags: Byte; IntervalSleep: Cardinal = 1): Boolean - "IntervalSleep" заданный интервал в секундах
|
|
|
-***
|
|
|
-Введены функции для работы с несколькими шрифтами (фонтами) не более 5 разных (можно увеличить изменяя константу). Функции загрузки шрифтов возвращают
|
|
|
-номер загруженного шрифта. Вы его должны сохранить в переменной и работать с ним.
|
|
|
+- были исправлены некоторые ошибки в коде и изменены части работы с клавиатурой. __keysLast (bold)__ - сейчас работает только для печатаемых клавиш.
|
|
|
|
|
|
-- procedure setTextScale(Index: LongWord; fnt: Byte) - устанавливает размер (шкалу) шрифта, измеряется в пикселах!
|
|
|
-- function getTextScale(fnt: Byte): LongWord; - возвращаетразмер (шкалу) шрифта.
|
|
|
+- введена процедура постотрисовки. Регистрируется с помощью __zgl_Reg (bold)__ и флагом __SYS_POSTDRAW (bold)__. Срабатываете данная функция только после того как выведется всё в окно. Бывает нужно, когда нужно работать с видеокартой, но не нужно ни чего выводить.
|
|
|
|
|
|
-работают от заданного шрифта!!! Обратить на это внимание!
|
|
|
+- теперь обработка клавиатуры/мыши/тачпада необходимо производить с помощью регистрируемой процедуры и флагом __SYS_EVENTS (bold)__. "Очистку" их больше производить нет необходимости.
|
|
|
|
|
|
+- были исправления в части кода, о которых уже забыл... )))
|
|
|
|
|
|
-17-я демка доработана для всех ОС(возможны проблемы в работе с самим приложением) но только под клавиатуру, под Android не сделано на данное время.
|
|
|
--- необходимо включить дефайн в файле конфигурации USE_MENUGUI
|
|
|
+[![переделка demo3]()](https://youtu.be/qb8hxilAI_I)
|
|
|
|
|
|
***
|
|
|
-Для MacOS много не доделано, но оснавная часть работает.
|
|
|
-3-я демка работает, но нельзя вводить текст (буду решать для всей библиотеки!)
|
|
|
-4-я демка - работает не стабильно. Решить для MacOS не знаю как, но основные режимы работают, поэтому используйте через перезагрузку приложения.
|
|
|
-12-я демка не работает, так как подобный рендеринг для MacOS Cocoa считается устаревшим.
|
|
|
-15-я и дальнейшие демки не работают.
|
|
|
-Библиотеки для видео и физики требуют полной переработки, так как в ZenGL были использованы довольно старые библиотеки. Видео возможно запустится, но для этого надо скомпилировать файлы в папке "yuv2rgba".
|
|
|
-
|
|
|
-18-я демка... извиняюсь, но LCL(для MacOS Cocoa) не будет поддерживаться вообще. Если есть желание, можете предложить решение для LCL, и я его использую.
|
|
|
-
|
|
|
-Введена процедура **procedure gl_SetCoreGL(mode: Byte);**
|
|
|
-**mode** принимает значения CORE_2_1, CORE_3_2,CORE_4_1 - поэтому умельцы, могут включить нужный им OpenGL и работать именно с ним.
|
|
|
-**устанавливать значение надо до создания окна!!!**
|
|
|
-**необходимо проверить триангуляцию!!!**, у меня она не работает.
|
|
|
-
|
|
|
-Если вы используете BigSur или CPU не x86_64 то вам надо:
|
|
|
-установить библиотеки с сайта [Homebrew](https://formulae.brew.sh/formula/ "Homebrew")
|
|
|
-
|
|
|
-- zlib
|
|
|
-- libzip
|
|
|
-- libogg
|
|
|
-- vorbis
|
|
|
-и если знаете как запустить 15-ю и 16-ю демо-версии, то:
|
|
|
-- theora
|
|
|
-- chipmunk
|
|
|
-
|
|
|
-в файле "zgl_config.cfg" выставить
|
|
|
+Связь: [email protected]
|
|
|
+Так же можно связаться со мной на форумах Lazarus или [ZenGL](http://zengl.org/forum/) и высказать пожелания и недоработки.
|
|
|
|
|
|
-Code:
|
|
|
-
|
|
|
- {$DEFINE MAC_COCOA}
|
|
|
-
|
|
|
-и выключить
|
|
|
-Code:
|
|
|
-
|
|
|
- {$IFDEF MAC_COCOA}
|
|
|
- {$DEFINE NO_USE_STATIC_LIBRARY} // -> {.$DEFINE NO_USE_STATIC_LIBRARY}
|
|
|
- {$ENDIF}
|
|
|
-
|
|
|
-
|
|
|
-Если все библиотеки будут установлены по умолчанию, то демо-версии должны заработать.
|
|
|
-
|
|
|
-***
|
|
|
-Введена функция очистки экрана
|
|
|
-procedure scr_SetClearColor(flag: Boolean; Color: Cardinal = 0);
|
|
|
-flag - будет производится очистка или нет, Color - цвет очистки в формате RRGGBB
|
|
|
+Поддержать можно через сбер:
|
|
|
+2202200951985520
|