static void _pixel_rgb888_draw_hline(rtgui_color_t *c, int x1, int x2, int y)
{
    rt_uint32_t pixel;

    pixel = rtgui_color_to_888(*c);
    gfx_device_ops->draw_hline((char *)&pixel, x1, x2, y);
}
static void _pixel_rgb888_set_pixel(rtgui_color_t *c, int x, int y)
{
    rt_uint32_t pixel;

    pixel = rtgui_color_to_888(*c);
    gfx_device_ops->set_pixel((char *)&pixel, x, y);
}
static void _pixel_rgb888_draw_vline(rtgui_color_t *c, int x, int y1, int y2)
{
    rt_uint32_t pixel;

    pixel = rtgui_color_to_888(*c);
    gfx_device_ops->draw_vline((char *)&pixel, x, y1, y2);
}
static void _rgb888_draw_vline(rtgui_color_t *c, int x , int y1, int y2)
{
    rt_uint8_t *dst;
    rt_uint32_t pixel;
    rt_ubase_t index;

    pixel = rtgui_color_to_888(*c);
    dst = GET_PIXEL(rtgui_graphic_get_device(), x, y1, rt_uint8_t);
    for (index = y1; index < y2; index ++)
    {
        *(rt_uint32_t*)dst = pixel;
        dst += rtgui_graphic_get_device()->pitch;
    }
}
static void _rgb888_draw_hline(rtgui_color_t *c, int x1, int x2, int y)
{
    rt_ubase_t index;
    rt_uint32_t pixel;
    rt_uint32_t *pixel_ptr;

    /* get pixel from color */
    pixel = rtgui_color_to_888(*c);

    /* get pixel pointer in framebuffer */
    pixel_ptr = GET_PIXEL(rtgui_graphic_get_device(), x1, y, rt_uint32_t);

    for (index = x1; index < x2; index ++)
    {
        *pixel_ptr = pixel;
        pixel_ptr ++;
    }
}
static void _rgb888_set_pixel(rtgui_color_t *c, int x, int y)
{
    *GET_PIXEL(rtgui_graphic_get_device(), x, y, rt_uint32_t) = rtgui_color_to_888(*c);
}