X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=mware%2Fgfx.h;h=cb030b579b8fe32f7c63a3c3f86b141a1b2634ec;hb=0d0db1a58035a25ebb6ca6eaa035ec13b4c581a0;hp=16f34e6fc19d7311fecb4cf5150434be99298e1d;hpb=37d3acaa622b7f695ce57578e56311d031a22d22;p=bertos.git diff --git a/mware/gfx.h b/mware/gfx.h index 16f34e6f..cb030b57 100755 --- a/mware/gfx.h +++ b/mware/gfx.h @@ -1,8 +1,8 @@ /*! * \file - * Copyright (C) 1999 Bernardo Innocenti - * Copyright (C) 2003 Develer S.r.l. (http://www.develer.com/) - * All Rights Reserved. + * Copyright 2003, 2004 Develer S.r.l. (http://www.develer.com/) + * Copyright 1999 Bernardo Innocenti + * This file is part of DevLib - See devlib/README for information. * * \version $Id$ * @@ -12,46 +12,49 @@ * \brief General pourpose graphics routines */ -/* - * $Log$ - * Revision 1.1 2004/05/23 15:43:16 bernie - * Import mware modules. - * - * Revision 1.4 2004/02/09 00:21:28 aleph - * Various gfx fixes - * - * Revision 1.3 2004/01/27 23:24:19 aleph - * Add new graphics primitives - * - * Revision 1.2 2004/01/07 23:33:01 aleph - * Change copyright email - * - * Revision 1.1 2004/01/07 19:05:31 aleph - * Add graphics routines - * - */ - -#ifndef GFX_H -#define GFX_H - -#include "compiler.h" -#include +/*#* + *#* $Log$ + *#* Revision 1.7 2004/09/20 03:29:06 bernie + *#* Conditionalize AVR-specific code. + *#* + *#* Revision 1.6 2004/09/14 21:01:08 bernie + *#* Rename rectangle drawing functions; Unify filled/cleared implementations. + *#* + *#* Revision 1.4 2004/08/10 07:00:16 bernie + *#* Add missing header. + *#* + *#* Revision 1.3 2004/08/04 03:16:59 bernie + *#* Switch to new DevLib CONFIG_ convention. + *#* + *#* Revision 1.2 2004/06/03 11:27:09 bernie + *#* Add dual-license information. + *#* + *#* Revision 1.1 2004/05/23 15:43:16 bernie + *#* Import mware modules. + *#*/ + +#ifndef MWARE_GFX_H +#define MWARE_GFX_H + +#include +#include /*! Common type for coordinates expressed in pixel units */ typedef int coord_t; -#ifdef CONFIG_LCD_VCOORDS +#if CONFIG_GFX_VCOORDS /*! Common type for coordinates expressed in logical units */ typedef float vcoord_t; -#endif /* CONFIG_LCD_VCOORDS */ +#endif /* CONFIG_GFX_VCOORDS */ typedef struct Rect { coord_t xmin, ymin, xmax, ymax; } Rect; -/*! Control structure to draw in a bitmap */ - +/*! + * Control structure to draw in a bitmap + */ typedef struct Bitmap { uint8_t *raster; /*!< Pointer to byte array to hold the data */ @@ -60,11 +63,15 @@ typedef struct Bitmap Rect cr; /*!< Clip drawing inside this rectangle */ -#ifdef CONFIG_LCD_VCOORDS - /*! Logical coordinate system */ +#if CONFIG_GFX_VCOORDS + /*! + * \name Logical coordinate system + * \{ + */ vcoord_t orgX, orgY; vcoord_t scaleX, scaleY; -#endif /* CONFIG_LCD_VCOORDS */ + /*\}*/ +#endif /* CONFIG_GFX_VCOORDS */ } Bitmap; @@ -72,20 +79,30 @@ typedef struct Bitmap /* Function prototypes */ extern void gfx_InitBitmap(Bitmap *bm, uint8_t *raster, coord_t w, coord_t h); extern void gfx_ClearBitmap(Bitmap *bm); -extern void gfx_blitBitmap_P(Bitmap *bm, const prog_uchar *raster); extern void gfx_DrawLine(Bitmap *bm, coord_t x1, coord_t y1, coord_t x2, coord_t y2); -extern void gfx_FillRect(Bitmap *bm, coord_t x1, coord_t y1, coord_t x2, coord_t y2); -extern void gfx_DrawRect(Bitmap *bm, coord_t x1, coord_t y1, coord_t x2, coord_t y2); -extern void gfx_ClearRect(Bitmap *bm, coord_t x1, coord_t y1, coord_t x2, coord_t y2); +extern void gfx_RectDraw(Bitmap *bm, coord_t x1, coord_t y1, coord_t x2, coord_t y2); +extern void gfx_RectFillC(Bitmap *bm, coord_t x1, coord_t y1, coord_t x2, coord_t y2, uint8_t color); +extern void gfx_RectFill(Bitmap *bm, coord_t x1, coord_t y1, coord_t x2, coord_t y2); +extern void gfx_RectClear(Bitmap *bm, coord_t x1, coord_t y1, coord_t x2, coord_t y2); extern void gfx_MoveTo(Bitmap *bm, coord_t x, coord_t y); extern void gfx_LineTo(Bitmap *bm, coord_t x, coord_t y); extern void gfx_SetClipRect(Bitmap *bm, coord_t xmin, coord_t ymin, coord_t xmax, coord_t ymax); -#ifdef CONFIG_LCD_VCOORDS +#if CPU_AVR + #include + extern void gfx_blitBitmap_P(Bitmap *bm, const prog_uchar *raster); +#endif /* CPU_AVR */ + +/* DEPRECATED names */ +#define gfx_DrawRect gfx_RectDraw +#define gfx_FillRect gfx_RectFill +#define gfx_ClearRect gfx_RectClear + +#if CONFIG_GFX_VCOORDS extern void gfx_SetViewRect(Bitmap *bm, vcoord_t x1, vcoord_t y1, vcoord_t x2, vcoord_t y2); extern coord_t gfx_TransformX(Bitmap *bm, vcoord_t x); extern coord_t gfx_TransformY(Bitmap *bm, vcoord_t y); extern void gfx_VDrawLine(Bitmap *bm, vcoord_t x1, vcoord_t y1, vcoord_t x2, vcoord_t y2); -#endif /* CONFIG_LCD_VCOORDS */ +#endif /* CONFIG_GFX_VCOORDS */ -#endif /* GFX_H */ +#endif /* MWARE_GFX_H */