with Allegro.Bitmaps; use Allegro.Bitmaps;
with Interfaces.C; use Interfaces.C;
package Allegro.Transparency is
type Drawing_Mode_Type is (
DRAW_MODE_SOLID,
DRAW_MODE_XOR,
DRAW_MODE_COPY_PATTERN,
DRAW_MODE_SOLID_PATTERN,
DRAW_MODE_MASKED_PATTERN,
DRAW_MODE_TRANS
);
for Drawing_Mode_Type use (
DRAW_MODE_SOLID => 0,
DRAW_MODE_XOR => 1,
DRAW_MODE_COPY_PATTERN => 2,
DRAW_MODE_SOLID_PATTERN => 3,
DRAW_MODE_MASKED_PATTERN => 4,
DRAW_MODE_TRANS => 5
);
for Drawing_Mode_Type'Size use Integer'Size;
type Blender_Func is
access function( x, y, n : C.unsigned_long ) return C.unsigned_long;
procedure Drawing_Mode( mode : Drawing_Mode_Type;
pattern : A_Bitmap := null;
x_anchor,
y_ancher : Integer := 0 );
procedure Set_Add_Blender( r, g, b, a : Natural );
procedure Set_Alpha_Blender;
procedure Set_Blender_Mode( b15, b16, b24 : Blender_Func;
r, g, b, a : Natural );
procedure Set_Blender_Mode_Ex( b15, b16, b24, b32,
b15x, b16x, b24x : Blender_Func;
r, g, b, a : Natural );
procedure Set_Burn_Blender( r, g, b, a : Natural );
procedure Set_Color_Blender( r, g, b, a : Natural );
procedure Set_Difference_Blender( r, g, b, a : Natural );
procedure Set_Dissolve_Blender( r, g, b, a : Natural );
procedure Set_Dodge_Blender( r, g, b, a : Natural );
procedure Set_Hue_Blender( r, g, b, a : Natural );
procedure Set_Invert_Blender( r, g, b, a : Natural );
procedure Set_Luminance_Blender( r, g, b, a : Natural );
procedure Set_Multiply_Blender( r, g, b, a : Natural );
procedure Set_Saturation_Blender( r, g, b, a : Natural );
procedure Set_Screen_Blender( r, g, b, a : Natural );
procedure Set_Trans_Blender( r, g, b, a : Natural );
procedure Set_Write_Alpha_Blender;
procedure Solid_Mode;
procedure XOR_Mode( on : Boolean );
private
pragma Convention( C, Blender_Func );
pragma Import( C, Drawing_Mode, "drawing_mode" );
pragma Import( C, Set_Add_Blender, "set_add_blender" );
pragma Import( C, Set_Alpha_Blender, "set_alpha_blender" );
pragma Import( C, Set_Blender_Mode, "set_blender_mode" );
pragma Import( C, Set_Blender_Mode_Ex, "set_blender_mode_ex" );
pragma Import( C, Set_Burn_Blender, "set_burn_blender" );
pragma Import( C, Set_Color_Blender, "set_color_blender" );
pragma Import( C, Set_Difference_Blender, "set_difference_blender" );
pragma Import( C, Set_Dissolve_Blender, "set_dissolve_blender" );
pragma Import( C, Set_Dodge_Blender, "set_dodge_blender" );
pragma Import( C, Set_Hue_Blender, "set_hue_blender" );
pragma Import( C, Set_Invert_Blender, "set_invert_blender" );
pragma Import( C, Set_Luminance_Blender, "set_luminance_blender" );
pragma Import( C, Set_Multiply_Blender, "set_multiply_blender" );
pragma Import( C, Set_Saturation_Blender, "set_saturation_blender" );
pragma Import( C, Set_Screen_Blender, "set_screen_blender" );
pragma Import( C, Set_Trans_Blender, "set_trans_blender" );
pragma Import( C, Set_Write_Alpha_Blender, "set_write_alpha_blender" );
pragma Import( C, Solid_Mode, "solid_mode" );
end Allegro.Transparency;