Browse Source

ZenGL 3.27

Mirrel 4 years ago
parent
commit
33f36b1c71
100 changed files with 978 additions and 2363 deletions
  1. 0 121
      README.md
  2. 0 133
      Zengl_SRC/Tж¦иTж-T¦ФTж-T¦РTж-Tж-T¦ЦTжTмT¦Я.txt
  3. 5 3
      Zengl_SRC/demos/Android/01 - Initialization/jni/demo01.lpi
  4. 3 2
      Zengl_SRC/demos/Android/01 - Initialization/jni/demo01.lpr
  5. 42 99
      Zengl_SRC/demos/Android/01 - Initialization/jni/demo01.lps
  6. 0 7
      Zengl_SRC/demos/Android/01 - Initialization/res/layout/main.xml
  7. 5 0
      Zengl_SRC/demos/Android/02 - Resources/jni/demo02.lpi
  8. 1 2
      Zengl_SRC/demos/Android/02 - Resources/jni/demo02.lpr
  9. 43 140
      Zengl_SRC/demos/Android/02 - Resources/jni/demo02.lps
  10. 0 7
      Zengl_SRC/demos/Android/02 - Resources/res/layout/main.xml
  11. 1 1
      Zengl_SRC/demos/Android/03 - Input/jni/demo03.lpi
  12. 6 5
      Zengl_SRC/demos/Android/03 - Input/jni/demo03.lpr
  13. 33 7
      Zengl_SRC/demos/Android/03 - Input/jni/demo03.lps
  14. 0 7
      Zengl_SRC/demos/Android/03 - Input/res/layout/main.xml
  15. 6 5
      Zengl_SRC/demos/Android/04 - Screen Settings/jni/demo04.lpr
  16. 50 93
      Zengl_SRC/demos/Android/04 - Screen Settings/jni/demo04.lps
  17. BIN
      Zengl_SRC/demos/Android/04 - Screen Settings/libs/armeabi/libGLU.so
  18. BIN
      Zengl_SRC/demos/Android/04 - Screen Settings/libs/armeabi/libchipmunk.so
  19. BIN
      Zengl_SRC/demos/Android/04 - Screen Settings/libs/armeabi/libdemo04.so
  20. BIN
      Zengl_SRC/demos/Android/04 - Screen Settings/libs/armeabi/libogg.so
  21. BIN
      Zengl_SRC/demos/Android/04 - Screen Settings/libs/armeabi/libopenal.so
  22. BIN
      Zengl_SRC/demos/Android/04 - Screen Settings/libs/armeabi/libtheoradec.so
  23. BIN
      Zengl_SRC/demos/Android/04 - Screen Settings/libs/armeabi/libvorbis.so
  24. BIN
      Zengl_SRC/demos/Android/04 - Screen Settings/libs/armeabi/libzenjpeg.so
  25. 0 7
      Zengl_SRC/demos/Android/04 - Screen Settings/res/layout/main.xml
  26. 35 7
      Zengl_SRC/demos/Android/05 - Primitives/jni/demo05.lps
  27. 1 1
      Zengl_SRC/demos/Android/05 - Primitives/jni/demo05.pas
  28. 0 7
      Zengl_SRC/demos/Android/05 - Primitives/res/layout/main.xml
  29. 6 8
      Zengl_SRC/demos/Android/06 - Text/jni/demo06.lpr
  30. 23 3
      Zengl_SRC/demos/Android/06 - Text/jni/demo06.lps
  31. 0 7
      Zengl_SRC/demos/Android/06 - Text/res/layout/main.xml
  32. 61 28
      Zengl_SRC/demos/Android/07 - Sprites/jni/backup/demo07.lpr
  33. 1 1
      Zengl_SRC/demos/Android/07 - Sprites/jni/demo07.lpi
  34. 28 25
      Zengl_SRC/demos/Android/07 - Sprites/jni/demo07.lpr
  35. 34 136
      Zengl_SRC/demos/Android/07 - Sprites/jni/demo07.lps
  36. 0 7
      Zengl_SRC/demos/Android/07 - Sprites/res/layout/main.xml
  37. 3 1
      Zengl_SRC/demos/Android/08 - Sprite Engine/jni/demo08.lpi
  38. 46 115
      Zengl_SRC/demos/Android/08 - Sprite Engine/jni/demo08.lps
  39. 9 11
      Zengl_SRC/demos/Android/08 - Sprite Engine/jni/demo08.pas
  40. 0 7
      Zengl_SRC/demos/Android/08 - Sprite Engine/res/layout/main.xml
  41. 10 10
      Zengl_SRC/demos/Android/09 - Sprite Engine(Classes)/jni/demo09.lpr
  42. 19 13
      Zengl_SRC/demos/Android/09 - Sprite Engine(Classes)/jni/demo09.lps
  43. 0 7
      Zengl_SRC/demos/Android/09 - Sprite Engine(Classes)/res/layout/main.xml
  44. 3 5
      Zengl_SRC/demos/Android/10 - Tiles/jni/demo10.lpr
  45. 25 4
      Zengl_SRC/demos/Android/10 - Tiles/jni/demo10.lps
  46. 0 7
      Zengl_SRC/demos/Android/10 - Tiles/res/layout/main.xml
  47. 4 4
      Zengl_SRC/demos/Android/11 - Grid/jni/demo11.lpr
  48. 26 4
      Zengl_SRC/demos/Android/11 - Grid/jni/demo11.lps
  49. 0 7
      Zengl_SRC/demos/Android/11 - Grid/res/layout/main.xml
  50. 3 4
      Zengl_SRC/demos/Android/12 - Render into Texture/jni/demo12.lpr
  51. 41 4
      Zengl_SRC/demos/Android/12 - Render into Texture/jni/demo12.lps
  52. 0 7
      Zengl_SRC/demos/Android/12 - Render into Texture/res/layout/main.xml
  53. 7 8
      Zengl_SRC/demos/Android/13 - Particles/jni/demo13.lpr
  54. 46 5
      Zengl_SRC/demos/Android/13 - Particles/jni/demo13.lps
  55. 0 7
      Zengl_SRC/demos/Android/13 - Particles/res/layout/main.xml
  56. 5 5
      Zengl_SRC/demos/Android/14 - Sound/jni/demo14.lpr
  57. 56 11
      Zengl_SRC/demos/Android/14 - Sound/jni/demo14.lps
  58. 0 7
      Zengl_SRC/demos/Android/14 - Sound/res/layout/main.xml
  59. 4 4
      Zengl_SRC/demos/Android/15 - Video/jni/demo15.lpr
  60. 53 4
      Zengl_SRC/demos/Android/15 - Video/jni/demo15.lps
  61. 0 7
      Zengl_SRC/demos/Android/15 - Video/res/layout/main.xml
  62. 58 0
      Zengl_SRC/demos/Android/16 - Physics/jni/backup/demo16.lps
  63. 4 6
      Zengl_SRC/demos/Android/16 - Physics/jni/demo16.lpr
  64. 41 6
      Zengl_SRC/demos/Android/16 - Physics/jni/demo16.lps
  65. 0 7
      Zengl_SRC/demos/Android/16 - Physics/res/layout/main.xml
  66. 6 4
      Zengl_SRC/demos/Delphi/01 - Initialization/demo01.dpr
  67. 2 2
      Zengl_SRC/demos/Delphi/02 - Resources/demo02.dpr
  68. 5 4
      Zengl_SRC/demos/Delphi/03 - Input/demo03.dpr
  69. 8 7
      Zengl_SRC/demos/Delphi/04 - Screen Settings/demo04.dpr
  70. 4 5
      Zengl_SRC/demos/Delphi/05 - Primitives/demo05.dpr
  71. 16 15
      Zengl_SRC/demos/Delphi/06 - Text/demo06.dpr
  72. 29 22
      Zengl_SRC/demos/Delphi/07 - Sprites/demo07.dpr
  73. 11 17
      Zengl_SRC/demos/Delphi/08 - Sprite Engine/demo08.dpr
  74. 12 12
      Zengl_SRC/demos/Delphi/09 - Sprite Engine(Classes)/demo09.dpr
  75. 4 3
      Zengl_SRC/demos/Delphi/10 - Tiles/demo10.dpr
  76. 5 4
      Zengl_SRC/demos/Delphi/11 - Grid/demo11.dpr
  77. 4 3
      Zengl_SRC/demos/Delphi/12 - Render into Texture/demo12.dpr
  78. 4 3
      Zengl_SRC/demos/Delphi/13 - Particles/demo13.dpr
  79. 7 6
      Zengl_SRC/demos/Delphi/14 - Sound/demo14.dpr
  80. 4 3
      Zengl_SRC/demos/Delphi/15 - Video/demo15.dpr
  81. 10 8
      Zengl_SRC/demos/Delphi/16 - Physics/demo16.dpr
  82. 0 83
      Zengl_SRC/demos/FreePascal/01 - Initialization/Makefile
  83. 0 119
      Zengl_SRC/demos/FreePascal/01 - Initialization/demo01.pas
  84. 0 24
      Zengl_SRC/demos/FreePascal/01 - Initialization/demo01_macosx.plist
  85. 0 0
      Zengl_SRC/demos/FreePascal/01 - Initialization/fp___.err
  86. 0 0
      Zengl_SRC/demos/FreePascal/01 - Initialization/fp___.out
  87. 0 3
      Zengl_SRC/demos/FreePascal/01 - Initialization/macosx_postbuild.sh
  88. 0 83
      Zengl_SRC/demos/FreePascal/02 - Resources/Makefile
  89. 0 155
      Zengl_SRC/demos/FreePascal/02 - Resources/demo02.pas
  90. 0 24
      Zengl_SRC/demos/FreePascal/02 - Resources/demo02_macosx.plist
  91. 0 10
      Zengl_SRC/demos/FreePascal/02 - Resources/macosx_postbuild.sh
  92. 0 83
      Zengl_SRC/demos/FreePascal/03 - Input/Makefile
  93. 0 161
      Zengl_SRC/demos/FreePascal/03 - Input/demo03.pas
  94. 0 24
      Zengl_SRC/demos/FreePascal/03 - Input/demo03_macosx.plist
  95. 0 5
      Zengl_SRC/demos/FreePascal/03 - Input/macosx_postbuild.sh
  96. 0 83
      Zengl_SRC/demos/FreePascal/04 - Screen Settings/Makefile
  97. 0 119
      Zengl_SRC/demos/FreePascal/04 - Screen Settings/demo04.pas
  98. 0 24
      Zengl_SRC/demos/FreePascal/04 - Screen Settings/demo04_macosx.plist
  99. 0 6
      Zengl_SRC/demos/FreePascal/04 - Screen Settings/macosx_postbuild.sh
  100. 0 83
      Zengl_SRC/demos/FreePascal/05 - Primitives/Makefile

+ 0 - 121
README.md

@@ -1,121 +0,0 @@
-# New-ZenGL
-
-ZenGL - библиотека создающая рабочее окно для работы с OpenGL.
-
-Платформы: Windows, Linux, MacOS(только Carbon), Android(32), iOS(не проверялось, для старых версий (32) должно работать)
-
-Среда разработки: FPC, Lazarus, Delphi(ограничено)
-
-----------------------------------------------------------------------
-
-Последующие изменения: корректирована работа Delphi. Большинство проектов будут работать только в 32-х битной системе Win.
-
-Изменения в версии 0.3.25:
-- Вернул функцию вертикальной синхронизации
-
-- Для Windows теперь работает ограничение по выводу кадров. В основном основываясь на частоте монитора. Задать можно 
-	вручную.
-
-- Для LCL(VCL)-приложений: редактирована работа с данными приложениями, некоторые функции теперь не работают (не 
-	сказывается на работе самого ZenGL), взамен данных функций вам надо использовать стандартные функции для 
-	LCL-приложений.
-
-- Сделаны две демо-версии. Работа с 17-й демкой не завершена, но работает. Основываясь на ней можно сделать обычное
-	меню для нативных приложений. 18-я демо-версия заменила старую версию LCL-приложения.
---------------------------------------------------------------------------
-
-
-Изменения в версии 0.3.24:
-
-- Версия стабильно компилирует под Win64, изменено для версий FPC > 3
-
-- Для Windows, теперь "ALT" + клавиша не вызывает системных звуков
-
-- Для Linux - теперь создаётся рабочая дирректория, но помните!!! Это может быть общий каталог, куда вы "установили"
-	свою программу. Поэтому это сделано для тех программ (которые вы создаёте) для которых вы выделяете отдельный
-	каталог
-
-- Введено несколько дефайнов:
-	- Escape = exit
-	- Дефайны для полных версий OpenGL, но пока реализовано только для OpenGL ES, в дальнейшем коснётся и самого
-		OpenGL для компьютеров
-	- для инициализации под LCL/VCL (handle - окна), по умолчанию включены в данной версии, в следующих версиях
-		по умолчанию будет отключено
-	- редактированы дефайны под Android, исключён не используемый код
-
-- вернул некоторые функции (которые удалил ранее :/ понял что если человек будет создавать библиотеку, то они нужны 
-	будут), некоторые немного изменил, так же исключая повторный и не используемый код
-
-- дополнил OpenGL ES (1.0) отсутствующими, до этого времени, функциями (кроме glColor4f, в данной версии она сделана
-	под определённую работу и занята), так же указаны не используемые функции версии 1.1
-
-- дополнил OpenGL недостающими функциями, но немногими, очень много ещё отсутствует
-
-
-!!! Внимание!!! Поддержка создания библиотек отключена!!! zglHeader.pas не редактирован, и возможно не пригоден для
-	использования. Если хотите попробовать, берите его в версии 0.3.12 (так же надо будет восстанавлиать 
-	демо-версии как в версии 0.3.12)
-
-
-- в демо-версии со звуком показано как остановить звуки, для их изначального воспроизведения. Звук теперь можно
-	"передвигать" (в версии OpenAL)
-
-- Множественные изменения в файлах, для облегчения кода и более корректной работы. (а возможно и нет...)
-
-- Множественные изменения под разработку под Android. Изменён файл ZenGL.java, корректирована работа Android приложений
-	под коснувшиеся изменения.
-
-- ZenFont теперь можно запускать и под Delphi 7. Так же редактирована работа приложения, введены некоторые ограничения
-	на работу приложения, для избежания ошибок при создании нового шрифта.
-
------------------------------------------------------------------------------------------------------------------------
-
-Дальнейшие планируемые изменения:
-- Введение джойстиков/меню для Android, а так же возможность использовать меню и создавать своё на компьютер.
-
-- расширение OpenGL или возможность подключения dglOpenGL (будет возможность создавать умельцам как 3D- приложения,
-	так и работы с шейдерами).
-
-- после расширения OpenGL будет поддержка освещения и возможно тумана. И вероятно многое другое, что включено в OpenGL.
-
-- доработка OpenAL. (если руки дойдут)
-
------------------------------------------------------------------------------------------------------------------------
-
-Прошу многих извинить!!! Но специально заниматься разработкой/доработкой под MacOS/iOS в данное время не буду. Так же
-специальной поддержкой DelphiXE заниматься не буду. Большинство примеров под Delphi 7 будут работать и под DelphiXE
-для Windows. Возможно, если DelphiXE поддерживает, будет поддержка Linux. Если DelphiXE поддерживает приложения под
-Linux, просьба сообщить мне об этом (сильного желания устанавливать эту среду программирования, нет).
-
-Так же не буду продолжать поддержку DirectX, это в ваших руках, но на это так же надо потратить много времени.
-
-
-Множество вопросов по работе с ZenGL решены и приведены в примерах. Примеры смотрите под Delphi 7, Lazarus и Android.
-Под FP (без Lazarus), MacOS и iOS я не переделывал примеры, их можно так же переделать, подсмотрев в других примерах
-указанных выше.
-
-До документации пока руки не дойдут, за это больше всего извиняюсь! На сайте zengl.org смотрите, там достаточно
-не мало информации.
-
------------------------------------------------------------------------------------------------------------------------
-
-Теперь относительно Android. Google отказалось от поддержки 32-х битных версий программ... а точнее программ, которые
-содержат 32-х битный код... 
-Это очередная долгая песня. Надо искать скомпилированные библиотеки под 64-х битную систему, и потому в данное время
-я этим заниматься не буду.
-Если у вас есть данные библиотеками, то вы можете ими поделиться или поделиться ссылками на них. Потому что кроме 
-самих библиотек, надо будет и настраивать компиляцию под 64-х битную систему и решать все выявляющиеся проблемы.
-
-Меня устроит и 32-х битная система, так как она вполне запускается и на более поздних версиях телефонов и уж точно
-запустится на большинстве телефонов. )))
-
------------------------------------------------------------------------------------------------------------------------
-
-Все вопросы можете задавать на форуме сайта zengl.org , или задавая вопросы мне:
-
[email protected] - почта
-
-https://www.youtube.com/channel/UCn46Rnq_opul3pxkCLtYPYg/featured - канал на ютубе, выкладываю периодически видео
-	может кому полезно будет.
-	
-ну, или так же на форумах, просматриваю темы, по возможности отвечаю (или отмечаю о недоработках для себя)

+ 0 - 133
Zengl_SRC/Tж¦иTж-T¦ФTж-T¦РTж-Tж-T¦ЦTжTмT¦Я.txt

@@ -1,133 +0,0 @@
-Всем привет!
-
-Я продолжаю работать с ZenGL, но, чтоб вам было понятно, для меня сам ZenGL - это несколько основных файлов по созданию
-рабочего проекта/программы под определённую ОС или под несколько или, возможно, и под все сразу. Изначально меня
-интересовала разработка под Windows и Linux. Но столкнувшись (уже более полугода как) с тем что ZenGL может создавать 
-программы и под Android, я всё же решил использовать это для своего развития, и возможно для развития самого ZenGL.
-
-За прошедшее время, пока я хотел разобраться как можно создать джойстики, а потом меня осенило - создать клавиатуру...
-А потом меня ещё осенило и я понял, что это возможность создавать меню для любой платформы.
-
-И я утопал всё глубже и глубже... Одно тянуло за собой другое... потом третье и т. д. Заниматься этим можно вечно и так
-ни чего и не выпустить в свет. Поэтому меню/джойстики на данной версии откладываются, так как они вытянули очень много
-не решённых до этого "проблем" и меню будет уже в другой версии... Но она будет не совсем совместима со старыми версиями,
-особенно это касается Android.
-
------------------------------------------------------------------------------------------------------------------------
-Изменения в версии 0.3.25:
-- Вернул функцию вертикальной синхронизации
-
-- Для Windows теперь работает ограничение по выводу кадров. В основном основываясь на частоте монитора. Задать можно 
-	вручную.
-
-- Для LCL(VCL)-приложений: редактирована работа с данными приложениями, некоторые функции теперь не работают (не 
-	сказывается на работе самого ZenGL), взамен данных функций вам надо использовать стандартные функции для 
-	LCL-приложений.
-
-- Сделаны две демо-версии. Работа с 17-й демкой не завершена, но работает. Основываясь на ней можно сделать обычное
-	меню для нативных приложений. 18-я демо-версия заменила старую версию LCL-приложения.
-
-
-Изменения в версии 0.3.24:
-
-- Версия стабильно компилирует под Win64, изменено для версий FPC > 3
-
-- Для Windows, теперь "ALT" + клавиша не вызывает системных звуков
-
-- Для Linux - теперь создаётся рабочая дирректория, но помните!!! Это может быть общий каталог, куда вы "установили"
-	свою программу. Поэтому это сделано для тех программ (которые вы создаёте) для которых вы выделяете отдельный
-	каталог
-
-- Введено несколько дефайнов:
-	- Escape = exit
-	- Дефайны для полных версий OpenGL, но пока реализовано только для OpenGL ES, в дальнейшем коснётся и самого
-		OpenGL для компьютеров
-	- для инициализации под LCL/VCL (handle - окна), по умолчанию включены в данной версии, в следующих версиях
-		по умолчанию будет отключено
-	- редактированы дефайны под Android, исключён не используемый код
-
-- вернул некоторые функции (которые удалил ранее :/ понял что если человек будет создавать библиотеку, то они нужны 
-	будут), некоторые немного изменил, так же исключая повторный и не используемый код
-
-- дополнил OpenGL ES (1.0) отсутствующими, до этого времени, функциями (кроме glColor4f, в данной версии она сделана
-	под определённую работу и занята), так же указаны не используемые функции версии 1.1
-
-- дополнил OpenGL недостающими функциями, но немногими, очень много ещё отсутствует
-
-
-!!! Внимание!!! Поддержка создания библиотек отключена!!! zglHeader.pas не редактирован, и возможно не пригоден для
-	использования. Если хотите попробовать, берите его в версии 0.3.12 (так же надо будет восстанавлиать 
-	демо-версии как в версии 0.3.12)
-
-	Ещё одна причина отказа от поддержки LCL библиотек, это то, что я не запустил демо-версии на FPC + LCL.
-	(Но вот ZenFont(LCL) запустить удалось, так что возможно проблема где-то на поверхности).
-
-
-- в демо-версии со звуком показано как остановить звуки, для их изначального воспроизведения. Звук теперь можно
-	"передвигать" (в версии OpenAL)
-
-- Множественные изменения в файлах, для облегчения кода и более корректной работы. (а возможно и нет...)
-
-- Множественные изменения под разработку под Android. Изменён файл ZenGL.java, корректирована работа Android приложений
-	под коснувшиеся изменения.
-
-- ZenFont теперь можно запускать и под Delphi 7. Так же редактирована работа приложения, введены некоторые ограничения
-	на работу приложения, для избежания ошибок при создании нового шрифта.
-
------------------------------------------------------------------------------------------------------------------------
-
-Дальнейшие планируемые изменения:
-- Введение джойстиков/меню для Android, а так же возможность использовать меню и создавать своё на компьютер.
-
-- расширение OpenGL или возможность подключения dglOpenGL (будет возможность создавать умельцам как 3D- приложения,
-	так и работы с шейдерами).
-
-- после расширения OpenGL будет поддержка освещения и возможно тумана. И вероятно многое другое, что включено в OpenGL.
-
-- доработка OpenAL. (если руки дойдут)
-
------------------------------------------------------------------------------------------------------------------------
-
-Прошу многих извинить!!! Но специально заниматься разработкой/доработкой под MacOS/iOS в данное время не буду. Так же
-специальной поддержкой DelphiXE заниматься не буду. Большинство примеров под Delphi 7 будут работать и под DelphiXE
-для Windows. Возможно, если DelphiXE поддерживает, будет поддержка Linux. Если DelphiXE поддерживает приложения под
-Linux, просьба сообщить мне об этом (сильного желания устанавливать эту среду программирования, нет).
-
-Так же не буду продолжать поддержку DirectX, это в ваших руках, но на это так же надо потратить много времени.
-
-
-Множество вопросов по работе с ZenGL решены и приведены в примерах. Примеры смотрите под Delphi 7, Lazarus и Android.
-Под FP (без Lazarus), MacOS и iOS я не переделывал примеры, их можно так же переделать, подсмотрев в других примерах
-указанных выше.
-
-До документации пока руки не дойдут, за это больше всего извиняюсь! На сайте zengl.org смотрите, там достаточно
-не мало информации.
-
------------------------------------------------------------------------------------------------------------------------
-
-Теперь относительно Android. Google отказалось от поддержки 32-х битных версий программ... а точнее программ, которые
-содержат 32-х битный код... 
-Это очередная долгая песня. Надо искать скомпилированные библиотеки под 64-х битную систему, и потому в данное время
-я этим заниматься не буду.
-Если у вас есть данные библиотеками, то вы можете ими поделиться или поделиться ссылками на них. Потому что кроме 
-самих библиотек, надо будет и настраивать компиляцию под 64-х битную систему и решать все выявляющиеся проблемы.
-
-Меня устроит и 32-х битная система, так как она вполне запускается и на более поздних версиях телефонов и уж точно
-запустится на большинстве телефонов. )))
-
------------------------------------------------------------------------------------------------------------------------
-
-Все вопросы можете задавать на форуме сайта zengl.org , или задавая вопросы мне:
[email protected] - почта
-https://www.youtube.com/channel/UCn46Rnq_opul3pxkCLtYPYg/featured - канал на ютубе, выкладываю периодически видео
-	может кому полезно будет.
-ну, или так же на форумах, просматриваю темы, по возможности отвечаю (или отмечаю о недоработках для себя)
-
------------------------------------------------------------------------------------------------------------------------
-
-Всего доброго, до встреч!
-
-С уважением, Serge!
-
-
-

+ 5 - 3
Zengl_SRC/demos/Android/01 - Initialization/jni/demo01.lpi

@@ -41,14 +41,16 @@
     </Target>
     <SearchPaths>
       <IncludeFiles Value="..\..\..\..\headers;..\..\..\..\headers\android;$(ProjOutDir)"/>
-      <Libraries Value="..\libs\armeabi;C:\codetyphon\binLibraries\android-4.0-api14-arm\"/>
-      <OtherUnitFiles Value="..\..\..\..\src;..\..\..\..\lib\zlib\arm-linux;..\..\..\..\lib\zip\arm-linux;..\..\..\..\lib\ogg\arm-linux;..\..\..\..\lib\theora\arm-linux"/>
+      <Libraries Value="..\..\..\..\bin\Android\armv6;C:\codetyphon\binLibraries\android-4.0.2-api14-arm\"/>
+      <OtherUnitFiles Value="..\..\..\..\src;..\..\..\..\lib\zlib\arm-linux;..\..\..\..\lib\zip\arm-linux;..\..\..\..\lib\ogg\arm-linux;..\..\..\..\lib\theora\arm-linux;..\..\..\..\bin\Android\armv5"/>
       <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
     </SearchPaths>
     <CodeGeneration>
-      <RelocatableUnit Value="True"/>
       <TargetCPU Value="arm"/>
       <TargetOS Value="android"/>
+      <Optimizations>
+        <OptimizationLevel Value="3"/>
+      </Optimizations>
     </CodeGeneration>
     <Linking>
       <Debugging>

+ 3 - 2
Zengl_SRC/demos/Android/01 - Initialization/jni/demo01.lpr

@@ -7,7 +7,6 @@ library demo01;
 
 uses
   zgl_application,
-  zgl_main,
   zgl_screen,
   zgl_window,
   zgl_timers,
@@ -19,6 +18,8 @@ var
   DirApp  : UTF8String;
   DirHome : UTF8String;
 
+  TimeStart  : Byte = 0;
+
 procedure Init;
 begin
   //  RU: Òóò ìîæíî âûïîëíÿòü çàãðóçêó îñíîâíûõ ðåñóðñîâ.
@@ -62,7 +63,7 @@ begin
 
   // RU: Ñîçäàåì òàéìåð ñ èíòåðâàëîì 1000ìñ.
   // EN: Create a timer with interval 1000ms.
-  timer_Add( @Timer, 1000 );
+  TimeStart := timer_Add( @Timer, 100, Start);
 
   // RU:  Ðåãèñòðèðóåì ïðîöåäóðó, ÷òî âûïîëíèòñÿ ñðàçó ïîñëå èíèöèàëèçàöèè ZenGL.
   // EN: Register the procedure, that will be executed after ZenGL initialization.

+ 42 - 99
Zengl_SRC/demos/Android/01 - Initialization/jni/demo01.lps

@@ -4,22 +4,21 @@
     <PathDelim Value="\"/>
     <Version Value="11"/>
     <BuildModes Active="Default"/>
-    <Units Count="12">
+    <Units Count="14">
       <Unit0>
         <Filename Value="demo01.lpr"/>
         <IsPartOfProject Value="True"/>
-        <CursorPos X="3" Y="26"/>
-        <UsageCount Value="23"/>
+        <IsVisibleTab Value="True"/>
+        <CursorPos X="36" Y="13"/>
+        <UsageCount Value="28"/>
         <Loaded Value="True"/>
       </Unit0>
       <Unit1>
         <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <IsVisibleTab Value="True"/>
-        <EditorIndex Value="4"/>
-        <TopLine Value="1680"/>
-        <CursorPos X="3" Y="1685"/>
-        <UsageCount Value="11"/>
-        <Loaded Value="True"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="159"/>
+        <CursorPos X="22" Y="180"/>
+        <UsageCount Value="13"/>
       </Unit1>
       <Unit2>
         <Filename Value="..\..\..\..\src\zgl_main.pas"/>
@@ -31,9 +30,9 @@
       <Unit3>
         <Filename Value="..\..\..\..\src\zgl_screen.pas"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="512"/>
-        <CursorPos X="17" Y="538"/>
-        <UsageCount Value="11"/>
+        <TopLine Value="29"/>
+        <CursorPos X="29" Y="37"/>
+        <UsageCount Value="13"/>
       </Unit3>
       <Unit4>
         <Filename Value="..\..\..\..\src\zgl_window.pas"/>
@@ -51,17 +50,17 @@
       </Unit5>
       <Unit6>
         <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <EditorIndex Value="3"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="897"/>
         <CursorPos X="3" Y="912"/>
-        <UsageCount Value="10"/>
-        <Loaded Value="True"/>
+        <UsageCount Value="12"/>
       </Unit6>
       <Unit7>
         <Filename Value="..\..\..\..\src\zgl_config.cfg"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="76"/>
-        <UsageCount Value="11"/>
+        <TopLine Value="100"/>
+        <CursorPos X="35" Y="110"/>
+        <UsageCount Value="13"/>
         <DefaultSyntaxHighlighter Value="None"/>
       </Unit7>
       <Unit8>
@@ -80,110 +79,54 @@
       </Unit9>
       <Unit10>
         <Filename Value="..\..\..\..\src\zgl_text.pas"/>
-        <EditorIndex Value="2"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="47"/>
         <CursorPos X="13" Y="71"/>
-        <UsageCount Value="10"/>
-        <Loaded Value="True"/>
+        <UsageCount Value="12"/>
       </Unit10>
       <Unit11>
         <Filename Value="..\..\..\..\src\zgl_textures.pas"/>
-        <EditorIndex Value="1"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="155"/>
         <CursorPos X="12" Y="170"/>
-        <UsageCount Value="10"/>
-        <Loaded Value="True"/>
+        <UsageCount Value="12"/>
       </Unit11>
+      <Unit12>
+        <Filename Value="..\..\..\..\src\zgl_font.pas"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="91"/>
+        <CursorPos X="46" Y="92"/>
+        <UsageCount Value="12"/>
+      </Unit12>
+      <Unit13>
+        <Filename Value="..\..\..\Lazarus\01 - Initialization\demo01.lpr"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="90"/>
+        <CursorPos X="25" Y="34"/>
+        <UsageCount Value="12"/>
+      </Unit13>
     </Units>
-    <JumpHistory Count="22" HistoryIndex="21">
+    <JumpHistory Count="5" HistoryIndex="4">
       <Position1>
         <Filename Value="demo01.lpr"/>
-        <Caret Line="15" Column="7"/>
+        <Caret Line="9" Column="21"/>
       </Position1>
       <Position2>
         <Filename Value="demo01.lpr"/>
-        <Caret Line="16" Column="61"/>
+        <Caret Line="66" Column="45" TopLine="49"/>
       </Position2>
       <Position3>
-        <Filename Value="..\..\..\..\src\zgl_text.pas"/>
-        <Caret Line="71" Column="13" TopLine="47"/>
+        <Filename Value="demo01.lpr"/>
+        <Caret Line="23" TopLine="2"/>
       </Position3>
       <Position4>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="7" Column="43"/>
+        <Filename Value="demo01.lpr"/>
+        <Caret Line="14" Column="36" TopLine="2"/>
       </Position4>
       <Position5>
         <Filename Value="demo01.lpr"/>
-        <Caret Line="16" Column="61"/>
+        <Caret Line="23"/>
       </Position5>
-      <Position6>
-        <Filename Value="..\..\..\..\src\zgl_textures.pas"/>
-        <Caret Line="170" Column="12" TopLine="155"/>
-      </Position6>
-      <Position7>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="913" Column="14" TopLine="897"/>
-      </Position7>
-      <Position8>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="1177" Column="16" TopLine="1151"/>
-      </Position8>
-      <Position9>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="1288" Column="21" TopLine="1262"/>
-      </Position9>
-      <Position10>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="1289" Column="19" TopLine="1263"/>
-      </Position10>
-      <Position11>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="1297" Column="21" TopLine="1271"/>
-      </Position11>
-      <Position12>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="1304" Column="20" TopLine="1279"/>
-      </Position12>
-      <Position13>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="1324" Column="21" TopLine="1298"/>
-      </Position13>
-      <Position14>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="1325" Column="19" TopLine="1299"/>
-      </Position14>
-      <Position15>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="1333" Column="21" TopLine="1307"/>
-      </Position15>
-      <Position16>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="1340" Column="20" TopLine="1315"/>
-      </Position16>
-      <Position17>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="1360" Column="21" TopLine="1334"/>
-      </Position17>
-      <Position18>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="1361" Column="19" TopLine="1335"/>
-      </Position18>
-      <Position19>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="1369" Column="21" TopLine="1343"/>
-      </Position19>
-      <Position20>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="1376" Column="20" TopLine="1351"/>
-      </Position20>
-      <Position21>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="912" Column="3" TopLine="897"/>
-      </Position21>
-      <Position22>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="123" Column="42" TopLine="111"/>
-      </Position22>
     </JumpHistory>
     <RunParams>
       <FormatVersion Value="2"/>

+ 0 - 7
Zengl_SRC/demos/Android/01 - Initialization/res/layout/main.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
-
-</LinearLayout>

+ 5 - 0
Zengl_SRC/demos/Android/02 - Resources/jni/demo02.lpi

@@ -46,14 +46,19 @@
       <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
     </SearchPaths>
     <CodeGeneration>
+      <SmartLinkUnit Value="True"/>
       <RelocatableUnit Value="True"/>
       <TargetCPU Value="arm"/>
       <TargetOS Value="android"/>
+      <Optimizations>
+        <OptimizationLevel Value="3"/>
+      </Optimizations>
     </CodeGeneration>
     <Linking>
       <Debugging>
         <GenerateDebugInfo Value="False"/>
       </Debugging>
+      <LinkSmart Value="True"/>
       <Options>
         <ExecutableType Value="Library"/>
       </Options>

+ 1 - 2
Zengl_SRC/demos/Android/02 - Resources/jni/demo02.lpr

@@ -5,7 +5,6 @@ library demo02;
 uses
   zgl_application,
   zgl_types,
-  zgl_main,
   zgl_screen,
   zgl_window,
   zgl_timers,
@@ -44,7 +43,7 @@ var
 
   // RU: У каждого ресурса есть свой определённый тип, который является указателем на структуру.
   // EN: Every resource has its own typem which is just a pointer to structure.
-  fntMain  : zglPFont;
+  fntMain  : Byte;
   //
   texLogo  : zglPTexture;
   texTest  : array[ 0..3 ] of zglPTexture;

+ 43 - 140
Zengl_SRC/demos/Android/02 - Resources/jni/demo02.lps

@@ -4,30 +4,29 @@
     <PathDelim Value="\"/>
     <Version Value="11"/>
     <BuildModes Active="Default"/>
-    <Units Count="19">
+    <Units Count="20">
       <Unit0>
         <Filename Value="demo02.lpr"/>
         <IsPartOfProject Value="True"/>
-        <TopLine Value="64"/>
-        <CursorPos X="12" Y="78"/>
+        <IsVisibleTab Value="True"/>
+        <TopLine Value="28"/>
+        <CursorPos X="18" Y="46"/>
         <UsageCount Value="27"/>
         <Loaded Value="True"/>
       </Unit0>
       <Unit1>
         <Filename Value="..\..\..\..\src\zgl_opengles.pas"/>
-        <EditorIndex Value="11"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="15"/>
         <CursorPos X="14" Y="26"/>
         <UsageCount Value="14"/>
-        <Loaded Value="True"/>
       </Unit1>
       <Unit2>
         <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <EditorIndex Value="12"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="752"/>
         <CursorPos X="74" Y="770"/>
         <UsageCount Value="14"/>
-        <Loaded Value="True"/>
       </Unit2>
       <Unit3>
         <Filename Value="C:\codetyphon\fpcsrc\packages\opengl\src\gl.pp"/>
@@ -37,33 +36,30 @@
       </Unit3>
       <Unit4>
         <Filename Value="..\..\..\..\src\zgl_main.pas"/>
-        <EditorIndex Value="9"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="387"/>
         <CursorPos X="61" Y="398"/>
         <UsageCount Value="14"/>
-        <Loaded Value="True"/>
       </Unit4>
       <Unit5>
         <Filename Value="..\..\..\..\src\zgl_textures.pas"/>
-        <EditorIndex Value="10"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="347"/>
         <CursorPos X="42" Y="355"/>
         <UsageCount Value="14"/>
-        <Loaded Value="True"/>
       </Unit5>
       <Unit6>
         <Filename Value="..\..\..\..\src\zgl_sprite_2d.pas"/>
-        <EditorIndex Value="8"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="248"/>
         <CursorPos X="3" Y="252"/>
         <UsageCount Value="14"/>
-        <Loaded Value="True"/>
       </Unit6>
       <Unit7>
         <Filename Value="..\..\..\..\src\zgl_config.cfg"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="122"/>
-        <CursorPos X="11" Y="140"/>
+        <TopLine Value="102"/>
+        <CursorPos X="3" Y="112"/>
         <UsageCount Value="13"/>
         <DefaultSyntaxHighlighter Value="None"/>
       </Unit7>
@@ -84,19 +80,17 @@
       </Unit9>
       <Unit10>
         <Filename Value="..\..\..\..\src\zgl_resources.pas"/>
-        <EditorIndex Value="7"/>
-        <TopLine Value="392"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="391"/>
         <CursorPos X="3" Y="371"/>
         <UsageCount Value="14"/>
-        <Loaded Value="True"/>
       </Unit10>
       <Unit11>
         <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <EditorIndex Value="5"/>
-        <TopLine Value="1692"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="1691"/>
         <CursorPos X="7" Y="1629"/>
         <UsageCount Value="14"/>
-        <Loaded Value="True"/>
       </Unit11>
       <Unit12>
         <Filename Value="..\..\..\..\src\zgl_screen.pas"/>
@@ -107,20 +101,17 @@
       </Unit12>
       <Unit13>
         <Filename Value="..\..\..\..\src\zgl_timers.pas"/>
-        <EditorIndex Value="6"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="152"/>
         <CursorPos X="3" Y="158"/>
         <UsageCount Value="14"/>
-        <Loaded Value="True"/>
       </Unit13>
       <Unit14>
         <Filename Value="..\..\..\..\src\zgl_file.pas"/>
-        <IsVisibleTab Value="True"/>
-        <EditorIndex Value="4"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="297"/>
         <CursorPos X="16" Y="313"/>
         <UsageCount Value="14"/>
-        <Loaded Value="True"/>
       </Unit14>
       <Unit15>
         <Filename Value="..\..\..\..\src\zgl_log.pas"/>
@@ -131,150 +122,62 @@
       </Unit15>
       <Unit16>
         <Filename Value="..\..\..\..\src\zgl_font.pas"/>
-        <EditorIndex Value="3"/>
-        <TopLine Value="152"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="151"/>
         <CursorPos X="3" Y="140"/>
         <UsageCount Value="11"/>
-        <Loaded Value="True"/>
       </Unit16>
       <Unit17>
         <Filename Value="..\..\..\..\src\zgl_textures_png.pas"/>
-        <EditorIndex Value="1"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="391"/>
         <CursorPos X="9" Y="399"/>
         <UsageCount Value="11"/>
-        <Loaded Value="True"/>
       </Unit17>
       <Unit18>
         <Filename Value="..\..\..\..\src\zgl_memory.pas"/>
-        <EditorIndex Value="2"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="50"/>
         <CursorPos X="61" Y="66"/>
         <UsageCount Value="11"/>
-        <Loaded Value="True"/>
       </Unit18>
+      <Unit19>
+        <Filename Value="..\..\..\..\src\zgl_sound.pas"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="4"/>
+        <CursorPos X="15" Y="26"/>
+        <UsageCount Value="10"/>
+      </Unit19>
     </Units>
-    <JumpHistory Count="30" HistoryIndex="29">
+    <JumpHistory Count="7" HistoryIndex="6">
       <Position1>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="713" Column="21" TopLine="688"/>
+        <Filename Value="demo02.lpr"/>
+        <Caret Line="79" Column="12" TopLine="60"/>
       </Position1>
       <Position2>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="852" Column="16" TopLine="827"/>
+        <Filename Value="demo02.lpr"/>
+        <Caret Line="82" Column="21" TopLine="72"/>
       </Position2>
       <Position3>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="897" Column="11" TopLine="878"/>
+        <Filename Value="demo02.lpr"/>
+        <Caret Line="83" Column="25" TopLine="72"/>
       </Position3>
       <Position4>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="905" Column="20" TopLine="880"/>
+        <Filename Value="demo02.lpr"/>
+        <Caret Line="27" Column="11" TopLine="3"/>
       </Position4>
       <Position5>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="945" Column="18" TopLine="923"/>
+        <Filename Value="demo02.lpr"/>
+        <Caret Line="83" Column="22" TopLine="70"/>
       </Position5>
       <Position6>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1211" Column="11" TopLine="1191"/>
+        <Filename Value="demo02.lpr"/>
+        <Caret Line="78" Column="12" TopLine="64"/>
       </Position6>
       <Position7>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1223" Column="8" TopLine="1197"/>
-      </Position7>
-      <Position8>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1228" Column="8" TopLine="1202"/>
-      </Position8>
-      <Position9>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1242" Column="11" TopLine="1216"/>
-      </Position9>
-      <Position10>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1347" Column="11" TopLine="1322"/>
-      </Position10>
-      <Position11>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1629" Column="7" TopLine="1603"/>
-      </Position11>
-      <Position12>
-        <Filename Value="..\..\..\..\src\zgl_main.pas"/>
-        <Caret Line="184" Column="11" TopLine="169"/>
-      </Position12>
-      <Position13>
         <Filename Value="demo02.lpr"/>
-        <Caret Line="79" Column="12" TopLine="60"/>
-      </Position13>
-      <Position14>
-        <Filename Value="..\..\..\..\src\zgl_file.pas"/>
-        <Caret Line="84" Column="11" TopLine="68"/>
-      </Position14>
-      <Position15>
-        <Filename Value="demo02.lpr"/>
-        <Caret Line="82" Column="21" TopLine="72"/>
-      </Position15>
-      <Position16>
-        <Filename Value="..\..\..\..\src\zgl_font.pas"/>
-        <Caret Line="77" Column="10" TopLine="62"/>
-      </Position16>
-      <Position17>
-        <Filename Value="demo02.lpr"/>
-        <Caret Line="83" Column="25" TopLine="72"/>
-      </Position17>
-      <Position18>
-        <Filename Value="..\..\..\..\src\zgl_textures.pas"/>
-        <Caret Line="121" Column="11" TopLine="106"/>
-      </Position18>
-      <Position19>
-        <Filename Value="demo02.lpr"/>
-        <Caret Line="27" Column="11" TopLine="3"/>
-      </Position19>
-      <Position20>
-        <Filename Value="..\..\..\..\src\zgl_textures_png.pas"/>
-        <Caret Line="519" Column="47" TopLine="492"/>
-      </Position20>
-      <Position21>
-        <Filename Value="..\..\..\..\src\zgl_textures_png.pas"/>
-        <Caret Line="399" Column="9" TopLine="391"/>
-      </Position21>
-      <Position22>
-        <Filename Value="..\..\..\..\src\zgl_memory.pas"/>
-        <Caret Line="40" Column="11" TopLine="24"/>
-      </Position22>
-      <Position23>
-        <Filename Value="demo02.lpr"/>
-        <Caret Line="83" Column="22" TopLine="70"/>
-      </Position23>
-      <Position24>
-        <Filename Value="..\..\..\..\src\zgl_textures.pas"/>
-        <Caret Line="121" Column="11" TopLine="105"/>
-      </Position24>
-      <Position25>
-        <Filename Value="demo02.lpr"/>
-        <Caret Line="78" Column="12" TopLine="64"/>
-      </Position25>
-      <Position26>
-        <Filename Value="..\..\..\..\src\zgl_file.pas"/>
-        <Caret Line="84" Column="11" TopLine="69"/>
-      </Position26>
-      <Position27>
-        <Filename Value="..\..\..\..\src\zgl_textures.pas"/>
-        <Caret Line="355" Column="42" TopLine="347"/>
-      </Position27>
-      <Position28>
-        <Filename Value="..\..\..\..\src\zgl_file.pas"/>
-        <Caret Line="69" Column="11" TopLine="54"/>
-      </Position28>
-      <Position29>
-        <Filename Value="..\..\..\..\src\zgl_file.pas"/>
-        <Caret Line="313" Column="65" TopLine="300"/>
-      </Position29>
-      <Position30>
-        <Filename Value="..\..\..\..\src\zgl_file.pas"/>
-        <Caret Line="318" Column="51" TopLine="304"/>
-      </Position30>
+        <Caret Line="7" Column="15"/>
+      </Position7>
     </JumpHistory>
     <RunParams>
       <FormatVersion Value="2"/>

+ 0 - 7
Zengl_SRC/demos/Android/02 - Resources/res/layout/main.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
-
-</LinearLayout>

+ 1 - 1
Zengl_SRC/demos/Android/03 - Input/jni/demo03.lpi

@@ -43,7 +43,7 @@
       <IncludeFiles Value="..\..\..\..\headers;..\..\..\..\headers\android;$(ProjOutDir);..\..\..\..\src"/>
       <Libraries Value="..\libs\armeabi;C:\codetyphon\binLibraries\android-4.0-api14-arm\"/>
       <OtherUnitFiles Value="..\..\..\..\src;..\..\..\..\lib\zlib\arm-linux;..\..\..\..\lib\zip\arm-linux;..\..\..\..\lib\theora\arm-linux;..\..\..\..\lib\ogg\arm-linux;..\..\..\..\extra"/>
-      <UnitOutputDirectory Value="D:\programming\Zengl_SRC\demos\Android\03 - Input\jni\tmp"/>
+      <UnitOutputDirectory Value="\tmp"/>
     </SearchPaths>
     <CodeGeneration>
       <RelocatableUnit Value="True"/>

+ 6 - 5
Zengl_SRC/demos/Android/03 - Input/jni/demo03.lpr

@@ -4,7 +4,6 @@ library demo03;
 
 uses
   zgl_application,
-  zgl_main,
   zgl_file,
   zgl_screen,
   zgl_window,
@@ -15,7 +14,7 @@ uses
   zgl_font,
   zgl_text,
   zgl_textures_png,
-  zgl_math_2d,
+  zgl_types,
   zgl_collision_2d,
   zgl_utils
   ;
@@ -23,13 +22,15 @@ uses
 var
   dirRes  : UTF8String = 'assets/';
 
-  fntMain   : zglPFont;
+  fntMain   : Byte;
 
   userInput  : UTF8String;
   trackInput : Boolean;
   inputRect  : zglTRect;
   lineAlpha  : Byte;
 
+  TimerStart: Byte;
+
 procedure Init;
 begin
   zgl_Enable(CORRECT_RESOLUTION);
@@ -45,7 +46,7 @@ begin
   inputRect.Y := 300 - 100 - 32;
   inputRect.W := 384;
   inputRect.H := 96;
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
@@ -123,7 +124,7 @@ end;
 
 procedure Java_zengl_android_ZenGL_Main( var env; var thiz ); cdecl;
 begin
-  timer_Add( @Timer, 16 );
+  TimerStart := timer_Add( @Timer, 16, Start );
 
   zgl_Reg( SYS_LOAD, @Init );
   zgl_Reg( SYS_DRAW, @Draw );

+ 33 - 7
Zengl_SRC/demos/Android/03 - Input/jni/demo03.lps

@@ -9,9 +9,9 @@
         <Filename Value="demo03.lpr"/>
         <IsPartOfProject Value="True"/>
         <IsVisibleTab Value="True"/>
-        <TopLine Value="28"/>
-        <CursorPos X="26" Y="47"/>
-        <UsageCount Value="45"/>
+        <TopLine Value="72"/>
+        <CursorPos X="8" Y="8"/>
+        <UsageCount Value="46"/>
         <Loaded Value="True"/>
       </Unit0>
       <Unit1>
@@ -90,7 +90,7 @@
       <Unit12>
         <Filename Value="..\..\..\Lazarus\03 - Input\demo03.lpr"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="124"/>
+        <TopLine Value="130"/>
         <CursorPos X="10" Y="44"/>
         <UsageCount Value="18"/>
       </Unit12>
@@ -111,8 +111,8 @@
       <Unit15>
         <Filename Value="..\..\..\..\src\zgl_screen.pas"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="655"/>
-        <CursorPos Y="591"/>
+        <TopLine Value="16"/>
+        <CursorPos X="11" Y="28"/>
         <UsageCount Value="11"/>
       </Unit15>
       <Unit16>
@@ -146,6 +146,8 @@
       <Unit20>
         <Filename Value="..\..\..\..\src\zgl_config.cfg"/>
         <EditorIndex Value="-1"/>
+        <TopLine Value="97"/>
+        <CursorPos X="3" Y="113"/>
         <UsageCount Value="10"/>
         <DefaultSyntaxHighlighter Value="None"/>
       </Unit20>
@@ -197,7 +199,7 @@
         <UsageCount Value="10"/>
       </Unit27>
     </Units>
-    <JumpHistory Count="8" HistoryIndex="7">
+    <JumpHistory Count="14" HistoryIndex="13">
       <Position1>
         <Filename Value="demo03.lpr"/>
         <Caret Line="126" Column="8" TopLine="105"/>
@@ -230,6 +232,30 @@
         <Filename Value="demo03.lpr"/>
         <Caret Line="58" Column="8" TopLine="43"/>
       </Position8>
+      <Position9>
+        <Filename Value="demo03.lpr"/>
+        <Caret Line="26" Column="18" TopLine="16"/>
+      </Position9>
+      <Position10>
+        <Filename Value="demo03.lpr"/>
+        <Caret Line="135" Column="15" TopLine="109"/>
+      </Position10>
+      <Position11>
+        <Filename Value="demo03.lpr"/>
+        <Caret Line="17" Column="12"/>
+      </Position11>
+      <Position12>
+        <Filename Value="demo03.lpr"/>
+        <Caret Line="47" Column="27" TopLine="35"/>
+      </Position12>
+      <Position13>
+        <Filename Value="demo03.lpr"/>
+        <Caret Line="127" Column="16" TopLine="110"/>
+      </Position13>
+      <Position14>
+        <Filename Value="demo03.lpr"/>
+        <Caret Line="8" Column="8" TopLine="6"/>
+      </Position14>
     </JumpHistory>
     <RunParams>
       <FormatVersion Value="2"/>

+ 0 - 7
Zengl_SRC/demos/Android/03 - Input/res/layout/main.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
-
-</LinearLayout>

+ 6 - 5
Zengl_SRC/demos/Android/04 - Screen Settings/jni/demo04.lpr

@@ -4,7 +4,6 @@ library demo04;
 
 uses
   zgl_application,
-  zgl_main,
   zgl_file,
   zgl_screen,
   zgl_window,
@@ -17,7 +16,7 @@ uses
   zgl_textures,
   zgl_textures_png,
   zgl_textures_jpg,
-  zgl_math_2d,
+  zgl_types,
   zgl_collision_2d,
   zgl_utils
   ;
@@ -25,7 +24,7 @@ uses
 var
   dirRes  : UTF8String = 'assets/';
 
-  fntMain : zglPFont;
+  fntMain : Byte;
   texBack : zglPTexture;
 
   correctAspect : Boolean = TRUE;
@@ -33,6 +32,8 @@ var
 
   str : UTF8String;
 
+  TimeStart: Byte;
+
 procedure Init;
 begin
   zgl_Enable( CORRECT_RESOLUTION );
@@ -46,7 +47,7 @@ begin
   file_CloseArchive();
 
   str := 'Tap here to toggle' + #10 + 'Correction of aspect';
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
@@ -107,7 +108,7 @@ end;
 
 procedure Java_zengl_android_ZenGL_Main( var env; var thiz ); cdecl;
 begin
-  timer_Add( @Timer, 16 );
+  TimeStart := timer_Add( @Timer, 16, Start );
 
   zgl_Reg( SYS_LOAD, @Init );
   zgl_Reg( SYS_DRAW, @Draw );

+ 50 - 93
Zengl_SRC/demos/Android/04 - Screen Settings/jni/demo04.lps

@@ -4,21 +4,22 @@
     <PathDelim Value="\"/>
     <Version Value="11"/>
     <BuildModes Active="Default"/>
-    <Units Count="9">
+    <Units Count="11">
       <Unit0>
         <Filename Value="demo04.lpr"/>
         <IsPartOfProject Value="True"/>
-        <CursorPos X="11" Y="6"/>
-        <UsageCount Value="24"/>
+        <IsVisibleTab Value="True"/>
+        <TopLine Value="36"/>
+        <CursorPos X="37" Y="44"/>
+        <UsageCount Value="26"/>
         <Loaded Value="True"/>
       </Unit0>
       <Unit1>
         <Filename Value="..\..\..\..\src\zgl_screen.pas"/>
-        <EditorIndex Value="7"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="698"/>
         <CursorPos X="49" Y="713"/>
         <UsageCount Value="12"/>
-        <Loaded Value="True"/>
       </Unit1>
       <Unit2>
         <Filename Value="..\..\..\..\src\zgl_window.pas"/>
@@ -28,163 +29,119 @@
       </Unit2>
       <Unit3>
         <Filename Value="..\..\..\..\src\zgl_text.pas"/>
-        <EditorIndex Value="6"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="84"/>
         <CursorPos X="3" Y="85"/>
         <UsageCount Value="12"/>
-        <Loaded Value="True"/>
       </Unit3>
       <Unit4>
         <Filename Value="..\..\..\..\src\zgl_primitives_2d.pas"/>
-        <EditorIndex Value="4"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="75"/>
         <CursorPos X="21" Y="90"/>
         <UsageCount Value="12"/>
-        <Loaded Value="True"/>
       </Unit4>
       <Unit5>
         <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <EditorIndex Value="5"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="753"/>
         <CursorPos X="95" Y="767"/>
         <UsageCount Value="12"/>
-        <Loaded Value="True"/>
       </Unit5>
       <Unit6>
         <Filename Value="..\..\..\..\src\zgl_main.pas"/>
-        <EditorIndex Value="3"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="474"/>
         <CursorPos X="63" Y="465"/>
         <UsageCount Value="11"/>
-        <Loaded Value="True"/>
       </Unit6>
       <Unit7>
         <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <EditorIndex Value="1"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="1612"/>
         <CursorPos X="11" Y="1631"/>
         <UsageCount Value="11"/>
-        <Loaded Value="True"/>
       </Unit7>
       <Unit8>
         <Filename Value="..\..\..\..\src\zgl_threads.pas"/>
-        <IsVisibleTab Value="True"/>
-        <EditorIndex Value="2"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="82"/>
         <CursorPos X="22" Y="91"/>
         <UsageCount Value="11"/>
-        <Loaded Value="True"/>
       </Unit8>
+      <Unit9>
+        <Filename Value="..\..\..\..\src\zgl_sprite_2d.pas"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="240"/>
+        <CursorPos X="3" Y="254"/>
+        <UsageCount Value="10"/>
+      </Unit9>
+      <Unit10>
+        <Filename Value="..\..\..\..\src\zgl_config.cfg"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="101"/>
+        <CursorPos X="32" Y="119"/>
+        <UsageCount Value="10"/>
+        <DefaultSyntaxHighlighter Value="None"/>
+      </Unit10>
     </Units>
-    <JumpHistory Count="27" HistoryIndex="26">
+    <JumpHistory Count="14" HistoryIndex="13">
       <Position1>
-        <Filename Value="..\..\..\..\src\zgl_screen.pas"/>
-        <Caret Line="62" Column="11" TopLine="47"/>
+        <Filename Value="demo04.lpr"/>
+        <Caret Line="10" Column="11"/>
       </Position1>
       <Position2>
         <Filename Value="demo04.lpr"/>
-        <Caret Line="10" Column="11"/>
+        <Caret Line="70" Column="9" TopLine="46"/>
       </Position2>
       <Position3>
         <Filename Value="demo04.lpr"/>
-        <Caret Line="70" Column="9" TopLine="46"/>
+        <Caret Line="67" Column="13" TopLine="53"/>
       </Position3>
       <Position4>
-        <Filename Value="..\..\..\..\src\zgl_text.pas"/>
-        <Caret Line="51" Column="11" TopLine="41"/>
+        <Filename Value="demo04.lpr"/>
+        <Caret Line="70" Column="10" TopLine="58"/>
       </Position4>
       <Position5>
         <Filename Value="demo04.lpr"/>
-        <Caret Line="67" Column="13" TopLine="53"/>
+        <Caret Line="68" Column="11" TopLine="51"/>
       </Position5>
       <Position6>
         <Filename Value="demo04.lpr"/>
-        <Caret Line="70" Column="10" TopLine="58"/>
+        <Caret Line="15" Column="15" TopLine="5"/>
       </Position6>
       <Position7>
-        <Filename Value="..\..\..\..\src\zgl_text.pas"/>
-        <Caret Line="51" Column="11" TopLine="36"/>
+        <Filename Value="demo04.lpr"/>
+        <Caret Line="10" Column="9"/>
       </Position7>
       <Position8>
-        <Filename Value="..\..\..\..\src\zgl_text.pas"/>
-        <Caret Line="461" Column="10" TopLine="439"/>
+        <Filename Value="demo04.lpr"/>
+        <Caret Line="7" Column="9"/>
       </Position8>
       <Position9>
-        <Filename Value="..\..\..\..\src\zgl_text.pas"/>
-        <Caret Line="264" Column="21" TopLine="254"/>
+        <Filename Value="demo04.lpr"/>
+        <Caret Line="6" Column="11"/>
       </Position9>
       <Position10>
         <Filename Value="demo04.lpr"/>
-        <Caret Line="68" Column="11" TopLine="51"/>
+        <Caret Line="111" Column="44" TopLine="95"/>
       </Position10>
       <Position11>
-        <Filename Value="..\..\..\..\src\zgl_primitives_2d.pas"/>
-        <Caret Line="42" Column="11" TopLine="26"/>
+        <Filename Value="demo04.lpr"/>
+        <Caret Line="19" Column="12" TopLine="17"/>
       </Position11>
       <Position12>
         <Filename Value="demo04.lpr"/>
-        <Caret Line="15" Column="15" TopLine="5"/>
+        <Caret Line="50" Column="17" TopLine="36"/>
       </Position12>
       <Position13>
-        <Filename Value="..\..\..\..\src\zgl_primitives_2d.pas"/>
-        <Caret Line="38" Column="17" TopLine="28"/>
+        <Filename Value="demo04.lpr"/>
+        <Caret Line="57" Column="10" TopLine="45"/>
       </Position13>
       <Position14>
-        <Filename Value="..\..\..\..\src\zgl_primitives_2d.pas"/>
-        <Caret Line="90" Column="13" TopLine="82"/>
-      </Position14>
-      <Position15>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="766" Column="13" TopLine="751"/>
-      </Position15>
-      <Position16>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="1220" Column="19" TopLine="1211"/>
-      </Position16>
-      <Position17>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="768" Column="23" TopLine="750"/>
-      </Position17>
-      <Position18>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="766" Column="13" TopLine="750"/>
-      </Position18>
-      <Position19>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="1223" Column="7" TopLine="1212"/>
-      </Position19>
-      <Position20>
-        <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
-        <Caret Line="767" Column="95" TopLine="753"/>
-      </Position20>
-      <Position21>
-        <Filename Value="demo04.lpr"/>
-        <Caret Line="10" Column="9"/>
-      </Position21>
-      <Position22>
         <Filename Value="demo04.lpr"/>
-        <Caret Line="7" Column="9"/>
-      </Position22>
-      <Position23>
-        <Filename Value="..\..\..\..\src\zgl_main.pas"/>
-        <Caret Line="184" Column="19" TopLine="171"/>
-      </Position23>
-      <Position24>
-        <Filename Value="demo04.lpr"/>
-        <Caret Line="6" Column="11"/>
-      </Position24>
-      <Position25>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="120" Column="46" TopLine="111"/>
-      </Position25>
-      <Position26>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1631" Column="11" TopLine="1612"/>
-      </Position26>
-      <Position27>
-        <Filename Value="..\..\..\..\src\zgl_threads.pas"/>
-        <Caret Line="50" Column="11" TopLine="38"/>
-      </Position27>
+        <Caret Line="57" Column="11" TopLine="42"/>
+      </Position14>
     </JumpHistory>
     <RunParams>
       <FormatVersion Value="2"/>

BIN
Zengl_SRC/demos/Android/04 - Screen Settings/libs/armeabi/libGLU.so


BIN
Zengl_SRC/demos/Android/04 - Screen Settings/libs/armeabi/libchipmunk.so


BIN
Zengl_SRC/demos/Android/04 - Screen Settings/libs/armeabi/libdemo04.so


BIN
Zengl_SRC/demos/Android/04 - Screen Settings/libs/armeabi/libogg.so


BIN
Zengl_SRC/demos/Android/04 - Screen Settings/libs/armeabi/libopenal.so


BIN
Zengl_SRC/demos/Android/04 - Screen Settings/libs/armeabi/libtheoradec.so


BIN
Zengl_SRC/demos/Android/04 - Screen Settings/libs/armeabi/libvorbis.so


BIN
Zengl_SRC/demos/Android/04 - Screen Settings/libs/armeabi/libzenjpeg.so


+ 0 - 7
Zengl_SRC/demos/Android/04 - Screen Settings/res/layout/main.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
-
-</LinearLayout>

+ 35 - 7
Zengl_SRC/demos/Android/05 - Primitives/jni/demo05.lps

@@ -4,13 +4,12 @@
     <PathDelim Value="\"/>
     <Version Value="11"/>
     <BuildModes Active="Default"/>
-    <Units Count="13">
+    <Units Count="14">
       <Unit0>
         <Filename Value="demo05.pas"/>
         <IsPartOfProject Value="True"/>
         <IsVisibleTab Value="True"/>
-        <TopLine Value="46"/>
-        <CursorPos X="52" Y="58"/>
+        <CursorPos X="15" Y="14"/>
         <UsageCount Value="37"/>
         <Loaded Value="True"/>
       </Unit0>
@@ -79,10 +78,11 @@
       </Unit9>
       <Unit10>
         <Filename Value="..\..\..\..\src\zgl_config.cfg"/>
-        <EditorIndex Value="-1"/>
-        <TopLine Value="122"/>
-        <CursorPos X="9" Y="148"/>
+        <EditorIndex Value="2"/>
+        <TopLine Value="103"/>
+        <CursorPos X="3" Y="114"/>
         <UsageCount Value="10"/>
+        <Loaded Value="True"/>
         <DefaultSyntaxHighlighter Value="None"/>
       </Unit10>
       <Unit11>
@@ -100,8 +100,16 @@
         <CursorPos X="11" Y="26"/>
         <UsageCount Value="10"/>
       </Unit12>
+      <Unit13>
+        <Filename Value="..\..\..\..\src\zgl_screen.pas"/>
+        <EditorIndex Value="1"/>
+        <TopLine Value="17"/>
+        <CursorPos X="14" Y="28"/>
+        <UsageCount Value="10"/>
+        <Loaded Value="True"/>
+      </Unit13>
     </Units>
-    <JumpHistory Count="3" HistoryIndex="2">
+    <JumpHistory Count="8" HistoryIndex="7">
       <Position1>
         <Filename Value="demo05.pas"/>
         <Caret Line="6" Column="12"/>
@@ -114,6 +122,26 @@
         <Filename Value="demo05.pas"/>
         <Caret Line="49" Column="7" TopLine="49"/>
       </Position3>
+      <Position4>
+        <Filename Value="demo05.pas"/>
+        <Caret Line="22" Column="17"/>
+      </Position4>
+      <Position5>
+        <Filename Value="demo05.pas"/>
+        <Caret Line="7" Column="7"/>
+      </Position5>
+      <Position6>
+        <Filename Value="..\..\..\..\src\zgl_screen.pas"/>
+        <Caret Line="28" Column="14" TopLine="17"/>
+      </Position6>
+      <Position7>
+        <Filename Value="..\..\..\..\src\zgl_config.cfg"/>
+        <Caret Line="114" Column="3" TopLine="103"/>
+      </Position7>
+      <Position8>
+        <Filename Value="demo05.pas"/>
+        <Caret Line="13" Column="12"/>
+      </Position8>
     </JumpHistory>
     <RunParams>
       <FormatVersion Value="2"/>

+ 1 - 1
Zengl_SRC/demos/Android/05 - Primitives/jni/demo05.pas

@@ -4,13 +4,13 @@ library demo05;
 
 uses
   zgl_application,
-  zgl_main,
   zgl_screen,
   zgl_window,
   zgl_timers,
   zgl_fx,
   zgl_render_2d,
   zgl_primitives_2d,
+  zgl_types,
   zgl_math_2d,
   zgl_utils
   ;

+ 0 - 7
Zengl_SRC/demos/Android/05 - Primitives/res/layout/main.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
-
-</LinearLayout>

+ 6 - 8
Zengl_SRC/demos/Android/06 - Text/jni/demo06.lpr

@@ -1,10 +1,9 @@
-library demo06;
+library demo06;
 
 {$I zglCustomConfig.cfg}
 
 uses
   zgl_application,
-  zgl_main,
   zgl_file,
   zgl_screen,
   zgl_window,
@@ -16,17 +15,15 @@ uses
   zgl_textures_png,
   zgl_font,
   zgl_text,
-  zgl_math_2d,
+  zgl_types,
   zgl_utils
   ;
 
 var
   dirRes  : UTF8String = 'assets/';
-  fntMain : zglPFont;
+  fntMain : Byte;
 
 procedure Init;
-  //var
-  //  i : Integer;
 begin
   zgl_Enable( CORRECT_RESOLUTION );
   scr_CorrectResolution( 800, 600 );
@@ -58,7 +55,7 @@ begin
 
   text_DrawEx( fntMain, 400, 65, 3, 0, 'Scaling', 255, $FFFFFF, TEXT_HALIGN_CENTER );
 
-  setTextScale(1.5);    // установка полуторного размера шрифта
+  setTextScale(15, fntMain);    // установка полуторного размера шрифта
   fx2d_SetVCA( $FF0000, $00FF00, $0000FF, $FFFFFF, 255, 255, 255, 255 );
   text_Draw( fntMain, 400, 125, 'Gradient color for every symbol', TEXT_FX_VCA or TEXT_HALIGN_CENTER );
 
@@ -66,7 +63,8 @@ begin
   r.Y := 300 - 128;
   r.W := 192;
   r.H := 256;
-  text_DrawInRect( fntMain, r, 'Simple text rendering in rectangle' );
+  // выставить кодировку страницы на UTF-8 с BOM
+  text_DrawInRect( fntMain, r, 'Simple text rendering in rectangle ' + ' Текст в квадрате на русском )))');
   pr2d_Rect( r.X, r.Y, r.W, r.H, $FF0000 );
 
   r.X := 800 - 192;

+ 23 - 3
Zengl_SRC/demos/Android/06 - Text/jni/demo06.lps

@@ -4,13 +4,13 @@
     <PathDelim Value="\"/>
     <Version Value="11"/>
     <BuildModes Active="Default"/>
-    <Units Count="9">
+    <Units Count="10">
       <Unit0>
         <Filename Value="demo06.lpr"/>
         <IsPartOfProject Value="True"/>
         <IsVisibleTab Value="True"/>
         <TopLine Value="53"/>
-        <CursorPos X="64" Y="61"/>
+        <CursorPos X="75" Y="69"/>
         <UsageCount Value="21"/>
         <Loaded Value="True"/>
       </Unit0>
@@ -38,6 +38,8 @@
       <Unit4>
         <Filename Value="..\..\..\..\src\zgl_config.cfg"/>
         <EditorIndex Value="-1"/>
+        <TopLine Value="100"/>
+        <CursorPos X="2" Y="111"/>
         <UsageCount Value="11"/>
         <DefaultSyntaxHighlighter Value="None"/>
       </Unit4>
@@ -68,8 +70,14 @@
         <CursorPos X="22" Y="1183"/>
         <UsageCount Value="10"/>
       </Unit8>
+      <Unit9>
+        <Filename Value="..\..\..\..\src\zgl_file.pas"/>
+        <EditorIndex Value="-1"/>
+        <CursorPos X="10" Y="28"/>
+        <UsageCount Value="10"/>
+      </Unit9>
     </Units>
-    <JumpHistory Count="2" HistoryIndex="1">
+    <JumpHistory Count="5" HistoryIndex="4">
       <Position1>
         <Filename Value="demo06.lpr"/>
         <Caret Line="117" Column="11" TopLine="92"/>
@@ -78,6 +86,18 @@
         <Filename Value="demo06.lpr"/>
         <Caret Line="62" Column="8" TopLine="56"/>
       </Position2>
+      <Position3>
+        <Filename Value="demo06.lpr"/>
+        <Caret Line="24" Column="22" TopLine="93"/>
+      </Position3>
+      <Position4>
+        <Filename Value="demo06.lpr"/>
+        <Caret Line="18" Column="12" TopLine="2"/>
+      </Position4>
+      <Position5>
+        <Filename Value="demo06.lpr"/>
+        <Caret Line="7" Column="9"/>
+      </Position5>
     </JumpHistory>
     <RunParams>
       <FormatVersion Value="2"/>

+ 0 - 7
Zengl_SRC/demos/Android/06 - Text/res/layout/main.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
-
-</LinearLayout>

+ 61 - 28
Zengl_SRC/demos/iOS/07_Sprites/demo07/demo07.pas → Zengl_SRC/demos/Android/07 - Sprites/jni/backup/demo07.lpr

@@ -1,9 +1,9 @@
-program demo07;
+library demo07;
 
 {$I zglCustomConfig.cfg}
-
 uses
-  zgl_main,
+  zgl_application,
+  zgl_file,
   zgl_screen,
   zgl_window,
   zgl_timers,
@@ -17,20 +17,20 @@ uses
   zgl_primitives_2d,
   zgl_font,
   zgl_text,
-  zgl_math_2d,
+  zgl_types,
+  zgl_log,
   zgl_utils
   ;
-
 type
   TTux = record
     Texture : zglPTexture;
-    Frame   : Integer;
+    Frame   : Integer;                          // указатель на "подтекстуру"
     Pos     : zglTPoint2D;
 end;
 
 var
-  dirRes      : UTF8String = 'data/';
-  fntMain     : zglPFont;
+  dirRes      : UTF8String = 'assets/';
+  fntMain     : Byte;
   texLogo     : zglPTexture;
   texBack     : zglPTexture;
   texGround   : zglPTexture;
@@ -40,6 +40,8 @@ var
   time        : Integer;
   camMain     : zglTCamera2D;
 
+  TimeStart: Byte;
+
 procedure Init;
   var
     i : Integer;
@@ -51,6 +53,8 @@ begin
   // EN: Camera must be initialized, because camera structure is zero-filled by default.
   cam2d_Init( camMain );
 
+  file_OpenArchive( PAnsiChar( zgl_Get( DIRECTORY_APPLICATION ) ) );
+
   // RU: Загружаем текстуру.
   //     $FF000000 - указывает на то, что бы использовать альфа-канал из изображения.
   //     TEX_DEFAULT_2D - комплекс флагов, необходимых для 2D-спрайтов. Описание есть в справке.
@@ -93,13 +97,19 @@ begin
   // RU: Загружаем шрифт.
   // EN: Load the font.
   fntMain := font_LoadFromFile( dirRes + 'font.zfi' );
+
+  file_CloseArchive();
+
+  setTextScale(20, fntMain);
 end;
 
 procedure Draw;
   var
     i : Integer;
     t : Single;
+    ScaleF: LongWord;
 begin
+  ScaleF := 20;      // условно указываем размеры фонта, но можно использовать -> ScaleF := getTextScale(fntMain)
   batch2d_Begin();
   if time > 255 Then
     begin
@@ -125,10 +135,10 @@ begin
           begin
             // RU: Рисуем надпись в "рамочке" над пингвином.
             // EN: Render the text in frame over penguins.
-            t := text_GetWidth( fntMain, 'I''m so red...' ) * 0.75 + 4;
-            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - fntMain.MaxHeight + 4, t, fntMain.MaxHeight, $000000, 200, PR2D_FILL );
-            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - fntMain.MaxHeight + 4, t, fntMain.MaxHeight, $FFFFFF );
-            text_DrawEx( fntMain, tux[ i ].Pos.X, tux[ i ].Pos.Y - fntMain.MaxHeight + 8, 0.75, 0, 'I''m so red...' );
+            t := text_GetWidth( fntMain, 'I''m so red...' ) * 0.75;
+            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - ScaleF + 4, t, ScaleF, $000000, 200, PR2D_FILL );
+            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - ScaleF + 3, t + 2, ScaleF + 2, $FFFFFF );
+            text_DrawEx( fntMain, tux[ i ].Pos.X, tux[ i ].Pos.Y - ScaleF + 5, 1, 0, 'I''m so red...' );
             // RU: Рисуем красного пингвина используя fx2d-функцию и флаг FX_COLOR.
             // EN: Render red penguin using fx2d-function and flag FX_COLOR.
             fx2d_SetColor( $FF0000 );
@@ -136,10 +146,10 @@ begin
           end else
             if i = 7 Then
               begin
-                t := text_GetWidth( fntMain, '???' ) * 0.75 + 4;
-                pr2d_Rect( tux[ i ].Pos.X + 32 - t / 2, tux[ i ].Pos.Y - fntMain.MaxHeight + 4, t, fntMain.MaxHeight, $000000, 200, PR2D_FILL );
-                pr2d_Rect( tux[ i ].Pos.X + 32 - t / 2, tux[ i ].Pos.Y - fntMain.MaxHeight + 4, t, fntMain.MaxHeight, $FFFFFF );
-                text_DrawEx( fntMain, tux[ i ].Pos.X + 32, tux[ i ].Pos.Y - fntMain.MaxHeight + 8, 0.75, 0, '???', 255, $FFFFFF, TEXT_HALIGN_CENTER );
+                t := text_GetWidth( fntMain, '???' )+ 4;
+                pr2d_Rect( tux[ i ].Pos.X + 32 - t / 2, tux[ i ].Pos.Y - ScaleF + 4, t, ScaleF, $000000, 200, PR2D_FILL );
+                pr2d_Rect( tux[ i ].Pos.X + 32 - t / 2 - 1, tux[ i ].Pos.Y - ScaleF + 3, t + 2, ScaleF + 2, $FFFFFF );
+                text_DrawEx( fntMain, tux[ i ].Pos.X + 32, tux[ i ].Pos.Y - ScaleF + 5, 1, 0, '???', 255, $FFFFFF, TEXT_HALIGN_CENTER );
                 // RU: Рисуем пингвина приведение используя флаг FX_COLOR установив режим в FX_COLOR_SET :)
                 // EN: Render penguin ghost using flag FX_COLOR and mode FX_COLOR_SET :)
                 fx_SetColorMode( FX_COLOR_SET );
@@ -156,10 +166,10 @@ begin
       for i := 10 to 19 do
         if i = 13 Then
           begin
-            t := text_GetWidth( fntMain, 'I''m so big...' ) * 0.75 + 4;
-            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - fntMain.MaxHeight - 10, t, fntMain.MaxHeight, $000000, 200, PR2D_FILL );
-            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - fntMain.MaxHeight - 10, t, fntMain.MaxHeight, $FFFFFF );
-            text_DrawEx( fntMain, tux[ i ].Pos.X, tux[ i ].Pos.Y - fntMain.MaxHeight - 4, 0.75, 0, 'I''m so big...' );
+            t := text_GetWidth( fntMain, 'I''m so big...' ) * 0.75;
+            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - ScaleF - 10, t, ScaleF, $000000, 200, PR2D_FILL );
+            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - ScaleF - 11, t + 2, ScaleF + 2, $FFFFFF );
+            text_DrawEx( fntMain, tux[ i ].Pos.X, tux[ i ].Pos.Y - ScaleF - 9, 1, 0, 'I''m so big...' );
             // RU: Рисуем "большего" пингвина. Т.к. FX2D_SCALE увеличивает спрайт относительно центра, то пингвина следует немного "поднять".
             // EN: Render "big" penguin. It must be shifted up, because FX2D_SCALE scale sprite relative to the center.
             fx2d_SetScale( 1.25, 1.25 );
@@ -184,10 +194,10 @@ begin
       asprite2d_Draw( texGround, 12 * 32, 300 - 16, 32, 32, 0, 2 );
       asprite2d_Draw( texGround, 13 * 32, 300 - 16, 32, 32, 0, 3 );
 
-      t := text_GetWidth( fntMain, 'o_O' ) * 0.75 + 4;
-      pr2d_Rect( tux[ 20 ].Pos.X + 32 - t / 2, tux[ 20 ].Pos.Y - fntMain.MaxHeight + 4, t, fntMain.MaxHeight, $000000, 200, PR2D_FILL );
-      pr2d_Rect( tux[ 20 ].Pos.X + 32 - t / 2, tux[ 20 ].Pos.Y - fntMain.MaxHeight + 4, t, fntMain.MaxHeight, $FFFFFF );
-      text_DrawEx( fntMain, tux[ 20 ].Pos.X + 32, tux[ 20 ].Pos.Y - fntMain.MaxHeight + 8, 0.75, 0, 'o_O', 255, $FFFFFF, TEXT_HALIGN_CENTER );
+      t := text_GetWidth( fntMain, 'o_O' ) * 0.75;
+      pr2d_Rect( tux[ 20 ].Pos.X + 32 - t / 2, tux[ 20 ].Pos.Y - ScaleF + 3, t + 2, ScaleF + 2, $000000, 200, PR2D_FILL );
+      pr2d_Rect( tux[ 20 ].Pos.X + 32 - t / 2, tux[ 20 ].Pos.Y - ScaleF + 2, t + 4, ScaleF + 4, $FFFFFF );
+      text_DrawEx( fntMain, tux[ 20 ].Pos.X + 32, tux[ 20 ].Pos.Y - ScaleF + 5, 1, 0, 'o_O', 255, $FFFFFF, TEXT_HALIGN_CENTER );
       asprite2d_Draw( tux[ 20 ].Texture, tux[ 20 ].Pos.X, tux[ 20 ].Pos.Y, 64, 64, 0, tux[ 20 ].Frame div 2 );
     end;
 
@@ -201,7 +211,9 @@ begin
       end;
 
   if time > 255 Then
+  begin
     text_Draw( fntMain, 0, 0, 'FPS: ' + u_IntToStr( zgl_Get( RENDER_FPS ) ) );
+  end;
   batch2d_End();
 end;
 
@@ -233,15 +245,36 @@ begin
     end;
 end;
 
-Begin
+procedure Restore;
+begin
+  file_OpenArchive( PAnsiChar( zgl_Get( DIRECTORY_APPLICATION ) ) );
+
+  tex_RestoreFromFile( texLogo, dirRes + 'zengl.png' );
+  tex_RestoreFromFile( texBack, dirRes + 'back01.jpg' );
+  tex_RestoreFromFile( texGround, dirRes + 'ground.png' );
+  tex_RestoreFromFile( texTuxWalk, dirRes + 'tux_walking.png' );
+  tex_RestoreFromFile( texTuxStand, dirRes + 'tux_stand.png' );
+
+  font_RestoreFromFile( fntMain, dirRes + 'font.zfi' );
+
+  file_CloseArchive();
+end;
+
+procedure Java_zengl_android_ZenGL_Main( var env; var thiz ); cdecl;
+begin
   randomize();
 
-  timer_Add( @Timer, 16 );
+  TimeStart := timer_Add( @Timer, 16, Start );
 
   zgl_Reg( SYS_LOAD, @Init );
   zgl_Reg( SYS_DRAW, @Draw );
+  zgl_Reg( SYS_ANDROID_RESTORE, @Restore );
 
-  scr_SetOptions( 800, 600, REFRESH_MAXIMUM, TRUE, TRUE );
+  scr_SetOptions();
+end;
 
-  zgl_Init();
+exports
+  Java_zengl_android_ZenGL_Main,
+  {$I android_export.inc}
 End.
+

+ 1 - 1
Zengl_SRC/demos/Android/07 - Sprites/jni/demo07.lpi

@@ -43,7 +43,7 @@
       <IncludeFiles Value="..\..\..\..\headers;..\..\..\..\headers\android;$(ProjOutDir);..\..\..\..\src"/>
       <Libraries Value="..\libs\armeabi;..\..\..\..\bin\Android\armv6;E:\SDK_manadger\android-ndk-r9c\platforms\android-14\arch-arm\usr\lib\"/>
       <OtherUnitFiles Value="..\..\..\..\src;..\..\..\..\extra;..\..\..\..\lib\zlib\arm-linux;..\..\..\..\lib\zip\arm-linux;..\..\..\..\lib\theora\arm-linux;..\..\..\..\lib\ogg\arm-linux"/>
-      <UnitOutputDirectory Value="D:\programming\Zengl_SRC\demos\Android\07 - Sprites\jni\tmp"/>
+      <UnitOutputDirectory Value="\tmp"/>
     </SearchPaths>
     <CodeGeneration>
       <RelocatableUnit Value="True"/>

+ 28 - 25
Zengl_SRC/demos/Android/07 - Sprites/jni/demo07.lpr

@@ -3,7 +3,6 @@ library demo07;
 {$I zglCustomConfig.cfg}
 uses
   zgl_application,
-  zgl_main,
   zgl_file,
   zgl_screen,
   zgl_window,
@@ -18,7 +17,7 @@ uses
   zgl_primitives_2d,
   zgl_font,
   zgl_text,
-  zgl_math_2d,
+  zgl_types,
   zgl_log,
   zgl_utils
   ;
@@ -31,7 +30,7 @@ end;
 
 var
   dirRes      : UTF8String = 'assets/';
-  fntMain     : zglPFont;
+  fntMain     : Byte;
   texLogo     : zglPTexture;
   texBack     : zglPTexture;
   texGround   : zglPTexture;
@@ -41,6 +40,8 @@ var
   time        : Integer;
   camMain     : zglTCamera2D;
 
+  TimeStart: Byte;
+
 procedure Init;
   var
     i : Integer;
@@ -98,14 +99,18 @@ begin
   fntMain := font_LoadFromFile( dirRes + 'font.zfi' );
 
   file_CloseArchive();
+
+  setTextScale(20, fntMain);
 end;
 
 procedure Draw;
   var
     i : Integer;
     t : Single;
+    ScaleF: LongWord;
 begin
-//  batch2d_Begin();
+  ScaleF := 20;      // условно указываем размеры фонта, но можно использовать -> ScaleF := getTextScale(fntMain)
+  batch2d_Begin();
   if time > 255 Then
     begin
       // RU: Рисуем задний фон с размерами 800х600 используя текстуру back.
@@ -130,10 +135,10 @@ begin
           begin
             // RU: Рисуем надпись в "рамочке" над пингвином.
             // EN: Render the text in frame over penguins.
-            t := text_GetWidth( fntMain, 'I''m so red...' ) * 1 + 4;
-            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - fntMain^.MaxHeight + 4, t, fntMain^.MaxHeight, $000000, 200, PR2D_FILL );
-            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - fntMain^.MaxHeight + 4, t, fntMain^.MaxHeight, $FFFFFF );
-            text_DrawEx( fntMain, tux[ i ].Pos.X, tux[ i ].Pos.Y - fntMain^.MaxHeight + 8, 1, 0, 'I''m so red...' );
+            t := text_GetWidth( fntMain, 'I''m so red...' ) * 0.75;
+            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - ScaleF + 4, t, ScaleF, $000000, 200, PR2D_FILL );
+            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - ScaleF + 3, t + 2, ScaleF + 2, $FFFFFF );
+            text_DrawEx( fntMain, tux[ i ].Pos.X, tux[ i ].Pos.Y - ScaleF + 5, 1, 0, 'I''m so red...' );
             // RU: Рисуем красного пингвина используя fx2d-функцию и флаг FX_COLOR.
             // EN: Render red penguin using fx2d-function and flag FX_COLOR.
             fx2d_SetColor( $FF0000 );
@@ -141,10 +146,10 @@ begin
           end else
             if i = 7 Then
               begin
-                t := text_GetWidth( fntMain, '???' ) * 1 + 4;
-                pr2d_Rect( tux[ i ].Pos.X + 32 - t / 2, tux[ i ].Pos.Y - fntMain^.MaxHeight + 4, t, fntMain^.MaxHeight, $000000, 200, PR2D_FILL );
-                pr2d_Rect( tux[ i ].Pos.X + 32 - t / 2, tux[ i ].Pos.Y - fntMain^.MaxHeight + 4, t, fntMain^.MaxHeight, $FFFFFF );
-                text_DrawEx( fntMain, tux[ i ].Pos.X + 32, tux[ i ].Pos.Y - fntMain^.MaxHeight + 8, 1, 0, '???', 255, $FFFFFF, TEXT_HALIGN_CENTER );
+                t := text_GetWidth( fntMain, '???' )+ 4;
+                pr2d_Rect( tux[ i ].Pos.X + 32 - t / 2, tux[ i ].Pos.Y - ScaleF + 4, t, ScaleF, $000000, 200, PR2D_FILL );
+                pr2d_Rect( tux[ i ].Pos.X + 32 - t / 2 - 1, tux[ i ].Pos.Y - ScaleF + 3, t + 2, ScaleF + 2, $FFFFFF );
+                text_DrawEx( fntMain, tux[ i ].Pos.X + 32, tux[ i ].Pos.Y - ScaleF + 5, 1, 0, '???', 255, $FFFFFF, TEXT_HALIGN_CENTER );
                 // RU: Рисуем пингвина приведение используя флаг FX_COLOR установив режим в FX_COLOR_SET :)
                 // EN: Render penguin ghost using flag FX_COLOR and mode FX_COLOR_SET :)
                 fx_SetColorMode( FX_COLOR_SET );
@@ -161,10 +166,10 @@ begin
       for i := 10 to 19 do
         if i = 13 Then
           begin
-            t := text_GetWidth( fntMain, 'I''m so big...' ) * 1 + 4;
-            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - fntMain^.MaxHeight - 10, t, fntMain^.MaxHeight, $000000, 200, PR2D_FILL );
-            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - fntMain^.MaxHeight - 10, t, fntMain^.MaxHeight, $FFFFFF );
-            text_DrawEx( fntMain, tux[ i ].Pos.X, tux[ i ].Pos.Y - fntMain^.MaxHeight - 4, 1, 0, 'I''m so big...' );
+            t := text_GetWidth( fntMain, 'I''m so big...' ) * 0.75;
+            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - ScaleF - 10, t, ScaleF, $000000, 200, PR2D_FILL );
+            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - ScaleF - 11, t + 2, ScaleF + 2, $FFFFFF );
+            text_DrawEx( fntMain, tux[ i ].Pos.X, tux[ i ].Pos.Y - ScaleF - 9, 1, 0, 'I''m so big...' );
             // RU: Рисуем "большего" пингвина. Т.к. FX2D_SCALE увеличивает спрайт относительно центра, то пингвина следует немного "поднять".
             // EN: Render "big" penguin. It must be shifted up, because FX2D_SCALE scale sprite relative to the center.
             fx2d_SetScale( 1.25, 1.25 );
@@ -189,10 +194,10 @@ begin
       asprite2d_Draw( texGround, 12 * 32, 300 - 16, 32, 32, 0, 2 );
       asprite2d_Draw( texGround, 13 * 32, 300 - 16, 32, 32, 0, 3 );
 
-      t := text_GetWidth( fntMain, 'o_O' ) * 1 + 4;
-      pr2d_Rect( tux[ 20 ].Pos.X + 32 - t / 2, tux[ 20 ].Pos.Y - fntMain^.MaxHeight + 4, t, fntMain^.MaxHeight, $000000, 200, PR2D_FILL );
-      pr2d_Rect( tux[ 20 ].Pos.X + 32 - t / 2, tux[ 20 ].Pos.Y - fntMain^.MaxHeight + 4, t, fntMain^.MaxHeight, $FFFFFF );
-      text_DrawEx( fntMain, tux[ 20 ].Pos.X + 32, tux[ 20 ].Pos.Y - fntMain^.MaxHeight + 8, 1, 0, 'o_O', 255, $FFFFFF, TEXT_HALIGN_CENTER );
+      t := text_GetWidth( fntMain, 'o_O' ) * 0.75;
+      pr2d_Rect( tux[ 20 ].Pos.X + 32 - t / 2, tux[ 20 ].Pos.Y - ScaleF + 3, t + 2, ScaleF + 2, $000000, 200, PR2D_FILL );
+      pr2d_Rect( tux[ 20 ].Pos.X + 32 - t / 2, tux[ 20 ].Pos.Y - ScaleF + 2, t + 4, ScaleF + 4, $FFFFFF );
+      text_DrawEx( fntMain, tux[ 20 ].Pos.X + 32, tux[ 20 ].Pos.Y - ScaleF + 5, 1, 0, 'o_O', 255, $FFFFFF, TEXT_HALIGN_CENTER );
       asprite2d_Draw( tux[ 20 ].Texture, tux[ 20 ].Pos.X, tux[ 20 ].Pos.Y, 64, 64, 0, tux[ 20 ].Frame div 2 );
     end;
 
@@ -206,11 +211,9 @@ begin
       end;
 
   if time > 255 Then
-  begin
-    setTextScale(1.5);
     text_Draw( fntMain, 0, 0, 'FPS: ' + u_IntToStr( zgl_Get( RENDER_FPS ) ) );
-  end;
-//  batch2d_End();
+
+  batch2d_End();
 end;
 
 procedure Timer;
@@ -260,7 +263,7 @@ procedure Java_zengl_android_ZenGL_Main( var env; var thiz ); cdecl;
 begin
   randomize();
 
-  timer_Add( @Timer, 16 );
+  TimeStart := timer_Add( @Timer, 16, Start );
 
   zgl_Reg( SYS_LOAD, @Init );
   zgl_Reg( SYS_DRAW, @Draw );

+ 34 - 136
Zengl_SRC/demos/Android/07 - Sprites/jni/demo07.lps

@@ -4,13 +4,14 @@
     <PathDelim Value="\"/>
     <Version Value="11"/>
     <BuildModes Active="Default"/>
-    <Units Count="36">
+    <Units Count="37">
       <Unit0>
         <Filename Value="demo07.lpr"/>
         <IsPartOfProject Value="True"/>
-        <TopLine Value="25"/>
-        <CursorPos X="50" Y="21"/>
-        <UsageCount Value="109"/>
+        <IsVisibleTab Value="True"/>
+        <TopLine Value="176"/>
+        <CursorPos X="70" Y="141"/>
+        <UsageCount Value="115"/>
         <Loaded Value="True"/>
       </Unit0>
       <Unit1>
@@ -30,7 +31,9 @@
       <Unit3>
         <Filename Value="..\..\..\..\src\zgl_config.cfg"/>
         <EditorIndex Value="-1"/>
-        <UsageCount Value="27"/>
+        <TopLine Value="102"/>
+        <CursorPos X="2" Y="110"/>
+        <UsageCount Value="29"/>
         <DefaultSyntaxHighlighter Value="None"/>
       </Unit3>
       <Unit4>
@@ -47,19 +50,15 @@
       </Unit5>
       <Unit6>
         <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <IsVisibleTab Value="True"/>
-        <EditorIndex Value="1"/>
-        <TopLine Value="1763"/>
-        <CursorPos X="3" Y="1765"/>
+        <EditorIndex Value="-1"/>
+        <CursorPos X="9" Y="28"/>
         <UsageCount Value="28"/>
-        <Loaded Value="True"/>
       </Unit6>
       <Unit7>
         <Filename Value="..\..\..\..\headers\android\android_export.inc"/>
-        <EditorIndex Value="2"/>
-        <CursorPos Y="9"/>
+        <EditorIndex Value="-1"/>
+        <CursorPos X="12" Y="14"/>
         <UsageCount Value="11"/>
-        <Loaded Value="True"/>
       </Unit7>
       <Unit8>
         <Filename Value="..\..\..\..\src\zgl_window.pas"/>
@@ -96,8 +95,8 @@
       <Unit13>
         <Filename Value="..\..\..\..\src\zgl_text.pas"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="18"/>
-        <CursorPos X="20" Y="294"/>
+        <TopLine Value="428"/>
+        <CursorPos X="26" Y="444"/>
         <UsageCount Value="32"/>
       </Unit13>
       <Unit14>
@@ -110,23 +109,23 @@
       <Unit15>
         <Filename Value="..\..\..\..\src\zgl_primitives_2d.pas"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="335"/>
-        <CursorPos Y="222"/>
-        <UsageCount Value="29"/>
+        <TopLine Value="107"/>
+        <CursorPos X="15" Y="123"/>
+        <UsageCount Value="31"/>
       </Unit15>
       <Unit16>
         <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="1052"/>
-        <CursorPos X="3" Y="898"/>
-        <UsageCount Value="47"/>
+        <TopLine Value="1185"/>
+        <CursorPos X="3" Y="1187"/>
+        <UsageCount Value="49"/>
       </Unit16>
       <Unit17>
         <Filename Value="..\..\..\..\src\zgl_render_2d.pas"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="4"/>
-        <CursorPos X="3" Y="93"/>
-        <UsageCount Value="29"/>
+        <TopLine Value="77"/>
+        <CursorPos X="3" Y="79"/>
+        <UsageCount Value="31"/>
       </Unit17>
       <Unit18>
         <Filename Value="C:\codetyphon\fpcsrc\packages\opengl\src\gl.pp"/>
@@ -254,128 +253,27 @@
         <CursorPos X="91" Y="61"/>
         <UsageCount Value="11"/>
       </Unit35>
+      <Unit36>
+        <Filename Value="..\..\..\Lazarus\07 - Sprites\demo07.lpr"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="207"/>
+        <CursorPos X="31" Y="222"/>
+        <UsageCount Value="10"/>
+      </Unit36>
     </Units>
-    <JumpHistory Count="30" HistoryIndex="29">
+    <JumpHistory Count="3" HistoryIndex="2">
       <Position1>
         <Filename Value="demo07.lpr"/>
-        <Caret Line="271" Column="3" TopLine="247"/>
+        <Caret Line="151" Column="21" TopLine="132"/>
       </Position1>
       <Position2>
         <Filename Value="demo07.lpr"/>
-        <Caret Line="216" Column="106" TopLine="195"/>
+        <Caret Line="113" Column="10" TopLine="104"/>
       </Position2>
       <Position3>
         <Filename Value="demo07.lpr"/>
-        <Caret Line="211" Column="77" TopLine="195"/>
+        <Caret Line="200" Column="14" TopLine="186"/>
       </Position3>
-      <Position4>
-        <Filename Value="demo07.lpr"/>
-        <Caret Line="269" Column="11" TopLine="247"/>
-      </Position4>
-      <Position5>
-        <Filename Value="demo07.lpr"/>
-        <Caret Line="274" Column="21" TopLine="245"/>
-      </Position5>
-      <Position6>
-        <Filename Value="demo07.lpr"/>
-        <Caret Line="5" Column="12"/>
-      </Position6>
-      <Position7>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="128" Column="26" TopLine="103"/>
-      </Position7>
-      <Position8>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1767" Column="21" TopLine="1741"/>
-      </Position8>
-      <Position9>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="154" Column="15" TopLine="138"/>
-      </Position9>
-      <Position10>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="155" Column="18" TopLine="138"/>
-      </Position10>
-      <Position11>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1909" Column="16" TopLine="1882"/>
-      </Position11>
-      <Position12>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="155" Column="18" TopLine="139"/>
-      </Position12>
-      <Position13>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1763" Column="9" TopLine="1747"/>
-      </Position13>
-      <Position14>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="126" Column="40" TopLine="117"/>
-      </Position14>
-      <Position15>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1763" Column="55" TopLine="1751"/>
-      </Position15>
-      <Position16>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="126" Column="55" TopLine="110"/>
-      </Position16>
-      <Position17>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="155" Column="18" TopLine="129"/>
-      </Position17>
-      <Position18>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="371" Column="26" TopLine="345"/>
-      </Position18>
-      <Position19>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1763" Column="55" TopLine="1737"/>
-      </Position19>
-      <Position20>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="126" Column="55" TopLine="110"/>
-      </Position20>
-      <Position21>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="155" Column="20" TopLine="129"/>
-      </Position21>
-      <Position22>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="371" Column="26" TopLine="345"/>
-      </Position22>
-      <Position23>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1763" Column="38" TopLine="1737"/>
-      </Position23>
-      <Position24>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="123" Column="44" TopLine="110"/>
-      </Position24>
-      <Position25>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1763" Column="56" TopLine="1751"/>
-      </Position25>
-      <Position26>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="126" Column="57" TopLine="110"/>
-      </Position26>
-      <Position27>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="155" Column="20" TopLine="135"/>
-      </Position27>
-      <Position28>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="371" Column="26" TopLine="351"/>
-      </Position28>
-      <Position29>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1772" Column="30" TopLine="1759"/>
-      </Position29>
-      <Position30>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="126" Column="30" TopLine="112"/>
-      </Position30>
     </JumpHistory>
     <RunParams>
       <FormatVersion Value="2"/>

+ 0 - 7
Zengl_SRC/demos/Android/07 - Sprites/res/layout/main.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
-
-</LinearLayout>

+ 3 - 1
Zengl_SRC/demos/Android/08 - Sprite Engine/jni/demo08.lpi

@@ -45,11 +45,12 @@
     </Target>
     <SearchPaths>
       <IncludeFiles Value="..\..\..\..\headers;..\..\..\..\headers\android;$(ProjOutDir)"/>
-      <Libraries Value="..\libs\armeabi;E:\SDK_manadger\android-ndk-r9c\platforms\android-14\arch-arm\usr\lib\"/>
+      <Libraries Value="..\libs\armeabi;C:\codetyphon\binLibraries\android-4.0-api14-arm\"/>
       <OtherUnitFiles Value="..\..\..\..\src;..\..\..\..\lib\zlib\arm-linux;..\..\..\..\lib\zip\arm-linux;..\..\..\..\lib\theora\arm-linux;..\..\..\..\lib\ogg\arm-linux;..\..\..\..\extra"/>
       <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
     </SearchPaths>
     <CodeGeneration>
+      <SmartLinkUnit Value="True"/>
       <RelocatableUnit Value="True"/>
       <TargetCPU Value="arm"/>
       <TargetOS Value="android"/>
@@ -58,6 +59,7 @@
       <Debugging>
         <GenerateDebugInfo Value="False"/>
       </Debugging>
+      <LinkSmart Value="True"/>
       <Options>
         <ExecutableType Value="Library"/>
       </Options>

+ 46 - 115
Zengl_SRC/demos/Android/08 - Sprite Engine/jni/demo08.lps

@@ -4,13 +4,14 @@
     <PathDelim Value="\"/>
     <Version Value="11"/>
     <BuildModes Active="Default"/>
-    <Units Count="22">
+    <Units Count="23">
       <Unit0>
         <Filename Value="demo08.pas"/>
         <IsPartOfProject Value="True"/>
-        <TopLine Value="179"/>
-        <CursorPos X="14" Y="198"/>
-        <UsageCount Value="76"/>
+        <IsVisibleTab Value="True"/>
+        <TopLine Value="25"/>
+        <CursorPos X="22" Y="16"/>
+        <UsageCount Value="82"/>
         <Loaded Value="True"/>
       </Unit0>
       <Unit1>
@@ -19,7 +20,7 @@
         <EditorIndex Value="-1"/>
         <TopLine Value="34"/>
         <CursorPos X="10" Y="57"/>
-        <UsageCount Value="59"/>
+        <UsageCount Value="65"/>
       </Unit1>
       <Unit2>
         <Filename Value="..\..\..\..\src\zgl_opengles_all.pas"/>
@@ -30,20 +31,17 @@
       </Unit2>
       <Unit3>
         <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <EditorIndex Value="2"/>
-        <TopLine Value="1765"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="1743"/>
         <CursorPos X="62" Y="1824"/>
         <UsageCount Value="37"/>
-        <Loaded Value="True"/>
       </Unit3>
       <Unit4>
         <Filename Value="..\..\..\..\src\zgl_mouse.pas"/>
-        <IsVisibleTab Value="True"/>
-        <EditorIndex Value="1"/>
-        <TopLine Value="144"/>
-        <CursorPos X="24" Y="161"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="63"/>
+        <CursorPos X="9" Y="197"/>
         <UsageCount Value="11"/>
-        <Loaded Value="True"/>
       </Unit4>
       <Unit5>
         <Filename Value="..\..\..\..\src\zgl_touch.pas"/>
@@ -69,8 +67,7 @@
       <Unit8>
         <Filename Value="..\..\..\..\src\zgl_textures.pas"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="100"/>
-        <CursorPos X="11" Y="115"/>
+        <TopLine Value="103"/>
         <UsageCount Value="32"/>
       </Unit8>
       <Unit9>
@@ -89,16 +86,15 @@
       <Unit11>
         <Filename Value="..\..\..\..\src\zgl_screen.pas"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="820"/>
-        <CursorPos X="61" Y="3"/>
-        <UsageCount Value="27"/>
+        <CursorPos X="12" Y="28"/>
+        <UsageCount Value="30"/>
       </Unit11>
       <Unit12>
         <Filename Value="..\..\..\..\src\zgl_sengine_2d.pas"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="269"/>
-        <CursorPos X="84" Y="300"/>
-        <UsageCount Value="27"/>
+        <TopLine Value="20"/>
+        <CursorPos X="9" Y="32"/>
+        <UsageCount Value="29"/>
       </Unit12>
       <Unit13>
         <Filename Value="..\..\..\..\src\zgl_primitives_2d.pas"/>
@@ -130,11 +126,10 @@
       </Unit16>
       <Unit17>
         <Filename Value="..\..\..\..\src\zgl_timers.pas"/>
-        <EditorIndex Value="3"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="187"/>
         <CursorPos X="27" Y="204"/>
         <UsageCount Value="12"/>
-        <Loaded Value="True"/>
       </Unit17>
       <Unit18>
         <Filename Value="..\..\..\..\src\zgl_render_target.pas"/>
@@ -164,124 +159,60 @@
         <CursorPos X="30" Y="326"/>
         <UsageCount Value="8"/>
       </Unit21>
+      <Unit22>
+        <Filename Value="..\..\..\..\src\zgl_config.cfg"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="91"/>
+        <CursorPos X="6" Y="80"/>
+        <UsageCount Value="13"/>
+        <DefaultSyntaxHighlighter Value="None"/>
+      </Unit22>
     </Units>
-    <JumpHistory Count="29" HistoryIndex="28">
+    <JumpHistory Count="11" HistoryIndex="10">
       <Position1>
         <Filename Value="demo08.pas"/>
-        <Caret Line="186" Column="13" TopLine="170"/>
+        <Caret Line="199" Column="11" TopLine="179"/>
       </Position1>
       <Position2>
         <Filename Value="demo08.pas"/>
-        <Caret Line="226" Column="8" TopLine="209"/>
+        <Caret Line="198" Column="14" TopLine="179"/>
       </Position2>
       <Position3>
         <Filename Value="demo08.pas"/>
-        <Caret Line="6" Column="15"/>
+        <Caret Line="42" Column="18" TopLine="24"/>
       </Position3>
       <Position4>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="120" Column="47" TopLine="112"/>
+        <Filename Value="demo08.pas"/>
+        <Caret Line="8" Column="9" TopLine="2"/>
       </Position4>
       <Position5>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1696" Column="52" TopLine="1681"/>
+        <Filename Value="demo08.pas"/>
+        <Caret Line="140" Column="3" TopLine="81"/>
       </Position5>
       <Position6>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="211" Column="14" TopLine="195"/>
+        <Filename Value="demo08.pas"/>
+        <Caret Line="23" Column="12" TopLine="13"/>
       </Position6>
       <Position7>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1689" Column="29" TopLine="1678"/>
+        <Filename Value="demo08.pas"/>
+        <Caret Line="145" Column="27" TopLine="132"/>
       </Position7>
       <Position8>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="119" Column="35" TopLine="107"/>
+        <Filename Value="demo08.pas"/>
+        <Caret Line="173" Column="3" TopLine="161"/>
       </Position8>
       <Position9>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1582" Column="3" TopLine="1578"/>
+        <Filename Value="demo08.pas"/>
+        <Caret Line="104" Column="8" TopLine="87"/>
       </Position9>
       <Position10>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="117" Column="18" TopLine="103"/>
+        <Filename Value="demo08.pas"/>
+        <Caret Line="169" Column="68" TopLine="155"/>
       </Position10>
       <Position11>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1556" TopLine="1554"/>
-      </Position11>
-      <Position12>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="119" Column="23" TopLine="101"/>
-      </Position12>
-      <Position13>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1816" Column="14" TopLine="1807"/>
-      </Position13>
-      <Position14>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="211" Column="12" TopLine="195"/>
-      </Position14>
-      <Position15>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1814" Column="16" TopLine="1808"/>
-      </Position15>
-      <Position16>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1816" Column="14" TopLine="1808"/>
-      </Position16>
-      <Position17>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="431" Column="14" TopLine="410"/>
-      </Position17>
-      <Position18>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="433" Column="12" TopLine="410"/>
-      </Position18>
-      <Position19>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1386" Column="16" TopLine="1360"/>
-      </Position19>
-      <Position20>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1388" Column="14" TopLine="1363"/>
-      </Position20>
-      <Position21>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1830" Column="42" TopLine="1813"/>
-      </Position21>
-      <Position22>
-        <Filename Value="..\..\..\..\src\zgl_timers.pas"/>
-        <Caret Line="65" Column="11" TopLine="50"/>
-      </Position22>
-      <Position23>
-        <Filename Value="demo08.pas"/>
-        <Caret Line="186" Column="32" TopLine="175"/>
-      </Position23>
-      <Position24>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1828" Column="59" TopLine="1816"/>
-      </Position24>
-      <Position25>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1838" Column="75" TopLine="1810"/>
-      </Position25>
-      <Position26>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="1841" Column="55" TopLine="1820"/>
-      </Position26>
-      <Position27>
-        <Filename Value="demo08.pas"/>
-        <Caret Line="199" Column="11" TopLine="179"/>
-      </Position27>
-      <Position28>
         <Filename Value="demo08.pas"/>
-        <Caret Line="198" Column="14" TopLine="179"/>
-      </Position28>
-      <Position29>
-        <Filename Value="..\..\..\..\src\zgl_mouse.pas"/>
-        <Caret Line="80" Column="11" TopLine="65"/>
-      </Position29>
+        <Caret Line="48" Column="16" TopLine="33"/>
+      </Position11>
     </JumpHistory>
     <RunParams>
       <FormatVersion Value="2"/>

+ 9 - 11
Zengl_SRC/demos/Android/08 - Sprite Engine/jni/demo08.pas

@@ -4,7 +4,6 @@ library demo08;
 
 uses
   zgl_application,
-  zgl_main,
   zgl_file,
   zgl_screen,
   zgl_window,
@@ -15,13 +14,12 @@ uses
   zgl_fx,
   zgl_textures,
   zgl_textures_png,
-  zgl_textures_jpg,
   zgl_sprite_2d,
   zgl_sengine_2d,
   zgl_primitives_2d,
   zgl_font,
   zgl_text,
-  zgl_math_2d,
+  zgl_types,
   zgl_utils
   ;
 
@@ -39,11 +37,13 @@ type
 
 var
   dirRes    : UTF8String = 'assets/';
-  fntMain   : zglPFont;
+  fntMain   : Byte;
   texLogo   : zglPTexture;
   texMiku   : zglPTexture;
   time      : Integer;
   sengine2d : zglTSEngine2D;
+  TimeStart : Byte;
+  TimeMiku  : Byte;
 
 // Miku
 procedure MikuInit( var Miku : zglTMikuSprite );
@@ -116,8 +116,6 @@ begin
 end;
 
 procedure Init;
-  var
-    i : Integer;
 begin
   zgl_Enable( CORRECT_RESOLUTION );
   scr_CorrectResolution( 800, 600 );
@@ -135,13 +133,13 @@ begin
 
   // RU: Создадим 1000 спрайтов Miku-chan :)
   // EN: Create 1000 sprites of Miku-chan :)
-  for i := 0 to 9 do
-    AddMiku();
+//  for i := 0 to 9 do
+//    AddMiku();
 
   fntMain := font_LoadFromFile( dirRes + 'font.zfi' );
 
   file_CloseArchive();
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
@@ -223,8 +221,8 @@ procedure Java_zengl_android_ZenGL_Main( var env; var thiz ); cdecl;
 begin
   randomize();
 
-  timer_Add( @Timer, 16 );
-  timer_Add( @AddMiku, 4000 );
+  TimeStart := timer_Add( @Timer, 16, Start );
+  TimeMiku := timer_Add( @AddMiku, 2000, SleepToStart, 8 );
 
   zgl_Reg( SYS_LOAD, @Init );
   zgl_Reg( SYS_DRAW, @Draw );

+ 0 - 7
Zengl_SRC/demos/Android/08 - Sprite Engine/res/layout/main.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
-
-</LinearLayout>

+ 10 - 10
Zengl_SRC/demos/Android/09 - Sprite Engine(Classes)/jni/demo09.lpr

@@ -4,7 +4,6 @@ library demo09;
 
 uses
   zgl_application,
-  zgl_main,
   zgl_file,
   zgl_screen,
   zgl_window,
@@ -15,12 +14,11 @@ uses
   zgl_fx,
   zgl_textures,
   zgl_textures_png,
-  zgl_textures_jpg,
   zgl_sprite_2d,
   zgl_primitives_2d,
   zgl_font,
   zgl_text,
-  zgl_math_2d,
+  zgl_types,
   zgl_utils,
 
   zglSpriteEngine                       // переместили ниже, видимо какая-то активация проходит и вызывает ошибку при работе приложения
@@ -39,11 +37,13 @@ type
 
 var
   dirRes    : UTF8String = 'assets/';
-  fntMain   : zglPFont;
+  fntMain   : Byte;
   texLogo   : zglPTexture;
   texMiku   : zglPTexture;
   time      : Integer;
   sengine2d : zglCSEngine2D;
+  TimeStart : Byte;
+  TimeMiku  : Byte;
 
 // Miku
 procedure CMiku.OnInit( _Texture : zglPTexture; _Layer : Integer );
@@ -138,15 +138,15 @@ begin
   // EN: Create zglCSEngine2D object.
   sengine2d := zglCSEngine2D.Create();
 
-  // RU: Создадим 1000 спрайтов Miku-chan :)
+  // RU: Создадим 1000 спрайтов Miku-chan :)           Заменил, спрайты начнут появляться по истечению времени старта
   // EN: Create 1000 sprites of Miku-chan :)
-  for i := 0 to 9 do
-    AddMiku();
+//  for i := 0 to 9 do
+//    AddMiku();
 
   fntMain := font_LoadFromFile( dirRes + 'font.zfi' );
 
   file_CloseArchive();
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
@@ -228,8 +228,8 @@ procedure Java_zengl_android_ZenGL_Main( var env; var thiz ); cdecl;
 begin
   randomize();
 
-  timer_Add( @Timer, 16 );
-  timer_Add( @AddMiku, 4000 );
+  TimeStart := timer_Add( @Timer, 16, Start );
+  TimeMiku := timer_Add( @AddMiku, 3000, SleepToStart, 8 );
 
   zgl_Reg( SYS_LOAD, @Init );
   zgl_Reg( SYS_DRAW, @Draw );

+ 19 - 13
Zengl_SRC/demos/Android/09 - Sprite Engine(Classes)/jni/demo09.lps

@@ -9,49 +9,55 @@
         <Filename Value="demo09.lpr"/>
         <IsPartOfProject Value="True"/>
         <IsVisibleTab Value="True"/>
-        <TopLine Value="11"/>
-        <CursorPos X="18" Y="26"/>
+        <TopLine Value="135"/>
+        <CursorPos X="27" Y="149"/>
         <UsageCount Value="20"/>
         <Loaded Value="True"/>
       </Unit0>
       <Unit1>
         <Filename Value="..\..\..\..\src\zgl_mouse.pas"/>
-        <EditorIndex Value="2"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="69"/>
         <CursorPos X="36" Y="91"/>
         <UsageCount Value="10"/>
-        <Loaded Value="True"/>
       </Unit1>
       <Unit2>
         <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <EditorIndex Value="1"/>
+        <EditorIndex Value="-1"/>
         <TopLine Value="106"/>
         <CursorPos X="40" Y="121"/>
         <UsageCount Value="10"/>
-        <Loaded Value="True"/>
       </Unit2>
     </Units>
-    <JumpHistory Count="5" HistoryIndex="4">
+    <JumpHistory Count="7" HistoryIndex="6">
       <Position1>
         <Filename Value="demo09.lpr"/>
         <Caret Line="204" Column="13" TopLine="181"/>
       </Position1>
       <Position2>
-        <Filename Value="..\..\..\..\src\zgl_mouse.pas"/>
-        <Caret Line="79" Column="20" TopLine="64"/>
+        <Filename Value="demo09.lpr"/>
+        <Caret Line="192" Column="14" TopLine="176"/>
       </Position2>
       <Position3>
         <Filename Value="demo09.lpr"/>
-        <Caret Line="192" Column="14" TopLine="176"/>
+        <Caret Line="6" Column="11" TopLine="2"/>
       </Position3>
       <Position4>
         <Filename Value="demo09.lpr"/>
-        <Caret Line="6" Column="11" TopLine="2"/>
+        <Caret Line="41" Column="19" TopLine="33"/>
       </Position4>
       <Position5>
-        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
-        <Caret Line="121" Column="40" TopLine="106"/>
+        <Filename Value="demo09.lpr"/>
+        <Caret Line="141" Column="72" TopLine="152"/>
       </Position5>
+      <Position6>
+        <Filename Value="demo09.lpr"/>
+        <Caret Line="21" Column="12" TopLine="7"/>
+      </Position6>
+      <Position7>
+        <Filename Value="demo09.lpr"/>
+        <Caret Line="149" Column="17" TopLine="136"/>
+      </Position7>
     </JumpHistory>
     <RunParams>
       <FormatVersion Value="2"/>

+ 0 - 7
Zengl_SRC/demos/Android/09 - Sprite Engine(Classes)/res/layout/main.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
-
-</LinearLayout>

+ 3 - 5
Zengl_SRC/demos/Android/10 - Tiles/jni/demo10.lpr

@@ -4,7 +4,6 @@ library demo11;
 
 uses
   zgl_application,
-  zgl_main,
   zgl_screen,
   zgl_window,
   zgl_timers,
@@ -13,18 +12,17 @@ uses
   zgl_file,
   zgl_textures,
   zgl_textures_png,
-  zgl_textures_jpg,
   zgl_tiles_2d,
   zgl_font,
   zgl_text,
-  zgl_math_2d,
+  zgl_types,
   zgl_utils,
   zgl_render_2d
   ;
 
 var
   dirRes   : UTF8String = 'assets/';
-  fntMain  : zglPFont;
+  fntMain  : Byte;
   map      : zglTTiles2D;
   texTiles : zglPTexture;
 
@@ -64,7 +62,7 @@ begin
   file_Close( f );
 
   file_CloseArchive();
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;

+ 25 - 4
Zengl_SRC/demos/Android/10 - Tiles/jni/demo10.lps

@@ -4,14 +4,13 @@
     <PathDelim Value="\"/>
     <Version Value="11"/>
     <BuildModes Active="Default"/>
-    <Units Count="8">
+    <Units Count="10">
       <Unit0>
         <Filename Value="demo10.lpr"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="demo11"/>
         <IsVisibleTab Value="True"/>
-        <TopLine Value="58"/>
-        <CursorPos X="15" Y="71"/>
+        <CursorPos X="11" Y="6"/>
         <UsageCount Value="33"/>
         <Loaded Value="True"/>
       </Unit0>
@@ -64,8 +63,22 @@
         <CursorPos X="25" Y="113"/>
         <UsageCount Value="9"/>
       </Unit7>
+      <Unit8>
+        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
+        <EditorIndex Value="-1"/>
+        <CursorPos X="13" Y="28"/>
+        <UsageCount Value="10"/>
+      </Unit8>
+      <Unit9>
+        <Filename Value="..\..\..\..\src\zgl_config.cfg"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="101"/>
+        <CursorPos X="3" Y="114"/>
+        <UsageCount Value="10"/>
+        <DefaultSyntaxHighlighter Value="None"/>
+      </Unit9>
     </Units>
-    <JumpHistory Count="7" HistoryIndex="6">
+    <JumpHistory Count="9" HistoryIndex="8">
       <Position1>
         <Filename Value="demo10.lpr"/>
         <Caret Line="73" Column="10" TopLine="50"/>
@@ -94,6 +107,14 @@
         <Filename Value="demo10.lpr"/>
         <Caret Line="73" Column="8" TopLine="60"/>
       </Position7>
+      <Position8>
+        <Filename Value="demo10.lpr"/>
+        <Caret Line="67" Column="24" TopLine="47"/>
+      </Position8>
+      <Position9>
+        <Filename Value="demo10.lpr"/>
+        <Caret Line="6" Column="11"/>
+      </Position9>
     </JumpHistory>
     <RunParams>
       <FormatVersion Value="2"/>

+ 0 - 7
Zengl_SRC/demos/Android/10 - Tiles/res/layout/main.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
-
-</LinearLayout>

+ 4 - 4
Zengl_SRC/demos/Android/11 - Grid/jni/demo11.lpr

@@ -4,7 +4,6 @@ library demo11;
 
 uses
   zgl_application,
-  zgl_main,
   zgl_screen,
   zgl_window,
   zgl_file,
@@ -22,10 +21,11 @@ uses
 
 var
   dirRes  : UTF8String = 'assets/';
-  fntMain : zglPFont;
+  fntMain : Byte;
   texBack : zglPTexture;
   grid    : zglTGrid2D;
   wave    : Single;
+  TimeStart: Byte;
 
 procedure Init;
   var
@@ -53,7 +53,7 @@ begin
         grid.Grid[ i, j ].X := i * 40;
         grid.Grid[ i, j ].Y := j * 40;
       end;
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
@@ -106,7 +106,7 @@ procedure Java_zengl_android_ZenGL_Main( var env; var thiz ); cdecl;
 begin
   randomize();
 
-  timer_Add( @Timer, 16 );
+  TimeStart := timer_Add( @Timer, 16, Start );
 
   zgl_Reg( SYS_LOAD, @Init );
   zgl_Reg( SYS_DRAW, @Draw );

+ 26 - 4
Zengl_SRC/demos/Android/11 - Grid/jni/demo11.lps

@@ -4,18 +4,40 @@
     <PathDelim Value="\"/>
     <Version Value="11"/>
     <BuildModes Active="Default"/>
-    <Units Count="1">
+    <Units Count="3">
       <Unit0>
         <Filename Value="demo11.lpr"/>
         <IsPartOfProject Value="True"/>
         <IsVisibleTab Value="True"/>
-        <TopLine Value="90"/>
-        <CursorPos X="19" Y="56"/>
+        <CursorPos X="9" Y="6"/>
         <UsageCount Value="20"/>
         <Loaded Value="True"/>
       </Unit0>
+      <Unit1>
+        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
+        <EditorIndex Value="-1"/>
+        <CursorPos X="16" Y="28"/>
+        <UsageCount Value="10"/>
+      </Unit1>
+      <Unit2>
+        <Filename Value="..\..\..\..\src\zgl_config.cfg"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="28"/>
+        <CursorPos X="4" Y="40"/>
+        <UsageCount Value="10"/>
+        <DefaultSyntaxHighlighter Value="None"/>
+      </Unit2>
     </Units>
-    <JumpHistory HistoryIndex="-1"/>
+    <JumpHistory Count="2" HistoryIndex="1">
+      <Position1>
+        <Filename Value="demo11.lpr"/>
+        <Caret Line="56" Column="24" TopLine="39"/>
+      </Position1>
+      <Position2>
+        <Filename Value="demo11.lpr"/>
+        <Caret Line="6" Column="9"/>
+      </Position2>
+    </JumpHistory>
     <RunParams>
       <FormatVersion Value="2"/>
       <Modes Count="0" ActiveMode=""/>

+ 0 - 7
Zengl_SRC/demos/Android/11 - Grid/res/layout/main.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
-
-</LinearLayout>

+ 3 - 4
Zengl_SRC/demos/Android/12 - Render into Texture/jni/demo12.lpr

@@ -4,7 +4,6 @@ library demo12;
 
 uses
   zgl_application,
-  zgl_main,
   zgl_file,
   zgl_screen,
   zgl_window,
@@ -17,13 +16,13 @@ uses
   zgl_sprite_2d,
   zgl_font,
   zgl_text,
-  zgl_math_2d,
+  zgl_types,
   zgl_utils
   ;
 
 var
   dirRes    : UTF8String = 'assets/';
-  fntMain   : zglPFont;
+  fntMain   : Byte;
   texTux    : zglPTexture;
   rtFull    : zglPRenderTarget;
   rtDefault : zglPRenderTarget;
@@ -51,7 +50,7 @@ begin
   rtDefault := rtarget_Add( tex_CreateZero( 256, 256 ), RT_DEFAULT );
 
   file_CloseArchive();
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;

+ 41 - 4
Zengl_SRC/demos/Android/12 - Render into Texture/jni/demo12.lps

@@ -4,18 +4,55 @@
     <PathDelim Value="\"/>
     <Version Value="11"/>
     <BuildModes Active="Default"/>
-    <Units Count="1">
+    <Units Count="4">
       <Unit0>
         <Filename Value="demo12.lpr"/>
         <IsPartOfProject Value="True"/>
         <IsVisibleTab Value="True"/>
-        <TopLine Value="78"/>
-        <CursorPos X="31" Y="54"/>
+        <TopLine Value="80"/>
+        <CursorPos X="8" Y="74"/>
         <UsageCount Value="20"/>
         <Loaded Value="True"/>
       </Unit0>
+      <Unit1>
+        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
+        <EditorIndex Value="1"/>
+        <TopLine Value="10"/>
+        <CursorPos X="11" Y="28"/>
+        <UsageCount Value="10"/>
+        <Loaded Value="True"/>
+      </Unit1>
+      <Unit2>
+        <Filename Value="..\..\..\..\src\zgl_config.cfg"/>
+        <EditorIndex Value="2"/>
+        <TopLine Value="103"/>
+        <CursorPos X="3" Y="110"/>
+        <UsageCount Value="10"/>
+        <Loaded Value="True"/>
+        <DefaultSyntaxHighlighter Value="None"/>
+      </Unit2>
+      <Unit3>
+        <Filename Value="..\..\..\..\src\zgl_sprite_2d.pas"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="25"/>
+        <CursorPos X="11" Y="39"/>
+        <UsageCount Value="10"/>
+      </Unit3>
     </Units>
-    <JumpHistory HistoryIndex="-1"/>
+    <JumpHistory Count="3" HistoryIndex="2">
+      <Position1>
+        <Filename Value="demo12.lpr"/>
+        <Caret Line="6" Column="9"/>
+      </Position1>
+      <Position2>
+        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
+        <Caret Line="28" Column="11" TopLine="10"/>
+      </Position2>
+      <Position3>
+        <Filename Value="demo12.lpr"/>
+        <Caret Line="74" Column="8" TopLine="60"/>
+      </Position3>
+    </JumpHistory>
     <RunParams>
       <FormatVersion Value="2"/>
       <Modes Count="0" ActiveMode=""/>

+ 0 - 7
Zengl_SRC/demos/Android/12 - Render into Texture/res/layout/main.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
-
-</LinearLayout>

+ 7 - 8
Zengl_SRC/demos/Android/13 - Particles/jni/demo13.lpr

@@ -4,7 +4,6 @@ library demo13;
 
 uses
   zgl_application,
-  zgl_main,
   zgl_file,
   zgl_screen,
   zgl_window,
@@ -14,25 +13,25 @@ uses
   zgl_fx,
   zgl_textures,
   zgl_textures_png,
-  zgl_textures_jpg,
   zgl_sprite_2d,
   zgl_particles_2d,
   zgl_primitives_2d,
   zgl_font,
   zgl_text,
-  zgl_math_2d,
+  zgl_types,
   zgl_utils
   ;
 
 var
   dirRes         : UTF8String = 'assets/';
-  fntMain        : zglPFont;
+  fntMain        : Byte;
   texBack        : zglPTexture;
   debug          : Boolean;
   particles      : zglTPEngine2D;
   emitterFire    : array[ 0..2 ] of zglPEmitter2D;
   emitterDiamond : zglPEmitter2D;
   emitterRain    : zglPEmitter2D;
+  TimeStart      : Byte;
 
 procedure Init;
   var
@@ -76,14 +75,14 @@ begin
   pengine2d_AddEmitter( emitterRain, nil );
 
   file_CloseArchive();
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
   var
     i : Integer;
 begin
-//  batch2d_Begin();
+  batch2d_Begin();
 
   ssprite2d_Draw( texBack, 0, 0, 800, 600, 0 );
 
@@ -100,7 +99,7 @@ begin
   text_Draw( fntMain, 0, 20, 'Particles: ' + u_IntToStr( particles.Count.Particles ) );
   text_Draw( fntMain, 0, 40, 'Debug(tap): ' + u_BoolToStr( debug ) );
 
-//  batch2d_End();
+  batch2d_End();
 end;
 
 procedure Timer;
@@ -144,7 +143,7 @@ procedure Java_zengl_android_ZenGL_Main( var env; var thiz ); cdecl;
 begin
   randomize();
 
-  timer_Add( @Timer, 16 );
+  TimeStart := timer_Add( @Timer, 16, Start );
 
   zgl_Reg( SYS_LOAD, @Init );
   zgl_Reg( SYS_DRAW, @Draw );

+ 46 - 5
Zengl_SRC/demos/Android/13 - Particles/jni/demo13.lps

@@ -4,18 +4,59 @@
     <PathDelim Value="\"/>
     <Version Value="11"/>
     <BuildModes Active="Default"/>
-    <Units Count="1">
+    <Units Count="4">
       <Unit0>
         <Filename Value="demo13.lpr"/>
         <IsPartOfProject Value="True"/>
         <IsVisibleTab Value="True"/>
-        <TopLine Value="85"/>
-        <CursorPos X="3" Y="103"/>
-        <UsageCount Value="20"/>
+        <CursorPos X="22" Y="15"/>
+        <UsageCount Value="21"/>
         <Loaded Value="True"/>
       </Unit0>
+      <Unit1>
+        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
+        <EditorIndex Value="-1"/>
+        <CursorPos X="13" Y="28"/>
+        <UsageCount Value="10"/>
+      </Unit1>
+      <Unit2>
+        <Filename Value="..\..\..\..\src\zgl_config.cfg"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="30"/>
+        <CursorPos X="25" Y="137"/>
+        <UsageCount Value="10"/>
+        <DefaultSyntaxHighlighter Value="None"/>
+      </Unit2>
+      <Unit3>
+        <Filename Value="..\..\..\..\src\zgl_particles_2d.pas"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="430"/>
+        <CursorPos X="8" Y="281"/>
+        <UsageCount Value="10"/>
+      </Unit3>
     </Units>
-    <JumpHistory HistoryIndex="-1"/>
+    <JumpHistory Count="5" HistoryIndex="4">
+      <Position1>
+        <Filename Value="demo13.lpr"/>
+        <Caret Line="6" Column="10"/>
+      </Position1>
+      <Position2>
+        <Filename Value="demo13.lpr"/>
+        <Caret Line="147" Column="15" TopLine="121"/>
+      </Position2>
+      <Position3>
+        <Filename Value="demo13.lpr"/>
+        <Caret Line="64" Column="16" TopLine="53"/>
+      </Position3>
+      <Position4>
+        <Filename Value="demo13.lpr"/>
+        <Caret Line="58" Column="6" TopLine="53"/>
+      </Position4>
+      <Position5>
+        <Filename Value="demo13.lpr"/>
+        <Caret Line="40" Column="46" TopLine="31"/>
+      </Position5>
+    </JumpHistory>
     <RunParams>
       <FormatVersion Value="2"/>
       <Modes Count="0" ActiveMode=""/>

+ 0 - 7
Zengl_SRC/demos/Android/13 - Particles/res/layout/main.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
-
-</LinearLayout>

+ 5 - 5
Zengl_SRC/demos/Android/14 - Sound/jni/demo14.lpr

@@ -4,7 +4,6 @@ library demo14;
 
 uses
   zgl_application,
-  zgl_main,
   zgl_file,
   zgl_memory,
   zgl_screen,
@@ -22,7 +21,7 @@ uses
   zgl_sound,
   zgl_sound_wav,
   zgl_sound_ogg,
-  zgl_math_2d,
+  zgl_types,
   zgl_collision_2d,
   zgl_utils
   ;
@@ -33,7 +32,7 @@ const
 
 var
   dirRes  : UTF8String = 'assets/';
-  fntMain : zglPFont;
+  fntMain : Byte;
   icon    : array[ 0..1 ] of zglPTexture;
   sound   : zglPSound;
   audio   : Integer;
@@ -43,6 +42,7 @@ var
 
   // добавляем номер звука, пока для одного звука
   IDSound: Integer;
+  TimeStart: Byte;
 
 // RU: Т.к. звуковая подсистема нацелена на 3D, для позиционирования звуков в 2D нужны некоторые ухищрения.
 // EN: Because sound subsystem using 3D, there is some tricky way to calculate sound position in 2D.
@@ -83,7 +83,7 @@ begin
   mem_LoadFromFile( musicMem, dirRes + 'music.ogg' );
 
   file_CloseArchive();
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
@@ -195,7 +195,7 @@ procedure Java_zengl_android_ZenGL_Main( var env; var thiz ); cdecl;
 begin
   randomize();
 
-  timer_Add( @Timer, 16 );
+  TimeStart := timer_Add( @Timer, 16, Start );
 
   zgl_Reg( SYS_LOAD, @Init );
   zgl_Reg( SYS_DRAW, @Draw );

+ 56 - 11
Zengl_SRC/demos/Android/14 - Sound/jni/demo14.lps

@@ -4,14 +4,14 @@
     <PathDelim Value="\"/>
     <Version Value="11"/>
     <BuildModes Active="Default"/>
-    <Units Count="18">
+    <Units Count="20">
       <Unit0>
         <Filename Value="demo14.lpr"/>
         <IsPartOfProject Value="True"/>
         <IsVisibleTab Value="True"/>
-        <TopLine Value="46"/>
-        <CursorPos X="44" Y="51"/>
-        <UsageCount Value="38"/>
+        <TopLine Value="42"/>
+        <CursorPos X="42" Y="15"/>
+        <UsageCount Value="39"/>
         <Loaded Value="True"/>
       </Unit0>
       <Unit1>
@@ -36,7 +36,8 @@
       <Unit4>
         <Filename Value="..\..\..\..\src\zgl_config.cfg"/>
         <EditorIndex Value="-1"/>
-        <CursorPos X="23" Y="12"/>
+        <TopLine Value="36"/>
+        <CursorPos X="2" Y="116"/>
         <UsageCount Value="13"/>
         <DefaultSyntaxHighlighter Value="None"/>
       </Unit4>
@@ -71,13 +72,15 @@
       <Unit9>
         <Filename Value="..\..\..\..\src\zgl_application.pas"/>
         <EditorIndex Value="-1"/>
-        <CursorPos X="2"/>
+        <TopLine Value="13"/>
+        <CursorPos X="11" Y="28"/>
         <UsageCount Value="10"/>
       </Unit9>
       <Unit10>
         <Filename Value="..\..\..\..\src\zgl_timers.pas"/>
         <EditorIndex Value="-1"/>
-        <CursorPos X="38" Y="3"/>
+        <TopLine Value="119"/>
+        <CursorPos X="40" Y="132"/>
         <UsageCount Value="10"/>
       </Unit10>
       <Unit11>
@@ -96,14 +99,14 @@
       <Unit13>
         <Filename Value="..\..\..\..\src\zgl_sound_ogg.pas"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="157"/>
-        <CursorPos X="90" Y="172"/>
+        <TopLine Value="33"/>
+        <CursorPos X="7" Y="41"/>
         <UsageCount Value="12"/>
       </Unit13>
       <Unit14>
         <Filename Value="..\..\..\..\src\zgl_sound_wav.pas"/>
         <EditorIndex Value="-1"/>
-        <CursorPos X="23"/>
+        <TopLine Value="37"/>
         <UsageCount Value="10"/>
       </Unit14>
       <Unit15>
@@ -125,8 +128,22 @@
         <CursorPos X="11" Y="363"/>
         <UsageCount Value="10"/>
       </Unit17>
+      <Unit18>
+        <Filename Value="..\..\..\..\src\zgl_touch.pas"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="21"/>
+        <CursorPos X="10" Y="35"/>
+        <UsageCount Value="10"/>
+      </Unit18>
+      <Unit19>
+        <Filename Value="..\..\..\..\src\zgl_lib_ogg.pas"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="262"/>
+        <CursorPos X="56" Y="90"/>
+        <UsageCount Value="10"/>
+      </Unit19>
     </Units>
-    <JumpHistory Count="10" HistoryIndex="9">
+    <JumpHistory Count="17" HistoryIndex="16">
       <Position1>
         <Filename Value="demo14.lpr"/>
         <Caret Line="23" Column="11" TopLine="3"/>
@@ -167,6 +184,34 @@
         <Filename Value="demo14.lpr"/>
         <Caret Line="71" Column="105" TopLine="50"/>
       </Position10>
+      <Position11>
+        <Filename Value="demo14.lpr"/>
+        <Caret Line="6" Column="8"/>
+      </Position11>
+      <Position12>
+        <Filename Value="demo14.lpr"/>
+        <Caret Line="198" Column="15" TopLine="171"/>
+      </Position12>
+      <Position13>
+        <Filename Value="demo14.lpr"/>
+        <Caret Line="86" Column="27" TopLine="73"/>
+      </Position13>
+      <Position14>
+        <Filename Value="demo14.lpr"/>
+        <Caret Line="198" Column="20" TopLine="183"/>
+      </Position14>
+      <Position15>
+        <Filename Value="demo14.lpr"/>
+        <Caret Line="100" Column="27" TopLine="88"/>
+      </Position15>
+      <Position16>
+        <Filename Value="demo14.lpr"/>
+        <Caret Line="22" Column="10"/>
+      </Position16>
+      <Position17>
+        <Filename Value="demo14.lpr"/>
+        <Caret Line="23" Column="9" TopLine="3"/>
+      </Position17>
     </JumpHistory>
     <RunParams>
       <FormatVersion Value="2"/>

+ 0 - 7
Zengl_SRC/demos/Android/14 - Sound/res/layout/main.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
-
-</LinearLayout>

+ 4 - 4
Zengl_SRC/demos/Android/15 - Video/jni/demo15.lpr

@@ -4,7 +4,6 @@ library demo15;
 
 uses
   zgl_application,
-  zgl_main,
   zgl_file,
   zgl_memory,
   zgl_screen,
@@ -24,10 +23,11 @@ uses
 
 var
   dirRes    : UTF8String = 'assets/';
-  fntMain   : zglPFont;
+  fntMain   : Byte;
   video     : zglPVideoStream;
   videoFile : zglTMemory;
   videoSeek : Boolean;
+  TimeStart : Byte;
 
 procedure Init;
 begin
@@ -45,7 +45,7 @@ begin
   // EN: Open the video file.
   // RU: Открыть видео файл.
   video := video_OpenMemory( videoFile, 'OGV' );
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
@@ -101,7 +101,7 @@ procedure Java_zengl_android_ZenGL_Main( var env; var thiz ); cdecl;
 begin
   randomize();
 
-  timer_Add( @Timer, 16 );
+  TimeStart := timer_Add( @Timer, 16, Start );
 
   zgl_Reg( SYS_LOAD, @Init );
   zgl_Reg( SYS_DRAW, @Draw );

+ 53 - 4
Zengl_SRC/demos/Android/15 - Video/jni/demo15.lps

@@ -4,13 +4,13 @@
     <PathDelim Value="\"/>
     <Version Value="11"/>
     <BuildModes Active="Default"/>
-    <Units Count="2">
+    <Units Count="7">
       <Unit0>
         <Filename Value="demo15.lpr"/>
         <IsPartOfProject Value="True"/>
         <IsVisibleTab Value="True"/>
-        <TopLine Value="87"/>
-        <CursorPos X="56" Y="49"/>
+        <TopLine Value="90"/>
+        <CursorPos X="44" Y="104"/>
         <UsageCount Value="20"/>
         <Loaded Value="True"/>
       </Unit0>
@@ -21,12 +21,61 @@
         <CursorPos X="3" Y="723"/>
         <UsageCount Value="10"/>
       </Unit1>
+      <Unit2>
+        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
+        <EditorIndex Value="-1"/>
+        <CursorPos X="13" Y="28"/>
+        <UsageCount Value="10"/>
+      </Unit2>
+      <Unit3>
+        <Filename Value="..\..\..\..\src\zgl_config.cfg"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="103"/>
+        <CursorPos X="3" Y="116"/>
+        <UsageCount Value="10"/>
+        <DefaultSyntaxHighlighter Value="None"/>
+      </Unit3>
+      <Unit4>
+        <Filename Value="..\..\..\..\src\zgl_video_theora.pas"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="37"/>
+        <CursorPos X="8" Y="44"/>
+        <UsageCount Value="10"/>
+      </Unit4>
+      <Unit5>
+        <Filename Value="..\..\..\..\src\zgl_video.pas"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="94"/>
+        <UsageCount Value="10"/>
+      </Unit5>
+      <Unit6>
+        <Filename Value="..\..\..\..\src\zgl_lib_ogg.pas"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="82"/>
+        <UsageCount Value="10"/>
+      </Unit6>
     </Units>
-    <JumpHistory Count="1">
+    <JumpHistory Count="5" HistoryIndex="4">
       <Position1>
         <Filename Value="demo15.lpr"/>
         <Caret Line="37" Column="14" TopLine="28"/>
       </Position1>
+      <Position2>
+        <Filename Value="demo15.lpr"/>
+        <Caret Line="26" Column="21" TopLine="16"/>
+      </Position2>
+      <Position3>
+        <Filename Value="demo15.lpr"/>
+        <Caret Line="6" Column="10"/>
+      </Position3>
+      <Position4>
+        <Filename Value="demo15.lpr"/>
+        <Caret Line="20" Column="13"/>
+      </Position4>
+      <Position5>
+        <Filename Value="demo15.lpr"/>
+        <Caret Line="15" Column="11" TopLine="78"/>
+      </Position5>
     </JumpHistory>
     <RunParams>
       <FormatVersion Value="2"/>

+ 0 - 7
Zengl_SRC/demos/Android/15 - Video/res/layout/main.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
-
-</LinearLayout>

+ 58 - 0
Zengl_SRC/demos/Android/16 - Physics/jni/backup/demo16.lps

@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CONFIG>
+  <ProjectSession>
+    <PathDelim Value="\"/>
+    <Version Value="11"/>
+    <BuildModes Active="Default"/>
+    <Units Count="3">
+      <Unit0>
+        <Filename Value="demo16.lpr"/>
+        <IsPartOfProject Value="True"/>
+        <IsVisibleTab Value="True"/>
+        <TopLine Value="218"/>
+        <CursorPos X="43" Y="232"/>
+        <UsageCount Value="20"/>
+        <Loaded Value="True"/>
+      </Unit0>
+      <Unit1>
+        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
+        <EditorIndex Value="1"/>
+        <TopLine Value="13"/>
+        <CursorPos X="11" Y="28"/>
+        <UsageCount Value="10"/>
+        <Loaded Value="True"/>
+      </Unit1>
+      <Unit2>
+        <Filename Value="..\..\..\..\src\zgl_config.cfg"/>
+        <EditorIndex Value="2"/>
+        <TopLine Value="106"/>
+        <CursorPos X="3" Y="121"/>
+        <UsageCount Value="10"/>
+        <Loaded Value="True"/>
+        <DefaultSyntaxHighlighter Value="None"/>
+      </Unit2>
+    </Units>
+    <JumpHistory Count="4" HistoryIndex="3">
+      <Position1>
+        <Filename Value="demo16.lpr"/>
+        <Caret Line="234" Column="15" TopLine="31"/>
+      </Position1>
+      <Position2>
+        <Filename Value="demo16.lpr"/>
+        <Caret Line="8" Column="9"/>
+      </Position2>
+      <Position3>
+        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
+        <Caret Line="28" Column="11" TopLine="13"/>
+      </Position3>
+      <Position4>
+        <Filename Value="demo16.lpr"/>
+        <Caret Line="8" Column="9"/>
+      </Position4>
+    </JumpHistory>
+    <RunParams>
+      <FormatVersion Value="2"/>
+      <Modes Count="0" ActiveMode=""/>
+    </RunParams>
+  </ProjectSession>
+</CONFIG>

+ 4 - 6
Zengl_SRC/demos/Android/16 - Physics/jni/demo16.lpr

@@ -5,10 +5,7 @@ library demo16;
 {$I zglCustomConfig.cfg}
 
 uses
-
-
   zgl_application,
-  zgl_main,
   zgl_file,
   zgl_screen,
   zgl_window,
@@ -30,12 +27,13 @@ uses
 
 var
   dirRes  : UTF8String = 'assets/';
-  fntMain : zglPFont;
+  fntMain : Byte;
   space   : PcpSpace;
   bCount  : Integer;
   Bodies  : array of PcpBody;
   Shapes  : array of PcpShape;
   balls   : Boolean = false;
+  TimeStart: Byte;
 
 // RU: Добавить объект "шар"
 //     x, y - координаты центра
@@ -170,7 +168,7 @@ begin
   ground^.u := u;
   cpSpaceAddStaticShape(space, ground);
 
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
@@ -231,7 +229,7 @@ procedure Java_zengl_android_ZenGL_Main(var env; var thiz); cdecl;
 begin
   randomize();
 
-  timer_Add(@Timer, 16);
+  TimeStart := timer_Add(@Timer, 16, Start);
 
   zgl_Reg(SYS_LOAD, @Init);
   zgl_Reg(SYS_DRAW, @Draw);

+ 41 - 6
Zengl_SRC/demos/Android/16 - Physics/jni/demo16.lps

@@ -4,18 +4,53 @@
     <PathDelim Value="\"/>
     <Version Value="11"/>
     <BuildModes Active="Default"/>
-    <Units Count="1">
+    <Units Count="3">
       <Unit0>
         <Filename Value="demo16.lpr"/>
         <IsPartOfProject Value="True"/>
-        <IsVisibleTab Value="True"/>
-        <TopLine Value="217"/>
-        <CursorPos X="49" Y="174"/>
-        <UsageCount Value="20"/>
+        <CursorPos X="9" Y="8"/>
+        <UsageCount Value="25"/>
         <Loaded Value="True"/>
       </Unit0>
+      <Unit1>
+        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
+        <EditorIndex Value="1"/>
+        <CursorPos X="9" Y="28"/>
+        <UsageCount Value="12"/>
+        <Loaded Value="True"/>
+      </Unit1>
+      <Unit2>
+        <Filename Value="..\..\..\..\src\zgl_config.cfg"/>
+        <IsVisibleTab Value="True"/>
+        <EditorIndex Value="2"/>
+        <TopLine Value="106"/>
+        <UsageCount Value="12"/>
+        <Loaded Value="True"/>
+        <DefaultSyntaxHighlighter Value="None"/>
+      </Unit2>
     </Units>
-    <JumpHistory HistoryIndex="-1"/>
+    <JumpHistory Count="5" HistoryIndex="4">
+      <Position1>
+        <Filename Value="demo16.lpr"/>
+        <Caret Line="234" Column="15" TopLine="31"/>
+      </Position1>
+      <Position2>
+        <Filename Value="demo16.lpr"/>
+        <Caret Line="8" Column="9"/>
+      </Position2>
+      <Position3>
+        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
+        <Caret Line="28" Column="11" TopLine="13"/>
+      </Position3>
+      <Position4>
+        <Filename Value="demo16.lpr"/>
+        <Caret Line="8" Column="9"/>
+      </Position4>
+      <Position5>
+        <Filename Value="..\..\..\..\src\zgl_application.pas"/>
+        <Caret Line="28" Column="9"/>
+      </Position5>
+    </JumpHistory>
     <RunParams>
       <FormatVersion Value="2"/>
       <Modes Count="0" ActiveMode=""/>

+ 0 - 7
Zengl_SRC/demos/Android/16 - Physics/res/layout/main.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
-
-</LinearLayout>

+ 6 - 4
Zengl_SRC/demos/Delphi/01 - Initialization/demo01.dpr

@@ -9,15 +9,17 @@ program demo01;
 uses
   // RU: Ïðè èñïîëüçîâàíèè ñòàòè÷åñêîé êîìïèëÿöèè íåîáõîäèìî ïîäêëþ÷àòü ìîäóëè ZenGL ñîäåðæàùèå íåîáõîäèìûé ôóíêöèîíàë.
   // EN: Using static compilation needs to use ZenGL units with needed functionality.
-  zgl_window,
   zgl_screen,
+  zgl_window,
   zgl_timers,
-  zgl_utils
+  zgl_utils,
+  zgl_application
   ;
 
 var
   DirApp  : UTF8String;
   DirHome : UTF8String;
+  TimeStart: Byte;
 
 procedure Init;
 begin
@@ -57,7 +59,7 @@ Begin
 
   // RU: Ñîçäàåì òàéìåð ñ èíòåðâàëîì 1000ìñ.
   // EN: Create a timer with interval 1000ms.
-  timer_Add(@Timer, 1000);
+  TimeStart := timer_Add(@Timer, 1000, Start);
 
   // RU: Ðåãèñòðèðóåì ïðîöåäóðó, ÷òî âûïîëíèòñÿ ñðàçó ïîñëå èíèöèàëèçàöèè ZenGL.
   // EN: Register the procedure, that will be executed after ZenGL initialization.
@@ -77,7 +79,7 @@ Begin
   wndCaption := utf8_Copy('01 - Initialization');
   // RU: Ðàçðåøàåì êóðñîð ìûøè, ïî óìîë÷àíèþ ñòîèò True.
   // EN: Allow to show the mouse cursor.
-   wnd_ShowCursor( TRUE );                        // ïî óìîë÷àíèþ ñòîèò  
+  appShowCursor := True;
 
   // RU: Óêàçûâàåì ïåðâîíà÷àëüíûå íàñòðîéêè. Ïî óìîë÷àíèþ èìåííî òàê âñ¸ è ñòîèò.
   // EN: Set screen options.

+ 2 - 2
Zengl_SRC/demos/Delphi/02 - Resources/demo02.dpr

@@ -52,7 +52,7 @@ var
 
   // RU: Ó êàæäîãî ðåñóðñà åñòü ñâîé îïðåäåë¸ííûé òèï, êîòîðûé ÿâëÿåòñÿ óêàçàòåëåì íà ñòðóêòóðó.
   // EN: Every resource has its own typem which is just a pointer to structure.
-  fntMain: zglPFont;
+  fntMain: Byte;
   //
   texLogo: zglPTexture;
   texTest: zglPTexture;
@@ -124,7 +124,7 @@ begin
   texLogo := tex_LoadFromFile('zengl.png');
   file_CloseArchive();
 
-  setTextScale(1.5);                                            // âûñòàâëÿåì ðàçìåð øðèôòà
+  setTextScale(15, fntMain);                                            // âûñòàâëÿåì ðàçìåð øðèôòà
 end;
 
 procedure Draw;

+ 5 - 4
Zengl_SRC/demos/Delphi/03 - Input/demo03.dpr

@@ -15,7 +15,7 @@ uses
   zgl_font,
   zgl_text,
   zgl_textures_png,
-  zgl_math_2d,
+  zgl_types,
   zgl_collision_2d,
   zgl_utils
   ;
@@ -23,13 +23,14 @@ uses
 var
   dirRes  : UTF8String {$IFNDEF MACOSX} = '../data/' {$ENDIF};
 
-  fntMain   : zglPFont;
+  fntMain   : Byte;
 
   joyCount   : Integer;
   userInput  : UTF8String;
   trackInput : Boolean;
   inputRect  : zglTRect;
   lineAlpha  : Byte;
+  TimeStart  : Byte;
 
 procedure Init;
 begin
@@ -50,7 +51,7 @@ procedure Draw;
     w : Single;
 begin
   // ðàçìåðû øðèòà
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
   text_Draw(fntMain, 0, 0, 'Escape - Exit');
 
   // RU: Êîîðäèíàòû ìûøè ìîæíî ïîëó÷èòü ïðè ïîìîùè ôóíêöèé mouse_X è mouse_Y.
@@ -141,7 +142,7 @@ begin
 end;
 
 Begin
-  timer_Add(@Timer, 16);
+  TimeStart := timer_Add(@Timer, 16, Start);
 
   zgl_Reg(SYS_LOAD, @Init);
   zgl_Reg(SYS_DRAW, @Draw);

+ 8 - 7
Zengl_SRC/demos/Delphi/04 - Screen Settings/demo04.dpr

@@ -21,14 +21,15 @@ uses
 var
   dirRes  : UTF8String {$IFNDEF MACOSX} = '../data/' {$ENDIF};
 
-  fntMain : zglPFont;
+  fntMain : Byte;
   texBack : zglPTexture;
+  TimeStart: Byte;
 
 procedure Init;
 begin
   fntMain := font_LoadFromFile(dirRes + 'font.zfi');
   texBack := tex_LoadFromFile(dirRes + 'back03.jpg');
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
@@ -36,10 +37,10 @@ begin
   ssprite2d_Draw(texBack, 0, 0, 800, 600, 0);
 
   text_Draw(fntMain, 0, 0, 'Escape - Exit' );
-  text_Draw(fntMain, 0, fntMain.MaxHeight * 1, 'F1 - Fullscreen with desktop resolution and correction of aspect');
-  text_Draw(fntMain, 0, fntMain.MaxHeight * 2, 'F2 - Fullscreen with desktop resolution and simple scaling');
-  text_Draw(fntMain, 0, fntMain.MaxHeight * 3, 'F3 - Fullscreen with resolution 800x600');
-  text_Draw(fntMain, 0, fntMain.MaxHeight * 4, 'F4 - Windowed mode');
+  text_Draw(fntMain, 0, 20 * 1, 'F1 - Fullscreen with desktop resolution and correction of aspect');
+  text_Draw(fntMain, 0, 20 * 2, 'F2 - Fullscreen with desktop resolution and simple scaling');
+  text_Draw(fntMain, 0, 20 * 3, 'F3 - Fullscreen with resolution 800x600');
+  text_Draw(fntMain, 0, 20 * 4, 'F4 - Windowed mode');
 end;
 
 procedure Timer;
@@ -116,7 +117,7 @@ begin
 end;
 
 Begin
-  timer_Add( @Timer, 16 );
+  TimeStart := timer_Add( @Timer, 16, Start );
 
   zgl_Reg( SYS_LOAD, @Init );
   zgl_Reg( SYS_DRAW, @Draw );

+ 4 - 5
Zengl_SRC/demos/Delphi/05 - Primitives/demo05.dpr

@@ -12,13 +12,14 @@ uses
   zgl_fx,
   zgl_render_2d,
   zgl_primitives_2d,
+  zgl_types,
   zgl_math_2d,
-  zgl_utils
-  ;
+  zgl_utils;
 
 var
   calc   : Integer;
   points : array[ 0..359 ] of zglTPoint2D;
+  TimeStart: Byte;
 
 procedure Init;
   var
@@ -67,13 +68,11 @@ end;
 
 procedure Timer;
 begin
-//  if key_Press( K_ESCAPE ) Then winOn := false;
-
   key_ClearState();
 end;
 
 Begin
-  timer_Add( @Timer, 16 );
+  TimeStart := timer_Add( @Timer, 16, Start );
 
   zgl_Reg( SYS_LOAD, @Init );
   zgl_Reg( SYS_DRAW, @Draw );

+ 16 - 15
Zengl_SRC/demos/Delphi/06 - Text/demo06.dpr

@@ -16,13 +16,15 @@ uses
   zgl_textures_png,
   zgl_font,
   zgl_text,
-  zgl_math_2d,
-  zgl_utils
-  ;
+  zgl_types,
+  zgl_utils,
+  AsctoUtf;             // äëÿ ïåðåâîäà òåêñòà â UTF-8
 
 var
   dirRes  : UTF8String {$IFNDEF MACOSX} = '../data/' {$ENDIF};
-  fntMain : zglPFont;
+  fntMain : Byte;
+  TimeStart: Byte;
+  MyText: UTF8String;
 
 procedure Init;
   //var
@@ -35,24 +37,25 @@ begin
   // EN: If textures were named without special mask - "$(font_name)-page$(number).$(extension)", then use this method to load them(for png):
   //for i := 0 to fntMain.Count.Pages - 1 do
   //  fntMain.Pages[ i ] := tex_LoadFromFile( dirRes + 'font-page' + u_IntToStr( i ) + '.png' );
+  MyText := AscToUtf8Rus('Ýòî òåêñò äëÿ âûâîäà åãî â êâàäðàòå');
 end;
 
 procedure Draw;
-  var
-    r : zglTRect;
-    s : UTF8String;
+var
+  r : zglTRect;
+  s : UTF8String;
 begin
-  batch2d_Begin();
+//  batch2d_Begin();    íóæíî òîëüêî äëÿ ìîáèëüíûõ ñèñòåì íà äàííîå âðåìÿ
 
   // RU: ZenGL ðàáîòàåò èñêëþ÷èòåëüíî ñ êîäèðîâêîé UTF-8, ïîýòîìó âåñü òåêñò äîëæåí áûòü â UTF-8. Åñëè íåîáõîäèìî âûâåñòè êàêîé-ëèáî òåêñò(íå àíãëèéñêèé)
   //     èñïîëüçóÿ ñòðîêè âíóòðè pas-ôàéëîâ è Delphi âåðñèè íèæå 2009 - èñïîëüçóéòå âíåøíèå ôàéëû ñî ñòðîêàìè â êîäèðîâêå UTF-8 è òèï UTF8String äëÿ íèõ.
   // EN: ZenGL works only with UTF-8 encoding, so all text should be encoded with UTF-8. If you want to write some text(not English) using strings
   //     inside pas-files and version of Delphi is lower than 2009, then you need to use external files with UTF-8 strings inside and type UTF8String.
 
-  setTextScale(2);                                              // øðèôò ðàçìåðíîñòü 20
+  setTextScale(20, fntMain);                                    // øðèôò ðàçìåðíîñòü 20 pix
   text_Draw( fntMain, 400, 65, 'Scaling', TEXT_HALIGN_CENTER );
 
-  setTextScale(1.5);                                            // øðèôò ðàçìåðíîñòü 15
+  setTextScale(15, fntMain);                                    // øðèôò ðàçìåðíîñòü 15 pix
 
   text_Draw( fntMain, 400, 25, 'String with center alignment', TEXT_HALIGN_CENTER );
 
@@ -63,7 +66,7 @@ begin
   r.Y := 300 - 128;
   r.W := 192;
   r.H := 256;
-  text_DrawInRect( fntMain, r, 'Simple text rendering in rectangle' );
+  text_DrawInRect( fntMain, r, 'Simple text rendering in rectangle. ' + MyText);
   pr2d_Rect( r.X, r.Y, r.W, r.H, $FF0000 );
 
   r.X := 800 - 192;
@@ -95,20 +98,18 @@ begin
   s := 'FPS: ' + u_IntToStr( zgl_Get( RENDER_FPS ) );
   text_Draw( fntMain, 800 - text_GetWidth( fntMain, s ), 0, s );
 
-  batch2d_End();
+//  batch2d_End();
 end;
 
 procedure Timer;
 begin
-//  if key_Press( K_ESCAPE ) Then winOn := false;
-
   key_ClearState();
 end;
 
 Begin
   randomize();
 
-  timer_Add( @Timer, 16 );
+  TimeStart := timer_Add( @Timer, 16, Start );
 
   zgl_Reg( SYS_LOAD, @Init );
   zgl_Reg( SYS_DRAW, @Draw );

+ 29 - 22
Zengl_SRC/demos/Delphi/07 - Sprites/demo07.dpr

@@ -19,7 +19,7 @@ uses
   zgl_primitives_2d,
   zgl_font,
   zgl_text,
-  zgl_math_2d,
+  zgl_types,
   zgl_utils;
 
 type
@@ -31,7 +31,7 @@ end;
 
 var
   dirRes      : UTF8String {$IFNDEF MACOSX} = '../data/' {$ENDIF};    // äèðåêòîðèÿ ðåñóðñîâ
-  fntMain     : zglPFont;                                             // ýòî ôîíò
+  fntMain     : Byte;                                             // ýòî ôîíò
   texLogo     : zglPTexture;
   texBack     : zglPTexture;
   texGround   : zglPTexture;
@@ -41,6 +41,7 @@ var
   time        : Integer;
   camMain     : zglTCamera2D;
 
+  TimeStart: Byte;
 procedure Init;
   var
     i : Integer;
@@ -91,14 +92,18 @@ begin
   // RU: Çàãðóæàåì øðèôò.
   // EN: Load the font.
   fntMain := font_LoadFromFile(dirRes + 'font.zfi');
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
 var
   i : Integer;
   t : Single;
+  ScaleF: LongWord;
 begin
-//  batch2d_Begin();
+//  batch2d_Begin();          // íå ðåêîìåíäóåòñÿ äëÿ ÏÊ    not reccomended for PC
+                              // use for Android and iOS
+  ScaleF := 15;
   if time > 255 Then
   begin
       // RU: Äëÿ óâåëè÷åíèÿ áûñòðîäåéñòâèÿ ìîæíî îòêëþ÷èòü î÷èñòêó áóôåðà öâåòà, ó÷èòûâàÿ ÷òî ýêðàí ïîëíîñòüþ çàïîëíåí.
@@ -127,10 +132,10 @@ begin
       begin
             // RU: Ðèñóåì íàäïèñü â "ðàìî÷êå" íàä ïèíãâèíîì.
             // EN: Render the text in frame over penguins.
-        t := text_GetWidth( fntMain, 'I''m so red...' ) * 0.75 + 4;
-        pr2d_Rect(tux[i].Pos.X - 2, tux[i].Pos.Y - fntMain.MaxHeight + 4, t, fntMain.MaxHeight, $000000, 200, PR2D_FILL);
-        pr2d_Rect(tux[i].Pos.X - 2, tux[i].Pos.Y - fntMain.MaxHeight + 4, t, fntMain.MaxHeight, $FFFFFF);
-        text_DrawEx(fntMain, tux[i].Pos.X, tux[i].Pos.Y - fntMain.MaxHeight + 8, 0.75, 0, 'I''m so red...');
+        t := text_GetWidth( fntMain, 'I''m so red...' ) * 0.75;
+        pr2d_Rect(tux[i].Pos.X - 1, tux[i].Pos.Y - ScaleF + 4, t, ScaleF, $000000, 200, PR2D_FILL);
+        pr2d_Rect(tux[i].Pos.X - 2, tux[i].Pos.Y - ScaleF + 3, t + 2, ScaleF + 2, $FFFFFF);
+        text_DrawEx(fntMain, tux[i].Pos.X, tux[i].Pos.Y - ScaleF + 5, 1, 0, 'I''m so red...');
             // RU: Ðèñóåì êðàñíîãî ïèíãâèíà èñïîëüçóÿ fx2d-ôóíêöèþ è ôëàã FX_COLOR.
             // EN: Render red penguin using fx2d-function and flag FX_COLOR.
         fx2d_SetColor($FF0000);
@@ -138,10 +143,10 @@ begin
       end else
       if i = 7 Then
       begin
-        t := text_GetWidth(fntMain, '???') * 0.75 + 4;
-        pr2d_Rect(tux[i].Pos.X + 32 - t / 2, tux[i].Pos.Y - fntMain.MaxHeight + 4, t, fntMain.MaxHeight, $000000, 200, PR2D_FILL);
-        pr2d_Rect(tux[i].Pos.X + 32 - t / 2, tux[i].Pos.Y - fntMain.MaxHeight + 4, t, fntMain.MaxHeight, $FFFFFF);
-        text_DrawEx(fntMain, tux[i].Pos.X + 32, tux[i].Pos.Y - fntMain.MaxHeight + 8, 0.75, 0, '???', 255, $FFFFFF, TEXT_HALIGN_CENTER);
+        t := text_GetWidth(fntMain, '???') * 0.75;
+        pr2d_Rect(tux[i].Pos.X + 32 - t / 2, tux[i].Pos.Y - ScaleF + 4, t, ScaleF, $000000, 200, PR2D_FILL);
+        pr2d_Rect(tux[i].Pos.X + 32 - t / 2 - 1, tux[i].Pos.Y - ScaleF + 3, t + 2, ScaleF + 2, $FFFFFF);
+        text_DrawEx(fntMain, tux[i].Pos.X + 32, tux[i].Pos.Y - ScaleF + 5, 1, 0, '???', 255, $FFFFFF, TEXT_HALIGN_CENTER);
                 // RU: Ðèñóåì ïèíãâèíà ïðèâåäåíèå èñïîëüçóÿ ôëàã FX_COLOR óñòàíîâèâ ðåæèì â FX_COLOR_SET :)
                 // EN: Render penguin ghost using flag FX_COLOR and mode FX_COLOR_SET :)
         fx_SetColorMode(FX_COLOR_SET);
@@ -158,10 +163,10 @@ begin
     for i := 10 to 19 do
       if i = 13 Then
       begin
-        t := text_GetWidth(fntMain, 'I''m so big...') * 0.75 + 4;
-        pr2d_Rect(tux[i].Pos.X - 2, tux[i].Pos.Y - fntMain.MaxHeight - 10, t, fntMain.MaxHeight, $000000, 200, PR2D_FILL);
-        pr2d_Rect(tux[i].Pos.X - 2, tux[i].Pos.Y - fntMain.MaxHeight - 10, t, fntMain.MaxHeight, $FFFFFF);
-        text_DrawEx(fntMain, tux[i].Pos.X, tux[i].Pos.Y - fntMain.MaxHeight - 4, 0.75, 0, 'I''m so big...');
+        t := text_GetWidth(fntMain, 'I''m so big...') * 0.75;
+        pr2d_Rect(tux[i].Pos.X - 2, tux[i].Pos.Y - ScaleF - 10, t, ScaleF, $000000, 200, PR2D_FILL);
+        pr2d_Rect(tux[i].Pos.X - 3, tux[i].Pos.Y - ScaleF - 11, t + 2, ScaleF + 2, $FFFFFF);
+        text_DrawEx(fntMain, tux[i].Pos.X, tux[i].Pos.Y - ScaleF - 9, 1, 0, 'I''m so big...');
             // RU: Ðèñóåì "áîëüøåãî" ïèíãâèíà. Ò.ê. FX2D_SCALE óâåëè÷èâàåò ñïðàéò îòíîñèòåëüíî öåíòðà, òî ïèíãâèíà ñëåäóåò íåìíîãî "ïîäíÿòü".
             // EN: Render "big" penguin. It must be shifted up, because FX2D_SCALE scale sprite relative to the center.
         fx2d_SetScale(1.25, 1.25);
@@ -186,10 +191,10 @@ begin
     asprite2d_Draw(texGround, 12 * 32, 300 - 16, 32, 32, 0, 2);
     asprite2d_Draw(texGround, 13 * 32, 300 - 16, 32, 32, 0, 3);
 
-    t := text_GetWidth(fntMain, 'o_O') * 0.75 + 4;
-    pr2d_Rect(tux[20].Pos.X + 32 - t / 2, tux[20 ].Pos.Y - fntMain.MaxHeight + 4, t, fntMain.MaxHeight, $000000, 200, PR2D_FILL);
-    pr2d_Rect(tux[20].Pos.X + 32 - t / 2, tux[20 ].Pos.Y - fntMain.MaxHeight + 4, t, fntMain.MaxHeight, $FFFFFF);
-    text_DrawEx(fntMain, tux[20].Pos.X + 32, tux[20].Pos.Y - fntMain.MaxHeight + 8, 0.75, 0, 'o_O', 255, $FFFFFF, TEXT_HALIGN_CENTER);
+    t := text_GetWidth(fntMain, 'o_O') * 0.75;
+    pr2d_Rect(tux[20].Pos.X + 32 - t / 2 - 1, tux[20 ].Pos.Y - ScaleF + 3, t + 2, ScaleF + 2, $000000, 200, PR2D_FILL);
+    pr2d_Rect(tux[20].Pos.X + 32 - t / 2 - 2, tux[20 ].Pos.Y - ScaleF + 2, t + 4, ScaleF + 4, $FFFFFF);
+    text_DrawEx(fntMain, tux[20].Pos.X + 32, tux[20].Pos.Y - ScaleF + 5, 1, 0, 'o_O', 255, $FFFFFF, TEXT_HALIGN_CENTER);
     asprite2d_Draw(tux[20].Texture, tux[20].Pos.X, tux[20].Pos.Y, 64, 64, 0, tux[20].Frame div 2);
   end;
 
@@ -201,10 +206,12 @@ begin
     pr2d_Rect(0, 0, 800, 600, $000000, 510 - time, PR2D_FILL);
     ssprite2d_Draw(texLogo, 400 - 256, 300 - 128, 512, 256, 0, 510 - time);
   end;
-  setTextScale(1.5);
+
   if time > 255 Then
     text_Draw(fntMain, 0, 0, 'FPS: ' + u_IntToStr(zgl_Get(RENDER_FPS)));
-//  batch2d_End();
+
+//  batch2d_End();                // íå ðåêîìåíäóåòñÿ äëÿ ÏÊ    not reccomended for PC
+                                  // use for Android and iOS
 end;
 
 procedure Timer;
@@ -240,7 +247,7 @@ end;
 Begin
   randomize();
 
-  timer_Add(@Timer, 16);
+  TimeStart := timer_Add(@Timer, 16, Start);
 
   zgl_Reg(SYS_LOAD, @Init);
   zgl_Reg(SYS_DRAW, @Draw );

+ 11 - 17
Zengl_SRC/demos/Delphi/08 - Sprite Engine/demo08.dpr

@@ -13,13 +13,12 @@ uses
   zgl_fx,
   zgl_textures,
   zgl_textures_png,
-  zgl_textures_jpg,
   zgl_sprite_2d,
   zgl_sengine_2d,
   zgl_primitives_2d,
   zgl_font,
   zgl_text,
-  zgl_math_2d,
+  zgl_types,
   zgl_utils
   ;
 
@@ -37,11 +36,13 @@ type
 
 var
   dirRes   : UTF8String {$IFNDEF MACOSX} = '../data/' {$ENDIF};
-  fntMain  : zglPFont;
+  fntMain  : Byte;
   texLogo  : zglPTexture;
   texMiku  : zglPTexture;
   time     : Integer;
   sengine2d: zglTSEngine2D;
+  TimeStart: Byte;
+  TimeMiku : Byte;
 
 // Miku
 procedure MikuInit(var Miku: zglTMikuSprite);
@@ -98,7 +99,6 @@ begin
   // RU: Ïðè äîáàâëåíèè ñïðàéòà â ìåíåäæåð ñïðàéòîâ óêàçûâàåòñÿ òåêñòóðà, ñëîé(ïîëîæåíèå ïî Z) è óêàçàòåëè íà îñíîâíûå ôóíêöèè - Èíèöèàëèçàöèÿ, Ðåíäåð, Îáðàáîòêà è Óíè÷òîæåíèå.
   // EN: For adding sprite to sprite engine must be set next parameters: texture, layer(Z-coordinate) and pointers to Initialization, Render, Process and Destroy functions.
   for i := 1 to 100 do
-  // ýòî ìû òóïî ïåðåäà¸ì îäíè è òå æå äàííûå äëÿ ñòà îáúåêòîâ...
     sengine2d_AddCustom(texMiku, SizeOf(zglTMikuSprite), random(10), @MikuInit, @MikuDraw, @MikuProc, @MikuFree);
 end;
 
@@ -129,16 +129,16 @@ begin
 
   // RU: Ñîçäàäèì 1000 ñïðàéòîâ Miku-chan :)
   // EN: Create 1000 sprites of Miku-chan :)
-  for i := 0 to 9 do
-    AddMiku();        // ýòî êàïåö!!!!!! 1000 ðàç âûçûâàåòñÿ îäíà è òà æå ïðîöåäóðà!!!!!
+//  for i := 0 to 9 do
+//    AddMiku();
 
   fntMain := font_LoadFromFile(dirRes + 'font.zfi');
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
 begin
-  batch2d_Begin();
+//  batch2d_Begin();
   // RU: Ðèñóåì âñå ñïðàéòû íàõîäÿùèåñÿ â òåêóùåì ñïðàéòîâîì ìåíåäæåðå.
   // EN: Render all sprites contained in current sprite engine.
   if time > 255 Then
@@ -160,7 +160,7 @@ begin
       text_Draw(fntMain, 0, 20, 'Sprites: ' + u_IntToStr(sengine2d.Count));
       text_Draw(fntMain, 0, 40, 'Up/Down - Add/Delete Miku :)');
     end;
-  batch2d_End();
+//  batch2d_End();
 end;
 
 procedure Timer;
@@ -177,12 +177,6 @@ begin
   if key_Press(K_UP) Then AddMiku();
   if key_Press(K_DOWN) Then DelMiku();
 
-{  if key_Press(K_ESCAPE) Then
-  begin
-    winOn := false;
-    sengine2d_ClearAll;
-  end;              }
-
   key_ClearState();
 end;
 
@@ -197,8 +191,8 @@ end;
 Begin
   randomize;
 
-  timer_Add(@Timer, 16);
-  timer_Add(@AddMiku, 1000);
+  TimeStart := timer_Add(@Timer, 16, Start);
+  TimeMiku := timer_Add(@AddMiku, 1000, SleepToStart, 10);
 
   zgl_Reg(SYS_LOAD, @Init);
   zgl_Reg(SYS_DRAW, @Draw);

+ 12 - 12
Zengl_SRC/demos/Delphi/09 - Sprite Engine(Classes)/demo09.dpr

@@ -8,18 +8,18 @@ uses
   zglSpriteEngine,
   zgl_screen,
   zgl_window,
+  zgl_application,
   zgl_timers,
   zgl_keyboard,
   zgl_render_2d,
   zgl_fx,
   zgl_textures,
   zgl_textures_png,
-  zgl_textures_jpg,
   zgl_sprite_2d,
   zgl_primitives_2d,
   zgl_font,
   zgl_text,
-  zgl_math_2d,
+  zgl_types,
   zgl_utils
   ;
 
@@ -36,11 +36,13 @@ type
 
 var
   dirRes   : UTF8String {$IFNDEF MACOSX} = '../data/' {$ENDIF};
-  fntMain  : zglPFont;
+  fntMain  : Byte;
   texLogo  : zglPTexture;
   texMiku  : zglPTexture;
   time     : Integer;
   sengine2d: zglCSEngine2D;
+  TimeStart : Byte;
+  TimeMiku  : Byte;
 
 // Miku
 procedure CMiku.OnInit(_Texture: zglPTexture; _Layer: Integer);
@@ -132,16 +134,16 @@ begin
 
   // RU: Ñîçäàäèì 1000 ñïðàéòîâ Miku-chan :)
   // EN: Create 1000 sprites of Miku-chan :)
-  for i := 0 to 9 do
-    AddMiku();
+//  for i := 0 to 9 do
+//    AddMiku();
 
   fntMain := font_LoadFromFile(dirRes + 'font.zfi');
 end;
 
 procedure Draw;
 begin
-  setTextScale(1.5);
-  batch2d_Begin();
+  setTextScale(15, fntMain);
+//  batch2d_Begin();
   // RU: Ðèñóåì âñå ñïðàéòû íàõîäÿùèåñÿ â òåêóùåì ñïðàéòîâîì ìåíåäæåðå.
   // EN: Render all sprites contained in current sprite engine.
   if time > 255 Then
@@ -163,7 +165,7 @@ begin
       text_Draw(fntMain, 0, 20, 'Sprites: ' + u_IntToStr(sengine2d.Count));
       text_Draw(fntMain, 0, 40, 'Up/Down - Add/Delete Miku :)');
     end;
-  batch2d_End();
+//  batch2d_End();
 end;
 
 procedure Timer;
@@ -180,8 +182,6 @@ begin
   if key_Press(K_UP) Then AddMiku();
   if key_Press(K_DOWN) Then DelMiku();
 
-//  if key_Press(K_ESCAPE) Then winOn := false;
-
   key_ClearState();
 end;
 
@@ -195,8 +195,8 @@ end;
 Begin
   randomize();
 
-  timer_Add(@Timer, 16);
-  timer_Add(@AddMiku, 1000);
+  TimeStart := timer_Add( @Timer, 16, Start );
+  TimeMiku := timer_Add( @AddMiku, 1000, SleepToStart, 10 );
 
   zgl_Reg(SYS_LOAD, @Init);
   zgl_Reg(SYS_DRAW, @Draw);

+ 4 - 3
Zengl_SRC/demos/Delphi/10 - Tiles/demo10.dpr

@@ -23,9 +23,10 @@ uses
 
 var
   dirRes  : UTF8String {$IFNDEF MACOSX} = '../data/' {$ENDIF};
-  fntMain : zglPFont;
+  fntMain : Byte;
   map     : zglTTiles2D;
   texTiles: zglPTexture;
+  TimeStart: Byte;
 
 procedure Init;
   var
@@ -56,7 +57,7 @@ begin
   for i := 0 to map.X - 1 do
     file_Read(f, map.Tiles[i, 0], map.Y * SizeOf(Integer));
   file_Close(f);
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
@@ -80,7 +81,7 @@ end;
 Begin
   randomize();
 
-  timer_Add(@Timer, 16);
+  TimeStart := timer_Add(@Timer, 16, Start);
 
   zgl_Reg(SYS_LOAD, @Init);
   zgl_Reg(SYS_DRAW, @Draw);

+ 5 - 4
Zengl_SRC/demos/Delphi/11 - Grid/demo11.dpr

@@ -22,10 +22,11 @@ uses
 
 var
   dirRes     : UTF8String {$IFNDEF MACOSX} = '../data/' {$ENDIF};
-  fntMain    : zglPFont;
+  fntMain    : Byte;
   texBack    : zglPTexture;
   grid       : zglTGrid2D;
   wave       : Single;
+  TimeStart  : Byte;
 
 procedure Init;
   var
@@ -46,6 +47,8 @@ begin
         grid.Grid[i, j].X := i * 40;
         grid.Grid[i, j].Y := j * 40;
       end;
+
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
@@ -54,7 +57,6 @@ begin
   // EN: Render grid in coordinates 0,0.
   sgrid2d_Draw(texBack, 0, 0, @grid);
 
-  setTextScale(1.5);
   text_Draw(fntMain, 0, 0, 'FPS: ' + u_IntToStr(zgl_Get(RENDER_FPS)));
 end;
 
@@ -83,14 +85,13 @@ begin
       end;
     end;
 
-//  if key_Press(K_ESCAPE) Then winOn := false;
   key_ClearState();
 end;
 
 Begin
   randomize();
 
-  timer_Add(@Timer, 16);
+  TimeStart := timer_Add(@Timer, 16, SleepToStart, 3);
 
   zgl_Reg(SYS_LOAD, @Init);
   zgl_Reg(SYS_DRAW, @Draw);

+ 4 - 3
Zengl_SRC/demos/Delphi/12 - Render into Texture/demo12.dpr

@@ -23,10 +23,11 @@ uses
 
 var
   dirRes   : UTF8String {$IFNDEF MACOSX} = '../data/' {$ENDIF};
-  fntMain  : zglPFont;
+  fntMain  : Byte;
   texTux   : zglPTexture;
   rtFull   : zglPRenderTarget;
   rtDefault: zglPRenderTarget;
+  TimeStart: Byte;
 
 procedure Init;
 begin
@@ -45,7 +46,7 @@ begin
   // EN: Create one more RenderTarget with flag RT_DEFAULT for comparison.
   rtDefault := rtarget_Add(tex_CreateZero(256, 256), RT_DEFAULT);
 
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
@@ -80,7 +81,7 @@ end;
 Begin
   randomize();
 
-  timer_Add(@Timer, 16);
+  TimeStart := timer_Add(@Timer, 16, Start);
 
   zgl_Reg(SYS_LOAD, @Init);
   zgl_Reg(SYS_DRAW, @Draw);

+ 4 - 3
Zengl_SRC/demos/Delphi/13 - Particles/demo13.dpr

@@ -25,13 +25,14 @@ uses
 
 var
   dirRes        : UTF8String {$IFNDEF MACOSX} = '../data/' {$ENDIF};
-  fntMain       : zglPFont;
+  fntMain       : Byte;
   texBack       : zglPTexture;
   debug         : Boolean;
   particles     : zglTPEngine2D;
   emitterFire   : array[0..2] of zglPEmitter2D;
   emitterDiamond: zglPEmitter2D;
   emitterRain   : zglPEmitter2D;
+  TimeStart     : Byte;
 
 procedure Init;
 begin
@@ -67,7 +68,7 @@ begin
   emitterRain := emitter2d_LoadFromFile(dirRes + 'emitter_rain.zei');
   pengine2d_AddEmitter(emitterRain, nil);
 
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
@@ -119,7 +120,7 @@ end;
 Begin
   randomize();
 
-  timer_Add(@Timer, 16);
+  TimeStart := timer_Add(@Timer, 16, Start);
 
   zgl_Reg(SYS_LOAD, @Init);
   zgl_Reg(SYS_DRAW, @Draw);

+ 7 - 6
Zengl_SRC/demos/Delphi/14 - Sound/demo14.dpr

@@ -20,7 +20,7 @@ uses
   zgl_sound,
   zgl_sound_wav,
   zgl_sound_ogg,
-  zgl_math_2d,
+  zgl_types,
   zgl_collision_2d,
   zgl_utils,
   zgl_memory
@@ -32,7 +32,7 @@ const
 
 var
   dirRes : UTF8String {$IFNDEF MACOSX} = '../data/' {$ENDIF};
-  fntMain: zglPFont;
+  fntMain: Byte;
   icon   : array[0..1] of zglPTexture;
   sound  : zglPSound;
   audio  : Integer;
@@ -42,17 +42,18 @@ var
 
   // äîáàâëÿåì íîìåð çâóêà, ïîêà äëÿ îäíîãî çâóêà
   IDSound: Integer;
+  TimeStart: Byte;
 
 // RU: Ò.ê. çâóêîâàÿ ïîäñèñòåìà íàöåëåíà íà 3D, äëÿ ïîçèöèîíèðîâàíèÿ çâóêîâ â 2D íóæíû íåêîòîðûå óõèùðåíèÿ.
 // EN: Because sound subsystem using 3D, there is some tricky way to calculate sound position in 2D.
 function CalcX2D(const X: Single): Single;
 begin
-  Result := (X - SCREEN_WIDTH / 2) * (10 / SCREEN_WIDTH / 2);          // ñìåíèë ñìåùåíèå ïî X è Y, òåïåðü áîëåå ÿâíî ìîæíî
+  Result := (X - SCREEN_WIDTH / 2) * (20 / SCREEN_WIDTH / 2);          // ñìåíèë ñìåùåíèå ïî X è Y, òåïåðü áîëåå ÿâíî ìîæíî
 end;                                                                    // îòäàëèòü/ïðèáëèçèòü çâóê
 
 function CalcY2D(const Y: Single): Single;
 begin
-  Result := (Y - SCREEN_HEIGHT / 2) * (10 / SCREEN_HEIGHT / 2);
+  Result := (Y - SCREEN_HEIGHT / 2) * (20 / SCREEN_HEIGHT / 2);
 end;
 
 procedure Init;
@@ -71,13 +72,13 @@ begin
   icon[1] := tex_LoadFromFile(dirRes + 'audio-play.png');
 
   fntMain := font_LoadFromFile(dirRes + 'font.zfi');
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
   var
     r: zglTRect;
 begin
-  setTextScale(1.5);
   ssprite2d_Draw(icon[state], (SCREEN_WIDTH - 128) / 2, (SCREEN_HEIGHT - 128) / 2, 128, 128, 0);
   text_Draw(fntMain, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2 + 64, 'Skillet - Comatose - Whispers In The Dark', TEXT_HALIGN_CENTER);
 
@@ -157,7 +158,7 @@ end;
 Begin
   randomize();
 
-  timer_Add(@Timer, 16);
+  TimeStart := timer_Add(@Timer, 16, Start);
 
   zgl_Reg(SYS_LOAD, @Init);
   zgl_Reg(SYS_DRAW, @Draw);

+ 4 - 3
Zengl_SRC/demos/Delphi/15 - Video/demo15.dpr

@@ -23,9 +23,10 @@ uses
 
 var
   dirRes   : UTF8String {$IFNDEF MACOSX} = '../data/' {$ENDIF};
-  fntMain  : zglPFont;
+  fntMain  : Byte;
   video    : zglPVideoStream;
   videoSeek: Boolean;
+  TimeStart: Byte;
 
 procedure Init;
 begin
@@ -35,7 +36,7 @@ begin
   // RU: Îòêðûòü âèäåî ôàéë.
   video := video_OpenFile(dirRes + 'video.ogv');
 
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
@@ -83,7 +84,7 @@ end;
 Begin
   randomize();
 
-  timer_Add(@Timer, 16);
+  TimeStart := timer_Add(@Timer, 16, Start);
 
   zgl_Reg(SYS_LOAD, @Init);
   zgl_Reg(SYS_DRAW, @Draw);

+ 10 - 8
Zengl_SRC/demos/Delphi/16 - Physics/demo16.dpr

@@ -24,11 +24,13 @@ uses
 
 var
   dirRes : UTF8String {$IFNDEF MACOSX} = '../data/' {$ENDIF};
-  fntMain: zglPFont;
+  fntMain: Byte;
   space  : PcpSpace;
   bCount : Integer;
   Bodies : array of PcpBody;
   Shapes : array of PcpShape;
+  TimeStart: Byte;
+  TimePhisics: Byte;
 
 // RU: Äîáàâèòü îáúåêò "øàð"
 //     x, y - êîîðäèíàòû öåíòðà
@@ -116,10 +118,10 @@ begin
   space.elasticIterations := 10;
   // RU: Çàäàåì ñèëó ãðàâèòàöèè.
   // EN: Set the gravity.
-  space.gravity    := cpv(0, 256);
+  space.gravity    := cpv(1, 100);
   // RU: Çàäàåì êîýôôèöèåíò "çàòóõàíèÿ" äâèæåíèÿ îáúåêòîâ.
   // EN: Set the damping for moving of objects.
-  space.damping    := 0.9;
+  space.damping    := 0.99;
 
   e := 1;
   u := 0.9;
@@ -156,7 +158,7 @@ begin
   ground.u := u;
   cpSpaceAddStaticShape(space, ground);
 
-  setTextScale(1.5);
+  setTextScale(15, fntMain);
 end;
 
 procedure Draw;
@@ -189,9 +191,9 @@ begin
   mouse_ClearState();
 end;
 
-procedure Update(dt: Double);
+procedure Phisics;
 begin
-  cpSpaceStep(space, 1 / (1000 / dt));
+  cpSpaceStep(space, 1 / zgl_Get(RENDER_FPS));
 end;
 
 procedure Quit;
@@ -211,11 +213,11 @@ Begin
   if not cpLoad(libChipmunk) Then exit;
   {$ENDIF}
 
-  timer_Add(@Proc, 16);
+  TimeStart := timer_Add(@Proc, 16, Start);
+  TimePhisics := timer_Add(@Phisics, 16, Start);
 
   zgl_Reg(SYS_LOAD, @Init);
   zgl_Reg(SYS_DRAW, @Draw);
-  zgl_Reg(SYS_UPDATE, @Update);
   zgl_Reg(SYS_EXIT, @Quit);
 
   wnd_SetCaption(utf8_Copy('16 - Physics Simple'));

+ 0 - 83
Zengl_SRC/demos/FreePascal/01 - Initialization/Makefile

@@ -1,83 +0,0 @@
-# Get current platform
-ifeq ($(shell uname -m), x86_64)
-  ARCH  = x86_64
-else
-  ARCH  = i386
-endif
-
-# Get current OS
-ifeq ($(shell uname), Linux)
-  OS    = linux
-else ifeq ($(shell uname), Darwin)
-  OS    = darwin
-  ARCH  = i386
-endif
-
-# Variables
-FPC     = fpc
-FLAGS   = -O3 -XsX -CX -Sd
-INCLUDE = -Fu../../../headers -Fi../../../headers -Fu../../../extra -Fu../../../src
-LIBS    = -Fu../../../lib/jpeg/$(ARCH)-$(OS) -Fu../../../lib/ogg/$(ARCH)-$(OS) -Fu../../../lib/theora/$(ARCH)-$(OS) -Fu../../../lib/zlib/$(ARCH)-$(OS) -Fu../../../lib/zip/$(ARCH)-$(OS)
-LIBSPPC = -Fu../../../lib/jpeg/powerpc-$(OS) -Fu../../../lib/ogg/powerpc-$(OS) -Fu../../../lib/theora/powerpc-$(OS) -Fu../../../lib/zlib/powerpc-$(OS) -Fu../../../lib/zip/powerpc-$(OS)
-OUTPUT  = ../../../bin/
-TMP     = ../tmp/
-UNIT    = demo01.pas
-TARGET  = demo01
-TARGETW = demo01.exe
-TARGETM = demo01
-BUNDLE  = $(OUTPUT)$(TARGETM).app
-
-# Targets
-all: clean
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT)$(ARCH)-$(OS)/ -FU$(TMP) $(FLAGS) -o$(TARGET) -TLINUX
-	strip $(OUTPUT)$(ARCH)-$(OS)/$(TARGET) --strip-unneeded -R .comment -R .note
-
-linux32: clean
-	$(FPC) $(UNIT) $(INCLUDE) \
-	-Fu../../../lib/jpeg/i386-linux \
-	-Fu../../../lib/ogg/i386-linux \
-	-Fu../../../lib/theora/i386-linux \
-	-Fu../../../lib/zlib/i386-linux \
-	-Fu../../../lib/zip/i386-linux \
-	-FE$(OUTPUT)i386-linux/ -FU$(TMP) $(FLAGS) -o$(TARGET) -TLINUX -Pi386 -Xd
-	strip $(OUTPUT)i386-linux/$(TARGET) --strip-unneeded -R .comment -R .note
-
-win32: clean
-	$(FPC) $(UNIT) $(INCLUDE) \
-	-Fu../../../lib/jpeg/i386-win32 \
-	-Fu../../../lib/msvcrt/i386 \
-	-Fu../../../lib/ogg/i386-win32 \
-	-Fu../../../lib/theora/i386-win32 \
-	-Fu../../../lib/zlib/i386-win32 \
-	-Fu../../../lib/zip/i386-win32 \
-	-FE$(OUTPUT)i386-win32/ -FU$(TMP) $(FLAGS) -o$(TARGETW) -TWIN32 -Pi386 -WG
-
-win64: clean
-	$(FPC) $(UNIT) $(INCLUDE) \
-	-Fu../../../lib/jpeg/x86_64-win64 \
-	-Fu../../../lib/msvcrt/x86_64 \
-	-Fu../../../lib/ogg/x86_64-win64 \
-	-Fu../../../lib/theora/x86_64-win64 \
-	-Fu../../../lib/zlib/x86_64-win64 \
-	-Fu../../../lib/zip/x86_64-win64 \
-	-FE$(OUTPUT)x86_64-win64/ -FU$(TMP) $(FLAGS) -o$(TARGETW) -TWIN64 -Px86_64 -WG
-
-macosx: clean
-	rm -Rf $(BUNDLE)
-	mkdir {$(BUNDLE),$(BUNDLE)/{Contents,Contents/{MacOS,Resources,Frameworks}}}
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM) -TDARWIN -Pi386 -k"-macosx_version_min" -k"10.4"
-	mv $(OUTPUT)$(TARGETM) $(BUNDLE)/Contents/MacOS/
-	sh macosx_postbuild.sh
-
-macosx_uni: clean
-	rm -Rf $(BUNDLE)
-	mkdir {$(BUNDLE),$(BUNDLE)/{Contents,Contents/{MacOS,Resources,Frameworks}}}
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM)-386 -TDARWIN -Pi386 -k"-macosx_version_min" -k"10.4"
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBSPPC) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM)-ppc -TDARWIN -Ppowerpc -k"-macosx_version_min" -k"10.4"
-	lipo -create $(OUTPUT)$(TARGETM)-ppc $(OUTPUT)$(TARGETM)-386 -output $(BUNDLE)/Contents/MacOS/$(TARGETM)
-	rm $(OUTPUT)$(TARGETM)-386 $(OUTPUT)$(TARGETM)-ppc
-	sh macosx_postbuild.sh
-
-clean:
-	rm -f *.*~
-	rm -f $(TMP)*.*

+ 0 - 119
Zengl_SRC/demos/FreePascal/01 - Initialization/demo01.pas

@@ -1,119 +0,0 @@
-program demo01;
-
-// RU: Этот файл содержит некоторые настройки(например использовать ли статическую компиляцию) и определения ОС под которую происходит компиляция.
-// EN: This file contains some options(e.g. whether to use static compilation) and defines of OS for which is compilation going.
-{$I zglCustomConfig.cfg}
-
-uses
-  {$IFDEF USE_ZENGL_STATIC}
-  // RU: При использовании статической компиляции необходимо подключать модули ZenGL содержащие необходимый функционал.
-  // EN: Using static compilation needs to use ZenGL units with needed functionality.
-  zgl_main,
-  zgl_screen,
-  zgl_window,
-  zgl_timers,
-  zgl_utils
-  {$ELSE}
-  // RU: Используя ZenGL в качестве библиотеки(so, dll или dylib) нужен всего один заголовочный файл.
-  // EN: Using ZenGL as a shared library(so, dll or dylib) needs only one header.
-  zglHeader
-  {$ENDIF}
-  ;
-
-var
-  DirApp  : UTF8String;
-  DirHome : UTF8String;
-
-procedure Init;
-begin
-  // RU: Тут можно выполнять загрузку основных ресурсов.
-  // EN: Here can be loading of main resources.
-end;
-
-procedure Draw;
-begin
-  // RU: Тут "рисуем" что угодно :)
-  // EN: Here "draw" anything :)
-end;
-
-procedure Update( dt : Double );
-begin
-  // RU: Эта функция наземенима для реализация плавного движения чего-либо, т.к. точность таймеров ограничена FPS.
-  // EN: This function is the best way to implement smooth moving of something, because accuracy of timers are restricted by FPS.
-end;
-
-procedure Timer;
-begin
-  // RU: Будем в заголовке показывать количество кадров в секунду.
-  // EN: Caption will show the frames per second.
-  wnd_SetCaption( '01 - Initialization[ FPS: ' + u_IntToStr( zgl_Get( RENDER_FPS ) ) + ' ]' );
-end;
-
-procedure Quit;
-begin
- //
-end;
-
-Begin
-  // RU: Код ниже загружает библиотеку если статическая компиляция не используется.
-  // EN: Code below loads a library if static compilation is not used.
-  {$IFNDEF USE_ZENGL_STATIC}
-    {$IFDEF LINUX}
-    // RU: В GNU/Linux все библиотеки принято хранить в /usr/lib, поэтому libZenGL.so должна быть предварительно установлена.
-    // Но zglLoad сначала проверить есть ли libZenGL.so рядом с исполняемым файлом.
-    //
-    // EN: In GNU/Linux all libraries placed in /usr/lib, so libZenGL.so must be installed before it will be used.
-    // But zglLoad will check first if there is libZenGL.so near executable file.
-    if not zglLoad( libZenGL ) Then exit;
-    {$ENDIF}
-    {$IFDEF WINDOWS}
-    if not zglLoad( libZenGL ) Then exit;
-    {$ENDIF}
-    {$IFDEF DARWIN}
-    // RU: libZenGL.dylib следует предварительно поместить в каталог MyApp.app/Contents/Frameworks/, где MyApp.app - Bundle вашего приложения.
-    // Также следует упомянуть, что лог-файл будет создаваться в корневом каталоге поэтому либо отключайте его, либо указывайте свой путь и имя, как описано в справке.
-    //
-    // EN: libZenGL.dylib must be placed into this directory MyApp.app/Contents/Frameworks/, where MyApp.app - Bundle of your application.
-    // Also you must know, that log-file will be created in root directory, so you must disable a log, or choose your own path and name for it. How to do this you can find in documentation.
-    if not zglLoad( libZenGL ) Then exit;
-    {$ENDIF}
-  {$ENDIF}
-
-  // RU: Для загрузки/создания каких-то своих настроек/профилей/etc. можно получить путь к домашенему каталогу пользователя, или к исполняемому файлу(не работает для GNU/Linux).
-  // EN: For loading/creating your own options/profiles/etc. you can get path to user home directory, or to executable file(not works for GNU/Linux).
-  DirApp  := utf8_Copy( PAnsiChar( zgl_Get( DIRECTORY_APPLICATION ) ) );
-  DirHome := utf8_Copy( PAnsiChar( zgl_Get( DIRECTORY_HOME ) ) );
-
-  // RU: Создаем таймер с интервалом 1000мс.
-  // EN: Create a timer with interval 1000ms.
-  timer_Add( @Timer, 1000 );
-
-  // RU: Регистрируем процедуру, что выполнится сразу после инициализации ZenGL.
-  // EN: Register the procedure, that will be executed after ZenGL initialization.
-  zgl_Reg( SYS_LOAD, @Init );
-  // RU: Регистрируем процедуру, где будет происходить рендер.
-  // EN: Register the render procedure.
-  zgl_Reg( SYS_DRAW, @Draw );
-  // RU: Регистрируем процедуру, которая будет принимать разницу времени между кадрами.
-  // EN: Register the procedure, that will get delta time between the frames.
-  zgl_Reg( SYS_UPDATE, @Update );
-  // RU: Регистрируем процедуру, которая выполнится после завершения работы ZenGL.
-  // EN: Register the procedure, that will be executed after ZenGL shutdown.
-  zgl_Reg( SYS_EXIT, @Quit );
-
-  // RU: Устанавливаем заголовок окна.
-  // EN: Set the caption of the window.
-  wnd_SetCaption( '01 - Initialization' );
-
-  // RU: Разрешаем курсор мыши.
-  // EN: Allow to show the mouse cursor.
-  wnd_ShowCursor( TRUE );
-
-  // RU: Указываем первоначальные настройки.
-  // EN: Set screen options.
-  scr_SetOptions( 800, 600, REFRESH_MAXIMUM, FALSE, FALSE );
-
-  // RU: Инициализируем ZenGL.
-  // EN: Initialize ZenGL.
-  zgl_Init();
-End.

+ 0 - 24
Zengl_SRC/demos/FreePascal/01 - Initialization/demo01_macosx.plist

@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-  <key>CFBundleExecutable</key>
-  <string>demo01</string>
-  <key>CFBundleIconFile</key>
-  <string>demo01</string>
-  <key>CFBundleName</key>
-  <string>demo01</string>
-  <key>CFBundleIdentifier</key>
-  <string>zengl.demo01</string>
-  <key>CFBundlePackageType</key>
-  <string>APPL</string>
-  <key>CFBundleSignature</key>
-  <string>demo</string>
-  <key>CFBundleShortVersionString</key>
-  <string>1.0</string>
-  <key>CFBundleVersion</key>
-  <string>1</string>
-  <key>CSResourcesFileMapped</key>
-  <true/>
-</dict>
-</plist>

+ 0 - 0
Zengl_SRC/demos/FreePascal/01 - Initialization/fp___.err


+ 0 - 0
Zengl_SRC/demos/FreePascal/01 - Initialization/fp___.out


+ 0 - 3
Zengl_SRC/demos/FreePascal/01 - Initialization/macosx_postbuild.sh

@@ -1,3 +0,0 @@
-# make Info.plist and copy icon
-cp -f demo01_macosx.plist ../../../bin/demo01.app/Contents/Info.plist
-cp ../../../bin/data/zengl.icns ../../../bin/demo01.app/Contents/Resources/demo01.icns

+ 0 - 83
Zengl_SRC/demos/FreePascal/02 - Resources/Makefile

@@ -1,83 +0,0 @@
-# Get current platform
-ifeq ($(shell uname -m), x86_64)
-  ARCH  = x86_64
-else
-  ARCH  = i386
-endif
-
-# Get current OS
-ifeq ($(shell uname), Linux)
-  OS    = linux
-else ifeq ($(shell uname), Darwin)
-  OS    = darwin
-  ARCH  = i386
-endif
-
-# Variables
-FPC     = fpc
-FLAGS   = -O3 -XsX -CX -Sd
-INCLUDE = -Fu../../../headers -Fi../../../headers -Fu../../../extra -Fu../../../src
-LIBS    = -Fu../../../lib/jpeg/$(ARCH)-$(OS) -Fu../../../lib/ogg/$(ARCH)-$(OS) -Fu../../../lib/theora/$(ARCH)-$(OS) -Fu../../../lib/zlib/$(ARCH)-$(OS) -Fu../../../lib/zip/$(ARCH)-$(OS)
-LIBSPPC = -Fu../../../lib/jpeg/powerpc-$(OS) -Fu../../../lib/ogg/powerpc-$(OS) -Fu../../../lib/theora/powerpc-$(OS) -Fu../../../lib/zlib/powerpc-$(OS) -Fu../../../lib/zip/powerpc-$(OS)
-OUTPUT  = ../../../bin/
-TMP     = ../tmp/
-UNIT    = demo02.pas
-TARGET  = demo02
-TARGETW = demo02.exe
-TARGETM = demo02
-BUNDLE  = $(OUTPUT)$(TARGETM).app
-
-# Targets
-all: clean
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT)$(ARCH)-$(OS)/ -FU$(TMP) $(FLAGS) -o$(TARGET) -TLINUX
-	strip $(OUTPUT)$(ARCH)-$(OS)/$(TARGET) --strip-unneeded -R .comment -R .note
-
-linux32: clean
-	$(FPC) $(UNIT) $(INCLUDE) \
-	-Fu../../../lib/jpeg/i386-linux \
-	-Fu../../../lib/ogg/i386-linux \
-	-Fu../../../lib/theora/i386-linux \
-	-Fu../../../lib/zlib/i386-linux \
-	-Fu../../../lib/zip/i386-linux \
-	-FE$(OUTPUT)i386-linux/ -FU$(TMP) $(FLAGS) -o$(TARGET) -TLINUX -Pi386 -Xd
-	strip $(OUTPUT)i386-linux/$(TARGET) --strip-unneeded -R .comment -R .note
-
-win32: clean
-	$(FPC) $(UNIT) $(INCLUDE) \
-	-Fu../../../lib/jpeg/i386-win32 \
-	-Fu../../../lib/msvcrt/i386 \
-	-Fu../../../lib/ogg/i386-win32 \
-	-Fu../../../lib/theora/i386-win32 \
-	-Fu../../../lib/zlib/i386-win32 \
-	-Fu../../../lib/zip/i386-win32 \
-	-FE$(OUTPUT)i386-win32/ -FU$(TMP) $(FLAGS) -o$(TARGETW) -TWIN32 -Pi386 -WG
-
-win64: clean
-	$(FPC) $(UNIT) $(INCLUDE) \
-	-Fu../../../lib/jpeg/x86_64-win64 \
-	-Fu../../../lib/msvcrt/x86_64 \
-	-Fu../../../lib/ogg/x86_64-win64 \
-	-Fu../../../lib/theora/x86_64-win64 \
-	-Fu../../../lib/zlib/x86_64-win64 \
-	-Fu../../../lib/zip/x86_64-win64 \
-	-FE$(OUTPUT)x86_64-win64/ -FU$(TMP) $(FLAGS) -o$(TARGETW) -TWIN64 -Px86_64 -WG
-
-macosx: clean
-	rm -Rf $(BUNDLE)
-	mkdir {$(BUNDLE),$(BUNDLE)/{Contents,Contents/{MacOS,Resources,Frameworks}}}
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM) -TDARWIN -Pi386 -k"-macosx_version_min" -k"10.4"
-	mv $(OUTPUT)$(TARGETM) $(BUNDLE)/Contents/MacOS/
-	sh macosx_postbuild.sh
-
-macosx_uni: clean
-	rm -Rf $(BUNDLE)
-	mkdir {$(BUNDLE),$(BUNDLE)/{Contents,Contents/{MacOS,Resources,Frameworks}}}
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM)-386 -TDARWIN -Pi386 -k"-macosx_version_min" -k"10.4"
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBSPPC) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM)-ppc -TDARWIN -Ppowerpc -k"-macosx_version_min" -k"10.4"
-	lipo -create $(OUTPUT)$(TARGETM)-ppc $(OUTPUT)$(TARGETM)-386 -output $(BUNDLE)/Contents/MacOS/$(TARGETM)
-	rm $(OUTPUT)$(TARGETM)-386 $(OUTPUT)$(TARGETM)-ppc
-	sh macosx_postbuild.sh
-
-clean:
-	rm -f *.*~
-	rm -f $(TMP)*.*

+ 0 - 155
Zengl_SRC/demos/FreePascal/02 - Resources/demo02.pas

@@ -1,155 +0,0 @@
-program demo02;
-
-{$I zglCustomConfig.cfg}
-
-uses
-  {$IFDEF UNIX}
-  cthreads,
-  {$ENDIF}
-  Classes,
-
-  {$IFDEF USE_ZENGL_STATIC}
-  zgl_types,
-  zgl_main,
-  zgl_screen,
-  zgl_window,
-  zgl_timers,
-  // RU: Модули для работы с файлами, файлами в памяти и zip-архивами.
-  // EN: Units for using files, files in memory and zip archives.
-  zgl_file,
-  zgl_memory,
-  // RU: Модуль для поддержки многопоточной загрузки ресурсов.
-  // EN: Unit for multithreaded resource loading.
-  zgl_resources,
-  // RU: Модуль для работы со шрифтами.
-  // EN: Unit for using fonts.
-  zgl_font,
-  // RU: Модули для работы с текстурами. zgl_textures является основным, следующие за ним предоставляют поддержку определённых форматов.
-  // EN: Units for using textures. zgl_textures is a main unit, next units provide support of different formats.
-  zgl_textures,
-  zgl_textures_tga, // TGA
-  zgl_textures_jpg, // JPG
-  zgl_textures_png, // PNG
-  // RU: Звуковая подсистема реализована в модулях ниже. Подход такой же как и с текстурами - основной модуль и модули поддержки форматов.
-  // EN: Sound subsystem implemented in units below. Idea the same as for textures - there is a main unit and units for support different formats.
-  zgl_sound,
-  zgl_sound_wav, // WAV
-  zgl_sound_ogg, // OGG
-
-  zgl_primitives_2d,
-  zgl_text,
-  zgl_sprite_2d,
-  zgl_utils
-  {$ELSE}
-  zglHeader
-  {$ENDIF}
-  ;
-
-var
-  dirRes : UTF8String {$IFNDEF MACOSX} = '../data/' {$ENDIF};
-
-  memory : zglTMemory;
-
-  // RU: У каждого ресурса есть свой определённый тип, который является указателем на структуру.
-  // EN: Every resource has its own typem which is just a pointer to structure.
-  fntMain  : zglPFont;
-  //
-  texLogo  : zglPTexture;
-  texTest  : zglPTexture;
-  //
-  sndClick : zglPSound;
-  sndMusic : zglPSound;
-
-procedure TextureCalcEffect( pData : PByteArray; Width, Height : Word );
-begin
-  u_Sleep( 1000 );
-end;
-
-procedure Init;
-  var
-    i         : Integer;
-    memStream : TMemoryStream;
-begin
-  // RU: Более детальное рассмотрение параметров функций загрузки ресурсов есть в соответствующих примерах, тут же показана лишь основная суть.
-  // EN: Description with more details about parameters of functions can be found in other demos, here is only main idea shown.
-
-  snd_Init();
-
-  // RU: Функции загрузки ресурсов именуются в формате "$(префикс)_LoadFrom$(откуда)", где "$(префикс)" может быть tex, snd, font и т.д., а "$(откуда)" - File и Memory.
-  // EN: Functions for loading resources named in format "$(prefix)_LoadFrom$(where)", where "$(prefix)" can be tex, snd, font and so on, and $(where) - File and Memory.
-  fntMain  := font_LoadFromFile( dirRes + 'font.zfi' );
-  texLogo  := tex_LoadFromFile( dirRes + 'zengl.png' );
-  sndClick := snd_LoadFromFile( dirRes + 'click.wav' );
-
-  // RU: Многопоточная загрузка ресурсов позволяет составить очередь и не ожидать загрузки выполняя другие операции, например рендеринг какой-то анимации.
-  //     Процесс загрузки в многопоточном режиме практически ничем не отличается от обычного за исключением вызова функций старта и окончания очереди.
-  // EN: Multithreaded resource loading allows to make queue and do something while loading, e.g. rendering some animation.
-  //     Loading resources in multithreaded mode has almost no difference with standard mode, except using functions for beginning and ending queues.
-  res_BeginQueue( 0 );
-  // RU: Между res_BeginQueue и res_EndQueue могут использоваться все обычные функции загрузки ресурсов.
-  //     Для задержки экрана загрузки ресурсы будут загружены несколько раз, а для текстуры будет использована обработка с задержкой.
-  // EN: All standard functions for loading resources can be used between res_BeginQueue and res_EndQueue.
-  //     Just for holding loading screen resources will be loaded multiple times, and texture will be post-processed with delay.
-  zgl_Reg( TEX_CURRENT_EFFECT, @TextureCalcEffect );
-  for i := 0 to 3 do
-    begin
-      texTest  := tex_LoadFromFile( dirRes + 'back01.jpg', TEX_NO_COLORKEY, TEX_DEFAULT_2D or TEX_CUSTOM_EFFECT );
-      sndMusic := snd_LoadFromFile( dirRes + 'music.ogg' );
-    end;
-  res_EndQueue();
-
-  // RU: Загружая ресурсы из файлов в памяти необходимо дополнительно указывать их расширение.
-  //     В качестве примера будет использован TMemoryStream вместо mem_LoadFromFile/mem_Free что бы показать как устроен zglTMemory.
-  // EN: Loading resources from files in memory need additional set their extension.
-  //     As an example TMemoryStream will be used instead of mem_LoadFromFile/mem_Free, just for showing how zglTMemory works.
-  memStream := TMemoryStream.Create();
-  {$IFNDEF MACOSX}
-  memStream.LoadFromFile( dirRes + 'back01.jpg' );
-  {$ELSE}
-  memStream.LoadFromFile( PAnsiChar( zgl_Get( DIRECTORY_APPLICATION ) ) + 'Contents/Resources/back01.jpg' );
-  {$ENDIF}
-  memory.Position := memStream.Position;
-  memory.Memory   := memStream.Memory;
-  memory.Size     := memStream.Size;
-  texTest := tex_LoadFromMemory( memory, 'JPG' );
-  memStream.Free();
-
-  // RU: Для загрузки ресурсов из zip-архива необходимо его сначала "открыть" и потом "закрыть" :) Для этого существуют функции file_OpenArchive и file_CloseArchive.
-  // EN: For loading resources from zip-archive this archive should be "opened" first and then "closed" :) There are functions file_OpenArchive and file_CloseArchive for this.
-  file_OpenArchive( dirRes + 'zengl.zip' );
-  texLogo := tex_LoadFromFile( 'zengl.png' );
-  file_CloseArchive();
-end;
-
-procedure Draw;
-begin
-  // RU: К ресурсам, которые загружаются в многопоточном режиме, можно обращаться только после завершения загрузки. Код ниже рисует экран загрузки если ресурсы ещё не загрузились.
-  // EN: Resources which are loading in multithreaded mode can be used only after finishing the loading process. Code below renders loading screen if resources are not loaded yet.
-  if res_GetCompleted() < 100 Then
-    begin
-      ssprite2d_Draw( texLogo, ( 800 - texLogo.Width ) / 2, ( 600 - texLogo.Height ) / 2, texLogo.Width, texLogo.Height, 0 );
-      text_Draw( fntMain, 400, 300 + texLogo.Height / 4, 'Loading... ' + u_IntToStr( res_GetCompleted() ) + '%', TEXT_HALIGN_CENTER );
-      exit;
-    end;
-
-  ssprite2d_Draw( texTest, 0, 0, 800, 600, 0 );
-  text_Draw( fntMain, 0, 0, 'FPS: ' + u_IntToStr( zgl_Get( RENDER_FPS ) ) );
-  text_Draw( fntMain, 0, 16, 'VRAM Used: ' + u_FloatToStr( zgl_Get( RENDER_VRAM_USED ) / 1024 / 1024 ) + 'Mb' );
-end;
-
-Begin
-  {$IFNDEF USE_ZENGL_STATIC}
-  if not zglLoad( libZenGL ) Then exit;
-  {$ENDIF}
-
-  zgl_Reg( SYS_LOAD, @Init );
-  zgl_Reg( SYS_DRAW, @Draw );
-
-  wnd_SetCaption( '02 - Resources' );
-
-  wnd_ShowCursor( TRUE );
-
-  scr_SetOptions( 800, 600, REFRESH_MAXIMUM, FALSE, FALSE );
-
-  zgl_Init();
-End.

+ 0 - 24
Zengl_SRC/demos/FreePascal/02 - Resources/demo02_macosx.plist

@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-  <key>CFBundleExecutable</key>
-  <string>demo02</string>
-  <key>CFBundleIconFile</key>
-  <string>demo02</string>
-  <key>CFBundleName</key>
-  <string>demo02</string>
-  <key>CFBundleIdentifier</key>
-  <string>zengl.demo02</string>
-  <key>CFBundlePackageType</key>
-  <string>APPL</string>
-  <key>CFBundleSignature</key>
-  <string>demo</string>
-  <key>CFBundleShortVersionString</key>
-  <string>1.0</string>
-  <key>CFBundleVersion</key>
-  <string>1</string>
-  <key>CSResourcesFileMapped</key>
-  <true/>
-</dict>
-</plist>

+ 0 - 10
Zengl_SRC/demos/FreePascal/02 - Resources/macosx_postbuild.sh

@@ -1,10 +0,0 @@
-# copy resources
-cp ../../../bin/data/font* ../../../bin/demo02.app/Contents/Resources/
-cp ../../../bin/data/zengl.png ../../../bin/demo02.app/Contents/Resources/
-cp ../../../bin/data/click.wav ../../../bin/demo02.app/Contents/Resources/
-cp ../../../bin/data/back01.jpg ../../../bin/demo02.app/Contents/Resources/
-cp ../../../bin/data/music.ogg ../../../bin/demo02.app/Contents/Resources/
-cp ../../../bin/data/zengl.zip ../../../bin/demo02.app/Contents/Resources/
-# make Info.plist and copy icon
-cp -f demo02_macosx.plist ../../../bin/demo02.app/Contents/Info.plist
-cp ../../../bin/data/zengl.icns ../../../bin/demo02.app/Contents/Resources/demo02.icns

+ 0 - 83
Zengl_SRC/demos/FreePascal/03 - Input/Makefile

@@ -1,83 +0,0 @@
-# Get current platform
-ifeq ($(shell uname -m), x86_64)
-  ARCH  = x86_64
-else
-  ARCH  = i386
-endif
-
-# Get current OS
-ifeq ($(shell uname), Linux)
-  OS    = linux
-else ifeq ($(shell uname), Darwin)
-  OS    = darwin
-  ARCH  = i386
-endif
-
-# Variables
-FPC     = fpc
-FLAGS   = -O3 -XsX -CX -Sd
-INCLUDE = -Fu../../../headers -Fi../../../headers -Fu../../../extra -Fu../../../src
-LIBS    = -Fu../../../lib/jpeg/$(ARCH)-$(OS) -Fu../../../lib/ogg/$(ARCH)-$(OS) -Fu../../../lib/theora/$(ARCH)-$(OS) -Fu../../../lib/zlib/$(ARCH)-$(OS) -Fu../../../lib/zip/$(ARCH)-$(OS)
-LIBSPPC = -Fu../../../lib/jpeg/powerpc-$(OS) -Fu../../../lib/ogg/powerpc-$(OS) -Fu../../../lib/theora/powerpc-$(OS) -Fu../../../lib/zlib/powerpc-$(OS) -Fu../../../lib/zip/powerpc-$(OS)
-OUTPUT  = ../../../bin/
-TMP     = ../tmp/
-UNIT    = demo03.pas
-TARGET  = demo03
-TARGETW = demo03.exe
-TARGETM = demo03
-BUNDLE  = $(OUTPUT)$(TARGETM).app
-
-# Targets
-all: clean
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT)$(ARCH)-$(OS)/ -FU$(TMP) $(FLAGS) -o$(TARGET) -TLINUX
-	strip $(OUTPUT)$(ARCH)-$(OS)/$(TARGET) --strip-unneeded -R .comment -R .note
-
-linux32: clean
-	$(FPC) $(UNIT) $(INCLUDE) \
-	-Fu../../../lib/jpeg/i386-linux \
-	-Fu../../../lib/ogg/i386-linux \
-	-Fu../../../lib/theora/i386-linux \
-	-Fu../../../lib/zlib/i386-linux \
-	-Fu../../../lib/zip/i386-linux \
-	-FE$(OUTPUT)i386-linux/ -FU$(TMP) $(FLAGS) -o$(TARGET) -TLINUX -Pi386 -Xd
-	strip $(OUTPUT)i386-linux/$(TARGET) --strip-unneeded -R .comment -R .note
-
-win32: clean
-	$(FPC) $(UNIT) $(INCLUDE) \
-	-Fu../../../lib/jpeg/i386-win32 \
-	-Fu../../../lib/msvcrt/i386 \
-	-Fu../../../lib/ogg/i386-win32 \
-	-Fu../../../lib/theora/i386-win32 \
-	-Fu../../../lib/zlib/i386-win32 \
-	-Fu../../../lib/zip/i386-win32 \
-	-FE$(OUTPUT)i386-win32/ -FU$(TMP) $(FLAGS) -o$(TARGETW) -TWIN32 -Pi386 -WG
-
-win64: clean
-	$(FPC) $(UNIT) $(INCLUDE) \
-	-Fu../../../lib/jpeg/x86_64-win64 \
-	-Fu../../../lib/msvcrt/x86_64 \
-	-Fu../../../lib/ogg/x86_64-win64 \
-	-Fu../../../lib/theora/x86_64-win64 \
-	-Fu../../../lib/zlib/x86_64-win64 \
-	-Fu../../../lib/zip/x86_64-win64 \
-	-FE$(OUTPUT)x86_64-win64/ -FU$(TMP) $(FLAGS) -o$(TARGETW) -TWIN64 -Px86_64 -WG
-
-macosx: clean
-	rm -Rf $(BUNDLE)
-	mkdir {$(BUNDLE),$(BUNDLE)/{Contents,Contents/{MacOS,Resources,Frameworks}}}
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM) -TDARWIN -Pi386 -k"-macosx_version_min" -k"10.4"
-	mv $(OUTPUT)$(TARGETM) $(BUNDLE)/Contents/MacOS/
-	sh macosx_postbuild.sh
-
-macosx_uni: clean
-	rm -Rf $(BUNDLE)
-	mkdir {$(BUNDLE),$(BUNDLE)/{Contents,Contents/{MacOS,Resources,Frameworks}}}
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM)-386 -TDARWIN -Pi386 -k"-macosx_version_min" -k"10.4"
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBSPPC) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM)-ppc -TDARWIN -Ppowerpc -k"-macosx_version_min" -k"10.4"
-	lipo -create $(OUTPUT)$(TARGETM)-ppc $(OUTPUT)$(TARGETM)-386 -output $(BUNDLE)/Contents/MacOS/$(TARGETM)
-	rm $(OUTPUT)$(TARGETM)-386 $(OUTPUT)$(TARGETM)-ppc
-	sh macosx_postbuild.sh
-
-clean:
-	rm -f *.*~
-	rm -f $(TMP)*.*

+ 0 - 161
Zengl_SRC/demos/FreePascal/03 - Input/demo03.pas

@@ -1,161 +0,0 @@
-program demo03;
-
-{$I zglCustomConfig.cfg}
-
-uses
-  {$IFDEF USE_ZENGL_STATIC}
-  zgl_main,
-  zgl_screen,
-  zgl_window,
-  zgl_timers,
-  zgl_mouse,
-  zgl_keyboard,
-  zgl_joystick,
-  zgl_primitives_2d,
-  zgl_font,
-  zgl_text,
-  zgl_textures_png,
-  zgl_math_2d,
-  zgl_collision_2d,
-  zgl_utils
-  {$ELSE}
-  zglHeader
-  {$ENDIF}
-  ;
-
-var
-  dirRes  : UTF8String {$IFNDEF MACOSX} = '../data/' {$ENDIF};
-
-  fntMain   : zglPFont;
-
-  joyCount   : Integer;
-  userInput  : UTF8String;
-  trackInput : Boolean;
-  inputRect  : zglTRect;
-  lineAlpha  : Byte;
-
-procedure Init;
-begin
-  fntMain := font_LoadFromFile( dirRes + 'font.zfi' );
-
-  inputRect.X := 400 - 192;
-  inputRect.Y := 300 - 100 - 32;
-  inputRect.W := 384;
-  inputRect.H := 96;
-
-  // RU: Инициализируем обработку ввода джойстиков и получаем количество подключенных джойстиков.
-  // EN: Initialize processing joystick input and get count of plugged joysticks.
-  joyCount := joy_Init();
-end;
-
-procedure Draw;
-  var
-    w : Single;
-begin
-  text_Draw( fntMain, 0, 0, 'Escape - Exit' );
-
-  // RU: Координаты мыши можно получить при помощи функций mouse_X и mouse_Y.
-  // EN: Mouse coordinates can be got using functions mouse_X and mouse_Y.
-  text_Draw( fntMain, 0, 16, 'Mouse X, Y: ' + u_IntToStr( mouse_X() ) + '; ' + u_IntToStr( mouse_Y() ) );
-
-  // RU: Выводим введённый пользователем текст.
-  // EN: Show the inputted text.
-  pr2d_Rect( inputRect.X, inputRect.Y, inputRect.W, inputRect.H, $FFFFFF, 255 );
-  if trackInput Then
-    begin
-      text_Draw( fntMain, 400, 300 - 100, 'Press Enter to stop track text input:', TEXT_HALIGN_CENTER );
-      w := text_GetWidth( fntMain, userInput );
-      pr2d_Rect( 400 + w / 2 + 2, 300 - 70, 10, 20, $FFFFFF, lineAlpha, PR2D_FILL );
-    end else
-      text_Draw( fntMain, 400, 300 - 100, 'Click here to enter text(maximum - 24 symbols):', TEXT_HALIGN_CENTER );
-  text_Draw( fntMain, 400, 300 - 70, userInput, TEXT_HALIGN_CENTER );
-
-
-  // RU: Вывод состояния осей и кнопок первого джойстика в системе.
-  // EN: Show the state of axes and buttons of first joystick in the system.
-  text_Draw( fntMain, 400, 360, 'JOYSTICK ( Found: ' + u_IntToStr( joyCount ) + ' )', TEXT_HALIGN_CENTER );
-
-  text_Draw( fntMain, 100, 400, 'Axis X: ' + u_FloatToStr( joy_AxisPos( 0, JOY_AXIS_X ) ) );
-  text_Draw( fntMain, 100, 420, 'Axis Y: ' + u_FloatToStr( joy_AxisPos( 0, JOY_AXIS_Y ) ) );
-  text_Draw( fntMain, 100, 440, 'Axis Z: ' + u_FloatToStr( joy_AxisPos( 0, JOY_AXIS_Z ) ) );
-  text_Draw( fntMain, 100, 460, 'Axis R: ' + u_FloatToStr( joy_AxisPos( 0, JOY_AXIS_R ) ) );
-  text_Draw( fntMain, 100, 480, 'Axis U: ' + u_FloatToStr( joy_AxisPos( 0, JOY_AXIS_U ) ) );
-  text_Draw( fntMain, 100, 500, 'Axis V: ' + u_FloatToStr( joy_AxisPos( 0, JOY_AXIS_V ) ) );
-  text_Draw( fntMain, 100, 520, 'POVX: ' + u_FloatToStr( joy_AxisPos( 0, JOY_POVX ) ) );
-  text_Draw( fntMain, 100, 540, 'POVY: ' + u_FloatToStr( joy_AxisPos( 0, JOY_POVY ) ) );
-
-  text_Draw( fntMain, 400, 400, 'Button1: ' + u_BoolToStr( joy_Down( 0, 0 ) ) );
-  text_Draw( fntMain, 400, 420, 'Button2: ' + u_BoolToStr( joy_Down( 0, 1 ) ) );
-  text_Draw( fntMain, 400, 440, 'Button3: ' + u_BoolToStr( joy_Down( 0, 2 ) ) );
-  text_Draw( fntMain, 400, 460, 'Button4: ' + u_BoolToStr( joy_Down( 0, 3 ) ) );
-  text_Draw( fntMain, 400, 480, 'Button5: ' + u_BoolToStr( joy_Down( 0, 4 ) ) );
-  text_Draw( fntMain, 400, 500, 'Button6: ' + u_BoolToStr( joy_Down( 0, 5 ) ) );
-  text_Draw( fntMain, 400, 520, 'Button7: ' + u_BoolToStr( joy_Down( 0, 6 ) ) );
-  text_Draw( fntMain, 400, 540, 'Button8: ' + u_BoolToStr( joy_Down( 0, 7 ) ) );
-  text_Draw( fntMain, 550, 400, 'Button9: ' + u_BoolToStr( joy_Down( 0, 8 ) ) );
-  text_Draw( fntMain, 550, 420, 'Button10: ' + u_BoolToStr( joy_Down( 0, 9 ) ) );
-  text_Draw( fntMain, 550, 440, 'Button11: ' + u_BoolToStr( joy_Down( 0, 10 ) ) );
-  text_Draw( fntMain, 550, 460, 'Button12: ' + u_BoolToStr( joy_Down( 0, 11 ) ) );
-  text_Draw( fntMain, 550, 480, 'Button13: ' + u_BoolToStr( joy_Down( 0, 12 ) ) );
-  text_Draw( fntMain, 550, 500, 'Button14: ' + u_BoolToStr( joy_Down( 0, 13 ) ) );
-  text_Draw( fntMain, 550, 520, 'Button15: ' + u_BoolToStr( joy_Down( 0, 14 ) ) );
-  text_Draw( fntMain, 550, 540, 'Button16: ' + u_BoolToStr( joy_Down( 0, 15 ) ) );
-end;
-
-procedure Timer;
-begin
-  if lineAlpha > 5 Then
-    DEC( lineAlpha, 10 )
-  else
-    lineAlpha := 255;
-
-  // RU: Проверить нажата ли левая кнопка мыши в пределах inputRect и начать отслеживать ввод текста.
-  // EN: Check if left mouse button was pressed inside inputRect and start to track text input.
-  if mouse_Click( M_BLEFT ) and col2d_PointInRect( mouse_X(), mouse_Y(), inputRect ) Then
-    begin
-      trackInput := TRUE;
-      key_BeginReadText( userInput, 24 );
-    end;
-
-  // RU: Если был нажат Enter прекращаем отслеживать ввод текста.
-  // EN: Finish to track text input if Enter was pressed.
-  if key_Press( K_ENTER ) Then
-    begin
-      trackInput := FALSE;
-      key_EndReadText();
-    end;
-
-  // RU: Получаем введённый пользователем текст.
-  // EN: Get inputted by user text.
-  if trackInput Then
-    userInput := key_GetText();
-
-  // RU: По нажатию Escape завершить приложение.
-  // EN: If Escape was pressed - shutdown the application.
-  if key_Press( K_ESCAPE ) Then zgl_Exit();
-
-  // RU: Обязательно очищаем состояния всех подсистем ввода.
-  // EN: Necessarily clear all the states of input subsystems.
-  mouse_ClearState();
-  key_ClearState();
-  joy_ClearState();
-end;
-
-Begin
-  {$IFNDEF USE_ZENGL_STATIC}
-  if not zglLoad( libZenGL ) Then exit;
-  {$ENDIF}
-
-  timer_Add( @Timer, 16 );
-
-  zgl_Reg( SYS_LOAD, @Init );
-  zgl_Reg( SYS_DRAW, @Draw );
-
-  wnd_SetCaption( '03 - Input' );
-
-  wnd_ShowCursor( TRUE );
-
-  scr_SetOptions( 800, 600, REFRESH_MAXIMUM, FALSE, FALSE );
-
-  zgl_Init();
-End.

+ 0 - 24
Zengl_SRC/demos/FreePascal/03 - Input/demo03_macosx.plist

@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-  <key>CFBundleExecutable</key>
-  <string>demo03</string>
-  <key>CFBundleIconFile</key>
-  <string>demo03</string>
-  <key>CFBundleName</key>
-  <string>demo03</string>
-  <key>CFBundleIdentifier</key>
-  <string>zengl.demo03</string>
-  <key>CFBundlePackageType</key>
-  <string>APPL</string>
-  <key>CFBundleSignature</key>
-  <string>demo</string>
-  <key>CFBundleShortVersionString</key>
-  <string>1.0</string>
-  <key>CFBundleVersion</key>
-  <string>1</string>
-  <key>CSResourcesFileMapped</key>
-  <true/>
-</dict>
-</plist>

+ 0 - 5
Zengl_SRC/demos/FreePascal/03 - Input/macosx_postbuild.sh

@@ -1,5 +0,0 @@
-# copy resources
-cp ../../../bin/data/font* ../../../bin/demo03.app/Contents/Resources/
-# make Info.plist and copy icon
-cp -f demo03_macosx.plist ../../../bin/demo03.app/Contents/Info.plist
-cp ../../../bin/data/zengl.icns ../../../bin/demo03.app/Contents/Resources/demo03.icns

+ 0 - 83
Zengl_SRC/demos/FreePascal/04 - Screen Settings/Makefile

@@ -1,83 +0,0 @@
-# Get current platform
-ifeq ($(shell uname -m), x86_64)
-  ARCH  = x86_64
-else
-  ARCH  = i386
-endif
-
-# Get current OS
-ifeq ($(shell uname), Linux)
-  OS    = linux
-else ifeq ($(shell uname), Darwin)
-  OS    = darwin
-  ARCH  = i386
-endif
-
-# Variables
-FPC     = fpc
-FLAGS   = -O3 -XsX -CX -Sd
-INCLUDE = -Fu../../../headers -Fi../../../headers -Fu../../../extra -Fu../../../src
-LIBS    = -Fu../../../lib/jpeg/$(ARCH)-$(OS) -Fu../../../lib/ogg/$(ARCH)-$(OS) -Fu../../../lib/theora/$(ARCH)-$(OS) -Fu../../../lib/zlib/$(ARCH)-$(OS) -Fu../../../lib/zip/$(ARCH)-$(OS)
-LIBSPPC = -Fu../../../lib/jpeg/powerpc-$(OS) -Fu../../../lib/ogg/powerpc-$(OS) -Fu../../../lib/theora/powerpc-$(OS) -Fu../../../lib/zlib/powerpc-$(OS) -Fu../../../lib/zip/powerpc-$(OS)
-OUTPUT  = ../../../bin/
-TMP     = ../tmp/
-UNIT    = demo04.pas
-TARGET  = demo04
-TARGETW = demo04.exe
-TARGETM = demo04
-BUNDLE  = $(OUTPUT)$(TARGETM).app
-
-# Targets
-all: clean
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT)$(ARCH)-$(OS)/ -FU$(TMP) $(FLAGS) -o$(TARGET) -TLINUX
-	strip $(OUTPUT)$(ARCH)-$(OS)/$(TARGET) --strip-unneeded -R .comment -R .note
-
-linux32: clean
-	$(FPC) $(UNIT) $(INCLUDE) \
-	-Fu../../../lib/jpeg/i386-linux \
-	-Fu../../../lib/ogg/i386-linux \
-	-Fu../../../lib/theora/i386-linux \
-	-Fu../../../lib/zlib/i386-linux \
-	-Fu../../../lib/zip/i386-linux \
-	-FE$(OUTPUT)i386-linux/ -FU$(TMP) $(FLAGS) -o$(TARGET) -TLINUX -Pi386 -Xd
-	strip $(OUTPUT)i386-linux/$(TARGET) --strip-unneeded -R .comment -R .note
-
-win32: clean
-	$(FPC) $(UNIT) $(INCLUDE) \
-	-Fu../../../lib/jpeg/i386-win32 \
-	-Fu../../../lib/msvcrt/i386 \
-	-Fu../../../lib/ogg/i386-win32 \
-	-Fu../../../lib/theora/i386-win32 \
-	-Fu../../../lib/zlib/i386-win32 \
-	-Fu../../../lib/zip/i386-win32 \
-	-FE$(OUTPUT)i386-win32/ -FU$(TMP) $(FLAGS) -o$(TARGETW) -TWIN32 -Pi386 -WG
-
-win64: clean
-	$(FPC) $(UNIT) $(INCLUDE) \
-	-Fu../../../lib/jpeg/x86_64-win64 \
-	-Fu../../../lib/msvcrt/x86_64 \
-	-Fu../../../lib/ogg/x86_64-win64 \
-	-Fu../../../lib/theora/x86_64-win64 \
-	-Fu../../../lib/zlib/x86_64-win64 \
-	-Fu../../../lib/zip/x86_64-win64 \
-	-FE$(OUTPUT)x86_64-win64/ -FU$(TMP) $(FLAGS) -o$(TARGETW) -TWIN64 -Px86_64 -WG
-
-macosx: clean
-	rm -Rf $(BUNDLE)
-	mkdir {$(BUNDLE),$(BUNDLE)/{Contents,Contents/{MacOS,Resources,Frameworks}}}
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM) -TDARWIN -Pi386 -k"-macosx_version_min" -k"10.4"
-	mv $(OUTPUT)$(TARGETM) $(BUNDLE)/Contents/MacOS/
-	sh macosx_postbuild.sh
-
-macosx_uni: clean
-	rm -Rf $(BUNDLE)
-	mkdir {$(BUNDLE),$(BUNDLE)/{Contents,Contents/{MacOS,Resources,Frameworks}}}
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM)-386 -TDARWIN -Pi386 -k"-macosx_version_min" -k"10.4"
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBSPPC) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM)-ppc -TDARWIN -Ppowerpc -k"-macosx_version_min" -k"10.4"
-	lipo -create $(OUTPUT)$(TARGETM)-ppc $(OUTPUT)$(TARGETM)-386 -output $(BUNDLE)/Contents/MacOS/$(TARGETM)
-	rm $(OUTPUT)$(TARGETM)-386 $(OUTPUT)$(TARGETM)-ppc
-	sh macosx_postbuild.sh
-
-clean:
-	rm -f *.*~
-	rm -f $(TMP)*.*

+ 0 - 119
Zengl_SRC/demos/FreePascal/04 - Screen Settings/demo04.pas

@@ -1,119 +0,0 @@
-program demo04;
-
-{$I zglCustomConfig.cfg}
-
-uses
-  {$IFDEF USE_ZENGL_STATIC}
-  zgl_main,
-  zgl_screen,
-  zgl_window,
-  zgl_timers,
-  zgl_keyboard,
-  zgl_font,
-  zgl_text,
-  zgl_sprite_2d,
-  zgl_textures,
-  zgl_textures_png,
-  zgl_textures_jpg,
-  zgl_utils
-  {$ELSE}
-  zglHeader
-  {$ENDIF}
-  ;
-
-var
-  dirRes  : UTF8String {$IFNDEF MACOSX} = '../data/' {$ENDIF};
-
-  fntMain : zglPFont;
-  texBack : zglPTexture;
-
-procedure Init;
-begin
-  fntMain := font_LoadFromFile( dirRes + 'font.zfi' );
-  texBack := tex_LoadFromFile( dirRes + 'back03.jpg' );
-end;
-
-procedure Draw;
-begin
-  ssprite2d_Draw( texBack, 0, 0, 800, 600, 0 );
-
-  text_Draw( fntMain, 0, 0, 'Escape - Exit' );
-  text_Draw( fntMain, 0, fntMain.MaxHeight * 1, 'F1 - Fullscreen with desktop resolution and correction of aspect' );
-  text_Draw( fntMain, 0, fntMain.MaxHeight * 2, 'F2 - Fullscreen with desktop resolution and simple scaling' );
-  text_Draw( fntMain, 0, fntMain.MaxHeight * 3, 'F3 - Fullscreen with resolution 800x600' );
-  text_Draw( fntMain, 0, fntMain.MaxHeight * 4, 'F4 - Windowed mode' );
-end;
-
-procedure Timer;
-begin
-  // RU: Рекомендуемый к использованию полноэкранный режим. Основная идея - переключиться в полноэкранный режим используя текущее разрешение рабочего стола пользователя, но при этом
-  //     сохранить пропорции изображения. Это позволит избежать некоторых проблем с LCD.
-  // EN: Recommended fullscreen mode for using. Main idea is switching to fullscreen mode using current desktop resolution of user and saving the aspect. This will avoid some problems
-  //     with LCD's.
-  if key_Press( K_F1 ) Then
-    begin
-      // RU: Включить коррекцию пропорций.
-      // EN: Enable aspect correction.
-      zgl_Enable( CORRECT_RESOLUTION );
-      // RU: Установить разрешение под которое изначально написано приложение.
-      // EN: Set resolution for what application was wrote.
-      scr_CorrectResolution( 800, 600 );
-      scr_SetOptions( zgl_Get( DESKTOP_WIDTH ), zgl_Get( DESKTOP_HEIGHT ), REFRESH_MAXIMUM, TRUE, FALSE );
-    end;
-
-  // RU: Схожий режим с предыдущим за одним исключением - отключена коррекция по ширине и высоте. Например, отключение коррекции по высоте может пригодиться при соотошении
-  //     сторон 5:4(разрешение экрана 1280x1024), т.к. можно заполнить всю область экрана без существенных искажений.
-  // EN: Similar mode to previous one with one exception - disabled correction for width and height. E.g. this can be useful for aspect 5:4(resolution 1280x1024),
-  //     because screen can be filled without significant distortion.
-  if key_Press( K_F2 ) Then
-    begin
-      zgl_Enable( CORRECT_RESOLUTION );
-      zgl_Disable( CORRECT_WIDTH );
-      zgl_Disable( CORRECT_HEIGHT );
-      scr_CorrectResolution( 800, 600 );
-      scr_SetOptions( zgl_Get( DESKTOP_WIDTH ), zgl_Get( DESKTOP_HEIGHT ), REFRESH_MAXIMUM, TRUE, FALSE );
-    end;
-
-  // RU: Переключение в полноэкранный режим используя указанные размеры. В наше время такой подход имеет два больших недостатка на LCD:
-  //     - если указываемое разрешение не является родным для LCD, то без специальных настройках в драйверах пользователь будет наблюдать пикселизацию
-  //     - на широкоэкранных мониторах картинка с соотношением 4:3 будет смотрется растянутой
-  // EN: Switching to fullscreen mode using set values. Nowadays this method two main problems with LCD:
-  //     - if used resolution is not main for LCD, then without special options in drivers user will see pixelization
-  //     - picture with aspect 4:3 will be stretched on widescreen monitors
-  if key_Press( K_F3 ) Then
-    begin
-      zgl_Disable( CORRECT_RESOLUTION );
-      scr_SetOptions( 800, 600, REFRESH_MAXIMUM, TRUE, FALSE );
-    end;
-
-  // RU: Оконный режим.
-  // EN: Windowed mode.
-  if key_Press( K_F4 ) Then
-    begin
-      zgl_Disable( CORRECT_RESOLUTION );
-      scr_SetOptions( 800, 600, REFRESH_MAXIMUM, FALSE, FALSE );
-    end;
-
-  if key_Press( K_ESCAPE ) Then zgl_Exit();
-
-  key_ClearState();
-end;
-
-Begin
-  {$IFNDEF USE_ZENGL_STATIC}
-  if not zglLoad( libZenGL ) Then exit;
-  {$ENDIF}
-
-  timer_Add( @Timer, 16 );
-
-  zgl_Reg( SYS_LOAD, @Init );
-  zgl_Reg( SYS_DRAW, @Draw );
-
-  wnd_SetCaption( '04 - Screen Settings' );
-
-  wnd_ShowCursor( TRUE );
-
-  scr_SetOptions( 800, 600, REFRESH_MAXIMUM, FALSE, FALSE );
-
-  zgl_Init();
-End.

+ 0 - 24
Zengl_SRC/demos/FreePascal/04 - Screen Settings/demo04_macosx.plist

@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-  <key>CFBundleExecutable</key>
-  <string>demo04</string>
-  <key>CFBundleIconFile</key>
-  <string>demo04</string>
-  <key>CFBundleName</key>
-  <string>demo04</string>
-  <key>CFBundleIdentifier</key>
-  <string>zengl.demo04</string>
-  <key>CFBundlePackageType</key>
-  <string>APPL</string>
-  <key>CFBundleSignature</key>
-  <string>demo</string>
-  <key>CFBundleShortVersionString</key>
-  <string>1.0</string>
-  <key>CFBundleVersion</key>
-  <string>1</string>
-  <key>CSResourcesFileMapped</key>
-  <true/>
-</dict>
-</plist>

+ 0 - 6
Zengl_SRC/demos/FreePascal/04 - Screen Settings/macosx_postbuild.sh

@@ -1,6 +0,0 @@
-# copy resources
-cp ../../../bin/data/font* ../../../bin/demo04.app/Contents/Resources/
-cp ../../../bin/data/back03.jpg ../../../bin/demo04.app/Contents/Resources/
-# make Info.plist and copy icon
-cp -f demo04_macosx.plist ../../../bin/demo04.app/Contents/Info.plist
-cp ../../../bin/data/zengl.icns ../../../bin/demo04.app/Contents/Resources/demo04.icns

+ 0 - 83
Zengl_SRC/demos/FreePascal/05 - Primitives/Makefile

@@ -1,83 +0,0 @@
-# Get current platform
-ifeq ($(shell uname -m), x86_64)
-  ARCH  = x86_64
-else
-  ARCH  = i386
-endif
-
-# Get current OS
-ifeq ($(shell uname), Linux)
-  OS    = linux
-else ifeq ($(shell uname), Darwin)
-  OS    = darwin
-  ARCH  = i386
-endif
-
-# Variables
-FPC     = fpc
-FLAGS   = -O3 -XsX -CX -Sd
-INCLUDE = -Fu../../../headers -Fi../../../headers -Fu../../../extra -Fu../../../src
-LIBS    = -Fu../../../lib/jpeg/$(ARCH)-$(OS) -Fu../../../lib/ogg/$(ARCH)-$(OS) -Fu../../../lib/theora/$(ARCH)-$(OS) -Fu../../../lib/zlib/$(ARCH)-$(OS) -Fu../../../lib/zip/$(ARCH)-$(OS)
-LIBSPPC = -Fu../../../lib/jpeg/powerpc-$(OS) -Fu../../../lib/ogg/powerpc-$(OS) -Fu../../../lib/theora/powerpc-$(OS) -Fu../../../lib/zlib/powerpc-$(OS) -Fu../../../lib/zip/powerpc-$(OS)
-OUTPUT  = ../../../bin/
-TMP     = ../tmp/
-UNIT    = demo05.pas
-TARGET  = demo05
-TARGETW = demo05.exe
-TARGETM = demo05
-BUNDLE  = $(OUTPUT)$(TARGETM).app
-
-# Targets
-all: clean
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT)$(ARCH)-$(OS)/ -FU$(TMP) $(FLAGS) -o$(TARGET) -TLINUX
-	strip $(OUTPUT)$(ARCH)-$(OS)/$(TARGET) --strip-unneeded -R .comment -R .note
-
-linux32: clean
-	$(FPC) $(UNIT) $(INCLUDE) \
-	-Fu../../../lib/jpeg/i386-linux \
-	-Fu../../../lib/ogg/i386-linux \
-	-Fu../../../lib/theora/i386-linux \
-	-Fu../../../lib/zlib/i386-linux \
-	-Fu../../../lib/zip/i386-linux \
-	-FE$(OUTPUT)i386-linux/ -FU$(TMP) $(FLAGS) -o$(TARGET) -TLINUX -Pi386 -Xd
-	strip $(OUTPUT)i386-linux/$(TARGET) --strip-unneeded -R .comment -R .note
-
-win32: clean
-	$(FPC) $(UNIT) $(INCLUDE) \
-	-Fu../../../lib/jpeg/i386-win32 \
-	-Fu../../../lib/msvcrt/i386 \
-	-Fu../../../lib/ogg/i386-win32 \
-	-Fu../../../lib/theora/i386-win32 \
-	-Fu../../../lib/zlib/i386-win32 \
-	-Fu../../../lib/zip/i386-win32 \
-	-FE$(OUTPUT)i386-win32/ -FU$(TMP) $(FLAGS) -o$(TARGETW) -TWIN32 -Pi386 -WG
-
-win64: clean
-	$(FPC) $(UNIT) $(INCLUDE) \
-	-Fu../../../lib/jpeg/x86_64-win64 \
-	-Fu../../../lib/msvcrt/x86_64 \
-	-Fu../../../lib/ogg/x86_64-win64 \
-	-Fu../../../lib/theora/x86_64-win64 \
-	-Fu../../../lib/zlib/x86_64-win64 \
-	-Fu../../../lib/zip/x86_64-win64 \
-	-FE$(OUTPUT)x86_64-win64/ -FU$(TMP) $(FLAGS) -o$(TARGETW) -TWIN64 -Px86_64 -WG
-
-macosx: clean
-	rm -Rf $(BUNDLE)
-	mkdir {$(BUNDLE),$(BUNDLE)/{Contents,Contents/{MacOS,Resources,Frameworks}}}
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM) -TDARWIN -Pi386 -k"-macosx_version_min" -k"10.4"
-	mv $(OUTPUT)$(TARGETM) $(BUNDLE)/Contents/MacOS/
-	sh macosx_postbuild.sh
-
-macosx_uni: clean
-	rm -Rf $(BUNDLE)
-	mkdir {$(BUNDLE),$(BUNDLE)/{Contents,Contents/{MacOS,Resources,Frameworks}}}
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM)-386 -TDARWIN -Pi386 -k"-macosx_version_min" -k"10.4"
-	$(FPC) $(UNIT) $(INCLUDE) $(LIBSPPC) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM)-ppc -TDARWIN -Ppowerpc -k"-macosx_version_min" -k"10.4"
-	lipo -create $(OUTPUT)$(TARGETM)-ppc $(OUTPUT)$(TARGETM)-386 -output $(BUNDLE)/Contents/MacOS/$(TARGETM)
-	rm $(OUTPUT)$(TARGETM)-386 $(OUTPUT)$(TARGETM)-ppc
-	sh macosx_postbuild.sh
-
-clean:
-	rm -f *.*~
-	rm -f $(TMP)*.*

Some files were not shown because too many files changed in this diff