1 // $Header: x:/prj/tech/libsrc/dev2d/RCS/fl8fl8.c 1.6 1997/02/07 11:21:45 KEVIN Exp $
2 // Routines for drawing flat8 bitmaps into a flat8 canvas.
11 void flat8_flat8_opaque_ubitmap (grs_bitmap
*bm
, int x
, int y
)
17 void (*memcpy_func
)(void *dst
, void *src
, int count
);
22 dst
= grd_bm
.bits
+ grd_bm
.row
*y
+ x
;
24 if (bm
->flags
&BMF_DEVICE_VIDMEM
) {
25 if ((grd_bm
.flags
&BMF_DEVICE_VIDMEM
) &&
26 (((long )src
)&3!=((long )dst
)&3)) {
27 memcpy_func
= memcpy_by_byte
;
29 memcpy_func
= memcpy_align_src
;
32 if (grd_bm
.flags
&BMF_DEVICE_VIDMEM
) {
33 memcpy_func
= memcpy_align_dst
;
35 memcpy_func
= memcpy_cache_dst
;
39 memcpy_func (dst
, src
, w
);
45 void flat8_flat8_trans_ubitmap (grs_bitmap
*bm
, int x
, int y
)
54 dst
= grd_bm
.bits
+ grd_bm
.row
*y
+ x
;
58 if (src
[i
]!=0) dst
[i
]=src
[i
];
64 void flat8_flat8_opaque_clut_ubitmap (grs_bitmap
*bm
, int x
, int y
)
68 uchar
*clut
= (uchar
*)gr_get_fill_parm();
73 dst
= grd_bm
.bits
+ grd_bm
.row
*y
+ x
;
78 if (src
[i
]!=0) dst
[i
]=clut
[src
[i
]];
84 void flat8_flat8_trans_clut_ubitmap (grs_bitmap
*bm
, int x
, int y
)
88 uchar
*clut
= (uchar
*)gr_get_fill_parm();
93 dst
= grd_bm
.bits
+ grd_bm
.row
*y
+ x
;
98 if (src
[i
]!=0) dst
[i
]=clut
[src
[i
]];
104 void flat8_flat8_trans_solid_ubitmap (grs_bitmap
*bm
, int x
, int y
)
110 uchar c
= (uchar
)gr_get_fill_parm();
113 dst
= grd_bm
.bits
+ grd_bm
.row
*y
+ x
;
118 if (src
[i
]!=0) dst
[i
]=c
;