mirror of
https://github.com/jscrane/r65emu.git
synced 2024-12-22 18:29:20 +00:00
new display apis
This commit is contained in:
parent
c22812413c
commit
73964abe4b
92
display.cpp
92
display.cpp
@ -63,10 +63,8 @@ void Display::begin(colour_t bg, colour_t fg, orientation_t orient, unsigned dis
|
|||||||
_dx -= _xoff;
|
_dx -= _xoff;
|
||||||
_dy -= _yoff;
|
_dy -= _yoff;
|
||||||
|
|
||||||
#if defined(DEBUGGING)
|
DBG(printf("xoff %d yoff %d dx %d dy %d", _xoff, _yoff, _dx, _dy));
|
||||||
Serial.printf("xoff %d yoff %d dx %d dy %d", _xoff, _yoff, _dx, _dy);
|
DBG(println());
|
||||||
Serial.println();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Display::begin(colour_t bg, colour_t fg, orientation_t orient) {
|
void Display::begin(colour_t bg, colour_t fg, orientation_t orient) {
|
||||||
@ -109,11 +107,8 @@ void Display::begin(colour_t bg, colour_t fg, orientation_t orient) {
|
|||||||
_dx = canvas.getWidth();
|
_dx = canvas.getWidth();
|
||||||
_dy = canvas.getHeight();
|
_dy = canvas.getHeight();
|
||||||
|
|
||||||
|
DBG(printf("w %d h %d", _dx, _dy));
|
||||||
#if defined(DEBUGGING)
|
DBG(println());
|
||||||
Serial.printf("w %d h %d", _dx, _dy);
|
|
||||||
Serial.println();
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
setColor(fg);
|
setColor(fg);
|
||||||
@ -173,17 +168,94 @@ void Display::drawPixel(unsigned x, unsigned y, colour_t col) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void Display::drawString(const char *s, unsigned x, unsigned y) {
|
void Display::drawLine(unsigned x1, unsigned y1, unsigned x2, unsigned y2, colour_t col) {
|
||||||
|
x1 += _xoff;
|
||||||
|
y1 += _yoff;
|
||||||
|
x2 += _xoff;
|
||||||
|
y2 += _yoff;
|
||||||
|
#if defined(USE_UTFT)
|
||||||
|
utft.setColor(col);
|
||||||
|
utft.drawLine(x1, y1, x2, y2);
|
||||||
|
#elif defined(USE_ESPI)
|
||||||
|
espi.drawLine(x1, y1, x2, y2, col);
|
||||||
|
#elif defined(USE_VGA)
|
||||||
|
canvas.drawLine(x1, y1, x2, y2, rgb(col));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void Display::drawCircle(unsigned x, unsigned y, unsigned r, colour_t col) {
|
||||||
x += _xoff;
|
x += _xoff;
|
||||||
y += _yoff;
|
y += _yoff;
|
||||||
#if defined(USE_UTFT)
|
#if defined(USE_UTFT)
|
||||||
|
utft.setColor(col);
|
||||||
|
utft.drawCircle(x, y, r);
|
||||||
|
#elif defined(USE_ESPI)
|
||||||
|
espi.drawCircle(x, y, r, col);
|
||||||
|
#elif defined(USE_VGA)
|
||||||
|
canvas.setBrushColor(col);
|
||||||
|
canvas.fillEllipse(x, y, r, r);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void Display::fillCircle(unsigned x, unsigned y, unsigned r, colour_t col) {
|
||||||
|
x += _xoff;
|
||||||
|
y += _yoff;
|
||||||
|
#if defined(USE_UTFT)
|
||||||
|
utft.setColor(col);
|
||||||
|
utft.fillCircle(x, y, r);
|
||||||
|
#elif defined(USE_ESPI)
|
||||||
|
espi.fillCircle(x, y, r, col);
|
||||||
|
#elif defined(USE_VGA)
|
||||||
|
canvas.setPenColor(col);
|
||||||
|
canvas.drawEllipse(x, y, r, r);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void Display::drawRectangle(unsigned x, unsigned y, unsigned w, unsigned h, colour_t col) {
|
||||||
|
x += _xoff;
|
||||||
|
y += _yoff;
|
||||||
|
#if defined(USE_UTFT)
|
||||||
|
utft.setColor(col);
|
||||||
|
utft.drawRect(x, y, x+w, y+h);
|
||||||
|
#elif defined(USE_ESPI)
|
||||||
|
espi.drawRect(x, y, w, h, col);
|
||||||
|
#elif defined(USE_VGA)
|
||||||
|
canvas.setBrushColor(col);
|
||||||
|
canvas.fillRectangle(x, y, x+w, y+h);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void Display::fillRectangle(unsigned x, unsigned y, unsigned w, unsigned h, colour_t col) {
|
||||||
|
x += _xoff;
|
||||||
|
y += _yoff;
|
||||||
|
#if defined(USE_UTFT)
|
||||||
|
utft.setColor(col);
|
||||||
|
utft.fillRect(x, y, x+w, y+h);
|
||||||
|
#elif defined(USE_ESPI)
|
||||||
|
espi.fillRect(x, y, w, h, col);
|
||||||
|
#elif defined(USE_VGA)
|
||||||
|
canvas.setPenColor(col);
|
||||||
|
canvas.drawRectangle(x, y, x+w, y+h);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void Display::drawString(const char *s, unsigned x, unsigned y, colour_t col) {
|
||||||
|
x += _xoff;
|
||||||
|
y += _yoff;
|
||||||
|
#if defined(USE_UTFT)
|
||||||
|
utft.setColor(col);
|
||||||
utft.print(s, x, y);
|
utft.print(s, x, y);
|
||||||
#elif defined(USE_ESPI)
|
#elif defined(USE_ESPI)
|
||||||
espi.setTextDatum(TL_DATUM);
|
espi.setTextDatum(TL_DATUM);
|
||||||
|
/*
|
||||||
unsigned w = espi.textWidth(s);
|
unsigned w = espi.textWidth(s);
|
||||||
espi.fillRect(x, y, w, _cy, _bg);
|
espi.fillRect(x, y, w, _cy, _bg);
|
||||||
espi.drawString(s, x, y);
|
espi.drawString(s, x, y);
|
||||||
|
*/
|
||||||
|
espi.setTextColor(col, _bg, true);
|
||||||
|
espi.drawString(s, x, y);
|
||||||
#elif defined(USE_VGA)
|
#elif defined(USE_VGA)
|
||||||
|
canvas.setPenColor(col);
|
||||||
canvas.drawText(x, y, s);
|
canvas.drawText(x, y, s);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
20
display.h
20
display.h
@ -37,7 +37,25 @@ public:
|
|||||||
void statusf(const char *fmt, ...);
|
void statusf(const char *fmt, ...);
|
||||||
|
|
||||||
void drawPixel(unsigned x, unsigned y, colour_t col);
|
void drawPixel(unsigned x, unsigned y, colour_t col);
|
||||||
void drawString(const char *s, unsigned x, unsigned y);
|
void drawPixel(unsigned x, unsigned y) { drawPixel(x, y, _fg); }
|
||||||
|
|
||||||
|
void drawLine(unsigned x1, unsigned y1, unsigned x2, unsigned y2, colour_t col);
|
||||||
|
void drawLine(unsigned x1, unsigned y1, unsigned x2, unsigned y2) { drawLine(x1, y1, x2, y2, _fg); }
|
||||||
|
|
||||||
|
void drawCircle(unsigned x, unsigned y, unsigned r, colour_t col);
|
||||||
|
void drawCircle(unsigned x, unsigned y, unsigned r) { drawCircle(x, y, r, _fg); }
|
||||||
|
|
||||||
|
void fillCircle(unsigned x, unsigned y, unsigned r, colour_t col);
|
||||||
|
void fillCircle(unsigned x, unsigned y, unsigned r) { fillCircle(x, y, r, _fg); }
|
||||||
|
|
||||||
|
void drawRectangle(unsigned x, unsigned y, unsigned w, unsigned h, colour_t col);
|
||||||
|
void drawRectangle(unsigned x, unsigned y, unsigned w, unsigned h) { drawRectangle(x, y, w, h, _fg); }
|
||||||
|
|
||||||
|
void fillRectangle(unsigned x, unsigned y, unsigned w, unsigned h, colour_t col);
|
||||||
|
void fillRectangle(unsigned x, unsigned y, unsigned w, unsigned h) { fillRectangle(x, y, w, h, _fg); }
|
||||||
|
|
||||||
|
void drawString(const char *s, unsigned x, unsigned y, colour_t col);
|
||||||
|
void drawString(const char *s, unsigned x, unsigned y) { drawString(s, x, y, _fg); }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
unsigned _bg, _fg, _cx, _cy, _dx, _dy, _oxs, _xoff, _yoff;
|
unsigned _bg, _fg, _cx, _cy, _dx, _dy, _oxs, _xoff, _yoff;
|
||||||
|
Loading…
Reference in New Issue
Block a user