demo01.lpr 4.8 KB

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