A 2D cross platform game development framework/library for the freepascal compiler and delphi
#pascal #freepascal #gamedev #library #framework #engine #delphi
|
2 роки тому | |
---|---|---|
Zengl_SRC | 2 роки тому | |
README.md | 4 роки тому |
zengl - изначальный сайт создателя библиотеки.
ZenGL - это бибилотека создающая контекст окна для работы с OpenGL на разных платформах.
Среда разработки
Поддерживаемые платформы для Lazarus/FreePascal:
Поддерживаемые платформы для Delphi:
zengl for iOS - версия которая поддерживает iOS (мною не проверено).
В данной версии корректирована работа с VCL/LCL (для Delphi не была создана демка, код можно скопировать из проекта Lazarus) !требуется проверка!
Введено ограничение по FPS до 30 кадров в секунду.
Для изменения FPS введена процедура scr_SetFPS(FPS: Byte). При FPS > 60 включается вертикальная синхронизация, во избежание проблем с разными видеокартами.
!Внимание! Эта процедура и вертикальная синхронизация не одно и то же!!!
Редактированы демки (надеюсь все). На данное время удалены не используемые демки.
Для Windows 64 решена проблема вывода видеофайла.
Введены функции для работы с таймерами. создание таймера:
удаление таймера:
Запуск/остановка уже созданного таймера:
Запуск/остановка созданного таймера с установленной задержкой:
function timer_SleepStartStop(num: Byte; Flags: Byte; IntervalSleep: Cardinal = 1): Boolean - "IntervalSleep" заданный интервал в секундах
Введены функции для работы с несколькими шрифтами (фонтами) не более 5 разных (можно увеличить изменяя константу). Функции загрузки шрифтов возвращают номер загруженного шрифта. Вы его должны сохранить в переменной и работать с ним.
procedure setTextScale(Index: LongWord; fnt: Byte) - устанавливает размер (шкалу) шрифта, измеряется в пикселах!
function getTextScale(fnt: Byte): LongWord; - возвращаетразмер (шкалу) шрифта.
работают от заданного шрифта!!! Обратить на это внимание!
17-я демка доработана для всех ОС(возможны проблемы в работе с самим приложением) но только под клавиатуру, под Android не сделано на данное время.
-- необходимо включить дефайн в файле конфигурации USE_MENUGUI
Для 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
в файле "zgl_config.cfg" выставить
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