void drawAdjustPoint(u16 x, u16 y)
{
	lcd_draw_line(x-12, y, x+13, y, RED);//横线
	lcd_draw_line(x, y-12, x, y+13, RED);//竖线
	lcd_draw_point(x+1, y+1, RED);
	lcd_draw_point(x-1, y+1, RED);
	lcd_draw_point(x+1, y-1, RED);
	lcd_draw_point(x-1, y-1, RED);
	lcd_draw_circle(x, y, 6, RED);//画中心圈
}
void graphics_background_clean(void) {
    graphics_location clean_index_x=0,clean_index_y=0;
    
    for (;clean_index_y<SCREEN_LONGITUDINAL_PIXEL;++clean_index_y) {
        for (clean_index_x=0;clean_index_x<SCREEN_HORIZONTAL_PIXEL;++clean_index_x) {
            lcd_draw_point(clean_index_x,clean_index_y,DEFAULT_BACKGROUND_COLOR);
        }
    }
}
static void graphics_draw_bitmap_24(bitmap_data bitmap_data,graphics_location draw_point_x,graphics_location draw_point_y) {
    unsigned long draw_index=0;
    unsigned long draw_control_x=0;
    unsigned long draw_control_y=*(unsigned long*)(bitmap_data+18);
    unsigned long picture_width=*(unsigned long*)(bitmap_data+22);
    unsigned long image_scan_point=(unsigned long)bitmap_data+*(unsigned long*)(bitmap_data+10);
    
    for (;draw_control_y>0;--draw_control_y) {
        for (draw_control_x=0;draw_control_x<picture_width;++draw_control_x,draw_index+=3) {
            lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,graphics_24bit_to_16bit(*(color*)(image_scan_point+draw_index)));
        }
    }
}
static void graphics_draw_bitmap_4(bitmap_data bitmap_data,graphics_location draw_point_x,graphics_location draw_point_y) {
    unsigned long draw_index=0;
    unsigned long draw_control_x=0;
    unsigned long draw_control_y=*(unsigned long*)(bitmap_data+18)+draw_point_y;
    unsigned long picture_width=*(unsigned long*)(bitmap_data+22);
    unsigned long image_scan_point=(unsigned long)bitmap_data+*(unsigned long*)(bitmap_data+10);
    unsigned long scan_point=0;
    color output_color=0;
    rgb_quad quad_list[16]={0};
    
    memcpy(&quad_list,bitmap_data+BITMAP_HEADER_LENGTH+BITMAP_INFORMATION_LENGTH,RBG_QUAD_LENGTH*16);
    
    for (;draw_control_y>0;--draw_control_y,draw_index+=2) {
        for (draw_control_x=0;draw_control_x<picture_width;draw_control_x+=2,++draw_index) {
            scan_point=(*(char*)(image_scan_point+draw_index) & 0xF0)>>4;
            output_color=((quad_list[scan_point].red & 0x1F)<<11)+((quad_list[scan_point].green & 0x3F)<<5)+(quad_list[scan_point].blue & 0x1F);
            lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,output_color);

            scan_point=*(char*)(image_scan_point+draw_index) & 0xF;
            output_color=((quad_list[scan_point].red & 0x1F)<<11)+((quad_list[scan_point].green & 0x3F)<<5)+(quad_list[scan_point].blue & 0x1F);
            lcd_draw_point(draw_control_x+draw_point_x+1,draw_control_y+draw_point_y,output_color);
        }
    }
}
static void graphics_draw_bitmap_2(bitmap_data bitmap_data,graphics_location draw_point_x,graphics_location draw_point_y) {
    
    //  WARNING! 这个函数还有错误..
    
    unsigned long draw_index=0;
    unsigned long draw_control_x=0;
    unsigned long draw_control_y=*(unsigned long*)(bitmap_data+18);
    unsigned long picture_width=*(unsigned long*)(bitmap_data+22);
    unsigned long image_scan_point=(unsigned long)bitmap_data+*(unsigned long*)(bitmap_data+10);
    
    while (draw_control_y>0) {
        lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,((*(color*)(image_scan_point+draw_index) & 0x80)?white:black));
        ++draw_control_x;
        if (draw_control_x==picture_width) {
            draw_control_x=0;
            --draw_point_y;
            if (draw_point_y==0)
                return;
        }
        lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,((*(color*)(image_scan_point+draw_index) & 0x40)?white:black));
        ++draw_control_x;
        if (draw_control_x==picture_width) {
            draw_control_x=0;
            --draw_point_y;
            if (draw_point_y==0)
                return;
        }
        lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,((*(color*)(image_scan_point+draw_index) & 0x20)?white:black));
        ++draw_control_x;
        if (draw_control_x==picture_width) {
            draw_control_x=0;
            --draw_point_y;
            if (draw_point_y==0)
                return;
        }
        lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,((*(color*)(image_scan_point+draw_index) & 0x10)?white:black));
        ++draw_control_x;
        if (draw_control_x==picture_width) {
            draw_control_x=0;
            --draw_point_y;
            if (draw_point_y==0)
                return;
        }
        lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,((*(color*)(image_scan_point+draw_index) & 0x8)?white:black));
        ++draw_control_x;
        if (draw_control_x==picture_width) {
            draw_control_x=0;
            --draw_point_y;
            if (draw_point_y==0)
                return;
        }
        lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,((*(color*)(image_scan_point+draw_index) & 0x4)?white:black));
        ++draw_control_x;
        if (draw_control_x==picture_width) {
            draw_control_x=0;
            --draw_point_y;
            if (draw_point_y==0)
                return;
        }
        lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,((*(color*)(image_scan_point+draw_index) & 0x2)?white:black));
        ++draw_control_x;
        if (draw_control_x==picture_width) {
            draw_control_x=0;
            --draw_point_y;
            if (draw_point_y==0)
                return;
        }
        lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,((*(color*)(image_scan_point+draw_index) & 0x1)?white:black));
        ++draw_control_x;
        if (draw_control_x==picture_width) {
            draw_control_x=0;
            --draw_point_y;
            if (draw_point_y==0)
                return;
        }
        
        ++draw_index;
    }
}