From 99fb3f02a2e1aa9e2cfe864dd64955be528ce676 Mon Sep 17 00:00:00 2001 From: Kevin Townsend Date: Wed, 3 Aug 2011 20:56:04 +0200 Subject: [PATCH] Redid font rendering code --- drivers/lcd/tft/drawing.c | 82 +++++++++++++------- tools/dotfactory/TheDotFactory-src-0.0.9.7z | Bin 46783 -> 0 bytes 2 files changed, 55 insertions(+), 27 deletions(-) delete mode 100644 tools/dotfactory/TheDotFactory-src-0.0.9.7z diff --git a/drivers/lcd/tft/drawing.c b/drivers/lcd/tft/drawing.c index 61a0135..f7b2ab5 100644 --- a/drivers/lcd/tft/drawing.c +++ b/drivers/lcd/tft/drawing.c @@ -53,42 +53,62 @@ /* */ /**************************************************************************/ +/**************************************************************************/ +/*! + @brief Swaps values a and b +*/ +/**************************************************************************/ +void drawSwap(uint32_t a, uint32_t b) +{ + uint32_t t; + t = a; + a = b; + b = t; +} + /**************************************************************************/ /*! @brief Draws a single bitmap character */ /**************************************************************************/ -void drawCharBitmap(const uint16_t xPixel, const uint16_t yPixel, uint16_t color, const uint8_t *glyph, uint8_t glyphHeightPages, uint8_t glyphWidthBits) +void drawCharBitmap(const uint16_t xPixel, const uint16_t yPixel, uint16_t color, const uint8_t *glyph, uint8_t cols, uint8_t rows) { uint16_t verticalPage, horizBit, currentY, currentX; uint16_t indexIntoGlyph; + uint16_t _row, _col, _colPages; + // set initial current y currentY = yPixel; currentX = xPixel; - // for each page of the glyph - for (verticalPage = glyphHeightPages; verticalPage > 0; --verticalPage) + // Figure out how many columns worth of data we have + if (cols % 8) + _colPages = cols / 8 + 1; + else + _colPages = cols / 8; + + for (_row = 0; _row < rows; _row++) { - // for each horizontol bit - for (horizBit = 0; horizBit < glyphWidthBits; ++horizBit) + for (_col = 0; _col < _colPages; _col++) { - // next byte - indexIntoGlyph = (glyphHeightPages * horizBit) + verticalPage - 1; - - currentX = xPixel + (horizBit); + if (_row == 0) + indexIntoGlyph = _col; + else + indexIntoGlyph = (_row * _colPages) + _col; + + currentY = yPixel + _row; + currentX = xPixel + (_col*8); // send the data byte if (glyph[indexIntoGlyph] & (0X80)) drawPixel(currentX, currentY, color); - if (glyph[indexIntoGlyph] & (0X40)) drawPixel(currentX, currentY - 1, color); - if (glyph[indexIntoGlyph] & (0X20)) drawPixel(currentX, currentY - 2, color); - if (glyph[indexIntoGlyph] & (0X10)) drawPixel(currentX, currentY - 3, color); - if (glyph[indexIntoGlyph] & (0X08)) drawPixel(currentX, currentY - 4, color); - if (glyph[indexIntoGlyph] & (0X04)) drawPixel(currentX, currentY - 5, color); - if (glyph[indexIntoGlyph] & (0X02)) drawPixel(currentX, currentY - 6, color); - if (glyph[indexIntoGlyph] & (0X01)) drawPixel(currentX, currentY - 7, color); + if (glyph[indexIntoGlyph] & (0X40)) drawPixel(currentX+1, currentY, color); + if (glyph[indexIntoGlyph] & (0X20)) drawPixel(currentX+2, currentY, color); + if (glyph[indexIntoGlyph] & (0X10)) drawPixel(currentX+3, currentY, color); + if (glyph[indexIntoGlyph] & (0X08)) drawPixel(currentX+4, currentY, color); + if (glyph[indexIntoGlyph] & (0X04)) drawPixel(currentX+5, currentY, color); + if (glyph[indexIntoGlyph] & (0X02)) drawPixel(currentX+6, currentY, color); + if (glyph[indexIntoGlyph] & (0X01)) drawPixel(currentX+7, currentY, color); } - // next line of pages - currentY += 8; } } @@ -330,7 +350,9 @@ void drawString(uint16_t x, uint16_t y, uint16_t color, const FONT_INFO *fontInf } // Send individual characters - drawCharBitmap(currentX, y, color, &fontInfo->data[charOffset], fontInfo->heightPages, charWidth); + // We need to manually calculate width in pages since this is screwy with variable width fonts + //uint8_t heightPages = charWidth % 8 ? charWidth / 8 : charWidth / 8 + 1; + drawCharBitmap(currentX, y, color, &fontInfo->data[charOffset], charWidth, fontInfo->height); // next char X currentX += charWidth + 1; @@ -450,9 +472,6 @@ void drawLineDotted ( uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16 // Check if we can use the optimised vertical line method. // This can make a huge difference in performance, but may // not work properly on every LCD controller: - // ex.: drawCircleFilled(120, 160, 50, COLOR_RED); - // = 678834 cycles using lcdDrawVLine w/ILI9328 = 9.43mS @ 72MHz - // = 7546261 w/o lcdDrawVLine, setting each pixel = 104.8mS @ 72MHz if ((x0 == x1) && (empty == 0)) { // Warning: This may actually be slower than drawing individual pixels on @@ -999,7 +1018,7 @@ void drawTriangle ( uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t /**************************************************************************/ /*! - @brief Draws a triangle + @brief Draws a filled triangle @param[in] x0 x co-ordinate for point 0 @@ -1032,7 +1051,16 @@ void drawTriangle ( uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t /**************************************************************************/ void drawTriangleFilled ( uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color) { - // ToDo: re-order vertices by ascending Y values (smallest first) + // Re-order vertices by ascending Y values (smallest first) + if (y0 > y1) { + drawSwap(y0, y1); drawSwap(x0, x1); + } + if (y1 > y2) { + drawSwap(y2, y1); drawSwap(x2, x1); + } + if (y0 > y1) { + drawSwap(y0, y1); drawSwap(x0, x1); + } int32_t dx1, dx2, dx3; // Interpolation deltas int32_t sx1, sx2, sy; // Scanline co-ordinates @@ -1249,11 +1277,11 @@ void drawProgressBar ( uint16_t x, uint16_t y, uint16_t width, uint16_t height, @code #include "drivers/lcd/tft/drawing.h" - #include "drivers/lcd/tft/fonts/dejavusansbold9.h" + #include "drivers/lcd/tft/fonts/dejavusans9.h" // Draw two buttons using Vera Sans Bold 9 - drawButton(20, 195, 200, 35, &dejaVuSansBold9ptFontInfo, 7, COLOR_DARKERGRAY, COLOR_DARKERGRAY, COLOR_WHITE, "System Settings"); - drawButton(20, 235, 200, 35, &dejaVuSansBold9ptFontInfo, 7, COLOR_LIMEGREENDIM, COLOR_LIMEGREEN, COLOR_BLACK, "System Settings"); + drawButton(20, 195, 200, 35, &dejaVuSans9ptFontInfo, 7, COLOR_GRAY_80, COLOR_GRAY_80, COLOR_WHITE, "System Settings"); + drawButton(20, 235, 200, 35, &dejaVuSans9ptFontInfo, 7, COLOR_THEME_LIMEGREEN_DARKER, COLOR_THEME_LIMEGREEN_BASE, COLOR_BLACK, "System Settings"); @endcode */ diff --git a/tools/dotfactory/TheDotFactory-src-0.0.9.7z b/tools/dotfactory/TheDotFactory-src-0.0.9.7z deleted file mode 100644 index f2ee5a9be34a80df7ef0a9fc786f391ca2d108e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46783 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