diff --git a/cpp/cucul++.cpp b/cpp/cucul++.cpp index 0d8034b..b5f633e 100644 --- a/cpp/cucul++.cpp +++ b/cpp/cucul++.cpp @@ -89,9 +89,9 @@ void Cucul::printf ( int x , int y , char const * format,...) } -void Cucul::clear () +void Cucul::clear ( unsigned char bg ) { - cucul_clear(cv); + cucul_clear_canvas(cv, bg); } void Cucul::blit ( int x, int y, Cucul* c1, Cucul* c2) diff --git a/cpp/cucul++.h b/cpp/cucul++.h index 3bf10d0..66e7ee2 100644 --- a/cpp/cucul++.h +++ b/cpp/cucul++.h @@ -67,7 +67,7 @@ class Cucul { void printf ( int x , int y , char const * format,...); void putchar (int x, int y, char ch); void putstr (int x, int y, char *str); - void clear (); + void clear (unsigned char bg); void blit ( int, int, Cucul* c1, Cucul* c2); void invert (); void flip (); diff --git a/cucul/canvas.c b/cucul/canvas.c index da02b1f..fc3ead8 100644 --- a/cucul/canvas.c +++ b/cucul/canvas.c @@ -154,15 +154,18 @@ void cucul_printf(cucul_canvas_t *cv, int x, int y, char const *format, ...) /** \brief Clear the canvas. * - * This function clears the canvas using a black background. + * This function clears the canvas using the given background colour. + * + * \param cv The canvas to clear. + * \param bg The background colour to use. */ -void cucul_clear(cucul_canvas_t *cv) +void cucul_clear_canvas(cucul_canvas_t *cv, unsigned char bg) { uint16_t oldfg = cv->fgcolor; uint16_t oldbg = cv->bgcolor; int y = cv->height; - cucul_set_color(cv, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); + cucul_set_color(cv, CUCUL_COLOR_DEFAULT, bg); /* We could use SLsmg_cls() etc., but drawing empty lines is much faster */ while(y--) diff --git a/cucul/cucul.h b/cucul/cucul.h index 77678b6..7f7b25f 100644 --- a/cucul/cucul.h +++ b/cucul/cucul.h @@ -104,7 +104,7 @@ char const *cucul_get_color_name(unsigned int); void cucul_putchar(cucul_canvas_t *, int, int, char); void cucul_putstr(cucul_canvas_t *, int, int, char const *); void cucul_printf(cucul_canvas_t *, int, int, char const *, ...); -void cucul_clear(cucul_canvas_t *); +void cucul_clear_canvas(cucul_canvas_t *, unsigned char); void cucul_blit(cucul_canvas_t *, int, int, cucul_canvas_t const *, cucul_canvas_t const *); /* @} */ diff --git a/src/cacaview.c b/src/cacaview.c index 5b79d91..1210bf4 100644 --- a/src/cacaview.c +++ b/src/cacaview.c @@ -321,7 +321,7 @@ int main(int argc, char **argv) free(buffer); } - cucul_clear(cv); + cucul_clear_canvas(cv, CUCUL_COLOR_BLACK); if(!items) { diff --git a/src/img2irc.c b/src/img2irc.c index bd20f48..3be8acd 100644 --- a/src/img2irc.c +++ b/src/img2irc.c @@ -53,7 +53,7 @@ int main(int argc, char **argv) lines = cols * i->h * 6 / i->w / 10; cucul_set_canvas_size(cv, cols, lines); - cucul_clear(cv); + cucul_clear_canvas(cv, CUCUL_COLOR_TRANSPARENT); cucul_dither_bitmap(cv, 0, 0, cols - 1, lines - 1, i->dither, i->pixels); unload_image(i); diff --git a/test/colors.c b/test/colors.c index 5c57a5d..07c3eb1 100644 --- a/test/colors.c +++ b/test/colors.c @@ -35,7 +35,7 @@ int main(int argc, char **argv) if(!dp) return 1; - cucul_clear(cv); + cucul_clear_canvas(cv, CUCUL_COLOR_BLACK); for(i = 0; i < 16; i++) { cucul_set_color(cv, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); diff --git a/test/demo.c b/test/demo.c index 07d58d3..c6299be 100644 --- a/test/demo.c +++ b/test/demo.c @@ -142,7 +142,7 @@ int main(int argc, char **argv) } if(demo) - cucul_clear(cv); + cucul_clear_canvas(cv, CUCUL_COLOR_BLACK); } else if(ev.type & CACA_EVENT_MOUSE_MOTION) { @@ -196,7 +196,7 @@ static void display_menu(void) int xo = cucul_get_canvas_width(cv) - 2; int yo = cucul_get_canvas_height(cv) - 2; - cucul_clear(cv); + cucul_clear_canvas(cv, CUCUL_COLOR_BLACK); cucul_set_color(cv, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); cucul_draw_thin_box(cv, 1, 1, xo, yo); @@ -236,7 +236,7 @@ static void demo_all(void) i++; - cucul_clear(cv); + cucul_clear_canvas(cv, CUCUL_COLOR_BLACK); /* Draw the sun */ cucul_set_color(cv, CUCUL_COLOR_YELLOW, CUCUL_COLOR_BLACK); @@ -349,7 +349,7 @@ static void demo_color(void) int i, j; char buf[BUFSIZ]; - cucul_clear(cv); + cucul_clear_canvas(cv, CUCUL_COLOR_BLACK); for(i = 0; i < 16; i++) { sprintf(buf, "'%c': %i (%s)", 'a' + i, i, cucul_get_color_name(i)); diff --git a/test/event.c b/test/event.c index 0059cb3..2ae68df 100644 --- a/test/event.c +++ b/test/event.c @@ -81,7 +81,7 @@ int main(int argc, char **argv) } while(ret); - cucul_clear(cv); + cucul_clear_canvas(cv, CUCUL_COLOR_BLACK); /* Print current event */ cucul_set_color(cv, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE); diff --git a/test/gamma.c b/test/gamma.c index 568d28d..fd079f9 100644 --- a/test/gamma.c +++ b/test/gamma.c @@ -90,7 +90,7 @@ int main(void) cucul_get_canvas_height(cw) - 1, right, buffer); /* Draw something on the mask */ - cucul_clear(mask); + cucul_clear_canvas(mask, CUCUL_COLOR_BLACK); cucul_set_color(mask, CUCUL_COLOR_WHITE, CUCUL_COLOR_WHITE); cucul_fill_ellipse(mask, (1.0 + sin(0.05 * (float)x)) * 0.5 * cucul_get_canvas_width(mask), diff --git a/test/spritedit.c b/test/spritedit.c index b6cac90..e2acd55 100644 --- a/test/spritedit.c +++ b/test/spritedit.c @@ -100,7 +100,7 @@ int main(int argc, char **argv) } - cucul_clear(cv); + cucul_clear_canvas(cv, CUCUL_COLOR_BLACK); cucul_set_color(cv, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); cucul_draw_thin_box(cv, 0, 0, cucul_get_canvas_width(cv) - 1,