summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2008-04-12 08:57:28 +0000
committerJens Arnold <amiconn@rockbox.org>2008-04-12 08:57:28 +0000
commitb6213bbf9889134c17065dc257c3cc08c7478490 (patch)
treeca4b855be72c91f803bb31f1fd1c4f2f80ad9278 /apps/plugins
parent00ac809cc71e3747c81bf01be95d5cf21d93d9a0 (diff)
downloadrockbox-b6213bbf9889134c17065dc257c3cc08c7478490.tar.gz
rockbox-b6213bbf9889134c17065dc257c3cc08c7478490.zip
Optimise line drawing calls.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17082 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/maze.c16
-rw-r--r--apps/plugins/mazezam.c39
-rw-r--r--apps/plugins/spacerocks.c8
3 files changed, 28 insertions, 35 deletions
diff --git a/apps/plugins/maze.c b/apps/plugins/maze.c
index 8967f59132..c9fe174717 100644
--- a/apps/plugins/maze.c
+++ b/apps/plugins/maze.c
@@ -202,22 +202,22 @@ void maze_draw(struct maze* maze, struct screen* display)
202 202
203 /* draw walls */ 203 /* draw walls */
204 if(cell & WALL_N) 204 if(cell & WALL_N)
205 display->drawline(x*wx, y*wy, x*wx+wx, y*wy); 205 display->hline(x*wx, x*wx+wx, y*wy);
206 if(cell & WALL_E) 206 if(cell & WALL_E)
207 display->drawline(x*wx+wx, y*wy, x*wx+wx, y*wy+wy); 207 display->vline(x*wx+wx, y*wy, y*wy+wy);
208 if(cell & WALL_S) 208 if(cell & WALL_S)
209 display->drawline(x*wx, y*wy+wy, x*wx+wx, y*wy+wy); 209 display->hline(x*wx, x*wx+wx, y*wy+wy);
210 if(cell & WALL_W) 210 if(cell & WALL_W)
211 display->drawline(x*wx, y*wy, x*wx, y*wy+wy); 211 display->vline(x*wx, y*wy, y*wy+wy);
212 212
213 if(cell & BORDER_N) 213 if(cell & BORDER_N)
214 display->drawline(x*wx, y*wy, x*wx+wx, y*wy); 214 display->hline(x*wx, x*wx+wx, y*wy);
215 if(cell & BORDER_E) 215 if(cell & BORDER_E)
216 display->drawline(x*wx+wx, y*wy, x*wx+wx, y*wy+wy); 216 display->vline(x*wx+wx, y*wy, y*wy+wy);
217 if(cell & BORDER_S) 217 if(cell & BORDER_S)
218 display->drawline(x*wx, y*wy+wy, x*wx+wx, y*wy+wy); 218 display->hline(x*wx, x*wx+wx, y*wy+wy);
219 if(cell & BORDER_W) 219 if(cell & BORDER_W)
220 display->drawline(x*wx, y*wy, x*wx, y*wy+wy); 220 display->vline(x*wx, y*wy, y*wy+wy);
221 } 221 }
222 } 222 }
223 if(maze->solved){ 223 if(maze->solved){
diff --git a/apps/plugins/mazezam.c b/apps/plugins/mazezam.c
index 43d6cd7e3d..f898fc6031 100644
--- a/apps/plugins/mazezam.c
+++ b/apps/plugins/mazezam.c
@@ -397,24 +397,21 @@ static void draw_row(
397 /* draw shade */ 397 /* draw shade */
398 rb->lcd_set_foreground(chunk_gray_shade[(i+width) % 398 rb->lcd_set_foreground(chunk_gray_shade[(i+width) %
399 MAZEZAM_NUM_CHUNK_GRAYS]); 399 MAZEZAM_NUM_CHUNK_GRAYS]);
400 rb->lcd_drawline(xOff+size*shift[i]+size*cd->c_inset[i][j]+1, 400 rb->lcd_hline(xOff+size*shift[i]+size*cd->c_inset[i][j]+1,
401 yOff+size*i+size-2, 401 xOff+size*shift[i]+size*cd->c_inset[i][j]+
402 xOff+size*shift[i]+size*cd->c_inset[i][j]+
403 cd->c_width[i][j]*size-3, 402 cd->c_width[i][j]*size-3,
404 yOff+size*i+size-2); 403 yOff+size*i+size-2);
405 rb->lcd_drawline(xOff+size*shift[i]+size*cd->c_inset[i][j]+ 404 rb->lcd_vline(xOff+size*shift[i]+size*cd->c_inset[i][j]+
406 cd->c_width[i][j]*size-2, 405 cd->c_width[i][j]*size-2,
407 yOff+size*i, 406 yOff+size*i,
408 xOff+size*shift[i]+size*cd->c_inset[i][j]+ 407 yOff+size*i+size-2);
409 cd->c_width[i][j]*size-2,
410 yOff+size*i+size-2);
411 408
412 /* draw fill */ 409 /* draw fill */
413 rb->lcd_set_foreground(chunk_gray[(i+width) % 410 rb->lcd_set_foreground(chunk_gray[(i+width) %
414 MAZEZAM_NUM_CHUNK_GRAYS]); 411 MAZEZAM_NUM_CHUNK_GRAYS]);
415 for (k = yOff+size*i+2; k < yOff+size*i+size-2; k += 2) 412 for (k = yOff+size*i+2; k < yOff+size*i+size-2; k += 2)
416 rb->lcd_drawline(xOff+size*shift[i]+size*cd->c_inset[i][j]+2,k, 413 rb->lcd_hline(xOff+size*shift[i]+size*cd->c_inset[i][j]+2,
417 xOff+size*shift[i]+size*cd->c_inset[i][j]+ 414 xOff+size*shift[i]+size*cd->c_inset[i][j]+
418 cd->c_width[i][j]*size-3,k); 415 cd->c_width[i][j]*size-3,k);
419#else 416#else
420 rb->lcd_drawrect(xOff+size*shift[i]+size*cd->c_inset[i][j], 417 rb->lcd_drawrect(xOff+size*shift[i]+size*cd->c_inset[i][j],
@@ -450,10 +447,8 @@ static void draw_player(
450#elif LCD_DEPTH > 1 447#elif LCD_DEPTH > 1
451 rb->lcd_set_foreground(MAZEZAM_PLAYER_GRAY); 448 rb->lcd_set_foreground(MAZEZAM_PLAYER_GRAY);
452#endif 449#endif
453 rb->lcd_drawline(xOff+size*x, yOff+size*y+middle, 450 rb->lcd_hline(xOff+size*x, xOff+size*x+max, yOff+size*y+middle);
454 xOff+size*x+max, yOff+size*y+middle); 451 rb->lcd_vline(xOff+size*x+middle, yOff+size*y, yOff+size*y+max-ldelta);
455 rb->lcd_drawline(xOff+size*x+middle, yOff+size*y,
456 xOff+size*x+middle, yOff+size*y+max-ldelta);
457 rb->lcd_drawline(xOff+size*x+middle, yOff+size*y+max-ldelta, 452 rb->lcd_drawline(xOff+size*x+middle, yOff+size*y+max-ldelta,
458 xOff+size*x+middle-ldelta, yOff+size*y+max); 453 xOff+size*x+middle-ldelta, yOff+size*y+max);
459 rb->lcd_drawline(xOff+size*x+middle, yOff+size*y+max-ldelta, 454 rb->lcd_drawline(xOff+size*x+middle, yOff+size*y+max-ldelta,
@@ -476,14 +471,12 @@ static void draw_gate(
476#elif LCD_DEPTH > 1 471#elif LCD_DEPTH > 1
477 rb->lcd_set_foreground(MAZEZAM_GATE_GRAY); 472 rb->lcd_set_foreground(MAZEZAM_GATE_GRAY);
478#endif 473#endif
479 rb->lcd_drawline(xOff-size,yOff+entrance*size+third, 474 rb->lcd_hline(xOff-size,xOff-1,yOff+entrance*size+third);
480 xOff-1,yOff+entrance*size+third); 475 rb->lcd_hline(xOff-size,xOff-1,yOff+entrance*size+twothirds);
481 rb->lcd_drawline(xOff-size,yOff+entrance*size+twothirds, 476 rb->lcd_vline(xOff-size+third,yOff+entrance*size,
482 xOff-1,yOff+entrance*size+twothirds); 477 yOff+entrance*size+size-1);
483 rb->lcd_drawline(xOff-size+third,yOff+entrance*size, 478 rb->lcd_vline(xOff-size+twothirds,yOff+entrance*size,
484 xOff-size+third,yOff+entrance*size+size-1); 479 yOff+entrance*size+size-1);
485 rb->lcd_drawline(xOff-size+twothirds,yOff+entrance*size,
486 xOff-size+twothirds,yOff+entrance*size+size-1);
487} 480}
488 481
489/***************************************************************************** 482/*****************************************************************************
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index 5c01c1680f..b47aba329a 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -760,10 +760,10 @@ bool is_point_within_rectangle(struct Point* rect, struct Point* p, int size)
760 int aTLy = rect->y - size; 760 int aTLy = rect->y - size;
761 int aBRx = rect->x + size; 761 int aBRx = rect->x + size;
762 int aBRy = rect->y + size; 762 int aBRy = rect->y + size;
763 rb->lcd_drawline( aTLx/SCALE, aTLy/SCALE, aBRx/SCALE, aTLy/SCALE); 763 rb->lcd_hline( aTLx/SCALE, aBRx/SCALE, aTLy/SCALE);
764 rb->lcd_drawline( aTLx/SCALE, aTLy/SCALE, aTLx/SCALE, aBRy/SCALE); 764 rb->lcd_vline( aTLx/SCALE, aTLy/SCALE, aBRy/SCALE);
765 rb->lcd_drawline( aTLx/SCALE, aBRy/SCALE, aBRx/SCALE, aBRy/SCALE); 765 rb->lcd_hline( aTLx/SCALE, aBRx/SCALE, aBRy/SCALE);
766 rb->lcd_drawline( aBRx/SCALE, aBRy/SCALE, aBRx/SCALE, aTLy/SCALE); 766 rb->lcd_vline( aBRx/SCALE, aBRy/SCALE, aTLy/SCALE);
767 return (p->x > aTLx && p->x < aBRx && p->y > aTLy && p->y < aBRy); 767 return (p->x > aTLx && p->x < aBRx && p->y > aTLy && p->y < aBRy);
768#else 768#else
769 return (p->x > rect->x - size && p->x < rect->x + size && 769 return (p->x > rect->x - size && p->x < rect->x + size &&