summaryrefslogtreecommitdiff
path: root/apps/plugins/lib/gray_drawline.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/lib/gray_drawline.c')
-rw-r--r--apps/plugins/lib/gray_drawline.c119
1 files changed, 0 insertions, 119 deletions
diff --git a/apps/plugins/lib/gray_drawline.c b/apps/plugins/lib/gray_drawline.c
deleted file mode 100644
index 5ec4967c14..0000000000
--- a/apps/plugins/lib/gray_drawline.c
+++ /dev/null
@@ -1,119 +0,0 @@
1/***************************************************************************
2* __________ __ ___.
3* Open \______ \ ____ ____ | | _\_ |__ _______ ___
4* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7* \/ \/ \/ \/ \/
8* $Id$
9*
10* Grayscale framework
11* gray_drawline() function
12*
13* This is a generic framework to use grayscale display within Rockbox
14* plugins. It obviously does not work for the player.
15*
16* Copyright (C) 2004 Jens Arnold
17*
18* All files in this archive are subject to the GNU General Public License.
19* See the file COPYING in the source tree root for full license agreement.
20*
21* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
22* KIND, either express or implied.
23*
24****************************************************************************/
25
26#ifndef SIMULATOR /* not for simulator by now */
27#include "plugin.h"
28
29#ifdef HAVE_LCD_BITMAP /* and also not for the Player */
30#include "gray.h"
31
32/*---------------------------------------------------------------------------
33 Draw a line from (x1, y1) to (x2, y2) with the current drawinfo
34 ----------------------------------------------------------------------------
35 See gray_drawpixel() for details
36 */
37void gray_drawline(int x1, int y1, int x2, int y2)
38{
39 int numpixels;
40 int i;
41 int deltax, deltay;
42 int d, dinc1, dinc2;
43 int x, xinc1, xinc2;
44 int y, yinc1, yinc2;
45 unsigned long pattern;
46 void (*pixelfunc)(int x, int y, unsigned long pattern);
47
48 if ((unsigned) x1 >= (unsigned) _graybuf->width
49 || (unsigned) y1 >= (unsigned) _graybuf->height
50 || (unsigned) x2 >= (unsigned) _graybuf->width
51 || (unsigned) y2 >= (unsigned) _graybuf->height)
52 return;
53
54 deltax = abs(x2 - x1);
55 deltay = abs(y2 - y1);
56 xinc2 = 1;
57 yinc2 = 1;
58
59 if (deltax >= deltay)
60 {
61 numpixels = deltax;
62 d = 2 * deltay - deltax;
63 dinc1 = deltay * 2;
64 dinc2 = (deltay - deltax) * 2;
65 xinc1 = 1;
66 yinc1 = 0;
67 }
68 else
69 {
70 numpixels = deltay;
71 d = 2 * deltax - deltay;
72 dinc1 = deltax * 2;
73 dinc2 = (deltax - deltay) * 2;
74 xinc1 = 0;
75 yinc1 = 1;
76 }
77 numpixels++; /* include endpoints */
78
79 if (x1 > x2)
80 {
81 xinc1 = -xinc1;
82 xinc2 = -xinc2;
83 }
84
85 if (y1 > y2)
86 {
87 yinc1 = -yinc1;
88 yinc2 = -yinc2;
89 }
90
91 x = x1;
92 y = y1;
93
94 pixelfunc = _gray_pixelfuncs[_graybuf->drawmode];
95 pattern = (_graybuf->drawmode == GRAY_DRAW_BG) ?
96 _graybuf->bg_pattern : _graybuf->fg_pattern;
97
98 for (i = 0; i < numpixels; i++)
99 {
100 pixelfunc(x, y, pattern);
101
102 if (d < 0)
103 {
104 d += dinc1;
105 x += xinc1;
106 y += yinc1;
107 }
108 else
109 {
110 d += dinc2;
111 x += xinc2;
112 y += yinc2;
113 }
114 }
115}
116
117#endif // #ifdef HAVE_LCD_BITMAP
118#endif // #ifndef SIMULATOR
119