From 07f34835358ef65de310934ae726b66c7ca46f68 Mon Sep 17 00:00:00 2001 From: Andrew Hannam Date: Thu, 6 Dec 2012 18:45:54 +1000 Subject: Restructure Create global include file called gfx.h which knows about sub-system dependancies. Deprecate Touchscreen (GINPUT touch is now working properly) Merge Graph into GWIN Change directory structure to reflect sub-system structure Many small bugs fixed Split Nokia6610 gdisp driver into GE8 and GE12 controller versions Fixed broken demos. GFX sub-systems are now clearly defined and new ones should be much easier to add. --- demos/applications/notepad/main.c | 39 ++++++++++++--------------------------- 1 file changed, 12 insertions(+), 27 deletions(-) (limited to 'demos/applications/notepad/main.c') diff --git a/demos/applications/notepad/main.c b/demos/applications/notepad/main.c index 7fec864f..e1b0e333 100644 --- a/demos/applications/notepad/main.c +++ b/demos/applications/notepad/main.c @@ -20,8 +20,7 @@ #include "ch.h" #include "hal.h" -#include "gdisp.h" -#include "touchscreen.h" +#include "gfx.h" #define COLOR_SIZE 20 #define PEN_SIZE 20 @@ -36,25 +35,9 @@ #define DRAW_AREA(x, y) (x >= PEN_SIZE + OFFSET + 3 && x <= gdispGetWidth() && \ y >= COLOR_SIZE + OFFSET + 3 && y <= gdispGetHeight()) -static const SPIConfig spicfg = { - NULL, - TP_CS_PORT, - TP_CS, - /* SPI_CR1_BR_2 | */ SPI_CR1_BR_1 | SPI_CR1_BR_0, -}; - -TouchscreenDriver TOUCHPADD1 = { - &SPID1, - &spicfg, - TP_IRQ_PORT, - TP_IRQ, - TRUE -}; - void drawScreen(void) { char *msg = "ChibiOS/GFX"; - gdispSetOrientation(GDISP_ROTATE_90); gdispClear(White); gdispDrawString(gdispGetWidth()-gdispGetStringWidth(msg, &fontUI2Double)-3, 3, msg, &fontUI2Double, Black); @@ -74,8 +57,9 @@ void drawScreen(void) { gdispDrawString(OFFSET * 2, DRAW_PEN(5), "5", &fontLargeNumbers, Black); } +GEventMouse ev; + int main(void) { - volatile uint16_t x, y; color_t color = Black; uint16_t pen = 0; @@ -83,16 +67,17 @@ int main(void) { chSysInit(); gdispInit(); - tsInit(&TOUCHPADD1); + ginputGetMouse(0); drawScreen(); while (TRUE) { - x = tsReadX(); - y = tsReadY(); + ginputGetMouseStatus(0, &ev); + if (!(ev->current_buttons & GINPUT_MOUSE_BTN_LEFT)) + continue; /* inside color box ? */ - if(y >= OFFSET && y <= COLOR_SIZE) { + if(ev->y >= OFFSET && ev->y <= COLOR_SIZE) { if(GET_COLOR(0)) color = Black; else if(GET_COLOR(1)) color = Red; else if(GET_COLOR(2)) color = Yellow; @@ -101,7 +86,7 @@ int main(void) { else if(GET_COLOR(5)) color = White; /* inside pen box ? */ - } else if(x >= OFFSET && x <= PEN_SIZE) { + } else if(ev->x >= OFFSET && ev->x <= PEN_SIZE) { if(GET_PEN(1)) pen = 0; else if(GET_PEN(2)) pen = 1; else if(GET_PEN(3)) pen = 2; @@ -109,11 +94,11 @@ int main(void) { else if(GET_PEN(5)) pen = 4; /* inside drawing area ? */ - } else if(DRAW_AREA(x, y)) { + } else if(DRAW_AREA(ev->x, ev->y)) { if(pen == 0) - gdispDrawPixel(x, y, color); + gdispDrawPixel(ev->x, ev->y, color); else - gdispFillCircle(x, y, pen, color); + gdispFillCircle(ev->x, ev->y, pen, color); } } } -- cgit v1.2.3 From 5873d87ca2185e825f1187eca3bc7f0de7437e69 Mon Sep 17 00:00:00 2001 From: Andrew Hannam Date: Fri, 7 Dec 2012 00:52:01 +1000 Subject: Add GDISP font routines. Fix demo bugs Add GDISP font routines to Open and Close a font by name. Allows wildcard searching for fonts. Old global font variables are now only optionally included (soon to be deprecated). More demo fixing --- demos/applications/notepad/main.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) (limited to 'demos/applications/notepad/main.c') diff --git a/demos/applications/notepad/main.c b/demos/applications/notepad/main.c index e1b0e333..71978488 100644 --- a/demos/applications/notepad/main.c +++ b/demos/applications/notepad/main.c @@ -26,8 +26,8 @@ #define PEN_SIZE 20 #define OFFSET 3 -#define COLOR_BOX(a) (x >= a && x <= a + COLOR_SIZE) -#define PEN_BOX(a) (y >= a && y <= a + COLOR_SIZE) +#define COLOR_BOX(a) (ev.x >= a && ev.x <= a + COLOR_SIZE) +#define PEN_BOX(a) (ev.y >= a && ev.y <= a + COLOR_SIZE) #define GET_COLOR(a) (COLOR_BOX(a * COLOR_SIZE + OFFSET)) #define GET_PEN(a) (PEN_BOX(a * 2 * PEN_SIZE + OFFSET)) #define DRAW_COLOR(a) (a * COLOR_SIZE + OFFSET) @@ -37,9 +37,13 @@ void drawScreen(void) { char *msg = "ChibiOS/GFX"; + font_t font1, font2; + + font1 = gdispOpenFont("UI2 Double"); + font2 = gdispOpenFont("LargeNumbers"); gdispClear(White); - gdispDrawString(gdispGetWidth()-gdispGetStringWidth(msg, &fontUI2Double)-3, 3, msg, &fontUI2Double, Black); + gdispDrawString(gdispGetWidth()-gdispGetStringWidth(msg, font1)-3, 3, msg, font1, Black); /* colors */ gdispFillArea(0 * COLOR_SIZE + 3, 3, COLOR_SIZE, COLOR_SIZE, Black); /* Black */ @@ -50,11 +54,14 @@ void drawScreen(void) { gdispDrawBox (5 * COLOR_SIZE + 3, 3, COLOR_SIZE, COLOR_SIZE, Black); /* White */ /* pens */ - gdispDrawString(OFFSET * 2, DRAW_PEN(1), "1", &fontLargeNumbers, Black); - gdispDrawString(OFFSET * 2, DRAW_PEN(2), "2", &fontLargeNumbers, Black); - gdispDrawString(OFFSET * 2, DRAW_PEN(3), "3", &fontLargeNumbers, Black); - gdispDrawString(OFFSET * 2, DRAW_PEN(4), "4", &fontLargeNumbers, Black); - gdispDrawString(OFFSET * 2, DRAW_PEN(5), "5", &fontLargeNumbers, Black); + gdispDrawString(OFFSET * 2, DRAW_PEN(1), "1", font2, Black); + gdispDrawString(OFFSET * 2, DRAW_PEN(2), "2", font2, Black); + gdispDrawString(OFFSET * 2, DRAW_PEN(3), "3", font2, Black); + gdispDrawString(OFFSET * 2, DRAW_PEN(4), "4", font2, Black); + gdispDrawString(OFFSET * 2, DRAW_PEN(5), "5", font2, Black); + + gdispCloseFont(font1); + gdispCloseFont(font2); } GEventMouse ev; @@ -73,11 +80,11 @@ int main(void) { while (TRUE) { ginputGetMouseStatus(0, &ev); - if (!(ev->current_buttons & GINPUT_MOUSE_BTN_LEFT)) + if (!(ev.current_buttons & GINPUT_MOUSE_BTN_LEFT)) continue; /* inside color box ? */ - if(ev->y >= OFFSET && ev->y <= COLOR_SIZE) { + if(ev.y >= OFFSET && ev.y <= COLOR_SIZE) { if(GET_COLOR(0)) color = Black; else if(GET_COLOR(1)) color = Red; else if(GET_COLOR(2)) color = Yellow; @@ -86,7 +93,7 @@ int main(void) { else if(GET_COLOR(5)) color = White; /* inside pen box ? */ - } else if(ev->x >= OFFSET && ev->x <= PEN_SIZE) { + } else if(ev.x >= OFFSET && ev.x <= PEN_SIZE) { if(GET_PEN(1)) pen = 0; else if(GET_PEN(2)) pen = 1; else if(GET_PEN(3)) pen = 2; @@ -94,11 +101,11 @@ int main(void) { else if(GET_PEN(5)) pen = 4; /* inside drawing area ? */ - } else if(DRAW_AREA(ev->x, ev->y)) { + } else if(DRAW_AREA(ev.x, ev.y)) { if(pen == 0) - gdispDrawPixel(ev->x, ev->y, color); + gdispDrawPixel(ev.x, ev.y, color); else - gdispFillCircle(ev->x, ev->y, pen, color); + gdispFillCircle(ev.x, ev.y, pen, color); } } } -- cgit v1.2.3