demo01.pas 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. program demo01;
  2. // RU: Этот файл содержит некоторые настройки(например использовать ли статическую компиляцию) и определения ОС под которую происходит компиляция.
  3. // EN: This file contains some options(e.g. whether to use static compilation) and defines of OS for which is compilation going.
  4. {$I zglCustomConfig.cfg}
  5. uses
  6. // RU: Для iOS нельзя использовать сторонние динамические библиотеки, поэтому ZenGL модули необходимо подключать напрямую.
  7. // EN: There is no possibility to use third party dynamic libraries on iOS, and that is why ZenGL units should be included directly.
  8. zgl_main,
  9. zgl_screen,
  10. zgl_window,
  11. zgl_timers,
  12. zgl_utils
  13. ;
  14. var
  15. DirApp : UTF8String;
  16. DirHome : UTF8String;
  17. procedure Init;
  18. begin
  19. // RU: Т.к. разрешения устройств отличаются от используемого в примерах, нужно включить коррекцию. Подробнее смотрите пример "04 - Screen Settings".
  20. // EN: Correction should be enabled because of difference between used resolution in demos and on devices. See demo "04 - Screen Settings" for more details.
  21. zgl_Enable( CORRECT_RESOLUTION );
  22. scr_CorrectResolution( 800, 600 );
  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. Begin
  41. // RU: Для загрузки/создания каких-то своих настроек/профилей/etc. можно получить путь к домашенему каталогу пользователя, или к исполняемому файлу(не работает для GNU/Linux).
  42. // 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).
  43. DirApp := utf8_Copy( PAnsiChar( zgl_Get( DIRECTORY_APPLICATION ) ) );
  44. DirHome := utf8_Copy( PAnsiChar( zgl_Get( DIRECTORY_HOME ) ) );
  45. // RU: Создаем таймер с интервалом 1000мс.
  46. // EN: Create a timer with interval 1000ms.
  47. timer_Add( @Timer, 1000 );
  48. // RU: Регистрируем процедуру, что выполнится сразу после инициализации ZenGL.
  49. // EN: Register the procedure, that will be executed after ZenGL initialization.
  50. zgl_Reg( SYS_LOAD, @Init );
  51. // RU: Регистрируем процедуру, где будет происходить рендер.
  52. // EN: Register the render procedure.
  53. zgl_Reg( SYS_DRAW, @Draw );
  54. // RU: Регистрируем процедуру, которая будет принимать разницу времени между кадрами.
  55. // EN: Register the procedure, that will get delta time between the frames.
  56. zgl_Reg( SYS_UPDATE, @Update );
  57. // RU: Указываем первоначальные настройки.
  58. // EN: Set screen options.
  59. scr_SetOptions( 800, 600, REFRESH_MAXIMUM, TRUE, TRUE );
  60. // RU: Инициализируем ZenGL.
  61. // EN: Initialize ZenGL.
  62. zgl_Init();
  63. End.