gada-graphics.ads

package GAda.Graphics is

   --
   -- Attention, l'axe des Y est vers le haut.
   --


   -- Trace un point noir aux coordonnées X,Y
   procedure BlackPoint(X, Y : Integer) ;

   -- Redimensionne la fenêtre graphique, et efface l'image courante.
   -- Largeur et hauteur sont en pixels (points)
   procedure Resize(Largeur : Integer ; Hauteur : Integer) ;


   -- Une couleur est caractérisée par trois composantes
   -- rouge, vert, bleu, dont la valeur va de 0 (pas de couleur) à 255 (couleur vive).
   -- Une couleur est donc un triplet de trois entiers entre 0 et 255.
   --
   -- Par exemple, le blanc correspond à (255,255,255), le rouge à (255,0,0)
   -- et le violet à (255,0,255) car c'est un mélange de rouge et de bleu.
   --
   type T_Couleur is record
      Rouge : Integer range 0..255 ;
      Vert  : Integer range 0..255 ;
      Bleu  : Integer range 0..255 ;
   end record ;


   -- Trace un point de la couleur indiquée
   procedure ColorPoint(X, Y : Integer ; Coul : T_Couleur) ;

   -- Trace une ligne entres les points (X1,Y1) et (X2,Y2)
   procedure ColorLine(X1, Y1, X2, Y2 : Integer ; Coul : T_Couleur) ;

   -- Idem, mais la ligne est noire
   procedure BlackLine(X1, Y1, X2, Y2 : Integer) ;

   -- Trace un cercle (vide) ou un disque (plein) centré en (X, Y) et du rayon indiqué.
   procedure Cercle(X, Y, Rayon : Integer ; Coul : T_Couleur) ;
   procedure Disque(X, Y, Rayon : Integer ; Coul : T_Couleur) ;

   -- Trace un rectangle coloré
   procedure ColorRectangle(X, Y, Largeur, Hauteur : Integer ; Coul : T_Couleur) ;


   -- Met (Flag => true) ou enlève (Flag => false) la marge grise.
   procedure Avec_Marge(Flag : Boolean) ;

   --
   -- Ignorez cette partie
   -- qui sert à optimiser la mémoire
   --
   for T_Couleur use record
      Rouge  at 0 range 0..7;
      Vert   at 0 range 8..15;
      Bleu   at 0 range 16..23;
   end record;

end GAda.Graphics ;