and background colours to clear the screen.tags/v0.99.beta14
@@ -6,7 +6,7 @@ AC_PREREQ(2.50) | |||||
AC_CONFIG_AUX_DIR(autotools) | AC_CONFIG_AUX_DIR(autotools) | ||||
AC_CANONICAL_SYSTEM | AC_CANONICAL_SYSTEM | ||||
AM_INIT_AUTOMAKE(libcaca, 0.10) | AM_INIT_AUTOMAKE(libcaca, 0.10.beta1) | ||||
LT_VERSION="10:0:10" | LT_VERSION="10:0:10" | ||||
AC_SUBST(LT_VERSION) | AC_SUBST(LT_VERSION) | ||||
AM_CONFIG_HEADER(config.h) | AM_CONFIG_HEADER(config.h) | ||||
@@ -100,9 +100,9 @@ void Cucul::printf(int x, int y, char const * format,...) | |||||
putstr(x, y, buf); | putstr(x, y, buf); | ||||
} | } | ||||
void Cucul::clear(unsigned char bg ) | void Cucul::clear(void) | ||||
{ | { | ||||
cucul_clear_canvas(cv, bg); | cucul_clear_canvas(cv); | ||||
} | } | ||||
void Cucul::blit(int x, int y, Cucul* c1, Cucul* c2) | void Cucul::blit(int x, int y, Cucul* c1, Cucul* c2) | ||||
@@ -70,7 +70,7 @@ class Cucul | |||||
void printf(int x , int y , char const * format,...); | void printf(int x , int y , char const * format,...); | ||||
void putchar(int x, int y, char ch); | void putchar(int x, int y, char ch); | ||||
void putstr(int x, int y, char *str); | void putstr(int x, int y, char *str); | ||||
void clear(unsigned char bg); | void clear(void); | ||||
void blit(int, int, Cucul* c1, Cucul* c2); | void blit(int, int, Cucul* c1, Cucul* c2); | ||||
void invert(); | void invert(); | ||||
void flip(); | void flip(); | ||||
@@ -154,25 +154,21 @@ void cucul_printf(cucul_canvas_t *cv, int x, int y, char const *format, ...) | |||||
/** \brief Clear the canvas. | /** \brief Clear the canvas. | ||||
* | * | ||||
* This function clears the canvas using the given background colour. | * This function clears the canvas using the current background colour. | ||||
* | * | ||||
* \param cv The canvas to clear. | * \param cv The canvas to clear. | ||||
* \param bg The background colour to use. | |||||
*/ | */ | ||||
void cucul_clear_canvas(cucul_canvas_t *cv, unsigned char bg) | void cucul_clear_canvas(cucul_canvas_t *cv) | ||||
{ | { | ||||
uint16_t oldfg = cv->fgcolor; | uint32_t color = (cv->bgcolor << 16) | cv->fgcolor; | ||||
uint16_t oldbg = cv->bgcolor; | unsigned int n; | ||||
int y = cv->height; | |||||
cucul_set_color(cv, CUCUL_COLOR_DEFAULT, bg); | |||||
/* We could use SLsmg_cls() etc., but drawing empty lines is much faster */ | /* We could use SLsmg_cls() etc., but drawing empty lines is much faster */ | ||||
while(y--) | for(n = cv->width * cv->height; n--; ) | ||||
cucul_putstr(cv, 0, y, cv->empty_line); | { | ||||
cv->chars[n] = (uint32_t)' '; | |||||
cv->fgcolor = oldfg; | cv->attr[n] = color; | ||||
cv->bgcolor = oldbg; | } | ||||
} | } | ||||
/** \brief Blit a canvas onto another one. | /** \brief Blit a canvas onto another one. | ||||
@@ -103,7 +103,7 @@ char const *cucul_get_color_name(unsigned int); | |||||
void cucul_putchar(cucul_canvas_t *, int, int, char); | void cucul_putchar(cucul_canvas_t *, int, int, char); | ||||
void cucul_putstr(cucul_canvas_t *, int, int, char const *); | void cucul_putstr(cucul_canvas_t *, int, int, char const *); | ||||
void cucul_printf(cucul_canvas_t *, int, int, char const *, ...); | void cucul_printf(cucul_canvas_t *, int, int, char const *, ...); | ||||
void cucul_clear_canvas(cucul_canvas_t *, unsigned char); | void cucul_clear_canvas(cucul_canvas_t *); | ||||
void cucul_blit(cucul_canvas_t *, int, int, cucul_canvas_t const *, cucul_canvas_t const *); | void cucul_blit(cucul_canvas_t *, int, int, cucul_canvas_t const *, cucul_canvas_t const *); | ||||
/* @} */ | /* @} */ | ||||
@@ -321,7 +321,8 @@ int main(int argc, char **argv) | |||||
free(buffer); | free(buffer); | ||||
} | } | ||||
cucul_clear_canvas(cv, CUCUL_COLOR_BLACK); | cucul_set_color(cv, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLACK); | ||||
cucul_clear_canvas(cv); | |||||
if(!items) | if(!items) | ||||
{ | { | ||||
@@ -53,7 +53,8 @@ int main(int argc, char **argv) | |||||
lines = cols * i->h * 6 / i->w / 10; | lines = cols * i->h * 6 / i->w / 10; | ||||
cucul_set_canvas_size(cv, cols, lines); | cucul_set_canvas_size(cv, cols, lines); | ||||
cucul_clear_canvas(cv, CUCUL_COLOR_TRANSPARENT); | cucul_set_color(cv, CUCUL_COLOR_DEFAULT, CUCUL_COLOR_TRANSPARENT); | ||||
cucul_clear_canvas(cv); | |||||
cucul_dither_bitmap(cv, 0, 0, cols, lines, i->dither, i->pixels); | cucul_dither_bitmap(cv, 0, 0, cols, lines, i->dither, i->pixels); | ||||
unload_image(i); | unload_image(i); | ||||
@@ -35,7 +35,8 @@ int main(int argc, char **argv) | |||||
if(!dp) | if(!dp) | ||||
return 1; | return 1; | ||||
cucul_clear_canvas(cv, CUCUL_COLOR_BLACK); | cucul_set_color(cv, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); | ||||
cucul_clear_canvas(cv); | |||||
for(i = 0; i < 16; i++) | for(i = 0; i < 16; i++) | ||||
{ | { | ||||
cucul_set_color(cv, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); | cucul_set_color(cv, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); | ||||
@@ -142,7 +142,10 @@ int main(int argc, char **argv) | |||||
} | } | ||||
if(demo) | if(demo) | ||||
cucul_clear_canvas(cv, CUCUL_COLOR_BLACK); | { | ||||
cucul_set_color(cv, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); | |||||
cucul_clear_canvas(cv); | |||||
} | |||||
} | } | ||||
else if(ev.type & CACA_EVENT_MOUSE_MOTION) | else if(ev.type & CACA_EVENT_MOUSE_MOTION) | ||||
{ | { | ||||
@@ -196,8 +199,8 @@ static void display_menu(void) | |||||
int xo = cucul_get_canvas_width(cv) - 2; | int xo = cucul_get_canvas_width(cv) - 2; | ||||
int yo = cucul_get_canvas_height(cv) - 2; | int yo = cucul_get_canvas_height(cv) - 2; | ||||
cucul_clear_canvas(cv, CUCUL_COLOR_BLACK); | |||||
cucul_set_color(cv, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); | cucul_set_color(cv, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); | ||||
cucul_clear_canvas(cv); | |||||
cucul_draw_thin_box(cv, 1, 1, xo, yo); | cucul_draw_thin_box(cv, 1, 1, xo, yo); | ||||
cucul_putstr(cv, (xo - strlen("libcaca demo")) / 2, 3, "libcaca demo"); | cucul_putstr(cv, (xo - strlen("libcaca demo")) / 2, 3, "libcaca demo"); | ||||
@@ -236,7 +239,8 @@ static void demo_all(void) | |||||
i++; | i++; | ||||
cucul_clear_canvas(cv, CUCUL_COLOR_BLACK); | cucul_set_color(cv, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); | ||||
cucul_clear_canvas(cv); | |||||
/* Draw the sun */ | /* Draw the sun */ | ||||
cucul_set_color(cv, CUCUL_COLOR_YELLOW, CUCUL_COLOR_BLACK); | cucul_set_color(cv, CUCUL_COLOR_YELLOW, CUCUL_COLOR_BLACK); | ||||
@@ -349,7 +353,8 @@ static void demo_color(void) | |||||
int i, j; | int i, j; | ||||
char buf[BUFSIZ]; | char buf[BUFSIZ]; | ||||
cucul_clear_canvas(cv, CUCUL_COLOR_BLACK); | cucul_set_color(cv, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); | ||||
cucul_clear_canvas(cv); | |||||
for(i = 0; i < 16; i++) | for(i = 0; i < 16; i++) | ||||
{ | { | ||||
sprintf(buf, "'%c': %i (%s)", 'a' + i, i, cucul_get_color_name(i)); | sprintf(buf, "'%c': %i (%s)", 'a' + i, i, cucul_get_color_name(i)); | ||||
@@ -81,7 +81,8 @@ int main(int argc, char **argv) | |||||
} | } | ||||
while(ret); | while(ret); | ||||
cucul_clear_canvas(cv, CUCUL_COLOR_BLACK); | cucul_set_color(cv, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); | ||||
cucul_clear_canvas(cv); | |||||
/* Print current event */ | /* Print current event */ | ||||
cucul_set_color(cv, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE); | cucul_set_color(cv, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE); | ||||
@@ -90,7 +90,8 @@ int main(void) | |||||
cucul_get_canvas_height(cw), right, buffer); | cucul_get_canvas_height(cw), right, buffer); | ||||
/* Draw something on the mask */ | /* Draw something on the mask */ | ||||
cucul_clear_canvas(mask, CUCUL_COLOR_BLACK); | cucul_set_color(cv, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); | ||||
cucul_clear_canvas(mask); | |||||
cucul_set_color(mask, CUCUL_COLOR_WHITE, CUCUL_COLOR_WHITE); | cucul_set_color(mask, CUCUL_COLOR_WHITE, CUCUL_COLOR_WHITE); | ||||
cucul_fill_ellipse(mask, (1.0 + sin(0.05 * (float)x)) | cucul_fill_ellipse(mask, (1.0 + sin(0.05 * (float)x)) | ||||
* 0.5 * cucul_get_canvas_width(mask), | * 0.5 * cucul_get_canvas_width(mask), | ||||
@@ -100,9 +100,9 @@ int main(int argc, char **argv) | |||||
} | } | ||||
cucul_clear_canvas(cv, CUCUL_COLOR_BLACK); | |||||
cucul_set_color(cv, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); | cucul_set_color(cv, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK); | ||||
cucul_clear_canvas(cv); | |||||
cucul_draw_thin_box(cv, 0, 0, cucul_get_canvas_width(cv) - 1, | cucul_draw_thin_box(cv, 0, 0, cucul_get_canvas_width(cv) - 1, | ||||
cucul_get_canvas_height(cv) - 1); | cucul_get_canvas_height(cv) - 1); | ||||