*** empty log message ***

Thu, 27 Dec 2001 11:17:28 +0000

author
eric
date
Thu, 27 Dec 2001 11:17:28 +0000
changeset 3
317de52d8a63
parent 2
8ca2aaf0513f
child 4
86a98659662f

*** empty log message ***

bitblt.c file | annotate | diff | revisions
bitblt.h file | annotate | diff | revisions
bitblt_test.c file | annotate | diff | revisions
     1.1 diff -r 8ca2aaf0513f -r 317de52d8a63 bitblt.c
     1.2 --- a/bitblt.c	Thu Dec 27 11:04:43 2001 +0000
     1.3 +++ b/bitblt.c	Thu Dec 27 11:17:28 2001 +0000
     1.4 @@ -72,9 +72,7 @@
     1.5  		Rect src_rect,
     1.6  		Bitmap *dest_bitmap,
     1.7  		Point dest_upper_left,
     1.8 -		boolean flip_horizontal,
     1.9 -		boolean flip_vertical,
    1.10 -		boolean transpose,
    1.11 +		int scan,
    1.12  		int tfn)
    1.13  {
    1.14    Point src_point, dest_point;
    1.15 @@ -82,7 +80,7 @@
    1.16  
    1.17    if (! dest_bitmap)
    1.18      {
    1.19 -      if (transpose)
    1.20 +      if (scan & TRANSPOSE)
    1.21  	dest_bitmap = create_bitmap (rect_height (src_rect),
    1.22  				     rect_width (src_rect));
    1.23        else
    1.24 @@ -102,17 +100,32 @@
    1.25  	{
    1.26  	  boolean a, b, c;
    1.27  
    1.28 -	  if (transpose)
    1.29 +	  if (scan & TRANSPOSE)
    1.30  	    {
    1.31 -	      dest_point.x = dest_upper_left.x + (src_point.y - src_rect.upper_left.y);
    1.32 -	      dest_point.y = dest_upper_left.y + (src_point.x - src_rect.upper_left.x);
    1.33 +	      dest_point.x = src_point.y - src_rect.upper_left.y;
    1.34 +	      dest_point.y = src_point.x - src_rect.upper_left.x;
    1.35 +
    1.36 +	      if (scan & FLIP_H)
    1.37 +		dest_point.x = (rect_height (src_rect) - 1) - dest_point.x;
    1.38 +
    1.39 +	      if (scan & FLIP_V)
    1.40 +		dest_point.y = (rect_width (src_rect) - 1) - dest_point.y;
    1.41  	    }
    1.42  	  else
    1.43  	    {
    1.44 -	      dest_point.x = dest_upper_left.x + (src_point.x - src_rect.upper_left.x);
    1.45 -	      dest_point.y = dest_upper_left.y + (src_point.y - src_rect.upper_left.y);
    1.46 +	      dest_point.x = src_point.x - src_rect.upper_left.x;
    1.47 +	      dest_point.y = src_point.y - src_rect.upper_left.y;
    1.48 +
    1.49 +	      if (scan & FLIP_H)
    1.50 +		dest_point.x = (rect_width (src_rect) - 1) - dest_point.x;
    1.51 +
    1.52 +	      if (scan & FLIP_V)
    1.53 +		dest_point.y = (rect_height (src_rect) - 1) - dest_point.y;
    1.54  	    }
    1.55  
    1.56 +	  dest_point.x += dest_upper_left.x;
    1.57 +	  dest_point.y += dest_upper_left.y;
    1.58 +
    1.59  	  a = get_pixel (src_bitmap, src_point);
    1.60  	  b = get_pixel (dest_bitmap, dest_point);
    1.61  	  c = (tfn & (1 << (a * 2 + b))) != 0;
     2.1 diff -r 8ca2aaf0513f -r 317de52d8a63 bitblt.h
     2.2 --- a/bitblt.h	Thu Dec 27 11:04:43 2001 +0000
     2.3 +++ b/bitblt.h	Thu Dec 27 11:17:28 2001 +0000
     2.4 @@ -29,6 +29,16 @@
     2.5  #define TF_XOR 0x6
     2.6  
     2.7  
     2.8 +#define FLIP_H    0x1
     2.9 +#define FLIP_V    0x2
    2.10 +#define TRANSPOSE 0x4
    2.11 +
    2.12 +#define ROT_0     0x0
    2.13 +#define ROT_90    (TRANSPOSE + FLIP_H)
    2.14 +#define ROT_180   (FLIP_H + FLIP_V)
    2.15 +#define ROT_270   (TRANSPOSE + FLIP_V)
    2.16 +
    2.17 +
    2.18  Bitmap *create_bitmap (u32 width, u32 height);
    2.19  void free_bitmap (Bitmap *bitmap);
    2.20  boolean get_pixel (Bitmap *bitmap, Point coord);
    2.21 @@ -38,7 +48,5 @@
    2.22  		Rect src_rect,
    2.23  		Bitmap *dest_bitmap,
    2.24  		Point dest_upper_left,
    2.25 -		boolean flip_horizontal,
    2.26 -		boolean flip_vertical,
    2.27 -		boolean transpose,
    2.28 +		int scan,
    2.29  		int tfn);
     3.1 diff -r 8ca2aaf0513f -r 317de52d8a63 bitblt_test.c
     3.2 --- a/bitblt_test.c	Thu Dec 27 11:04:43 2001 +0000
     3.3 +++ b/bitblt_test.c	Thu Dec 27 11:17:28 2001 +0000
     3.4 @@ -16,7 +16,7 @@
     3.5    ".....X....X...X.....",
     3.6    ".....X.....X..X.....",
     3.7    ".....XXXXXXXXXX.....",
     3.8 -  ".....XXXXXXXXXX....."
     3.9 +  ".....X.X.X.X.X......"
    3.10  };
    3.11  
    3.12  Bitmap *setup (void)
    3.13 @@ -82,8 +82,7 @@
    3.14  
    3.15    b2 = bitblt (b, r,
    3.16  	       NULL, p,
    3.17 -	       0, 0, 
    3.18 -	       1,  /* transpose */
    3.19 +	       ROT_90,
    3.20  	       TF_SRC);
    3.21    if (! b2)
    3.22      {