1. -- Allegro 4.4.2 - Palette routines 
  2. -- This package is missing: 
  3. -- _set_color, generate_optimized_palette, default_palette, black_palette, 
  4. -- desktop_palette 
  5. package Allegro.Palettes is 
  6.  
  7.     PAL_SIZE : constant Integer := 256; 
  8.  
  9.     type RGB is private; 
  10.     type A_RGB is access all RGB; 
  11.  
  12.     type Fade_Speed is range 1..64; 
  13.     for Fade_Speed'Size use Integer'Size; 
  14.  
  15.     type Interpolate_Type is range 0..64; 
  16.     for Interpolate_Type'Size use Integer'Size; 
  17.  
  18.     type Palette_Index is range 0..PAL_SIZE-1; 
  19.     for Palette_Index'Size use Integer'Size; 
  20.  
  21.     type Palette is array (Palette_Index) of RGB; 
  22.  
  23.     ---------------------------------------------------------------------------- 
  24.  
  25.     procedure Fade_From( source, dest : Palette; speed : Fade_Speed ); 
  26.  
  27.     procedure Fade_From_Range( source, 
  28.                                dest   : Palette; 
  29.                                speed  : Fade_Speed; 
  30.                                from, 
  31.                                to     : Palette_Index ); 
  32.  
  33.     procedure Fade_In( p : Palette; speed : Fade_Speed ); 
  34.  
  35.     procedure Fade_In_Range( p : Palette; speed : Fade_Speed; from, to : Palette_Index ); 
  36.  
  37.     procedure Fade_Interpolate( source, 
  38.                                 dest   : Palette; 
  39.                                 output : in out Palette; 
  40.                                 pos    : Interpolate_Type; 
  41.                                 from, 
  42.                                 to     : Palette_Index ); 
  43.  
  44.     procedure Fade_Out( speed : Fade_Speed ); 
  45.  
  46.     procedure Fade_Out_Range( speed : Fade_Speed; from, to : Palette_Index ); 
  47.  
  48.     procedure Generate_332_Palette( pal : in out Palette ); 
  49.  
  50.     procedure Get_Color( index : Palette_Index; p : A_RGB ); 
  51.  
  52.     procedure Get_Palette( p : in out Palette ); 
  53.  
  54.     procedure Get_Palette_Range( p : in out Palette; from, to : Palette_Index ); 
  55.  
  56.     procedure Select_Palette( p : Palette ); 
  57.  
  58.     procedure Set_Color( index : Palette_Index; p : A_RGB ); 
  59.  
  60.     procedure Set_Palette( p : Palette ); 
  61.  
  62.     procedure Set_Palette_Range( p : Palette; from, to : Palette_Index; vsync : Boolean ); 
  63.  
  64.     procedure Unselect_Palette; 
  65.  
  66. private 
  67.  
  68.     type RGB is 
  69.         record 
  70.             r, g, b : Unsigned_8; 
  71.             filler  : Unsigned_8; 
  72.         end record; 
  73.     for RGB'Size use 32; 
  74.  
  75.     ---------------------------------------------------------------------------- 
  76.  
  77.     pragma Convention( C, Palette ); 
  78.     pragma Convention( C, RGB ); 
  79.  
  80.     pragma Import( C, Fade_From, "fade_from" ); 
  81.     pragma Import( C, Fade_From_Range, "fade_from_range" ); 
  82.     pragma Import( C, Fade_In, "fade_in" ); 
  83.     pragma Import( C, Fade_In_Range, "fade_in_range" ); 
  84.     pragma Import( C, Fade_Interpolate, "fade_interpolate" ); 
  85.     pragma Import( C, Fade_Out, "fade_out" ); 
  86.     pragma Import( C, Fade_Out_Range, "fade_out_range" ); 
  87.     pragma Import( C, Generate_332_Palette, "generate_332_palette" ); 
  88.     pragma Import( C, Get_Color, "get_color" ); 
  89.     pragma Import( C, Get_Palette, "get_palette" ); 
  90.     pragma Import( C, Get_Palette_Range, "get_palette_range" ); 
  91.     pragma Import( C, Select_Palette, "select_palette" ); 
  92.     pragma Import( C, Set_Color, "set_color" ); 
  93.     pragma Import( C, Set_Palette, "set_palette" ); 
  94.     pragma Import( C, Unselect_Palette, "unselect_palette" ); 
  95.  
  96. end Allegro.Palettes;