Refactor after the new mware/gfx API.
authorbernie <bernie@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 11 Aug 2004 07:32:54 +0000 (07:32 +0000)
committerbernie <bernie@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 11 Aug 2004 07:32:54 +0000 (07:32 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@130 38d2e660-2303-0410-9eaa-f027e97ec537

mware/charts.c
mware/charts.h

index 469f6f28a1d4b2f9dab046e8b9e3ab1c1cd9fc23..6737041abd680c811a16ad79bb12d6919afbddb2 100755 (executable)
@@ -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.
  *
 #include <mware/gfx.h>
 
 
-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);
 }
 
index 8dec2c60e48fd11bbc11a383687688a792bab975..3b407ff0a25a13da52b596cad007904f6c2af4f6 100755 (executable)
@@ -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.
  *
 #ifndef MWARE_CHARTS_H
 #define MWARE_CHARTS_H
 
-#include <gfx.h> /* vcoord_t */
-
-/*!
- * \name Width/height of the chart bitmap in pixels
- * \{
- */
-#define BM_WIDTH       PRT_HRES
-#define BM_HEIGHT      120
-/*\}*/
+#include <mware/gfx.h> /* vcoord_t */
 
 /*!
  * \name Width/height of the small ticks drawn over the axes
  * \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 */