Exemplo n.º 1
0
void flush_line(int y)
{
    int target_y = y;
    char *addr;

    if (linear_mem != NULL && !need_dither)
	return;

    addr = gfxvidinfo.linemem;
    if (addr == NULL)
	addr = gfxvidinfo.bufmem + y*gfxvidinfo.rowbytes;

    if (linear_mem == NULL) {
	if (target_y < modeinfo.height && target_y >= 0) {
	    if (need_dither) {
		DitherLine (dither_buf, (uae_u16 *)addr, 0, y, gfxvidinfo.width, bit_unit);
		addr = dither_buf;
	    }
	    vga_drawscanline(target_y, addr);
	}
    } else {
	if (need_dither && target_y >= 0) {
	    DitherLine (linear_mem + modeinfo.linewidth * target_y, (uae_u16 *)addr, 0, y,
			gfxvidinfo.width, bit_unit);
	}
    }
}
Exemplo n.º 2
0
/*
 * flush_line() buffer method for dithered mode
 */
static void x11_flush_line_dither (struct vidbuf_description *gfxinfo, int line_no)
{
    DitherLine ((uae_u8 *)ami_dinfo.image_mem + ami_dinfo.ximg->bytes_per_line * line_no,
		(uae_u16 *)gfxinfo->linemem, 0, line_no, gfxinfo->width, bit_unit);

    DO_PUTIMAGE (ami_dinfo.ximg, 0, line_no, 0, line_no, gfxinfo->width, 1);
}
Exemplo n.º 3
0
static void x11_flush_line_dither_dga (struct vidbuf_description *gfxinfo, int line_no)
{
    DitherLine ((unsigned char *)(fb_addr + fb_width * line_no),
		(uae_u16 *)gfxinfo->linemem, 0, line_no, gfxinfo->width, bit_unit);

}