From: bernie Date: Wed, 11 Aug 2004 07:32:54 +0000 (+0000) Subject: Refactor after the new mware/gfx API. X-Git-Tag: 1.0.0~1111 X-Git-Url: https://codewiz.org/gitweb?a=commitdiff_plain;h=d3e358f62b2048b1ef96059cccc5ffeaeabc2eea;p=bertos.git Refactor after the new mware/gfx API. git-svn-id: https://src.develer.com/svnoss/bertos/trunk@130 38d2e660-2303-0410-9eaa-f027e97ec537 --- diff --git a/mware/charts.c b/mware/charts.c index 469f6f28..6737041a 100755 --- a/mware/charts.c +++ b/mware/charts.c @@ -26,6 +26,9 @@ /* * $Log$ + * Revision 1.2 2004/08/11 07:32:54 bernie + * Refactor after the new mware/gfx API. + * * Revision 1.1 2004/08/04 03:16:30 bernie * Import simple chart drawing code. * @@ -35,38 +38,18 @@ #include -static Bitmap ChartBitmap; - -/*! - * Raster buffer to draw into. - * - * Bits in the bitmap bytes have vertical orientation, - * as required by the printer driver. - */ -DECLARE_WALL(wall_before_raster, WALL_SIZE) -static uint8_t ChartRaster[BM_WIDTH * ((BM_HEIGHT + 7) / 8)]; -DECLARE_WALL(wall_after_raster, WALL_SIZE) - - -Bitmap *chart_init(vcoord_t xmin, vcoord_t ymin, vcoord_t xmax, vcoord_t ymax) +void chart_init(Bitmap *bm, vcoord_t xmin, vcoord_t ymin, vcoord_t xmax, vcoord_t ymax) { - /* Initialize anti-corruption walls */ - INIT_WALL(wall_before_raster, WALL_SIZE); - INIT_WALL(wall_after_raster, WALL_SIZE); - - gfx_InitBitMap(&ChartBitmap, ChartRaster, BM_WIDTH, BM_HEIGHT); - gfx_ClearBitMap(&ChartBitmap); - gfx_DrawAxis(&ChartBitmap); - - gfx_SetClipRect(&ChartBitmap, CHART_BORDERLEFT, CHART_BORDERTOP, - BM_WIDTH - CHART_BORDERRIGHT - 1, BM_HEIGHT - CHART_BORDERBOTTOM - 1); + gfx_ClearBitmap(bm); + chart_drawAxis(bm); - gfx_SetViewRect(&ChartBitmap, xmin, ymin, xmax, ymax); + gfx_SetClipRect(bm, CHART_BORDERLEFT, CHART_BORDERTOP, + bm->width - CHART_BORDERRIGHT - 1, bm->height - CHART_BORDERBOTTOM - 1); - CHECK_WALL(wall_before_raster, WALL_SIZE); - CHECK_WALL(wall_after_raster, WALL_SIZE); + gfx_SetViewRect(bm, xmin, ymin, xmax, ymax); - return &ChartBitmap; + //CHECK_WALL(wall_before_raster, WALL_SIZE); + //CHECK_WALL(wall_after_raster, WALL_SIZE); } @@ -92,8 +75,8 @@ void chart_drawAxis(Bitmap *bm) gfx_LineTo(bm, CHART_BORDERLEFT + CHART_WIDTH - 1, CHART_BORDERTOP + CHART_HEIGHT - 1); gfx_LineTo(bm, CHART_BORDERLEFT + CHART_WIDTH - 4, CHART_BORDERTOP + CHART_HEIGHT - 3); - CHECK_WALL(wall_before_raster, WALL_SIZE); - CHECK_WALL(wall_after_raster, WALL_SIZE); + //CHECK_WALL(wall_before_raster, WALL_SIZE); + //CHECK_WALL(wall_after_raster, WALL_SIZE); } @@ -111,8 +94,8 @@ void chart_drawCurve(Bitmap *bm, const vcoord_t *curve_y, int curve_cnt) for (i = 1; i < curve_cnt; i++) gfx_LineTo(bm, gfx_TransformX(bm, i), gfx_TransformY(bm, curve_y[i])); - CHECK_WALL(wall_before_raster, WALL_SIZE); - CHECK_WALL(wall_after_raster, WALL_SIZE); + //CHECK_WALL(wall_before_raster, WALL_SIZE); + //CHECK_WALL(wall_after_raster, WALL_SIZE); } @@ -120,7 +103,7 @@ void chart_drawCurve(Bitmap *bm, const vcoord_t *curve_y, int curve_cnt) * Disegna dei dot in corrispondenza delle coppie (dotsx[i];dotsy[i]) * Se dotsx e' NULL, i punti vengono disegnati ad intervalli regolari. */ -void chart_drawDots(BitMap *bm, const vcoord_t *dotsx, const vcoord_t *dotsy, int cnt) +void chart_drawDots(Bitmap *bm, const vcoord_t *dotsx, const vcoord_t *dotsy, int cnt) { int i; coord_t x, y; @@ -137,10 +120,10 @@ void chart_drawDots(BitMap *bm, const vcoord_t *dotsx, const vcoord_t *dotsy, in gfx_DrawRect(bm, x - 1, y - 1, x + 1, y + 1); /* Disegna ticks sull'asse X */ - gfx_DrawLine(bm, x, BM_HEIGHT - 1, x, CHART_HEIGHT - 1); + gfx_DrawLine(bm, x, bm->height - 1, x, CHART_HEIGHT - 1); } - CHECK_WALL(wall_before_raster, WALL_SIZE); - CHECK_WALL(wall_after_raster, WALL_SIZE); + //CHECK_WALL(wall_before_raster, WALL_SIZE); + //CHECK_WALL(wall_after_raster, WALL_SIZE); } diff --git a/mware/charts.h b/mware/charts.h index 8dec2c60..3b407ff0 100755 --- a/mware/charts.h +++ b/mware/charts.h @@ -14,6 +14,9 @@ /* * $Log$ + * Revision 1.2 2004/08/11 07:32:54 bernie + * Refactor after the new mware/gfx API. + * * Revision 1.1 2004/08/04 03:16:30 bernie * Import simple chart drawing code. * @@ -21,15 +24,7 @@ #ifndef MWARE_CHARTS_H #define MWARE_CHARTS_H -#include /* vcoord_t */ - -/*! - * \name Width/height of the chart bitmap in pixels - * \{ - */ -#define BM_WIDTH PRT_HRES -#define BM_HEIGHT 120 -/*\}*/ +#include /* vcoord_t */ /*! * \name Width/height of the small ticks drawn over the axes @@ -53,15 +48,15 @@ * \name Chart size in pixels * \{ */ -#define CHART_WIDTH (BM_WIDTH - CHART_BORDERLEFT - CHART_BORDERRIGHT) -#define CHART_HEIGHT (BM_HEIGHT - CHART_BORDERTOP - CHART_BORDERBOTTOM) +#define CHART_WIDTH (bm->width - CHART_BORDERLEFT - CHART_BORDERRIGHT) +#define CHART_HEIGHT (bm->height - CHART_BORDERTOP - CHART_BORDERBOTTOM) /*\}*/ /* Public function protos */ -extern BitMap *chart_init(vcoord_t xmin, vcoord_t ymin, float xmax, float ymax); -extern void chart_drawAxis(BitMap *bm); -extern void chart_drawCurve(BitMap *bm, const vcoord_t *curve_y, int curve_cnt); -extern void chart_drawDots(BitMap *bm, const vcoord_t *dotsx, const float *dotsy, int cnt); +extern void chart_init(Bitmap *bm, vcoord_t xmin, vcoord_t ymin, vcoord_t xmax, vcoord_t ymax); +extern void chart_drawAxis(Bitmap *bm); +extern void chart_drawCurve(Bitmap *bm, const vcoord_t *curve_y, int curve_cnt); +extern void chart_drawDots(Bitmap *bm, const vcoord_t *dotsx, const vcoord_t *dotsy, int cnt); #endif /* MWARE_CHARTS_H */