1. with Allegro.Bitmaps;                   use Allegro.Bitmaps; 
  2. with Interfaces.C;                      use Interfaces.C; 
  3.  
  4. -- Allegro 4.4.2 - Transparency and patterned drawing 
  5. -- This package is missing: 
  6. -- color_map, create_trans_table, create_light_table, create_color_table, 
  7. -- create_blender_table 
  8. package Allegro.Transparency is 
  9.  
  10.     type Drawing_Mode_Type is ( 
  11.         DRAW_MODE_SOLID, 
  12.         DRAW_MODE_XOR, 
  13.         DRAW_MODE_COPY_PATTERN, 
  14.         DRAW_MODE_SOLID_PATTERN, 
  15.         DRAW_MODE_MASKED_PATTERN, 
  16.         DRAW_MODE_TRANS 
  17.     ); 
  18.     for Drawing_Mode_Type use ( 
  19.         DRAW_MODE_SOLID          => 0, 
  20.         DRAW_MODE_XOR            => 1, 
  21.         DRAW_MODE_COPY_PATTERN   => 2, 
  22.         DRAW_MODE_SOLID_PATTERN  => 3, 
  23.         DRAW_MODE_MASKED_PATTERN => 4, 
  24.         DRAW_MODE_TRANS          => 5 
  25.     ); 
  26.     for Drawing_Mode_Type'Size use Integer'Size; 
  27.  
  28.     type Blender_Func is 
  29.         access function( x, y, n : C.unsigned_long ) return C.unsigned_long; 
  30.  
  31.     ---------------------------------------------------------------------------- 
  32.  
  33.     procedure Drawing_Mode( mode     : Drawing_Mode_Type; 
  34.                             pattern  : A_Bitmap := null; 
  35.                             x_anchor, 
  36.                             y_ancher : Integer := 0 ); 
  37.  
  38.     procedure Set_Add_Blender( r, g, b, a : Natural ); 
  39.  
  40.     procedure Set_Alpha_Blender; 
  41.  
  42.     procedure Set_Blender_Mode( b15, b16, b24 : Blender_Func; 
  43.                                 r, g, b, a    : Natural ); 
  44.  
  45.     procedure Set_Blender_Mode_Ex( b15,  b16,  b24, b32, 
  46.                                    b15x, b16x, b24x     : Blender_Func; 
  47.                                    r, g, b, a           : Natural ); 
  48.  
  49.     procedure Set_Burn_Blender( r, g, b, a : Natural ); 
  50.  
  51.     procedure Set_Color_Blender( r, g, b, a : Natural ); 
  52.  
  53.     procedure Set_Difference_Blender( r, g, b, a : Natural ); 
  54.  
  55.     procedure Set_Dissolve_Blender( r, g, b, a : Natural ); 
  56.  
  57.     procedure Set_Dodge_Blender( r, g, b, a : Natural ); 
  58.  
  59.     procedure Set_Hue_Blender( r, g, b, a : Natural ); 
  60.  
  61.     procedure Set_Invert_Blender( r, g, b, a : Natural ); 
  62.  
  63.     procedure Set_Luminance_Blender( r, g, b, a : Natural ); 
  64.  
  65.     procedure Set_Multiply_Blender( r, g, b, a : Natural ); 
  66.  
  67.     procedure Set_Saturation_Blender( r, g, b, a : Natural ); 
  68.  
  69.     procedure Set_Screen_Blender( r, g, b, a : Natural ); 
  70.  
  71.     procedure Set_Trans_Blender( r, g, b, a : Natural ); 
  72.  
  73.     procedure Set_Write_Alpha_Blender; 
  74.  
  75.     procedure Solid_Mode; 
  76.  
  77.     procedure XOR_Mode( on : Boolean ); 
  78.  
  79. private 
  80.  
  81.     pragma Convention( C, Blender_Func ); 
  82.  
  83.     pragma Import( C, Drawing_Mode, "drawing_mode" ); 
  84.     pragma Import( C, Set_Add_Blender, "set_add_blender" ); 
  85.     pragma Import( C, Set_Alpha_Blender, "set_alpha_blender" ); 
  86.     pragma Import( C, Set_Blender_Mode, "set_blender_mode" ); 
  87.     pragma Import( C, Set_Blender_Mode_Ex, "set_blender_mode_ex" ); 
  88.     pragma Import( C, Set_Burn_Blender, "set_burn_blender" ); 
  89.     pragma Import( C, Set_Color_Blender, "set_color_blender" ); 
  90.     pragma Import( C, Set_Difference_Blender, "set_difference_blender" ); 
  91.     pragma Import( C, Set_Dissolve_Blender, "set_dissolve_blender" ); 
  92.     pragma Import( C, Set_Dodge_Blender, "set_dodge_blender" ); 
  93.     pragma Import( C, Set_Hue_Blender, "set_hue_blender" ); 
  94.     pragma Import( C, Set_Invert_Blender, "set_invert_blender" ); 
  95.     pragma Import( C, Set_Luminance_Blender, "set_luminance_blender" ); 
  96.     pragma Import( C, Set_Multiply_Blender, "set_multiply_blender" ); 
  97.     pragma Import( C, Set_Saturation_Blender, "set_saturation_blender" ); 
  98.     pragma Import( C, Set_Screen_Blender, "set_screen_blender" ); 
  99.     pragma Import( C, Set_Trans_Blender, "set_trans_blender" ); 
  100.     pragma Import( C, Set_Write_Alpha_Blender, "set_write_alpha_blender" ); 
  101.     pragma Import( C, Solid_Mode, "solid_mode" ); 
  102.  
  103. end Allegro.Transparency;