demo01.lpr 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. library demo01;
  2. // RU: Этот файл содержит некоторые настройки(например использовать ли статическую компиляцию) и определения ОС под которую происходит
  3. // компиляция
  4. // EN: This file contains some options(e.g. whether to use static compilation) and defines of OS for which is compilation going.
  5. {$I zglCustomConfig.cfg}
  6. uses
  7. zgl_application,
  8. zgl_screen,
  9. zgl_window,
  10. zgl_timers,
  11. zgl_utils,
  12. zgl_types,
  13. zgl_log
  14. ;
  15. var
  16. DirApp : UTF8String;
  17. DirHome : UTF8String;
  18. TimeStart : Byte = 0;
  19. procedure Init;
  20. begin
  21. // RU: Тут можно выполнять загрузку основных ресурсов.
  22. // EN: Here can be loading of main resources.
  23. end;
  24. procedure Draw;
  25. begin
  26. // RU: Тут "рисуем" что угодно :)
  27. // EN: Here "draw" anything :)
  28. end;
  29. procedure Update( dt : Double );
  30. begin
  31. // RU: Эта функция наземенима для реализация плавного движения чего-либо, т.к. точность таймеров ограничена FPS.
  32. // EN: This function is the best way to implement smooth moving of something, because accuracy of timers are restricted by FPS.
  33. end;
  34. procedure Timer;
  35. begin
  36. //
  37. end;
  38. procedure Restore;
  39. begin
  40. // RU: Восстановление ресурсов нужно реализовывать тут.
  41. // EN: Restoring of resources should be implemented here.
  42. end;
  43. procedure Java_zengl_android_ZenGL_Main( var env; var thiz ); cdecl;
  44. begin
  45. // Для загрузки/создания каких-то своих настроек/профилей/etc. можно получить путь к домашенему каталогу пользователя, или к исполняемому
  46. // файлу(для GNU/Linux - изменено, если будет программа содержать свой собственный путь, то путь до самого исполняемого файла будет прописан).
  47. // На Android DIRECTORY_APPLICATION возвращает полный путь к apk-файлу
  48. // 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).
  49. // On Android DIRECTORY_APPLICATION returns full path to apk-file
  50. DirApp := utf8_Copy( PAnsiChar( zgl_Get( DIRECTORY_APPLICATION ) ) );
  51. DirHome := utf8_Copy( PAnsiChar( zgl_Get( DIRECTORY_HOME ) ) );
  52. // RU: Создаем таймер с интервалом 1000мс.
  53. // EN: Create a timer with interval 1000ms.
  54. TimeStart := timer_Add( @Timer, 100, t_Start);
  55. // RU: Регистрируем процедуру, что выполнится сразу после инициализации ZenGL.
  56. // EN: Register the procedure, that will be executed after ZenGL initialization.
  57. zgl_Reg( SYS_LOAD, @Init );
  58. // RU: Регистрируем процедуру, где будет происходить рендер.
  59. // EN: Register the render procedure.
  60. zgl_Reg( SYS_DRAW, @Draw );
  61. // RU: Регистрируем процедуру, которая будет принимать разницу времени между кадрами.
  62. // EN: Register the procedure, that will get delta time between the frames.
  63. zgl_Reg( SYS_UPDATE, @Update );
  64. // RU: Очень важная для Android функция, которая вызывается при возврате фокуса приложению если необходимо восстановить ресурсы.
  65. // EN: Very important function for Android, which will be called every time when application gets the focus and resources need to restore.
  66. zgl_Reg( SYS_ANDROID_RESTORE, @Restore );
  67. // RU: Указываем первоначальные настройки.
  68. // изменено, указывать ни чего не надо, либо можем указать размеры экрана с которым будем работать.
  69. // EN: Set screen options.
  70. scr_SetOptions();
  71. end;
  72. exports
  73. // RU: Эта функция должна быть реализована проектом, который использует ZenGL
  74. // EN: This function should be implemented by project which is use ZenGL
  75. Java_zengl_android_ZenGL_Main,
  76. // RU: Функции реализуемые ZenGL, которые должны быть экспортированы
  77. // EN: Functions which are implemented by ZenGL and should be exported
  78. {$I android_export.inc}
  79. End.