|
发表于 2019-1-11 15:44:09
|
显示全部楼层
你看这个函数 void UG_DrawLine( UG_S16 x1, UG_S16 y1, UG_S16 x2, UG_S16 y2, UG_COLOR c )
/* Is hardware acceleration available? */
if ( gui->driver[DRIVER_DRAW_LINE].state & DRIVER_ENABLED )
{
if( ((UG_RESULT(*)(UG_S16 x1, UG_S16 y1, UG_S16 x2, UG_S16 y2, UG_COLOR c))gui->driver[DRIVER_DRAW_LINE].driver)(x1,y1,x2,y2,c) == UG_RESULT_OK ) return;
}
dx = x2 - x1;
dy = y2 - y1;
dxabs = (dx>0)?dx:-dx;
dyabs = (dy>0)?dy:-dy;
sgndx = (dx>0)?1:-1;
sgndy = (dy>0)?1:-1;
x = dyabs >> 1;
y = dxabs >> 1;
drawx = x1;
drawy = y1;
gui->pset(drawx, drawy,c);
如果没有注册硬件画线函数,就用他里面的自带的画线函数,所以注册了描点函数后,就不用注册画线函数也可以的,不知道我说的对不对。
|
|