Guest User

Untitled

a guest
Nov 24th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. # -*- mode: perl6; -*-
  2. use v6;
  3.  
  4. use NativeCall;
  5.  
  6. sub atexit(&function ()) returns int32 is native {*}
  7.  
  8. constant ALLEGRO_VERSION = 5;
  9. constant ALLEGRO_SUB_VERSION = 2;
  10. constant ALLEGRO_WIP_VERSION = 3;
  11.  
  12. # 1 << 31 は Perl6 では 1 +< 31。
  13. constant ALLEGRO_UNSTABLE_BIT = 1 +< 31;
  14.  
  15. constant ALLEGRO_RELEASE_NUMBER = 1;
  16.  
  17. # ALLEGRO_RELEASE_NUMBER || ALLEGRO_UNSTABLE_BIT は Perl6 では ALLEGRO_RELEASE_NUMBER +| ALLEGRO_UNSTABLE_BIT。
  18. constant ALLEGRO_VERSION_INT = ((ALLEGRO_VERSION +< 24) +|
  19. (ALLEGRO_SUB_VERSION +< 16) +|
  20. (ALLEGRO_WIP_VERSION +< 8) +|
  21. ALLEGRO_RELEASE_NUMBER +|
  22. ALLEGRO_UNSTABLE_BIT);
  23.  
  24. sub al-install-system(int32 $version, &atexit-ptr (Pointer --> int32)) returns bool is symbol('al_install_system') is native('allegro', v5.2.3) {*}
  25.  
  26. sub al-init() returns bool {
  27. al-install-system( ALLEGRO_VERSION_INT, atexit );
  28. }
  29.  
  30. sub al-uninstall-system() is symbol('al_uninstall_system') is native('allegro', v5.2.3) {*}
  31.  
  32. # class Display
  33.  
  34.  
  35. sub MAIN() {
  36. al-install-system( ALLEGRO_VERSION_INT, Nil ) or die 'failed install allegro!';
  37.  
  38. al-uninstall-system();
  39. }
Add Comment
Please, Sign In to add comment