A 2D cross platform game development framework/library for the freepascal compiler and delphi
#pascal #freepascal #gamedev #library #framework #engine #delphi
|
4 년 전 | |
---|---|---|
Zengl_SRC | 4 년 전 | |
README.md | 4 년 전 |
zengl - изначальный сайт создателя библиотеки.
ZenGL - это бибилотека создающая контекст окна для работы с OpenGL на разных платформах.
Среда разработки
Поддерживаемые платформы для Lazarus/FreePascal:
Поддерживаемые платформы для Delphi:
В данной версии корректирована работа с 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; - возвращаетразмер (шкалу) шрифта.
работают от заданного шрифта!!! Обратить на это внимание!
Для 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
в файле "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