Changeset 3489
- Timestamp:
- May 20, 2009, 12:48:12 AM (14 years ago)
- Location:
- libcaca/trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
libcaca/trunk/AUTHORS
r3095 r3489 1 1 /* $Id$ */ /** \page libcaca-authors Libcaca authors 2 2 3 Sam Hocevar <sam@ zoy.org>3 Sam Hocevar <sam@hocevar.net> 4 4 - main programmer 5 5 -
libcaca/trunk/caca/driver/ncurses.c
r2962 r3489 1 1 /* 2 2 * libcaca Colour ASCII-Art library 3 * Copyright (c) 2002-200 6 Sam Hocevar <sam@zoy.org>3 * Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> 4 4 * 2007 Ben Wiley Sittler <bsittler@gmail.com> 5 5 * All Rights Reserved … … 346 346 static void ncurses_display(caca_display_t *dp) 347 347 { 348 uint32_t const *cvchars = (uint32_t const *)caca_get_canvas_chars(dp->cv); 349 uint32_t const *cvattrs = (uint32_t const *)caca_get_canvas_attrs(dp->cv); 350 int width = caca_get_canvas_width(dp->cv); 351 int height = caca_get_canvas_height(dp->cv); 352 int x, y; 353 354 for(y = 0; y < (int)height; y++) 355 { 356 move(y, 0); 357 for(x = width; x--; ) 348 int x, y, i; 349 350 for(i = 0; i < caca_get_dirty_rectangle_count(dp->cv); i++) 351 { 352 uint32_t const *cvchars, *cvattrs; 353 int xmin, ymin, xmax, ymax; 354 355 caca_get_dirty_rectangle(dp->cv, i, &xmin, &ymin, &xmax, &ymax); 356 357 cvchars = (uint32_t const *)caca_get_canvas_chars(dp->cv) 358 + xmin + ymin * dp->cv->width; 359 cvattrs = (uint32_t const *)caca_get_canvas_attrs(dp->cv) 360 + xmin + ymin * dp->cv->width; 361 362 for(y = ymin; y <= ymax; y++) 358 363 { 359 attrset(dp->drv.p->attr[caca_attr_to_ansi(*cvattrs++)]); 360 ncurses_write_utf32(*cvchars++); 364 move(y, xmin); 365 for(x = xmin; x <= xmax; x++) 366 { 367 attrset(dp->drv.p->attr[caca_attr_to_ansi(*cvattrs++)]); 368 ncurses_write_utf32(*cvchars++); 369 } 370 371 cvchars += dp->cv->width - (xmax - xmin) - 1; 372 cvattrs += dp->cv->width - (xmax - xmin) - 1; 361 373 } 362 374 } 363 375 364 376 x = caca_get_cursor_x(dp->cv); 365 377 y = caca_get_cursor_y(dp->cv); -
libcaca/trunk/caca/driver/vga.c
r2962 r3489 1 1 /* 2 2 * libcaca Colour ASCII-Art library 3 * Copyright (c) 2002-200 6 Sam Hocevar <sam@zoy.org>3 * Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> 4 4 * All Rights Reserved 5 5 * … … 115 115 static void vga_display(caca_display_t *dp) 116 116 { 117 char *screen = (char *)(intptr_t)0x000b8000; 118 uint32_t const *cvchars = (uint32_t const *)caca_get_canvas_chars(dp->cv); 119 uint32_t const *cvattrs = (uint32_t const *)caca_get_canvas_attrs(dp->cv); 120 int width = caca_get_canvas_width(dp->cv); 121 int height = caca_get_canvas_height(dp->cv); 122 int n; 117 int x, y, i; 123 118 124 for( n = height * width; n--;)119 for(i = 0; i < caca_get_dirty_rectangle_count(dp->cv); i++) 125 120 { 126 char ch = caca_utf32_to_cp437(*cvchars++); 127 if(n && *cvchars == CACA_MAGIC_FULLWIDTH) 121 char *screen = (char *)(intptr_t)0x000b8000; 122 uint32_t const *cvchars, *cvattrs; 123 int xmin, ymin, xmax, ymax; 124 125 caca_get_dirty_rectangle(dp->cv, i, &xmin, &ymin, &xmax, &ymax); 126 127 cvchars = (uint32_t const *)caca_get_canvas_chars(dp->cv) 128 + xmin + ymin * dp->cv->width; 129 cvattrs = (uint32_t const *)caca_get_canvas_attrs(dp->cv) 130 + xmin + ymin * dp->cv->width; 131 132 screen += ymin * dp->cv->width + xmin; 133 134 for(y = ymin; y <= ymax; y++) 128 135 { 129 *screen++ = '['; 130 *screen++ = caca_attr_to_ansi(*cvattrs++); 131 ch = ']'; 132 cvchars++; 133 n--; 136 for(x = xmin; x <= xmax; x++) 137 { 138 char ch = caca_utf32_to_cp437(*cvchars++); 139 if(x < xmax && *cvchars == CACA_MAGIC_FULLWIDTH) 140 { 141 *screen++ = '['; 142 *screen++ = caca_attr_to_ansi(*cvattrs++); 143 ch = ']'; 144 cvchars++; 145 x++; 146 } 147 *screen++ = ch; 148 *screen++ = caca_attr_to_ansi(*cvattrs++); 149 } 150 151 cvchars += dp->cv->width - (xmax - xmin) - 1; 152 cvattrs += dp->cv->width - (xmax - xmin) - 1; 153 screen += 2 * (dp->cv->width - (xmax - xmin) - 1); 134 154 } 135 *screen++ = ch;136 *screen++ = caca_attr_to_ansi(*cvattrs++);137 155 } 138 156 } -
libcaca/trunk/caca/driver/win32.c
r3412 r3489 1 1 /* 2 2 * libcaca Colour ASCII-Art library 3 * Copyright (c) 2002-200 6 Sam Hocevar <sam@zoy.org>3 * Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> 4 4 * All Rights Reserved 5 5 * … … 240 240 WriteConsoleOutput(dp->drv.p->screen, dp->drv.p->buffer, size, pos, &rect); 241 241 #else 242 /* FIXME: would this benefit from dirty rectangles? */ 242 243 WriteConsoleOutputW(dp->drv.p->screen, dp->drv.p->buffer, size, pos, &rect); 243 244 #endif
Note: See TracChangeset
for help on using the changeset viewer.