diff options
| author | Jens Arnold <amiconn@rockbox.org> | 2004-06-23 22:15:50 +0000 |
|---|---|---|
| committer | Jens Arnold <amiconn@rockbox.org> | 2004-06-23 22:15:50 +0000 |
| commit | 7c6bdd64935452464b21f99198896c34569105e5 (patch) | |
| tree | becd4aeb5498966aea5629f1e692ba5131192b5e /apps/plugins/lib/gray_drawrect.c | |
| parent | 8877ad943eb077d10a0725b47c55a8b2f55f319a (diff) | |
| download | rockbox-7c6bdd64935452464b21f99198896c34569105e5.zip rockbox-7c6bdd64935452464b21f99198896c34569105e5.tar.gz rockbox-7c6bdd64935452464b21f99198896c34569105e5.tar.bz2 rockbox-7c6bdd64935452464b21f99198896c34569105e5.tar.xz | |
Split grayscale library into several files to make up a real function library. Significantly decreases binary size for plugins using it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4802 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/lib/gray_drawrect.c')
| -rw-r--r-- | apps/plugins/lib/gray_drawrect.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/apps/plugins/lib/gray_drawrect.c b/apps/plugins/lib/gray_drawrect.c new file mode 100644 index 0000000..bd0bb71 --- /dev/null +++ b/apps/plugins/lib/gray_drawrect.c @@ -0,0 +1,62 @@ +/*************************************************************************** +* __________ __ ___. +* Open \______ \ ____ ____ | | _\_ |__ _______ ___ +* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / +* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < +* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ +* \/ \/ \/ \/ \/ +* $Id$ +* +* Grayscale framework +* gray_drawrect() function +* +* This is a generic framework to use grayscale display within Rockbox +* plugins. It obviously does not work for the player. +* +* Copyright (C) 2004 Jens Arnold +* +* All files in this archive are subject to the GNU General Public License. +* See the file COPYING in the source tree root for full license agreement. +* +* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +* KIND, either express or implied. +* +****************************************************************************/ + +#ifndef SIMULATOR /* not for simulator by now */ +#include "plugin.h" + +#ifdef HAVE_LCD_BITMAP /* and also not for the Player */ +#include "gray.h" + +/*--------------------------------------------------------------------------- + Draw a (hollow) rectangle with the current drawinfo + ---------------------------------------------------------------------------- + See gray_drawpixel() for details + */ +void gray_drawrect(int x, int y, int nx, int ny) +{ + int x2, y2; + + if ((unsigned) x >= (unsigned) _graybuf->width + || (unsigned) y >= (unsigned) _graybuf->height) + return; + + if ((unsigned) (y + ny) >= (unsigned) _graybuf->height) /* clip bottom */ + ny = _graybuf->height - y; + + if ((unsigned) (x + nx) >= (unsigned) _graybuf->width) /* clip right */ + nx = _graybuf->width - x; + + x2 = x + nx - 1; + y2 = y + ny - 1; + + gray_horline(x, x2, y); + gray_horline(x, x2, y2); + gray_verline(x, y, y2); + gray_verline(x2, y, y2); +} + +#endif // #ifdef HAVE_LCD_BITMAP +#endif // #ifndef SIMULATOR + |