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