From: Kevin Townsend Date: Fri, 23 Mar 2012 04:25:34 +0000 (+0100) Subject: v1.0.0 reorg X-Git-Url: https://git.rohieb.name/hackover2013-badge-firmware.git/commitdiff_plain/3bf1ccb1ad771c7da87fc550b6e6203a67a8ca01?ds=sidebyside v1.0.0 reorg --- diff --git a/drivers/displays/tft/aafonts.c b/drivers/displays/tft/aafonts.c index 163b677..dc400b5 100644 --- a/drivers/displays/tft/aafonts.c +++ b/drivers/displays/tft/aafonts.c @@ -38,6 +38,14 @@ #include "drivers/displays/tft/lcd.h" #include "drivers/displays/tft/drawing.h" +// Common color lookup tables for AA2 (4-color anti-aliased) fonts +static const uint16_t COLORTABLE_AA2_WHITEONBLACK[4] = { 0x0000, 0x52AA, 0xAD55, 0xFFFF}; +static const uint16_t COLORTABLE_AA2_BLACKONWHITE[4] = { 0xFFFF, 0xAD55, 0x52AA, 0x0000}; + +// Common color lookup tables for AA4 (16-color anti-aliased) fonts +static const uint16_t COLORTABLE_AA4_WHITEONBLACK[16] = { 0x0000, 0x1082, 0x2104, 0x3186, 0x4208, 0x528A, 0x630C, 0x738E, 0x8410, 0x9492, 0xA514, 0xB596, 0xC618, 0xD69A, 0xE71C, 0xFFFF}; +static const uint16_t COLORTABLE_AA4_BLACKONWHITE[16] = { 0xFFFF, 0xE71C, 0xD69A, 0xC618, 0xB596, 0xA514, 0x9492, 0x8410, 0x738E, 0x630C, 0x528A, 0x4208, 0x3186, 0x2104, 0x1082, 0x0000}; + /**************************************************************************/ /* */ /* ----------------------- Private Methods ------------------------------ */ @@ -66,9 +74,9 @@ Pointer to the 4 element color lookup table */ /**************************************************************************/ -int aafontsDrawCharAA2( uint16_t x, uint16_t y, uint16_t height, aafontsCharInfo_t character, const uint16_t * colorTable) +void aafontsDrawCharAA2( uint16_t x, uint16_t y, uint16_t height, aafontsCharInfo_t character, const uint16_t * colorTable) { - uint16_t w, h, xp, yp, pos; + uint16_t w, h, pos; uint8_t color; for (h = 0; h < height; h++) @@ -121,9 +129,9 @@ int aafontsDrawCharAA2( uint16_t x, uint16_t y, uint16_t height, aafontsCharInfo Pointer to the 16 element color lookup table */ /**************************************************************************/ -int aafontsDrawCharAA4( uint16_t x, uint16_t y, uint16_t height, aafontsCharInfo_t character, const uint16_t * colorTable) +void aafontsDrawCharAA4( uint16_t x, uint16_t y, uint16_t height, aafontsCharInfo_t character, const uint16_t * colorTable) { - uint16_t w, h, xp, yp; + uint16_t w, h; uint8_t color; for (h = 0; h < height; h++) @@ -188,7 +196,6 @@ void aafontsDrawString(uint16_t x, uint16_t y, const uint16_t * colorTable, cons { uint16_t currentX, charWidth, characterToOutput; const aafontsCharInfo_t *charInfo; - uint16_t charOffset; // set current x, y to that of requested currentX = x; @@ -198,7 +205,6 @@ void aafontsDrawString(uint16_t x, uint16_t y, const uint16_t * colorTable, cons { // get character to output characterToOutput = *str; - uint16_t last = font->lastChar; // Check if the character is within the font boundaries if ((characterToOutput > font->lastChar) || (characterToOutput < font->firstChar)) @@ -263,7 +269,6 @@ uint16_t aafontsGetStringWidth(const aafontsFont_t *font, char *str) uint16_t width = 0; const aafontsCharInfo_t *charInfo; uint32_t currChar; - uint32_t startChar = font->firstChar; // until termination for (currChar = *str; currChar; currChar = *(++str)) diff --git a/drivers/displays/tft/aafonts.h b/drivers/displays/tft/aafonts.h index f76d35a..c510eaf 100644 --- a/drivers/displays/tft/aafonts.h +++ b/drivers/displays/tft/aafonts.h @@ -64,14 +64,6 @@ typedef struct aafontsFont_s const aafontsCharInfo_t *charTable; /* Pointer to the aafontsCharInfo_t array containing the char data */ } aafontsFont_t; -// Common color lookup tables for AA2 (4-color anti-aliased) fonts -const uint16_t COLORTABLE_AA2_WHITEONBLACK[4] = { 0x0000, 0x52AA, 0xAD55, 0xFFFF}; -const uint16_t COLORTABLE_AA2_BLACKONWHITE[4] = { 0xFFFF, 0xAD55, 0x52AA, 0x0000}; - -// Common color lookup tables for AA4 (16-color anti-aliased) fonts -const uint16_t COLORTABLE_AA4_WHITEONBLACK[16] = { 0x0000, 0x1082, 0x2104, 0x3186, 0x4208, 0x528A, 0x630C, 0x738E, 0x8410, 0x9492, 0xA514, 0xB596, 0xC618, 0xD69A, 0xE71C, 0xFFFF}; -const uint16_t COLORTABLE_AA4_BLACKONWHITE[16] = { 0xFFFF, 0xE71C, 0xD69A, 0xC618, 0xB596, 0xA514, 0x9492, 0x8410, 0x738E, 0x630C, 0x528A, 0x4208, 0x3186, 0x2104, 0x1082, 0x0000}; - uint16_t aafontsBlendColor ( uint16_t bgColor, uint16_t foreColor, uint8_t intensity ); void aafontsDrawString( uint16_t x, uint16_t y, const uint16_t * colorTable, const aafontsFont_t *font, char *str ); uint16_t aafontsGetStringWidth( const aafontsFont_t *font, char *str ); diff --git a/drivers/displays/tft/bmp.c b/drivers/displays/tft/bmp.c index a378a86..7554645 100644 --- a/drivers/displays/tft/bmp.c +++ b/drivers/displays/tft/bmp.c @@ -122,7 +122,7 @@ bmp_error_t bmpParseBitmap(uint16_t x, uint16_t y, FIL file) // Render pixel // ToDo: This is a brutally slow way of rendering bitmaps ... // update to pass one row of data at a time - drawPixel(x + px, y + py - 1, drawRGB24toRGB565(buffer[(px * 3) + 2], buffer[(px * 3) + 1], buffer[(px * 3)])); + drawPixel(x + px, y + py - 1, colorsRGB24toRGB565(buffer[(px * 3) + 2], buffer[(px * 3) + 1], buffer[(px * 3)])); } } @@ -326,7 +326,7 @@ bmp_error_t bmpSaveScreenshot(const char* filename) for (x = 0; x < lcdWidth; x++) { rgb565 = lcdGetPixel(x, y - 1); // Get RGB565 pixel - bgra32 = drawRGB565toBGRA32(rgb565); // Convert RGB565 to 24-bit color + bgra32 = colorsRGB565toBGRA32(rgb565); // Convert RGB565 to 24-bit color r = (bgra32 & 0x00FF0000) >> 16; g = (bgra32 & 0x0000FF00) >> 8; b = (bgra32 & 0x000000FF); diff --git a/drivers/displays/tft/colors.h b/drivers/displays/tft/colors.h index eb39265..22f996a 100644 --- a/drivers/displays/tft/colors.h +++ b/drivers/displays/tft/colors.h @@ -91,4 +91,10 @@ #define COLOR_THEME_DEFAULT_SHADOW COLOR_THEME_LIMEGREEN_SHADOW #define COLOR_THEME_DEFAULT_ACCENT COLOR_THEME_LIMEGREEN_ACCENT +uint16_t colorsRGB24toRGB565 ( uint8_t r, uint8_t g, uint8_t b ); +uint32_t colorsRGB565toBGRA32 ( uint16_t color ); +uint16_t colorsBGR2RGB ( uint16_t color ); +uint16_t colorsDim ( uint16_t color, uint8_t intensity ); +uint16_t colorsBlend ( uint16_t bgColor, uint16_t foreColor, uint8_t intensity ); + #endif diff --git a/drivers/displays/tft/dialogues/alphanumeric.c b/drivers/displays/tft/dialogues/alphanumeric.c index 1912779..a3c14f6 100644 --- a/drivers/displays/tft/dialogues/alphanumeric.c +++ b/drivers/displays/tft/dialogues/alphanumeric.c @@ -172,21 +172,21 @@ void alphaRenderButton(uint8_t alphaPage, uint8_t col, uint8_t row, bool selecte { case '<': // Backspace - drawButton (alphaBtnX[col], alphaBtnY[row], ALPHA_BTN_WIDTH, &dejaVuSans9ptFontInfo, 7, border, fill, font, NULL); + drawButton (alphaBtnX[col], alphaBtnY[row], ALPHA_BTN_WIDTH, ALPHA_BTN_HEIGHT, &dejaVuSans9ptFontInfo, border, fill, font, NULL); drawArrow (alphaBtnX[col] + ALPHA_BTN_WIDTH / 2 - 3, alphaBtnY[row] + ALPHA_BTN_HEIGHT / 2, 7, DRAW_DIRECTION_LEFT, font); break; case '*': // Page Shift - drawButton (alphaBtnX[col], alphaBtnY[row], ALPHA_BTN_WIDTH, &dejaVuSans9ptFontInfo, 7, border, fill, font, NULL); + drawButton (alphaBtnX[col], alphaBtnY[row], ALPHA_BTN_WIDTH, ALPHA_BTN_HEIGHT, &dejaVuSans9ptFontInfo, border, fill, font, NULL); drawArrow (alphaBtnX[col] + ALPHA_BTN_WIDTH / 2, (alphaBtnY[row] + ALPHA_BTN_HEIGHT / 2) - 3, 7, DRAW_DIRECTION_UP, font); break; case '>': // OK - drawButton (alphaBtnX[col], alphaBtnY[row], ALPHA_BTN_WIDTH, &dejaVuSans9ptFontInfo, 7, border, fill, font, "OK"); + drawButton (alphaBtnX[col], alphaBtnY[row], ALPHA_BTN_WIDTH, ALPHA_BTN_HEIGHT, &dejaVuSans9ptFontInfo, border, fill, font, "OK"); break; default: // Standard character - drawButton (alphaBtnX[col], alphaBtnY[row], ALPHA_BTN_WIDTH, &dejaVuSans9ptFontInfo, 7, border, fill, font, key); + drawButton (alphaBtnX[col], alphaBtnY[row], ALPHA_BTN_WIDTH, ALPHA_BTN_HEIGHT, &dejaVuSans9ptFontInfo, border, fill, font, key); break; } } @@ -211,7 +211,7 @@ void alphaRefreshScreen(void) /* Render Text */ drawRectangleRounded(ALPHA_BTN_SPACING, ALPHA_BTN_SPACING, lcdGetWidth() - 1 - ALPHA_BTN_SPACING, ALPHA_KEYPAD_TOP - ALPHA_BTN_SPACING, ALPHA_COLOR_INPUTFILL, 10, DRAW_ROUNDEDCORNERS_ALL); - drawString(ALPHA_BTN_SPACING * 3, ALPHA_BTN_SPACING * 3, ALPHA_COLOR_INPUTTEXT, &dejaVuSans9ptFontInfo, (char *)&alphaString); + fontsDrawString(ALPHA_BTN_SPACING * 3, ALPHA_BTN_SPACING * 3, ALPHA_COLOR_INPUTTEXT, &dejaVuSans9ptFontInfo, (char *)&alphaString); } /**************************************************************************/ diff --git a/drivers/displays/tft/drawing.c b/drivers/displays/tft/drawing.c index b7da3a3..8161465 100644 --- a/drivers/displays/tft/drawing.c +++ b/drivers/displays/tft/drawing.c @@ -6,9 +6,6 @@ drawLine and drawCircle adapted from a tutorial by Leonard McMillan: http://www.cs.unc.edu/~mcmillan/ - drawString based on an example from Eran Duchan: - http://www.pavius.net/downloads/tools/53-the-dot-factory - @section LICENSE Software License Agreement (BSD License) @@ -66,50 +63,6 @@ void drawSwap(uint32_t a, uint32_t b) b = t; } -/**************************************************************************/ -/*! - @brief Draws a single bitmap character -*/ -/**************************************************************************/ -void drawCharBitmap(const uint16_t xPixel, const uint16_t yPixel, uint16_t color, const char *glyph, uint8_t cols, uint8_t rows) -{ - uint16_t currentY, currentX, indexIntoGlyph; - uint16_t _row, _col, _colPages; - - // set initial current y - currentY = yPixel; - currentX = xPixel; - - // 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 (_col = 0; _col < _colPages; _col++) - { - 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+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); - } - } -} - #if defined CFG_TFTLCD_INCLUDESMALLFONTS & CFG_TFTLCD_INCLUDESMALLFONTS == 1 /**************************************************************************/ /*! @@ -281,128 +234,6 @@ void drawStringSmall(uint16_t x, uint16_t y, uint16_t color, char* text, struct } #endif -/**************************************************************************/ -/*! - @brief Draws a string using the supplied font - - @param[in] x - Starting x co-ordinate - @param[in] y - Starting y co-ordinate - @param[in] color - Color to use when rendering the font - @param[in] fontInfo - Pointer to the FONT_INFO to use when drawing the string - @param[in] str - The string to render - - @section Example - - @code - - #include "drivers/displays/tft/fonts/dejavusans9.h" - - drawString(0, 90, COLOR_BLACK, &dejaVuSans9ptFontInfo, "DejaVu Sans 9"); - drawString(0, 105, COLOR_BLACK, &dejaVuSans9ptFontInfo, "123456789012345678901234567890"); - - @endcode -*/ -/**************************************************************************/ -void drawString(uint16_t x, uint16_t y, uint16_t color, const FONT_INFO *fontInfo, char *str) -{ - uint16_t currentX, charWidth, characterToOutput; - const FONT_CHAR_INFO *charInfo; - uint16_t charOffset; - - // set current x, y to that of requested - currentX = x; - - // while not NULL - while (*str != '\0') - { - // get character to output - characterToOutput = *str; - - // get char info - charInfo = fontInfo->charInfo; - - // some fonts have character descriptors, some don't - if (charInfo != NULL) - { - // get correct char offset - charInfo += (characterToOutput - fontInfo->startChar); - - // get width from char info - charWidth = charInfo->widthBits; - - // get offset from char info - charOffset = charInfo->offset; - } - else - { - // if no char info, char width is always 5 - charWidth = 5; - - // char offset - assume 5 * letter offset - charOffset = (characterToOutput - fontInfo->startChar) * 5; - } - - // Send individual characters - // 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, (const char *)(&fontInfo->data[charOffset]), charWidth, fontInfo->height); - - // next char X - currentX += charWidth + 1; - - // next char - str++; - } -} - -/**************************************************************************/ -/*! - @brief Returns the width in pixels of a string when it is rendered - - This method can be used to determine whether a string will fit - inside a specific area, or if it needs to be broken up into multiple - lines to be properly rendered on the screen. - - This function only applied to bitmap fonts (which can have variable - widths). All smallfonts (if available) are fixed width and can - easily have their width calculated without costly functions like - this one. - - @param[in] fontInfo - Pointer to the FONT_INFO for the font that will be used - @param[in] str - The string that will be rendered -*/ -/**************************************************************************/ -uint16_t drawGetStringWidth(const FONT_INFO *fontInfo, char *str) -{ - uint16_t width = 0; - uint32_t currChar; - uint32_t startChar = fontInfo->startChar; - - // until termination - for (currChar = *str; currChar; currChar = *(++str)) - { - // if char info exists for the font, use width from there - if (fontInfo->charInfo != NULL) - { - width += fontInfo->charInfo[currChar - startChar].widthBits + 1; - } - else - { - width += 5 + 1; - } - } - - /* return the width */ - return width > 0 ? width - 1 : width; -} - /**************************************************************************/ /*! @brief Draws a bresenham line @@ -987,6 +818,104 @@ void drawRectangleRounded ( uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, } } +/**************************************************************************/ +/*! + @brief Draws a gradient-filled rectangle + + @param[in] x0 + Starting x co-ordinate + @param[in] y0 + Starting y co-ordinate + @param[in] x1 + Ending x co-ordinate + @param[in] y1 + Ending y co-ordinate + @param[in] startColor + The color at the start of the gradient + @param[in] endColor + The color at the end of the gradient + + @section EXAMPLE + + @code + + #include "drivers/displays/tft/drawing.h" + #include "drivers/displays/tft/aafonts.h" + #include "drivers/displays/tft/aafonts/aa2/DejaVuSansCondensed14_AA2.h" + + // Draw a gradient-filled rectangle with anti-aliased text inside it + + uint16_t btnWidth, btnHeight, btnX, btnY; + uint16_t fntX, fntY; + + btnWidth = 200; + btnHeight = 20; + btnX = 10; + btnY = 30; + + lcdFillRGB(0xFFFF); + + drawRectangle(btnX-1, btnY-1, btnX+btnWidth+1, btnY+btnHeight+1, COLOR_GRAY_80); + drawGradient(btnX, btnY, btnX+btnWidth, btnY+btnHeight, COLOR_WHITE, COLOR_GRAY_128); + + // Center text vertically and horizontally + fntY = btnY + ((btnHeight - DejaVuSansCondensed14_AA2.fontHeight) / 2); + fntX = btnX + ((btnWidth - aafontsGetStringWidth(&DejaVuSansCondensed14_AA2, "Click to continue"))/2); + aafontsDrawString(fntX, fntY, COLORTABLE_AA2_BLACKONWHITE, &DejaVuSansCondensed14_AA2, "Click to continue"); + + @endcode +*/ +/**************************************************************************/ +void drawGradient ( uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t startColor, uint16_t endColor) +{ + int height; + uint16_t x, y; + uint8_t r, g, b; + int16_t rDelta, gDelta, bDelta; + + // Clear gradient steps, etc. + r = g = b = 0; + rDelta = gDelta = bDelta = 0; + + if (y1 < y0) + { + // Switch y1 and y0 + y = y1; + y1 = y0; + y0 = y; + } + + if (x1 < x0) + { + // Switch x1 and x0 + x = x1; + x1 = x0; + x0 = x; + } + + height = y1 - y0; + + // Calculate global r/g/b changes between start and end colors + rDelta = ((endColor >> 11) & 0x1F) - ((startColor >> 11) & 0x1F); + gDelta = ((endColor >> 5) & 0x3F) - ((startColor >> 5) & 0x3F); + bDelta = (endColor & 0x1F) - (startColor & 0x1F); + + // Calculate interpolation deltas to 2 decimal places (fixed point) + rDelta = (rDelta * 100) / height; + gDelta = (gDelta * 100) / height; + bDelta = (bDelta * 100) / height; + + // Draw individual lines + for (height = y0; y1 > height - 1; ++height) + { + // Calculate new rgb values based on: start color + (line number * interpolation delta) + r = ((startColor >> 11) & 0x1F) + ((rDelta * (height - y0)) / 100); + g = ((startColor >> 5) & 0x3F) + ((gDelta * (height - y0)) / 100); + b = (startColor & 0x1F) + ((bDelta * (height - y0)) / 100); + drawLine(x0, height, x1, height, ((r & 0x1F) << 11) | ((g & 0x3F) << 5) | (b & 0x1F)); + } +} + /**************************************************************************/ /*! @brief Draws a triangle @@ -1103,88 +1032,6 @@ void drawTriangleFilled ( uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, ui } } -/**************************************************************************/ -/*! - @brief Converts a 24-bit RGB color to an equivalent 16-bit RGB565 value - - @param[in] r - 8-bit red - @param[in] g - 8-bit green - @param[in] b - 8-bit blue - - @section Example - - @code - - // Get 16-bit equivalent of 24-bit color - uint16_t gray = drawRGB24toRGB565(0x33, 0x33, 0x33); - - @endcode -*/ -/**************************************************************************/ -uint16_t drawRGB24toRGB565(uint8_t r, uint8_t g, uint8_t b) -{ - return ((r / 8) << 11) | ((g / 4) << 5) | (b / 8); -} - -/**************************************************************************/ -/*! - @brief Converts a 16-bit RGB565 color to a standard 32-bit BGRA32 - color (with alpha set to 0xFF) - - @param[in] color - 16-bit rgb565 color - - @section Example - - @code - - // First convert 24-bit color to RGB565 - uint16_t rgb565 = drawRGB24toRGB565(0xFF, 0x00, 0x00); - - // Convert RGB565 color back to BGRA32 - uint32_t bgra32 = drawRGB565toBGRA32(rgb565); - - // Display results - printf("BGRA32: 0x%08X R: %u G: %u B: %u A: %u \r\n", - bgra32, - (bgra32 & 0x000000FF), // Blue - (bgra32 & 0x0000FF00) >> 8, // Green - (bgra32 & 0x00FF0000) >> 16, // Red - (bgra32 & 0xFF000000) >> 24); // Alpha - - @endcode -*/ -/**************************************************************************/ -uint32_t drawRGB565toBGRA32(uint16_t color) -{ - uint32_t bits = (uint32_t)color; - uint32_t blue = bits & 0x001F; // 5 bits blue - uint32_t green = bits & 0x07E0; // 6 bits green - uint32_t red = bits & 0xF800; // 5 bits red - - // Return shifted bits with alpha set to 0xFF - return (red << 8) | (green << 5) | (blue << 3) | 0xFF000000; -} - -/**************************************************************************/ -/*! - @brief Reverses a 16-bit color from BGR to RGB -*/ -/**************************************************************************/ -uint16_t drawBGR2RGB(uint16_t color) -{ - uint16_t r, g, b; - - b = (color>>0) & 0x1f; - g = (color>>5) & 0x3f; - r = (color>>11) & 0x1f; - - return( (b<<11) + (g<<5) + (r<<0) ); -} - /**************************************************************************/ /*! @brief Draws a progress bar with rounded corners @@ -1275,7 +1122,7 @@ void drawProgressBar ( uint16_t x, uint16_t y, uint16_t width, uint16_t height, #include "drivers/displays/tft/drawing.h" #include "drivers/displays/tft/fonts/dejavusans9.h" - // Draw two buttons using Vera Sans Bold 9 + // Draw two buttons using DejaVu Sans 9 drawButton(20, 195, 200, 35, &dejaVuSans9ptFontInfo, COLOR_GRAY_80, COLOR_GRAY_80, COLOR_WHITE, "System Settings"); drawButton(20, 235, 200, 35, &dejaVuSans9ptFontInfo, COLOR_THEME_LIMEGREEN_DARKER, COLOR_THEME_LIMEGREEN_BASE, COLOR_BLACK, "System Settings"); @@ -1292,10 +1139,10 @@ void drawButton(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const F // Render text if (text != NULL) { - uint16_t textWidth = drawGetStringWidth(&*fontInfo, text); + uint16_t textWidth = fontsGetStringWidth(&*fontInfo, text); uint16_t xStart = x + (width / 2) - (textWidth / 2); uint16_t yStart = y + (height / 2) - (fontInfo->height / 2) + 1; - drawString(xStart, yStart, fontclr, &*fontInfo, text); + fontsDrawString(xStart, yStart, fontclr, &*fontInfo, text); } } diff --git a/drivers/displays/tft/drawing.h b/drivers/displays/tft/drawing.h index 5009d3b..48a3c79 100644 --- a/drivers/displays/tft/drawing.h +++ b/drivers/displays/tft/drawing.h @@ -2,14 +2,12 @@ /*! @file drawing.h @author K. Townsend (microBuilder.eu) - @date 22 March 2010 - @version 0.10 @section LICENSE Software License Agreement (BSD License) - Copyright (c) 2010, microBuilder SARL + Copyright (c) 2012, microBuilder SARL All rights reserved. Redistribution and use in source and binary forms, with or without @@ -41,7 +39,7 @@ #include "projectconfig.h" #include "lcd.h" #include "colors.h" -#include "drivers/displays/tft/fonts/bitmapfonts.h" +#include "fonts.h" #if defined CFG_TFTLCD_INCLUDESMALLFONTS & CFG_TFTLCD_INCLUDESMALLFONTS == 1 #include "drivers/displays/smallfonts.h" @@ -96,16 +94,12 @@ void drawArrow ( uint16_t x, uint16_t y, uint16_t size, drawDire void drawRectangle ( uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color ); void drawRectangleFilled ( uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color ); void drawRectangleRounded ( uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color, uint16_t radius, drawRoundedCorners_t corners ); -void drawTriangle ( uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color); -void drawTriangleFilled ( uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color); -void drawString ( uint16_t x, uint16_t y, uint16_t color, const FONT_INFO *fontInfo, char *str ); -uint16_t drawGetStringWidth ( const FONT_INFO *fontInfo, char *str ); +void drawGradient ( uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t startColor, uint16_t endColor ); +void drawTriangle ( uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color ); +void drawTriangleFilled ( uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color ); void drawProgressBar ( uint16_t x, uint16_t y, uint16_t width, uint16_t height, drawRoundedCorners_t borderCorners, drawRoundedCorners_t progressCorners, uint16_t borderColor, uint16_t borderFillColor, uint16_t progressBorderColor, uint16_t progressFillColor, uint8_t progress ); void drawButton ( uint16_t x, uint16_t y, uint16_t width, uint16_t height, const FONT_INFO *fontInfo, uint16_t borderclr, uint16_t fillclr, uint16_t fontclr, char* text ); void drawIcon16 ( uint16_t x, uint16_t y, uint16_t color, uint16_t icon[] ); -uint16_t drawRGB24toRGB565 ( uint8_t r, uint8_t g, uint8_t b ); -uint32_t drawRGB565toBGRA32 ( uint16_t color ); -uint16_t drawBGR2RGB ( uint16_t color ); #if defined CFG_TFTLCD_INCLUDESMALLFONTS & CFG_TFTLCD_INCLUDESMALLFONTS == 1 void drawStringSmall ( uint16_t x, uint16_t y, uint16_t color, char* text, struct FONT_DEF font ); diff --git a/drivers/displays/tft/fonts/dejavusans9.h b/drivers/displays/tft/fonts/dejavusans9.h index c5f4af0..fd9d00f 100644 --- a/drivers/displays/tft/fonts/dejavusans9.h +++ b/drivers/displays/tft/fonts/dejavusans9.h @@ -1,7 +1,7 @@ #ifndef __DEJA_VU_SANS_9__ #define __DEJA_VU_SANS_9__ -#include "bitmapfonts.h" +#include "../fonts.h" extern const uint8_t dejaVuSans9ptCharBitmaps[]; extern const FONT_CHAR_INFO dejaVuSans9ptCharDescriptors[]; diff --git a/drivers/displays/tft/fonts/dejavusansbold9.h b/drivers/displays/tft/fonts/dejavusansbold9.h index d4b6490..3521ef9 100644 --- a/drivers/displays/tft/fonts/dejavusansbold9.h +++ b/drivers/displays/tft/fonts/dejavusansbold9.h @@ -1,7 +1,7 @@ #ifndef __DEJA_VU_SANS_BOLD_9__ #define __DEJA_VU_SANS_BOLD_9__ -#include "bitmapfonts.h" +#include "../fonts.h" extern const uint8_t dejaVuSansBold9ptCharBitmaps[]; extern const FONT_CHAR_INFO dejaVuSansBold9ptCharDescriptors[]; diff --git a/drivers/displays/tft/fonts/dejavusanscondensed9.h b/drivers/displays/tft/fonts/dejavusanscondensed9.h index a07c51f..0a751fe 100644 --- a/drivers/displays/tft/fonts/dejavusanscondensed9.h +++ b/drivers/displays/tft/fonts/dejavusanscondensed9.h @@ -1,7 +1,7 @@ #ifndef __DEJA_VU_SANS_CONDENSED_9__ #define __DEJA_VU_SANS_CONDENSED_9__ -#include "bitmapfonts.h" +#include "../fonts.h" extern const uint8_t dejaVuSansCondensed9ptCharBitmaps[]; extern const FONT_CHAR_INFO dejaVuSansCondensed9ptCharDescriptors[]; diff --git a/drivers/displays/tft/fonts/dejavusansmono8.h b/drivers/displays/tft/fonts/dejavusansmono8.h index 3310409..f831837 100644 --- a/drivers/displays/tft/fonts/dejavusansmono8.h +++ b/drivers/displays/tft/fonts/dejavusansmono8.h @@ -1,7 +1,7 @@ #ifndef __DEJA_VU_SANS_MONO_8__ #define __DEJA_VU_SANS_MONO_8__ -#include "bitmapfonts.h" +#include "../fonts.h" extern const uint8_t dejaVuSansMono8ptCharBitmaps[]; extern const FONT_CHAR_INFO dejaVuSansMono8ptCharDescriptors[]; diff --git a/drivers/displays/tft/fonts/dejavusansmonobold8.h b/drivers/displays/tft/fonts/dejavusansmonobold8.h index 4a38f88..6fc8a24 100644 --- a/drivers/displays/tft/fonts/dejavusansmonobold8.h +++ b/drivers/displays/tft/fonts/dejavusansmonobold8.h @@ -1,7 +1,7 @@ #ifndef __DEJA_VU_SANS_MONO_BOLD_8__ #define __DEJA_VU_SANS_MONO_BOLD_8__ -#include "bitmapfonts.h" +#include "../fonts.h" extern const uint8_t dejaVuSansMonoBold8ptCharBitmaps[]; extern const FONT_CHAR_INFO dejaVuSansMonoBold8ptCharDescriptors[]; diff --git a/drivers/displays/tft/fonts/verdana14.h b/drivers/displays/tft/fonts/verdana14.h index 9a84419..f1a619c 100644 --- a/drivers/displays/tft/fonts/verdana14.h +++ b/drivers/displays/tft/fonts/verdana14.h @@ -1,7 +1,7 @@ #ifndef __VERDANA_14__ #define __VERDANA_14__ -#include "bitmapfonts.h" +#include "../fonts.h" /* Font data for Verdana 14pt */ extern const uint8_t verdana14ptBitmaps[]; diff --git a/drivers/displays/tft/fonts/verdana9.h b/drivers/displays/tft/fonts/verdana9.h index 57fcfe0..e3e5808 100644 --- a/drivers/displays/tft/fonts/verdana9.h +++ b/drivers/displays/tft/fonts/verdana9.h @@ -1,7 +1,7 @@ #ifndef __VERDANA_9__ #define __VERDANA_9__ -#include "bitmapfonts.h" +#include "../fonts.h" /* Font data for Verdana 9pt */ extern const uint8_t verdana9ptBitmaps[]; diff --git a/drivers/displays/tft/fonts/verdanabold14.h b/drivers/displays/tft/fonts/verdanabold14.h index 0474fc7..f3d5812 100644 --- a/drivers/displays/tft/fonts/verdanabold14.h +++ b/drivers/displays/tft/fonts/verdanabold14.h @@ -1,7 +1,7 @@ #ifndef __VERDANA_BOLD_14__ #define __VERDANA_BOLD_14__ -#include "bitmapfonts.h" +#include "../fonts.h" /* Font data for Verdana Bold 14pt */ extern const uint8_t verdanabold14ptBitmaps[]; diff --git a/drivers/displays/tft/hw/hx8340b.h b/drivers/displays/tft/hw/hx8340b.h index d425324..f7d4bf2 100644 --- a/drivers/displays/tft/hw/hx8340b.h +++ b/drivers/displays/tft/hw/hx8340b.h @@ -50,7 +50,7 @@ #endif /************************************************************************** - BTL221722-276L CONNECTOR (Use HX8340B_ICVERSION_N) + BTL221722-276L CONNECTOR (HX8340B_ICVERSION_N) ----------------------------------------------------------------------- Pin Function Notes === ============== =============================== diff --git a/drivers/displays/tft/touchscreen.c b/drivers/displays/tft/touchscreen.c index 3370c5f..c66619f 100644 --- a/drivers/displays/tft/touchscreen.c +++ b/drivers/displays/tft/touchscreen.c @@ -170,7 +170,7 @@ uint32_t tsReadY(void) /**************************************************************************/ void tsCalibCenterText(char* text, uint16_t y, uint16_t color) { - drawString((lcdGetWidth() - drawGetStringWidth(&dejaVuSans9ptFontInfo, text)) / 2, y, color, &dejaVuSans9ptFontInfo, text); + fontsDrawString((lcdGetWidth() - fontsGetStringWidth(&dejaVuSans9ptFontInfo, text)) / 2, y, color, &dejaVuSans9ptFontInfo, text); } /**************************************************************************/