1. -- 
  2. -- Copyright (c) 2013 Kevin Wellwood 
  3. -- All rights reserved. 
  4. -- 
  5. -- This source code is distributed under the Modified BSD License. For terms and 
  6. -- conditions, see license.txt. 
  7. -- 
  8.  
  9. -- Allegro 5.0.9 - Blending routines 
  10. package Allegro.Blending is 
  11.  
  12.     type Allegro_Blend_Operations is private; 
  13.     ALLEGRO_ADD            : constant Allegro_Blend_Operations; 
  14.     ALLEGRO_SRC_MINUS_DEST : constant Allegro_Blend_Operations; 
  15.     ALLEGRO_DEST_MINUS_SRC : constant Allegro_Blend_Operations; 
  16.  
  17.     type Allegro_Blend_Mode is private; 
  18.     ALLEGRO_ZERO          : constant Allegro_Blend_Mode; 
  19.     ALLEGRO_ONE           : constant Allegro_Blend_Mode; 
  20.     ALLEGRO_ALPHA         : constant Allegro_Blend_Mode; 
  21.     ALLEGRO_INVERSE_ALPHA : constant Allegro_Blend_Mode; 
  22.  
  23.     procedure Al_Get_Blender( op  : out Allegro_Blend_Operations; 
  24.                               src : out Allegro_Blend_Mode; 
  25.                               dst : out Allegro_Blend_Mode ); 
  26.     pragma Import( C, Al_Get_Blender, "al_get_blender" ); 
  27.  
  28.     procedure Al_Get_Separate_Blender( op        : out Allegro_Blend_Operations; 
  29.                                        src       : out Allegro_Blend_Mode; 
  30.                                        dst       : out Allegro_Blend_Mode; 
  31.                                        alpha_op  : out Allegro_Blend_Operations; 
  32.                                        alpha_src : out Allegro_Blend_Mode; 
  33.                                        alpha_dst : out Allegro_Blend_Mode ); 
  34.     pragma Import( C, Al_Get_Separate_Blender, "al_get_separate_blender" ); 
  35.  
  36.     procedure Al_Set_Blender( op  : Allegro_Blend_Operations; 
  37.                               src : Allegro_Blend_Mode; 
  38.                               dst : Allegro_Blend_Mode ); 
  39.     pragma Import( C, Al_Set_Blender, "al_set_blender" ); 
  40.  
  41.     procedure Al_Set_Separate_Blender( op        : Allegro_Blend_Operations; 
  42.                                        src       : Allegro_Blend_Mode; 
  43.                                        dst       : Allegro_Blend_Mode; 
  44.                                        alpha_op  : Allegro_Blend_Operations; 
  45.                                        alpha_src : Allegro_Blend_Mode; 
  46.                                        alpha_dst : Allegro_Blend_Mode ); 
  47.     pragma Import( C, Al_Set_Separate_Blender, "al_set_separate_blender" ); 
  48.  
  49. private 
  50.  
  51.     type Allegro_Blend_Operations is new Integer; 
  52.     ALLEGRO_ADD            : constant Allegro_Blend_Operations := 0; 
  53.     ALLEGRO_SRC_MINUS_DEST : constant Allegro_Blend_Operations := 1; 
  54.     ALLEGRO_DEST_MINUS_SRC : constant Allegro_Blend_Operations := 2; 
  55.  
  56.     type Allegro_Blend_Mode is new Integer; 
  57.     ALLEGRO_ZERO          : constant Allegro_Blend_Mode := 0; 
  58.     ALLEGRO_ONE           : constant Allegro_Blend_Mode := 1; 
  59.     ALLEGRO_ALPHA         : constant Allegro_Blend_Mode := 2; 
  60.     ALLEGRO_INVERSE_ALPHA : constant Allegro_Blend_Mode := 3; 
  61.  
  62. end Allegro.Blending;