A 2D cross platform game development framework/library for the freepascal compiler and delphi

#pascal #freepascal #gamedev #library #framework #engine #delphi

Seenkao c0387e128c Update zgl_mouse.pas 4 жил өмнө
Zengl_SRC c0387e128c Update zgl_mouse.pas 4 жил өмнө
README.md d40c476350 Update README.md 4 жил өмнө

README.md

ZenGL version 3.28 + MacOS Cocoa - beta version + Green Engine v1.0

zengl - изначальный сайт создателя библиотеки.

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, но точно не все)

zengl for iOS - версия которая поддерживает iOS (мною не проверено).


В данной версии:

  • Добавлена библиотека Green Engine собственной разработки. Это вроде как дополнительное API для библиотеки ZenGL. Разрабатывалась ранее и клавиатура из Green Engine была добавлена в более ранние версии. Внимание!!! Работает только с ZenGL!!!

    • В данной версии GE создано независимое от платформы поле ввода. Должно работать на всех платформах, но на мобильных платформах и MacOS не проверено. Будет проверено и добавлено в исправления.

    • В дальнейшем ожидается доработка библиотеки GE.

  • изменены названия малой части процедур/функций, для более визуального восприятия. В частности utf8_GetID заменена на utf8_toUnicode так как она как раз переводит UTF8 в юникод.

  • добавлена функция function Unicode_toUTF8(Symb: LongWord): UTF8String; перевода из юникода в UTF8.

  • изменена и ускорена работа с текстом.

    • теперь вы не получите ошибку кода, если символа не существует при загруженном шрифте. Все не существующие символы будут отмечены знаком "?".
    • вы сможете писать на любом языке, но, если шрифт для этого не предназначен, все "не печатаемые" (не определённые в шрифте) символы будут так же отмечены знаком "?". При сохранинии такого текста в файл, вероятнее всего он будет выведен правильно.
    • в демонстрационной версии 6, показана работа со шрифтами. Если вам нужен шрифт определённого размера, вы должны с ним работать через procedure setFontTextScale(Index: LongWord; fnt: Byte);, она позволит вам более быстро работать с данным шрифтом. Если не постоянно, то смотрите демонстрационную версию.
    • дополнен ряд функций для работы с текстом-шрифтами. Смотрите в файле zgl_text.pas.
    • созданы процедуры для загрузки/сохранения текста procedure txt_LoadFromFile(const FileName: UTF8String; out Buf: UTF8String);, procedure txt_SaveFromFile(const FileName: UTF8String; const Buf: UTF8String);.
  • были исправлены некоторые ошибки в коде и изменены части работы с клавиатурой. keysLast (bold) - сейчас работает только для печатаемых клавиш.

  • введена процедура постотрисовки. Регистрируется с помощью zgl_Reg и флагом SYS_POSTDRAW. Срабатываете данная функция только после того как выведется всё в окно. Бывает нужно, когда нужно работать с видеокартой, но не нужно ни чего выводить.

  • теперь обработка клавиатуры/мыши/тачпада необходимо производить с помощью регистрируемой процедуры и флагом SYS_EVENTS. Производить их "очистку" больше нет необходимости.

  • добавленны комментарии в некоторые модули. Постарался сразу же добавить и на английском языке.

  • были исправления в части кода, о которых уже забыл... )))

при нажатии на картинку перейдёте на видео. Где я переделываю 3-ю демо версию. В конце видео показано, что можно делать несколько полей ввода.

переделка demo3


Связь: [email protected] Так же можно связаться со мной на форумах Lazarus или ZenGL и высказать пожелания и недоработки.

Поддержать можно через сбер: 2202200951985520