From bd573fbef19fd1a9e28c95e248d1279ad706ae75 Mon Sep 17 00:00:00 2001 From: Kumar Abhishek Date: Tue, 12 Jun 2012 18:06:06 +0530 Subject: Changes in the Text Rendering API The code now uses my API Pls contact for further documentation --- glcd.h | 121 ++++++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 70 insertions(+), 51 deletions(-) (limited to 'glcd.h') diff --git a/glcd.h b/glcd.h index 5a2ac0c8..d39b7c5c 100644 --- a/glcd.h +++ b/glcd.h @@ -1,51 +1,70 @@ -#ifndef GLCD_H -#define GLCD_H - -#include "ch.h" -#include "hal.h" -#include "drivers/ssd1289_lld.h" -#include "drivers/s6d1121_lld.h" - -#define SCREEN_WIDTH 240 -#define SCREEN_HEIGHT 320 - -#define PORTRAIT (lcdGetOrientation() == portrait || lcdGetOrientation() == portraitInv) -#define LANDSCAPE (lcdGetOrientation() == landscape || lcdGetOrientation() == landscapeInv) - -/* LCD color */ -#define White 0xFFFF -#define Black 0x0000 -#define Grey 0xF7DE -#define Blue 0x001F -#define Blue2 0x051F -#define Red 0xF800 -#define Magenta 0xF81F -#define Green 0x07E0 -#define Cyan 0x7FFF -#define Yellow 0xFFE0 - -#define RGB565CONVERT(red, green, blue) \ -(uint16_t)( (( red >> 3 ) << 11 ) | (( green >> 2 ) << 5 ) | ( blue >> 3 )) - -enum orientation {portrait, landscape, portraitInv, landscapeInv}; -enum filled {frame, filled}; - -void lcdInit(void); -void lcdClear(uint16_t color); -void lcdSetOrientation(uint8_t newOrientation); -void lcdSetWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1); -void lcdFillArea(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color); -void lcdDrawPixel(uint16_t x, uint16_t y, uint16_t point); -void lcdDrawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color); -void lcdDrawRect(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint8_t filled, uint16_t color); -void lcdDrawRectString(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint8_t* str, uint16_t fontColor, uint16_t bkColor); -void lcdDrawCircle(uint16_t x, uint16_t y, uint16_t radius, uint8_t filled, uint16_t color); -void lcdDrawString(uint16_t x, uint16_t y, const char *str, uint16_t color, uint16_t bkColor); -void lcdDrawChar(uint16_t x, uint16_t y, const char c, uint16_t charcolor, uint16_t bkColor); -uint16_t lcdGetHeight(void); -uint16_t lcdGetWidth(void); -uint16_t lcdGetOrientation(void); -uint16_t lcdBGR2RGB(uint16_t color); -uint16_t lcdGetPixelColor(uint16_t x, uint16_t y); - -#endif +#ifndef GLCD_H +#define GLCD_H + +#include "ch.h" +#include "hal.h" +#include "drivers/ssd1289_lld.h" +#include "drivers/s6d1121_lld.h" + +#define SCREEN_WIDTH 240 +#define SCREEN_HEIGHT 320 + +#define PORTRAIT (lcdGetOrientation() == portrait || lcdGetOrientation() == portraitInv) +#define LANDSCAPE (lcdGetOrientation() == landscape || lcdGetOrientation() == landscapeInv) + +/* LCD color */ +#define White 0xFFFF +#define Black 0x0000 +#define Grey 0xF7DE +#define Blue 0x001F +#define Blue2 0x051F +#define Red 0xF800 +#define Magenta 0xF81F +#define Green 0x07E0 +#define Cyan 0x7FFF +#define Yellow 0xFFE0 + +#define RGB565CONVERT(red, green, blue) \ +(uint16_t)( (( red >> 3 ) << 11 ) | (( green >> 2 ) << 5 ) | ( blue >> 3 )) + +enum orientation {portrait, landscape, portraitInv, landscapeInv}; +enum filled {frame, filled}; + +// For text rendering only +extern uint16_t bgcolor, fgcolor; +extern uint16_t cx, cy; +extern const uint8_t* font; + +// A few macros +#define lcdGotoXY(x,y) { cx=x; cy=y; } +#define lcdGetCurFontHeight() (font[FONT_TABLE_HEIGHT_IDX]) +#define lcdSetFont(fnt) { font=fnt; } + +void lcdInit(void); + +void lcdClear(uint16_t color); +void lcdSetOrientation(uint8_t newOrientation); +void lcdSetWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1); +void lcdFillArea(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color); + +void lcdDrawPixel(uint16_t x, uint16_t y, uint16_t point); +void lcdDrawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color); +void lcdDrawRect(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint8_t filled, uint16_t color); +void lcdDrawRectString(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, const char* str, uint16_t fontColor, uint16_t bkColor); +void lcdDrawCircle(uint16_t x, uint16_t y, uint16_t radius, uint8_t filled, uint16_t color); + +void lcdDrawChar(char c); +void lcdDrawString(const char *str); +void lcdLineBreak(void); + +uint16_t lcdMeasureChar(char c); +uint16_t lcdMeasureString(const char* str); + +uint16_t lcdGetHeight(void); +uint16_t lcdGetWidth(void); +uint16_t lcdGetOrientation(void); + +uint16_t lcdBGR2RGB(uint16_t color); +uint16_t lcdGetPixelColor(uint16_t x, uint16_t y); + +#endif -- cgit v1.2.3 From 2f157e29de212b0b21523cf5338369e51782870a Mon Sep 17 00:00:00 2001 From: Kumar Abhishek Date: Wed, 13 Jun 2012 19:14:38 +0530 Subject: Restored prev implementation of lcdDrawString() Support for transparent/non-transparent text rendering via lcdEnableTransparentText(). It is disabled by default. --- glcd.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'glcd.h') diff --git a/glcd.h b/glcd.h index d39b7c5c..3c5460fe 100644 --- a/glcd.h +++ b/glcd.h @@ -53,8 +53,10 @@ void lcdDrawRect(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint8_t fil void lcdDrawRectString(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, const char* str, uint16_t fontColor, uint16_t bkColor); void lcdDrawCircle(uint16_t x, uint16_t y, uint16_t radius, uint8_t filled, uint16_t color); +void lcdEnableTransparentText(uint8_t en); void lcdDrawChar(char c); -void lcdDrawString(const char *str); +void lcdPutString(const char *str); +void lcdDrawString(uint16_t x, uint16_t y, const char *str, uint16_t color, uint16_t bkcolor); void lcdLineBreak(void); uint16_t lcdMeasureChar(char c); -- cgit v1.2.3