Browse Source

Create README.md

Seenkao 4 years ago
parent
commit
9d4cdd4cbb
1 changed files with 107 additions and 0 deletions
  1. 107 0
      README.md

+ 107 - 0
README.md

@@ -0,0 +1,107 @@
+# ZenGL version 3.27 + MacOS Cocoa - beta version
+
+**ZenGL** - это бибилотека создающая контекст окна для работы с OpenGL на разных платформах.
+
+**Среда разработки**
+- Lazarus/FreePascal
+- Delphi
+
+**Поддерживаемые платформы для Lazarus/FreePascal:**
+- Windows 32/64
+- Linux 32/64
+- Android
+- MacOS Cocoa - beta version
+- *MacOS Carbon (не проверено используйте версию 3.12 если не будет работать)*
+
+**Поддерживаемые платформы для Delphi:**
+- Windows 32 (вероятно некоторые демо-версии будут работать и с Windows 64, но точно не все)
+
+***
+В данной версии корректирована работа с VCL/LCL (для Delphi не была создана демка, код можно скопировать из проекта Lazarus)
+!требуется проверка!
+
+Введено ограничение по FPS до 30 кадров в секунду.  
+Для изменения FPS введена процедура **scr_SetFPS(FPS: Byte)**. При FPS > 60 включается вертикальная синхронизация, во избежание проблем с разными видеокартами.  
+!Внимание! Эта процедура и вертикальная синхронизация не одно и то же!!!
+
+Редактированы демки (надеюсь все). На данное время удалены не используемые демки.
+
+Для Windows 64 решена проблема вывода видеофайла.
+***
+Введены функции для работы с таймерами.
+создание таймера:
+- function timer_Add(OnTimer: Pointer; Interval: Cardinal; Flags: Byte; SleepInterval: Cardinal = 5): Byte;  
+Flags - указывает какой таймер запускаем. Start/Stop - таймер запуска/остановки. SleepToStart/SleepToStop - таймер с задержкой в установленное время (секунды), 
+задержка указана в SleepInterval.  
+На выходе будет номер таймера. Максимальное количество таймеров 20.
+
+удаление таймера:
+- procedure timer_Del(var num: Byte) - где "num" номер таймера который надо удалить
+
+Запуск/остановка уже созданного таймера:
+- function timer_StartStop(num: Byte; Flags: Byte): Boolean - "num" номер таймера, "Flags" флаг Start или Stop
+
+Запуск/остановка созданного таймера с установленной задержкой:
+- function timer_SleepStartStop(num: Byte; Flags: Byte; IntervalSleep: Cardinal = 1): Boolean - "IntervalSleep" заданный интервал в секундах
+***
+Введены функции для работы с несколькими шрифтами (фонтами) не более 5 разных (можно увеличить изменяя константу). Функции загрузки шрифтов возвращают
+номер загруженного шрифта. Вы его должны сохранить в переменной и работать с ним.
+
+- procedure setTextScale(Index: LongWord; fnt: Byte) - устанавливает размер (шкалу) шрифта, измеряется в пикселах!
+- function getTextScale(fnt: Byte): LongWord; - возвращаетразмер (шкалу) шрифта.
+
+работают от заданного шрифта!!! Обратить на это внимание!
+
+
+
+
+***
+Для MacOS много не доделано, но оснавная часть работает.
+3-я демка работает, но нельзя вводить текст (буду решать для всей библиотеки!)
+4-я демка - работает не стабильно. Решить для MacOS не знаю как, но основные режимы работают, поэтому используйте через перезагрузку приложения.
+12-я демка не работает, так как подобный рендеринг для MacOS Cocoa считается устаревшим.
+15-я и дальнейшие демки не работают.
+Библиотеки для видео и физики требуют полной переработки, так как в ZenGL были использованы довольно старые библиотеки. Видео возможно запустится, но для этого надо 
+скомпилировать файлы в папке "yuv2rgba".
+
+17-я демка на данное время работать не будет, пока не доработаю её основательно для работы с Android.
+18-я демка... извиняюсь, но LCL не будет поддерживаться вообще. Если есть желание, можете предложить решение для 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" выставить
+
+Code: Pascal  [Select]
+[+]
+
+    {$DEFINE MAC_COCOA}
+
+и выключить
+Code: Pascal  [Select]
+[+]
+
+    {$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