采用如下方法清除800X600X256屏幕为黑色太快了,比用PutPixel直接写屏方式快多了,而且没有闪烁感,如何将将画线函数也改用本方法实现呢?
/////////////////////////////////////////////////////////////////////////////////////////////////
//    快速清除屏幕子程序
//    由于分辨率为800*600*256色(8位深度),因此共需800*600/65535=8页=512K
/////////////////////////////////////////////////////////////////////////////////////////////////
void _Cdecl GuiQuickClsScreen(int color)
{
    unsigned int i,j;
    unsigned char VDCBuf[800];
    unsigned int dest_off = 0;
    memset(VDCBuf,color,800);
    for (j = 0 ; j < 8 ; j++)            //    页号(共需8页)
    {
        set_vbe_page(j);                        // 依次选择页号0-页号7
        dest_off = 0;                            // 偏移
        for (i = 0 ; i < 81 ; i++)        // 由于显卡每页65535,因此先送64800个像素
        {
            movedata(FP_SEG(VDCBuf),FP_OFF(VDCBuf),0xa000,dest_off,800);
            dest_off += 800;            // 指向下一根扫描线
        }                                        
        movedata(FP_SEG(VDCBuf),FP_OFF(VDCBuf),0xa000,dest_off,735);
        // 将每页余下的735个像素单独送
    }
}



											
	    

	

