ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
800369 Топик полностью
Evgeny_CD, Архитектор (07.12.2017 16:58, просмотров: 337) ответил Ксения на Реплик много, но ясного ответа на свой вопрос я так и не получила. Если формулировка моего вопроса кому-то кажется слишком абстрактной, конкретизирую. Кто проводит на экране линию? GUI или не GUI? Если GUI умеет рисовать только в буферной памяти,
µGUI -> стостоит из трех файлов, C файл --> Просто поищите в коде - там все очень прозрачно! https://github.com/achimdoebler/UGUI/blob/master/ugui.c
http://caxapa.ru/799554.html
UG_FillFrame UG_DrawLine void UG_DrawLine( UG_S16 x1, UG_S16 y1, UG_S16 x2, UG_S16 y2, UG_COLOR c ) { UG_S16 n, dx, dy, sgndx, sgndy, dxabs, dyabs, x, y, drawx, drawy; /* 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;