есть куча исходников открытых алгоритмов рисования всех примитивов. ктрл+ц + ктрл+в + проверка какаяникакая. можно вот так вот. аппаратен по сути только set_pixel(). ну и если оптимизировтаь надо то верт и гр линии оптимизированные нужны. + всякая заливка (если нужна). + копирование-вставка. надо смотреть что сам контроллер умеет так же