convert line ends
[canaan.git] / prj / tech / libsrc / dev2d / fl8mx.c
blob57c1d444d5afdfb26c30b76edf2d78c80e37d91b
1 /*
2 * $Source: s:/prj/tech/libsrc/dev2d/RCS/fl8mx.c $
3 * $Revision: 1.1 $
4 * $Author: KEVIN $
5 * $Date: 1996/04/10 15:34:58 $
7 * Routines for drawing flat8 bitmaps onto a mode X canvas.
9 * This file is part of the dev2d library.
13 #include <grd.h>
14 #include <mxlatch.h>
16 void flat8_modex_trans_ubitmap (grs_bitmap *bm, int x, int y)
18 int i,j,k;
19 uchar *src, *dst;
20 uchar *s, *d;
21 uchar *p;
22 short w, h;
23 uchar save_wlatch;
25 wlatch_start(save_wlatch);
27 w = bm->w;
28 h = bm->h;
29 if ((h<=0)||(w<=0)) return;
30 p = grd_bm.bits+grd_bm.row*y;
31 for (i=0; i<4; i++) {
32 int z = i + bm->align;
33 src=bm->bits+(z>>2);
34 dst=p+x;
35 modex_force_wlatch(1<<(z&3));
36 for (j=(w+3)>>2; j>0; j--) {
37 s=src; d=dst;
38 for (k=0; k<h; k++) {
39 if (*s) *d=*s;
40 s+=bm->row;
41 d+=grd_bm.row;
43 src++;
44 dst+=4;
46 x++;
47 if (--w==0) break;
50 wlatch_restore(save_wlatch);
53 void flat8_modex_opaque_ubitmap (grs_bitmap *bm, int x, int y)
55 int i,j,k;
56 uchar *src, *dst;
57 uchar *s, *d;
58 uchar *p;
59 short w, h;
60 uchar save_wlatch;
62 wlatch_start(save_wlatch);
64 w = bm->w;
65 h = bm->h;
66 if ((h<=0)||(w<=0)) return;
67 p = grd_bm.bits+grd_bm.row*y;
68 for (i=0; i<4; i++) {
69 int z = i + bm->align;
70 src=bm->bits+(z>>2);
71 dst=p+x;
72 modex_force_wlatch(1<<(z&3));
73 for (j=(w+3)>>2; j>0; j--) {
74 s=src; d=dst;
75 for (k=0; k<h; k++) {
76 *d=*s;
77 s+=bm->row;
78 d+=grd_bm.row;
80 src++;
81 dst+=4;
83 x++;
84 if (--w==0) break;
87 wlatch_restore(save_wlatch);