1. -- Allegro 4.4.2 - RLE Sprites 
  2. package Allegro.Sprites.RLE is 
  3.  
  4.     type RLE_Sprite is private; 
  5.     type A_RLE_Sprite is access all RLE_Sprite; 
  6.  
  7.     ---------------------------------------------------------------------------- 
  8.  
  9.     function Get_RLE_Sprite( bmp : not null A_Bitmap ) return A_RLE_Sprite; 
  10.  
  11.     procedure Destroy_RLE_Sprite( sprite : in out A_RLE_Sprite ); 
  12.  
  13.     procedure Draw_RLE_Sprite( bmp    : not null A_Bitmap; 
  14.                                sprite : not null A_RLE_Sprite; 
  15.                                x, y   : Integer ); 
  16.  
  17.     procedure Draw_Trans_RLE_Sprite( bmp    : not null A_Bitmap; 
  18.                                      sprite : not null A_RLE_Sprite; 
  19.                                      x, y   : Integer ); 
  20.  
  21.     procedure Draw_Lit_RLE_Sprite( bmp    : not null A_Bitmap; 
  22.                                    sprite : not null A_RLE_Sprite; 
  23.                                    x, y   : Integer; 
  24.                                    color  : Color_Type ); 
  25.  
  26. private 
  27.  
  28.     type RLE_Sprite is 
  29.         record 
  30.             width, 
  31.             height, 
  32.             color_depth, 
  33.             size        : Integer; 
  34.             dat         : Address; 
  35.        end record; 
  36.     pragma Convention( C, RLE_Sprite ); 
  37.  
  38.     ---------------------------------------------------------------------------- 
  39.  
  40.     pragma Import( C, Get_RLE_Sprite, "get_rle_sprite" ); 
  41.     pragma Import( C, Draw_RLE_Sprite, "draw_rle_sprite" ); 
  42.     pragma Import( C, Draw_Trans_RLE_Sprite, "draw_trans_rle_sprite" ); 
  43.     pragma Import( C, Draw_Lit_RLE_Sprite, "draw_lit_rle_sprite" ); 
  44.  
  45. end Allegro.Sprites.RLE;