Fusion уже показал как текст выводить, там просто нужно окно под символ задать и потом шлешь данные сплошным блоком.GFX писал(а):Да я согласен и не против. А можно вопрос, вы уже делали эти функции или пока в теории?) Просто зачем изобретать велосипед, когда один приличный форумчанин может поделиться такой библиотекой?А то мы сейчас 3 разные версии сделаем, наизобретаем велосипедов.
С линиями сложнее. У меня есть код для S6d0129 + FSMC, без кубов и на C++, а у S6d0129 набор команд отличается, потому придется вникать и переделывать.
Спойлер
Код: Выделить всё
void drawLine(int x1, int y1, int x2, int y2, uint16_t color)
{
int dx = abs(x2 - x1);
int dy = abs(y2 - y1);
position(x1, y1);
if (dx > dy)
{
(x1 > x2) ? direction(LcdDir::LeftDown) : direction(LcdDir::RightDown);
int sum = dx / 2;
beginWriteData();
int add = (y2 > y1) ? 1 : -1;
int dx_ = dx;
while (dx-- >= 0)
{
if (sum >= dx_)
{
sum -= dx_;
setY(y1 += add);
beginWriteData();
}
writeData(color);
sum += dy;
}
}
else
{
(y1 > y2) ? direction(LcdDir::UpLeft) : direction(LcdDir::DownLeft);
int sum = dy / 2;
beginWriteData();
int add = (x2 > x1) ? 1 : -1;
int dy_ = dy;
while (dy-- >= 0)
{
if (sum >= dy_)
{
sum -= dy_;
setX(x1 += add);
beginWriteData();
}
writeData(color);
sum += dx;
}
}
}


