1. with System;                            use System; 
  2.  
  3. package hqx is 
  4.  
  5.     pragma Pure; 
  6.  
  7.     -- Enlarges a image by 3x magnification using the hq2x filter. The 
  8.     -- destination image must be at least twice as large as the source. 
  9.     -- 
  10.     -- src    : the source image data 
  11.     -- dest   : the destination image data (must be large enough!) 
  12.     -- srcXres: the width of the source image in pixels 
  13.     -- dstXres: the width of the destination image in pixels 
  14.     -- width  : the width of the area from the source image to scale 
  15.     -- height : the height of the area from the source image to scale 
  16.     procedure hq2x( src     : Address; 
  17.                     srcXres : Positive; 
  18.                     dst     : Address; 
  19.                     dstXres : Positive; 
  20.                     width, 
  21.                     height  : Positive ); 
  22.     pragma Precondition( src /= Null_Address ); 
  23.     pragma Precondition( dst /= Null_Address ); 
  24.     pragma Precondition( width <= srcXres ); 
  25.     pragma Precondition( dstXres >= width * 2 ); 
  26.  
  27.     -- Enlarges an image by 3x magnification using the hq3x filter. The 
  28.     -- destination image must be at least three times the size of the source. 
  29.     -- 
  30.     -- src    : the source image data 
  31.     -- dest   : the destination image data (must be large enough!) 
  32.     -- srcXres: the width of the source image in pixels 
  33.     -- dstXres: the width of the destination image in pixels 
  34.     -- width  : the width of the area from the source image to scale 
  35.     -- height : the height of the area from the source image to scale 
  36.     procedure hq3x( src     : Address; 
  37.                     srcXres : Positive; 
  38.                     dst     : Address; 
  39.                     dstXres : Positive; 
  40.                     width, 
  41.                     height  : Positive ); 
  42.     pragma Precondition( src /= Null_Address ); 
  43.     pragma Precondition( dst /= Null_Address ); 
  44.     pragma Precondition( width <= srcXres ); 
  45.     pragma Precondition( dstXres >= width * 3 ); 
  46.  
  47.     -- Enlarges an image by 4x magnification using the hq4x filter. The 
  48.     -- destination image must be at least four times the size of the source. 
  49.     -- 
  50.     -- src    : the source image data 
  51.     -- dest   : the destination image data (must be large enough!) 
  52.     -- srcXres: the width of the source image in pixels 
  53.     -- dstXres: the width of the destination image in pixels 
  54.     -- width  : the width of the area from the source image to scale 
  55.     -- height : the height of the area from the source image to scale 
  56.     procedure hq4x( src     : Address; 
  57.                     srcXres : Positive; 
  58.                     dst     : Address; 
  59.                     dstXres : Positive; 
  60.                     width, 
  61.                     height  : Positive ); 
  62.     pragma Precondition( src /= Null_Address ); 
  63.     pragma Precondition( dst /= Null_Address ); 
  64.     pragma Precondition( width <= srcXres ); 
  65.     pragma Precondition( dstXres >= width * 4 ); 
  66.  
  67. end hqx;