Browse Source

ReadMe )))

Mirrel 4 years ago
parent
commit
fc0105f8fb
1 changed files with 22 additions and 73 deletions
  1. 22 73
      README.md

+ 22 - 73
README.md

@@ -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