# ZenGL version 3.28 + MacOS Cocoa - beta version + Green Engine v1.0 [Eng](#English) [Rus](#Russian) Eng: ------------- [zengl](https://zengl.org) - the original site of the library's creator. **ZenGL** - it is a library that creates window context for working with OpenGL on different platforms. **Development environment** - Lazarus/FreePascal - Delphi **Supported platforms for Lazarus/FreePascal:** - Windows 32/64 - Linux 32/64 - Android - MacOS Cocoa - beta version - *MacOS Carbon (not tested, use version 3.12 if won't work)* **Supported Platforms for Delphi:** - Windows 32 (some demos will probably work with Windows 64 too, but certainly not all) [zengl for iOS](https://github.com/skalogryz/zengl) - version that supports iOS (I have not verified). Clicking on the image will take you to the video. Where I redo the 3rd demo. At the end of the video, it shows that you can make multiple input fields. [![demo3 remake](https://zengl.org/screens/screen03.jpg)](https://youtu.be/qb8hxilAI_I) *** Communication: M12Mirrel@yandex.ru You can also contact me on the Lazarus forums or [ZenGL](http://zengl.org/forum/) and express your wishes and shortcomings. You can support through Sberbank: 2202200951985520 **** Rus: ------------- [zengl](https://zengl.org) - изначальный сайт создателя библиотеки. **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](https://github.com/skalogryz/zengl) - версия которая поддерживает 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](https://zengl.org/screens/screen03.jpg)](https://youtu.be/qb8hxilAI_I) *** Связь: M12Mirrel@yandex.ru Так же можно связаться со мной на форумах Lazarus или [ZenGL](http://zengl.org/forum/) и высказать пожелания и недоработки. Поддержать можно через сбер: 2202200951985520