From f61816ceb7445f8bf818936151554ac060764b39 Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Sat, 27 Sep 2008 13:12:46 +0000 Subject: [PATCH] Starting refactoring to get rid of libcucul. The initial reason for the split is rendered moot by the plugin system: when enabled, binaries do not link directly with libX11 or libGL. I hope this is a step towards more consisteny and clarity. --- Makefile.am | 6 +- build-kernel | 5 +- caca-config.in | 7 +- caca/Makefile.am | 37 +- {cucul => caca}/attr.c | 126 +++--- {cucul => caca}/box.c | 64 +-- caca/caca.c | 53 ++- caca/caca.h | 349 +++++++++++++++- caca/caca.pc.in | 4 +- caca/caca0.c | 58 +-- caca/caca0.h | 100 ++--- caca/caca_internals.h | 56 ++- .../cucul_types.h.in => caca/caca_types.h.in | 66 +-- cucul/cucul.c => caca/canvas.c | 110 +++-- {cucul => caca}/charset.c | 18 +- {cucul => caca}/conic.c | 46 +-- {cucul => caca}/dither.c | 106 ++--- caca/driver_cocoa.m | 46 +-- caca/driver_conio.c | 29 +- caca/driver_gl.c | 63 ++- caca/driver_ncurses.c | 33 +- caca/driver_raw.c | 9 +- caca/driver_slang.c | 55 ++- caca/driver_vga.c | 23 +- caca/driver_win32.c | 39 +- caca/driver_x11.c | 48 +-- caca/event.c | 9 +- {cucul => caca}/export.c | 186 ++++----- {cucul => caca}/figfont.c | 134 +++--- {cucul => caca}/file.c | 28 +- {cucul => caca}/font.c | 58 +-- {cucul => caca}/frame.c | 48 +-- caca/graphics.c | 9 +- {cucul => caca}/import.c | 202 ++++----- {cucul => caca}/legacy.c | 63 +-- {cucul => caca}/line.c | 56 +-- {cucul => caca}/mono9.data | 2 +- {cucul => caca}/monobold12.data | 2 +- cucul/canvas.c => caca/string.c | 110 ++--- {cucul => caca}/transform.c | 70 ++-- {cucul => caca}/triangle.c | 36 +- configure.ac | 22 +- csharp/Makefile.am | 20 +- cucul/.gitignore | 1 - cucul/Makefile.am | 42 -- cucul/cucul.h | 383 ------------------ cucul/cucul.pc.in | 12 - cucul/cucul_internals.h | 80 ---- cxx/Makefile.am | 19 +- cxx/caca++.cpp | 8 +- cxx/caca++.h | 7 +- cxx/cucul++.cpp | 260 ++++++------ cxx/cucul++.h | 38 +- cxx/cxxtest.cpp | 10 +- doc/Makefile.am | 8 +- examples/Makefile.am | 57 ++- examples/blit.c | 27 +- examples/{cucul.c => canvas.c} | 29 +- examples/colors.c | 39 +- examples/demo.c | 311 +++++++------- examples/dithering.c | 35 +- examples/driver.c | 13 +- examples/event.c | 49 ++- examples/export.c | 90 ++-- examples/figfont.c | 18 +- examples/font.c | 55 ++- examples/font2tga.c | 34 +- examples/frames.c | 35 +- examples/fullwidth.c | 47 ++- examples/gamma.c | 65 ++- examples/hsv.c | 13 +- examples/import.c | 11 +- examples/input.c | 19 +- examples/spritedit.c | 25 +- examples/swallow.c | 27 +- examples/text.c | 56 +-- examples/transform.c | 89 ++-- examples/truecolor.c | 15 +- examples/unicode.c | 113 +++--- kernel/kernel.c | 6 +- kernel/kernel.h | 4 +- msvc/Makefile.am | 6 +- msvc/cucul_types.h | 4 +- ruby/Makefile.am | 24 +- ruby/{cucul-canvas.c => caca-canvas.c} | 112 ++--- ruby/caca-canvas.h | 10 + ruby/caca-display.c | 4 +- ruby/{cucul-dither.c => caca-dither.c} | 18 +- ruby/caca-dither.h | 9 + ruby/{cucul-font.c => caca-font.c} | 20 +- ruby/caca-font.h | 9 + ruby/caca.c | 30 ++ ruby/common.h | 4 +- ruby/cucul-canvas.h | 10 - ruby/cucul-dither.h | 9 - ruby/cucul-font.h | 9 - ruby/cucul.c | 57 --- src/Makefile.am | 16 +- src/aafire.c | 37 +- src/cacademo.c | 235 ++++++----- src/cacadraw.c | 31 +- src/cacaplay.c | 13 +- src/cacaserver.c | 14 +- src/cacaview.c | 127 +++--- src/common-image.c | 50 +-- src/common-image.h | 2 +- src/img2txt.c | 40 +- src/mygetopt.c | 2 +- stubs.h | 1 - tests/.gitignore | 2 +- tests/Makefile.am | 13 +- tests/caca-test.cpp | 2 +- tests/canvas.cpp | 70 ++-- tests/cucul-test.cpp | 29 -- tests/simple.c | 30 +- tools/Makefile.am | 6 +- tools/makefont.c | 10 +- tools/optipal.c | 78 ++-- tools/sortchars.c | 34 +- 119 files changed, 2849 insertions(+), 3089 deletions(-) rename {cucul => caca}/attr.c (76%) rename {cucul => caca}/box.c (72%) rename cucul/cucul_types.h.in => caca/caca_types.h.in (58%) rename cucul/cucul.c => caca/canvas.c (81%) rename {cucul => caca}/charset.c (96%) rename {cucul => caca}/conic.c (83%) rename {cucul => caca}/dither.c (93%) rename {cucul => caca}/export.c (84%) rename {cucul => caca}/figfont.c (77%) rename {cucul => caca}/file.c (88%) rename {cucul => caca}/font.c (90%) rename {cucul => caca}/frame.c (85%) rename {cucul => caca}/import.c (82%) rename {cucul => caca}/legacy.c (75%) rename {cucul => caca}/line.c (83%) rename {cucul => caca}/mono9.data (99%) rename {cucul => caca}/monobold12.data (99%) rename cucul/canvas.c => caca/string.c (79%) rename {cucul => caca}/transform.c (95%) rename {cucul => caca}/triangle.c (79%) delete mode 100644 cucul/.gitignore delete mode 100644 cucul/Makefile.am delete mode 100644 cucul/cucul.h delete mode 100644 cucul/cucul.pc.in delete mode 100644 cucul/cucul_internals.h rename examples/{cucul.c => canvas.c} (66%) rename ruby/{cucul-canvas.c => caca-canvas.c} (79%) create mode 100644 ruby/caca-canvas.h rename ruby/{cucul-dither.c => caca-dither.c} (92%) create mode 100644 ruby/caca-dither.h rename ruby/{cucul-font.c => caca-font.c} (82%) create mode 100644 ruby/caca-font.h delete mode 100644 ruby/cucul-canvas.h delete mode 100644 ruby/cucul-dither.h delete mode 100644 ruby/cucul-font.h delete mode 100644 ruby/cucul.c delete mode 100644 tests/cucul-test.cpp diff --git a/Makefile.am b/Makefile.am index 3ce558c..969c6ec 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,6 @@ # $Id$ -SUBDIRS = kernel cucul caca src examples tests tools csharp cxx python ruby doc +SUBDIRS = kernel caca src examples tests tools csharp cxx python ruby doc DIST_SUBDIRS = $(SUBDIRS) msvc EXTRA_DIST = NOTES COPYING.GPL COPYING.LGPL bootstrap build-dos build-kernel build-win32 caca-config.in stubs.h libcaca.spec @@ -20,7 +20,7 @@ upload-doc: doc/html FORCE scp -r doc/html/* $(webhost):$(webdir)/manual/ fonts: tools/makefont - tools/makefont mono9 "Monospace 9" 96 4 >| $(srcdir)/cucul/mono9.data - tools/makefont monobold12 "Monospace Bold 12" 96 4 >| $(srcdir)/cucul/monobold12.data + tools/makefont mono9 "Monospace 9" 96 4 >| $(srcdir)/caca/mono9.data + tools/makefont monobold12 "Monospace Bold 12" 96 4 >| $(srcdir)/caca/monobold12.data FORCE: diff --git a/build-kernel b/build-kernel index caca205..72941e0 100755 --- a/build-kernel +++ b/build-kernel @@ -6,7 +6,7 @@ set -x set -e -CFLAGS="-fno-builtin -O2 -I. -I.. -I../cucul/ -Wall" +CFLAGS="-fno-builtin -O2 -I. -I.. -I../caca/ -Wall" CPPFLAGS="-D__KERNEL__ -nostdinc -include kernel/kernel.h" LDFLAGS="-nostdlib -Wl,-N -Wl,-Ttext -Wl,100000" @@ -18,7 +18,6 @@ LDFLAGS="-nostdlib -Wl,-N -Wl,-Ttext -Wl,100000" # We need this. make clean -cd cucul && make && cd .. cd caca && make && cd .. cd src && make cacademo.o && cd .. @@ -28,7 +27,7 @@ cd kernel && gcc $CFLAGS $CPPFLAGS -c kernel.c -o kernel.o && cd .. -gcc $LDFLAGS -o src/cacademo kernel/multiboot.o kernel/kernel.o src/cacademo.o caca/.libs/libcaca.a cucul/.libs/libcucul.a +gcc $LDFLAGS -o src/cacademo kernel/multiboot.o kernel/kernel.o src/cacademo.o caca/.libs/libcaca.a objcopy -O binary src/cacademo cacademo.boot diff --git a/caca-config.in b/caca-config.in index b14a5a3..c768b99 100644 --- a/caca-config.in +++ b/caca-config.in @@ -67,11 +67,8 @@ do --libs | --plugin-libs) echo_libs=yes ;; - cucul) - libs="$libs -lcucul" - ;; caca) - libs="$libs -lcaca -lcucul" + libs="$libs -lcaca" ;; *) usage 1 1>&2 @@ -82,7 +79,7 @@ done if test "$libs" = "" then - libs="-lcaca -lcucul" + libs="-lcaca" fi if test "$local_prefix" = "yes" diff --git a/caca/Makefile.am b/caca/Makefile.am index 700bfbb..a608ece 100644 --- a/caca/Makefile.am +++ b/caca/Makefile.am @@ -1,24 +1,41 @@ # $Id$ -EXTRA_DIST = caca.pc.in -DISTCLEANFILES = caca.pc +EXTRA_DIST = caca_types.h.in caca.pc.in mono9.data monobold12.data +DISTCLEANFILES = caca_types.h caca.pc -AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/cucul -I../cucul \ - -DPLUGINDIR=\"$(plugindir)\" +AM_CPPFLAGS = -I$(top_srcdir) -DPLUGINDIR=\"$(plugindir)\" pkgconfig_DATA = caca.pc pkgconfigdir = $(libdir)/pkgconfig -include_HEADERS = caca.h caca0.h +include_HEADERS = caca.h caca_types.h caca0.h lib_LTLIBRARIES = libcaca.la libcaca_la_SOURCES = \ caca.c \ caca.h \ + caca_types.h \ caca_internals.h \ caca0.c \ caca0.h \ + canvas.c \ + string.c \ + legacy.c \ + transform.c \ + charset.c \ + attr.c \ + line.c \ + box.c \ + conic.c \ + triangle.c \ + frame.c \ + dither.c \ + font.c \ + import.c \ + export.c \ + file.c \ + figfont.c \ graphics.c \ event.c \ time.c \ @@ -31,9 +48,13 @@ libcaca_la_SOURCES = \ $(cocoa_source) \ $(extra_source) \ $(NULL) +libcaca_la_DEPENDENCIES = \ + mono9.data \ + monobold12.data \ + $(NULL) libcaca_la_CPPFLAGS = $(AM_CPPFLAGS) @CACA_CFLAGS@ libcaca_la_LDFLAGS = -no-undefined -version-number @LT_VERSION@ -libcaca_la_LIBADD = ../cucul/libcucul.la @CACA_LIBS@ +libcaca_la_LIBADD = @CACA_LIBS@ $(ZLIB_LIBS) if USE_PLUGINS plugin_LTLIBRARIES = libx11_plugin.la libgl_plugin.la @@ -42,12 +63,12 @@ plugindir = $(libdir)/caca libx11_plugin_la_SOURCES = driver_x11.c libx11_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) $(X11_CFLAGS) libx11_plugin_la_LDFLAGS = -no-undefined -module -no-version -libx11_plugin_la_LIBADD = libcaca.la ../cucul/libcucul.la $(X11_LIBS) +libx11_plugin_la_LIBADD = libcaca.la $(X11_LIBS) libgl_plugin_la_SOURCES = driver_gl.c libgl_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) $(GL_CFLAGS) #$(FTGL_CFLAGS) libgl_plugin_la_LDFLAGS = -no-undefined -module -no-version -libgl_plugin_la_LIBADD = libcaca.la ../cucul/libcucul.la $(GL_LIBS) #$(FTGL_LIBS) +libgl_plugin_la_LIBADD = libcaca.la $(GL_LIBS) #$(FTGL_LIBS) else extra_source = driver_x11.c driver_gl.c endif diff --git a/cucul/attr.c b/caca/attr.c similarity index 76% rename from cucul/attr.c rename to caca/attr.c index ce708bc..3aa6245 100644 --- a/cucul/attr.c +++ b/caca/attr.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * Copyright (c) 2002-2006 Sam Hocevar * All Rights Reserved * @@ -19,8 +19,8 @@ #include "config.h" -#include "cucul.h" -#include "cucul_internals.h" +#include "caca.h" +#include "caca_internals.h" static uint8_t nearest_ansi(uint16_t); @@ -42,7 +42,7 @@ static const uint16_t ansitab14[16] = /** \brief Get the text attribute at the given coordinates. * - * Get the internal \e libcucul attribute value of the character at the + * Get the internal \e libcaca attribute value of the character at the * given coordinates. The attribute value has 32 significant bits, * organised as follows from MSB to LSB: * - 3 bits for the background alpha @@ -60,12 +60,12 @@ static const uint16_t ansitab14[16] = * * This function never fails. * - * \param cv A handle to the libcucul canvas. + * \param cv A handle to the libcaca canvas. * \param x X coordinate. * \param y Y coordinate. * \return The requested attribute. */ -uint32_t cucul_get_attr(cucul_canvas_t const *cv, int x, int y) +uint32_t caca_get_attr(caca_canvas_t const *cv, int x, int y) { if(x < 0 || x >= (int)cv->width || y < 0 || y >= (int)cv->height) return cv->curattr; @@ -82,21 +82,21 @@ uint32_t cucul_get_attr(cucul_canvas_t const *cv, int x, int y) * will use this attribute. * * The value of \e attr is either: - * - a 32-bit integer as returned by cucul_get_attr(), in which case it + * - a 32-bit integer as returned by caca_get_attr(), in which case it * also contains colour information, - * - a combination (bitwise OR) of style values (\e CUCUL_UNDERLINE, - * \e CUCUL_BLINK, \e CUCUL_BOLD and \e CUCUL_ITALICS), in which case + * - a combination (bitwise OR) of style values (\e CACA_UNDERLINE, + * \e CACA_BLINK, \e CACA_BOLD and \e CACA_ITALICS), in which case * setting the attribute does not modify the current colour information. * - * To retrieve the current attribute value, use cucul_get_attr(-1,-1). + * To retrieve the current attribute value, use caca_get_attr(-1,-1). * * This function never fails. * - * \param cv A handle to the libcucul canvas. + * \param cv A handle to the libcaca canvas. * \param attr The requested attribute value. * \return This function always returns 0. */ -int cucul_set_attr(cucul_canvas_t *cv, uint32_t attr) +int caca_set_attr(caca_canvas_t *cv, uint32_t attr) { if(attr < 0x00000010) attr = (cv->curattr & 0xfffffff0) | attr; @@ -113,21 +113,21 @@ int cucul_set_attr(cucul_canvas_t *cv, uint32_t attr) * cells' attributes are replaced. * * The value of \e attr is either: - * - a 32-bit integer as returned by cucul_get_attr(), in which case it + * - a 32-bit integer as returned by caca_get_attr(), in which case it * also contains colour information, - * - a combination (bitwise OR) of style values (\e CUCUL_UNDERLINE, - * \e CUCUL_BLINK, \e CUCUL_BOLD and \e CUCUL_ITALICS), in which case + * - a combination (bitwise OR) of style values (\e CACA_UNDERLINE, + * \e CACA_BLINK, \e CACA_BOLD and \e CACA_ITALICS), in which case * setting the attribute does not modify the current colour information. * * This function never fails. * - * \param cv A handle to the libcucul canvas. + * \param cv A handle to the libcaca canvas. * \param x X coordinate. * \param y Y coordinate. * \param attr The requested attribute value. * \return This function always returns 0. */ -int cucul_put_attr(cucul_canvas_t *cv, int x, int y, uint32_t attr) +int caca_put_attr(caca_canvas_t *cv, int x, int y, uint32_t attr) { uint32_t *curattr, *curchar; @@ -142,9 +142,9 @@ int cucul_put_attr(cucul_canvas_t *cv, int x, int y, uint32_t attr) else curattr[0] = attr; - if(x && curchar[0] == CUCUL_MAGIC_FULLWIDTH) + if(x && curchar[0] == CACA_MAGIC_FULLWIDTH) curattr[-1] = curattr[0]; - else if(x + 1 < (int)cv->width && curchar[1] == CUCUL_MAGIC_FULLWIDTH) + else if(x + 1 < (int)cv->width && curchar[1] == CACA_MAGIC_FULLWIDTH) curattr[1] = curattr[0]; return 0; @@ -156,18 +156,18 @@ int cucul_put_attr(cucul_canvas_t *cv, int x, int y, uint32_t attr) * as caca_printf() and graphical primitive functions such as caca_draw_line() * will use these attributes. * - * Color values are those defined in cucul.h, such as CUCUL_RED - * or CUCUL_TRANSPARENT. + * Color values are those defined in caca.h, such as CACA_RED + * or CACA_TRANSPARENT. * * If an error occurs, 0 is returned and \b errno is set accordingly: * - \c EINVAL At least one of the colour values is invalid. * - * \param cv A handle to the libcucul canvas. + * \param cv A handle to the libcaca canvas. * \param fg The requested ANSI foreground colour. * \param bg The requested ANSI background colour. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_set_color_ansi(cucul_canvas_t *cv, uint8_t fg, uint8_t bg) +int caca_set_color_ansi(caca_canvas_t *cv, uint8_t fg, uint8_t bg) { uint32_t attr; @@ -195,12 +195,12 @@ int cucul_set_color_ansi(cucul_canvas_t *cv, uint8_t fg, uint8_t bg) * * This function never fails. * - * \param cv A handle to the libcucul canvas. + * \param cv A handle to the libcaca canvas. * \param fg The requested ARGB foreground colour. * \param bg The requested ARGB background colour. * \return This function always returns 0. */ -int cucul_set_color_argb(cucul_canvas_t *cv, uint16_t fg, uint16_t bg) +int caca_set_color_argb(caca_canvas_t *cv, uint16_t fg, uint16_t bg) { uint32_t attr; @@ -226,9 +226,9 @@ int cucul_set_color_argb(cucul_canvas_t *cv, uint16_t fg, uint16_t bg) * 4 bits are the foreground colour. * * If the attribute has ARGB colours, the nearest colour is used. Special - * attributes such as \e CUCUL_DEFAULT and \e CUCUL_TRANSPARENT are not - * handled and are both replaced with \e CUCUL_LIGHTGRAY for the foreground - * colour and \e CUCUL_BLACK for the background colour. + * attributes such as \e CACA_DEFAULT and \e CACA_TRANSPARENT are not + * handled and are both replaced with \e CACA_LIGHTGRAY for the foreground + * colour and \e CACA_BLACK for the background colour. * * This function never fails. If the attribute value is outside the expected * 32-bit range, higher order bits are simply ignored. @@ -236,21 +236,21 @@ int cucul_set_color_argb(cucul_canvas_t *cv, uint16_t fg, uint16_t bg) * \param attr The requested attribute value. * \return The corresponding DOS ANSI value. */ -uint8_t cucul_attr_to_ansi(uint32_t attr) +uint8_t caca_attr_to_ansi(uint32_t attr) { uint8_t fg = nearest_ansi((attr >> 4) & 0x3fff); uint8_t bg = nearest_ansi(attr >> 18); - return (fg < 0x10 ? fg : CUCUL_LIGHTGRAY) - | ((bg < 0x10 ? bg : CUCUL_BLACK) << 4); + return (fg < 0x10 ? fg : CACA_LIGHTGRAY) + | ((bg < 0x10 ? bg : CACA_BLACK) << 4); } /** \brief Get ANSI foreground information from attribute. * * Get the ANSI foreground colour value for a given attribute. The returned - * value is either one of the \e CUCUL_RED, \e CUCUL_BLACK etc. predefined - * colours, or the special value \e CUCUL_DEFAULT meaning the media's - * default foreground value, or the special value \e CUCUL_TRANSPARENT. + * value is either one of the \e CACA_RED, \e CACA_BLACK etc. predefined + * colours, or the special value \e CACA_DEFAULT meaning the media's + * default foreground value, or the special value \e CACA_TRANSPARENT. * * If the attribute has ARGB colours, the nearest colour is returned. * @@ -260,7 +260,7 @@ uint8_t cucul_attr_to_ansi(uint32_t attr) * \param attr The requested attribute value. * \return The corresponding ANSI foreground value. */ -uint8_t cucul_attr_to_ansi_fg(uint32_t attr) +uint8_t caca_attr_to_ansi_fg(uint32_t attr) { return nearest_ansi(((uint16_t)attr >> 4) & 0x3fff); } @@ -268,9 +268,9 @@ uint8_t cucul_attr_to_ansi_fg(uint32_t attr) /** \brief Get ANSI background information from attribute. * * Get the ANSI background colour value for a given attribute. The returned - * value is either one of the \e CUCUL_RED, \e CUCUL_BLACK etc. predefined - * colours, or the special value \e CUCUL_DEFAULT meaning the media's - * default background value, or the special value \e CUCUL_TRANSPARENT. + * value is either one of the \e CACA_RED, \e CACA_BLACK etc. predefined + * colours, or the special value \e CACA_DEFAULT meaning the media's + * default background value, or the special value \e CACA_TRANSPARENT. * * If the attribute has ARGB colours, the nearest colour is returned. * @@ -280,7 +280,7 @@ uint8_t cucul_attr_to_ansi_fg(uint32_t attr) * \param attr The requested attribute value. * \return The corresponding ANSI background value. */ -uint8_t cucul_attr_to_ansi_bg(uint32_t attr) +uint8_t caca_attr_to_ansi_bg(uint32_t attr) { return nearest_ansi(attr >> 18); } @@ -300,18 +300,18 @@ uint8_t cucul_attr_to_ansi_bg(uint32_t attr) * \param attr The requested attribute value. * \return The corresponding 12-bit RGB foreground value. */ -uint16_t cucul_attr_to_rgb12_fg(uint32_t attr) +uint16_t caca_attr_to_rgb12_fg(uint32_t attr) { uint16_t fg = (attr >> 4) & 0x3fff; if(fg < (0x10 | 0x40)) return ansitab16[fg ^ 0x40] & 0x0fff; - if(fg == (CUCUL_DEFAULT | 0x40)) - return ansitab16[CUCUL_LIGHTGRAY] & 0x0fff; + if(fg == (CACA_DEFAULT | 0x40)) + return ansitab16[CACA_LIGHTGRAY] & 0x0fff; - if(fg == (CUCUL_TRANSPARENT | 0x40)) - return ansitab16[CUCUL_LIGHTGRAY] & 0x0fff; + if(fg == (CACA_TRANSPARENT | 0x40)) + return ansitab16[CACA_LIGHTGRAY] & 0x0fff; return (fg << 1) & 0x0fff; } @@ -331,18 +331,18 @@ uint16_t cucul_attr_to_rgb12_fg(uint32_t attr) * \param attr The requested attribute value. * \return The corresponding 12-bit RGB background value. */ -uint16_t cucul_attr_to_rgb12_bg(uint32_t attr) +uint16_t caca_attr_to_rgb12_bg(uint32_t attr) { uint16_t bg = attr >> 18; if(bg < (0x10 | 0x40)) return ansitab16[bg ^ 0x40] & 0x0fff; - if(bg == (CUCUL_DEFAULT | 0x40)) - return ansitab16[CUCUL_BLACK] & 0x0fff; + if(bg == (CACA_DEFAULT | 0x40)) + return ansitab16[CACA_BLACK] & 0x0fff; - if(bg == (CUCUL_TRANSPARENT | 0x40)) - return ansitab16[CUCUL_BLACK] & 0x0fff; + if(bg == (CACA_TRANSPARENT | 0x40)) + return ansitab16[CACA_BLACK] & 0x0fff; return (bg << 1) & 0x0fff; } @@ -366,16 +366,16 @@ uint16_t cucul_attr_to_rgb12_bg(uint32_t attr) * \param attr The requested attribute value. * \param argb An array of 8-bit integers. */ -void cucul_attr_to_argb64(uint32_t attr, uint8_t argb[8]) +void caca_attr_to_argb64(uint32_t attr, uint8_t argb[8]) { uint16_t fg = (attr >> 4) & 0x3fff; uint16_t bg = attr >> 18; if(bg < (0x10 | 0x40)) bg = ansitab16[bg ^ 0x40]; - else if(bg == (CUCUL_DEFAULT | 0x40)) - bg = ansitab16[CUCUL_BLACK]; - else if(bg == (CUCUL_TRANSPARENT | 0x40)) + else if(bg == (CACA_DEFAULT | 0x40)) + bg = ansitab16[CACA_BLACK]; + else if(bg == (CACA_TRANSPARENT | 0x40)) bg = 0x0fff; else bg = ((bg << 2) & 0xf000) | ((bg << 1) & 0x0fff); @@ -387,9 +387,9 @@ void cucul_attr_to_argb64(uint32_t attr, uint8_t argb[8]) if(fg < (0x10 | 0x40)) fg = ansitab16[fg ^ 0x40]; - else if(fg == (CUCUL_DEFAULT | 0x40)) - fg = ansitab16[CUCUL_LIGHTGRAY]; - else if(fg == (CUCUL_TRANSPARENT | 0x40)) + else if(fg == (CACA_DEFAULT | 0x40)) + fg = ansitab16[CACA_LIGHTGRAY]; + else if(fg == (CACA_TRANSPARENT | 0x40)) fg = 0x0fff; else fg = ((fg << 2) & 0xf000) | ((fg << 1) & 0x0fff); @@ -411,13 +411,13 @@ static uint8_t nearest_ansi(uint16_t argb14) if(argb14 < (0x10 | 0x40)) return argb14 ^ 0x40; - if(argb14 == (CUCUL_DEFAULT | 0x40) || argb14 == (CUCUL_TRANSPARENT | 0x40)) + if(argb14 == (CACA_DEFAULT | 0x40) || argb14 == (CACA_TRANSPARENT | 0x40)) return argb14 ^ 0x40; if(argb14 < 0x0fff) /* too transparent */ - return CUCUL_TRANSPARENT; + return CACA_TRANSPARENT; - best = CUCUL_DEFAULT; + best = CACA_DEFAULT; dist = 0x3fff; for(i = 0; i < 16; i++) { @@ -451,13 +451,13 @@ static uint8_t nearest_ansi(uint16_t argb14) | ((uint32_t)((i & 0x0f0) >> 4) * 0x001100) \ | ((uint32_t)(i & 0x00f) * 0x000011)) -uint32_t _cucul_attr_to_rgb24fg(uint32_t attr) +uint32_t _caca_attr_to_rgb24fg(uint32_t attr) { - return RGB12TO24(cucul_attr_to_rgb12_fg(attr)); + return RGB12TO24(caca_attr_to_rgb12_fg(attr)); } -uint32_t _cucul_attr_to_rgb24bg(uint32_t attr) +uint32_t _caca_attr_to_rgb24bg(uint32_t attr) { - return RGB12TO24(cucul_attr_to_rgb12_bg(attr)); + return RGB12TO24(caca_attr_to_rgb12_bg(attr)); } diff --git a/cucul/box.c b/caca/box.c similarity index 72% rename from cucul/box.c rename to caca/box.c index e79c55a..2462eb3 100644 --- a/cucul/box.c +++ b/caca/box.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * Copyright (c) 2002-2006 Sam Hocevar * All Rights Reserved * @@ -22,14 +22,14 @@ # include #endif -#include "cucul.h" -#include "cucul_internals.h" +#include "caca.h" +#include "caca_internals.h" /** \brief Draw a box on the canvas using the given character. * * This function never fails. * - * \param cv The handle to the libcucul canvas. + * \param cv The handle to the libcaca canvas. * \param x X coordinate of the upper-left corner of the box. * \param y Y coordinate of the upper-left corner of the box. * \param w Width of the box. @@ -37,15 +37,15 @@ * \param ch UTF-32 character to be used to draw the box. * \return This function always returns 0. */ -int cucul_draw_box(cucul_canvas_t *cv, int x, int y, int w, int h, uint32_t ch) +int caca_draw_box(caca_canvas_t *cv, int x, int y, int w, int h, uint32_t ch) { int x2 = x + w - 1; int y2 = y + h - 1; - cucul_draw_line(cv, x, y, x, y2, ch); - cucul_draw_line(cv, x, y2, x2, y2, ch); - cucul_draw_line(cv, x2, y2, x2, y, ch); - cucul_draw_line(cv, x2, y, x, y, ch); + caca_draw_line(cv, x, y, x, y2, ch); + caca_draw_line(cv, x, y2, x2, y2, ch); + caca_draw_line(cv, x2, y2, x2, y, ch); + caca_draw_line(cv, x2, y, x, y, ch); return 0; } @@ -54,14 +54,14 @@ int cucul_draw_box(cucul_canvas_t *cv, int x, int y, int w, int h, uint32_t ch) * * This function never fails. * - * \param cv The handle to the libcucul canvas. + * \param cv The handle to the libcaca canvas. * \param x X coordinate of the upper-left corner of the box. * \param y Y coordinate of the upper-left corner of the box. * \param w Width of the box. * \param h Height of the box. * \return This function always returns 0. */ -int cucul_draw_thin_box(cucul_canvas_t *cv, int x, int y, int w, int h) +int caca_draw_thin_box(caca_canvas_t *cv, int x, int y, int w, int h) { int i, j, xmax, ymax; @@ -89,25 +89,25 @@ int cucul_draw_thin_box(cucul_canvas_t *cv, int x, int y, int w, int h) /* Draw edges */ if(y >= 0) for(i = x < 0 ? 1 : x + 1; i < x2 && i < xmax; i++) - cucul_put_char(cv, i, y, '-'); + caca_put_char(cv, i, y, '-'); if(y2 <= ymax) for(i = x < 0 ? 1 : x + 1; i < x2 && i < xmax; i++) - cucul_put_char(cv, i, y2, '-'); + caca_put_char(cv, i, y2, '-'); if(x >= 0) for(j = y < 0 ? 1 : y + 1; j < y2 && j < ymax; j++) - cucul_put_char(cv, x, j, '|'); + caca_put_char(cv, x, j, '|'); if(x2 <= xmax) for(j = y < 0 ? 1 : y + 1; j < y2 && j < ymax; j++) - cucul_put_char(cv, x2, j, '|'); + caca_put_char(cv, x2, j, '|'); /* Draw corners */ - cucul_put_char(cv, x, y, ','); - cucul_put_char(cv, x, y2, '`'); - cucul_put_char(cv, x2, y, '.'); - cucul_put_char(cv, x2, y2, '\''); + caca_put_char(cv, x, y, ','); + caca_put_char(cv, x, y2, '`'); + caca_put_char(cv, x2, y, '.'); + caca_put_char(cv, x2, y2, '\''); return 0; } @@ -116,14 +116,14 @@ int cucul_draw_thin_box(cucul_canvas_t *cv, int x, int y, int w, int h) * * This function never fails. * - * \param cv The handle to the libcucul canvas. + * \param cv The handle to the libcaca canvas. * \param x X coordinate of the upper-left corner of the box. * \param y Y coordinate of the upper-left corner of the box. * \param w Width of the box. * \param h Height of the box. * \return This function always returns 0. */ -int cucul_draw_cp437_box(cucul_canvas_t *cv, int x, int y, int w, int h) +int caca_draw_cp437_box(caca_canvas_t *cv, int x, int y, int w, int h) { int i, j, xmax, ymax; @@ -151,25 +151,25 @@ int cucul_draw_cp437_box(cucul_canvas_t *cv, int x, int y, int w, int h) /* Draw edges */ if(y >= 0) for(i = x < 0 ? 1 : x + 1; i < x2 && i < xmax; i++) - cucul_put_char(cv, i, y, 0x2500); /* ─ */ + caca_put_char(cv, i, y, 0x2500); /* ─ */ if(y2 <= ymax) for(i = x < 0 ? 1 : x + 1; i < x2 && i < xmax; i++) - cucul_put_char(cv, i, y2, 0x2500); /* ─ */ + caca_put_char(cv, i, y2, 0x2500); /* ─ */ if(x >= 0) for(j = y < 0 ? 1 : y + 1; j < y2 && j < ymax; j++) - cucul_put_char(cv, x, j, 0x2502); /* │ */ + caca_put_char(cv, x, j, 0x2502); /* │ */ if(x2 <= xmax) for(j = y < 0 ? 1 : y + 1; j < y2 && j < ymax; j++) - cucul_put_char(cv, x2, j, 0x2502); /* │ */ + caca_put_char(cv, x2, j, 0x2502); /* │ */ /* Draw corners */ - cucul_put_char(cv, x, y, 0x250c); /* ┌ */ - cucul_put_char(cv, x, y2, 0x2514); /* └ */ - cucul_put_char(cv, x2, y, 0x2510); /* ┐ */ - cucul_put_char(cv, x2, y2, 0x2518); /* ┘ */ + caca_put_char(cv, x, y, 0x250c); /* ┌ */ + caca_put_char(cv, x, y2, 0x2514); /* └ */ + caca_put_char(cv, x2, y, 0x2510); /* ┐ */ + caca_put_char(cv, x2, y2, 0x2518); /* ┘ */ return 0; } @@ -178,7 +178,7 @@ int cucul_draw_cp437_box(cucul_canvas_t *cv, int x, int y, int w, int h) * * This function never fails. * - * \param cv The handle to the libcucul canvas. + * \param cv The handle to the libcaca canvas. * \param x X coordinate of the upper-left corner of the box. * \param y Y coordinate of the upper-left corner of the box. * \param w Width of the box. @@ -186,7 +186,7 @@ int cucul_draw_cp437_box(cucul_canvas_t *cv, int x, int y, int w, int h) * \param ch UTF-32 character to be used to draw the box. * \return This function always returns 0. */ -int cucul_fill_box(cucul_canvas_t *cv, int x, int y, int w, int h, +int caca_fill_box(caca_canvas_t *cv, int x, int y, int w, int h, uint32_t ch) { int i, j, xmax, ymax; @@ -219,7 +219,7 @@ int cucul_fill_box(cucul_canvas_t *cv, int x, int y, int w, int h, for(j = y; j <= y2; j++) for(i = x; i <= x2; i++) - cucul_put_char(cv, i, j, ch); + caca_put_char(cv, i, j, ch); return 0; } diff --git a/caca/caca.c b/caca/caca.c index 2182052..311019d 100644 --- a/caca/caca.c +++ b/caca/caca.c @@ -31,7 +31,6 @@ # endif #endif -#include "cucul.h" #include "caca.h" #include "caca_internals.h" @@ -48,14 +47,14 @@ static int caca_select_driver(caca_display_t *, char const *); static int caca_plugin_install(caca_display_t *, char const *); #endif -/** \brief Attach a caca graphical context to a cucul canvas. +/** \brief Attach a caca graphical context to a caca canvas. * * Create a graphical context using device-dependent features (ncurses for * terminals, an X11 window, a DOS command window...) that attaches to a - * libcucul canvas. Everything that gets drawn in the libcucul canvas can + * libcaca canvas. Everything that gets drawn in the libcaca canvas can * then be displayed by the libcaca driver. * - * If no cucul canvas is provided, a new one is created. Its handle can be + * If no caca canvas is provided, a new one is created. Its handle can be * retrieved using caca_get_canvas() and it is automatically destroyed when * caca_free_display() is called. * @@ -65,22 +64,22 @@ static int caca_plugin_install(caca_display_t *, char const *); * - \c ENOMEM Not enough memory. * - \c ENODEV Graphical device could not be initialised. * - * \param cv The cucul canvas or NULL to create a canvas automatically. + * \param cv The caca canvas or NULL to create a canvas automatically. * \return The caca graphical context or NULL if an error occurred. */ -caca_display_t * caca_create_display(cucul_canvas_t *cv) +caca_display_t * caca_create_display(caca_canvas_t *cv) { return caca_create_display_with_driver(cv, NULL); } -/** \brief Attach a specific caca graphical context to a cucul canvas. +/** \brief Attach a specific caca graphical context to a caca canvas. * * Create a graphical context using device-dependent features (ncurses for * terminals, an X11 window, a DOS command window...) that attaches to a - * libcucul canvas. Everything that gets drawn in the libcucul canvas can + * libcaca canvas. Everything that gets drawn in the libcaca canvas can * then be displayed by the libcaca driver. * - * If no cucul canvas is provided, a new one is created. Its handle can be + * If no caca canvas is provided, a new one is created. Its handle can be * retrieved using caca_get_canvas() and it is automatically destroyed when * caca_free_display() is called. * @@ -93,12 +92,12 @@ caca_display_t * caca_create_display(cucul_canvas_t *cv) * - \c ENOMEM Not enough memory. * - \c ENODEV Graphical device could not be initialised. * - * \param cv The cucul canvas or NULL to create a canvas automatically. + * \param cv The caca canvas or NULL to create a canvas automatically. * \param driver A string describing the desired output driver or NULL to * choose the best driver automatically. * \return The caca graphical context or NULL if an error occurred. */ -caca_display_t * caca_create_display_with_driver(cucul_canvas_t *cv, +caca_display_t * caca_create_display_with_driver(caca_canvas_t *cv, char const *driver) { caca_display_t *dp = malloc(sizeof(caca_display_t)); @@ -111,15 +110,15 @@ caca_display_t * caca_create_display_with_driver(cucul_canvas_t *cv, if((dp->autorelease = (cv == NULL))) { - cv = cucul_create_canvas(0, 0); + cv = caca_create_canvas(0, 0); } dp->cv = cv; - if(cucul_manage_canvas(cv, (int (*)(void *))caca_can_resize, (void *)dp)) + if(caca_manage_canvas(cv, (int (*)(void *))caca_can_resize, (void *)dp)) { if(dp->autorelease) - cucul_free_canvas(dp->cv); + caca_free_canvas(dp->cv); free(dp); seterrno(EBUSY); return NULL; @@ -127,9 +126,9 @@ caca_display_t * caca_create_display_with_driver(cucul_canvas_t *cv, if(caca_install_driver(dp, driver)) { - cucul_unmanage_canvas(cv, (int (*)(void *))caca_can_resize, (void *)dp); + caca_unmanage_canvas(cv, (int (*)(void *))caca_can_resize, (void *)dp); if(dp->autorelease) - cucul_free_canvas(dp->cv); + caca_free_canvas(dp->cv); free(dp); seterrno(ENODEV); return NULL; @@ -223,13 +222,13 @@ int caca_set_display_driver(caca_display_t *dp, char const *driver) return 0; } -/** \brief Detach a caca graphical context from a cucul backend context. +/** \brief Detach a caca graphical context from a caca backend context. * - * Detach a graphical context from its cucul backend and destroy it. The - * libcucul canvas continues to exist and other graphical contexts can be + * Detach a graphical context from its caca backend and destroy it. The + * libcaca canvas continues to exist and other graphical contexts can be * attached to it afterwards. * - * If the cucul canvas was automatically created by caca_create_display(), + * If the caca canvas was automatically created by caca_create_display(), * it is automatically destroyed and any handle to it becomes invalid. * * This function never fails. @@ -240,9 +239,9 @@ int caca_set_display_driver(caca_display_t *dp, char const *driver) int caca_free_display(caca_display_t *dp) { caca_uninstall_driver(dp); - cucul_unmanage_canvas(dp->cv, (int (*)(void *))caca_can_resize, (void *)dp); + caca_unmanage_canvas(dp->cv, (int (*)(void *))caca_can_resize, (void *)dp); if(dp->autorelease) - cucul_free_canvas(dp->cv); + caca_free_canvas(dp->cv); free(dp); return 0; @@ -250,15 +249,15 @@ int caca_free_display(caca_display_t *dp) /** \brief Get the canvas attached to a caca graphical context. * - * Return a handle on the \e cucul_canvas_t object that was either attached + * Return a handle on the \e caca_canvas_t object that was either attached * or created by caca_create_display(). * * This function never fails. * * \param dp The libcaca graphical context. - * \return The libcucul canvas. + * \return The libcaca canvas. */ -cucul_canvas_t * caca_get_canvas(caca_display_t *dp) +caca_canvas_t * caca_get_canvas(caca_display_t *dp) { return dp->cv; } @@ -330,8 +329,8 @@ static int caca_install_driver(caca_display_t *dp, char const *driver) dp->lastticks = 0; /* Mouse position */ - dp->mouse.x = cucul_get_canvas_width(dp->cv) / 2; - dp->mouse.y = cucul_get_canvas_height(dp->cv) / 2; + dp->mouse.x = caca_get_canvas_width(dp->cv) / 2; + dp->mouse.y = caca_get_canvas_height(dp->cv) / 2; /* Resize events */ dp->resize.resized = 0; diff --git a/caca/caca.h b/caca/caca.h index 80b9851..e1c30fe 100644 --- a/caca/caca.h +++ b/caca/caca.h @@ -24,7 +24,7 @@ #ifndef __CACA_H__ #define __CACA_H__ -#include +#include #undef __extern #if defined(_DOXYGEN_SKIP_ME) @@ -42,11 +42,49 @@ extern "C" { #endif +/** \e libcaca canvas */ +typedef struct caca_canvas caca_canvas_t; +/** dither structure */ +typedef struct caca_dither caca_dither_t; +/** font structure */ +typedef struct caca_font caca_font_t; +/** file handle structure */ +typedef struct caca_file caca_file_t; /** \e libcaca display context */ typedef struct caca_display caca_display_t; /** \e libcaca event structure */ typedef struct caca_event caca_event_t; +/** \defgroup caca_attr libcaca attribute definitions + * + * Colours and styles that can be used with caca_set_attr(). + * + * @{ */ +#define CACA_BLACK 0x00 /**< The colour index for black. */ +#define CACA_BLUE 0x01 /**< The colour index for blue. */ +#define CACA_GREEN 0x02 /**< The colour index for green. */ +#define CACA_CYAN 0x03 /**< The colour index for cyan. */ +#define CACA_RED 0x04 /**< The colour index for red. */ +#define CACA_MAGENTA 0x05 /**< The colour index for magenta. */ +#define CACA_BROWN 0x06 /**< The colour index for brown. */ +#define CACA_LIGHTGRAY 0x07 /**< The colour index for light gray. */ +#define CACA_DARKGRAY 0x08 /**< The colour index for dark gray. */ +#define CACA_LIGHTBLUE 0x09 /**< The colour index for blue. */ +#define CACA_LIGHTGREEN 0x0a /**< The colour index for light green. */ +#define CACA_LIGHTCYAN 0x0b /**< The colour index for light cyan. */ +#define CACA_LIGHTRED 0x0c /**< The colour index for light red. */ +#define CACA_LIGHTMAGENTA 0x0d /**< The colour index for light magenta. */ +#define CACA_YELLOW 0x0e /**< The colour index for yellow. */ +#define CACA_WHITE 0x0f /**< The colour index for white. */ +#define CACA_DEFAULT 0x10 /**< The output driver's default colour. */ +#define CACA_TRANSPARENT 0x20 /**< The transparent colour. */ + +#define CACA_BOLD 0x01 /**< The style mask for bold. */ +#define CACA_ITALICS 0x02 /**< The style mask for italics. */ +#define CACA_UNDERLINE 0x04 /**< The style mask for underline. */ +#define CACA_BLINK 0x08 /**< The style mask for blink. */ +/* @} */ + /** \brief User event type enumeration. * * This enum serves two purposes: @@ -158,18 +196,247 @@ enum caca_key /** \defgroup libcaca libcaca basic functions * - * These functions provide the basic \e libcaca routines for driver + * These functions provide the basic \e libcaca routines for library + * initialisation, system information retrieval and configuration. + * + * @{ */ +__extern caca_canvas_t * caca_create_canvas(int, int); +__extern int caca_manage_canvas(caca_canvas_t *, int (*)(void *), void *); +__extern int caca_unmanage_canvas(caca_canvas_t *, int (*)(void *), void *); +__extern int caca_set_canvas_size(caca_canvas_t *, int, int); +__extern int caca_get_canvas_width(caca_canvas_t const *); +__extern int caca_get_canvas_height(caca_canvas_t const *); +__extern uint8_t const * caca_get_canvas_chars(caca_canvas_t const *); +__extern uint8_t const * caca_get_canvas_attrs(caca_canvas_t const *); +__extern int caca_free_canvas(caca_canvas_t *); +__extern int caca_rand(int, int); +__extern char const * caca_get_version(void); +/* @} */ + +/** \defgroup caca_canvas libcaca canvas drawing + * + * These functions provide low-level character printing routines and + * higher level graphics functions. + * + * @{ */ +#define CACA_MAGIC_FULLWIDTH 0x000ffffe /**< Used to indicate that the previous character was a fullwidth glyph. */ +__extern int caca_gotoxy(caca_canvas_t *, int, int); +__extern int caca_get_cursor_x(caca_canvas_t const *); +__extern int caca_get_cursor_y(caca_canvas_t const *); +__extern int caca_put_char(caca_canvas_t *, int, int, uint32_t); +__extern uint32_t caca_get_char(caca_canvas_t const *, int, int); +__extern int caca_put_str(caca_canvas_t *, int, int, char const *); +__extern uint32_t caca_get_attr(caca_canvas_t const *, int, int); +__extern int caca_set_attr(caca_canvas_t *, uint32_t); +__extern int caca_put_attr(caca_canvas_t *, int, int, uint32_t); +__extern int caca_set_color_ansi(caca_canvas_t *, uint8_t, uint8_t); +__extern int caca_set_color_argb(caca_canvas_t *, uint16_t, uint16_t); +__extern int caca_printf(caca_canvas_t *, int, int, char const *, ...); +__extern int caca_clear_canvas(caca_canvas_t *); +__extern int caca_set_canvas_handle(caca_canvas_t *, int, int); +__extern int caca_get_canvas_handle_x(caca_canvas_t const *); +__extern int caca_get_canvas_handle_y(caca_canvas_t const *); +__extern int caca_blit(caca_canvas_t *, int, int, caca_canvas_t const *, + caca_canvas_t const *); +__extern int caca_set_canvas_boundaries(caca_canvas_t *, int, int, int, int); +/* @} */ + +/** \defgroup caca_transform libcaca canvas transformation + * + * These functions perform horizontal and vertical canvas flipping. + * + * @{ */ +__extern int caca_invert(caca_canvas_t *); +__extern int caca_flip(caca_canvas_t *); +__extern int caca_flop(caca_canvas_t *); +__extern int caca_rotate_180(caca_canvas_t *); +__extern int caca_rotate_left(caca_canvas_t *); +__extern int caca_rotate_right(caca_canvas_t *); +__extern int caca_stretch_left(caca_canvas_t *); +__extern int caca_stretch_right(caca_canvas_t *); +/* @} */ + +/** \defgroup caca_attributes libcaca attribute conversions + * + * These functions perform conversions between attribute values. + * + * @{ */ +__extern uint8_t caca_attr_to_ansi(uint32_t); +__extern uint8_t caca_attr_to_ansi_fg(uint32_t); +__extern uint8_t caca_attr_to_ansi_bg(uint32_t); +__extern uint16_t caca_attr_to_rgb12_fg(uint32_t); +__extern uint16_t caca_attr_to_rgb12_bg(uint32_t); +__extern void caca_attr_to_argb64(uint32_t, uint8_t[8]); +/* @} */ + +/** \defgroup caca_charset libcaca character set conversions + * + * These functions perform conversions between usual character sets. + * + * @{ */ +__extern uint32_t caca_utf8_to_utf32(char const *, size_t *); +__extern size_t caca_utf32_to_utf8(char *, uint32_t); +__extern uint8_t caca_utf32_to_cp437(uint32_t); +__extern uint32_t caca_cp437_to_utf32(uint8_t); +__extern char caca_utf32_to_ascii(uint32_t); +__extern int caca_utf32_is_fullwidth(uint32_t); +/* @} */ + +/** \defgroup caca_primitives libcaca primitives drawing + * + * These functions provide routines for primitive drawing, such as lines, + * boxes, triangles and ellipses. + * + * @{ */ +__extern int caca_draw_line(caca_canvas_t *, int, int, int, int, uint32_t); +__extern int caca_draw_polyline(caca_canvas_t *, int const x[], + int const y[], int, uint32_t); +__extern int caca_draw_thin_line(caca_canvas_t *, int, int, int, int); +__extern int caca_draw_thin_polyline(caca_canvas_t *, int const x[], + int const y[], int); + +__extern int caca_draw_circle(caca_canvas_t *, int, int, int, uint32_t); +__extern int caca_draw_ellipse(caca_canvas_t *, int, int, int, int, uint32_t); +__extern int caca_draw_thin_ellipse(caca_canvas_t *, int, int, int, int); +__extern int caca_fill_ellipse(caca_canvas_t *, int, int, int, int, uint32_t); + +__extern int caca_draw_box(caca_canvas_t *, int, int, int, int, uint32_t); +__extern int caca_draw_thin_box(caca_canvas_t *, int, int, int, int); +__extern int caca_draw_cp437_box(caca_canvas_t *, int, int, int, int); +__extern int caca_fill_box(caca_canvas_t *, int, int, int, int, uint32_t); + +__extern int caca_draw_triangle(caca_canvas_t *, int, int, int, int, int, + int, uint32_t); +__extern int caca_draw_thin_triangle(caca_canvas_t *, int, int, int, int, + int, int); +__extern int caca_fill_triangle(caca_canvas_t *, int, int, int, int, int, + int, uint32_t); +/* @} */ + +/** \defgroup caca_frame libcaca canvas frame handling + * + * These functions provide high level routines for canvas frame insertion, + * removal, copying etc. + * + * @{ */ +__extern int caca_get_frame_count(caca_canvas_t const *); +__extern int caca_set_frame(caca_canvas_t *, int); +__extern char const *caca_get_frame_name(caca_canvas_t const *); +__extern int caca_set_frame_name(caca_canvas_t *, char const *); +__extern int caca_create_frame(caca_canvas_t *, int); +__extern int caca_free_frame(caca_canvas_t *, int); +/* @} */ + +/** \defgroup caca_dither libcaca bitmap dithering + * + * These functions provide high level routines for dither allocation and + * rendering. + * + * @{ */ +__extern caca_dither_t *caca_create_dither(int, int, int, int, + uint32_t, uint32_t, + uint32_t, uint32_t); +__extern int caca_set_dither_palette(caca_dither_t *, + uint32_t r[], uint32_t g[], + uint32_t b[], uint32_t a[]); +__extern int caca_set_dither_brightness(caca_dither_t *, float); +__extern float caca_get_dither_brightness(caca_dither_t const *); +__extern int caca_set_dither_gamma(caca_dither_t *, float); +__extern float caca_get_dither_gamma(caca_dither_t const *); +__extern int caca_set_dither_contrast(caca_dither_t *, float); +__extern float caca_get_dither_contrast(caca_dither_t const *); +__extern int caca_set_dither_antialias(caca_dither_t *, char const *); +__extern char const * const * caca_get_dither_antialias_list(caca_dither_t + const *); +__extern char const * caca_get_dither_antialias(caca_dither_t const *); +__extern int caca_set_dither_color(caca_dither_t *, char const *); +__extern char const * const * caca_get_dither_color_list(caca_dither_t + const *); +__extern char const * caca_get_dither_color(caca_dither_t const *); +__extern int caca_set_dither_charset(caca_dither_t *, char const *); +__extern char const * const * caca_get_dither_charset_list(caca_dither_t + const *); +__extern char const * caca_get_dither_charset(caca_dither_t const *); +__extern int caca_set_dither_algorithm(caca_dither_t *, char const *); +__extern char const * const * caca_get_dither_algorithm_list(caca_dither_t + const *); +__extern char const * caca_get_dither_algorithm(caca_dither_t const *); +__extern int caca_dither_bitmap(caca_canvas_t *, int, int, int, int, + caca_dither_t const *, void *); +__extern int caca_free_dither(caca_dither_t *); +/* @} */ + +/** \defgroup caca_font libcaca font handling + * + * These functions provide font handling routines and high quality + * canvas to bitmap rendering. + * + * @{ */ +__extern caca_font_t *caca_load_font(void const *, size_t); +__extern char const * const * caca_get_font_list(void); +__extern int caca_get_font_width(caca_font_t const *); +__extern int caca_get_font_height(caca_font_t const *); +__extern uint32_t const *caca_get_font_blocks(caca_font_t const *); +__extern int caca_render_canvas(caca_canvas_t const *, caca_font_t const *, + void *, int, int, int); +__extern int caca_free_font(caca_font_t *); +/* @} */ + +/** \defgroup caca_figfont libcaca FIGfont handling + * + * These functions provide FIGlet and TOIlet font handling routines. + * + * @{ */ +__extern int caca_canvas_set_figfont(caca_canvas_t *, char const *); +__extern int caca_put_figchar(caca_canvas_t *, uint32_t); +__extern int caca_flush_figlet(caca_canvas_t *); +/* @} */ + +/** \defgroup caca_file libcaca file IO + * + * These functions allow to read and write files in a platform-independent + * way. + * @{ */ +__extern caca_file_t *caca_file_open(char const *, const char *); +__extern int caca_file_close(caca_file_t *); +__extern uint64_t caca_file_tell(caca_file_t *); +__extern size_t caca_file_read(caca_file_t *, void *, size_t); +__extern size_t caca_file_write(caca_file_t *, const void *, size_t); +__extern char * caca_file_gets(caca_file_t *, char *, int); +__extern int caca_file_eof(caca_file_t *); +/* @} */ + +/** \defgroup caca_importexport libcaca importers/exporters from/to various + * formats + * + * These functions import various file formats into a new canvas, or export + * the current canvas to various text formats. + * + * @{ */ +__extern ssize_t caca_import_memory(caca_canvas_t *, void const *, + size_t, char const *); +__extern ssize_t caca_import_file(caca_canvas_t *, char const *, + char const *); +__extern char const * const * caca_get_import_list(void); +__extern void *caca_export_memory(caca_canvas_t const *, char const *, + size_t *); +__extern char const * const * caca_get_export_list(void); +/* @} */ + +/** \defgroup caca_display libcaca display functions + * + * These functions provide the basic \e libcaca routines for display * initialisation, system information retrieval and configuration. * * @{ */ -__extern caca_display_t * caca_create_display(cucul_canvas_t *); -__extern caca_display_t * caca_create_display_with_driver(cucul_canvas_t *, +__extern caca_display_t * caca_create_display(caca_canvas_t *); +__extern caca_display_t * caca_create_display_with_driver(caca_canvas_t *, char const *); __extern char const * const * caca_get_display_driver_list(void); __extern char const * caca_get_display_driver(caca_display_t *); __extern int caca_set_display_driver(caca_display_t *, char const *); __extern int caca_free_display(caca_display_t *); -__extern cucul_canvas_t * caca_get_canvas(caca_display_t *); +__extern caca_canvas_t * caca_get_canvas(caca_display_t *); __extern int caca_refresh_display(caca_display_t *); __extern int caca_set_display_time(caca_display_t *, int); __extern int caca_get_display_time(caca_display_t const *); @@ -178,7 +445,6 @@ __extern int caca_get_display_height(caca_display_t const *); __extern int caca_set_display_title(caca_display_t *, char const *); __extern int caca_set_mouse(caca_display_t *, int); __extern int caca_set_cursor(caca_display_t *, int); -__extern char const * caca_get_version(void); /* @} */ /** \defgroup caca_event libcaca event handling @@ -201,6 +467,77 @@ __extern int caca_get_event_resize_width(caca_event_t const *); __extern int caca_get_event_resize_height(caca_event_t const *); /* @} */ +#if !defined(_DOXYGEN_SKIP_ME) + /* Legacy stuff from beta versions, will probably disappear in 1.0 */ +typedef struct cucul_buffer cucul_buffer_t; +#define cucul_canvas_t caca_canvas_t +#define cucul_dither_t caca_dither_t +#define cucul_font_t caca_font_t +#define cucul_file_t caca_file_t +#define cucul_display_t caca_display_t +#define cucul_event_t caca_event_t + +# if defined __GNUC__ && __GNUC__ >= 3 +# define CACA_DEPRECATED __attribute__ ((__deprecated__)) +# else +# define CACA_DEPRECATED +# endif +__extern int cucul_putchar(cucul_canvas_t *, int, int, + unsigned long int) CACA_DEPRECATED; +__extern unsigned long int cucul_getchar(cucul_canvas_t *, + int, int) CACA_DEPRECATED; +__extern int cucul_putstr(cucul_canvas_t *, int, int, + char const *) CACA_DEPRECATED; +__extern int cucul_set_color(cucul_canvas_t *, unsigned char, + unsigned char) CACA_DEPRECATED; +__extern int cucul_set_truecolor(cucul_canvas_t *, unsigned int, + unsigned int) CACA_DEPRECATED; +__extern unsigned int cucul_get_canvas_frame_count(cucul_canvas_t *) + CACA_DEPRECATED; +__extern int cucul_set_canvas_frame(cucul_canvas_t *, + unsigned int) CACA_DEPRECATED; +__extern int cucul_create_canvas_frame(cucul_canvas_t *, + unsigned int) CACA_DEPRECATED; +__extern int cucul_free_canvas_frame(cucul_canvas_t *, + unsigned int) CACA_DEPRECATED; +__extern cucul_buffer_t *cucul_load_memory(void *, + unsigned long int) CACA_DEPRECATED; +__extern cucul_buffer_t *cucul_load_file(char const *) CACA_DEPRECATED; +__extern unsigned long int cucul_get_buffer_size(cucul_buffer_t *) + CACA_DEPRECATED; +__extern void * cucul_get_buffer_data(cucul_buffer_t *) CACA_DEPRECATED; +__extern int cucul_free_buffer(cucul_buffer_t *) CACA_DEPRECATED; +__extern cucul_buffer_t * cucul_export_canvas(cucul_canvas_t *, + char const *) CACA_DEPRECATED; +__extern cucul_canvas_t * cucul_import_canvas(cucul_buffer_t *, + char const *) CACA_DEPRECATED; +__extern int cucul_rotate(cucul_canvas_t *) CACA_DEPRECATED; +__extern int cucul_set_dither_invert(cucul_dither_t *, int) CACA_DEPRECATED; +__extern int cucul_set_dither_mode(cucul_dither_t *, + char const *) CACA_DEPRECATED; +__extern char const * const * cucul_get_dither_mode_list(cucul_dither_t + const *) + CACA_DEPRECATED; +# define CUCUL_COLOR_BLACK CACA_BLACK +# define CUCUL_COLOR_BLUE CACA_BLUE +# define CUCUL_COLOR_GREEN CACA_GREEN +# define CUCUL_COLOR_CYAN CACA_CYAN +# define CUCUL_COLOR_RED CACA_RED +# define CUCUL_COLOR_MAGENTA CACA_MAGENTA +# define CUCUL_COLOR_BROWN CACA_BROWN +# define CUCUL_COLOR_LIGHTGRAY CACA_LIGHTGRAY +# define CUCUL_COLOR_DARKGRAY CACA_DARKGRAY +# define CUCUL_COLOR_LIGHTBLUE CACA_LIGHTBLUE +# define CUCUL_COLOR_LIGHTGREEN CACA_LIGHTGREEN +# define CUCUL_COLOR_LIGHTCYAN CACA_LIGHTCYAN +# define CUCUL_COLOR_LIGHTRED CACA_LIGHTRED +# define CUCUL_COLOR_LIGHTMAGENTA CACA_LIGHTMAGENTA +# define CUCUL_COLOR_YELLOW CACA_YELLOW +# define CUCUL_COLOR_WHITE CACA_YELLOW +# define CUCUL_COLOR_DEFAULT CACA_DEFAULT +# define CUCUL_COLOR_TRANSPARENT CACA_TRANSPARENT +#endif + #ifdef __cplusplus } #endif diff --git a/caca/caca.pc.in b/caca/caca.pc.in index 2fb8c84..4613b3a 100644 --- a/caca/caca.pc.in +++ b/caca/caca.pc.in @@ -6,7 +6,7 @@ includedir=@includedir@ Name: caca Description: Colour ASCII-Art library Version: @VERSION@ -Requires: cucul = @VERSION@ +Requires: caca = @VERSION@ Conflicts: -Libs: -L${libdir} -lcaca -lcucul +Libs: -L${libdir} -lcaca -lcaca Cflags: -I${includedir} diff --git a/caca/caca0.c b/caca/caca0.c index 7c5ceaf..7ae0b4f 100644 --- a/caca/caca0.c +++ b/caca/caca0.c @@ -27,10 +27,10 @@ #include "caca_internals.h" /* These variables are needed to emulate old non-thread safe behaviour */ -cucul_canvas_t *__caca0_cv = NULL; +caca_canvas_t *__caca0_cv = NULL; caca_display_t *__caca0_dp = NULL; -unsigned char __caca0_fg = CUCUL_LIGHTGRAY; -unsigned char __caca0_bg = CUCUL_BLACK; +unsigned char __caca0_fg = CACA_LIGHTGRAY; +unsigned char __caca0_bg = CACA_BLACK; char __caca0_utf8[2] = " "; /* These functions are needed, too */ @@ -41,28 +41,28 @@ unsigned int __caca0_sqrt(unsigned int); int __caca0_get_feature(int); void __caca0_set_feature(int); char const *__caca0_get_feature_name(int); -cucul_canvas_t *__caca0_load_sprite(char const *); -cucul_dither_t *__caca0_create_bitmap(unsigned int, unsigned int, +caca_canvas_t *__caca0_load_sprite(char const *); +caca_dither_t *__caca0_create_bitmap(unsigned int, unsigned int, unsigned int, unsigned int, unsigned long int, unsigned long int, unsigned long int, unsigned long int); -void __caca0_free_bitmap(cucul_dither_t *); +void __caca0_free_bitmap(caca_dither_t *); extern char const *__caca0_get_color_name(unsigned char); /* Emulation functions */ int __caca0_init(void) { - __caca0_cv = cucul_create_canvas(0, 0); + __caca0_cv = caca_create_canvas(0, 0); if(!__caca0_cv) return -1; __caca0_dp = caca_create_display(__caca0_cv); if(!__caca0_dp) { - cucul_free_canvas(__caca0_cv); + caca_free_canvas(__caca0_cv); __caca0_cv = NULL; return -1; } - __caca0_fg = CUCUL_LIGHTGRAY; - __caca0_bg = CUCUL_BLACK; + __caca0_fg = CACA_LIGHTGRAY; + __caca0_bg = CACA_BLACK; return 0; } @@ -70,7 +70,7 @@ void __caca0_end(void) { caca_free_display(__caca0_dp); __caca0_dp = NULL; - cucul_free_canvas(__caca0_cv); + caca_free_canvas(__caca0_cv); __caca0_cv = NULL; } @@ -144,7 +144,7 @@ static char const *features[] = NULL, "none", "ordered2", "ordered4", "ordered8", "random" }; -static cucul_dither_t **bitmaps = NULL; +static caca_dither_t **bitmaps = NULL; static unsigned int nbitmaps = 0; static int background = 0x12; @@ -172,21 +172,21 @@ void __caca0_set_feature(int feature) case 0x11: case 0x12: background = feature; for(i = 0; i < nbitmaps; i++) - cucul_set_dither_color(bitmaps[i], features[feature]); + caca_set_dither_color(bitmaps[i], features[feature]); break; case 0x20: feature = 0x22; /* CACA_ANTIALIASING_PREFILTER */ case 0x21: case 0x22: antialiasing = feature; for(i = 0; i < nbitmaps; i++) - cucul_set_dither_antialias(bitmaps[i], features[feature]); + caca_set_dither_antialias(bitmaps[i], features[feature]); break; case 0x30: feature = 0x33; /* CACA_DITHERING_ORDERED4 */ case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: dithering = feature; for(i = 0; i < nbitmaps; i++) - cucul_set_dither_algorithm(bitmaps[i], features[feature]); + caca_set_dither_algorithm(bitmaps[i], features[feature]); break; } } @@ -211,48 +211,48 @@ char const *__caca0_get_feature_name(int feature) } } -cucul_canvas_t *__caca0_load_sprite(char const *file) +caca_canvas_t *__caca0_load_sprite(char const *file) { - cucul_canvas_t *cv; + caca_canvas_t *cv; - cv = cucul_create_canvas(0, 0);; - if(cucul_import_file(cv, file, "") < 0) + cv = caca_create_canvas(0, 0);; + if(caca_import_file(cv, file, "") < 0) { - cucul_free_canvas(cv); + caca_free_canvas(cv); return NULL; } return cv; } -cucul_dither_t *__caca0_create_bitmap(unsigned int bpp, unsigned int w, +caca_dither_t *__caca0_create_bitmap(unsigned int bpp, unsigned int w, unsigned int h, unsigned int pitch, unsigned long int r, unsigned long int g, unsigned long int b, unsigned long int a) { - cucul_dither_t *d; + caca_dither_t *d; - d = cucul_create_dither(bpp, w, h, pitch, r, g, b, a); + d = caca_create_dither(bpp, w, h, pitch, r, g, b, a); if(!d) return NULL; - cucul_set_dither_color(d, features[background]); - cucul_set_dither_antialias(d, features[antialiasing]); - cucul_set_dither_algorithm(d, features[dithering]); + caca_set_dither_color(d, features[background]); + caca_set_dither_antialias(d, features[antialiasing]); + caca_set_dither_algorithm(d, features[dithering]); /* Store bitmap in our list */ nbitmaps++; - bitmaps = realloc(bitmaps, nbitmaps * (sizeof(cucul_dither_t *))); + bitmaps = realloc(bitmaps, nbitmaps * (sizeof(caca_dither_t *))); bitmaps[nbitmaps - 1] = d; return d; } -void __caca0_free_bitmap(cucul_dither_t *d) +void __caca0_free_bitmap(caca_dither_t *d) { unsigned int i, found = 0; - cucul_free_dither(d); + caca_free_dither(d); /* Remove bitmap from our list */ for(i = 0; i + 1 < nbitmaps; i++) diff --git a/caca/caca0.h b/caca/caca0.h index 9f08e12..0417715 100644 --- a/caca/caca0.h +++ b/caca/caca0.h @@ -35,15 +35,15 @@ extern unsigned int __caca0_sqrt(unsigned int); extern int __caca0_get_feature(int); extern void __caca0_set_feature(int); extern char const *__caca0_get_feature_name(int); -extern cucul_canvas_t *__caca0_load_sprite(char const *); -extern cucul_dither_t *__caca0_create_bitmap(unsigned int, unsigned int, +extern caca_canvas_t *__caca0_load_sprite(char const *); +extern caca_dither_t *__caca0_create_bitmap(unsigned int, unsigned int, unsigned int, unsigned int, unsigned long int, unsigned long int, unsigned long int, unsigned long int); -extern void __caca0_free_bitmap(cucul_dither_t *); +extern void __caca0_free_bitmap(caca_dither_t *); extern char const *__caca0_get_color_name(unsigned char); /* These variables are needed to emulate old non-thread safe behaviour */ -extern cucul_canvas_t *__caca0_cv; +extern caca_canvas_t *__caca0_cv; extern caca_display_t *__caca0_dp; extern unsigned char __caca0_fg; extern unsigned char __caca0_bg; @@ -51,22 +51,22 @@ extern unsigned char __caca0_bg; /* These enums and macros changed names or values */ enum caca_color { - CACA_COLOR_BLACK = CUCUL_BLACK, - CACA_COLOR_BLUE = CUCUL_BLUE, - CACA_COLOR_GREEN = CUCUL_GREEN, - CACA_COLOR_CYAN = CUCUL_CYAN, - CACA_COLOR_RED = CUCUL_RED, - CACA_COLOR_MAGENTA = CUCUL_MAGENTA, - CACA_COLOR_BROWN = CUCUL_BROWN, - CACA_COLOR_LIGHTGRAY = CUCUL_LIGHTGRAY, - CACA_COLOR_DARKGRAY = CUCUL_DARKGRAY, - CACA_COLOR_LIGHTBLUE = CUCUL_LIGHTBLUE, - CACA_COLOR_LIGHTGREEN = CUCUL_LIGHTGREEN, - CACA_COLOR_LIGHTCYAN = CUCUL_LIGHTCYAN, - CACA_COLOR_LIGHTRED = CUCUL_LIGHTRED, - CACA_COLOR_LIGHTMAGENTA = CUCUL_LIGHTMAGENTA, - CACA_COLOR_YELLOW = CUCUL_YELLOW, - CACA_COLOR_WHITE = CUCUL_WHITE, + CACA_COLOR_BLACK = CACA_BLACK, + CACA_COLOR_BLUE = CACA_BLUE, + CACA_COLOR_GREEN = CACA_GREEN, + CACA_COLOR_CYAN = CACA_CYAN, + CACA_COLOR_RED = CACA_RED, + CACA_COLOR_MAGENTA = CACA_MAGENTA, + CACA_COLOR_BROWN = CACA_BROWN, + CACA_COLOR_LIGHTGRAY = CACA_LIGHTGRAY, + CACA_COLOR_DARKGRAY = CACA_DARKGRAY, + CACA_COLOR_LIGHTBLUE = CACA_LIGHTBLUE, + CACA_COLOR_LIGHTGREEN = CACA_LIGHTGREEN, + CACA_COLOR_LIGHTCYAN = CACA_LIGHTCYAN, + CACA_COLOR_LIGHTRED = CACA_LIGHTRED, + CACA_COLOR_LIGHTMAGENTA = CACA_LIGHTMAGENTA, + CACA_COLOR_YELLOW = CACA_YELLOW, + CACA_COLOR_WHITE = CACA_WHITE, }; enum caca_feature @@ -117,8 +117,8 @@ enum caca_feature #define caca_set_feature __caca0_set_feature #define caca_get_feature_name __caca0_get_feature_name #define caca_get_rendertime() caca_get_display_time(__caca0_dp) -#define caca_get_width() cucul_get_canvas_width(__caca0_cv) -#define caca_get_height() cucul_get_canvas_height(__caca0_cv) +#define caca_get_width() caca_get_canvas_width(__caca0_cv) +#define caca_get_height() caca_get_canvas_height(__caca0_cv) #define caca_set_window_title(s) caca_set_display_title(__caca0_dp, s) #define caca_get_window_width() caca_get_display_width(__caca0_dp) #define caca_get_window_height() caca_get_display_height(__caca0_dp) @@ -131,62 +131,62 @@ enum caca_feature #define caca_get_mouse_y() caca_get_mouse_y(__caca0_dp) #define caca_set_color(x, y) \ - (__caca0_fg = (x), __caca0_bg = (y), cucul_set_color_ansi(__caca0_cv, x, y)) + (__caca0_fg = (x), __caca0_bg = (y), caca_set_color_ansi(__caca0_cv, x, y)) #define caca_get_fg_color() __caca0_fg #define caca_get_bg_color() __caca0_bg #define caca_get_color_name __caca0_get_color_name -#define caca_putchar(x, y, c) cucul_put_char(__caca0_cv, x, y, c) -#define caca_putstr(x, y, s) cucul_put_str(__caca0_cv, x, y, s) -#define caca_printf(x, y, f, z...) cucul_printf(__caca0_cv, x, y, f, ##z) -#define caca_clear() cucul_clear_canvas(__caca0_cv) +#define caca_putchar(x, y, c) caca_put_char(__caca0_cv, x, y, c) +#define caca_putstr(x, y, s) caca_put_str(__caca0_cv, x, y, s) +#define caca_printf(x, y, f, z...) caca_printf(__caca0_cv, x, y, f, ##z) +#define caca_clear() caca_clear_canvas(__caca0_cv) #define caca_draw_line(x, y, z, t, c) \ - cucul_draw_line(__caca0_cv, x, y, z, t, c) + caca_draw_line(__caca0_cv, x, y, z, t, c) #define caca_draw_polyline(x, y, z, c) \ - cucul_draw_polyline(__caca0_cv, x, y, z, c) + caca_draw_polyline(__caca0_cv, x, y, z, c) #define caca_draw_thin_line(x, y, z, t) \ - cucul_draw_thin_line(__caca0_cv, x, y, z, t) + caca_draw_thin_line(__caca0_cv, x, y, z, t) #define caca_draw_thin_polyline(x, y, z) \ - cucul_draw_thin_polyline(__caca0_cv, x, y, z) + caca_draw_thin_polyline(__caca0_cv, x, y, z) #define caca_draw_circle(x, y, z, c) \ - cucul_draw_circle(__caca0_cv, x, y, z, c) + caca_draw_circle(__caca0_cv, x, y, z, c) #define caca_draw_ellipse(x, y, z, t, c) \ - cucul_draw_ellipse(__caca0_cv, x, y, z, t, c) + caca_draw_ellipse(__caca0_cv, x, y, z, t, c) #define caca_draw_thin_ellipse(x, y, z, t) \ - cucul_draw_thin_ellipse(__caca0_cv, x, y, z, t) + caca_draw_thin_ellipse(__caca0_cv, x, y, z, t) #define caca_fill_ellipse(x, y, z, t, c) \ - cucul_fill_ellipse(__caca0_cv, x, y, z, t, c) + caca_fill_ellipse(__caca0_cv, x, y, z, t, c) #define caca_draw_box(x, y, z, t, c) \ - cucul_draw_box(__caca0_cv, x, y, z, t, c) + caca_draw_box(__caca0_cv, x, y, z, t, c) #define caca_draw_thin_box(x, y, z, t) \ - cucul_draw_thin_box(__caca0_cv, x, y, z, t) + caca_draw_thin_box(__caca0_cv, x, y, z, t) #define caca_fill_box(x, y, z, t, c) \ - cucul_fill_box(__caca0_cv, x, y, z, t, c) + caca_fill_box(__caca0_cv, x, y, z, t, c) #define caca_draw_triangle(x, y, z, t, u, v, c) \ - cucul_draw_triangle(__caca0_cv, x, y, z, t, u, v, c) + caca_draw_triangle(__caca0_cv, x, y, z, t, u, v, c) #define caca_draw_thin_triangle(x, y, z, t, u, v) \ - cucul_draw_thin_triangle(__caca0_cv, x, y, z, t, u, v) + caca_draw_thin_triangle(__caca0_cv, x, y, z, t, u, v) #define caca_fill_triangle(x, y, z, t, u, v, c) \ - cucul_fill_triangle(__caca0_cv, x, y, z, t, u, v, c) + caca_fill_triangle(__caca0_cv, x, y, z, t, u, v, c) -#define caca_rand(a, b) cucul_rand(a, (b)+1) +#define caca_rand(a, b) caca_rand(a, (b)+1) #define caca_sqrt __caca0_sqrt -#define caca_sprite cucul_canvas +#define caca_sprite caca_canvas #define caca_load_sprite __caca0_load_sprite #define caca_get_sprite_frames(c) 1 -#define caca_get_sprite_width(c, f) cucul_get_canvas_width(c) -#define caca_get_sprite_height(c, f) cucul_get_canvas_height(c) +#define caca_get_sprite_width(c, f) caca_get_canvas_width(c) +#define caca_get_sprite_height(c, f) caca_get_canvas_height(c) #define caca_get_sprite_dx(c, f) 0 #define caca_get_sprite_dx(c, f) 0 -#define caca_draw_sprite(x, y, c, f) cucul_blit(__caca0_cv, x, y, c, NULL) -#define caca_free_sprite cucul_free_canvas +#define caca_draw_sprite(x, y, c, f) caca_blit(__caca0_cv, x, y, c, NULL) +#define caca_free_sprite caca_free_canvas -#define caca_bitmap cucul_dither +#define caca_bitmap caca_dither #define caca_create_bitmap __caca0_create_bitmap -#define caca_set_bitmap_palette cucul_set_dither_palette +#define caca_set_bitmap_palette caca_set_dither_palette #define caca_draw_bitmap(x, y, z, t, b, p) \ - cucul_dither_bitmap(__caca0_cv, x, y, z, t, b, p) + caca_dither_bitmap(__caca0_cv, x, y, z, t, b, p) #define caca_free_bitmap __caca0_free_bitmap #ifdef __cplusplus diff --git a/caca/caca_internals.h b/caca/caca_internals.h index 751d6c1..b2cd280 100644 --- a/caca/caca_internals.h +++ b/caca/caca_internals.h @@ -19,11 +19,55 @@ typedef struct caca_timer caca_timer_t; typedef struct caca_privevent caca_privevent_t; +typedef struct caca_figfont caca_figfont_t; #if !defined(_DOXYGEN_SKIP_ME) # define EVENTBUF_LEN 10 #endif +struct caca_frame +{ + /* Frame size */ + int width, height; + + /* Cell information */ + uint32_t *chars; + uint32_t *attrs; + + /* Painting context */ + int x, y; + int handlex, handley; + uint32_t curattr; + + /* Frame name */ + char *name; +}; + +struct caca_canvas +{ + /* XXX: look at caca_set_canvas_boundaries() before adding anything + * to this structure. The function is quite hacky. */ + + /* Frame information */ + int frame, framecount; + struct caca_frame *frames; + + /* Canvas management */ + int refcount; + int autoinc; + int (*resize_callback)(void *); + void *resize_data; + + /* Shortcut to the active frame information */ + int width, height; + uint32_t *chars; + uint32_t *attrs; + uint32_t curattr; + + /* FIGfont management */ + caca_figfont_t *ff; +}; + /* Graphics driver */ enum caca_driver { @@ -104,8 +148,8 @@ struct caca_privevent /* Internal caca display context */ struct caca_display { - /* A link to our cucul canvas */ - cucul_canvas_t *cv; + /* A link to our caca canvas */ + caca_canvas_t *cv; int autorelease; #if defined(USE_PLUGINS) @@ -168,6 +212,14 @@ struct caca_display } events; }; +/* Colour functions */ +extern uint32_t _caca_attr_to_rgb24fg(uint32_t); +extern uint32_t _caca_attr_to_rgb24bg(uint32_t); + +/* Frames functions */ +extern void _caca_save_frame_info(caca_canvas_t *); +extern void _caca_load_frame_info(caca_canvas_t *); + /* Internal timer functions */ extern void _caca_sleep(int); extern int _caca_getticks(caca_timer_t *); diff --git a/cucul/cucul_types.h.in b/caca/caca_types.h.in similarity index 58% rename from cucul/cucul_types.h.in rename to caca/caca_types.h.in index 41b5011..7fe5f2e 100644 --- a/cucul/cucul_types.h.in +++ b/caca/caca_types.h.in @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * libcaca Colour ASCII-Art library * Copyright (c) 2008 Sam Hocevar * All Rights Reserved @@ -16,26 +16,26 @@ * This file contains definitions for the C99 integer types. */ -#ifndef __CUCUL_TYPES_H__ -#define __CUCUL_TYPES_H__ +#ifndef __CACA_TYPES_H__ +#define __CACA_TYPES_H__ -#ifndef CUCUL_TYPES -# define CUCUL_TYPES @CUCUL_TYPES@ +#ifndef CACA_TYPES +# define CACA_TYPES @CACA_TYPES@ #endif /* mode 1: standard header is present, just include it */ -#if CUCUL_TYPES == 1 +#if CACA_TYPES == 1 # include # include /* mode 2: standard header is present, just include it */ -#elif CUCUL_TYPES == 2 +#elif CACA_TYPES == 2 # include # include /* mode 3: indicates Win32, only (u)intptr_t is present * FIXME: Win64 probably doesn't work that way */ -#elif CUCUL_TYPES == 3 +#elif CACA_TYPES == 3 #include typedef signed char int8_t; @@ -55,47 +55,47 @@ typedef unsigned int size_t; * sizeof(long) == sizeof(void *). We don't typedef directly because we * have no idea what other typedefs have already been made. */ #else -typedef signed char _cucul_int8_t; -typedef signed short _cucul_int16_t; -typedef signed long int _cucul_int32_t; -typedef signed long long int _cucul_int64_t; +typedef signed char _caca_int8_t; +typedef signed short _caca_int16_t; +typedef signed long int _caca_int32_t; +typedef signed long long int _caca_int64_t; # undef int8_t -# define int8_t _cucul_int8_t +# define int8_t _caca_int8_t # undef int16_t -# define int16_t _cucul_int16_t +# define int16_t _caca_int16_t # undef int32_t -# define int32_t _cucul_int32_t +# define int32_t _caca_int32_t # undef int64_t -# define int64_t _cucul_int64_t +# define int64_t _caca_int64_t -typedef unsigned char _cucul_uint8_t; -typedef unsigned short _cucul_uint16_t; -typedef unsigned long int _cucul_uint32_t; -typedef unsigned long long int _cucul_uint64_t; +typedef unsigned char _caca_uint8_t; +typedef unsigned short _caca_uint16_t; +typedef unsigned long int _caca_uint32_t; +typedef unsigned long long int _caca_uint64_t; # undef uint8_t -# define uint8_t _cucul_uint8_t +# define uint8_t _caca_uint8_t # undef uint16_t -# define uint16_t _cucul_uint16_t +# define uint16_t _caca_uint16_t # undef uint32_t -# define uint32_t _cucul_uint32_t +# define uint32_t _caca_uint32_t # undef uint64_t -# define uint64_t _cucul_uint64_t +# define uint64_t _caca_uint64_t -typedef long int _cucul_intptr_t; -typedef unsigned long int _cucul_uintptr_t; +typedef long int _caca_intptr_t; +typedef unsigned long int _caca_uintptr_t; # undef intptr_t -# define intptr_t _cucul_intptr_t +# define intptr_t _caca_intptr_t # undef uintptr_t -# define uintptr_t _cucul_uintptr_t +# define uintptr_t _caca_uintptr_t -typedef int _cucul_ssize_t; -typedef unsigned int _cucul_size_t; +typedef int _caca_ssize_t; +typedef unsigned int _caca_size_t; # undef ssize_t -# define ssize_t _cucul_ssize_t +# define ssize_t _caca_ssize_t # undef size_t -# define size_t _cucul_size_t +# define size_t _caca_size_t #endif -#endif /* __CUCUL_TYPES_H__ */ +#endif /* __CACA_TYPES_H__ */ diff --git a/cucul/cucul.c b/caca/canvas.c similarity index 81% rename from cucul/cucul.c rename to caca/canvas.c index 3a22eb8..839d4cc 100644 --- a/cucul/cucul.c +++ b/caca/canvas.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * Copyright (c) 2002-2006 Sam Hocevar * All Rights Reserved * @@ -13,7 +13,7 @@ */ /* - * This file contains the main functions used by \e libcucul applications + * This file contains the main functions used by \e libcaca applications * to initialise a drawing context. */ @@ -30,16 +30,16 @@ # endif #endif -#include "cucul.h" -#include "cucul_internals.h" +#include "caca.h" +#include "caca_internals.h" -static int cucul_resize(cucul_canvas_t *, int, int); +static int caca_resize(caca_canvas_t *, int, int); -/** \brief Initialise a \e libcucul canvas. +/** \brief Initialise a \e libcaca canvas. * - * Initialise internal \e libcucul structures and the backend that will + * Initialise internal \e libcaca structures and the backend that will * be used for subsequent graphical operations. It must be the first - * \e libcucul function to be called in a function. cucul_free_canvas() + * \e libcaca function to be called in a function. caca_free_canvas() * should be called at the end of the program to free all allocated resources. * * Both the cursor and the canvas' handle are initialised at the top-left @@ -51,11 +51,11 @@ static int cucul_resize(cucul_canvas_t *, int, int); * * \param width The desired canvas width * \param height The desired canvas height - * \return A libcucul canvas handle upon success, NULL if an error occurred. + * \return A libcaca canvas handle upon success, NULL if an error occurred. */ -cucul_canvas_t * cucul_create_canvas(int width, int height) +caca_canvas_t * caca_create_canvas(int width, int height) { - cucul_canvas_t *cv; + caca_canvas_t *cv; if(width < 0 || height < 0) { @@ -63,7 +63,7 @@ cucul_canvas_t * cucul_create_canvas(int width, int height) return NULL; } - cv = malloc(sizeof(cucul_canvas_t)); + cv = malloc(sizeof(caca_canvas_t)); if(!cv) goto nomem; @@ -75,7 +75,7 @@ cucul_canvas_t * cucul_create_canvas(int width, int height) cv->frame = 0; cv->framecount = 1; - cv->frames = malloc(sizeof(struct cucul_frame)); + cv->frames = malloc(sizeof(struct caca_frame)); if(!cv->frames) { free(cv); @@ -90,12 +90,12 @@ cucul_canvas_t * cucul_create_canvas(int width, int height) cv->frames[0].curattr = 0; cv->frames[0].name = strdup("frame#00000000"); - _cucul_load_frame_info(cv); - cucul_set_color_ansi(cv, CUCUL_DEFAULT, CUCUL_TRANSPARENT); + _caca_load_frame_info(cv); + caca_set_color_ansi(cv, CACA_DEFAULT, CACA_TRANSPARENT); cv->ff = NULL; - if(cucul_resize(cv, width, height) < 0) + if(caca_resize(cv, width, height) < 0) { int saved_errno = geterrno(); free(cv->frames[0].name); @@ -116,7 +116,7 @@ nomem: * * Lock a canvas to prevent it from being resized. If non-NULL, * the \e callback function pointer will be called upon each - * \e cucul_set_canvas_size call and if the returned value is zero, the + * \e caca_set_canvas_size call and if the returned value is zero, the * canvas resize request will be denied. * * This function is only useful for display drivers such as the \e libcaca @@ -125,12 +125,12 @@ nomem: * If an error occurs, -1 is returned and \b errno is set accordingly: * - \c EBUSY The canvas is already being managed. * - * \param cv A libcucul canvas. + * \param cv A libcaca canvas. * \param callback An optional callback function pointer. * \param p The argument to be passed to \e callback. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_manage_canvas(cucul_canvas_t *cv, int (*callback)(void *), void *p) +int caca_manage_canvas(caca_canvas_t *cv, int (*callback)(void *), void *p) { if(cv->refcount) { @@ -147,9 +147,9 @@ int cucul_manage_canvas(cucul_canvas_t *cv, int (*callback)(void *), void *p) /** \brief Unmanage a canvas. * - * Unlock a canvas previously locked by cucul_manage_canvas(). For safety + * Unlock a canvas previously locked by caca_manage_canvas(). For safety * reasons, the callback and callback data arguments must be the same as for - * the cucul_manage_canvas() call. + * the caca_manage_canvas() call. * * This function is only useful for display drivers such as the \e libcaca * library. @@ -158,13 +158,13 @@ int cucul_manage_canvas(cucul_canvas_t *cv, int (*callback)(void *), void *p) * - \c EINVAL The canvas is not managed, or the callback arguments do * not match. * - * \param cv A libcucul canvas. + * \param cv A libcaca canvas. * \param callback The \e callback argument previously passed to - cucul_manage_canvas(). - * \param p The \e p argument previously passed to cucul_manage_canvas(). + caca_manage_canvas(). + * \param p The \e p argument previously passed to caca_manage_canvas(). * \return 0 in case of success, -1 if an error occurred. */ -int cucul_unmanage_canvas(cucul_canvas_t *cv, int (*callback)(void *), void *p) +int caca_unmanage_canvas(caca_canvas_t *cv, int (*callback)(void *), void *p) { if(!cv->refcount || cv->resize_callback != callback || cv->resize_data != p) @@ -204,12 +204,12 @@ int cucul_unmanage_canvas(cucul_canvas_t *cv, int (*callback)(void *), void *p) * - \c ENOMEM Not enough memory for the requested canvas size. If this * happens, the canvas handle becomes invalid and should not be used. * - * \param cv A libcucul canvas. + * \param cv A libcaca canvas. * \param width The desired canvas width. * \param height The desired canvas height. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_set_canvas_size(cucul_canvas_t *cv, int width, int height) +int caca_set_canvas_size(caca_canvas_t *cv, int width, int height) { if(width < 0 || height < 0) { @@ -224,7 +224,7 @@ int cucul_set_canvas_size(cucul_canvas_t *cv, int width, int height) return -1; } - return cucul_resize(cv, width, height); + return caca_resize(cv, width, height); } /** \brief Get the canvas width. @@ -233,10 +233,10 @@ int cucul_set_canvas_size(cucul_canvas_t *cv, int width, int height) * * This function never fails. * - * \param cv A libcucul canvas. + * \param cv A libcaca canvas. * \return The canvas width. */ -int cucul_get_canvas_width(cucul_canvas_t const *cv) +int caca_get_canvas_width(caca_canvas_t const *cv) { return cv->width; } @@ -247,10 +247,10 @@ int cucul_get_canvas_width(cucul_canvas_t const *cv) * * This function never fails. * - * \param cv A libcucul canvas. + * \param cv A libcaca canvas. * \return The canvas height. */ -int cucul_get_canvas_height(cucul_canvas_t const *cv) +int caca_get_canvas_height(caca_canvas_t const *cv) { return cv->height; } @@ -259,17 +259,17 @@ int cucul_get_canvas_height(cucul_canvas_t const *cv) * * Return the current canvas' internal character array. The array elements * consist in native endian 32-bit Unicode values as returned by - * cucul_get_char(). + * caca_get_char(). * * This function is only useful for display drivers such as the \e libcaca * library. * * This function never fails. * - * \param cv A libcucul canvas. + * \param cv A libcaca canvas. * \return The canvas character array. */ -uint8_t const * cucul_get_canvas_chars(cucul_canvas_t const *cv) +uint8_t const * caca_get_canvas_chars(caca_canvas_t const *cv) { return (uint8_t const *)cv->chars; } @@ -278,34 +278,34 @@ uint8_t const * cucul_get_canvas_chars(cucul_canvas_t const *cv) * * Returns the current canvas' internal attribute array. The array elements * consist in native endian 32-bit attribute values as returned by - * cucul_get_attr(). + * caca_get_attr(). * * This function is only useful for display drivers such as the \e libcaca * library. * * This function never fails. * - * \param cv A libcucul canvas. + * \param cv A libcaca canvas. * \return The canvas attribute array. */ -uint8_t const * cucul_get_canvas_attrs(cucul_canvas_t const *cv) +uint8_t const * caca_get_canvas_attrs(caca_canvas_t const *cv) { return (uint8_t const *)cv->attrs; } -/** \brief Uninitialise \e libcucul. +/** \brief Uninitialise \e libcaca. * - * Free all resources allocated by cucul_create_canvas(). After - * this function has been called, no other \e libcucul functions may be - * used unless a new call to cucul_create_canvas() is done. + * Free all resources allocated by caca_create_canvas(). After + * this function has been called, no other \e libcaca functions may be + * used unless a new call to caca_create_canvas() is done. * * If an error occurs, -1 is returned and \b errno is set accordingly: * - \c EBUSY The canvas is in use by a display driver and cannot be freed. * - * \param cv A libcucul canvas. + * \param cv A libcaca canvas. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_free_canvas(cucul_canvas_t *cv) +int caca_free_canvas(caca_canvas_t *cv) { int f; @@ -322,7 +322,7 @@ int cucul_free_canvas(cucul_canvas_t *cv) free(cv->frames[f].name); } - cucul_canvas_set_figfont(cv, NULL); + caca_canvas_set_figfont(cv, NULL); free(cv->frames); free(cv); @@ -341,7 +341,7 @@ int cucul_free_canvas(cucul_canvas_t *cv) * \return A random integer comprised between \p min and \p max - 1 * (inclusive). */ -int cucul_rand(int min, int max) +int caca_rand(int min, int max) { static int need_init = 1; @@ -354,24 +354,12 @@ int cucul_rand(int min, int max) return min + (int)((1.0 * (max - min)) * rand() / (RAND_MAX + 1.0)); } -/** \brief Return the \e libcucul version. - * - * Return a read-only string with the \e libcucul version information. - * - * This function never fails. - * - * \return The \e libcucul version information. - */ -char const * cucul_get_version(void) -{ - return VERSION; -} /* * XXX: The following functions are local. */ -int cucul_resize(cucul_canvas_t *cv, int width, int height) +int caca_resize(caca_canvas_t *cv, int width, int height) { int x, y, f, old_width, old_height, new_size, old_size; @@ -379,7 +367,7 @@ int cucul_resize(cucul_canvas_t *cv, int width, int height) old_height = cv->height; old_size = old_width * old_height; - _cucul_save_frame_info(cv); + _caca_save_frame_info(cv); cv->width = width; cv->height = height; @@ -507,7 +495,7 @@ int cucul_resize(cucul_canvas_t *cv, int width, int height) } /* Reset the current frame shortcuts */ - _cucul_load_frame_info(cv); + _caca_load_frame_info(cv); return 0; } diff --git a/cucul/charset.c b/caca/charset.c similarity index 96% rename from cucul/charset.c rename to caca/charset.c index 665b1ec..efde596 100644 --- a/cucul/charset.c +++ b/caca/charset.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * Copyright (c) 2002-2007 Sam Hocevar * 2007 Ben Wiley Sittler * All Rights Reserved @@ -24,8 +24,8 @@ # include #endif -#include "cucul.h" -#include "cucul_internals.h" +#include "caca.h" +#include "caca_internals.h" /* * UTF-8 handling @@ -111,7 +111,7 @@ static uint32_t const cp437_lookup2[] = * \return The corresponding UTF-32 character, or zero if the character * is incomplete. */ -uint32_t cucul_utf8_to_utf32(char const *s, size_t *bytes) +uint32_t caca_utf8_to_utf32(char const *s, size_t *bytes) { int todo = trailing[(int)(unsigned char)*s]; int i = 0; @@ -150,7 +150,7 @@ uint32_t cucul_utf8_to_utf32(char const *s, size_t *bytes) * \param ch The UTF-32 character. * \return The number of bytes written. */ -size_t cucul_utf32_to_utf8(char *buf, uint32_t ch) +size_t caca_utf32_to_utf8(char *buf, uint32_t ch) { static const uint8_t mark[7] = { @@ -190,7 +190,7 @@ size_t cucul_utf32_to_utf8(char *buf, uint32_t ch) * \param ch The UTF-32 character. * \return The corresponding CP437 character, or "?" if not representable. */ -uint8_t cucul_utf32_to_cp437(uint32_t ch) +uint8_t caca_utf32_to_cp437(uint32_t ch) { unsigned int i; @@ -222,7 +222,7 @@ uint8_t cucul_utf32_to_cp437(uint32_t ch) * \param ch The CP437 character. * \return The corresponding UTF-32 character, or zero if not representable. */ -uint32_t cucul_cp437_to_utf32(uint8_t ch) +uint32_t caca_cp437_to_utf32(uint8_t ch) { if(ch > 0x7f) return cp437_lookup2[ch - 0x7f]; @@ -248,7 +248,7 @@ uint32_t cucul_cp437_to_utf32(uint8_t ch) * \return The corresponding ASCII character, or a graphically close * equivalent if found, or "?" if not representable. */ -char cucul_utf32_to_ascii(uint32_t ch) +char caca_utf32_to_ascii(uint32_t ch) { /* Standard ASCII */ if(ch < 0x80) @@ -387,7 +387,7 @@ char cucul_utf32_to_ascii(uint32_t ch) * \param ch The UTF-32 character. * \return 1 if the character is fullwidth, 0 otherwise. */ -int cucul_utf32_is_fullwidth(uint32_t ch) +int caca_utf32_is_fullwidth(uint32_t ch) { if(ch < 0x2e80) /* Standard stuff */ return 0; diff --git a/cucul/conic.c b/caca/conic.c similarity index 83% rename from cucul/conic.c rename to caca/conic.c index 385453b..b88894e 100644 --- a/cucul/conic.c +++ b/caca/conic.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * Copyright (c) 2002-2006 Sam Hocevar * All Rights Reserved * @@ -23,23 +23,23 @@ # include #endif -#include "cucul.h" -#include "cucul_internals.h" +#include "caca.h" +#include "caca_internals.h" -static void ellipsepoints(cucul_canvas_t *, int, int, int, int, uint32_t, int); +static void ellipsepoints(caca_canvas_t *, int, int, int, int, uint32_t, int); /** \brief Draw a circle on the canvas using the given character. * * This function never fails. * - * \param cv The handle to the libcucul canvas. + * \param cv The handle to the libcaca canvas. * \param x Center X coordinate. * \param y Center Y coordinate. * \param r Circle radius. * \param ch UTF-32 character to be used to draw the circle outline. * \return This function always returns 0. */ -int cucul_draw_circle(cucul_canvas_t *cv, int x, int y, int r, uint32_t ch) +int caca_draw_circle(caca_canvas_t *cv, int x, int y, int r, uint32_t ch) { int test, dx, dy; @@ -59,7 +59,7 @@ int cucul_draw_circle(cucul_canvas_t *cv, int x, int y, int r, uint32_t ch) * * This function never fails. * - * \param cv The handle to the libcucul canvas. + * \param cv The handle to the libcaca canvas. * \param xo Center X coordinate. * \param yo Center Y coordinate. * \param a Ellipse X radius. @@ -67,7 +67,7 @@ int cucul_draw_circle(cucul_canvas_t *cv, int x, int y, int r, uint32_t ch) * \param ch UTF-32 character to be used to fill the ellipse. * \return This function always returns 0. */ -int cucul_fill_ellipse(cucul_canvas_t *cv, int xo, int yo, int a, int b, +int caca_fill_ellipse(caca_canvas_t *cv, int xo, int yo, int a, int b, uint32_t ch) { int d2; @@ -84,15 +84,15 @@ int cucul_fill_ellipse(cucul_canvas_t *cv, int xo, int yo, int a, int b, else { d1 += b*b*(2*x*1) + a*a*(-2*y+2); - cucul_draw_line(cv, xo - x, yo - y, xo + x, yo - y, ch); - cucul_draw_line(cv, xo - x, yo + y, xo + x, yo + y, ch); + caca_draw_line(cv, xo - x, yo - y, xo + x, yo - y, ch); + caca_draw_line(cv, xo - x, yo + y, xo + x, yo + y, ch); y--; } x++; } - cucul_draw_line(cv, xo - x, yo - y, xo + x, yo - y, ch); - cucul_draw_line(cv, xo - x, yo + y, xo + x, yo + y, ch); + caca_draw_line(cv, xo - x, yo - y, xo + x, yo - y, ch); + caca_draw_line(cv, xo - x, yo + y, xo + x, yo + y, ch); d2 = b*b*(x+0.5)*(x+0.5) + a*a*(y-1)*(y-1) - a*a*b*b; while(y > 0) @@ -108,8 +108,8 @@ int cucul_fill_ellipse(cucul_canvas_t *cv, int xo, int yo, int a, int b, } y--; - cucul_draw_line(cv, xo - x, yo - y, xo + x, yo - y, ch); - cucul_draw_line(cv, xo - x, yo + y, xo + x, yo + y, ch); + caca_draw_line(cv, xo - x, yo - y, xo + x, yo - y, ch); + caca_draw_line(cv, xo - x, yo + y, xo + x, yo + y, ch); } return 0; @@ -119,7 +119,7 @@ int cucul_fill_ellipse(cucul_canvas_t *cv, int xo, int yo, int a, int b, * * This function never fails. * - * \param cv The handle to the libcucul canvas. + * \param cv The handle to the libcaca canvas. * \param xo Center X coordinate. * \param yo Center Y coordinate. * \param a Ellipse X radius. @@ -127,7 +127,7 @@ int cucul_fill_ellipse(cucul_canvas_t *cv, int xo, int yo, int a, int b, * \param ch UTF-32 character to be used to draw the ellipse outline. * \return This function always returns 0. */ -int cucul_draw_ellipse(cucul_canvas_t *cv, int xo, int yo, int a, int b, +int caca_draw_ellipse(caca_canvas_t *cv, int xo, int yo, int a, int b, uint32_t ch) { int d2; @@ -176,14 +176,14 @@ int cucul_draw_ellipse(cucul_canvas_t *cv, int xo, int yo, int a, int b, * * This function never fails. * - * \param cv The handle to the libcucul canvas. + * \param cv The handle to the libcaca canvas. * \param xo Center X coordinate. * \param yo Center Y coordinate. * \param a Ellipse X radius. * \param b Ellipse Y radius. * \return This function always returns 0. */ -int cucul_draw_thin_ellipse(cucul_canvas_t *cv, int xo, int yo, int a, int b) +int caca_draw_thin_ellipse(caca_canvas_t *cv, int xo, int yo, int a, int b) { /* FIXME: this is not correct */ int d2; @@ -234,7 +234,7 @@ int cucul_draw_thin_ellipse(cucul_canvas_t *cv, int xo, int yo, int a, int b) return 0; } -static void ellipsepoints(cucul_canvas_t *cv, int xo, int yo, int x, int y, +static void ellipsepoints(caca_canvas_t *cv, int xo, int yo, int x, int y, uint32_t ch, int thin) { uint8_t b = 0; @@ -268,7 +268,7 @@ static void ellipsepoints(cucul_canvas_t *cv, int xo, int yo, int x, int y, } } - cucul_put_char(cv, xo + x, yo + y, c); + caca_put_char(cv, xo + x, yo + y, c); } if((b & (0x2|0x4)) == (0x2|0x4)) { uint32_t c = ch; @@ -290,7 +290,7 @@ static void ellipsepoints(cucul_canvas_t *cv, int xo, int yo, int x, int y, } } - cucul_put_char(cv, xo - x, yo + y, c); + caca_put_char(cv, xo - x, yo + y, c); } @@ -314,7 +314,7 @@ static void ellipsepoints(cucul_canvas_t *cv, int xo, int yo, int x, int y, } } - cucul_put_char(cv, xo + x, yo - y, c); + caca_put_char(cv, xo + x, yo - y, c); } if((b & (0x2|0x8)) == (0x2|0x8)) { @@ -337,7 +337,7 @@ static void ellipsepoints(cucul_canvas_t *cv, int xo, int yo, int x, int y, } } - cucul_put_char(cv, xo - x, yo - y, c); + caca_put_char(cv, xo - x, yo - y, c); } diff --git a/cucul/dither.c b/caca/dither.c similarity index 93% rename from cucul/dither.c rename to caca/dither.c index dec0e12..582c0f3 100644 --- a/cucul/dither.c +++ b/caca/dither.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * Copyright (c) 2002-2006 Sam Hocevar * All Rights Reserved * @@ -28,8 +28,8 @@ # include #endif -#include "cucul.h" -#include "cucul_internals.h" +#include "caca.h" +#include "caca_internals.h" #define CP437 0 @@ -115,14 +115,14 @@ enum color_mode COLOR_MODE_FULL16 }; -struct cucul_dither +struct caca_dither { int bpp, has_palette, has_alpha; int w, h, pitch; int rmask, gmask, bmask, amask; int rright, gright, bright, aright; int rleft, gleft, bleft, aleft; - void (*get_hsv)(cucul_dither_t *, char *, int, int); + void (*get_hsv)(caca_dither_t *, char *, int, int); int red[256], green[256], blue[256], alpha[256]; /* Colour features */ @@ -172,7 +172,7 @@ struct cucul_dither static void mask2shift(uint32_t, int *, int *); static float gammapow(float x, float y); -static void get_rgba_default(cucul_dither_t const *, uint8_t *, int, int, +static void get_rgba_default(caca_dither_t const *, uint8_t *, int, int, unsigned int *); static int init_lookup(void); @@ -242,7 +242,7 @@ static inline void rgb2hsv_default(int r, int g, int b, * Create a dither structure from its coordinates (depth, width, height and * pitch) and pixel mask values. If the depth is 8 bits per pixel, the mask * values are ignored and the colour palette should be set using the - * cucul_set_dither_palette() function. For depths greater than 8 bits per + * caca_set_dither_palette() function. For depths greater than 8 bits per * pixel, a zero alpha mask causes the alpha values to be ignored. * * If an error occurs, NULL is returned and \b errno is set accordingly: @@ -260,11 +260,11 @@ static inline void rgb2hsv_default(int r, int g, int b, * \param amask Bitmask for alpha values. * \return Dither object upon success, NULL if an error occurred. */ -cucul_dither_t *cucul_create_dither(int bpp, int w, int h, int pitch, +caca_dither_t *caca_create_dither(int bpp, int w, int h, int pitch, uint32_t rmask, uint32_t gmask, uint32_t bmask, uint32_t amask) { - cucul_dither_t *d; + caca_dither_t *d; int i; /* Minor sanity test */ @@ -274,7 +274,7 @@ cucul_dither_t *cucul_create_dither(int bpp, int w, int h, int pitch, return NULL; } - d = malloc(sizeof(cucul_dither_t)); + d = malloc(sizeof(caca_dither_t)); if(!d) { seterrno(ENOMEM); @@ -371,7 +371,7 @@ cucul_dither_t *cucul_create_dither(int bpp, int w, int h, int pitch, * \param alpha Array of 256 alpha values. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_set_dither_palette(cucul_dither_t *d, +int caca_set_dither_palette(caca_dither_t *d, uint32_t red[], uint32_t green[], uint32_t blue[], uint32_t alpha[]) { @@ -420,7 +420,7 @@ int cucul_set_dither_palette(cucul_dither_t *d, * \param brightness brightness value. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_set_dither_brightness(cucul_dither_t *d, float brightness) +int caca_set_dither_brightness(caca_dither_t *d, float brightness) { /* FIXME */ d->brightness = brightness; @@ -437,7 +437,7 @@ int cucul_set_dither_brightness(cucul_dither_t *d, float brightness) * \param d Dither object. * \return Brightness value. */ -float cucul_get_dither_brightness(cucul_dither_t const *d) +float caca_get_dither_brightness(caca_dither_t const *d) { return d->brightness; } @@ -454,7 +454,7 @@ float cucul_get_dither_brightness(cucul_dither_t const *d) * \param gamma Gamma value. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_set_dither_gamma(cucul_dither_t *d, float gamma) +int caca_set_dither_gamma(caca_dither_t *d, float gamma) { /* FIXME: we don't need 4096 calls to gammapow(), we could just compute * a few of them and do linear interpolation for the rest. This will @@ -489,7 +489,7 @@ int cucul_set_dither_gamma(cucul_dither_t *d, float gamma) * \param d Dither object. * \return Gamma value. */ -float cucul_get_dither_gamma(cucul_dither_t const *d) +float caca_get_dither_gamma(caca_dither_t const *d) { return d->gamma; } @@ -505,7 +505,7 @@ float cucul_get_dither_gamma(cucul_dither_t const *d) * \param contrast contrast value. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_set_dither_contrast(cucul_dither_t *d, float contrast) +int caca_set_dither_contrast(caca_dither_t *d, float contrast) { /* FIXME */ d->contrast = contrast; @@ -522,7 +522,7 @@ int cucul_set_dither_contrast(cucul_dither_t *d, float contrast) * \param d Dither object. * \return Contrast value. */ -float cucul_get_dither_contrast(cucul_dither_t const *d) +float caca_get_dither_contrast(caca_dither_t const *d) { return d->contrast; } @@ -543,7 +543,7 @@ float cucul_get_dither_contrast(cucul_dither_t const *d) * for the dithering. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_set_dither_antialias(cucul_dither_t *d, char const *str) +int caca_set_dither_antialias(caca_dither_t *d, char const *str) { if(!strcasecmp(str, "none")) { @@ -569,7 +569,7 @@ int cucul_set_dither_antialias(cucul_dither_t *d, char const *str) * Return a list of available antialiasing methods for a given dither. The * list is a NULL-terminated array of strings, interleaving a string * containing the internal value for the antialiasing method to be used with - * cucul_set_dither_antialias(), and a string containing the natural + * caca_set_dither_antialias(), and a string containing the natural * language description for that antialiasing method. * * This function never fails. @@ -578,7 +578,7 @@ int cucul_set_dither_antialias(cucul_dither_t *d, char const *str) * \return An array of strings. */ char const * const * - cucul_get_dither_antialias_list(cucul_dither_t const *d) + caca_get_dither_antialias_list(caca_dither_t const *d) { static char const * const list[] = { @@ -599,7 +599,7 @@ char const * const * * \param d Dither object. * \return A static string. */ -char const * cucul_get_dither_antialias(cucul_dither_t const *d) +char const * caca_get_dither_antialias(caca_dither_t const *d) { return d->antialias_name; } @@ -627,7 +627,7 @@ char const * cucul_get_dither_antialias(cucul_dither_t const *d) * for the dithering. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_set_dither_color(cucul_dither_t *d, char const *str) +int caca_set_dither_color(caca_dither_t *d, char const *str) { if(!strcasecmp(str, "mono")) { @@ -678,7 +678,7 @@ int cucul_set_dither_color(cucul_dither_t *d, char const *str) * Return a list of available colour modes for a given dither. The list * is a NULL-terminated array of strings, interleaving a string containing * the internal value for the colour mode, to be used with - * cucul_set_dither_color(), and a string containing the natural + * caca_set_dither_color(), and a string containing the natural * language description for that colour mode. * * This function never fails. @@ -687,7 +687,7 @@ int cucul_set_dither_color(cucul_dither_t *d, char const *str) * \return An array of strings. */ char const * const * - cucul_get_dither_color_list(cucul_dither_t const *d) + caca_get_dither_color_list(caca_dither_t const *d) { static char const * const list[] = { @@ -713,7 +713,7 @@ char const * const * * \param d Dither object. * \return A static string. */ -char const * cucul_get_dither_color(cucul_dither_t const *d) +char const * caca_get_dither_color(caca_dither_t const *d) { return d->color_name; } @@ -738,7 +738,7 @@ char const * cucul_get_dither_color(cucul_dither_t const *d) * for the dithering. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_set_dither_charset(cucul_dither_t *d, char const *str) +int caca_set_dither_charset(caca_dither_t *d, char const *str) { if(!strcasecmp(str, "shades")) { @@ -772,7 +772,7 @@ int cucul_set_dither_charset(cucul_dither_t *d, char const *str) * Return a list of available character sets for a given dither. The list * is a NULL-terminated array of strings, interleaving a string containing * the internal value for the character set, to be used with - * cucul_set_dither_charset(), and a string containing the natural + * caca_set_dither_charset(), and a string containing the natural * language description for that character set. * * This function never fails. @@ -780,7 +780,7 @@ int cucul_set_dither_charset(cucul_dither_t *d, char const *str) * \param d Dither object. * \return An array of strings. */ -char const * const * cucul_get_dither_charset_list(cucul_dither_t const *d) +char const * const * caca_get_dither_charset_list(caca_dither_t const *d) { static char const * const list[] = { @@ -802,7 +802,7 @@ char const * const * cucul_get_dither_charset_list(cucul_dither_t const *d) * \param d Dither object. * \return A static string. */ -char const * cucul_get_dither_charset(cucul_dither_t const *d) +char const * caca_get_dither_charset(caca_dither_t const *d) { return d->glyph_name; } @@ -827,7 +827,7 @@ char const * cucul_get_dither_charset(cucul_dither_t const *d) * for the dithering. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_set_dither_algorithm(cucul_dither_t *d, char const *str) +int caca_set_dither_algorithm(caca_dither_t *d, char const *str) { if(!strcasecmp(str, "none")) { @@ -885,7 +885,7 @@ int cucul_set_dither_algorithm(cucul_dither_t *d, char const *str) * Return a list of available dithering algorithms for a given dither. The * list is a NULL-terminated array of strings, interleaving a string * containing the internal value for the dithering algorithm, to be used - * with cucul_set_dither_dithering(), and a string containing the natural + * with caca_set_dither_dithering(), and a string containing the natural * language description for that algorithm. * * This function never fails. @@ -893,7 +893,7 @@ int cucul_set_dither_algorithm(cucul_dither_t *d, char const *str) * \param d Dither object. * \return An array of strings. */ -char const * const * cucul_get_dither_algorithm_list(cucul_dither_t const *d) +char const * const * caca_get_dither_algorithm_list(caca_dither_t const *d) { static char const * const list[] = { @@ -918,7 +918,7 @@ char const * const * cucul_get_dither_algorithm_list(cucul_dither_t const *d) * \param d Dither object. * \return A static string. */ -char const * cucul_get_dither_algorithm(cucul_dither_t const *d) +char const * caca_get_dither_algorithm(caca_dither_t const *d) { return d->algo_name; } @@ -930,7 +930,7 @@ char const * cucul_get_dither_algorithm(cucul_dither_t const *d) * * This function never fails. * - * \param cv A handle to the libcucul canvas. + * \param cv A handle to the libcaca canvas. * \param x X coordinate of the upper-left corner of the drawing area. * \param y Y coordinate of the upper-left corner of the drawing area. * \param w Width of the drawing area. @@ -939,8 +939,8 @@ char const * cucul_get_dither_algorithm(cucul_dither_t const *d) * \param pixels Bitmap's pixels. * \return This function always returns 0. */ -int cucul_dither_bitmap(cucul_canvas_t *cv, int x, int y, int w, int h, - cucul_dither_t const *d, void *pixels) +int caca_dither_bitmap(caca_canvas_t *cv, int x, int y, int w, int h, + caca_dither_t const *d, void *pixels) { int *floyd_steinberg, *fs_r, *fs_g, *fs_b; uint32_t savedattr; @@ -950,7 +950,7 @@ int cucul_dither_bitmap(cucul_canvas_t *cv, int x, int y, int w, int h, if(!d || !pixels) return 0; - savedattr = cucul_get_attr(cv, -1, -1); + savedattr = caca_get_attr(cv, -1, -1); x1 = x; x2 = x + w - 1; y1 = y; y2 = y + h - 1; @@ -1127,7 +1127,7 @@ int cucul_dither_bitmap(cucul_canvas_t *cv, int x, int y, int w, int h, if(rgba[1] > lum) lum = rgba[1]; if(rgba[2] > lum) lum = rgba[2]; outfg = outbg; - outbg = CUCUL_BLACK; + outbg = CACA_BLACK; ch = lum * dchmax / 0x1000; if(ch < 0) @@ -1169,8 +1169,8 @@ int cucul_dither_bitmap(cucul_canvas_t *cv, int x, int y, int w, int h, } /* Now output the character */ - cucul_set_color_ansi(cv, outfg, outbg); - cucul_put_char(cv, x, y, outch); + caca_set_color_ansi(cv, outfg, outbg); + caca_put_char(cv, x, y, outch); d->increment_dither(); } @@ -1179,21 +1179,21 @@ int cucul_dither_bitmap(cucul_canvas_t *cv, int x, int y, int w, int h, free(floyd_steinberg); - cucul_set_attr(cv, savedattr); + caca_set_attr(cv, savedattr); return 0; } /** \brief Free the memory associated with a dither. * - * Free the memory allocated by cucul_create_dither(). + * Free the memory allocated by caca_create_dither(). * * This function never fails. * * \param d Dither object. * \return This function always returns 0. */ -int cucul_free_dither(cucul_dither_t *d) +int caca_free_dither(caca_dither_t *d) { if(!d) return 0; @@ -1296,7 +1296,7 @@ static float gammapow(float x, float y) #endif } -static void get_rgba_default(cucul_dither_t const *d, uint8_t *pixels, +static void get_rgba_default(caca_dither_t const *d, uint8_t *pixels, int x, int y, unsigned int *rgba) { uint32_t bits; @@ -1493,7 +1493,7 @@ static void init_random_dither(int line) static int get_random_dither(void) { - return cucul_rand(0x00, 0x100); + return caca_rand(0x00, 0x100); } static void increment_random_dither(void) @@ -1509,16 +1509,16 @@ static int init_lookup(void) int v, s, h; /* These ones are constant */ - lookup_colors[0] = CUCUL_BLACK; - lookup_colors[1] = CUCUL_DARKGRAY; - lookup_colors[2] = CUCUL_LIGHTGRAY; - lookup_colors[3] = CUCUL_WHITE; + lookup_colors[0] = CACA_BLACK; + lookup_colors[1] = CACA_DARKGRAY; + lookup_colors[2] = CACA_LIGHTGRAY; + lookup_colors[3] = CACA_WHITE; /* These ones will be overwritten */ - lookup_colors[4] = CUCUL_MAGENTA; - lookup_colors[5] = CUCUL_LIGHTMAGENTA; - lookup_colors[6] = CUCUL_RED; - lookup_colors[7] = CUCUL_LIGHTRED; + lookup_colors[4] = CACA_MAGENTA; + lookup_colors[5] = CACA_LIGHTMAGENTA; + lookup_colors[6] = CACA_RED; + lookup_colors[7] = CACA_LIGHTRED; for(v = 0; v < LOOKUP_VAL; v++) for(s = 0; s < LOOKUP_SAT; s++) diff --git a/caca/driver_cocoa.m b/caca/driver_cocoa.m index e899872..40dda86 100644 --- a/caca/driver_cocoa.m +++ b/caca/driver_cocoa.m @@ -23,7 +23,7 @@ #import -#include "cucul.h" +#include "caca.h" #include "caca.h" #include "caca_internals.h" @@ -195,14 +195,14 @@ static BOOL s_quitting = NO; - (void)resizeIfNeeded:(caca_display_t *)dp { - if(_w != cucul_get_canvas_width(dp->cv) - || _h != cucul_get_canvas_height(dp->cv) + if(_w != caca_get_canvas_width(dp->cv) + || _h != caca_get_canvas_height(dp->cv) || !_attrs || !_bkg_rects || !_bkg_colors) { debug_log(@"%s resize to %ux%u", _cmd, _w, _h); - _w = cucul_get_canvas_width(dp->cv); - _h = cucul_get_canvas_height(dp->cv); + _w = caca_get_canvas_width(dp->cv); + _h = caca_get_canvas_height(dp->cv); if(_attrs) free(_attrs); @@ -216,8 +216,8 @@ static BOOL s_quitting = NO; free(_bkg_colors); _bkg_colors = malloc(_w * _h * sizeof(NSColor*)); - [[self window] setContentSize: NSMakeSize(cucul_get_canvas_width(dp->cv) * _font_rect.size.width, - cucul_get_canvas_height(dp->cv) * _font_rect.size.height)]; + [[self window] setContentSize: NSMakeSize(caca_get_canvas_width(dp->cv) * _font_rect.size.width, + caca_get_canvas_height(dp->cv) * _font_rect.size.height)]; } } @@ -228,9 +228,9 @@ static BOOL s_quitting = NO; if(_attrs) { _chars = _attrs + _w * _h; - memcpy(_attrs, cucul_get_canvas_attrs(dp->cv), + memcpy(_attrs, caca_get_canvas_attrs(dp->cv), _w * _h * sizeof(uint32_t)); - memcpy(_chars, cucul_get_canvas_chars(dp->cv), + memcpy(_chars, caca_get_canvas_chars(dp->cv), _w * _h * sizeof(uint32_t)); [self setNeedsDisplay:TRUE]; @@ -270,7 +270,7 @@ static BOOL s_quitting = NO; attrs = _attrs + x + y * _w; NSColor* color = nil; #if USE_RGB12_FGBG - uint16_t bg = cucul_attr_to_rgb12_bg(*attrs); + uint16_t bg = caca_attr_to_rgb12_bg(*attrs); if(bg) { # ifdef PRECACHE_WHOLE_COLOR_TABLE @@ -288,7 +288,7 @@ static BOOL s_quitting = NO; } #else uint8_t argb[8]; - cucul_attr_to_argb64(*attrs, argb); + caca_attr_to_argb64(*attrs, argb); color = [NSColor colorWithCalibratedRed:((float)argb[1]) / 15.0 green:((float)argb[2]) / 15.0 blue:((float)argb[3]) / 15.0 @@ -316,7 +316,7 @@ static BOOL s_quitting = NO; if(*chars <= 0x00000020) continue; - if(*chars == CUCUL_MAGIC_FULLWIDTH) + if(*chars == CACA_MAGIC_FULLWIDTH) continue; /* Plain ASCII, no problem. */ @@ -328,7 +328,7 @@ static BOOL s_quitting = NO; { NSColor* color = nil; #if USE_RGB12_FGBG - uint16_t fg = cucul_attr_to_rgb12_fg(*attrs); + uint16_t fg = caca_attr_to_rgb12_fg(*attrs); # ifdef PRECACHE_WHOLE_COLOR_TABLE color = _colorCache[fg]; # else // PRECACHE_WHOLE_COLOR_TABLE @@ -343,7 +343,7 @@ static BOOL s_quitting = NO; # endif // PRECACHE_WHOLE_COLOR_TABLE #else // USE_RGB12_FGBG uint8_t argb[8]; - cucul_attr_to_argb64(*attrs, argb); + caca_attr_to_argb64(*attrs, argb); debug_log(@"x,y=[%d,%d] r,g,b back=[%u %u %u] front=[%u %u %u]", x, y, argb[1], argb[2], argb[3], argb[5], argb[6], argb[7]); color = [NSColor colorWithCalibratedRed:((float)argb[5]) / 15.0 @@ -354,7 +354,7 @@ static BOOL s_quitting = NO; if(color) { - NSMutableDictionary* attrDict = (*attrs & CUCUL_UNDERLINE) ? + NSMutableDictionary* attrDict = (*attrs & CACA_UNDERLINE) ? _attrDictUnderline : _attrDict; [attrDict setObject:color forKey:NSForegroundColorAttributeName]; @@ -572,8 +572,8 @@ static void create_first_window(caca_display_t *dp) NSFont* font = [NSFont fontWithName:@"Monaco" size:10]; NSRect fontRect = [font boundingRectForFont]; fontRect = NSMakeRect(0, 0, ceilf(fontRect.size.width), ceilf(fontRect.size.height)); - NSRect windowRect = NSMakeRect(20, 20, cucul_get_canvas_width(dp->cv) * fontRect.size.width, - cucul_get_canvas_height(dp->cv) * fontRect.size.height); + NSRect windowRect = NSMakeRect(20, 20, caca_get_canvas_width(dp->cv) * fontRect.size.width, + caca_get_canvas_height(dp->cv) * fontRect.size.height); convert_NSRect(&windowRect); CacaView* view = [[CacaView alloc] initWithFrame:windowRect]; @@ -826,8 +826,8 @@ static BOOL handle_mouse_event(caca_display_t *dp, caca_privevent_t *ev, static int cocoa_init_graphics(caca_display_t *dp) { - int width = cucul_get_canvas_width(dp->cv); - int height = cucul_get_canvas_height(dp->cv); + int width = caca_get_canvas_width(dp->cv); + int height = caca_get_canvas_height(dp->cv); debug_log(@"%s dp->cv: %ux%u", __PRETTY_FUNCTION__, width, height); @@ -838,7 +838,7 @@ static int cocoa_init_graphics(caca_display_t *dp) return -1; dp->resize.allow = 1; - cucul_set_canvas_size(dp->cv, width ? width : 80, height ? height : 32); + caca_set_canvas_size(dp->cv, width ? width : 80, height ? height : 32); dp->resize.allow = 0; // first create a full cocoa app if the host has no bundle @@ -858,7 +858,7 @@ static int cocoa_init_graphics(caca_display_t *dp) static int cocoa_end_graphics(caca_display_t *dp) { debug_log(@"%s dp->cv: %ux%u", __PRETTY_FUNCTION__, - cucul_get_canvas_width(dp->cv), cucul_get_canvas_height(dp->cv)); + caca_get_canvas_width(dp->cv), caca_get_canvas_height(dp->cv)); NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; [dp->drv.p->window close]; @@ -958,8 +958,8 @@ static int cocoa_get_event(caca_display_t *dp, caca_privevent_t *ev) static void cocoa_handle_resize(caca_display_t *dp) { debug_log(@"%s", __PRETTY_FUNCTION__); - dp->resize.w = cucul_get_canvas_width(dp->cv); - dp->resize.h = cucul_get_canvas_height(dp->cv); + dp->resize.w = caca_get_canvas_width(dp->cv); + dp->resize.h = caca_get_canvas_height(dp->cv); } static int cocoa_set_display_title(caca_display_t *dp, char const *title) diff --git a/caca/driver_conio.c b/caca/driver_conio.c index 2d42a61..e429273 100644 --- a/caca/driver_conio.c +++ b/caca/driver_conio.c @@ -28,7 +28,6 @@ #include -#include "cucul.h" #include "caca.h" #include "caca_internals.h" @@ -57,7 +56,7 @@ static int conio_init_graphics(caca_display_t *dp) /* FIXME */ # endif dp->resize.allow = 1; - cucul_set_canvas_size(dp->cv, dp->drv.p->ti.screenwidth, + caca_set_canvas_size(dp->cv, dp->drv.p->ti.screenwidth, dp->drv.p->ti.screenheight); dp->resize.allow = 0; @@ -69,7 +68,7 @@ static int conio_end_graphics(caca_display_t *dp) _wscroll = 1; textcolor((enum COLORS)WHITE); textbackground((enum COLORS)BLACK); - gotoxy(cucul_get_canvas_width(dp->cv), cucul_get_canvas_height(dp->cv)); + gotoxy(caca_get_canvas_width(dp->cv), caca_get_canvas_height(dp->cv)); cputs("\r\n"); _setcursortype(_NORMALCURSOR); @@ -87,37 +86,37 @@ static int conio_set_display_title(caca_display_t *dp, char const *title) static int conio_get_display_width(caca_display_t const *dp) { /* Fallback to a 6x10 font */ - return cucul_get_canvas_width(dp->cv) * 6; + return caca_get_canvas_width(dp->cv) * 6; } static int conio_get_display_height(caca_display_t const *dp) { /* Fallback to a 6x10 font */ - return cucul_get_canvas_height(dp->cv) * 10; + return caca_get_canvas_height(dp->cv) * 10; } static void conio_display(caca_display_t *dp) { char *screen = dp->drv.p->screen; - uint32_t const *chars = (uint32_t const *)cucul_get_canvas_chars(dp->cv); - uint32_t const *attrs = (uint32_t const *)cucul_get_canvas_attrs(dp->cv); - int width = cucul_get_canvas_width(dp->cv); - int height = cucul_get_canvas_height(dp->cv); + uint32_t const *chars = (uint32_t const *)caca_get_canvas_chars(dp->cv); + uint32_t const *attrs = (uint32_t const *)caca_get_canvas_attrs(dp->cv); + int width = caca_get_canvas_width(dp->cv); + int height = caca_get_canvas_height(dp->cv); int n; for(n = height * width; n--; ) { - char ch = cucul_utf32_to_cp437(*chars++); - if(n && *chars == CUCUL_MAGIC_FULLWIDTH) + char ch = caca_utf32_to_cp437(*chars++); + if(n && *chars == CACA_MAGIC_FULLWIDTH) { *screen++ = '['; - *screen++ = cucul_attr_to_ansi(*attrs++); + *screen++ = caca_attr_to_ansi(*attrs++); ch = ']'; chars++; n--; } *screen++ = ch; - *screen++ = cucul_attr_to_ansi(*attrs++); + *screen++ = caca_attr_to_ansi(*attrs++); } # if defined(SCREENUPDATE_IN_PC_H) ScreenUpdate(dp->drv.p->screen); @@ -129,8 +128,8 @@ static void conio_display(caca_display_t *dp) static void conio_handle_resize(caca_display_t *dp) { /* We know nothing about our window */ - dp->resize.w = cucul_get_canvas_width(dp->cv); - dp->resize.h = cucul_get_canvas_height(dp->cv); + dp->resize.w = caca_get_canvas_width(dp->cv); + dp->resize.h = caca_get_canvas_height(dp->cv); } static int conio_get_event(caca_display_t *dp, caca_privevent_t *ev) diff --git a/caca/driver_gl.c b/caca/driver_gl.c index 2e10d51..3e15afa 100644 --- a/caca/driver_gl.c +++ b/caca/driver_gl.c @@ -35,7 +35,6 @@ #include #include -#include "cucul.h" #include "caca.h" #include "caca_internals.h" @@ -65,7 +64,7 @@ struct driver_private int window; int width, height; int new_width, new_height; - cucul_font_t *f; + caca_font_t *f; float font_width, font_height; float incx, incy; uint32_t const *blocks; @@ -87,8 +86,8 @@ static int gl_init_graphics(caca_display_t *dp) char const *geometry; char *argv[2] = { "", NULL }; char const * const * fonts; - int width = cucul_get_canvas_width(dp->cv); - int height = cucul_get_canvas_height(dp->cv); + int width = caca_get_canvas_width(dp->cv); + int height = caca_get_canvas_height(dp->cv); int argc = 1; dp->drv.p = malloc(sizeof(struct driver_private)); @@ -102,28 +101,28 @@ static int gl_init_graphics(caca_display_t *dp) #endif dp->resize.allow = 1; - cucul_set_canvas_size(dp->cv, width ? width : 80, height ? height : 32); + caca_set_canvas_size(dp->cv, width ? width : 80, height ? height : 32); dp->resize.allow = 0; - /* Load a libcucul internal font */ - fonts = cucul_get_font_list(); + /* Load a libcaca internal font */ + fonts = caca_get_font_list(); if(fonts[0] == NULL) { - fprintf(stderr, "error: libcucul was compiled without any fonts\n"); + fprintf(stderr, "error: libcaca was compiled without any fonts\n"); return -1; } - dp->drv.p->f = cucul_load_font(fonts[0], 0); + dp->drv.p->f = caca_load_font(fonts[0], 0); if(dp->drv.p->f == NULL) { fprintf(stderr, "error: could not load font \"%s\"\n", fonts[0]); return -1; } - dp->drv.p->font_width = cucul_get_font_width(dp->drv.p->f); - dp->drv.p->font_height = cucul_get_font_height(dp->drv.p->f); + dp->drv.p->font_width = caca_get_font_width(dp->drv.p->f); + dp->drv.p->font_height = caca_get_font_height(dp->drv.p->f); - dp->drv.p->width = cucul_get_canvas_width(dp->cv) * dp->drv.p->font_width; - dp->drv.p->height = cucul_get_canvas_height(dp->cv) * dp->drv.p->font_height; + dp->drv.p->width = caca_get_canvas_width(dp->cv) * dp->drv.p->font_width; + dp->drv.p->height = caca_get_canvas_height(dp->cv) * dp->drv.p->font_height; #ifdef HAVE_GLUTCLOSEFUNC dp->drv.p->close = 0; @@ -192,7 +191,7 @@ static int gl_end_graphics(caca_display_t *dp) { glutHideWindow(); glutDestroyWindow(dp->drv.p->window); - cucul_free_font(dp->drv.p->f); + caca_free_font(dp->drv.p->f); free(dp->drv.p->txid); free(dp->drv.p); return 0; @@ -216,9 +215,9 @@ static int gl_get_display_height(caca_display_t const *dp) static void gl_display(caca_display_t *dp) { - uint32_t const *cvchars = (uint32_t const *)cucul_get_canvas_chars(dp->cv); - uint32_t const *cvattrs = (uint32_t const *)cucul_get_canvas_attrs(dp->cv); - int width = cucul_get_canvas_width(dp->cv); + uint32_t const *cvchars = (uint32_t const *)caca_get_canvas_chars(dp->cv); + uint32_t const *cvattrs = (uint32_t const *)caca_get_canvas_attrs(dp->cv); + int width = caca_get_canvas_width(dp->cv); int x, y, line; glClear(GL_COLOR_BUFFER_BIT); @@ -232,7 +231,7 @@ static void gl_display(caca_display_t *dp) /* FIXME: optimise using stride */ for(x = 0; x < dp->drv.p->width; x += dp->drv.p->font_width) { - uint16_t bg = cucul_attr_to_rgb12_bg(*attrs++); + uint16_t bg = caca_attr_to_rgb12_bg(*attrs++); glColor4b(((bg & 0xf00) >> 8) * 8, ((bg & 0x0f0) >> 4) * 8, @@ -266,7 +265,7 @@ static void gl_display(caca_display_t *dp) uint16_t fg; int i, b, fullwidth; - fullwidth = cucul_utf32_is_fullwidth(ch); + fullwidth = caca_utf32_is_fullwidth(ch); for(b = 0, i = 0; dp->drv.p->blocks[i + 1]; i += 2) { @@ -284,7 +283,7 @@ static void gl_display(caca_display_t *dp) dp->drv.p->txid[b + ch - (uint32_t)dp->drv.p->blocks[i]]); - fg = cucul_attr_to_rgb12_fg(*attrs); + fg = caca_attr_to_rgb12_fg(*attrs); glColor3b(((fg & 0xf00) >> 8) * 8, ((fg & 0x0f0) >> 4) * 8, (fg & 0x00f) * 8); @@ -352,8 +351,8 @@ static int gl_get_event(caca_display_t *dp, caca_privevent_t *ev) if(dp->resize.resized) { ev->type = CACA_EVENT_RESIZE; - ev->data.resize.w = cucul_get_canvas_width(dp->cv); - ev->data.resize.h = cucul_get_canvas_height(dp->cv); + ev->data.resize.w = caca_get_canvas_width(dp->cv); + ev->data.resize.h = caca_get_canvas_height(dp->cv); return 1; } @@ -513,36 +512,36 @@ static void _display(void) static void gl_compute_font(caca_display_t *dp) { - cucul_canvas_t *cv; + caca_canvas_t *cv; uint32_t *image; int i, b, w, h, x, y; /* Count how many glyphs this font has */ - dp->drv.p->blocks = cucul_get_font_blocks(dp->drv.p->f); + dp->drv.p->blocks = caca_get_font_blocks(dp->drv.p->f); for(b = 0, i = 0; dp->drv.p->blocks[i + 1]; i += 2) b += (int)(dp->drv.p->blocks[i + 1] - dp->drv.p->blocks[i]); - /* Allocate a libcucul canvas and print all the glyphs on it */ - cv = cucul_create_canvas(2, b); - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLACK); + /* Allocate a libcaca canvas and print all the glyphs on it */ + cv = caca_create_canvas(2, b); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLACK); for(b = 0, i = 0; dp->drv.p->blocks[i + 1]; i += 2) { int j, n = (int)(dp->drv.p->blocks[i + 1] - dp->drv.p->blocks[i]); for(j = 0; j < n; j++) - cucul_put_char(cv, 0, b + j, dp->drv.p->blocks[i] + j); + caca_put_char(cv, 0, b + j, dp->drv.p->blocks[i] + j); b += n; } - /* Draw the cucul canvas onto an image buffer */ + /* Draw the caca canvas onto an image buffer */ image = malloc(b * dp->drv.p->font_height * 2 * dp->drv.p->font_width * sizeof(uint32_t)); - cucul_render_canvas(cv, dp->drv.p->f, image, 2 * dp->drv.p->font_width, + caca_render_canvas(cv, dp->drv.p->f, image, 2 * dp->drv.p->font_width, b * dp->drv.p->font_height, 8 * dp->drv.p->font_width); - cucul_free_canvas(cv); + caca_free_canvas(cv); /* Convert all glyphs in the image buffer to GL textures */ dp->drv.p->txid = malloc(b * sizeof(int)); @@ -560,7 +559,7 @@ static void gl_compute_font(caca_display_t *dp) uint32_t *glyph = image + (int)((b + j) * dp->drv.p->font_width * 2 * dp->drv.p->font_height); int fullwidth = - cucul_utf32_is_fullwidth(dp->drv.p->blocks[i] + j); + caca_utf32_is_fullwidth(dp->drv.p->blocks[i] + j); memset(tmp, 0, 16 * 8 * 16); diff --git a/caca/driver_ncurses.c b/caca/driver_ncurses.c index 1f8cbfc..274cdd8 100644 --- a/caca/driver_ncurses.c +++ b/caca/driver_ncurses.c @@ -50,7 +50,6 @@ # include #endif -#include "cucul.h" #include "caca.h" #include "caca_internals.h" @@ -302,7 +301,7 @@ static int ncurses_init_graphics(caca_display_t *dp) } dp->resize.allow = 1; - cucul_set_canvas_size(dp->cv, COLS, LINES); + caca_set_canvas_size(dp->cv, COLS, LINES); dp->resize.allow = 0; return 0; @@ -335,21 +334,21 @@ static int ncurses_set_display_title(caca_display_t *dp, char const *title) static int ncurses_get_display_width(caca_display_t const *dp) { /* Fallback to a 6x10 font */ - return cucul_get_canvas_width(dp->cv) * 6; + return caca_get_canvas_width(dp->cv) * 6; } static int ncurses_get_display_height(caca_display_t const *dp) { /* Fallback to a 6x10 font */ - return cucul_get_canvas_height(dp->cv) * 10; + return caca_get_canvas_height(dp->cv) * 10; } static void ncurses_display(caca_display_t *dp) { - uint32_t const *cvchars = (uint32_t const *)cucul_get_canvas_chars(dp->cv); - uint32_t const *cvattrs = (uint32_t const *)cucul_get_canvas_attrs(dp->cv); - int width = cucul_get_canvas_width(dp->cv); - int height = cucul_get_canvas_height(dp->cv); + uint32_t const *cvchars = (uint32_t const *)caca_get_canvas_chars(dp->cv); + uint32_t const *cvattrs = (uint32_t const *)caca_get_canvas_attrs(dp->cv); + int width = caca_get_canvas_width(dp->cv); + int height = caca_get_canvas_height(dp->cv); int x, y; for(y = 0; y < (int)height; y++) @@ -357,13 +356,13 @@ static void ncurses_display(caca_display_t *dp) move(y, 0); for(x = width; x--; ) { - attrset(dp->drv.p->attr[cucul_attr_to_ansi(*cvattrs++)]); + attrset(dp->drv.p->attr[caca_attr_to_ansi(*cvattrs++)]); ncurses_write_utf32(*cvchars++); } } - x = cucul_get_cursor_x(dp->cv); - y = cucul_get_cursor_y(dp->cv); + x = caca_get_cursor_x(dp->cv); + y = caca_get_cursor_y(dp->cv); move(y, x); refresh(); @@ -389,8 +388,8 @@ static void ncurses_handle_resize(caca_display_t *dp) #endif /* Fallback */ - dp->resize.w = cucul_get_canvas_width(dp->cv); - dp->resize.h = cucul_get_canvas_height(dp->cv); + dp->resize.w = caca_get_canvas_width(dp->cv); + dp->resize.h = caca_get_canvas_height(dp->cv); } static int ncurses_get_event(caca_display_t *dp, caca_privevent_t *ev) @@ -432,7 +431,7 @@ static int ncurses_get_event(caca_display_t *dp, caca_privevent_t *ev) } utf8[i] = '\0'; - utf32 = cucul_utf8_to_utf32(utf8, &bytes); + utf32 = caca_utf8_to_utf32(utf8, &bytes); while(i > bytes) ungetch(keys[--i]); @@ -615,11 +614,11 @@ static void ncurses_write_utf32(uint32_t ch) int bytes; #endif - if(ch == CUCUL_MAGIC_FULLWIDTH) + if(ch == CACA_MAGIC_FULLWIDTH) return; #if defined HAVE_NCURSESW_NCURSES_H - bytes = cucul_utf32_to_utf8(buf, ch); + bytes = caca_utf32_to_utf8(buf, ch); buf[bytes] = '\0'; addstr(buf); #else @@ -814,7 +813,7 @@ static void ncurses_write_utf32(uint32_t ch) break; } addch(cch); - if(cucul_utf32_is_fullwidth(ch)) + if(caca_utf32_is_fullwidth(ch)) { addch(cch2); } diff --git a/caca/driver_raw.c b/caca/driver_raw.c index 144a2f8..e308ab7 100644 --- a/caca/driver_raw.c +++ b/caca/driver_raw.c @@ -23,14 +23,13 @@ #include #include -#include "cucul.h" #include "caca.h" #include "caca_internals.h" static int raw_init_graphics(caca_display_t *dp) { - int width = cucul_get_canvas_width(dp->cv); - int height = cucul_get_canvas_height(dp->cv); + int width = caca_get_canvas_width(dp->cv); + int height = caca_get_canvas_height(dp->cv); char const *geometry; #if defined(HAVE_GETENV) @@ -40,7 +39,7 @@ static int raw_init_graphics(caca_display_t *dp) #endif dp->resize.allow = 1; - cucul_set_canvas_size(dp->cv, width ? width : 80, height ? height : 24); + caca_set_canvas_size(dp->cv, width ? width : 80, height ? height : 24); dp->resize.allow = 0; return 0; @@ -71,7 +70,7 @@ static void raw_display(caca_display_t *dp) void *buffer; size_t len; - buffer = cucul_export_memory(dp->cv, "caca", &len); + buffer = caca_export_memory(dp->cv, "caca", &len); if(!buffer) return; fwrite(buffer, len, 1, stdout); diff --git a/caca/driver_slang.c b/caca/driver_slang.c index 3195fdd..875ea7e 100644 --- a/caca/driver_slang.c +++ b/caca/driver_slang.c @@ -33,7 +33,6 @@ # include #endif -#include "cucul.h" #include "caca.h" #include "caca_internals.h" @@ -177,7 +176,7 @@ static int slang_init_graphics(caca_display_t *dp) #endif dp->resize.allow = 1; - cucul_set_canvas_size(dp->cv, SLtt_Screen_Cols, SLtt_Screen_Rows); + caca_set_canvas_size(dp->cv, SLtt_Screen_Cols, SLtt_Screen_Rows); dp->resize.allow = 0; return 0; @@ -210,21 +209,21 @@ static int slang_set_display_title(caca_display_t *dp, char const *title) static int slang_get_display_width(caca_display_t const *dp) { /* Fallback to a 6x10 font */ - return cucul_get_canvas_width(dp->cv) * 6; + return caca_get_canvas_width(dp->cv) * 6; } static int slang_get_display_height(caca_display_t const *dp) { /* Fallback to a 6x10 font */ - return cucul_get_canvas_height(dp->cv) * 10; + return caca_get_canvas_height(dp->cv) * 10; } static void slang_display(caca_display_t *dp) { - uint32_t const *cvchars = (uint32_t const *)cucul_get_canvas_chars(dp->cv); - uint32_t const *cvattrs = (uint32_t const *)cucul_get_canvas_attrs(dp->cv); - int width = cucul_get_canvas_width(dp->cv); - int height = cucul_get_canvas_height(dp->cv); + uint32_t const *cvchars = (uint32_t const *)caca_get_canvas_chars(dp->cv); + uint32_t const *cvattrs = (uint32_t const *)caca_get_canvas_attrs(dp->cv); + int width = caca_get_canvas_width(dp->cv); + int height = caca_get_canvas_height(dp->cv); int x, y; for(y = 0; y < (int)height; y++) @@ -241,24 +240,24 @@ static void slang_display(caca_display_t *dp) * here for, and in cases where SLang does not render * bright backgrounds, it's just fucked up. */ #if 0 - uint8_t fgcolor = cucul_attr_to_ansi_fg(*cvattrs); - uint8_t bgcolor = cucul_attr_to_ansi_bg(*cvattrs); + uint8_t fgcolor = caca_attr_to_ansi_fg(*cvattrs); + uint8_t bgcolor = caca_attr_to_ansi_bg(*cvattrs); if(fgcolor >= 0x10) - fgcolor = CUCUL_LIGHTGRAY; + fgcolor = CACA_LIGHTGRAY; if(bgcolor >= 0x10) - bgcolor = CUCUL_BLACK; /* FIXME: handle transparency */ + bgcolor = CACA_BLACK; /* FIXME: handle transparency */ if(fgcolor == bgcolor) { - if(fgcolor == CUCUL_BLACK) - fgcolor = CUCUL_WHITE; - else if(fgcolor == CUCUL_WHITE - || fgcolor <= CUCUL_LIGHTGRAY) - fgcolor = CUCUL_BLACK; + if(fgcolor == CACA_BLACK) + fgcolor = CACA_WHITE; + else if(fgcolor == CACA_WHITE + || fgcolor <= CACA_LIGHTGRAY) + fgcolor = CACA_BLACK; else - fgcolor = CUCUL_WHITE; + fgcolor = CACA_WHITE; SLsmg_set_color(slang_assoc[fgcolor + 16 * bgcolor]); SLsmg_write_char(' '); cvattrs++; @@ -266,16 +265,16 @@ static void slang_display(caca_display_t *dp) else #endif { - SLsmg_set_color(slang_assoc[cucul_attr_to_ansi(*cvattrs++)]); + SLsmg_set_color(slang_assoc[caca_attr_to_ansi(*cvattrs++)]); slang_write_utf32(ch); } #else - SLsmg_set_color(cucul_attr_to_ansi(*cvattrs++)); + SLsmg_set_color(caca_attr_to_ansi(*cvattrs++)); slang_write_utf32(ch); #endif } } - SLsmg_gotorc(cucul_get_cursor_y(dp->cv), cucul_get_cursor_x(dp->cv)); + SLsmg_gotorc(caca_get_cursor_y(dp->cv), caca_get_cursor_x(dp->cv)); SLsmg_refresh(); } @@ -285,8 +284,8 @@ static void slang_handle_resize(caca_display_t *dp) dp->resize.w = SLtt_Screen_Cols; dp->resize.h = SLtt_Screen_Rows; - if(dp->resize.w != cucul_get_canvas_width(dp->cv) - || dp->resize.h != cucul_get_canvas_height(dp->cv)) + if(dp->resize.w != caca_get_canvas_width(dp->cv) + || dp->resize.h != caca_get_canvas_height(dp->cv)) SLsmg_reinit_smg(); } @@ -342,7 +341,7 @@ static int slang_get_event(caca_display_t *dp, caca_privevent_t *ev) } utf8[i] = '\0'; - utf32 = cucul_utf8_to_utf32(utf8, &bytes); + utf32 = caca_utf8_to_utf32(utf8, &bytes); while(i > bytes) SLang_ungetkey(keys[--i]); @@ -482,17 +481,17 @@ static void slang_write_utf32(uint32_t ch) char ascii; #endif - if(ch == CUCUL_MAGIC_FULLWIDTH) + if(ch == CACA_MAGIC_FULLWIDTH) return; #ifdef HAVE_SLSMG_UTF8_ENABLE - bytes = cucul_utf32_to_utf8(buf, ch); + bytes = caca_utf32_to_utf8(buf, ch); buf[bytes] = '\0'; SLsmg_write_string(buf); #else - ascii = cucul_utf32_to_ascii(ch); + ascii = caca_utf32_to_ascii(ch); SLsmg_write_char(ascii); - if(cucul_utf32_is_fullwidth(ch)) + if(caca_utf32_is_fullwidth(ch)) SLsmg_write_char(ascii); #endif } diff --git a/caca/driver_vga.c b/caca/driver_vga.c index a8ed5e6..51efb04 100644 --- a/caca/driver_vga.c +++ b/caca/driver_vga.c @@ -20,7 +20,6 @@ #if defined(USE_VGA) -#include "cucul.h" #include "caca.h" #include "caca_internals.h" @@ -75,7 +74,7 @@ static int vga_init_graphics(caca_display_t *dp) /* We don't have much choice */ dp->resize.allow = 1; - cucul_set_canvas_size(dp->cv, 80, 25); + caca_set_canvas_size(dp->cv, 80, 25); dp->resize.allow = 0; return 0; @@ -116,33 +115,33 @@ static int vga_get_display_height(caca_display_t const *dp) static void vga_display(caca_display_t *dp) { char *screen = (char *)(intptr_t)0x000b8000; - uint32_t const *cvchars = (uint32_t const *)cucul_get_canvas_chars(dp->cv); - uint32_t const *cvattrs = (uint32_t const *)cucul_get_canvas_attrs(dp->cv); - int width = cucul_get_canvas_width(dp->cv); - int height = cucul_get_canvas_height(dp->cv); + uint32_t const *cvchars = (uint32_t const *)caca_get_canvas_chars(dp->cv); + uint32_t const *cvattrs = (uint32_t const *)caca_get_canvas_attrs(dp->cv); + int width = caca_get_canvas_width(dp->cv); + int height = caca_get_canvas_height(dp->cv); int n; for(n = height * width; n--; ) { - char ch = cucul_utf32_to_cp437(*cvchars++); - if(n && *cvchars == CUCUL_MAGIC_FULLWIDTH) + char ch = caca_utf32_to_cp437(*cvchars++); + if(n && *cvchars == CACA_MAGIC_FULLWIDTH) { *screen++ = '['; - *screen++ = cucul_attr_to_ansi(*cvattrs++); + *screen++ = caca_attr_to_ansi(*cvattrs++); ch = ']'; cvchars++; n--; } *screen++ = ch; - *screen++ = cucul_attr_to_ansi(*cvattrs++); + *screen++ = caca_attr_to_ansi(*cvattrs++); } } static void vga_handle_resize(caca_display_t *dp) { /* We know nothing about our window */ - dp->resize.w = cucul_get_canvas_width(dp->cv); - dp->resize.h = cucul_get_canvas_height(dp->cv); + dp->resize.w = caca_get_canvas_width(dp->cv); + dp->resize.h = caca_get_canvas_height(dp->cv); } static int vga_get_event(caca_display_t *dp, caca_privevent_t *ev) diff --git a/caca/driver_win32.c b/caca/driver_win32.c index 33db626..78b7935 100644 --- a/caca/driver_win32.c +++ b/caca/driver_win32.c @@ -25,7 +25,6 @@ #include #include -#include "cucul.h" #include "caca.h" #include "caca_internals.h" @@ -82,8 +81,8 @@ struct driver_private static int win32_init_graphics(caca_display_t *dp) { - int width = cucul_get_canvas_width(dp->cv); - int height = cucul_get_canvas_height(dp->cv); + int width = caca_get_canvas_width(dp->cv); + int height = caca_get_canvas_height(dp->cv); CONSOLE_SCREEN_BUFFER_INFO csbi; SMALL_RECT rect; COORD size; @@ -122,16 +121,16 @@ static int win32_init_graphics(caca_display_t *dp) rect.Bottom = size.Y - 1; SetConsoleWindowInfo(dp->drv.p->screen, TRUE, &rect); - /* Report our new size to libcucul */ + /* Report our new size to libcaca */ if(!GetConsoleScreenBufferInfo(dp->drv.p->screen, &csbi)) return -1; dp->resize.allow = 1; - cucul_set_canvas_size(dp->cv, + caca_set_canvas_size(dp->cv, csbi.srWindow.Right - csbi.srWindow.Left + 1, csbi.srWindow.Bottom - csbi.srWindow.Top + 1); - width = cucul_get_canvas_width(dp->cv); - height = cucul_get_canvas_height(dp->cv); + width = caca_get_canvas_width(dp->cv); + height = caca_get_canvas_height(dp->cv); dp->resize.allow = 0; SetConsoleMode(dp->drv.p->screen, 0); @@ -180,7 +179,7 @@ static int win32_get_display_width(caca_display_t const *dp) /* FIXME */ /* Fallback to a 6x10 font */ - return cucul_get_canvas_width(dp->cv) * 6; + return caca_get_canvas_width(dp->cv) * 6; } static int win32_get_display_height(caca_display_t const *dp) @@ -188,7 +187,7 @@ static int win32_get_display_height(caca_display_t const *dp) /* FIXME */ /* Fallback to a 6x10 font */ - return cucul_get_canvas_height(dp->cv) * 10; + return caca_get_canvas_height(dp->cv) * 10; } static void win32_display(caca_display_t *dp) @@ -196,18 +195,18 @@ static void win32_display(caca_display_t *dp) COORD size, pos; SMALL_RECT rect; CHAR_INFO *buffer = dp->drv.p->buffer; - uint32_t const *cvchars = (uint32_t const *)cucul_get_canvas_chars(dp->cv); - uint32_t const *cvattrs = (uint32_t const *)cucul_get_canvas_attrs(dp->cv); - int width = cucul_get_canvas_width(dp->cv); - int height = cucul_get_canvas_height(dp->cv); + uint32_t const *cvchars = (uint32_t const *)caca_get_canvas_chars(dp->cv); + uint32_t const *cvattrs = (uint32_t const *)caca_get_canvas_attrs(dp->cv); + int width = caca_get_canvas_width(dp->cv); + int height = caca_get_canvas_height(dp->cv); int n; /* Render everything to our screen buffer */ for(n = height * width; n--; ) { uint32_t ch = *cvchars++; - uint8_t fg = cucul_attr_to_ansi_fg(*cvattrs); - uint8_t bg = cucul_attr_to_ansi_bg(*cvattrs); + uint8_t fg = caca_attr_to_ansi_fg(*cvattrs); + uint8_t bg = caca_attr_to_ansi_bg(*cvattrs); #if 0 if(ch > 0x00000020 && ch < 0x00000080) @@ -215,7 +214,7 @@ static void win32_display(caca_display_t *dp) else dp->drv.p->buffer[i].Char.AsciiChar = ' '; #else - if(n && *cvchars == CUCUL_MAGIC_FULLWIDTH) + if(n && *cvchars == CACA_MAGIC_FULLWIDTH) ; else if(ch > 0x00000020 && ch < 0x00010000) buffer->Char.UnicodeChar = (uint16_t)ch; @@ -223,8 +222,8 @@ static void win32_display(caca_display_t *dp) buffer->Char.UnicodeChar = (uint16_t)' '; #endif - buffer->Attributes = win32_fg_palette[fg < 0x10 ? fg : CUCUL_LIGHTGRAY] - | win32_bg_palette[bg < 0x10 ? bg : CUCUL_BLACK]; + buffer->Attributes = win32_fg_palette[fg < 0x10 ? fg : CACA_LIGHTGRAY] + | win32_bg_palette[bg < 0x10 ? bg : CACA_BLACK]; cvattrs++; buffer++; } @@ -246,8 +245,8 @@ static void win32_display(caca_display_t *dp) static void win32_handle_resize(caca_display_t *dp) { /* FIXME: I don't know what to do here. */ - dp->resize.w = cucul_get_canvas_width(dp->cv); - dp->resize.h = cucul_get_canvas_height(dp->cv); + dp->resize.w = caca_get_canvas_width(dp->cv); + dp->resize.h = caca_get_canvas_height(dp->cv); } static int win32_get_event(caca_display_t *dp, caca_privevent_t *ev) diff --git a/caca/driver_x11.c b/caca/driver_x11.c index 27d157d..df6c112 100644 --- a/caca/driver_x11.c +++ b/caca/driver_x11.c @@ -32,7 +32,7 @@ #include #include -#include "cucul.h" +#include "caca.h" #include "caca.h" #include "caca_internals.h" @@ -75,8 +75,8 @@ static int x11_init_graphics(caca_display_t *dp) int (*old_error_handler)(Display *, XErrorEvent *); char const *fonts[] = { NULL, "8x13bold", "fixed" }, **parser; char const *geometry; - int width = cucul_get_canvas_width(dp->cv); - int height = cucul_get_canvas_height(dp->cv); + int width = caca_get_canvas_width(dp->cv); + int height = caca_get_canvas_height(dp->cv); int i; dp->drv.p = malloc(sizeof(struct driver_private)); @@ -88,9 +88,9 @@ static int x11_init_graphics(caca_display_t *dp) #endif dp->resize.allow = 1; - cucul_set_canvas_size(dp->cv, width ? width : 80, height ? height : 32); - width = cucul_get_canvas_width(dp->cv); - height = cucul_get_canvas_height(dp->cv); + caca_set_canvas_size(dp->cv, width ? width : 80, height ? height : 32); + width = caca_get_canvas_width(dp->cv); + height = caca_get_canvas_height(dp->cv); dp->resize.allow = 0; dp->drv.p->dpy = XOpenDisplay(NULL); @@ -279,20 +279,20 @@ static int x11_set_display_title(caca_display_t *dp, char const *title) static int x11_get_display_width(caca_display_t const *dp) { - return cucul_get_canvas_width(dp->cv) * dp->drv.p->font_width; + return caca_get_canvas_width(dp->cv) * dp->drv.p->font_width; } static int x11_get_display_height(caca_display_t const *dp) { - return cucul_get_canvas_height(dp->cv) * dp->drv.p->font_height; + return caca_get_canvas_height(dp->cv) * dp->drv.p->font_height; } static void x11_display(caca_display_t *dp) { - uint32_t const *cvchars = (uint32_t const *)cucul_get_canvas_chars(dp->cv); - uint32_t const *cvattrs = (uint32_t const *)cucul_get_canvas_attrs(dp->cv); - int width = cucul_get_canvas_width(dp->cv); - int height = cucul_get_canvas_height(dp->cv); + uint32_t const *cvchars = (uint32_t const *)caca_get_canvas_chars(dp->cv); + uint32_t const *cvattrs = (uint32_t const *)caca_get_canvas_attrs(dp->cv); + int width = caca_get_canvas_width(dp->cv); + int height = caca_get_canvas_height(dp->cv); int x, y, len; /* First draw the background colours. Splitting the process in two @@ -302,11 +302,11 @@ static void x11_display(caca_display_t *dp) for(x = 0; x < width; x += len) { uint32_t const *attrs = cvattrs + x + y * width; - uint16_t bg = cucul_attr_to_rgb12_bg(*attrs); + uint16_t bg = caca_attr_to_rgb12_bg(*attrs); len = 1; while(x + len < width - && cucul_attr_to_rgb12_bg(attrs[len]) == bg) + && caca_attr_to_rgb12_bg(attrs[len]) == bg) len++; XSetForeground(dp->drv.p->dpy, dp->drv.p->gc, @@ -330,7 +330,7 @@ static void x11_display(caca_display_t *dp) for(x = 0; x < width; x++, chars++, attrs++) { XSetForeground(dp->drv.p->dpy, dp->drv.p->gc, - dp->drv.p->colors[cucul_attr_to_rgb12_fg(*attrs)]); + dp->drv.p->colors[caca_attr_to_rgb12_fg(*attrs)]); x11_put_glyph(dp, x * dp->drv.p->font_width, y * dp->drv.p->font_height, yoff, @@ -344,8 +344,8 @@ static void x11_display(caca_display_t *dp) { XSetForeground(dp->drv.p->dpy, dp->drv.p->gc, dp->drv.p->colors[0xfff]); - x = cucul_get_cursor_x(dp->cv); - y = cucul_get_cursor_y(dp->cv); + x = caca_get_cursor_x(dp->cv); + y = caca_get_cursor_y(dp->cv); XFillRectangle(dp->drv.p->dpy, dp->drv.p->pixmap, dp->drv.p->gc, x * dp->drv.p->font_width, y * dp->drv.p->font_height, dp->drv.p->font_width, dp->drv.p->font_height); @@ -378,8 +378,8 @@ static void x11_handle_resize(caca_display_t *dp) static int x11_get_event(caca_display_t *dp, caca_privevent_t *ev) { - int width = cucul_get_canvas_width(dp->cv); - int height = cucul_get_canvas_height(dp->cv); + int width = caca_get_canvas_width(dp->cv); + int height = caca_get_canvas_height(dp->cv); XEvent xevent; char key; @@ -610,23 +610,23 @@ static void x11_put_glyph(caca_display_t *dp, int x, int y, int yoff, XChar2b ch16; /* Underline */ - if(attr & CUCUL_UNDERLINE) + if(attr & CACA_UNDERLINE) XFillRectangle(dpy, px, gc, x, y + h - 1, w, 1); /* Skip spaces and magic stuff */ if(ch <= 0x00000020) return; - if(ch == CUCUL_MAGIC_FULLWIDTH) + if(ch == CACA_MAGIC_FULLWIDTH) return; fw = w; - if(cucul_utf32_is_fullwidth(ch)) + if(caca_utf32_is_fullwidth(ch)) fw *= 2; /* We want to be able to print a few special Unicode characters * such as the CP437 gradients and half blocks. For unknown - * characters, print what cucul_utf32_to_ascii() returns. */ + * characters, print what caca_utf32_to_ascii() returns. */ if(ch >= 0x2500 && ch <= 0x256c && udlr[ch - 0x2500]) { @@ -771,7 +771,7 @@ static void x11_put_glyph(caca_display_t *dp, int x, int y, int yoff, else { ch16.byte1 = 0; - ch16.byte2 = cucul_utf32_to_ascii(ch); + ch16.byte2 = caca_utf32_to_ascii(ch); } XDrawString16(dpy, px, gc, x + (ch16.byte1 ? 0 : (fw - w) / 2), yoff, &ch16, 1); diff --git a/caca/event.c b/caca/event.c index 00b6d8a..127a2d3 100644 --- a/caca/event.c +++ b/caca/event.c @@ -23,7 +23,6 @@ # include #endif -#include "cucul.h" #include "caca.h" #include "caca_internals.h" @@ -129,7 +128,7 @@ int caca_get_event(caca_display_t *dp, int event_mask, */ int caca_get_mouse_x(caca_display_t const *dp) { - int width = cucul_get_canvas_width(dp->cv); + int width = caca_get_canvas_width(dp->cv); if(dp->mouse.x >= width) return width - 1; @@ -151,7 +150,7 @@ int caca_get_mouse_x(caca_display_t const *dp) */ int caca_get_mouse_y(caca_display_t const *dp) { - int height = cucul_get_canvas_height(dp->cv); + int height = caca_get_canvas_height(dp->cv); if(dp->mouse.y >= height) return height - 1; @@ -335,8 +334,8 @@ static int _get_next_event(caca_display_t *dp, caca_privevent_t *ev) dp->resize.resized = 0; _caca_handle_resize(dp); ev->type = CACA_EVENT_RESIZE; - ev->data.resize.w = cucul_get_canvas_width(dp->cv); - ev->data.resize.h = cucul_get_canvas_height(dp->cv); + ev->data.resize.w = caca_get_canvas_width(dp->cv); + ev->data.resize.h = caca_get_canvas_height(dp->cv); return 1; } diff --git a/cucul/export.c b/caca/export.c similarity index 84% rename from cucul/export.c rename to caca/export.c index ff671a5..d341642 100644 --- a/cucul/export.c +++ b/caca/export.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * Copyright (c) 2002-2006 Sam Hocevar * 2006 Jean-Yves Lamoureux * All Rights Reserved @@ -25,8 +25,8 @@ # include #endif -#include "cucul.h" -#include "cucul_internals.h" +#include "caca.h" +#include "caca_internals.h" static inline int sprintu32(char *s, uint32_t x) { @@ -44,20 +44,20 @@ static inline int sprintu16(char *s, uint16_t x) return 2; } -static void *export_caca(cucul_canvas_t const *, size_t *); -static void *export_ansi(cucul_canvas_t const *, size_t *); -static void *export_utf8(cucul_canvas_t const *, size_t *, int); -static void *export_html(cucul_canvas_t const *, size_t *); -static void *export_html3(cucul_canvas_t const *, size_t *); -static void *export_bbfr(cucul_canvas_t const *, size_t *); -static void *export_irc(cucul_canvas_t const *, size_t *); -static void *export_ps(cucul_canvas_t const *, size_t *); -static void *export_svg(cucul_canvas_t const *, size_t *); -static void *export_tga(cucul_canvas_t const *, size_t *); +static void *export_caca(caca_canvas_t const *, size_t *); +static void *export_ansi(caca_canvas_t const *, size_t *); +static void *export_utf8(caca_canvas_t const *, size_t *, int); +static void *export_html(caca_canvas_t const *, size_t *); +static void *export_html3(caca_canvas_t const *, size_t *); +static void *export_bbfr(caca_canvas_t const *, size_t *); +static void *export_irc(caca_canvas_t const *, size_t *); +static void *export_ps(caca_canvas_t const *, size_t *); +static void *export_svg(caca_canvas_t const *, size_t *); +static void *export_tga(caca_canvas_t const *, size_t *); /** \brief Export a canvas into a foreign format. * - * This function exports a libcucul canvas into various foreign formats such + * This function exports a libcaca canvas into various foreign formats such * as ANSI art, HTML, IRC colours, etc. The returned pointer should be passed * to free() to release the allocated storage when it is no longer needed. * @@ -76,13 +76,13 @@ static void *export_tga(cucul_canvas_t const *, size_t *); * - \c EINVAL Unsupported format requested. * - \c ENOMEM Not enough memory to allocate output buffer. * - * \param cv A libcucul canvas + * \param cv A libcaca canvas * \param format A string describing the requested output format. * \param bytes A pointer to a size_t where the number of allocated bytes * will be written. * \return A pointer to the exported memory area, or NULL in case of error. */ -void *cucul_export_memory(cucul_canvas_t const *cv, char const *format, +void *caca_export_memory(caca_canvas_t const *cv, char const *format, size_t *bytes) { if(!strcasecmp("caca", format)) @@ -126,14 +126,14 @@ void *cucul_export_memory(cucul_canvas_t const *cv, char const *format, * * Return a list of available export formats. The list is a NULL-terminated * array of strings, interleaving a string containing the internal value for - * the export format, to be used with cucul_export_memory(), and a string + * the export format, to be used with caca_export_memory(), and a string * containing the natural language description for that export format. * * This function never fails. * * \return An array of strings. */ -char const * const * cucul_get_export_list(void) +char const * const * caca_get_export_list(void) { static char const * const list[] = { @@ -159,7 +159,7 @@ char const * const * cucul_get_export_list(void) */ /* Generate a native libcaca canvas file. */ -static void *export_caca(cucul_canvas_t const *cv, size_t *bytes) +static void *export_caca(caca_canvas_t const *cv, size_t *bytes) { char *data, *cur; int f, n; @@ -212,7 +212,7 @@ static void *export_caca(cucul_canvas_t const *cv, size_t *bytes) } /* Generate UTF-8 representation of current canvas. */ -static void *export_utf8(cucul_canvas_t const *cv, size_t *bytes, +static void *export_utf8(caca_canvas_t const *cv, size_t *bytes, int cr) { static uint8_t const palette[] = @@ -244,11 +244,11 @@ static void *export_utf8(cucul_canvas_t const *cv, size_t *bytes, uint32_t ch = linechar[x]; uint8_t ansifg, ansibg, fg, bg; - if(ch == CUCUL_MAGIC_FULLWIDTH) + if(ch == CACA_MAGIC_FULLWIDTH) continue; - ansifg = cucul_attr_to_ansi_fg(attr); - ansibg = cucul_attr_to_ansi_bg(attr); + ansifg = caca_attr_to_ansi_fg(attr); + ansibg = caca_attr_to_ansi_bg(attr); fg = ansifg < 0x10 ? palette[ansifg] : 0x10; bg = ansibg < 0x10 ? palette[ansibg] : 0x10; @@ -271,7 +271,7 @@ static void *export_utf8(cucul_canvas_t const *cv, size_t *bytes, cur += sprintf(cur, "m"); } - cur += cucul_utf32_to_utf8(cur, ch); + cur += caca_utf32_to_utf8(cur, ch); prevfg = fg; prevbg = bg; @@ -293,7 +293,7 @@ static void *export_utf8(cucul_canvas_t const *cv, size_t *bytes, } /* Generate ANSI representation of current canvas. */ -static void *export_ansi(cucul_canvas_t const *cv, size_t *bytes) +static void *export_ansi(caca_canvas_t const *cv, size_t *bytes) { static uint8_t const palette[] = { @@ -320,13 +320,13 @@ static void *export_ansi(cucul_canvas_t const *cv, size_t *bytes) for(x = 0; x < cv->width; x++) { - uint8_t ansifg = cucul_attr_to_ansi_fg(lineattr[x]); - uint8_t ansibg = cucul_attr_to_ansi_bg(lineattr[x]); - uint8_t fg = ansifg < 0x10 ? palette[ansifg] : CUCUL_LIGHTGRAY; - uint8_t bg = ansibg < 0x10 ? palette[ansibg] : CUCUL_BLACK; + uint8_t ansifg = caca_attr_to_ansi_fg(lineattr[x]); + uint8_t ansibg = caca_attr_to_ansi_bg(lineattr[x]); + uint8_t fg = ansifg < 0x10 ? palette[ansifg] : CACA_LIGHTGRAY; + uint8_t bg = ansibg < 0x10 ? palette[ansibg] : CACA_BLACK; uint32_t ch = linechar[x]; - if(ch == CUCUL_MAGIC_FULLWIDTH) + if(ch == CACA_MAGIC_FULLWIDTH) ch = '?'; if(fg != prevfg || bg != prevbg) @@ -345,7 +345,7 @@ static void *export_ansi(cucul_canvas_t const *cv, size_t *bytes) cur += sprintf(cur, "5;1;3%d;4%dm", fg - 8, bg - 8); } - *cur++ = cucul_utf32_to_cp437(ch); + *cur++ = caca_utf32_to_cp437(ch); prevfg = fg; prevbg = bg; @@ -373,7 +373,7 @@ static void *export_ansi(cucul_canvas_t const *cv, size_t *bytes) } /* Generate HTML representation of current canvas. */ -static void *export_html(cucul_canvas_t const *cv, size_t *bytes) +static void *export_html(caca_canvas_t const *cv, size_t *bytes) { char *data, *cur; int x, y, len; @@ -390,7 +390,7 @@ static void *export_html(cucul_canvas_t const *cv, size_t *bytes) /* HTML header */ cur += sprintf(cur, "\n"); cur += sprintf(cur, "Generated by libcaca %s\n", - cucul_get_version()); + caca_get_version()); cur += sprintf(cur, "\n"); cur += sprintf(cur, "
\n", @@ -404,19 +404,19 @@ static void *export_html(cucul_canvas_t const *cv, size_t *bytes) for(x = 0; x < cv->width; x += len) { cur += sprintf(cur, ""); @@ -424,7 +424,7 @@ static void *export_html(cucul_canvas_t const *cv, size_t *bytes) x + len < cv->width && lineattr[x + len] == lineattr[x]; len++) { - if(linechar[x + len] == CUCUL_MAGIC_FULLWIDTH) + if(linechar[x + len] == CACA_MAGIC_FULLWIDTH) ; else if(linechar[x + len] <= 0x00000020) cur += sprintf(cur, " "); @@ -455,7 +455,7 @@ static void *export_html(cucul_canvas_t const *cv, size_t *bytes) * but permits viewing in old browsers (or limited ones such as links). It * will not work under gecko (mozilla rendering engine) unless you set a * correct header. */ -static void *export_html3(cucul_canvas_t const *cv, size_t *bytes) +static void *export_html3(caca_canvas_t const *cv, size_t *bytes) { char *data, *cur; int x, y, len; @@ -492,33 +492,33 @@ static void *export_html3(cucul_canvas_t const *cv, size_t *bytes) cur += sprintf(cur, " 1) cur += sprintf(cur, " colspan=%d", len); cur += sprintf(cur, ">"); - needfont = cucul_attr_to_ansi_bg(lineattr[x]) < 0x10; + needfont = caca_attr_to_ansi_bg(lineattr[x]) < 0x10; if(needfont) cur += sprintf(cur, "", (unsigned long int) - _cucul_attr_to_rgb24fg(lineattr[x])); + _caca_attr_to_rgb24fg(lineattr[x])); - if(lineattr[x] & CUCUL_BOLD) + if(lineattr[x] & CACA_BOLD) cur += sprintf(cur, ""); - if(lineattr[x] & CUCUL_ITALICS) + if(lineattr[x] & CACA_ITALICS) cur += sprintf(cur, ""); - if(lineattr[x] & CUCUL_UNDERLINE) + if(lineattr[x] & CACA_UNDERLINE) cur += sprintf(cur, ""); - if(lineattr[x] & CUCUL_BLINK) + if(lineattr[x] & CACA_BLINK) cur += sprintf(cur, ""); for(i = 0; i < len; i++) { - if(linechar[x + i] == CUCUL_MAGIC_FULLWIDTH) + if(linechar[x + i] == CACA_MAGIC_FULLWIDTH) ; else if(linechar[x + i] <= 0x00000020) cur += sprintf(cur, " "); @@ -528,13 +528,13 @@ static void *export_html3(cucul_canvas_t const *cv, size_t *bytes) cur += sprintf(cur, "&#%i;", (unsigned int)linechar[x + i]); } - if(lineattr[x] & CUCUL_BLINK) + if(lineattr[x] & CACA_BLINK) cur += sprintf(cur, ""); - if(lineattr[x] & CUCUL_UNDERLINE) + if(lineattr[x] & CACA_UNDERLINE) cur += sprintf(cur, ""); - if(lineattr[x] & CUCUL_ITALICS) + if(lineattr[x] & CACA_ITALICS) cur += sprintf(cur, ""); - if(lineattr[x] & CUCUL_BOLD) + if(lineattr[x] & CACA_BOLD) cur += sprintf(cur, ""); if(needfont) @@ -556,7 +556,7 @@ static void *export_html3(cucul_canvas_t const *cv, size_t *bytes) return data; } -static void *export_bbfr(cucul_canvas_t const *cv, size_t *bytes) +static void *export_bbfr(caca_canvas_t const *cv, size_t *bytes) { char *data, *cur; int x, y, len; @@ -594,46 +594,46 @@ static void *export_bbfr(cucul_canvas_t const *cv, size_t *bytes) && linechar[x] != ' ') len++; - needback = cucul_attr_to_ansi_bg(lineattr[x]) < 0x10; - needfront = cucul_attr_to_ansi_fg(lineattr[x]) < 0x10; + needback = caca_attr_to_ansi_bg(lineattr[x]) < 0x10; + needfront = caca_attr_to_ansi_fg(lineattr[x]) < 0x10; if(needback) cur += sprintf(cur, "[f=#%.06lx]", (unsigned long int) - _cucul_attr_to_rgb24bg(lineattr[x])); + _caca_attr_to_rgb24bg(lineattr[x])); if(linechar[x] == ' ') cur += sprintf(cur, "[c=#%.06lx]", (unsigned long int) - _cucul_attr_to_rgb24bg(lineattr[x])); + _caca_attr_to_rgb24bg(lineattr[x])); else if(needfront) cur += sprintf(cur, "[c=#%.06lx]", (unsigned long int) - _cucul_attr_to_rgb24fg(lineattr[x])); + _caca_attr_to_rgb24fg(lineattr[x])); - if(lineattr[x] & CUCUL_BOLD) + if(lineattr[x] & CACA_BOLD) cur += sprintf(cur, "[g]"); - if(lineattr[x] & CUCUL_ITALICS) + if(lineattr[x] & CACA_ITALICS) cur += sprintf(cur, "[i]"); - if(lineattr[x] & CUCUL_UNDERLINE) + if(lineattr[x] & CACA_UNDERLINE) cur += sprintf(cur, "[s]"); - if(lineattr[x] & CUCUL_BLINK) + if(lineattr[x] & CACA_BLINK) ; /* FIXME */ for(i = 0; i < len; i++) { - if(linechar[x + i] == CUCUL_MAGIC_FULLWIDTH) + if(linechar[x + i] == CACA_MAGIC_FULLWIDTH) ; else if(linechar[x + i] == ' ') *cur++ = '_'; else - cur += cucul_utf32_to_utf8(cur, linechar[x + i]); + cur += caca_utf32_to_utf8(cur, linechar[x + i]); } - if(lineattr[x] & CUCUL_BLINK) + if(lineattr[x] & CACA_BLINK) ; /* FIXME */ - if(lineattr[x] & CUCUL_UNDERLINE) + if(lineattr[x] & CACA_UNDERLINE) cur += sprintf(cur, "[/s]"); - if(lineattr[x] & CUCUL_ITALICS) + if(lineattr[x] & CACA_ITALICS) cur += sprintf(cur, "[/i]"); - if(lineattr[x] & CUCUL_BOLD) + if(lineattr[x] & CACA_BOLD) cur += sprintf(cur, "[/g]"); if(linechar[x] == ' ' || needfront) @@ -657,7 +657,7 @@ static void *export_bbfr(cucul_canvas_t const *cv, size_t *bytes) } /* Export a text file with IRC colours */ -static void *export_irc(cucul_canvas_t const *cv, size_t *bytes) +static void *export_irc(caca_canvas_t const *cv, size_t *bytes) { static uint8_t const palette[] = { @@ -695,11 +695,11 @@ static void *export_irc(cucul_canvas_t const *cv, size_t *bytes) uint32_t ch = linechar[x]; uint8_t ansifg, ansibg, fg, bg; - if(ch == CUCUL_MAGIC_FULLWIDTH) + if(ch == CACA_MAGIC_FULLWIDTH) continue; - ansifg = cucul_attr_to_ansi_fg(attr); - ansibg = cucul_attr_to_ansi_bg(attr); + ansifg = caca_attr_to_ansi_fg(attr); + ansibg = caca_attr_to_ansi_bg(attr); fg = ansifg < 0x10 ? palette[ansifg] : 0x10; bg = ansibg < 0x10 ? palette[ansibg] : 0x10; @@ -741,7 +741,7 @@ static void *export_irc(cucul_canvas_t const *cv, size_t *bytes) cur += sprintf(cur, "\x02\x02"); } - cur += cucul_utf32_to_utf8(cur, ch); + cur += caca_utf32_to_utf8(cur, ch); prevfg = fg; prevbg = bg; } @@ -764,7 +764,7 @@ static void *export_irc(cucul_canvas_t const *cv, size_t *bytes) } /* Export a PostScript document. */ -static void *export_ps(cucul_canvas_t const *cv, size_t *bytes) +static void *export_ps(caca_canvas_t const *cv, size_t *bytes) { static char const *ps_header = "%!\n" @@ -810,7 +810,7 @@ static void *export_ps(cucul_canvas_t const *cv, size_t *bytes) for(x = 0; x < cv->width; x++) { uint8_t argb[8]; - cucul_attr_to_argb64(*lineattr++, argb); + caca_attr_to_argb64(*lineattr++, argb); cur += sprintf(cur, "1 0 translate\n %f %f %f csquare\n", (float)argb[1] * (1.0 / 0xf), (float)argb[2] * (1.0 / 0xf), @@ -834,7 +834,7 @@ static void *export_ps(cucul_canvas_t const *cv, size_t *bytes) uint8_t argb[8]; uint32_t ch = *linechar++; - cucul_attr_to_argb64(*lineattr++, argb); + caca_attr_to_argb64(*lineattr++, argb); cur += sprintf(cur, "newpath\n"); cur += sprintf(cur, "%d %d moveto\n", (x + 1) * 6, y * 10 + 2); @@ -873,7 +873,7 @@ static void *export_ps(cucul_canvas_t const *cv, size_t *bytes) } /* Export an SVG vector image */ -static void *export_svg(cucul_canvas_t const *cv, size_t *bytes) +static void *export_svg(caca_canvas_t const *cv, size_t *bytes) { static char const svg_header[] = "\n" @@ -905,7 +905,7 @@ static void *export_svg(cucul_canvas_t const *cv, size_t *bytes) { cur += sprintf(cur, "\n", - cucul_attr_to_rgb12_bg(*lineattr++), + caca_attr_to_rgb12_bg(*lineattr++), x * 6, y * 10); } } @@ -920,7 +920,7 @@ static void *export_svg(cucul_canvas_t const *cv, size_t *bytes) { uint32_t ch = *linechar++; - if(ch == ' ' || ch == CUCUL_MAGIC_FULLWIDTH) + if(ch == ' ' || ch == CACA_MAGIC_FULLWIDTH) { lineattr++; continue; @@ -928,13 +928,13 @@ static void *export_svg(cucul_canvas_t const *cv, size_t *bytes) cur += sprintf(cur, "", - cucul_attr_to_rgb12_fg(*lineattr++), + caca_attr_to_rgb12_fg(*lineattr++), x * 6, (y * 10) + 8); if(ch < 0x00000020) *cur++ = '?'; else if(ch > 0x0000007f) - cur += cucul_utf32_to_utf8(cur, ch); + cur += caca_utf32_to_utf8(cur, ch); else switch((uint8_t)ch) { case '>': cur += sprintf(cur, ">"); break; @@ -959,24 +959,24 @@ static void *export_svg(cucul_canvas_t const *cv, size_t *bytes) } /* Export a TGA image */ -static void *export_tga(cucul_canvas_t const *cv, size_t *bytes) +static void *export_tga(caca_canvas_t const *cv, size_t *bytes) { char const * const *fontlist; char *data, *cur; - cucul_font_t *f; + caca_font_t *f; int i, w, h; - fontlist = cucul_get_font_list(); + fontlist = caca_get_font_list(); if(!fontlist[0]) { seterrno(EINVAL); return NULL; } - f = cucul_load_font(fontlist[0], 0); + f = caca_load_font(fontlist[0], 0); - w = cucul_get_canvas_width(cv) * cucul_get_font_width(f); - h = cucul_get_canvas_height(cv) * cucul_get_font_height(f); + w = caca_get_canvas_width(cv) * caca_get_font_width(f); + h = caca_get_canvas_height(cv) * caca_get_font_height(f); *bytes = w * h * 4 + 18; /* 32 bpp + 18 bytes for the header */ cur = data = malloc(*bytes); @@ -1002,7 +1002,7 @@ static void *export_tga(cucul_canvas_t const *cv, size_t *bytes) /* Color Map Data: no colormap */ /* Image Data */ - cucul_render_canvas(cv, f, cur, w, h, 4 * w); + caca_render_canvas(cv, f, cur, w, h, 4 * w); /* Swap bytes. What a waste of time. */ for(i = 0; i < w * h * 4; i += 4) @@ -1012,7 +1012,7 @@ static void *export_tga(cucul_canvas_t const *cv, size_t *bytes) c = cur[i + 1]; cur[i + 1] = cur[i + 2]; cur[i + 2] = c; } - cucul_free_font(f); + caca_free_font(f); return data; } diff --git a/cucul/figfont.c b/caca/figfont.c similarity index 77% rename from cucul/figfont.c rename to caca/figfont.c index 6c4dac3..cbcc616 100644 --- a/cucul/figfont.c +++ b/caca/figfont.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * Copyright (c) 2006-2007 Sam Hocevar * All Rights Reserved * @@ -28,10 +28,10 @@ # include #endif -#include "cucul.h" -#include "cucul_internals.h" +#include "caca.h" +#include "caca_internals.h" -struct cucul_figfont +struct caca_figfont { int term_width; int x, y, w, h, lines; @@ -43,18 +43,18 @@ struct cucul_figfont int old_layout; int print_direction, full_layout, codetag_count; int glyphs; - cucul_canvas_t *fontcv, *charcv; + caca_canvas_t *fontcv, *charcv; int *left, *right; /* Unused yet */ uint32_t *lookup; }; static uint32_t hsmush(uint32_t ch1, uint32_t ch2, int rule); -static cucul_figfont_t * open_figfont(char const *); -static int free_figfont(cucul_figfont_t *); +static caca_figfont_t * open_figfont(char const *); +static int free_figfont(caca_figfont_t *); -int cucul_canvas_set_figfont(cucul_canvas_t *cv, char const *path) +int caca_canvas_set_figfont(caca_canvas_t *cv, char const *path) { - cucul_figfont_t *ff = NULL; + caca_figfont_t *ff = NULL; if(path) { @@ -65,7 +65,7 @@ int cucul_canvas_set_figfont(cucul_canvas_t *cv, char const *path) if(cv->ff) { - cucul_free_canvas(cv->ff->charcv); + caca_free_canvas(cv->ff->charcv); free(cv->ff->left); free(cv->ff->right); free_figfont(cv->ff); @@ -84,7 +84,7 @@ int cucul_canvas_set_figfont(cucul_canvas_t *cv, char const *path) ff->x = ff->y = 0; ff->w = ff->h = 0; ff->lines = 0; - cucul_set_canvas_size(cv, 0, 0); /* XXX */ + caca_set_canvas_size(cv, 0, 0); /* XXX */ /* from TOIlet’s figlet.c */ if(ff->full_layout & 0x3f) @@ -117,7 +117,7 @@ int cucul_canvas_set_figfont(cucul_canvas_t *cv, char const *path) break; } - ff->charcv = cucul_create_canvas(ff->max_length - 2, ff->height); + ff->charcv = caca_create_canvas(ff->max_length - 2, ff->height); ff->left = malloc(ff->height * sizeof(int)); ff->right = malloc(ff->height * sizeof(int)); @@ -127,9 +127,9 @@ int cucul_canvas_set_figfont(cucul_canvas_t *cv, char const *path) return 0; } -int cucul_put_figchar(cucul_canvas_t *cv, uint32_t ch) +int caca_put_figchar(caca_canvas_t *cv, uint32_t ch) { - cucul_figfont_t *ff = cv->ff; + caca_figfont_t *ff = cv->ff; int c, w, h, x, y, overlap, extra, xleft, xright; switch(ch) @@ -154,8 +154,8 @@ int cucul_put_figchar(cucul_canvas_t *cv, uint32_t ch) w = ff->lookup[c * 2 + 1]; h = ff->height; - cucul_set_canvas_handle(ff->fontcv, 0, c * ff->height); - cucul_blit(ff->charcv, 0, 0, ff->fontcv, NULL); + caca_set_canvas_handle(ff->fontcv, 0, c * ff->height); + caca_blit(ff->charcv, 0, 0, ff->fontcv, NULL); /* Check whether we reached the end of the screen */ if(ff->x && ff->x + w > ff->term_width) @@ -176,12 +176,12 @@ int cucul_put_figchar(cucul_canvas_t *cv, uint32_t ch) { /* Compute how much spaces we can eat from the new glyph */ for(xright = 0; xright < overlap; xright++) - if(cucul_get_char(ff->charcv, xright, y) != ' ') + if(caca_get_char(ff->charcv, xright, y) != ' ') break; /* Compute how much spaces we can eat from the previous glyph */ for(xleft = 0; xright + xleft < overlap && xleft < ff->x; xleft++) - if(cucul_get_char(cv, ff->x - 1 - xleft, ff->y + y) != ' ') + if(caca_get_char(cv, ff->x - 1 - xleft, ff->y + y) != ' ') break; /* Handle overlapping */ @@ -192,8 +192,8 @@ int cucul_put_figchar(cucul_canvas_t *cv, uint32_t ch) if(ff->hmode == H_SMUSH) { if(xleft < ff->x && - hsmush(cucul_get_char(cv, ff->x - 1 - xleft, ff->y + y), - cucul_get_char(ff->charcv, xright, y), + hsmush(caca_get_char(cv, ff->x - 1 - xleft, ff->y + y), + caca_get_char(ff->charcv, xright, y), ff->hsmushrule)) xleft++; } @@ -219,29 +219,29 @@ int cucul_put_figchar(cucul_canvas_t *cv, uint32_t ch) #if 0 /* deactivated for libcaca insertion */ if(attr) - cucul_set_attr(cv, attr); + caca_set_attr(cv, attr); #endif - cucul_set_canvas_size(cv, ff->w, ff->h); + caca_set_canvas_size(cv, ff->w, ff->h); - /* Render our char (FIXME: create a rect-aware cucul_blit_canvas?) */ + /* Render our char (FIXME: create a rect-aware caca_blit_canvas?) */ for(y = 0; y < h; y++) for(x = 0; x < w; x++) { uint32_t ch1, ch2; - //uint32_t tmpat = cucul_get_attr(ff->fontcv, x, y + c * ff->height); - ch2 = cucul_get_char(ff->charcv, x, y); + //uint32_t tmpat = caca_get_attr(ff->fontcv, x, y + c * ff->height); + ch2 = caca_get_char(ff->charcv, x, y); if(ch2 == ' ') continue; - ch1 = cucul_get_char(cv, ff->x + x - overlap, ff->y + y); - /* FIXME: this could be changed to cucul_put_attr() when the - * function is fixed in libcucul */ - //cucul_set_attr(cv, tmpat); + ch1 = caca_get_char(cv, ff->x + x - overlap, ff->y + y); + /* FIXME: this could be changed to caca_put_attr() when the + * function is fixed in libcaca */ + //caca_set_attr(cv, tmpat); if(ch1 == ' ' || ff->hmode != H_SMUSH) - cucul_put_char(cv, ff->x + x - overlap, ff->y + y, ch2); + caca_put_char(cv, ff->x + x - overlap, ff->y + y, ch2); else - cucul_put_char(cv, ff->x + x - overlap, ff->y + y, + caca_put_char(cv, ff->x + x - overlap, ff->y + y, hsmush(ch1, ch2, ff->hsmushrule)); - //cucul_put_attr(cv, ff->x + x, ff->y + y, tmpat); + //caca_put_attr(cv, ff->x + x, ff->y + y, tmpat); } /* Advance cursor */ @@ -250,32 +250,32 @@ int cucul_put_figchar(cucul_canvas_t *cv, uint32_t ch) return 0; } -int cucul_flush_figlet(cucul_canvas_t *cv) +int caca_flush_figlet(caca_canvas_t *cv) { - cucul_figfont_t *ff = cv->ff; + caca_figfont_t *ff = cv->ff; int x, y; //ff->torender = cv; - //cucul_set_canvas_size(ff->torender, ff->w, ff->h); - cucul_set_canvas_size(cv, ff->w, ff->h); + //caca_set_canvas_size(ff->torender, ff->w, ff->h); + caca_set_canvas_size(cv, ff->w, ff->h); /* FIXME: do this somewhere else, or record hardblank positions */ for(y = 0; y < ff->h; y++) for(x = 0; x < ff->w; x++) - if(cucul_get_char(cv, x, y) == 0xa0) + if(caca_get_char(cv, x, y) == 0xa0) { - uint32_t attr = cucul_get_attr(cv, x, y); - cucul_put_char(cv, x, y, ' '); - cucul_put_attr(cv, x, y, attr); + uint32_t attr = caca_get_attr(cv, x, y); + caca_put_char(cv, x, y, ' '); + caca_put_attr(cv, x, y, attr); } ff->x = ff->y = 0; ff->w = ff->h = 0; - //cv = cucul_create_canvas(1, 1); /* XXX */ + //cv = caca_create_canvas(1, 1); /* XXX */ /* from render.c */ - ff->lines += cucul_get_canvas_height(cv); + ff->lines += caca_get_canvas_height(cv); return 0; } @@ -283,17 +283,17 @@ int cucul_flush_figlet(cucul_canvas_t *cv) #define STD_GLYPHS (127 - 32) #define EXT_GLYPHS (STD_GLYPHS + 7) -static cucul_figfont_t * open_figfont(char const *path) +static caca_figfont_t * open_figfont(char const *path) { char altpath[2048]; char buf[2048]; char hardblank[10]; - cucul_figfont_t *ff; + caca_figfont_t *ff; char *data = NULL; - cucul_file_t *f; + caca_file_t *f; int i, j, size, comment_lines; - ff = malloc(sizeof(cucul_figfont_t)); + ff = malloc(sizeof(caca_figfont_t)); if(!ff) { seterrno(ENOMEM); @@ -301,7 +301,7 @@ static cucul_figfont_t * open_figfont(char const *path) } /* Open font: if not found, try .tlf, then .flf */ - f = cucul_file_open(path, "r"); + f = caca_file_open(path, "r"); #if !defined __KERNEL__ && defined HAVE_SNPRINTF #if (! defined(snprintf)) && ( defined(_WIN32) || defined(WIN32) ) && (! defined(__CYGWIN__)) @@ -312,13 +312,13 @@ static cucul_figfont_t * open_figfont(char const *path) { snprintf(altpath, 2047, "%s.tlf", path); altpath[2047] = '\0'; - f = cucul_file_open(altpath, "r"); + f = caca_file_open(altpath, "r"); } if(!f) { snprintf(altpath, 2047, "%s.flf", path); altpath[2047] = '\0'; - f = cucul_file_open(altpath, "r"); + f = caca_file_open(altpath, "r"); } #endif if(!f) @@ -332,14 +332,14 @@ static cucul_figfont_t * open_figfont(char const *path) ff->print_direction = 0; ff->full_layout = 0; ff->codetag_count = 0; - cucul_file_gets(f, buf, 2048); + caca_file_gets(f, buf, 2048); if(sscanf(buf, "%*[ft]lf2a%6s %u %u %u %i %u %u %u %u\n", hardblank, &ff->height, &ff->baseline, &ff->max_length, &ff->old_layout, &comment_lines, &ff->print_direction, &ff->full_layout, &ff->codetag_count) < 6) { debug("figfont error: `%s' has invalid header: %s", path, buf); - cucul_file_close(f); + caca_file_close(f); free(ff); seterrno(EINVAL); return NULL; @@ -351,24 +351,24 @@ static cucul_figfont_t * open_figfont(char const *path) { debug("figfont error: `%s' has invalid layout %i/%u", path, ff->old_layout, ff->full_layout); - cucul_file_close(f); + caca_file_close(f); free(ff); seterrno(EINVAL); return NULL; } - ff->hardblank = cucul_utf8_to_utf32(hardblank, NULL); + ff->hardblank = caca_utf8_to_utf32(hardblank, NULL); /* Skip comment lines */ for(i = 0; i < comment_lines; i++) - cucul_file_gets(f, buf, 2048); + caca_file_gets(f, buf, 2048); /* Read mandatory characters (32-127, 196, 214, 220, 228, 246, 252, 223) * then read additional characters. */ ff->glyphs = 0; ff->lookup = NULL; - for(i = 0, size = 0; !cucul_file_eof(f); ff->glyphs++) + for(i = 0, size = 0; !caca_file_eof(f); ff->glyphs++) { if((ff->glyphs % 2048) == 0) ff->lookup = realloc(ff->lookup, @@ -385,7 +385,7 @@ static cucul_figfont_t * open_figfont(char const *path) } else { - if(cucul_file_gets(f, buf, 2048) == NULL) + if(caca_file_gets(f, buf, 2048) == NULL) break; /* Ignore blank lines, as in jacky.flf */ @@ -396,7 +396,7 @@ static cucul_figfont_t * open_figfont(char const *path) if(buf[0] == '-') { for(j = 0; j < ff->height; j++) - cucul_file_gets(f, buf, 2048); + caca_file_gets(f, buf, 2048); continue; } @@ -423,12 +423,12 @@ static cucul_figfont_t * open_figfont(char const *path) if(i + 2048 >= size) data = realloc(data, size += 2048); - cucul_file_gets(f, data + i, 2048); + caca_file_gets(f, data + i, 2048); i = (uintptr_t)strchr(data + i, 0) - (uintptr_t)data; } } - cucul_file_close(f); + caca_file_close(f); if(ff->glyphs < EXT_GLYPHS) { @@ -442,8 +442,8 @@ static cucul_figfont_t * open_figfont(char const *path) } /* Import buffer into canvas */ - ff->fontcv = cucul_create_canvas(0, 0); - cucul_import_memory(ff->fontcv, data, i, "utf8"); + ff->fontcv = caca_create_canvas(0, 0); + caca_import_memory(ff->fontcv, data, i, "utf8"); free(data); /* Remove EOL characters. For now we ignore hardblanks, don’t do any @@ -454,11 +454,11 @@ static cucul_figfont_t * open_figfont(char const *path) for(i = ff->max_length; i--;) { - ch = cucul_get_char(ff->fontcv, i, j); + ch = caca_get_char(ff->fontcv, i, j); /* Replace hardblanks with U+00A0 NO-BREAK SPACE */ if(ch == ff->hardblank) - cucul_put_char(ff->fontcv, i, j, ch = 0xa0); + caca_put_char(ff->fontcv, i, j, ch = 0xa0); if(oldch && ch != oldch) { @@ -466,11 +466,11 @@ static cucul_figfont_t * open_figfont(char const *path) ff->lookup[j / ff->height * 2 + 1] = i + 1; } else if(oldch && ch == oldch) - cucul_put_char(ff->fontcv, i, j, ' '); + caca_put_char(ff->fontcv, i, j, ' '); else if(ch != ' ') { oldch = ch; - cucul_put_char(ff->fontcv, i, j, ' '); + caca_put_char(ff->fontcv, i, j, ' '); } } } @@ -478,9 +478,9 @@ static cucul_figfont_t * open_figfont(char const *path) return ff; } -int free_figfont(cucul_figfont_t *ff) +int free_figfont(caca_figfont_t *ff) { - cucul_free_canvas(ff->fontcv); + caca_free_canvas(ff->fontcv); free(ff->lookup); free(ff); diff --git a/cucul/file.c b/caca/file.c similarity index 88% rename from cucul/file.c rename to caca/file.c index 60e3950..b0ba3c1 100644 --- a/cucul/file.c +++ b/caca/file.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * Copyright (c) 2006-2007 Sam Hocevar * All Rights Reserved * @@ -29,15 +29,15 @@ # endif #endif -#include "cucul.h" -#include "cucul_internals.h" +#include "caca.h" +#include "caca_internals.h" #if !defined __KERNEL__ && defined HAVE_ZLIB_H -static int zipread(cucul_file_t *, void *, unsigned int); +static int zipread(caca_file_t *, void *, unsigned int); #endif #if !defined __KERNEL__ -struct cucul_file +struct caca_file { # if defined HAVE_ZLIB_H uint8_t read_buffer[READSIZE]; @@ -50,13 +50,13 @@ struct cucul_file }; #endif -cucul_file_t *cucul_file_open(char const *path, const char *mode) +caca_file_t *caca_file_open(char const *path, const char *mode) { #if defined __KERNEL__ seterrno(ENOSYS); return NULL; #else - cucul_file_t *fp = malloc(sizeof(*fp)); + caca_file_t *fp = malloc(sizeof(*fp)); fp->readonly = !!strchr(mode, 'r'); @@ -125,7 +125,7 @@ cucul_file_t *cucul_file_open(char const *path, const char *mode) #endif } -int cucul_file_close(cucul_file_t *fp) +int caca_file_close(caca_file_t *fp) { #if defined __KERNEL__ seterrno(ENOSYS); @@ -143,7 +143,7 @@ int cucul_file_close(cucul_file_t *fp) #endif } -uint64_t cucul_file_tell(cucul_file_t *fp) +uint64_t caca_file_tell(caca_file_t *fp) { #if defined __KERNEL__ seterrno(ENOSYS); @@ -157,7 +157,7 @@ uint64_t cucul_file_tell(cucul_file_t *fp) #endif } -size_t cucul_file_read(cucul_file_t *fp, void *ptr, size_t size) +size_t caca_file_read(caca_file_t *fp, void *ptr, size_t size) { #if defined __KERNEL__ seterrno(ENOSYS); @@ -171,7 +171,7 @@ size_t cucul_file_read(cucul_file_t *fp, void *ptr, size_t size) #endif } -size_t cucul_file_write(cucul_file_t *fp, const void *ptr, size_t size) +size_t caca_file_write(caca_file_t *fp, const void *ptr, size_t size) { #if defined __KERNEL__ seterrno(ENOSYS); @@ -194,7 +194,7 @@ size_t cucul_file_write(cucul_file_t *fp, const void *ptr, size_t size) #endif } -char *cucul_file_gets(cucul_file_t *fp, char *s, int size) +char *caca_file_gets(caca_file_t *fp, char *s, int size) { #if defined __KERNEL__ seterrno(ENOSYS); @@ -228,7 +228,7 @@ char *cucul_file_gets(cucul_file_t *fp, char *s, int size) #endif } -int cucul_file_eof(cucul_file_t *fp) +int caca_file_eof(caca_file_t *fp) { #if defined __KERNEL__ return 1; @@ -240,7 +240,7 @@ int cucul_file_eof(cucul_file_t *fp) } #if !defined __KERNEL__ && defined HAVE_ZLIB_H -static int zipread(cucul_file_t *fp, void *buf, unsigned int len) +static int zipread(caca_file_t *fp, void *buf, unsigned int len) { unsigned int total_read = 0; diff --git a/cucul/font.c b/caca/font.c similarity index 90% rename from cucul/font.c rename to caca/font.c index a0321f0..bdc4796 100644 --- a/cucul/font.c +++ b/caca/font.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * Copyright (c) 2002-2006 Sam Hocevar * All Rights Reserved * @@ -27,8 +27,8 @@ # include #endif -#include "cucul.h" -#include "cucul_internals.h" +#include "caca.h" +#include "caca_internals.h" /* Internal fonts */ #include "mono9.data" @@ -55,7 +55,7 @@ struct glyph_info uint32_t data_offset; }; -struct cucul_font +struct caca_font { struct font_header header; @@ -91,7 +91,7 @@ DECLARE_UNPACKGLYPH(1) /** \brief Load a font from memory for future use. * * This function loads a font and returns a handle to its internal - * structure. The handle can then be used with cucul_render_canvas() + * structure. The handle can then be used with caca_render_canvas() * for bitmap output. * * Internal fonts can also be loaded: if \c size is set to 0, \c data must @@ -99,7 +99,7 @@ DECLARE_UNPACKGLYPH(1) * * If \c size is non-zero, the \c size bytes of memory at address \c data * are loaded as a font. This memory are must not be freed by the calling - * program until the font handle has been freed with cucul_free_font(). + * program until the font handle has been freed with caca_free_font(). * * If an error occurs, NULL is returned and \b errno is set accordingly: * - \c ENOENT Requested built-in font does not exist. @@ -110,17 +110,17 @@ DECLARE_UNPACKGLYPH(1) * \param size The size of the memory area, or 0 if the font name is given. * \return A font handle or NULL in case of error. */ -cucul_font_t *cucul_load_font(void const *data, size_t size) +caca_font_t *caca_load_font(void const *data, size_t size) { - cucul_font_t *f; + caca_font_t *f; int i; if(size == 0) { if(!strcasecmp(data, "Monospace 9")) - return cucul_load_font((char *)&mono9_data, mono9_size); + return caca_load_font((char *)&mono9_data, mono9_size); if(!strcasecmp(data, "Monospace Bold 12")) - return cucul_load_font((char *)&monobold12_data, monobold12_size); + return caca_load_font((char *)&monobold12_data, monobold12_size); seterrno(ENOENT); return NULL; @@ -134,7 +134,7 @@ cucul_font_t *cucul_load_font(void const *data, size_t size) return NULL; } - f = malloc(sizeof(cucul_font_t)); + f = malloc(sizeof(caca_font_t)); if(!f) { seterrno(ENOMEM); @@ -301,7 +301,7 @@ cucul_font_t *cucul_load_font(void const *data, size_t size) * * \return An array of strings. */ -char const * const * cucul_get_font_list(void) +char const * const * caca_get_font_list(void) { static char const * const list[] = { @@ -320,10 +320,10 @@ char const * const * cucul_get_font_list(void) * * This function never fails. * - * \param f The font, as returned by cucul_load_font() + * \param f The font, as returned by caca_load_font() * \return The standard glyph width. */ -int cucul_get_font_width(cucul_font_t const *f) +int caca_get_font_width(caca_font_t const *f) { return f->header.width; } @@ -335,10 +335,10 @@ int cucul_get_font_width(cucul_font_t const *f) * * This function never fails. * - * \param f The font, as returned by cucul_load_font() + * \param f The font, as returned by caca_load_font() * \return The standard glyph height. */ -int cucul_get_font_height(cucul_font_t const *f) +int caca_get_font_height(caca_font_t const *f) { return f->header.height; } @@ -360,27 +360,27 @@ int cucul_get_font_height(cucul_font_t const *f) * * This function never fails. * - * \param f The font, as returned by cucul_load_font() + * \param f The font, as returned by caca_load_font() * \return The list of Unicode blocks supported by the font. */ -uint32_t const *cucul_get_font_blocks(cucul_font_t const *f) +uint32_t const *caca_get_font_blocks(caca_font_t const *f) { return (uint32_t const *)f->user_block_list; } /** \brief Free a font structure. * - * This function frees all data allocated by cucul_load_font(). The - * font structure is no longer usable by other libcucul functions. Once + * This function frees all data allocated by caca_load_font(). The + * font structure is no longer usable by other libcaca functions. Once * this function has returned, the memory area that was given to - * cucul_load_font() can be freed. + * caca_load_font() can be freed. * * This function never fails. * - * \param f The font, as returned by cucul_load_font() + * \param f The font, as returned by caca_load_font() * \return This function always returns 0. */ -int cucul_free_font(cucul_font_t *f) +int caca_free_font(caca_font_t *f) { free(f->glyph_list); free(f->user_block_list); @@ -396,9 +396,9 @@ int cucul_free_font(cucul_font_t *f) * font. The pixel format is fixed (32-bit ARGB, 8 bits for each component). * * The required image width can be computed using - * cucul_get_canvas_width() and cucul_get_font_width(). The required - * height can be computed using cucul_get_canvas_height() and - * cucul_get_font_height(). + * caca_get_canvas_width() and caca_get_font_width(). The required + * height can be computed using caca_get_canvas_height() and + * caca_get_font_height(). * * Glyphs that do not fit in the image buffer are currently not rendered at * all. They may be cropped instead in future versions. @@ -407,14 +407,14 @@ int cucul_free_font(cucul_font_t *f) * - \c EINVAL Specified width, height or pitch is invalid. * * \param cv The canvas to render - * \param f The font, as returned by cucul_load_font() + * \param f The font, as returned by caca_load_font() * \param buf The image buffer * \param width The width (in pixels) of the image buffer * \param height The height (in pixels) of the image buffer * \param pitch The pitch (in bytes) of an image buffer line. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_render_canvas(cucul_canvas_t const *cv, cucul_font_t const *f, +int caca_render_canvas(caca_canvas_t const *cv, caca_font_t const *f, void *buf, int width, int height, int pitch) { uint8_t *glyph = NULL; @@ -471,7 +471,7 @@ int cucul_render_canvas(cucul_canvas_t const *cv, cucul_font_t const *f, g = &f->glyph_list[f->block_list[b].index + ch - f->block_list[b].start]; - cucul_attr_to_argb64(attr, argb); + caca_attr_to_argb64(attr, argb); /* Step 1: unpack glyph */ switch(f->header.bpp) diff --git a/cucul/frame.c b/caca/frame.c similarity index 85% rename from cucul/frame.c rename to caca/frame.c index 49fcba1..db3965b 100644 --- a/cucul/frame.c +++ b/caca/frame.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * Copyright (c) 2002-2006 Sam Hocevar * All Rights Reserved * @@ -24,8 +24,8 @@ # include #endif -#include "cucul.h" -#include "cucul_internals.h" +#include "caca.h" +#include "caca_internals.h" /** \brief Get the number of frames in a canvas. * @@ -33,10 +33,10 @@ * * This function never fails. * - * \param cv A libcucul canvas + * \param cv A libcaca canvas * \return The frame count */ -int cucul_get_frame_count(cucul_canvas_t const *cv) +int caca_get_frame_count(caca_canvas_t const *cv) { return cv->framecount; } @@ -45,18 +45,18 @@ int cucul_get_frame_count(cucul_canvas_t const *cv) * * Set the active canvas frame. All subsequent drawing operations will * be performed on that frame. The current painting context set by - * cucul_set_attr() is inherited. + * caca_set_attr() is inherited. * * If the frame index is outside the canvas' frame range, nothing happens. * * If an error occurs, -1 is returned and \b errno is set accordingly: * - \c EINVAL Requested frame is out of range. * - * \param cv A libcucul canvas + * \param cv A libcaca canvas * \param id The canvas frame to activate * \return 0 in case of success, -1 if an error occurred. */ -int cucul_set_frame(cucul_canvas_t *cv, int id) +int caca_set_frame(caca_canvas_t *cv, int id) { if(id < 0 || id >= cv->framecount) { @@ -64,9 +64,9 @@ int cucul_set_frame(cucul_canvas_t *cv, int id) return -1; } - _cucul_save_frame_info(cv); + _caca_save_frame_info(cv); cv->frame = id; - _cucul_load_frame_info(cv); + _caca_load_frame_info(cv); return 0; } @@ -74,15 +74,15 @@ int cucul_set_frame(cucul_canvas_t *cv, int id) /** \brief Get the current frame's name. * * Return the current frame's name. The returned string is valid until - * the frame is deleted or cucul_set_frame_name() is called to change + * the frame is deleted or caca_set_frame_name() is called to change * the frame name again. * * This function never fails. * - * \param cv A libcucul canvas. + * \param cv A libcaca canvas. * \return The current frame's name. */ -char const *cucul_get_frame_name(cucul_canvas_t const *cv) +char const *caca_get_frame_name(caca_canvas_t const *cv) { return cv->frames[cv->frame].name; } @@ -96,11 +96,11 @@ char const *cucul_get_frame_name(cucul_canvas_t const *cv) * If an error occurs, -1 is returned and \b errno is set accordingly: * - \c ENOMEM Not enough memory to allocate new frame. * - * \param cv A libcucul canvas. + * \param cv A libcaca canvas. * \param name The name to give to the current frame. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_set_frame_name(cucul_canvas_t *cv, char const *name) +int caca_set_frame_name(caca_canvas_t *cv, char const *name) { char *newname = strdup(name); @@ -133,11 +133,11 @@ int cucul_set_frame_name(cucul_canvas_t *cv, char const *name) * If an error occurs, -1 is returned and \b errno is set accordingly: * - \c ENOMEM Not enough memory to allocate new frame. * - * \param cv A libcucul canvas + * \param cv A libcaca canvas * \param id The index where to insert the new frame * \return 0 in case of success, -1 if an error occurred. */ -int cucul_create_frame(cucul_canvas_t *cv, int id) +int caca_create_frame(caca_canvas_t *cv, int id) { int size = cv->width * cv->height; int f; @@ -149,7 +149,7 @@ int cucul_create_frame(cucul_canvas_t *cv, int id) cv->framecount++; cv->frames = realloc(cv->frames, - sizeof(struct cucul_frame) * cv->framecount); + sizeof(struct caca_frame) * cv->framecount); for(f = cv->framecount - 1; f > id; f--) cv->frames[f] = cv->frames[f - 1]; @@ -193,11 +193,11 @@ int cucul_create_frame(cucul_canvas_t *cv, int id) * - \c EINVAL Requested frame is out of range, or attempt to delete the * last frame of the canvas. * - * \param cv A libcucul canvas + * \param cv A libcaca canvas * \param id The index of the frame to delete * \return 0 in case of success, -1 if an error occurred. */ -int cucul_free_frame(cucul_canvas_t *cv, int id) +int caca_free_frame(caca_canvas_t *cv, int id) { int f; @@ -222,14 +222,14 @@ int cucul_free_frame(cucul_canvas_t *cv, int id) cv->framecount--; cv->frames = realloc(cv->frames, - sizeof(struct cucul_frame) * cv->framecount); + sizeof(struct caca_frame) * cv->framecount); if(cv->frame > id) cv->frame--; else if(cv->frame == id) { cv->frame = 0; - _cucul_load_frame_info(cv); + _caca_load_frame_info(cv); } return 0; @@ -239,7 +239,7 @@ int cucul_free_frame(cucul_canvas_t *cv, int id) * XXX: the following functions are local. */ -void _cucul_save_frame_info(cucul_canvas_t *cv) +void _caca_save_frame_info(caca_canvas_t *cv) { cv->frames[cv->frame].width = cv->width; cv->frames[cv->frame].height = cv->height; @@ -247,7 +247,7 @@ void _cucul_save_frame_info(cucul_canvas_t *cv) cv->frames[cv->frame].curattr = cv->curattr; } -void _cucul_load_frame_info(cucul_canvas_t *cv) +void _caca_load_frame_info(caca_canvas_t *cv) { cv->width = cv->frames[cv->frame].width; cv->height = cv->frames[cv->frame].height; diff --git a/caca/graphics.c b/caca/graphics.c index 0599d76..162abd3 100644 --- a/caca/graphics.c +++ b/caca/graphics.c @@ -24,7 +24,6 @@ # include #endif -#include "cucul.h" #include "caca.h" #include "caca_internals.h" @@ -241,12 +240,12 @@ void _caca_handle_resize(caca_display_t *dp) { dp->drv.handle_resize(dp); - /* Tell libcucul we changed size */ - if(dp->resize.w != cucul_get_canvas_width(dp->cv) - || dp->resize.h != cucul_get_canvas_height(dp->cv)) + /* Tell libcaca we changed size */ + if(dp->resize.w != caca_get_canvas_width(dp->cv) + || dp->resize.h != caca_get_canvas_height(dp->cv)) { dp->resize.allow = 1; - cucul_set_canvas_size(dp->cv, dp->resize.w, dp->resize.h); + caca_set_canvas_size(dp->cv, dp->resize.w, dp->resize.h); dp->resize.allow = 0; } } diff --git a/cucul/import.c b/caca/import.c similarity index 82% rename from cucul/import.c rename to caca/import.c index bf89afb..c9aee8d 100644 --- a/cucul/import.c +++ b/caca/import.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * Copyright (c) 2002-2006 Sam Hocevar * All Rights Reserved * @@ -23,8 +23,8 @@ # include #endif -#include "cucul.h" -#include "cucul_internals.h" +#include "caca.h" +#include "caca_internals.h" static inline uint32_t sscanu32(void const *s) { @@ -51,16 +51,16 @@ struct import uint8_t faint, strike, proportional; /* unsupported */ }; -static ssize_t import_caca(cucul_canvas_t *, void const *, size_t); -static ssize_t import_text(cucul_canvas_t *, void const *, size_t); -static ssize_t import_ansi(cucul_canvas_t *, void const *, size_t, int); +static ssize_t import_caca(caca_canvas_t *, void const *, size_t); +static ssize_t import_text(caca_canvas_t *, void const *, size_t); +static ssize_t import_ansi(caca_canvas_t *, void const *, size_t, int); -static void ansi_parse_grcm(cucul_canvas_t *, struct import *, +static void ansi_parse_grcm(caca_canvas_t *, struct import *, unsigned int, unsigned int const *); /** \brief Import a memory buffer into a canvas * - * Import a memory buffer into the given libcucul canvas's current + * Import a memory buffer into the given libcaca canvas's current * frame. The current frame is resized accordingly and its contents are * replaced with the imported data. * @@ -78,14 +78,14 @@ static void ansi_parse_grcm(cucul_canvas_t *, struct import *, * - \c ENOMEM Not enough memory to allocate canvas. * - \c EINVAL Invalid format requested. * - * \param cv A libcucul canvas in which to import the file. + * \param cv A libcaca canvas in which to import the file. * \param data A memory area containing the data to be loaded into the canvas. * \param len The size in bytes of the memory area. * \param format A string describing the input format. * \return The number of bytes read, or 0 if there was not enough data, * or -1 if an error occurred. */ -ssize_t cucul_import_memory(cucul_canvas_t *cv, void const *data, +ssize_t caca_import_memory(caca_canvas_t *cv, void const *data, size_t len, char const *format) { if(!strcasecmp("caca", format)) @@ -123,7 +123,7 @@ ssize_t cucul_import_memory(cucul_canvas_t *cv, void const *data, /** \brief Import a file into a canvas * - * Import a file into the given libcucul canvas's current frame. The + * Import a file into the given libcaca canvas's current frame. The * current frame is resized accordingly and its contents are replaced * with the imported data. * @@ -141,48 +141,48 @@ ssize_t cucul_import_memory(cucul_canvas_t *cv, void const *data, * - \c ENOSYS File access is not implemented on this system. * - \c ENOMEM Not enough memory to allocate canvas. * - \c EINVAL Invalid format requested. - * cucul_import_file() may also fail and set \b errno for any of the + * caca_import_file() may also fail and set \b errno for any of the * errors specified for the routine fopen(). * - * \param cv A libcucul canvas in which to import the file. + * \param cv A libcaca canvas in which to import the file. * \param filename The name of the file to load. * \param format A string describing the input format. * \return The number of bytes read, or 0 if there was not enough data, * or -1 if an error occurred. */ -ssize_t cucul_import_file(cucul_canvas_t *cv, char const *filename, +ssize_t caca_import_file(caca_canvas_t *cv, char const *filename, char const *format) { #if defined __KERNEL__ seterrno(ENOSYS); return -1; #else - cucul_file_t *f; + caca_file_t *f; char *data = NULL; ssize_t size = 0; int ret; - f = cucul_file_open(filename, "rb"); + f = caca_file_open(filename, "rb"); if(!f) return -1; /* fopen already set errno */ - while(!cucul_file_eof(f)) + while(!caca_file_eof(f)) { data = realloc(data, size + 1024); if(!data) { - cucul_file_close(f); + caca_file_close(f); seterrno(ENOMEM); return -1; } - ret = cucul_file_read(f, data + size, 1024); + ret = caca_file_read(f, data + size, 1024); if(ret >= 0) size += ret; } - cucul_file_close(f); + caca_file_close(f); - ret = cucul_import_memory(cv, data, size, format); + ret = caca_import_memory(cv, data, size, format); free(data); return ret; @@ -193,14 +193,14 @@ ssize_t cucul_import_file(cucul_canvas_t *cv, char const *filename, * * Return a list of available import formats. The list is a NULL-terminated * array of strings, interleaving a string containing the internal value for - * the import format, to be used with cucul_import_canvas(), and a string + * the import format, to be used with caca_import_canvas(), and a string * containing the natural language description for that import format. * * This function never fails. * * \return An array of strings. */ -char const * const * cucul_get_import_list(void) +char const * const * caca_get_import_list(void) { static char const * const list[] = { @@ -219,7 +219,7 @@ char const * const * cucul_get_import_list(void) * XXX: the following functions are local. */ -static ssize_t import_caca(cucul_canvas_t *cv, void const *data, size_t size) +static ssize_t import_caca(caca_canvas_t *cv, void const *data, size_t size) { uint8_t const *buf = (uint8_t const *)data; size_t control_size, data_size, expected_size; @@ -284,12 +284,12 @@ static ssize_t import_caca(cucul_canvas_t *cv, void const *data, size_t size) goto invalid_caca; } - cucul_set_canvas_size(cv, 0, 0); - cucul_set_canvas_size(cv, xmax - xmin, ymax - ymin); + caca_set_canvas_size(cv, 0, 0); + caca_set_canvas_size(cv, xmax - xmin, ymax - ymin); - for (f = cucul_get_frame_count(cv); f--; ) + for (f = caca_get_frame_count(cv); f--; ) { - cucul_free_frame(cv, f); + caca_free_frame(cv, f); } for (offset = 0, f = 0; f < frames; f ++) @@ -298,8 +298,8 @@ static ssize_t import_caca(cucul_canvas_t *cv, void const *data, size_t size) width = sscanu32(buf + 4 + 16 + f * 32); height = sscanu32(buf + 4 + 16 + f * 32 + 4); - cucul_create_frame(cv, f); - cucul_set_frame(cv, f); + caca_create_frame(cv, f); + caca_set_frame(cv, f); cv->curattr = sscanu32(buf + 4 + 16 + f * 32 + 12); cv->frames[f].x = (int32_t)sscanu32(buf + 4 + 16 + f * 32 + 16); @@ -314,9 +314,9 @@ static ssize_t import_caca(cucul_canvas_t *cv, void const *data, size_t size) int x = (n % width) - cv->frames[f].handlex - xmin; int y = (n / width) - cv->frames[f].handley - ymin; - cucul_put_char(cv, x, y, sscanu32(buf + 4 + control_size + caca_put_char(cv, x, y, sscanu32(buf + 4 + control_size + offset + 8 * n)); - cucul_put_attr(cv, x, y, sscanu32(buf + 4 + control_size + caca_put_attr(cv, x, y, sscanu32(buf + 4 + control_size + offset + 8 * n + 4)); } offset += width * height * 8; @@ -327,7 +327,7 @@ static ssize_t import_caca(cucul_canvas_t *cv, void const *data, size_t size) cv->frames[f].handley = -ymin; } - cucul_set_frame(cv, 0); + caca_set_frame(cv, 0); return 4 + control_size + data_size; @@ -336,12 +336,12 @@ invalid_caca: return -1; } -static ssize_t import_text(cucul_canvas_t *cv, void const *data, size_t size) +static ssize_t import_text(caca_canvas_t *cv, void const *data, size_t size) { char const *text = (char const *)data; unsigned int width = 0, height = 0, x = 0, y = 0, i; - cucul_set_canvas_size(cv, width, height); + caca_set_canvas_size(cv, width, height); for(i = 0; i < size; i++) { @@ -365,20 +365,20 @@ static ssize_t import_text(cucul_canvas_t *cv, void const *data, size_t size) if(y >= height) height = y + 1; - cucul_set_canvas_size(cv, width, height); + caca_set_canvas_size(cv, width, height); } - cucul_put_char(cv, x, y, ch); + caca_put_char(cv, x, y, ch); x++; } if(y > height) - cucul_set_canvas_size(cv, width, height = y); + caca_set_canvas_size(cv, width, height = y); return size; } -static ssize_t import_ansi(cucul_canvas_t *cv, void const *data, +static ssize_t import_ansi(caca_canvas_t *cv, void const *data, size_t size, int utf8) { struct import im; @@ -399,24 +399,24 @@ static ssize_t import_ansi(cucul_canvas_t *cv, void const *data, } else { - cucul_set_canvas_size(cv, width = 80, height = 0); + caca_set_canvas_size(cv, width = 80, height = 0); growx = 0; growy = 1; } if(utf8) { - im.dfg = CUCUL_DEFAULT; - im.dbg = CUCUL_TRANSPARENT; + im.dfg = CACA_DEFAULT; + im.dbg = CACA_TRANSPARENT; } else { - im.dfg = CUCUL_LIGHTGRAY; - im.dbg = CUCUL_BLACK; + im.dfg = CACA_LIGHTGRAY; + im.dbg = CACA_BLACK; } - cucul_set_color_ansi(cv, im.dfg, im.dbg); - im.clearattr = cucul_get_attr(cv, -1, -1); + caca_set_color_ansi(cv, im.dfg, im.dbg); + im.clearattr = caca_get_attr(cv, -1, -1); ansi_parse_grcm(cv, &im, 1, &dummy); @@ -554,31 +554,31 @@ static ssize_t import_ansi(cucul_canvas_t *cv, void const *data, x = (argc && argv[0] > 0) ? argv[0] - 1 : 0; break; case 'J': /* ED (0x4a) - Erase In Page */ - savedattr = cucul_get_attr(cv, -1, -1); - cucul_set_attr(cv, im.clearattr); + savedattr = caca_get_attr(cv, -1, -1); + caca_set_attr(cv, im.clearattr); if(!argc || argv[0] == 0) { - cucul_draw_line(cv, x, y, width, y, ' '); - cucul_fill_box(cv, 0, y + 1, width - 1, height - 1, ' '); + caca_draw_line(cv, x, y, width, y, ' '); + caca_fill_box(cv, 0, y + 1, width - 1, height - 1, ' '); } else if(argv[0] == 1) { - cucul_fill_box(cv, 0, 0, width - 1, y - 1, ' '); - cucul_draw_line(cv, 0, y, x, y, ' '); + caca_fill_box(cv, 0, 0, width - 1, y - 1, ' '); + caca_draw_line(cv, 0, y, x, y, ' '); } else if(argv[0] == 2) //x = y = 0; - cucul_fill_box(cv, 0, 0, width - 1, height - 1, ' '); - cucul_set_attr(cv, savedattr); + caca_fill_box(cv, 0, 0, width - 1, height - 1, ' '); + caca_set_attr(cv, savedattr); break; case 'K': /* EL (0x4b) - Erase In Line */ if(!argc || argv[0] == 0) - cucul_draw_line(cv, x, y, width, y, ' '); + caca_draw_line(cv, x, y, width, y, ' '); else if(argv[0] == 1) - cucul_draw_line(cv, 0, y, x, y, ' '); + caca_draw_line(cv, 0, y, x, y, ' '); else if(argv[0] == 2) if((unsigned int)x < width) - cucul_draw_line(cv, x, y, width - 1, y, ' '); + caca_draw_line(cv, x, y, width - 1, y, ' '); //x = width; break; case 'P': /* DCH (0x50) - Delete Character */ @@ -586,25 +586,25 @@ static ssize_t import_ansi(cucul_canvas_t *cv, void const *data, argv[0] = 1; /* echo -ne 'foobar\r\e[0P\n' */ for(j = 0; (unsigned int)(j + argv[0]) < width; j++) { - cucul_put_char(cv, j, y, - cucul_get_char(cv, j + argv[0], y)); - cucul_put_attr(cv, j, y, - cucul_get_attr(cv, j + argv[0], y)); + caca_put_char(cv, j, y, + caca_get_char(cv, j + argv[0], y)); + caca_put_attr(cv, j, y, + caca_get_attr(cv, j + argv[0], y)); } #if 0 - savedattr = cucul_get_attr(cv, -1, -1); - cucul_set_attr(cv, im.clearattr); + savedattr = caca_get_attr(cv, -1, -1); + caca_set_attr(cv, im.clearattr); for( ; (unsigned int)j < width; j++) - cucul_put_char(cv, j, y, ' '); - cucul_set_attr(cv, savedattr); + caca_put_char(cv, j, y, ' '); + caca_set_attr(cv, savedattr); #endif case 'X': /* ECH (0x58) - Erase Character */ if(argc && argv[0]) { - savedattr = cucul_get_attr(cv, -1, -1); - cucul_set_attr(cv, im.clearattr); - cucul_draw_line(cv, x, y, x + argv[0] - 1, y, ' '); - cucul_set_attr(cv, savedattr); + savedattr = caca_get_attr(cv, -1, -1); + caca_set_attr(cv, im.clearattr); + caca_draw_line(cv, x, y, x + argv[0] - 1, y, ' '); + caca_set_attr(cv, savedattr); } case 'd': /* VPA (0x64) - Line Position Absolute */ y = (argc && argv[0] > 0) ? argv[0] - 1 : 0; @@ -683,14 +683,14 @@ static ssize_t import_ansi(cucul_canvas_t *cv, void const *data, size_t bytes; if(i + 6 < size) - ch = cucul_utf8_to_utf32((char const *)(buffer + i), &bytes); + ch = caca_utf8_to_utf32((char const *)(buffer + i), &bytes); else { /* Add a trailing zero to what we're going to read */ char tmp[7]; memcpy(tmp, buffer + i, size - i); tmp[size - i] = '\0'; - ch = cucul_utf8_to_utf32(tmp, &bytes); + ch = caca_utf8_to_utf32(tmp, &bytes); } if(!bytes) @@ -699,12 +699,12 @@ static ssize_t import_ansi(cucul_canvas_t *cv, void const *data, ch = buffer[i]; bytes = 1; } - wch = cucul_utf32_is_fullwidth(ch) ? 2 : 1; + wch = caca_utf32_is_fullwidth(ch) ? 2 : 1; skip += bytes - 1; } else { - ch = cucul_cp437_to_utf32(buffer[i]); + ch = caca_cp437_to_utf32(buffer[i]); wch = 1; } @@ -713,10 +713,10 @@ static ssize_t import_ansi(cucul_canvas_t *cv, void const *data, { if(growx) { - savedattr = cucul_get_attr(cv, -1, -1); - cucul_set_attr(cv, im.clearattr); - cucul_set_canvas_size(cv, width = x + wch, height); - cucul_set_attr(cv, savedattr); + savedattr = caca_get_attr(cv, -1, -1); + caca_set_attr(cv, im.clearattr); + caca_set_canvas_size(cv, width = x + wch, height); + caca_set_attr(cv, savedattr); } else { @@ -728,11 +728,11 @@ static ssize_t import_ansi(cucul_canvas_t *cv, void const *data, /* Scroll or grow vertically */ if((unsigned int)y >= height) { - savedattr = cucul_get_attr(cv, -1, -1); - cucul_set_attr(cv, im.clearattr); + savedattr = caca_get_attr(cv, -1, -1); + caca_set_attr(cv, im.clearattr); if(growy) { - cucul_set_canvas_size(cv, width, height = y + 1); + caca_set_canvas_size(cv, width, height = y + 1); } else { @@ -745,63 +745,63 @@ static ssize_t import_ansi(cucul_canvas_t *cv, void const *data, memcpy(cv->chars + j * cv->width, cv->chars + (j + lines) * cv->width, cv->width * 4); } - cucul_fill_box(cv, 0, height - lines, + caca_fill_box(cv, 0, height - lines, cv->width - 1, height - 1, ' '); y -= lines; } - cucul_set_attr(cv, savedattr); + caca_set_attr(cv, savedattr); } /* Now paste our character, if any */ if(wch) { - cucul_put_char(cv, x, y, ch); + caca_put_char(cv, x, y, ch); x += wch; } } if(growy && (unsigned int)y > height) { - savedattr = cucul_get_attr(cv, -1, -1); - cucul_set_attr(cv, im.clearattr); - cucul_set_canvas_size(cv, width, height = y); - cucul_set_attr(cv, savedattr); + savedattr = caca_get_attr(cv, -1, -1); + caca_set_attr(cv, im.clearattr); + caca_set_canvas_size(cv, width, height = y); + caca_set_attr(cv, savedattr); } cv->frames[cv->frame].x = x; cv->frames[cv->frame].y = y; // if(utf8) -// cucul_set_attr(cv, savedattr); +// caca_set_attr(cv, savedattr); return i; } /* XXX : ANSI loader helper */ -static void ansi_parse_grcm(cucul_canvas_t *cv, struct import *im, +static void ansi_parse_grcm(caca_canvas_t *cv, struct import *im, unsigned int argc, unsigned int const *argv) { - static uint8_t const ansi2cucul[] = + static uint8_t const ansi2caca[] = { - CUCUL_BLACK, CUCUL_RED, CUCUL_GREEN, CUCUL_BROWN, - CUCUL_BLUE, CUCUL_MAGENTA, CUCUL_CYAN, CUCUL_LIGHTGRAY + CACA_BLACK, CACA_RED, CACA_GREEN, CACA_BROWN, + CACA_BLUE, CACA_MAGENTA, CACA_CYAN, CACA_LIGHTGRAY }; unsigned int j; - uint8_t efg, ebg; /* Effective (libcucul) fg/bg */ + uint8_t efg, ebg; /* Effective (libcaca) fg/bg */ for(j = 0; j < argc; j++) { /* Defined in ECMA-48 8.3.117: SGR - SELECT GRAPHIC RENDITION */ if(argv[j] >= 30 && argv[j] <= 37) - im->fg = ansi2cucul[argv[j] - 30]; + im->fg = ansi2caca[argv[j] - 30]; else if(argv[j] >= 40 && argv[j] <= 47) - im->bg = ansi2cucul[argv[j] - 40]; + im->bg = ansi2caca[argv[j] - 40]; else if(argv[j] >= 90 && argv[j] <= 97) - im->fg = ansi2cucul[argv[j] - 90] + 8; + im->fg = ansi2caca[argv[j] - 90] + 8; else if(argv[j] >= 100 && argv[j] <= 107) - im->bg = ansi2cucul[argv[j] - 100] + 8; + im->bg = ansi2caca[argv[j] - 100] + 8; else switch(argv[j]) { case 0: /* default rendition */ @@ -892,7 +892,7 @@ static void ansi_parse_grcm(cucul_canvas_t *cv, struct import *im, if(im->concealed) { - efg = ebg = CUCUL_TRANSPARENT; + efg = ebg = CACA_TRANSPARENT; } else { @@ -903,11 +903,11 @@ static void ansi_parse_grcm(cucul_canvas_t *cv, struct import *im, { if(efg < 8) efg += 8; - else if(efg == CUCUL_DEFAULT) - efg = CUCUL_WHITE; + else if(efg == CACA_DEFAULT) + efg = CACA_WHITE; } } - cucul_set_color_ansi(cv, efg, ebg); + caca_set_color_ansi(cv, efg, ebg); } diff --git a/cucul/legacy.c b/caca/legacy.c similarity index 75% rename from cucul/legacy.c rename to caca/legacy.c index bb3cd9b..14f3d18 100644 --- a/cucul/legacy.c +++ b/caca/legacy.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * Copyright (c) 2002-2006 Sam Hocevar * All Rights Reserved * @@ -25,8 +25,15 @@ # include #endif -#include "cucul.h" -#include "cucul_internals.h" +#include "caca.h" +#include "caca_internals.h" + +struct cucul_buffer +{ + size_t size; + char *data; + int user_data; +}; /* * Functions from canvas.c @@ -34,17 +41,17 @@ int cucul_putchar(cucul_canvas_t *cv, int x, int y, unsigned long int ch) { - return cucul_put_char(cv, x, y, ch); + return caca_put_char(cv, x, y, ch); } unsigned long int cucul_getchar(cucul_canvas_t *cv, int x, int y) { - return cucul_get_char(cv, x, y); + return caca_get_char(cv, x, y); } int cucul_putstr(cucul_canvas_t *cv, int x, int y, char const *s) { - return cucul_put_str(cv, x, y, s); + return caca_put_str(cv, x, y, s); } /* @@ -53,12 +60,12 @@ int cucul_putstr(cucul_canvas_t *cv, int x, int y, char const *s) int cucul_set_color(cucul_canvas_t *cv, unsigned char fg, unsigned char bg) { - return cucul_set_color_ansi(cv, fg, bg); + return caca_set_color_ansi(cv, fg, bg); } int cucul_set_truecolor(cucul_canvas_t *cv, unsigned int fg, unsigned int bg) { - return cucul_set_color_argb(cv, fg, bg); + return caca_set_color_argb(cv, fg, bg); } /* @@ -66,22 +73,22 @@ int cucul_set_truecolor(cucul_canvas_t *cv, unsigned int fg, unsigned int bg) */ int cucul_set_dither_invert(cucul_dither_t *d, int value) { - float gamma = cucul_get_dither_gamma(d); + float gamma = caca_get_dither_gamma(d); if(gamma * (value ? -1 : 1) < 0) - cucul_set_dither_gamma(d, -gamma); + caca_set_dither_gamma(d, -gamma); return 0; } int cucul_set_dither_mode(cucul_dither_t *d, char const *s) { - return cucul_set_dither_algorithm(d, s); + return caca_set_dither_algorithm(d, s); } char const * const * cucul_get_dither_mode_list(cucul_dither_t const *d) { - return cucul_get_dither_algorithm_list(d); + return caca_get_dither_algorithm_list(d); } /* @@ -90,12 +97,12 @@ char const * const * cucul_get_dither_mode_list(cucul_dither_t const *d) cucul_canvas_t * cucul_import_canvas(cucul_buffer_t *buf, char const *format) { - cucul_canvas_t *cv = cucul_create_canvas(0, 0); - int ret = cucul_import_memory(cv, (unsigned char const *)buf->data, + caca_canvas_t *cv = caca_create_canvas(0, 0); + int ret = caca_import_memory(cv, (unsigned char const *)buf->data, buf->size, format); if(ret < 0) { - cucul_free_canvas(cv); + caca_free_canvas(cv); return NULL; } @@ -117,7 +124,7 @@ cucul_buffer_t * cucul_export_canvas(cucul_canvas_t *cv, char const *format) return NULL; } - ex->data = cucul_export_memory(cv, format, &ex->size); + ex->data = caca_export_memory(cv, format, &ex->size); if(!ex->data) { free(ex); @@ -135,22 +142,22 @@ cucul_buffer_t * cucul_export_canvas(cucul_canvas_t *cv, char const *format) unsigned int cucul_get_canvas_frame_count(cucul_canvas_t *cv) { - return cucul_get_frame_count(cv); + return caca_get_frame_count(cv); } int cucul_set_canvas_frame(cucul_canvas_t *cv, unsigned int id) { - return cucul_set_frame(cv, id); + return caca_set_frame(cv, id); } int cucul_create_canvas_frame(cucul_canvas_t *cv, unsigned int id) { - return cucul_create_frame(cv, id); + return caca_create_frame(cv, id); } int cucul_free_canvas_frame(cucul_canvas_t *cv, unsigned int id) { - return cucul_free_frame(cv, id); + return caca_free_frame(cv, id); } /* @@ -175,40 +182,40 @@ cucul_buffer_t *cucul_load_memory(void *data, unsigned long int size) cucul_buffer_t *cucul_load_file(char const *file) { cucul_buffer_t *buf; - cucul_file_t *f; + caca_file_t *f; int ret; - f = cucul_file_open(file, "rb"); + f = caca_file_open(file, "rb"); if(!f) return NULL; buf = malloc(sizeof(cucul_buffer_t)); if(!buf) { - cucul_file_close(f); + caca_file_close(f); return NULL; } buf->data = NULL; buf->size = 0; - while(!cucul_file_eof(f)) + while(!caca_file_eof(f)) { buf->data = realloc(buf->data, buf->size + 1024); if(!buf->data) { int saved_errno = geterrno(); free(buf); - cucul_file_close(f); + caca_file_close(f); seterrno(saved_errno); return NULL; } - ret = cucul_file_read(f, buf->data + buf->size, 1024); + ret = caca_file_read(f, buf->data + buf->size, 1024); if(ret >= 0) buf->size += ret; } - cucul_file_close(f); + caca_file_close(f); return buf; } @@ -239,6 +246,6 @@ int cucul_free_buffer(cucul_buffer_t *buf) int cucul_rotate(cucul_canvas_t *cv) { - return cucul_rotate_180(cv); + return caca_rotate_180(cv); } diff --git a/cucul/line.c b/caca/line.c similarity index 83% rename from cucul/line.c rename to caca/line.c index 5d56860..395cebf 100644 --- a/cucul/line.c +++ b/caca/line.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * Copyright (c) 2002-2006 Sam Hocevar * All Rights Reserved * @@ -23,8 +23,8 @@ # include #endif -#include "cucul.h" -#include "cucul_internals.h" +#include "caca.h" +#include "caca_internals.h" #if !defined(_DOXYGEN_SKIP_ME) struct line @@ -32,20 +32,20 @@ struct line int x1, y1; int x2, y2; uint32_t ch; - void (*draw) (cucul_canvas_t *, struct line*); + void (*draw) (caca_canvas_t *, struct line*); }; #endif -static void clip_line(cucul_canvas_t*, struct line*); -static uint8_t clip_bits(cucul_canvas_t*, int, int); -static void draw_solid_line(cucul_canvas_t*, struct line*); -static void draw_thin_line(cucul_canvas_t*, struct line*); +static void clip_line(caca_canvas_t*, struct line*); +static uint8_t clip_bits(caca_canvas_t*, int, int); +static void draw_solid_line(caca_canvas_t*, struct line*); +static void draw_thin_line(caca_canvas_t*, struct line*); /** \brief Draw a line on the canvas using the given character. * * This function never fails. * - * \param cv The handle to the libcucul canvas. + * \param cv The handle to the libcaca canvas. * \param x1 X coordinate of the first point. * \param y1 Y coordinate of the first point. * \param x2 X coordinate of the second point. @@ -53,7 +53,7 @@ static void draw_thin_line(cucul_canvas_t*, struct line*); * \param ch UTF-32 character to be used to draw the line. * \return This function always returns 0. */ -int cucul_draw_line(cucul_canvas_t *cv, int x1, int y1, int x2, int y2, +int caca_draw_line(caca_canvas_t *cv, int x1, int y1, int x2, int y2, uint32_t ch) { struct line s; @@ -77,14 +77,14 @@ int cucul_draw_line(cucul_canvas_t *cv, int x1, int y1, int x2, int y2, * * This function never fails. * - * \param cv The handle to the libcucul canvas. + * \param cv The handle to the libcaca canvas. * \param x Array of X coordinates. Must have \p n + 1 elements. * \param y Array of Y coordinates. Must have \p n + 1 elements. * \param n Number of lines to draw. * \param ch UTF-32 character to be used to draw the lines. * \return This function always returns 0. */ -int cucul_draw_polyline(cucul_canvas_t *cv, int const x[], int const y[], +int caca_draw_polyline(caca_canvas_t *cv, int const x[], int const y[], int n, uint32_t ch) { int i; @@ -108,14 +108,14 @@ int cucul_draw_polyline(cucul_canvas_t *cv, int const x[], int const y[], * * This function never fails. * - * \param cv The handle to the libcucul canvas. + * \param cv The handle to the libcaca canvas. * \param x1 X coordinate of the first point. * \param y1 Y coordinate of the first point. * \param x2 X coordinate of the second point. * \param y2 Y coordinate of the second point. * \return This function always returns 0. */ -int cucul_draw_thin_line(cucul_canvas_t *cv, int x1, int y1, int x2, int y2) +int caca_draw_thin_line(caca_canvas_t *cv, int x1, int y1, int x2, int y2) { struct line s; s.x1 = x1; @@ -137,13 +137,13 @@ int cucul_draw_thin_line(cucul_canvas_t *cv, int x1, int y1, int x2, int y2) * * This function never fails. * - * \param cv The handle to the libcucul canvas. + * \param cv The handle to the libcaca canvas. * \param x Array of X coordinates. Must have \p n + 1 elements. * \param y Array of Y coordinates. Must have \p n + 1 elements. * \param n Number of lines to draw. * \return This function always returns 0. */ -int cucul_draw_thin_polyline(cucul_canvas_t *cv, int const x[], int const y[], +int caca_draw_thin_polyline(caca_canvas_t *cv, int const x[], int const y[], int n) { int i; @@ -167,7 +167,7 @@ int cucul_draw_thin_polyline(cucul_canvas_t *cv, int const x[], int const y[], */ /* Generic Cohen-Sutherland line clipping function. */ -static void clip_line(cucul_canvas_t *cv, struct line* s) +static void clip_line(caca_canvas_t *cv, struct line* s) { uint8_t bits1, bits2; @@ -219,7 +219,7 @@ static void clip_line(cucul_canvas_t *cv, struct line* s) } /* Helper function for clip_line(). */ -static uint8_t clip_bits(cucul_canvas_t *cv, int x, int y) +static uint8_t clip_bits(caca_canvas_t *cv, int x, int y) { uint8_t b = 0; @@ -238,7 +238,7 @@ static uint8_t clip_bits(cucul_canvas_t *cv, int x, int y) /* Solid line drawing function, using Bresenham's mid-point line * scan-conversion algorithm. */ -static void draw_solid_line(cucul_canvas_t *cv, struct line* s) +static void draw_solid_line(caca_canvas_t *cv, struct line* s) { int x1, y1, x2, y2; int dx, dy; @@ -260,7 +260,7 @@ static void draw_solid_line(cucul_canvas_t *cv, struct line* s) for(; dx>=0; dx--) { - cucul_put_char(cv, x1, y1, s->ch); + caca_put_char(cv, x1, y1, s->ch); if(delta > 0) { x1 += xinc; @@ -282,7 +282,7 @@ static void draw_solid_line(cucul_canvas_t *cv, struct line* s) for(; dy >= 0; dy--) { - cucul_put_char(cv, x1, y1, s->ch); + caca_put_char(cv, x1, y1, s->ch); if(delta > 0) { x1 += xinc; @@ -300,7 +300,7 @@ static void draw_solid_line(cucul_canvas_t *cv, struct line* s) /* Thin line drawing function, using Bresenham's mid-point line * scan-conversion algorithm and ASCII art graphics. */ -static void draw_thin_line(cucul_canvas_t *cv, struct line* s) +static void draw_thin_line(caca_canvas_t *cv, struct line* s) { uint32_t charmapx[2], charmapy[2]; int x1, y1, x2, y2; @@ -347,7 +347,7 @@ static void draw_thin_line(cucul_canvas_t *cv, struct line* s) { if(delta > 0) { - cucul_put_char(cv, x1, y1, charmapy[1]); + caca_put_char(cv, x1, y1, charmapy[1]); x1++; y1 += yinc; delta += dpru; @@ -356,9 +356,9 @@ static void draw_thin_line(cucul_canvas_t *cv, struct line* s) else { if(prev) - cucul_put_char(cv, x1, y1, charmapy[0]); + caca_put_char(cv, x1, y1, charmapy[0]); else - cucul_put_char(cv, x1, y1, '-'); + caca_put_char(cv, x1, y1, '-'); x1++; delta += dpr; prev = 0; @@ -375,15 +375,15 @@ static void draw_thin_line(cucul_canvas_t *cv, struct line* s) { if(delta > 0) { - cucul_put_char(cv, x1, y1, charmapx[0]); - cucul_put_char(cv, x1 + 1, y1, charmapx[1]); + caca_put_char(cv, x1, y1, charmapx[0]); + caca_put_char(cv, x1 + 1, y1, charmapx[1]); x1++; y1 += yinc; delta += dpru; } else { - cucul_put_char(cv, x1, y1, '|'); + caca_put_char(cv, x1, y1, '|'); y1 += yinc; delta += dpr; } diff --git a/cucul/mono9.data b/caca/mono9.data similarity index 99% rename from cucul/mono9.data rename to caca/mono9.data index 48c7aaf..1450251 100644 --- a/cucul/mono9.data +++ b/caca/mono9.data @@ -1,4 +1,4 @@ -/* libcucul font file +/* libcaca font file * "Monospace 9": 96 dpi, 4 bpp, 7x15/14x15 glyphs * Automatically generated by tools/makefont.c: * tools/makefont mono9 "Monospace 9" 96 4 diff --git a/cucul/monobold12.data b/caca/monobold12.data similarity index 99% rename from cucul/monobold12.data rename to caca/monobold12.data index 80f20f7..8261c80 100644 --- a/cucul/monobold12.data +++ b/caca/monobold12.data @@ -1,4 +1,4 @@ -/* libcucul font file +/* libcaca font file * "Monospace Bold 12": 96 dpi, 4 bpp, 10x19/20x19 glyphs * Automatically generated by tools/makefont.c: * tools/makefont monobold12 "Monospace Bold 12" 96 4 diff --git a/cucul/canvas.c b/caca/string.c similarity index 79% rename from cucul/canvas.c rename to caca/string.c index 683f77b..c5e823c 100644 --- a/cucul/canvas.c +++ b/caca/string.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * Copyright (c) 2002-2006 Sam Hocevar * All Rights Reserved * @@ -35,8 +35,8 @@ # endif #endif -#include "cucul.h" -#include "cucul_internals.h" +#include "caca.h" +#include "caca_internals.h" /** \brief Set cursor position. * @@ -46,12 +46,12 @@ * * This function never fails. * - * \param cv A handle to the libcucul canvas. + * \param cv A handle to the libcaca canvas. * \param x X cursor coordinate. * \param y Y cursor coordinate. * \return This function always returns 0. */ -int cucul_gotoxy(cucul_canvas_t *cv, int x, int y) +int caca_gotoxy(caca_canvas_t *cv, int x, int y) { cv->frames[cv->frame].x = x; cv->frames[cv->frame].y = y; @@ -65,10 +65,10 @@ int cucul_gotoxy(cucul_canvas_t *cv, int x, int y) * * This function never fails. * - * \param cv A handle to the libcucul canvas. + * \param cv A handle to the libcaca canvas. * \return The cursor's X coordinate. */ -int cucul_get_cursor_x(cucul_canvas_t const *cv) +int caca_get_cursor_x(caca_canvas_t const *cv) { return cv->frames[cv->frame].x; } @@ -79,10 +79,10 @@ int cucul_get_cursor_x(cucul_canvas_t const *cv) * * This function never fails. * - * \param cv A handle to the libcucul canvas. + * \param cv A handle to the libcaca canvas. * \return The cursor's Y coordinate. */ -int cucul_get_cursor_y(cucul_canvas_t const *cv) +int caca_get_cursor_y(caca_canvas_t const *cv) { return cv->frames[cv->frame].y; } @@ -99,17 +99,17 @@ int cucul_get_cursor_y(cucul_canvas_t const *cv) * * The behaviour when printing non-printable characters or invalid UTF-32 * characters is undefined. To print a sequence of bytes forming an UTF-8 - * character instead of an UTF-32 character, use the cucul_put_str() function. + * character instead of an UTF-32 character, use the caca_put_str() function. * * This function never fails. * - * \param cv A handle to the libcucul canvas. + * \param cv A handle to the libcaca canvas. * \param x X coordinate. * \param y Y coordinate. * \param ch The character to print. * \return This function always returns 0. */ -int cucul_put_char(cucul_canvas_t *cv, int x, int y, uint32_t ch) +int caca_put_char(caca_canvas_t *cv, int x, int y, uint32_t ch) { uint32_t *curchar, *curattr, attr; int fullwidth; @@ -117,10 +117,10 @@ int cucul_put_char(cucul_canvas_t *cv, int x, int y, uint32_t ch) if(x >= (int)cv->width || y < 0 || y >= (int)cv->height) return 0; - if(ch == CUCUL_MAGIC_FULLWIDTH) + if(ch == CACA_MAGIC_FULLWIDTH) return 0; - fullwidth = cucul_utf32_is_fullwidth(ch); + fullwidth = caca_utf32_is_fullwidth(ch); if(x == -1 && fullwidth) { @@ -137,7 +137,7 @@ int cucul_put_char(cucul_canvas_t *cv, int x, int y, uint32_t ch) /* When overwriting the right part of a fullwidth character, * replace its left part with a space. */ - if(x && curchar[0] == CUCUL_MAGIC_FULLWIDTH) + if(x && curchar[0] == CACA_MAGIC_FULLWIDTH) curchar[-1] = ' '; if(fullwidth) @@ -148,10 +148,10 @@ int cucul_put_char(cucul_canvas_t *cv, int x, int y, uint32_t ch) { /* When overwriting the left part of a fullwidth character, * replace its right part with a space. */ - if(x + 2 < (int)cv->width && curchar[2] == CUCUL_MAGIC_FULLWIDTH) + if(x + 2 < (int)cv->width && curchar[2] == CACA_MAGIC_FULLWIDTH) curchar[2] = ' '; - curchar[1] = CUCUL_MAGIC_FULLWIDTH; + curchar[1] = CACA_MAGIC_FULLWIDTH; curattr[1] = attr; } } @@ -159,7 +159,7 @@ int cucul_put_char(cucul_canvas_t *cv, int x, int y, uint32_t ch) { /* When overwriting the left part of a fullwidth character, * replace its right part with a space. */ - if(x + 1 != (int)cv->width && curchar[1] == CUCUL_MAGIC_FULLWIDTH) + if(x + 1 != (int)cv->width && curchar[1] == CACA_MAGIC_FULLWIDTH) curchar[1] = ' '; } @@ -179,19 +179,19 @@ int cucul_put_char(cucul_canvas_t *cv, int x, int y, uint32_t ch) * If the coordinates are outside the canvas boundaries, a space (0x20) * is returned. * - * A special exception is when CUCUL_MAGIC_FULLWIDTH is returned. This + * A special exception is when CACA_MAGIC_FULLWIDTH is returned. This * value is guaranteed not to be a valid Unicode character, and indicates * that the character at the left of the requested one is a fullwidth * character. * * This function never fails. * - * \param cv A handle to the libcucul canvas. + * \param cv A handle to the libcaca canvas. * \param x X coordinate. * \param y Y coordinate. * \return This function always returns 0. */ -uint32_t cucul_get_char(cucul_canvas_t const *cv, int x, int y) +uint32_t caca_get_char(caca_canvas_t const *cv, int x, int y) { if(x < 0 || x >= (int)cv->width || y < 0 || y >= (int)cv->height) return ' '; @@ -206,18 +206,18 @@ uint32_t cucul_get_char(cucul_canvas_t const *cv, int x, int y) * canvas boundaries (eg. a negative Y coordinate) and the string will * be cropped accordingly if it is too long. * - * See cucul_put_char() for more information on how fullwidth characters + * See caca_put_char() for more information on how fullwidth characters * are handled when overwriting each other or at the canvas' boundaries. * * This function never fails. * - * \param cv A handle to the libcucul canvas. + * \param cv A handle to the libcaca canvas. * \param x X coordinate. * \param y Y coordinate. * \param s The string to print. * \return This function always returns 0. */ -int cucul_put_str(cucul_canvas_t *cv, int x, int y, char const *s) +int caca_put_str(caca_canvas_t *cv, int x, int y, char const *s) { size_t rd; @@ -226,15 +226,15 @@ int cucul_put_str(cucul_canvas_t *cv, int x, int y, char const *s) while(*s && x < -1) { - x += cucul_utf32_is_fullwidth(cucul_utf8_to_utf32(s, &rd)) ? 2 : 1; + x += caca_utf32_is_fullwidth(caca_utf8_to_utf32(s, &rd)) ? 2 : 1; s += rd; } while(*s && x < (int)cv->width) { - uint32_t ch = cucul_utf8_to_utf32(s, &rd); - cucul_put_char(cv, x, y, ch); - x += cucul_utf32_is_fullwidth(ch) ? 2 : 1; + uint32_t ch = caca_utf8_to_utf32(s, &rd); + caca_put_char(cv, x, y, ch); + x += caca_utf32_is_fullwidth(ch) ? 2 : 1; s += rd; } @@ -251,14 +251,14 @@ int cucul_put_str(cucul_canvas_t *cv, int x, int y, char const *s) * * This function never fails. * - * \param cv A handle to the libcucul canvas. + * \param cv A handle to the libcaca canvas. * \param x X coordinate. * \param y Y coordinate. * \param format The format string to print. * \param ... Arguments to the format string. * \return This function always returns 0. */ -int cucul_printf(cucul_canvas_t *cv, int x, int y, char const *format, ...) +int caca_printf(caca_canvas_t *cv, int x, int y, char const *format, ...) { char tmp[BUFSIZ]; char *buf = tmp; @@ -279,7 +279,7 @@ int cucul_printf(cucul_canvas_t *cv, int x, int y, char const *format, ...) buf[cv->width - x] = '\0'; va_end(args); - cucul_put_str(cv, x, y, buf); + caca_put_str(cv, x, y, buf); if(buf != tmp) free(buf); @@ -296,7 +296,7 @@ int cucul_printf(cucul_canvas_t *cv, int x, int y, char const *format, ...) * \param cv The canvas to clear. * \return This function always returns 0. */ -int cucul_clear_canvas(cucul_canvas_t *cv) +int caca_clear_canvas(caca_canvas_t *cv) { uint32_t attr = cv->curattr; int n; @@ -317,12 +317,12 @@ int cucul_clear_canvas(cucul_canvas_t *cv) * * This function never fails. * - * \param cv A handle to the libcucul canvas. + * \param cv A handle to the libcaca canvas. * \param x X handle coordinate. * \param y Y handle coordinate. * \return This function always returns 0. */ -int cucul_set_canvas_handle(cucul_canvas_t *cv, int x, int y) +int caca_set_canvas_handle(caca_canvas_t *cv, int x, int y) { cv->frames[cv->frame].handlex = x; cv->frames[cv->frame].handley = y; @@ -336,10 +336,10 @@ int cucul_set_canvas_handle(cucul_canvas_t *cv, int x, int y) * * This function never fails. * - * \param cv A handle to the libcucul canvas. + * \param cv A handle to the libcaca canvas. * \return The canvas' handle's X coordinate. */ -int cucul_get_canvas_handle_x(cucul_canvas_t const *cv) +int caca_get_canvas_handle_x(caca_canvas_t const *cv) { return cv->frames[cv->frame].handlex; } @@ -350,10 +350,10 @@ int cucul_get_canvas_handle_x(cucul_canvas_t const *cv) * * This function never fails. * - * \param cv A handle to the libcucul canvas. + * \param cv A handle to the libcaca canvas. * \return The canvas' handle's Y coordinate. */ -int cucul_get_canvas_handle_y(cucul_canvas_t const *cv) +int caca_get_canvas_handle_y(caca_canvas_t const *cv) { return cv->frames[cv->frame].handley; } @@ -374,8 +374,8 @@ int cucul_get_canvas_handle_y(cucul_canvas_t const *cv) * \param mask The mask canvas. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_blit(cucul_canvas_t *dst, int x, int y, - cucul_canvas_t const *src, cucul_canvas_t const *mask) +int caca_blit(caca_canvas_t *dst, int x, int y, + caca_canvas_t const *src, caca_canvas_t const *mask) { int i, j, starti, startj, endi, endj; @@ -404,11 +404,11 @@ int cucul_blit(cucul_canvas_t *dst, int x, int y, int stride = endi - starti; /* FIXME: we are ignoring the mask here */ - if((starti + x) && dst->chars[dstix] == CUCUL_MAGIC_FULLWIDTH) + if((starti + x) && dst->chars[dstix] == CACA_MAGIC_FULLWIDTH) dst->chars[dstix - 1] = ' '; if(endi + x < dst->width - && dst->chars[dstix + stride] == CUCUL_MAGIC_FULLWIDTH) + && dst->chars[dstix + stride] == CACA_MAGIC_FULLWIDTH) dst->chars[dstix + stride] = ' '; if(mask) @@ -429,10 +429,10 @@ int cucul_blit(cucul_canvas_t *dst, int x, int y, } /* Fix split fullwidth chars */ - if(src->chars[srcix] == CUCUL_MAGIC_FULLWIDTH) + if(src->chars[srcix] == CACA_MAGIC_FULLWIDTH) dst->chars[dstix] = ' '; - if(endi < src->width && src->chars[endi] == CUCUL_MAGIC_FULLWIDTH) + if(endi < src->width && src->chars[endi] == CACA_MAGIC_FULLWIDTH) dst->chars[dstix + stride - 1] = ' '; } @@ -458,9 +458,9 @@ int cucul_blit(cucul_canvas_t *dst, int x, int y, * \param h The height of the cropped area. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_set_canvas_boundaries(cucul_canvas_t *cv, int x, int y, int w, int h) +int caca_set_canvas_boundaries(caca_canvas_t *cv, int x, int y, int w, int h) { - cucul_canvas_t *new; + caca_canvas_t *new; int f, saved_f, framecount; if(cv->refcount) @@ -475,19 +475,19 @@ int cucul_set_canvas_boundaries(cucul_canvas_t *cv, int x, int y, int w, int h) return -1; } - new = cucul_create_canvas(w, h); + new = caca_create_canvas(w, h); - framecount = cucul_get_frame_count(cv); + framecount = caca_get_frame_count(cv); saved_f = cv->frame; for(f = 0; f < framecount; f++) { if(f) - cucul_create_frame(new, framecount); + caca_create_frame(new, framecount); - cucul_set_frame(cv, f); - cucul_set_frame(new, f); - cucul_blit(new, -x, -y, cv, NULL); + caca_set_frame(cv, f); + caca_set_frame(new, f); + caca_blit(new, -x, -y, cv, NULL); free(cv->frames[f].chars); free(cv->frames[f].attrs); } @@ -496,9 +496,9 @@ int cucul_set_canvas_boundaries(cucul_canvas_t *cv, int x, int y, int w, int h) cv->frames = new->frames; free(new); - cucul_set_frame(cv, saved_f); - _cucul_load_frame_info(cv); - + caca_set_frame(cv, saved_f); + _caca_load_frame_info(cv); + return 0; } diff --git a/cucul/transform.c b/caca/transform.c similarity index 95% rename from cucul/transform.c rename to caca/transform.c index a35dac7..03c28bc 100644 --- a/cucul/transform.c +++ b/caca/transform.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * Copyright (c) 2002-2006 Sam Hocevar * All Rights Reserved * @@ -22,8 +22,8 @@ # include #endif -#include "cucul.h" -#include "cucul_internals.h" +#include "caca.h" +#include "caca_internals.h" static uint32_t flipchar(uint32_t ch); static uint32_t flopchar(uint32_t ch); @@ -43,7 +43,7 @@ static void rightpair(uint32_t pair[2]); * \param cv The canvas to invert. * \return This function always returns 0. */ -int cucul_invert(cucul_canvas_t *cv) +int caca_invert(caca_canvas_t *cv) { uint32_t *attrs = cv->attrs; int i; @@ -69,7 +69,7 @@ int cucul_invert(cucul_canvas_t *cv) * \param cv The canvas to flip. * \return This function always returns 0. */ -int cucul_flip(cucul_canvas_t *cv) +int caca_flip(caca_canvas_t *cv) { int y; @@ -104,10 +104,10 @@ int cucul_flip(cucul_canvas_t *cv) cright = cleft + cv->width - 1; for( ; cleft < cright; cleft++) { - if(cleft[0] == CUCUL_MAGIC_FULLWIDTH) + if(cleft[0] == CACA_MAGIC_FULLWIDTH) { cleft[0] = cleft[1]; - cleft[1] = CUCUL_MAGIC_FULLWIDTH; + cleft[1] = CACA_MAGIC_FULLWIDTH; cleft++; } } @@ -128,7 +128,7 @@ int cucul_flip(cucul_canvas_t *cv) * \param cv The canvas to flop. * \return This function always returns 0. */ -int cucul_flop(cucul_canvas_t *cv) +int caca_flop(caca_canvas_t *cv) { int x; @@ -174,7 +174,7 @@ int cucul_flop(cucul_canvas_t *cv) * \param cv The canvas to rotate. * \return This function always returns 0. */ -int cucul_rotate_180(cucul_canvas_t *cv) +int caca_rotate_180(caca_canvas_t *cv) { uint32_t *cbegin = cv->chars; uint32_t *cend = cbegin + cv->width * cv->height - 1; @@ -206,10 +206,10 @@ int cucul_rotate_180(cucul_canvas_t *cv) cend = cbegin + cv->width - 1; for( ; cbegin < cend; cbegin++) { - if(cbegin[0] == CUCUL_MAGIC_FULLWIDTH) + if(cbegin[0] == CACA_MAGIC_FULLWIDTH) { cbegin[0] = cbegin[1]; - cbegin[1] = CUCUL_MAGIC_FULLWIDTH; + cbegin[1] = CACA_MAGIC_FULLWIDTH; cbegin++; } } @@ -239,7 +239,7 @@ int cucul_rotate_180(cucul_canvas_t *cv) * \param cv The canvas to rotate left. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_rotate_left(cucul_canvas_t *cv) +int caca_rotate_left(caca_canvas_t *cv) { uint32_t *newchars, *newattrs; int x, y, w2, h2; @@ -251,7 +251,7 @@ int cucul_rotate_left(cucul_canvas_t *cv) } /* Save the current frame shortcuts */ - _cucul_save_frame_info(cv); + _caca_save_frame_info(cv); w2 = (cv->width + 1) / 2; h2 = cv->height; @@ -330,7 +330,7 @@ int cucul_rotate_left(cucul_canvas_t *cv) cv->frames[cv->frame].attrs = newattrs; /* Reset the current frame shortcuts */ - _cucul_load_frame_info(cv); + _caca_load_frame_info(cv); return 0; } @@ -356,7 +356,7 @@ int cucul_rotate_left(cucul_canvas_t *cv) * \param cv The canvas to rotate right. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_rotate_right(cucul_canvas_t *cv) +int caca_rotate_right(caca_canvas_t *cv) { uint32_t *newchars, *newattrs; int x, y, w2, h2; @@ -368,7 +368,7 @@ int cucul_rotate_right(cucul_canvas_t *cv) } /* Save the current frame shortcuts */ - _cucul_save_frame_info(cv); + _caca_save_frame_info(cv); w2 = (cv->width + 1) / 2; h2 = cv->height; @@ -447,7 +447,7 @@ int cucul_rotate_right(cucul_canvas_t *cv) cv->frames[cv->frame].attrs = newattrs; /* Reset the current frame shortcuts */ - _cucul_load_frame_info(cv); + _caca_load_frame_info(cv); return 0; } @@ -471,7 +471,7 @@ int cucul_rotate_right(cucul_canvas_t *cv) * \param cv The canvas to rotate left. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_stretch_left(cucul_canvas_t *cv) +int caca_stretch_left(caca_canvas_t *cv) { uint32_t *newchars, *newattrs; int x, y; @@ -483,7 +483,7 @@ int cucul_stretch_left(cucul_canvas_t *cv) } /* Save the current frame shortcuts */ - _cucul_save_frame_info(cv); + _caca_save_frame_info(cv); newchars = malloc(cv->width * cv->height * sizeof(uint32_t)); if(!newchars) @@ -538,7 +538,7 @@ int cucul_stretch_left(cucul_canvas_t *cv) cv->frames[cv->frame].attrs = newattrs; /* Reset the current frame shortcuts */ - _cucul_load_frame_info(cv); + _caca_load_frame_info(cv); return 0; } @@ -562,7 +562,7 @@ int cucul_stretch_left(cucul_canvas_t *cv) * \param cv The canvas to rotate right. * \return 0 in case of success, -1 if an error occurred. */ -int cucul_stretch_right(cucul_canvas_t *cv) +int caca_stretch_right(caca_canvas_t *cv) { uint32_t *newchars, *newattrs; int x, y; @@ -574,7 +574,7 @@ int cucul_stretch_right(cucul_canvas_t *cv) } /* Save the current frame shortcuts */ - _cucul_save_frame_info(cv); + _caca_save_frame_info(cv); newchars = malloc(cv->width * cv->height * sizeof(uint32_t)); if(!newchars) @@ -629,7 +629,7 @@ int cucul_stretch_right(cucul_canvas_t *cv) cv->frames[cv->frame].attrs = newattrs; /* Reset the current frame shortcuts */ - _cucul_load_frame_info(cv); + _caca_load_frame_info(cv); return 0; } @@ -999,8 +999,8 @@ static uint32_t rightchar(uint32_t ch) static uint32_t const leftright2x2[] = { /* ASCII / Unicode */ - '-', '-', 0x4e28, CUCUL_MAGIC_FULLWIDTH, /* -- 丨 */ - '|', '|', 0x2f06, CUCUL_MAGIC_FULLWIDTH, /* || ⼆ */ + '-', '-', 0x4e28, CACA_MAGIC_FULLWIDTH, /* -- 丨 */ + '|', '|', 0x2f06, CACA_MAGIC_FULLWIDTH, /* || ⼆ */ /* Unicode */ 0x2584, 0x2580, 0x2580, 0x2584, /* ▄▀ ▀▄ */ 0, 0, 0, 0 @@ -1030,22 +1030,22 @@ static uint32_t const leftright2x4[] = '.', '_', '.', 0x2575, 0x203e, '\'', 0x2577, '\'', /* ._ .╵ ‾' ╷' */ '(', '_', 0x203f, '|', 0x203e, ')', '|', 0x2040, /* (_ ‿| ‾) |⁀ */ '(', 0x203e, '|', 0x203f, '_', ')', 0x2040, '|', /* (‾ |‿ _) ⁀| */ - '\\', '/', 0xff1e, CUCUL_MAGIC_FULLWIDTH, - '/', '\\', 0xff1c, CUCUL_MAGIC_FULLWIDTH, /* \/ > /\ < */ - ')', ' ', 0xfe35, CUCUL_MAGIC_FULLWIDTH, - ' ', '(', 0xfe36, CUCUL_MAGIC_FULLWIDTH, /* ) ︵ ( ︶ */ - '}', ' ', 0xfe37, CUCUL_MAGIC_FULLWIDTH, - ' ', '{', 0xfe38, CUCUL_MAGIC_FULLWIDTH, /* } ︷ { ︸ */ + '\\', '/', 0xff1e, CACA_MAGIC_FULLWIDTH, + '/', '\\', 0xff1c, CACA_MAGIC_FULLWIDTH, /* \/ > /\ < */ + ')', ' ', 0xfe35, CACA_MAGIC_FULLWIDTH, + ' ', '(', 0xfe36, CACA_MAGIC_FULLWIDTH, /* ) ︵ ( ︶ */ + '}', ' ', 0xfe37, CACA_MAGIC_FULLWIDTH, + ' ', '{', 0xfe38, CACA_MAGIC_FULLWIDTH, /* } ︷ { ︸ */ /* Not perfect, but better than nothing */ '(', ' ', 0x02ce, ',', ' ', ')', 0x00b4, '`', /* ( ˎ, ) ´` */ ' ', 'v', '>', ' ', 0x028c, ' ', ' ', '<', /* v > ʌ < */ ' ', 'V', '>', ' ', 0x039b, ' ', ' ', '<', /* V > Λ < */ 'v', ' ', '>', ' ', ' ', 0x028c, ' ', '<', /* v > ʌ < */ 'V', ' ', '>', ' ', ' ', 0x039b, ' ', '<', /* V > Λ < */ - '\\', '|', 0xff1e, CUCUL_MAGIC_FULLWIDTH, - '|', '\\', 0xff1c, CUCUL_MAGIC_FULLWIDTH, /* \| > |\ < */ - '|', '/', 0xff1e, CUCUL_MAGIC_FULLWIDTH, - '/', '|', 0xff1c, CUCUL_MAGIC_FULLWIDTH, /* |/ > /| < */ + '\\', '|', 0xff1e, CACA_MAGIC_FULLWIDTH, + '|', '\\', 0xff1c, CACA_MAGIC_FULLWIDTH, /* \| > |\ < */ + '|', '/', 0xff1e, CACA_MAGIC_FULLWIDTH, + '/', '|', 0xff1c, CACA_MAGIC_FULLWIDTH, /* |/ > /| < */ /* Unicode */ 0x2584, ' ', ' ', 0x2584, ' ', 0x2580, 0x2580, ' ', /* ▄ ▄ ▀ ▀ */ 0x2588, ' ', 0x2584, 0x2584, ' ', 0x2588, 0x2580, 0x2580, /* █ ▄▄ █ ▀▀ */ diff --git a/cucul/triangle.c b/caca/triangle.c similarity index 79% rename from cucul/triangle.c rename to caca/triangle.c index d08f7db..abb74aa 100644 --- a/cucul/triangle.c +++ b/caca/triangle.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Colour ASCII-Art library * Copyright (c) 2002-2006 Sam Hocevar * All Rights Reserved * @@ -22,14 +22,14 @@ # include #endif -#include "cucul.h" -#include "cucul_internals.h" +#include "caca.h" +#include "caca_internals.h" /** \brief Draw a triangle on the canvas using the given character. * * This function never fails. * - * \param cv The handle to the libcucul canvas. + * \param cv The handle to the libcaca canvas. * \param x1 X coordinate of the first point. * \param y1 Y coordinate of the first point. * \param x2 X coordinate of the second point. @@ -39,12 +39,12 @@ * \param ch UTF-32 character to be used to draw the triangle outline. * \return This function always returns 0. */ -int cucul_draw_triangle(cucul_canvas_t *cv, int x1, int y1, int x2, int y2, +int caca_draw_triangle(caca_canvas_t *cv, int x1, int y1, int x2, int y2, int x3, int y3, uint32_t ch) { - cucul_draw_line(cv, x1, y1, x2, y2, ch); - cucul_draw_line(cv, x2, y2, x3, y3, ch); - cucul_draw_line(cv, x3, y3, x1, y1, ch); + caca_draw_line(cv, x1, y1, x2, y2, ch); + caca_draw_line(cv, x2, y2, x3, y3, ch); + caca_draw_line(cv, x3, y3, x1, y1, ch); return 0; } @@ -53,7 +53,7 @@ int cucul_draw_triangle(cucul_canvas_t *cv, int x1, int y1, int x2, int y2, * * This function never fails. * - * \param cv The handle to the libcucul canvas. + * \param cv The handle to the libcaca canvas. * \param x1 X coordinate of the first point. * \param y1 Y coordinate of the first point. * \param x2 X coordinate of the second point. @@ -62,12 +62,12 @@ int cucul_draw_triangle(cucul_canvas_t *cv, int x1, int y1, int x2, int y2, * \param y3 Y coordinate of the third point. * \return This function always returns 0. */ -int cucul_draw_thin_triangle(cucul_canvas_t *cv, int x1, int y1, +int caca_draw_thin_triangle(caca_canvas_t *cv, int x1, int y1, int x2, int y2, int x3, int y3) { - cucul_draw_thin_line(cv, x1, y1, x2, y2); - cucul_draw_thin_line(cv, x2, y2, x3, y3); - cucul_draw_thin_line(cv, x3, y3, x1, y1); + caca_draw_thin_line(cv, x1, y1, x2, y2); + caca_draw_thin_line(cv, x2, y2, x3, y3); + caca_draw_thin_line(cv, x3, y3, x1, y1); return 0; } @@ -76,7 +76,7 @@ int cucul_draw_thin_triangle(cucul_canvas_t *cv, int x1, int y1, * * This function never fails. * - * \param cv The handle to the libcucul canvas. + * \param cv The handle to the libcaca canvas. * \param x1 X coordinate of the first point. * \param y1 Y coordinate of the first point. * \param x2 X coordinate of the second point. @@ -86,7 +86,7 @@ int cucul_draw_thin_triangle(cucul_canvas_t *cv, int x1, int y1, * \param ch UTF-32 character to be used to fill the triangle. * \return This function always returns 0. */ -int cucul_fill_triangle(cucul_canvas_t *cv, int x1, int y1, int x2, int y2, +int caca_fill_triangle(caca_canvas_t *cv, int x1, int y1, int x2, int y2, int x3, int y3, uint32_t ch) { int x, y, xmin, xmax, ymin, ymax; @@ -94,10 +94,10 @@ int cucul_fill_triangle(cucul_canvas_t *cv, int x1, int y1, int x2, int y2, /* Bubble-sort y1 <= y2 <= y3 */ if(y1 > y2) - return cucul_fill_triangle(cv, x2, y2, x1, y1, x3, y3, ch); + return caca_fill_triangle(cv, x2, y2, x1, y1, x3, y3, ch); if(y2 > y3) - return cucul_fill_triangle(cv, x1, y1, x3, y3, x2, y2, ch); + return caca_fill_triangle(cv, x1, y1, x3, y3, x2, y2, ch); /* Compute slopes and promote precision */ sl21 = (y2 == y1) ? 0 : (x2 - x1) * 0x10000 / (y2 - y1); @@ -146,7 +146,7 @@ int cucul_fill_triangle(cucul_canvas_t *cv, int x1, int y1, int x2, int y2, xmax = xx2 + 1 < cv->width ? xx2 + 1 : cv->width; for(x = xmin; x < xmax; x++) - cucul_put_char(cv, x, y, ch); + caca_put_char(cv, x, y, ch); xa += y < y2 ? sl21 : sl32; xb += sl31; diff --git a/configure.ac b/configure.ac index 2e1830c..eb0f97f 100644 --- a/configure.ac +++ b/configure.ac @@ -331,20 +331,20 @@ AC_SUBST(X11_LIBS) AC_SUBST(GL_CFLAGS) AC_SUBST(GL_LIBS) -# How to get the C99 types. See cucul/cucul_types.h.in for details about -# the CUCUL_TYPES variable +# How to get the C99 types. See caca/caca_types.h.in for details about +# the CACA_TYPES variable if test "${ac_cv_my_have_vga}" = "yes"; then - CUCUL_TYPES=0 + CACA_TYPES=0 else AC_CHECK_HEADERS(stdint.h, - [CUCUL_TYPES=1], + [CACA_TYPES=1], [AC_CHECK_HEADERS(inttypes.h, - [CUCUL_TYPES=2], + [CACA_TYPES=2], [AC_CHECK_HEADERS(windows.h, - [CUCUL_TYPES=3], - [CUCUL_TYPES=0])])]) + [CACA_TYPES=3], + [CACA_TYPES=0])])]) fi -AC_SUBST(CUCUL_TYPES) +AC_SUBST(CACA_TYPES) # Optimizations CFLAGS="${CFLAGS} -g -O2 -fno-strength-reduce -fomit-frame-pointer" @@ -473,7 +473,6 @@ AM_CONDITIONAL(USE_ZZUF, test "${ZZUF}" != "no") AC_CONFIG_FILES([ Makefile kernel/Makefile - cucul/Makefile caca/Makefile src/Makefile examples/Makefile @@ -487,12 +486,9 @@ AC_CONFIG_FILES([ msvc/Makefile ]) AC_CONFIG_FILES([ - cucul/cucul_types.h - cucul/cucul.pc + caca/caca_types.h caca/caca.pc - csharp/cucul-sharp.dll.config csharp/caca-sharp.dll.config - cxx/cucul++.pc cxx/caca++.pc doc/doxygen.cfg ]) diff --git a/csharp/Makefile.am b/csharp/Makefile.am index 565ed60..f97ed6c 100644 --- a/csharp/Makefile.am +++ b/csharp/Makefile.am @@ -1,32 +1,24 @@ # $Id: $ -cuculdir = $(libdir)/cucul-sharp cacadir = $(libdir)/caca-sharp -cucul_sources = $(srcdir)/AssemblyInfo.cs $(srcdir)/Cucul.cs -caca_sources = $(srcdir)/AssemblyInfo.cs $(srcdir)/Caca.cs +caca_sources = $(srcdir)/AssemblyInfo.cs $(srcdir)/Cucul.cs $(srcdir)/Caca.cs if USE_CSHARP -cucul_DATA = cucul-sharp.dll cucul-sharp.dll.config caca_DATA = caca-sharp.dll caca-sharp.dll.config noinst_DATA = test.exe endif -EXTRA_DIST = $(cucul_sources) cucul-sharp.dll.config.in \ - $(caca_sources) caca-sharp.dll.config.in \ +EXTRA_DIST = $(caca_sources) caca-sharp.dll.config.in \ $(srcdir)/test.cs -cucul-sharp.dll: $(cucul_sources) - gmcs -unsafe $(cucul_sources) -out:$@ -target:library \ +caca-sharp.dll: $(caca_sources) + gmcs -unsafe $(caca_sources) -out:$@ -target:library \ -r:System.Drawing.dll -caca-sharp.dll: $(caca_sources) cucul-sharp.dll - gmcs -unsafe $(caca_sources) -out:$@ -target:library -lib:./ \ - -r:System.Drawing.dll -r:./cucul-sharp.dll - -test.exe: $(srcdir)/test.cs caca-sharp.dll cucul-sharp.dll +test.exe: $(srcdir)/test.cs caca-sharp.dll gmcs $(srcdir)/test.cs -out:$@ -lib:./ \ - -r:System.Drawing.dll -r:./cucul-sharp.dll -r:./caca-sharp.dll + -r:System.Drawing.dll -r:./caca-sharp.dll clean-local: rm -f *.exe *.dll diff --git a/cucul/.gitignore b/cucul/.gitignore deleted file mode 100644 index 58daffa..0000000 --- a/cucul/.gitignore +++ /dev/null @@ -1 +0,0 @@ -cucul_types.h diff --git a/cucul/Makefile.am b/cucul/Makefile.am deleted file mode 100644 index 14e01e4..0000000 --- a/cucul/Makefile.am +++ /dev/null @@ -1,42 +0,0 @@ -# $Id$ - -EXTRA_DIST = cucul_types.h.in cucul.pc.in mono9.data monobold12.data -DISTCLEANFILES = cucul_types.h cucul.pc - -pkgconfig_DATA = cucul.pc -pkgconfigdir = $(libdir)/pkgconfig - -include_HEADERS = cucul.h cucul_types.h - -lib_LTLIBRARIES = libcucul.la - -libcucul_la_SOURCES = \ - cucul.c \ - cucul.h \ - cucul_types.h \ - cucul_internals.h \ - legacy.c \ - canvas.c \ - transform.c \ - charset.c \ - attr.c \ - line.c \ - box.c \ - conic.c \ - triangle.c \ - frame.c \ - dither.c \ - font.c \ - import.c \ - export.c \ - file.c \ - figfont.c \ - $(NULL) -libcucul_la_DEPENDENCIES = \ - mono9.data \ - monobold12.data \ - $(NULL) -AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/cucul -I../cucul -libcucul_la_LDFLAGS = -no-undefined -version-number @LT_VERSION@ -libcucul_la_LIBADD = $(ZLIB_LIBS) - diff --git a/cucul/cucul.h b/cucul/cucul.h deleted file mode 100644 index 0c62e4a..0000000 --- a/cucul/cucul.h +++ /dev/null @@ -1,383 +0,0 @@ -/* - * libcucul Canvas for ultrafast compositing of Unicode letters - * Copyright (c) 2002-2006 Sam Hocevar - * All Rights Reserved - * - * $Id$ - * - * This library is free software. It comes without any warranty, to - * the extent permitted by applicable law. You can redistribute it - * and/or modify it under the terms of the Do What The Fuck You Want - * To Public License, Version 2, as published by Sam Hocevar. See - * http://sam.zoy.org/wtfpl/COPYING for more details. - */ - -/** \file cucul.h - * \version \$Id$ - * \author Sam Hocevar - * \brief The \e libcucul public header. - * - * This header contains the public types and functions that applications - * using \e libcucul may use. - */ - -#ifndef __CUCUL_H__ -#define __CUCUL_H__ - -#include - -#undef __extern -#if defined(_DOXYGEN_SKIP_ME) -#elif defined(_WIN32) && defined(__LIBCUCUL__) -# define __extern extern __declspec(dllexport) -#else -# define __extern extern -#endif - -/** libcucul API version */ -#define CUCUL_API_VERSION_1 - -#ifdef __cplusplus -extern "C" -{ -#endif - -/** \e libcucul canvas */ -typedef struct cucul_canvas cucul_canvas_t; -/** dither structure */ -typedef struct cucul_dither cucul_dither_t; -/** font structure */ -typedef struct cucul_font cucul_font_t; -/** file handle structure */ -typedef struct cucul_file cucul_file_t; - -/** \defgroup cucul_attr libcucul attribute definitions - * - * Colours and styles that can be used with cucul_set_attr(). - * - * @{ */ -#define CUCUL_BLACK 0x00 /**< The colour index for black. */ -#define CUCUL_BLUE 0x01 /**< The colour index for blue. */ -#define CUCUL_GREEN 0x02 /**< The colour index for green. */ -#define CUCUL_CYAN 0x03 /**< The colour index for cyan. */ -#define CUCUL_RED 0x04 /**< The colour index for red. */ -#define CUCUL_MAGENTA 0x05 /**< The colour index for magenta. */ -#define CUCUL_BROWN 0x06 /**< The colour index for brown. */ -#define CUCUL_LIGHTGRAY 0x07 /**< The colour index for light gray. */ -#define CUCUL_DARKGRAY 0x08 /**< The colour index for dark gray. */ -#define CUCUL_LIGHTBLUE 0x09 /**< The colour index for blue. */ -#define CUCUL_LIGHTGREEN 0x0a /**< The colour index for light green. */ -#define CUCUL_LIGHTCYAN 0x0b /**< The colour index for light cyan. */ -#define CUCUL_LIGHTRED 0x0c /**< The colour index for light red. */ -#define CUCUL_LIGHTMAGENTA 0x0d /**< The colour index for light magenta. */ -#define CUCUL_YELLOW 0x0e /**< The colour index for yellow. */ -#define CUCUL_WHITE 0x0f /**< The colour index for white. */ -#define CUCUL_DEFAULT 0x10 /**< The output driver's default colour. */ -#define CUCUL_TRANSPARENT 0x20 /**< The transparent colour. */ - -#define CUCUL_BOLD 0x01 /**< The style mask for bold. */ -#define CUCUL_ITALICS 0x02 /**< The style mask for italics. */ -#define CUCUL_UNDERLINE 0x04 /**< The style mask for underline. */ -#define CUCUL_BLINK 0x08 /**< The style mask for blink. */ -/* @} */ - -/** \defgroup libcucul libcucul basic functions - * - * These functions provide the basic \e libcaca routines for library - * initialisation, system information retrieval and configuration. - * - * @{ */ -__extern cucul_canvas_t * cucul_create_canvas(int, int); -__extern int cucul_manage_canvas(cucul_canvas_t *, int (*)(void *), void *); -__extern int cucul_unmanage_canvas(cucul_canvas_t *, int (*)(void *), void *); -__extern int cucul_set_canvas_size(cucul_canvas_t *, int, int); -__extern int cucul_get_canvas_width(cucul_canvas_t const *); -__extern int cucul_get_canvas_height(cucul_canvas_t const *); -__extern uint8_t const * cucul_get_canvas_chars(cucul_canvas_t const *); -__extern uint8_t const * cucul_get_canvas_attrs(cucul_canvas_t const *); -__extern int cucul_free_canvas(cucul_canvas_t *); -__extern int cucul_rand(int, int); -__extern char const * cucul_get_version(void); -/* @} */ - -/** \defgroup cucul_canvas libcucul canvas drawing - * - * These functions provide low-level character printing routines and - * higher level graphics functions. - * - * @{ */ -#define CUCUL_MAGIC_FULLWIDTH 0x000ffffe /**< Used to indicate that the previous character was a fullwidth glyph. */ -__extern int cucul_gotoxy(cucul_canvas_t *, int, int); -__extern int cucul_get_cursor_x(cucul_canvas_t const *); -__extern int cucul_get_cursor_y(cucul_canvas_t const *); -__extern int cucul_put_char(cucul_canvas_t *, int, int, uint32_t); -__extern uint32_t cucul_get_char(cucul_canvas_t const *, int, int); -__extern int cucul_put_str(cucul_canvas_t *, int, int, char const *); -__extern uint32_t cucul_get_attr(cucul_canvas_t const *, int, int); -__extern int cucul_set_attr(cucul_canvas_t *, uint32_t); -__extern int cucul_put_attr(cucul_canvas_t *, int, int, uint32_t); -__extern int cucul_set_color_ansi(cucul_canvas_t *, uint8_t, uint8_t); -__extern int cucul_set_color_argb(cucul_canvas_t *, uint16_t, uint16_t); -__extern int cucul_printf(cucul_canvas_t *, int, int, char const *, ...); -__extern int cucul_clear_canvas(cucul_canvas_t *); -__extern int cucul_set_canvas_handle(cucul_canvas_t *, int, int); -__extern int cucul_get_canvas_handle_x(cucul_canvas_t const *); -__extern int cucul_get_canvas_handle_y(cucul_canvas_t const *); -__extern int cucul_blit(cucul_canvas_t *, int, int, cucul_canvas_t const *, - cucul_canvas_t const *); -__extern int cucul_set_canvas_boundaries(cucul_canvas_t *, int, int, int, int); -/* @} */ - -/** \defgroup cucul_transform libcucul canvas transformation - * - * These functions perform horizontal and vertical canvas flipping. - * - * @{ */ -__extern int cucul_invert(cucul_canvas_t *); -__extern int cucul_flip(cucul_canvas_t *); -__extern int cucul_flop(cucul_canvas_t *); -__extern int cucul_rotate_180(cucul_canvas_t *); -__extern int cucul_rotate_left(cucul_canvas_t *); -__extern int cucul_rotate_right(cucul_canvas_t *); -__extern int cucul_stretch_left(cucul_canvas_t *); -__extern int cucul_stretch_right(cucul_canvas_t *); -/* @} */ - -/** \defgroup cucul_attributes libcucul attribute conversions - * - * These functions perform conversions between attribute values. - * - * @{ */ -__extern uint8_t cucul_attr_to_ansi(uint32_t); -__extern uint8_t cucul_attr_to_ansi_fg(uint32_t); -__extern uint8_t cucul_attr_to_ansi_bg(uint32_t); -__extern uint16_t cucul_attr_to_rgb12_fg(uint32_t); -__extern uint16_t cucul_attr_to_rgb12_bg(uint32_t); -__extern void cucul_attr_to_argb64(uint32_t, uint8_t[8]); -/* @} */ - -/** \defgroup cucul_charset libcucul character set conversions - * - * These functions perform conversions between usual character sets. - * - * @{ */ -__extern uint32_t cucul_utf8_to_utf32(char const *, size_t *); -__extern size_t cucul_utf32_to_utf8(char *, uint32_t); -__extern uint8_t cucul_utf32_to_cp437(uint32_t); -__extern uint32_t cucul_cp437_to_utf32(uint8_t); -__extern char cucul_utf32_to_ascii(uint32_t); -__extern int cucul_utf32_is_fullwidth(uint32_t); -/* @} */ - -/** \defgroup cucul_primitives libcucul primitives drawing - * - * These functions provide routines for primitive drawing, such as lines, - * boxes, triangles and ellipses. - * - * @{ */ -__extern int cucul_draw_line(cucul_canvas_t *, int, int, int, int, uint32_t); -__extern int cucul_draw_polyline(cucul_canvas_t *, int const x[], - int const y[], int, uint32_t); -__extern int cucul_draw_thin_line(cucul_canvas_t *, int, int, int, int); -__extern int cucul_draw_thin_polyline(cucul_canvas_t *, int const x[], - int const y[], int); - -__extern int cucul_draw_circle(cucul_canvas_t *, int, int, int, uint32_t); -__extern int cucul_draw_ellipse(cucul_canvas_t *, int, int, int, int, uint32_t); -__extern int cucul_draw_thin_ellipse(cucul_canvas_t *, int, int, int, int); -__extern int cucul_fill_ellipse(cucul_canvas_t *, int, int, int, int, uint32_t); - -__extern int cucul_draw_box(cucul_canvas_t *, int, int, int, int, uint32_t); -__extern int cucul_draw_thin_box(cucul_canvas_t *, int, int, int, int); -__extern int cucul_draw_cp437_box(cucul_canvas_t *, int, int, int, int); -__extern int cucul_fill_box(cucul_canvas_t *, int, int, int, int, uint32_t); - -__extern int cucul_draw_triangle(cucul_canvas_t *, int, int, int, int, int, - int, uint32_t); -__extern int cucul_draw_thin_triangle(cucul_canvas_t *, int, int, int, int, - int, int); -__extern int cucul_fill_triangle(cucul_canvas_t *, int, int, int, int, int, - int, uint32_t); -/* @} */ - -/** \defgroup cucul_frame libcucul canvas frame handling - * - * These functions provide high level routines for canvas frame insertion, - * removal, copying etc. - * - * @{ */ -__extern int cucul_get_frame_count(cucul_canvas_t const *); -__extern int cucul_set_frame(cucul_canvas_t *, int); -__extern char const *cucul_get_frame_name(cucul_canvas_t const *); -__extern int cucul_set_frame_name(cucul_canvas_t *, char const *); -__extern int cucul_create_frame(cucul_canvas_t *, int); -__extern int cucul_free_frame(cucul_canvas_t *, int); -/* @} */ - -/** \defgroup cucul_dither libcucul bitmap dithering - * - * These functions provide high level routines for dither allocation and - * rendering. - * - * @{ */ -__extern cucul_dither_t *cucul_create_dither(int, int, int, int, - uint32_t, uint32_t, - uint32_t, uint32_t); -__extern int cucul_set_dither_palette(cucul_dither_t *, - uint32_t r[], uint32_t g[], - uint32_t b[], uint32_t a[]); -__extern int cucul_set_dither_brightness(cucul_dither_t *, float); -__extern float cucul_get_dither_brightness(cucul_dither_t const *); -__extern int cucul_set_dither_gamma(cucul_dither_t *, float); -__extern float cucul_get_dither_gamma(cucul_dither_t const *); -__extern int cucul_set_dither_contrast(cucul_dither_t *, float); -__extern float cucul_get_dither_contrast(cucul_dither_t const *); -__extern int cucul_set_dither_antialias(cucul_dither_t *, char const *); -__extern char const * const * cucul_get_dither_antialias_list(cucul_dither_t - const *); -__extern char const * cucul_get_dither_antialias(cucul_dither_t const *); -__extern int cucul_set_dither_color(cucul_dither_t *, char const *); -__extern char const * const * cucul_get_dither_color_list(cucul_dither_t - const *); -__extern char const * cucul_get_dither_color(cucul_dither_t const *); -__extern int cucul_set_dither_charset(cucul_dither_t *, char const *); -__extern char const * const * cucul_get_dither_charset_list(cucul_dither_t - const *); -__extern char const * cucul_get_dither_charset(cucul_dither_t const *); -__extern int cucul_set_dither_algorithm(cucul_dither_t *, char const *); -__extern char const * const * cucul_get_dither_algorithm_list(cucul_dither_t - const *); -__extern char const * cucul_get_dither_algorithm(cucul_dither_t const *); -__extern int cucul_dither_bitmap(cucul_canvas_t *, int, int, int, int, - cucul_dither_t const *, void *); -__extern int cucul_free_dither(cucul_dither_t *); -/* @} */ - -/** \defgroup cucul_font libcucul font handling - * - * These functions provide font handling routines and high quality - * canvas to bitmap rendering. - * - * @{ */ -__extern cucul_font_t *cucul_load_font(void const *, size_t); -__extern char const * const * cucul_get_font_list(void); -__extern int cucul_get_font_width(cucul_font_t const *); -__extern int cucul_get_font_height(cucul_font_t const *); -__extern uint32_t const *cucul_get_font_blocks(cucul_font_t const *); -__extern int cucul_render_canvas(cucul_canvas_t const *, cucul_font_t const *, - void *, int, int, int); -__extern int cucul_free_font(cucul_font_t *); -/* @} */ - -/** \defgroup cucul_figfont libcucul FIGfont handling - * - * These functions provide FIGlet and TOIlet font handling routines. - * - * @{ */ -__extern int cucul_canvas_set_figfont(cucul_canvas_t *, char const *); -__extern int cucul_put_figchar(cucul_canvas_t *, uint32_t); -__extern int cucul_flush_figlet(cucul_canvas_t *); -/* @} */ - -/** \defgroup cucul_file libcucul file IO - * - * These functions allow to read and write files in a platform-independent - * way. - * @{ */ -__extern cucul_file_t *cucul_file_open(char const *, const char *); -__extern int cucul_file_close(cucul_file_t *); -__extern uint64_t cucul_file_tell(cucul_file_t *); -__extern size_t cucul_file_read(cucul_file_t *, void *, size_t); -__extern size_t cucul_file_write(cucul_file_t *, const void *, size_t); -__extern char * cucul_file_gets(cucul_file_t *, char *, int); -__extern int cucul_file_eof(cucul_file_t *); -/* @} */ - -/** \defgroup cucul_importexport libcucul importers/exporters from/to various - * formats - * - * These functions import various file formats into a new canvas, or export - * the current canvas to various text formats. - * - * @{ */ -__extern ssize_t cucul_import_memory(cucul_canvas_t *, void const *, - size_t, char const *); -__extern ssize_t cucul_import_file(cucul_canvas_t *, char const *, - char const *); -__extern char const * const * cucul_get_import_list(void); -__extern void *cucul_export_memory(cucul_canvas_t const *, char const *, - size_t *); -__extern char const * const * cucul_get_export_list(void); -/* @} */ - -#if !defined(_DOXYGEN_SKIP_ME) - /* Legacy stuff from beta versions, will probably disappear in 1.0 */ -typedef struct cucul_buffer cucul_buffer_t; -# if defined __GNUC__ && __GNUC__ >= 3 -# define CUCUL_DEPRECATED __attribute__ ((__deprecated__)) -# else -# define CUCUL_DEPRECATED -# endif -__extern int cucul_putchar(cucul_canvas_t *, int, int, - unsigned long int) CUCUL_DEPRECATED; -__extern unsigned long int cucul_getchar(cucul_canvas_t *, - int, int) CUCUL_DEPRECATED; -__extern int cucul_putstr(cucul_canvas_t *, int, int, - char const *) CUCUL_DEPRECATED; -__extern int cucul_set_color(cucul_canvas_t *, unsigned char, - unsigned char) CUCUL_DEPRECATED; -__extern int cucul_set_truecolor(cucul_canvas_t *, unsigned int, - unsigned int) CUCUL_DEPRECATED; -__extern unsigned int cucul_get_canvas_frame_count(cucul_canvas_t *) - CUCUL_DEPRECATED; -__extern int cucul_set_canvas_frame(cucul_canvas_t *, - unsigned int) CUCUL_DEPRECATED; -__extern int cucul_create_canvas_frame(cucul_canvas_t *, - unsigned int) CUCUL_DEPRECATED; -__extern int cucul_free_canvas_frame(cucul_canvas_t *, - unsigned int) CUCUL_DEPRECATED; -__extern cucul_buffer_t *cucul_load_memory(void *, - unsigned long int) CUCUL_DEPRECATED; -__extern cucul_buffer_t *cucul_load_file(char const *) CUCUL_DEPRECATED; -__extern unsigned long int cucul_get_buffer_size(cucul_buffer_t *) - CUCUL_DEPRECATED; -__extern void * cucul_get_buffer_data(cucul_buffer_t *) CUCUL_DEPRECATED; -__extern int cucul_free_buffer(cucul_buffer_t *) CUCUL_DEPRECATED; -__extern cucul_buffer_t * cucul_export_canvas(cucul_canvas_t *, - char const *) CUCUL_DEPRECATED; -__extern cucul_canvas_t * cucul_import_canvas(cucul_buffer_t *, - char const *) CUCUL_DEPRECATED; -__extern int cucul_rotate(cucul_canvas_t *) CUCUL_DEPRECATED; -__extern int cucul_set_dither_invert(cucul_dither_t *, int) CUCUL_DEPRECATED; -__extern int cucul_set_dither_mode(cucul_dither_t *, - char const *) CUCUL_DEPRECATED; -__extern char const * const * cucul_get_dither_mode_list(cucul_dither_t - const *) - CUCUL_DEPRECATED; -# define CUCUL_COLOR_BLACK CUCUL_BLACK -# define CUCUL_COLOR_BLUE CUCUL_BLUE -# define CUCUL_COLOR_GREEN CUCUL_GREEN -# define CUCUL_COLOR_CYAN CUCUL_CYAN -# define CUCUL_COLOR_RED CUCUL_RED -# define CUCUL_COLOR_MAGENTA CUCUL_MAGENTA -# define CUCUL_COLOR_BROWN CUCUL_BROWN -# define CUCUL_COLOR_LIGHTGRAY CUCUL_LIGHTGRAY -# define CUCUL_COLOR_DARKGRAY CUCUL_DARKGRAY -# define CUCUL_COLOR_LIGHTBLUE CUCUL_LIGHTBLUE -# define CUCUL_COLOR_LIGHTGREEN CUCUL_LIGHTGREEN -# define CUCUL_COLOR_LIGHTCYAN CUCUL_LIGHTCYAN -# define CUCUL_COLOR_LIGHTRED CUCUL_LIGHTRED -# define CUCUL_COLOR_LIGHTMAGENTA CUCUL_LIGHTMAGENTA -# define CUCUL_COLOR_YELLOW CUCUL_YELLOW -# define CUCUL_COLOR_WHITE CUCUL_YELLOW -# define CUCUL_COLOR_DEFAULT CUCUL_DEFAULT -# define CUCUL_COLOR_TRANSPARENT CUCUL_TRANSPARENT -#endif - -#ifdef __cplusplus -} -#endif - -#undef __extern - -#endif /* __CUCUL_H__ */ diff --git a/cucul/cucul.pc.in b/cucul/cucul.pc.in deleted file mode 100644 index 5799477..0000000 --- a/cucul/cucul.pc.in +++ /dev/null @@ -1,12 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: cucul -Description: Canvas for ultrafast compositing of Unicode letters -Version: @VERSION@ -Requires: -Conflicts: -Libs: -L${libdir} -lcucul -Cflags: -I${includedir} diff --git a/cucul/cucul_internals.h b/cucul/cucul_internals.h deleted file mode 100644 index da7a0c2..0000000 --- a/cucul/cucul_internals.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * libcucul Canvas for ultrafast compositing of Unicode letters - * Copyright (c) 2002-2006 Sam Hocevar - * All Rights Reserved - * - * $Id$ - * - * This library is free software. It comes without any warranty, to - * the extent permitted by applicable law. You can redistribute it - * and/or modify it under the terms of the Do What The Fuck You Want - * To Public License, Version 2, as published by Sam Hocevar. See - * http://sam.zoy.org/wtfpl/COPYING for more details. - */ - -#ifndef __CUCUL_INTERNALS_H__ -#define __CUCUL_INTERNALS_H__ - -#include "stubs.h" - -typedef struct cucul_figfont cucul_figfont_t; - -struct cucul_frame -{ - /* Frame size */ - int width, height; - - /* Cell information */ - uint32_t *chars; - uint32_t *attrs; - - /* Painting context */ - int x, y; - int handlex, handley; - uint32_t curattr; - - /* Frame name */ - char *name; -}; - -struct cucul_canvas -{ - /* XXX: look at cucul_set_canvas_boundaries() before adding anything - * to this structure. The function is quite hacky. */ - - /* Frame information */ - int frame, framecount; - struct cucul_frame *frames; - - /* Canvas management */ - int refcount; - int autoinc; - int (*resize_callback)(void *); - void *resize_data; - - /* Shortcut to the active frame information */ - int width, height; - uint32_t *chars; - uint32_t *attrs; - uint32_t curattr; - - /* FIGfont management */ - cucul_figfont_t *ff; -}; - -struct cucul_buffer -{ - size_t size; - char *data; - int user_data; -}; - -/* Colour functions */ -extern uint32_t _cucul_attr_to_rgb24fg(uint32_t); -extern uint32_t _cucul_attr_to_rgb24bg(uint32_t); - -/* Frames functions */ -extern void _cucul_save_frame_info(cucul_canvas_t *); -extern void _cucul_load_frame_info(cucul_canvas_t *); - -#endif /* __CUCUL_INTERNALS_H__ */ diff --git a/cxx/Makefile.am b/cxx/Makefile.am index 386a4fd..f11c75e 100644 --- a/cxx/Makefile.am +++ b/cxx/Makefile.am @@ -1,28 +1,23 @@ # $Id: Makefile.am 552 2006-04-13 16:10:16Z jylam $ -AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/cucul -I../cucul \ - -I$(top_srcdir)/caca +AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/caca -I../caca if USE_CXX -pkgconfig_DATA = cucul++.pc caca++.pc +pkgconfig_DATA = caca++.pc pkgconfigdir = $(libdir)/pkgconfig -include_HEADERS = cucul++.h caca++.h -lib_LTLIBRARIES = libcucul++.la libcaca++.la +include_HEADERS = caca++.h +lib_LTLIBRARIES = libcaca++.la endif -libcucul___la_SOURCES = cucul++.cpp cucul++.h -libcucul___la_LDFLAGS = -no-undefined -version-number @LT_VERSION@ -libcucul___la_LIBADD = ../cucul/libcucul.la - -libcaca___la_SOURCES = caca++.cpp caca++.h +libcaca___la_SOURCES = caca++.cpp cucul++.cpp caca++.h libcaca___la_LDFLAGS = -no-undefined -version-number @LT_VERSION@ -libcaca___la_LIBADD = libcucul++.la ../caca/libcaca.la +libcaca___la_LIBADD = ../caca/libcaca.la if USE_CXX noinst_PROGRAMS = cxxtest endif cxxtest_SOURCES = cxxtest.cpp -cxxtest_LDADD = libcaca++.la libcucul++.la ../caca/libcaca.la ../cucul/libcucul.la +cxxtest_LDADD = libcaca++.la ../caca/libcaca.la diff --git a/cxx/caca++.cpp b/cxx/caca++.cpp index 3d937a5..127a13d 100644 --- a/cxx/caca++.cpp +++ b/cxx/caca++.cpp @@ -24,9 +24,9 @@ #include "caca++.h" -Caca::Caca(Cucul *cv) +Caca::Caca(Canvas *cv) { - dp = caca_create_display(cv->get_cucul_canvas_t()); + dp = caca_create_display(cv->get_caca_canvas_t()); if(!dp) throw -1; } @@ -36,9 +36,9 @@ Caca::~Caca() caca_free_display(dp); } -void Caca::Attach(Cucul *cv) +void Caca::Attach(Canvas *cv) { - dp = caca_create_display(cv->get_cucul_canvas_t()); + dp = caca_create_display(cv->get_caca_canvas_t()); if(!dp) throw -1; } diff --git a/cxx/caca++.h b/cxx/caca++.h index 383e2f2..49d32af 100644 --- a/cxx/caca++.h +++ b/cxx/caca++.h @@ -23,9 +23,8 @@ #ifndef _CACA_PP_H #define _CACA_PP_H -#include #include - +#include #include #undef __class @@ -61,10 +60,10 @@ __class Caca { public: Caca(); - Caca(Cucul *cv); + Caca(Canvas *cv); ~Caca(); - void Attach(Cucul *cv); + void Attach(Canvas *cv); void Detach(); void setDisplayTime(unsigned int); diff --git a/cxx/cucul++.cpp b/cxx/cucul++.cpp index b5f4bff..30a7218 100644 --- a/cxx/cucul++.cpp +++ b/cxx/cucul++.cpp @@ -1,5 +1,5 @@ /* - * libcucul++ C++ bindings for libcucul + * libcaca++ C++ bindings for libcaca * Copyright (c) 2006 Jean-Yves Lamoureux * All Rights Reserved * @@ -13,7 +13,7 @@ */ /* - * This file contains the main functions used by \e libcucul++ applications + * This file contains the main functions used by \e libcaca++ applications * to initialise a drawing context. */ @@ -22,92 +22,92 @@ #include // BUFSIZ #include // va_* -#include "cucul++.h" +#include "caca++.h" uint32_t Charset::utf8ToUtf32(char const *s, size_t *read) { - return cucul_utf8_to_utf32(s, read); + return caca_utf8_to_utf32(s, read); } size_t Charset::utf32ToUtf8(char *buf, uint32_t ch) { - return cucul_utf32_to_utf8(buf, ch); + return caca_utf32_to_utf8(buf, ch); } uint8_t Charset::utf32ToCp437(uint32_t ch) { - return cucul_utf32_to_cp437(ch); + return caca_utf32_to_cp437(ch); } uint32_t Charset::cp437ToUtf32(uint8_t ch) { - return cucul_cp437_to_utf32(ch); + return caca_cp437_to_utf32(ch); } -Cucul::Cucul() +Canvas::Canvas() { - cv = cucul_create_canvas(0, 0); + cv = caca_create_canvas(0, 0); if(!cv) throw -1; } -Cucul::Cucul(int width, int height) +Canvas::Canvas(int width, int height) { - cv = cucul_create_canvas(width, height); + cv = caca_create_canvas(width, height); if(!cv) throw -1; } -Cucul::~Cucul() +Canvas::~Canvas() { if(cv) - cucul_free_canvas(cv); + caca_free_canvas(cv); } -cucul_canvas_t *Cucul::get_cucul_canvas_t() +caca_canvas_t *Canvas::get_caca_canvas_t() { return cv; } -void Cucul::setSize(unsigned int width, unsigned int height) +void Canvas::setSize(unsigned int width, unsigned int height) { - cucul_set_canvas_size(cv, width, height); + caca_set_canvas_size(cv, width, height); } -unsigned int Cucul::getWidth(void) +unsigned int Canvas::getWidth(void) { - return cucul_get_canvas_width(cv); + return caca_get_canvas_width(cv); } -unsigned int Cucul::getHeight(void) +unsigned int Canvas::getHeight(void) { - return cucul_get_canvas_height(cv); + return caca_get_canvas_height(cv); } -int Cucul::setColorANSI(uint8_t f, uint8_t b) +int Canvas::setColorANSI(uint8_t f, uint8_t b) { - return cucul_set_color_ansi(cv, f, b); + return caca_set_color_ansi(cv, f, b); } -int Cucul::setColorARGB(unsigned int f, unsigned int b) +int Canvas::setColorARGB(unsigned int f, unsigned int b) { - return cucul_set_color_argb(cv, f, b); + return caca_set_color_argb(cv, f, b); } -void Cucul::putChar(int x, int y, uint32_t ch) +void Canvas::putChar(int x, int y, uint32_t ch) { - cucul_put_char(cv, x, y, ch); + caca_put_char(cv, x, y, ch); } -uint32_t Cucul::getChar(int x, int y) +uint32_t Canvas::getChar(int x, int y) { - return cucul_get_char(cv, x, y); + return caca_get_char(cv, x, y); } -void Cucul::putStr(int x, int y, char *str) +void Canvas::putStr(int x, int y, char *str) { - cucul_put_str(cv, x, y, str); + caca_put_str(cv, x, y, str); } -void Cucul::Printf(int x, int y, char const * format, ...) +void Canvas::Printf(int x, int y, char const * format, ...) { char tmp[BUFSIZ]; char *buf = tmp; @@ -125,297 +125,297 @@ void Cucul::Printf(int x, int y, char const * format, ...) putStr(x, y, buf); } -void Cucul::Clear(void) +void Canvas::Clear(void) { - cucul_clear_canvas(cv); + caca_clear_canvas(cv); } -void Cucul::Blit(int x, int y, Cucul* c1, Cucul* c2) +void Canvas::Blit(int x, int y, Canvas* c1, Canvas* c2) { - cucul_blit(cv, x, y, c1->get_cucul_canvas_t(), - c2 ? c2->get_cucul_canvas_t() : NULL); + caca_blit(cv, x, y, c1->get_caca_canvas_t(), + c2 ? c2->get_caca_canvas_t() : NULL); } -void Cucul::Invert() +void Canvas::Invert() { - cucul_invert(cv); + caca_invert(cv); } -void Cucul::Flip() +void Canvas::Flip() { - cucul_flip(cv); + caca_flip(cv); } -void Cucul::Flop() +void Canvas::Flop() { - cucul_flop(cv); + caca_flop(cv); } -void Cucul::Rotate180() +void Canvas::Rotate180() { - cucul_rotate_180(cv); + caca_rotate_180(cv); } -void Cucul::RotateLeft() +void Canvas::RotateLeft() { - cucul_rotate_left(cv); + caca_rotate_left(cv); } -void Cucul::RotateRight() +void Canvas::RotateRight() { - cucul_rotate_right(cv); + caca_rotate_right(cv); } -void Cucul::drawLine(int x1, int y1, int x2, int y2, uint32_t ch) +void Canvas::drawLine(int x1, int y1, int x2, int y2, uint32_t ch) { - cucul_draw_line(cv, x1, y1, x2, y2, ch); + caca_draw_line(cv, x1, y1, x2, y2, ch); } -void Cucul::drawPolyline(int const x[], int const y[], int f, uint32_t ch) +void Canvas::drawPolyline(int const x[], int const y[], int f, uint32_t ch) { - cucul_draw_polyline(cv, x, y, f, ch); + caca_draw_polyline(cv, x, y, f, ch); } -void Cucul::drawThinLine(int x1, int y1, int x2, int y2) +void Canvas::drawThinLine(int x1, int y1, int x2, int y2) { - cucul_draw_thin_line(cv, x1, y1, x2, y2); + caca_draw_thin_line(cv, x1, y1, x2, y2); } -void Cucul::drawThinPolyline(int const x[], int const y[], int f) +void Canvas::drawThinPolyline(int const x[], int const y[], int f) { - cucul_draw_thin_polyline(cv, x, y, f); + caca_draw_thin_polyline(cv, x, y, f); } -void Cucul::drawCircle(int x, int y, int d, uint32_t ch) +void Canvas::drawCircle(int x, int y, int d, uint32_t ch) { - cucul_draw_circle(cv, x, y, d, ch); + caca_draw_circle(cv, x, y, d, ch); } -void Cucul::drawEllipse(int x, int y, int d1, int d2, uint32_t ch) +void Canvas::drawEllipse(int x, int y, int d1, int d2, uint32_t ch) { - cucul_draw_ellipse(cv, x, y, d1, d2, ch); + caca_draw_ellipse(cv, x, y, d1, d2, ch); } -void Cucul::drawThinEllipse(int x, int y, int d1, int d2) +void Canvas::drawThinEllipse(int x, int y, int d1, int d2) { - cucul_draw_thin_ellipse(cv, x, y, d1, d2); + caca_draw_thin_ellipse(cv, x, y, d1, d2); } -void Cucul::fillEllipse(int x, int y, int d1, int d2, uint32_t ch) +void Canvas::fillEllipse(int x, int y, int d1, int d2, uint32_t ch) { - cucul_fill_ellipse(cv, x, y, d1, d2, ch); + caca_fill_ellipse(cv, x, y, d1, d2, ch); } -void Cucul::drawBox(int x, int y, int w, int h, uint32_t ch) +void Canvas::drawBox(int x, int y, int w, int h, uint32_t ch) { - cucul_draw_box(cv, x, y, w, h, ch); + caca_draw_box(cv, x, y, w, h, ch); } -void Cucul::drawThinBox(int x, int y, int w, int h) +void Canvas::drawThinBox(int x, int y, int w, int h) { - cucul_draw_thin_box(cv, x, y, w, h); + caca_draw_thin_box(cv, x, y, w, h); } -void Cucul::drawCP437Box(int x, int y, int w, int h) +void Canvas::drawCP437Box(int x, int y, int w, int h) { - cucul_draw_cp437_box(cv, x, y, w, h); + caca_draw_cp437_box(cv, x, y, w, h); } -void Cucul::fillBox(int x, int y, int w, int h, uint32_t ch) +void Canvas::fillBox(int x, int y, int w, int h, uint32_t ch) { - cucul_fill_box(cv, x, y, w, h, ch); + caca_fill_box(cv, x, y, w, h, ch); } -void Cucul::drawTriangle(int x1, int y1, int x2, int y2, int x3, int y3, uint32_t ch) +void Canvas::drawTriangle(int x1, int y1, int x2, int y2, int x3, int y3, uint32_t ch) { - cucul_draw_triangle(cv, x1, y1, x2, y2, x3, y3, ch); + caca_draw_triangle(cv, x1, y1, x2, y2, x3, y3, ch); } -void Cucul::drawThinTriangle(int x1, int y1, int x2, int y2, int x3, int y3) +void Canvas::drawThinTriangle(int x1, int y1, int x2, int y2, int x3, int y3) { - cucul_draw_thin_triangle(cv, x1, y1, x2, y2, x3, y3); + caca_draw_thin_triangle(cv, x1, y1, x2, y2, x3, y3); } -void Cucul::fillTriangle(int x1, int y1, int x2, int y2, int x3, int y3, uint32_t ch) +void Canvas::fillTriangle(int x1, int y1, int x2, int y2, int x3, int y3, uint32_t ch) { - cucul_fill_triangle(cv, x1, y1, x2, y2, x3, y3, ch); + caca_fill_triangle(cv, x1, y1, x2, y2, x3, y3, ch); } -int Cucul::Rand(int min, int max) +int Canvas::Rand(int min, int max) { - return cucul_rand(min, max); + return caca_rand(min, max); } -const char * Cucul::getVersion() +const char * Canvas::getVersion() { - return cucul_get_version(); + return caca_get_version(); } -int Cucul::setAttr(uint32_t attr) +int Canvas::setAttr(uint32_t attr) { - return cucul_set_attr(cv, attr); + return caca_set_attr(cv, attr); } -uint32_t Cucul::getAttr(int x, int y) +uint32_t Canvas::getAttr(int x, int y) { - return cucul_get_attr(cv, x, y); + return caca_get_attr(cv, x, y); } -int Cucul::setBoundaries(cucul_canvas_t *, int x, int y, +int Canvas::setBoundaries(caca_canvas_t *, int x, int y, unsigned int w, unsigned int h) { - return cucul_set_canvas_boundaries(cv, x, y, h, w); + return caca_set_canvas_boundaries(cv, x, y, h, w); } -unsigned int Cucul::getFrameCount() +unsigned int Canvas::getFrameCount() { - return cucul_get_frame_count(cv); + return caca_get_frame_count(cv); } -int Cucul::setFrame(unsigned int f) +int Canvas::setFrame(unsigned int f) { - return cucul_set_frame(cv, f); + return caca_set_frame(cv, f); } -int Cucul::createFrame(unsigned int f) +int Canvas::createFrame(unsigned int f) { - return cucul_create_frame(cv, f); + return caca_create_frame(cv, f); } -int Cucul::freeFrame(unsigned int f) +int Canvas::freeFrame(unsigned int f) { - return cucul_create_frame(cv, f); + return caca_create_frame(cv, f); } -char const *const * Cucul::getImportList(void) +char const *const * Canvas::getImportList(void) { - return cucul_get_import_list(); + return caca_get_import_list(); } -long int Cucul::importMemory(void const *buf, size_t len, char const *fmt) +long int Canvas::importMemory(void const *buf, size_t len, char const *fmt) { - return cucul_import_memory(cv, buf, len, fmt); + return caca_import_memory(cv, buf, len, fmt); } -long int Cucul::importFile(char const *file, char const *fmt) +long int Canvas::importFile(char const *file, char const *fmt) { - return cucul_import_file(cv, file, fmt); + return caca_import_file(cv, file, fmt); } -char const *const * Cucul::getExportList(void) +char const *const * Canvas::getExportList(void) { - return cucul_get_export_list(); + return caca_get_export_list(); } -void *Cucul::exportMemory(char const *fmt, size_t *len) +void *Canvas::exportMemory(char const *fmt, size_t *len) { - return cucul_export_memory(cv, fmt, len); + return caca_export_memory(cv, fmt, len); } Dither::Dither(unsigned int v1, unsigned int v2, unsigned int v3, unsigned int v4, unsigned int v5, unsigned int v6, unsigned int v7, unsigned int v8) { - dither = cucul_create_dither(v1, v2, v3, v4, v5, v6, v7, v8); + dither = caca_create_dither(v1, v2, v3, v4, v5, v6, v7, v8); } Dither::~Dither() { - cucul_free_dither(dither); + caca_free_dither(dither); } void Dither::setPalette(uint32_t r[], uint32_t g[], uint32_t b[], uint32_t a[]) { - cucul_set_dither_palette(dither, r, g, b, a); + caca_set_dither_palette(dither, r, g, b, a); } void Dither::setBrightness(float f) { - cucul_set_dither_brightness(dither, f); + caca_set_dither_brightness(dither, f); } void Dither::setGamma(float f) { - cucul_set_dither_gamma(dither, f); + caca_set_dither_gamma(dither, f); } void Dither::setContrast(float f) { - cucul_set_dither_contrast(dither, f); + caca_set_dither_contrast(dither, f); } void Dither::setAntialias(char const *cv) { - cucul_set_dither_antialias(dither, cv); + caca_set_dither_antialias(dither, cv); } char const *const * Dither::getAntialiasList() { - return cucul_get_dither_antialias_list(dither); + return caca_get_dither_antialias_list(dither); } void Dither::setColor(char const *cv) { - cucul_set_dither_color(dither, cv); + caca_set_dither_color(dither, cv); } char const *const * Dither::getColorList() { - return cucul_get_dither_color_list(dither); + return caca_get_dither_color_list(dither); } void Dither::setCharset(char const *cv) { - cucul_set_dither_charset(dither, cv); + caca_set_dither_charset(dither, cv); } char const *const * Dither::getCharsetList() { - return cucul_get_dither_charset_list(dither); + return caca_get_dither_charset_list(dither); } void Dither::setMode(char const *cv) { - cucul_set_dither_algorithm(dither, cv); + caca_set_dither_algorithm(dither, cv); } char const *const * Dither::getModeList(void) { - return cucul_get_dither_algorithm_list(dither); + return caca_get_dither_algorithm_list(dither); } -void Dither::Bitmap(Cucul *cv, int x, int y, int w, int h, void *v) +void Dither::Bitmap(Canvas *cv, int x, int y, int w, int h, void *v) { - cucul_dither_bitmap(cv->get_cucul_canvas_t(), x, y, w, h, dither, v); + caca_dither_bitmap(cv->get_caca_canvas_t(), x, y, w, h, dither, v); } Font::Font(void const *s, unsigned int v) { - font = cucul_load_font(s, v); + font = caca_load_font(s, v); if(!font) throw -1; } char const *const * Font::getList(void) { - return cucul_get_font_list(); + return caca_get_font_list(); } unsigned int Font::getWidth() { - return cucul_get_font_width(font); + return caca_get_font_width(font); } unsigned int Font::getHeight() { - return cucul_get_font_height(font); + return caca_get_font_height(font); } -void Font::renderCanvas(Cucul *cv, uint8_t *buf, unsigned int x, unsigned int y, unsigned int w) +void Font::renderCanvas(Canvas *cv, uint8_t *buf, unsigned int x, unsigned int y, unsigned int w) { - cucul_render_canvas(cv->get_cucul_canvas_t(), font, buf, x, y, w); + caca_render_canvas(cv->get_caca_canvas_t(), font, buf, x, y, w); } uint32_t const *Font::getBlocks() { - return cucul_get_font_blocks(font); + return caca_get_font_blocks(font); } Font::~Font() { - cucul_free_font(font); + caca_free_font(font); } diff --git a/cxx/cucul++.h b/cxx/cucul++.h index 6c1f076..7ddb326 100644 --- a/cxx/cucul++.h +++ b/cxx/cucul++.h @@ -1,5 +1,5 @@ /* - * libcucul++ C++ bindings for libcucul + * libcaca++ C++ bindings for libcaca * Copyright (c) 2006 Jean-Yves Lamoureux * All Rights Reserved * @@ -12,28 +12,28 @@ * http://sam.zoy.org/wtfpl/COPYING for more details. */ -/** \file cucul++.h +/** \file caca++.h * \version \$Id$ * \author Jean-Yves Lamoureux - * \brief The \e libcucul++ public header. + * \brief The \e libcaca++ public header. * * This header contains the public types and functions that applications - * using \e libcucul++ may use. + * using \e libcaca++ may use. */ #ifndef _CUCUL_PP_H #define _CUCUL_PP_H -#include +#include #undef __class -#if defined(_WIN32) && defined(__LIBCUCUL_PP__) +#if defined(_WIN32) && defined(__LIBCACA_PP__) # define __class class __declspec(dllexport) #else # define __class class #endif -class Cucul; +class Canvas; __class Charset { @@ -53,12 +53,12 @@ __class Font char const *const * getList(void); unsigned int getWidth(); unsigned int getHeight(); - void renderCanvas(Cucul *, uint8_t *, unsigned int, + void renderCanvas(Canvas *, uint8_t *, unsigned int, unsigned int, unsigned int); uint32_t const *getBlocks(); private: - cucul_font *font; + caca_font *font; }; __class Dither @@ -81,21 +81,21 @@ __class Dither char const *const * getCharsetList(); void setMode(char const *); char const *const * getModeList(); - void Bitmap(Cucul *, int, int, int, int, void *); + void Bitmap(Canvas *, int, int, int, int, void *); private: - cucul_dither *dither; + caca_dither *dither; }; -__class Cucul +__class Canvas { friend class Caca; friend class Dither; friend class Font; public: - Cucul(); - Cucul(int width, int height); - ~Cucul(); + Canvas(); + Canvas(int width, int height); + ~Canvas(); void setSize(unsigned int w, unsigned int h); unsigned int getWidth(void); @@ -109,7 +109,7 @@ __class Cucul uint32_t getChar(int, int); void putStr(int x, int y, char *str); void Clear(void); - void Blit(int, int, Cucul* c1, Cucul* c2); + void Blit(int, int, Canvas* c1, Canvas* c2); void Invert(); void Flip(); void Flop(); @@ -131,7 +131,7 @@ __class Cucul void drawTriangle(int, int, int, int, int, int, uint32_t); void drawThinTriangle(int, int, int, int, int, int); void fillTriangle(int, int, int, int, int, int, uint32_t); - int setBoundaries(cucul_canvas_t *, int, int, unsigned int, unsigned int); + int setBoundaries(caca_canvas_t *, int, int, unsigned int, unsigned int); unsigned int getFrameCount(); int setFrame(unsigned int); int createFrame(unsigned int); @@ -147,10 +147,10 @@ __class Cucul static char const * getVersion(); protected: - cucul_canvas_t *get_cucul_canvas_t(); + caca_canvas_t *get_caca_canvas_t(); private: - cucul_canvas_t *cv; + caca_canvas_t *cv; }; #endif /* _CUCUL_PP_H */ diff --git a/cxx/cxxtest.cpp b/cxx/cxxtest.cpp index 2f283fe..145b16a 100644 --- a/cxx/cxxtest.cpp +++ b/cxx/cxxtest.cpp @@ -40,13 +40,13 @@ static char const pigstring[] = int main(int argc, char *argv[]) { - Cucul *cv, *pig; + Canvas *cv, *pig; Caca *dp; int x = 0, y = 0, ix = 1, iy = 1; try { - cv = new Cucul(); + cv = new Canvas(); } catch (int e) { cerr << "Error while initializing cucul (" << e << ")" << endl; @@ -63,8 +63,8 @@ int main(int argc, char *argv[]) try { // Import buffer into a canvas - pig = new Cucul(); - pig->setColorANSI(CUCUL_LIGHTMAGENTA, CUCUL_TRANSPARENT); + pig = new Canvas(); + pig->setColorANSI(CACA_LIGHTMAGENTA, CACA_TRANSPARENT); pig->importMemory(pigstring, strlen(pigstring), "text"); } catch(int e) { @@ -89,7 +89,7 @@ int main(int argc, char *argv[]) cv->Blit(x, y, pig, NULL); /* printf works */ - cv->setColorANSI(CUCUL_LIGHTBLUE, CUCUL_BLACK); + cv->setColorANSI(CACA_LIGHTBLUE, CACA_BLACK); cv->Printf(cv->getWidth() / 2 - 10, cv->getHeight() / 2, "Powered by libcaca %s", dp->getVersion()); diff --git a/doc/Makefile.am b/doc/Makefile.am index 4a49e19..a751f6d 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -8,10 +8,10 @@ man_MANS = caca-config.1 cacafire.1 cacaview.1 cacaserver.1 img2txt.1 cacaplay.1 if BUILD_DOCUMENTATION htmldoc_DATA = html/doxygen.css -htmldocdir = $(datadir)/doc/libcucul-dev/html +htmldocdir = $(datadir)/doc/libcaca-dev/html if USE_LATEX pdfdoc_DATA = latex/libcaca.pdf -pdfdocdir = $(datadir)/doc/libcucul-dev/pdf +pdfdocdir = $(datadir)/doc/libcaca-dev/pdf endif endif @@ -43,9 +43,9 @@ clean-local: install-data-local: if BUILD_DOCUMENTATION - $(mkinstalldirs) $(DESTDIR)$(datadir)/doc/libcucul-dev/html + $(mkinstalldirs) $(DESTDIR)$(datadir)/doc/libcaca-dev/html cp `find html -name '*.html' -o -name '*.gif' -o -name '*.png'` \ - $(DESTDIR)$(datadir)/doc/libcucul-dev/html + $(DESTDIR)$(datadir)/doc/libcaca-dev/html $(mkinstalldirs) $(DESTDIR)$(mandir)/man3 for man in $$(find man -name '*.3caca'); do \ sed -e 's/man3caca/man3/g' -e "s/fC'\([a-zA-Z0-9]*\)'/fC\"\1\"/g" \ diff --git a/examples/Makefile.am b/examples/Makefile.am index 084281e..3e2c156 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -1,82 +1,81 @@ # $Id$ -AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/cucul -I../cucul \ - -I$(top_srcdir)/caca -DDATADIR=\"$(pkgdatadir)\" +AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/caca -DDATADIR=\"$(pkgdatadir)\" -noinst_PROGRAMS = blit colors cucul demo demo0 dithering driver event export figfont font font2tga frames fullwidth gamma hsv input spritedit swallow text transform truecolor unicode import +noinst_PROGRAMS = blit canvas colors demo demo0 dithering driver event export figfont font font2tga frames fullwidth gamma hsv input spritedit swallow text transform truecolor unicode import blit_SOURCES = blit.c -blit_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +blit_LDADD = ../caca/libcaca.la -colors_SOURCES = colors.c -colors_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +canvas_SOURCES = canvas.c +canvas_LDADD = ../caca/libcaca.la -cucul_SOURCES = cucul.c -cucul_LDADD = ../cucul/libcucul.la +colors_SOURCES = colors.c +colors_LDADD = ../caca/libcaca.la demo_SOURCES = demo.c -demo_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +demo_LDADD = ../caca/libcaca.la demo_LDFLAGS = @MATH_LIBS@ demo0_SOURCES = demo0.c -demo0_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +demo0_LDADD = ../caca/libcaca.la demo0_LDFLAGS = @MATH_LIBS@ dithering_SOURCES = dithering.c -dithering_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +dithering_LDADD = ../caca/libcaca.la driver_SOURCES = driver.c -driver_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +driver_LDADD = ../caca/libcaca.la event_SOURCES = event.c -event_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +event_LDADD = ../caca/libcaca.la export_SOURCES = export.c -export_LDADD = ../cucul/libcucul.la +export_LDADD = ../caca/libcaca.la figfont_SOURCES = figfont.c -figfont_LDADD = ../cucul/libcucul.la +figfont_LDADD = ../caca/libcaca.la font_SOURCES = font.c -font_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +font_LDADD = ../caca/libcaca.la font2tga_SOURCES = font2tga.c -font2tga_LDADD = ../cucul/libcucul.la +font2tga_LDADD = ../caca/libcaca.la frames_SOURCES = frames.c -frames_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +frames_LDADD = ../caca/libcaca.la fullwidth_SOURCES = fullwidth.c -fullwidth_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +fullwidth_LDADD = ../caca/libcaca.la gamma_SOURCES = gamma.c -gamma_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +gamma_LDADD = ../caca/libcaca.la gamma_LDFLAGS = @MATH_LIBS@ hsv_SOURCES = hsv.c -hsv_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +hsv_LDADD = ../caca/libcaca.la input_SOURCES = input.c -input_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +input_LDADD = ../caca/libcaca.la spritedit_SOURCES = spritedit.c -spritedit_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +spritedit_LDADD = ../caca/libcaca.la swallow_SOURCES = swallow.c -swallow_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +swallow_LDADD = ../caca/libcaca.la text_SOURCES = text.c -text_LDADD = ../cucul/libcucul.la +text_LDADD = ../caca/libcaca.la transform_SOURCES = transform.c -transform_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +transform_LDADD = ../caca/libcaca.la truecolor_SOURCES = truecolor.c -truecolor_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +truecolor_LDADD = ../caca/libcaca.la unicode_SOURCES = unicode.c -unicode_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +unicode_LDADD = ../caca/libcaca.la import_SOURCES = import.c -import_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +import_LDADD = ../caca/libcaca.la diff --git a/examples/blit.c b/examples/blit.c index 5fc55be..5818c3a 100644 --- a/examples/blit.c +++ b/examples/blit.c @@ -19,7 +19,6 @@ # include #endif -#include "cucul.h" #include "caca.h" static char const pig[] = @@ -40,10 +39,10 @@ static char const pig[] = int main(int argc, char *argv[]) { - cucul_canvas_t *cv, *sprite; + caca_canvas_t *cv, *sprite; caca_display_t *dp; - cv = cucul_create_canvas(80, 24); + cv = caca_create_canvas(80, 24); if(cv == NULL) { printf("Failed to create canvas\n"); @@ -57,25 +56,25 @@ int main(int argc, char *argv[]) return 1; } - sprite = cucul_create_canvas(0, 0); - cucul_set_color_ansi(sprite, CUCUL_LIGHTRED, CUCUL_BLACK); - cucul_import_memory(sprite, pig, strlen(pig), "text"); - cucul_set_canvas_handle(sprite, cucul_get_canvas_width(sprite) / 2, - cucul_get_canvas_height(sprite) / 2); + sprite = caca_create_canvas(0, 0); + caca_set_color_ansi(sprite, CACA_LIGHTRED, CACA_BLACK); + caca_import_memory(sprite, pig, strlen(pig), "text"); + caca_set_canvas_handle(sprite, caca_get_canvas_width(sprite) / 2, + caca_get_canvas_height(sprite) / 2); - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); - cucul_put_str(cv, 0, 0, "Centered sprite"); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); + caca_put_str(cv, 0, 0, "Centered sprite"); - cucul_blit(cv, cucul_get_canvas_width(cv) / 2, - cucul_get_canvas_height(cv) / 2, sprite, NULL); + caca_blit(cv, caca_get_canvas_width(cv) / 2, + caca_get_canvas_height(cv) / 2, sprite, NULL); caca_refresh_display(dp); caca_get_event(dp, CACA_EVENT_KEY_PRESS, NULL, -1); caca_free_display(dp); - cucul_free_canvas(sprite); - cucul_free_canvas(cv); + caca_free_canvas(sprite); + caca_free_canvas(cv); return 0; } diff --git a/examples/cucul.c b/examples/canvas.c similarity index 66% rename from examples/cucul.c rename to examples/canvas.c index e4df2cb..b7576d6 100644 --- a/examples/cucul.c +++ b/examples/canvas.c @@ -19,30 +19,29 @@ # include #endif -#include "cucul.h" #include "caca.h" #define ITER 128 int main(int argc, char *argv[]) { - cucul_canvas_t *cv; + caca_canvas_t *cv; unsigned int i, j, w, h; - fprintf(stderr, "testing cucul_create_canvas()\n"); + fprintf(stderr, "testing caca_create_canvas()\n"); for(i = 0; i < ITER; i++) { - w = cucul_rand(1, 1000); - h = cucul_rand(1, 1000); - cv = cucul_create_canvas(w, h); - cucul_put_char(cv, w - 1, h - 1, 'x'); - if(cucul_get_char(cv, w - 1, h - 1) != 'x') + w = caca_rand(1, 1000); + h = caca_rand(1, 1000); + cv = caca_create_canvas(w, h); + caca_put_char(cv, w - 1, h - 1, 'x'); + if(caca_get_char(cv, w - 1, h - 1) != 'x') fprintf(stderr, " failed (%ux%u)\n", w, h); - cucul_free_canvas(cv); + caca_free_canvas(cv); } - fprintf(stderr, "testing cucul_set_frame_name()\n"); - cv = cucul_create_canvas(1, 1); + fprintf(stderr, "testing caca_set_frame_name()\n"); + cv = caca_create_canvas(1, 1); if(cv == NULL) { printf("Failed to create canvas\n"); @@ -51,17 +50,17 @@ int main(int argc, char *argv[]) for(i = 0; i < ITER; i++) { - cucul_create_frame(cv, 0); + caca_create_frame(cv, 0); for(j = 0; j < ITER; j++) { char buf[BUFSIZ]; - w = cucul_rand(1, 1000); + w = caca_rand(1, 1000); memset(buf, 'x', w); buf[w] = '\0'; - cucul_set_frame_name(cv, buf); + caca_set_frame_name(cv, buf); } } - cucul_free_canvas(cv); + caca_free_canvas(cv); fprintf(stderr, "all tests passed\n"); return 0; diff --git a/examples/colors.c b/examples/colors.c index db0f6b8..3a87627 100644 --- a/examples/colors.c +++ b/examples/colors.c @@ -18,16 +18,15 @@ # include #endif -#include "cucul.h" #include "caca.h" int main(int argc, char **argv) { - cucul_canvas_t *cv; + caca_canvas_t *cv; caca_display_t *dp; int i, j; - cv = cucul_create_canvas(80, 24); + cv = caca_create_canvas(80, 24); if(cv == NULL) { printf("Failed to create canvas\n"); @@ -41,36 +40,36 @@ int main(int argc, char **argv) return 1; } - cucul_set_color_ansi(cv, CUCUL_LIGHTGRAY, CUCUL_BLACK); - cucul_clear_canvas(cv); + caca_set_color_ansi(cv, CACA_LIGHTGRAY, CACA_BLACK); + caca_clear_canvas(cv); for(i = 0; i < 16; i++) { - cucul_set_color_ansi(cv, CUCUL_LIGHTGRAY, CUCUL_BLACK); - cucul_printf(cv, 3, i + (i >= 8 ? 3 : 2), "ANSI %i", i); + caca_set_color_ansi(cv, CACA_LIGHTGRAY, CACA_BLACK); + caca_printf(cv, 3, i + (i >= 8 ? 3 : 2), "ANSI %i", i); for(j = 0; j < 16; j++) { - cucul_set_color_ansi(cv, i, j); - cucul_put_str(cv, (j >= 8 ? 13 : 12) + j * 4, i + (i >= 8 ? 3 : 2), + caca_set_color_ansi(cv, i, j); + caca_put_str(cv, (j >= 8 ? 13 : 12) + j * 4, i + (i >= 8 ? 3 : 2), "Aaホ"); } } - cucul_set_color_ansi(cv, CUCUL_LIGHTGRAY, CUCUL_BLACK); - cucul_put_str(cv, 3, 20, "This is bold This is blink This is italics This is underline"); - cucul_set_attr(cv, CUCUL_BOLD); - cucul_put_str(cv, 3 + 8, 20, "bold"); - cucul_set_attr(cv, CUCUL_BLINK); - cucul_put_str(cv, 3 + 24, 20, "blink"); - cucul_set_attr(cv, CUCUL_ITALICS); - cucul_put_str(cv, 3 + 41, 20, "italics"); - cucul_set_attr(cv, CUCUL_UNDERLINE); - cucul_put_str(cv, 3 + 60, 20, "underline"); + caca_set_color_ansi(cv, CACA_LIGHTGRAY, CACA_BLACK); + caca_put_str(cv, 3, 20, "This is bold This is blink This is italics This is underline"); + caca_set_attr(cv, CACA_BOLD); + caca_put_str(cv, 3 + 8, 20, "bold"); + caca_set_attr(cv, CACA_BLINK); + caca_put_str(cv, 3 + 24, 20, "blink"); + caca_set_attr(cv, CACA_ITALICS); + caca_put_str(cv, 3 + 41, 20, "italics"); + caca_set_attr(cv, CACA_UNDERLINE); + caca_put_str(cv, 3 + 60, 20, "underline"); caca_refresh_display(dp); caca_get_event(dp, CACA_EVENT_KEY_PRESS, NULL, -1); caca_free_display(dp); - cucul_free_canvas(cv); + caca_free_canvas(cv); return 0; } diff --git a/examples/demo.c b/examples/demo.c index ba5d8e9..b5ab483 100644 --- a/examples/demo.c +++ b/examples/demo.c @@ -20,7 +20,6 @@ # include #endif -#include "cucul.h" #include "caca.h" static void display_menu(void); @@ -39,10 +38,10 @@ int bounds = 0; int outline = 0; int dithering = 0; #if 0 -cucul_sprite_t *sprite = NULL; +caca_sprite_t *sprite = NULL; #endif -cucul_canvas_t *cv; +caca_canvas_t *cv; caca_display_t *dp; int main(int argc, char **argv) @@ -50,7 +49,7 @@ int main(int argc, char **argv) void (*demo)(void) = NULL; int quit = 0; - cv = cucul_create_canvas(80, 24); + cv = caca_create_canvas(80, 24); if(cv == NULL) { printf("Failed to create canvas\n"); @@ -68,11 +67,11 @@ int main(int argc, char **argv) /* Initialize data */ #if 0 - sprite = cucul_load_sprite(DATADIR "/caca.txt"); + sprite = caca_load_sprite(DATADIR "/caca.txt"); if(!sprite) - sprite = cucul_load_sprite("caca.txt"); + sprite = caca_load_sprite("caca.txt"); if(!sprite) - sprite = cucul_load_sprite("examples/caca.txt"); + sprite = caca_load_sprite("examples/caca.txt"); #endif /* Disable cursor */ @@ -119,7 +118,7 @@ int main(int argc, char **argv) case 'd': case 'D': dithering = (dithering + 1) % 5; - cucul_set_feature(cv, dithering); + caca_set_feature(cv, dithering); display_menu(); break; #endif @@ -157,8 +156,8 @@ int main(int argc, char **argv) if(demo) { - cucul_set_color_ansi(cv, CUCUL_LIGHTGRAY, CUCUL_BLACK); - cucul_clear_canvas(cv); + caca_set_color_ansi(cv, CACA_LIGHTGRAY, CACA_BLACK); + caca_clear_canvas(cv); } } else if(caca_get_event_type(&ev) & CACA_EVENT_MOUSE_MOTION) @@ -178,9 +177,9 @@ int main(int argc, char **argv) display_menu(); if(mouse && !demo) { - cucul_set_color_ansi(cv, CUCUL_RED, CUCUL_BLACK); - cucul_put_str(cv, xmouse, ymouse, "."); - cucul_put_str(cv, xmouse, ymouse + 1, "|\\"); + caca_set_color_ansi(cv, CACA_RED, CACA_BLACK); + caca_put_str(cv, xmouse, ymouse, "."); + caca_put_str(cv, xmouse, ymouse + 1, "|\\"); } caca_refresh_display(dp); mouse = menu = 0; @@ -190,10 +189,10 @@ int main(int argc, char **argv) { demo(); - cucul_set_color_ansi(cv, CUCUL_LIGHTGRAY, CUCUL_BLACK); - cucul_draw_thin_box(cv, 1, 1, cucul_get_canvas_width(cv) - 2, - cucul_get_canvas_height(cv) - 2); - cucul_printf(cv, 4, 1, "[%i.%i fps]----", + caca_set_color_ansi(cv, CACA_LIGHTGRAY, CACA_BLACK); + caca_draw_thin_box(cv, 1, 1, caca_get_canvas_width(cv) - 2, + caca_get_canvas_height(cv) - 2); + caca_printf(cv, 4, 1, "[%i.%i fps]----", 1000000 / caca_get_display_time(dp), (10000000 / caca_get_display_time(dp)) % 10); caca_refresh_display(dp); @@ -202,49 +201,49 @@ int main(int argc, char **argv) /* Clean up */ #if 0 - cucul_free_sprite(sprite); + caca_free_sprite(sprite); #endif caca_free_display(dp); - cucul_free_canvas(cv); + caca_free_canvas(cv); return 0; } static void display_menu(void) { - int xo = cucul_get_canvas_width(cv) - 2; - int yo = cucul_get_canvas_height(cv) - 2; - - cucul_set_color_ansi(cv, CUCUL_LIGHTGRAY, CUCUL_BLACK); - cucul_clear_canvas(cv); - cucul_draw_thin_box(cv, 1, 1, xo, yo); - - cucul_put_str(cv, (xo - strlen("libcaca demo")) / 2, 3, "libcaca demo"); - cucul_put_str(cv, (xo - strlen("==============")) / 2, 4, "=============="); - - cucul_put_str(cv, 4, 6, "demos:"); - cucul_put_str(cv, 4, 7, "'f': full"); - cucul_put_str(cv, 4, 8, "'1': dots"); - cucul_put_str(cv, 4, 9, "'2': lines"); - cucul_put_str(cv, 4, 10, "'3': boxes"); - cucul_put_str(cv, 4, 11, "'4': triangles"); - cucul_put_str(cv, 4, 12, "'5': ellipses"); - cucul_put_str(cv, 4, 13, "'c': colour"); - cucul_put_str(cv, 4, 14, "'r': render"); + int xo = caca_get_canvas_width(cv) - 2; + int yo = caca_get_canvas_height(cv) - 2; + + caca_set_color_ansi(cv, CACA_LIGHTGRAY, CACA_BLACK); + caca_clear_canvas(cv); + caca_draw_thin_box(cv, 1, 1, xo, yo); + + caca_put_str(cv, (xo - strlen("libcaca demo")) / 2, 3, "libcaca demo"); + caca_put_str(cv, (xo - strlen("==============")) / 2, 4, "=============="); + + caca_put_str(cv, 4, 6, "demos:"); + caca_put_str(cv, 4, 7, "'f': full"); + caca_put_str(cv, 4, 8, "'1': dots"); + caca_put_str(cv, 4, 9, "'2': lines"); + caca_put_str(cv, 4, 10, "'3': boxes"); + caca_put_str(cv, 4, 11, "'4': triangles"); + caca_put_str(cv, 4, 12, "'5': ellipses"); + caca_put_str(cv, 4, 13, "'c': colour"); + caca_put_str(cv, 4, 14, "'r': render"); #if 0 if(sprite) - cucul_put_str(cv, 4, 15, "'s': sprites"); + caca_put_str(cv, 4, 15, "'s': sprites"); #endif - cucul_put_str(cv, 4, 16, "settings:"); - cucul_printf(cv, 4, 17, "'o': outline: %s", + caca_put_str(cv, 4, 16, "settings:"); + caca_printf(cv, 4, 17, "'o': outline: %s", outline == 0 ? "none" : outline == 1 ? "solid" : "thin"); - cucul_printf(cv, 4, 18, "'b': drawing boundaries: %s", + caca_printf(cv, 4, 18, "'b': drawing boundaries: %s", bounds == 0 ? "screen" : "infinite"); - //cucul_printf(cv, 4, 19, "'d': dithering (%s)", - // cucul_get_feature_name(dithering)); + //caca_printf(cv, 4, 19, "'d': dithering (%s)", + // caca_get_feature_name(dithering)); - cucul_put_str(cv, 4, yo - 2, "'q': quit"); + caca_put_str(cv, 4, yo - 2, "'q': quit"); caca_refresh_display(dp); } @@ -257,104 +256,104 @@ static void demo_all(void) i++; - cucul_set_color_ansi(cv, CUCUL_LIGHTGRAY, CUCUL_BLACK); - cucul_clear_canvas(cv); + caca_set_color_ansi(cv, CACA_LIGHTGRAY, CACA_BLACK); + caca_clear_canvas(cv); /* Draw the sun */ - cucul_set_color_ansi(cv, CUCUL_YELLOW, CUCUL_BLACK); - xo = cucul_get_canvas_width(cv) / 4; - yo = cucul_get_canvas_height(cv) / 4 + 5 * sin(0.03*i); + caca_set_color_ansi(cv, CACA_YELLOW, CACA_BLACK); + xo = caca_get_canvas_width(cv) / 4; + yo = caca_get_canvas_height(cv) / 4 + 5 * sin(0.03*i); for(j = 0; j < 16; j++) { xa = xo - (30 + sin(0.03*i) * 8) * sin(0.03*i + M_PI*j/8); ya = yo + (15 + sin(0.03*i) * 4) * cos(0.03*i + M_PI*j/8); - cucul_draw_thin_line(cv, xo, yo, xa, ya); + caca_draw_thin_line(cv, xo, yo, xa, ya); } j = 15 + sin(0.03*i) * 8; - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLACK); - cucul_fill_ellipse(cv, xo, yo, j, j / 2, '#'); - cucul_set_color_ansi(cv, CUCUL_YELLOW, CUCUL_BLACK); - cucul_draw_ellipse(cv, xo, yo, j, j / 2, '#'); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLACK); + caca_fill_ellipse(cv, xo, yo, j, j / 2, '#'); + caca_set_color_ansi(cv, CACA_YELLOW, CACA_BLACK); + caca_draw_ellipse(cv, xo, yo, j, j / 2, '#'); /* Draw the pyramid */ - xo = cucul_get_canvas_width(cv) * 5 / 8; + xo = caca_get_canvas_width(cv) * 5 / 8; yo = 2; - xa = cucul_get_canvas_width(cv) / 8 + sin(0.03*i) * 5; - ya = cucul_get_canvas_height(cv) / 2 + cos(0.03*i) * 5; + xa = caca_get_canvas_width(cv) / 8 + sin(0.03*i) * 5; + ya = caca_get_canvas_height(cv) / 2 + cos(0.03*i) * 5; - xb = cucul_get_canvas_width(cv) - 10 - cos(0.02*i) * 10; - yb = cucul_get_canvas_height(cv) * 3 / 4 - 5 + sin(0.02*i) * 5; + xb = caca_get_canvas_width(cv) - 10 - cos(0.02*i) * 10; + yb = caca_get_canvas_height(cv) * 3 / 4 - 5 + sin(0.02*i) * 5; - xc = cucul_get_canvas_width(cv) / 4 - sin(0.02*i) * 5; - yc = cucul_get_canvas_height(cv) * 3 / 4 + cos(0.02*i) * 5; + xc = caca_get_canvas_width(cv) / 4 - sin(0.02*i) * 5; + yc = caca_get_canvas_height(cv) * 3 / 4 + cos(0.02*i) * 5; - cucul_set_color_ansi(cv, CUCUL_GREEN, CUCUL_BLACK); - cucul_fill_triangle(cv, xo, yo, xb, yb, xa, ya, '%'); - cucul_set_color_ansi(cv, CUCUL_YELLOW, CUCUL_BLACK); - cucul_draw_thin_triangle(cv, xo, yo, xb, yb, xa, ya); + caca_set_color_ansi(cv, CACA_GREEN, CACA_BLACK); + caca_fill_triangle(cv, xo, yo, xb, yb, xa, ya, '%'); + caca_set_color_ansi(cv, CACA_YELLOW, CACA_BLACK); + caca_draw_thin_triangle(cv, xo, yo, xb, yb, xa, ya); - cucul_set_color_ansi(cv, CUCUL_RED, CUCUL_BLACK); - cucul_fill_triangle(cv, xa, ya, xb, yb, xc, yc, '#'); - cucul_set_color_ansi(cv, CUCUL_YELLOW, CUCUL_BLACK); - cucul_draw_thin_triangle(cv, xa, ya, xb, yb, xc, yc); + caca_set_color_ansi(cv, CACA_RED, CACA_BLACK); + caca_fill_triangle(cv, xa, ya, xb, yb, xc, yc, '#'); + caca_set_color_ansi(cv, CACA_YELLOW, CACA_BLACK); + caca_draw_thin_triangle(cv, xa, ya, xb, yb, xc, yc); - cucul_set_color_ansi(cv, CUCUL_BLUE, CUCUL_BLACK); - cucul_fill_triangle(cv, xo, yo, xb, yb, xc, yc, '%'); - cucul_set_color_ansi(cv, CUCUL_YELLOW, CUCUL_BLACK); - cucul_draw_thin_triangle(cv, xo, yo, xb, yb, xc, yc); + caca_set_color_ansi(cv, CACA_BLUE, CACA_BLACK); + caca_fill_triangle(cv, xo, yo, xb, yb, xc, yc, '%'); + caca_set_color_ansi(cv, CACA_YELLOW, CACA_BLACK); + caca_draw_thin_triangle(cv, xo, yo, xb, yb, xc, yc); /* Draw a background triangle */ xa = 2; ya = 2; - xb = cucul_get_canvas_width(cv) - 3; - yb = cucul_get_canvas_height(cv) / 2; + xb = caca_get_canvas_width(cv) - 3; + yb = caca_get_canvas_height(cv) / 2; - xc = cucul_get_canvas_width(cv) / 3; - yc = cucul_get_canvas_height(cv) - 3; + xc = caca_get_canvas_width(cv) / 3; + yc = caca_get_canvas_height(cv) - 3; - cucul_set_color_ansi(cv, CUCUL_CYAN, CUCUL_BLACK); - cucul_draw_thin_triangle(cv, xa, ya, xb, yb, xc, yc); + caca_set_color_ansi(cv, CACA_CYAN, CACA_BLACK); + caca_draw_thin_triangle(cv, xa, ya, xb, yb, xc, yc); - xo = cucul_get_canvas_width(cv) / 2 + cos(0.027*i) * cucul_get_canvas_width(cv) / 3; - yo = cucul_get_canvas_height(cv) / 2 - sin(0.027*i) * cucul_get_canvas_height(cv) / 2; + xo = caca_get_canvas_width(cv) / 2 + cos(0.027*i) * caca_get_canvas_width(cv) / 3; + yo = caca_get_canvas_height(cv) / 2 - sin(0.027*i) * caca_get_canvas_height(cv) / 2; - cucul_draw_thin_line(cv, xa, ya, xo, yo); - cucul_draw_thin_line(cv, xb, yb, xo, yo); - cucul_draw_thin_line(cv, xc, yc, xo, yo); + caca_draw_thin_line(cv, xa, ya, xo, yo); + caca_draw_thin_line(cv, xb, yb, xo, yo); + caca_draw_thin_line(cv, xc, yc, xo, yo); /* Draw a sprite on the pyramid */ #if 0 - cucul_draw_sprite(cv, xo, yo, sprite, 0); + caca_draw_sprite(cv, xo, yo, sprite, 0); #endif /* Draw a trail behind the foreground sprite */ for(j = i - 60; j < i; j++) { - int delta = cucul_rand(-5, 6); - cucul_set_color_ansi(cv, cucul_rand(0, 16), cucul_rand(0, 16)); - cucul_put_char(cv, cucul_get_canvas_width(cv) / 2 - + cos(0.02*j) * (delta + cucul_get_canvas_width(cv) / 4), - cucul_get_canvas_height(cv) / 2 - + sin(0.02*j) * (delta + cucul_get_canvas_height(cv) / 3), + int delta = caca_rand(-5, 6); + caca_set_color_ansi(cv, caca_rand(0, 16), caca_rand(0, 16)); + caca_put_char(cv, caca_get_canvas_width(cv) / 2 + + cos(0.02*j) * (delta + caca_get_canvas_width(cv) / 4), + caca_get_canvas_height(cv) / 2 + + sin(0.02*j) * (delta + caca_get_canvas_height(cv) / 3), '#'); } /* Draw foreground sprite */ #if 0 - cucul_draw_sprite(cv, cucul_get_canvas_width(cv) / 2 + cos(0.02*i) * cucul_get_canvas_width(cv) / 4, - cucul_get_canvas_height(cv) / 2 + sin(0.02*i) * cucul_get_canvas_height(cv) / 3, + caca_draw_sprite(cv, caca_get_canvas_width(cv) / 2 + cos(0.02*i) * caca_get_canvas_width(cv) / 4, + caca_get_canvas_height(cv) / 2 + sin(0.02*i) * caca_get_canvas_height(cv) / 3, sprite, 0); #endif } static void demo_dots(void) { - int xmax = cucul_get_canvas_width(cv); - int ymax = cucul_get_canvas_height(cv); + int xmax = caca_get_canvas_width(cv); + int ymax = caca_get_canvas_height(cv); int i; static char chars[10] = { @@ -364,136 +363,136 @@ static void demo_dots(void) for(i = 1000; i--;) { /* Putpixel */ - cucul_set_color_ansi(cv, cucul_rand(0, 16), cucul_rand(0, 16)); - cucul_put_char(cv, cucul_rand(0, xmax), cucul_rand(0, ymax), - chars[cucul_rand(0, 9)]); + caca_set_color_ansi(cv, caca_rand(0, 16), caca_rand(0, 16)); + caca_put_char(cv, caca_rand(0, xmax), caca_rand(0, ymax), + chars[caca_rand(0, 9)]); } } static void demo_lines(void) { - int w = cucul_get_canvas_width(cv); - int h = cucul_get_canvas_height(cv); + int w = caca_get_canvas_width(cv); + int h = caca_get_canvas_height(cv); int xa, ya, xb, yb; if(bounds) { - xa = cucul_rand(- w, 2 * w); ya = cucul_rand(- h, 2 * h); - xb = cucul_rand(- w, 2 * w); yb = cucul_rand(- h, 2 * h); + xa = caca_rand(- w, 2 * w); ya = caca_rand(- h, 2 * h); + xb = caca_rand(- w, 2 * w); yb = caca_rand(- h, 2 * h); } else { - xa = cucul_rand(0, w); ya = cucul_rand(0, h); - xb = cucul_rand(0, w); yb = cucul_rand(0, h); + xa = caca_rand(0, w); ya = caca_rand(0, h); + xb = caca_rand(0, w); yb = caca_rand(0, h); } - cucul_set_color_ansi(cv, cucul_rand(0, 16), CUCUL_BLACK); + caca_set_color_ansi(cv, caca_rand(0, 16), CACA_BLACK); if(outline > 1) - cucul_draw_thin_line(cv, xa, ya, xb, yb); + caca_draw_thin_line(cv, xa, ya, xb, yb); else - cucul_draw_line(cv, xa, ya, xb, yb, '#'); + caca_draw_line(cv, xa, ya, xb, yb, '#'); } static void demo_boxes(void) { - int w = cucul_get_canvas_width(cv); - int h = cucul_get_canvas_height(cv); + int w = caca_get_canvas_width(cv); + int h = caca_get_canvas_height(cv); int xa, ya, xb, yb; if(bounds) { - xa = cucul_rand(- w, 2 * w); ya = cucul_rand(- h, 2 * h); - xb = cucul_rand(- w, 2 * w); yb = cucul_rand(- h, 2 * h); + xa = caca_rand(- w, 2 * w); ya = caca_rand(- h, 2 * h); + xb = caca_rand(- w, 2 * w); yb = caca_rand(- h, 2 * h); } else { - xa = cucul_rand(0, w); ya = cucul_rand(0, h); - xb = cucul_rand(0, w); yb = cucul_rand(0, h); + xa = caca_rand(0, w); ya = caca_rand(0, h); + xb = caca_rand(0, w); yb = caca_rand(0, h); } - cucul_set_color_ansi(cv, cucul_rand(0, 16), cucul_rand(0, 16)); - cucul_fill_box(cv, xa, ya, xb, yb, '#'); + caca_set_color_ansi(cv, caca_rand(0, 16), caca_rand(0, 16)); + caca_fill_box(cv, xa, ya, xb, yb, '#'); - cucul_set_color_ansi(cv, cucul_rand(0, 16), CUCUL_BLACK); + caca_set_color_ansi(cv, caca_rand(0, 16), CACA_BLACK); if(outline == 2) - cucul_draw_thin_box(cv, xa, ya, xb, yb); + caca_draw_thin_box(cv, xa, ya, xb, yb); else if(outline == 1) - cucul_draw_box(cv, xa, ya, xb, yb, '#'); + caca_draw_box(cv, xa, ya, xb, yb, '#'); } static void demo_ellipses(void) { - int w = cucul_get_canvas_width(cv); - int h = cucul_get_canvas_height(cv); + int w = caca_get_canvas_width(cv); + int h = caca_get_canvas_height(cv); int x, y, a, b; if(bounds) { - x = cucul_rand(- w, 2 * w); y = cucul_rand(- h, 2 * h); - a = cucul_rand(0, w); b = cucul_rand(0, h); + x = caca_rand(- w, 2 * w); y = caca_rand(- h, 2 * h); + a = caca_rand(0, w); b = caca_rand(0, h); } else { do { - x = cucul_rand(0, w); y = cucul_rand(0, h); - a = cucul_rand(0, w); b = cucul_rand(0, h); + x = caca_rand(0, w); y = caca_rand(0, h); + a = caca_rand(0, w); b = caca_rand(0, h); } while(x - a < 0 || x + a >= w || y - b < 0 || y + b >= h); } - cucul_set_color_ansi(cv, cucul_rand(0, 16), cucul_rand(0, 16)); - cucul_fill_ellipse(cv, x, y, a, b, '#'); + caca_set_color_ansi(cv, caca_rand(0, 16), caca_rand(0, 16)); + caca_fill_ellipse(cv, x, y, a, b, '#'); - cucul_set_color_ansi(cv, cucul_rand(0, 16), CUCUL_BLACK); + caca_set_color_ansi(cv, caca_rand(0, 16), CACA_BLACK); if(outline == 2) - cucul_draw_thin_ellipse(cv, x, y, a, b); + caca_draw_thin_ellipse(cv, x, y, a, b); else if(outline == 1) - cucul_draw_ellipse(cv, x, y, a, b, '#'); + caca_draw_ellipse(cv, x, y, a, b, '#'); } static void demo_triangles(void) { - int w = cucul_get_canvas_width(cv); - int h = cucul_get_canvas_height(cv); + int w = caca_get_canvas_width(cv); + int h = caca_get_canvas_height(cv); int xa, ya, xb, yb, xc, yc; if(bounds) { - xa = cucul_rand(- w, 2 * w); ya = cucul_rand(- h, 2 * h); - xb = cucul_rand(- w, 2 * w); yb = cucul_rand(- h, 2 * h); - xc = cucul_rand(- w, 2 * w); yc = cucul_rand(- h, 2 * h); + xa = caca_rand(- w, 2 * w); ya = caca_rand(- h, 2 * h); + xb = caca_rand(- w, 2 * w); yb = caca_rand(- h, 2 * h); + xc = caca_rand(- w, 2 * w); yc = caca_rand(- h, 2 * h); } else { - xa = cucul_rand(0, w); ya = cucul_rand(0, h); - xb = cucul_rand(0, w); yb = cucul_rand(0, h); - xc = cucul_rand(0, w); yc = cucul_rand(0, h); + xa = caca_rand(0, w); ya = caca_rand(0, h); + xb = caca_rand(0, w); yb = caca_rand(0, h); + xc = caca_rand(0, w); yc = caca_rand(0, h); } - cucul_set_color_ansi(cv, cucul_rand(0, 16), cucul_rand(0, 16)); - cucul_fill_triangle(cv, xa, ya, xb, yb, xc, yc, '#'); + caca_set_color_ansi(cv, caca_rand(0, 16), caca_rand(0, 16)); + caca_fill_triangle(cv, xa, ya, xb, yb, xc, yc, '#'); - cucul_set_color_ansi(cv, cucul_rand(0, 16), CUCUL_BLACK); + caca_set_color_ansi(cv, caca_rand(0, 16), CACA_BLACK); if(outline == 2) - cucul_draw_thin_triangle(cv, xa, ya, xb, yb, xc, yc); + caca_draw_thin_triangle(cv, xa, ya, xb, yb, xc, yc); else if(outline == 1) - cucul_draw_triangle(cv, xa, ya, xb, yb, xc, yc, '#'); + caca_draw_triangle(cv, xa, ya, xb, yb, xc, yc, '#'); } #if 0 static void demo_sprites(void) { - cucul_draw_sprite(cv, cucul_rand(0, cucul_get_canvas_width(cv)), - cucul_rand(0, cucul_get_canvas_height(cv)), sprite, 0); + caca_draw_sprite(cv, caca_rand(0, caca_get_canvas_width(cv)), + caca_rand(0, caca_get_canvas_height(cv)), sprite, 0); } #endif #if 0 static void demo_render(void) { - cucul_dither_t *dither; + caca_dither_t *dither; //short buffer[256*256]; //short *dest = buffer; int buffer[256*256]; @@ -510,12 +509,12 @@ static void demo_render(void) //*dest++ = ((x >> 3) << 11) | ((y >> 2) << 5) | ((z >> 3)); *dest++ = (x << 16) | (y << 8) | (z); } - cucul_set_dither_invert(dither, 1); - //dither = cucul_create_dither(16, 256, 256, 2 * 256, 0xf800, 0x07e0, 0x001f, 0x0000); - dither = cucul_create_dither(32, 256, 256, 4 * 256, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000); - cucul_dither_bitmap(cv, 0, 0, cucul_get_canvas_width(cv), cucul_get_canvas_height(cv), + caca_set_dither_invert(dither, 1); + //dither = caca_create_dither(16, 256, 256, 2 * 256, 0xf800, 0x07e0, 0x001f, 0x0000); + dither = caca_create_dither(32, 256, 256, 4 * 256, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000); + caca_dither_bitmap(cv, 0, 0, caca_get_canvas_width(cv), caca_get_canvas_height(cv), dither, buffer); - cucul_free_dither(dither); + caca_free_dither(dither); } #endif @@ -523,7 +522,7 @@ static void draw_circle(int *buffer, int xo, int yo, int r, int mask, int val); static void demo_render(void) { - cucul_dither_t *dither; + caca_dither_t *dither; int buffer[256*256]; int *dest; int x, y, z, xo, yo; @@ -556,10 +555,10 @@ static void demo_render(void) for(z = 0; z < 240; z++) draw_circle(buffer, xo, yo, z, 0x000000ff, 200); - dither = cucul_create_dither(32, 256, 256, 4 * 256, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000); - cucul_set_dither_gamma(dither, -1.0); - cucul_dither_bitmap(cv, 0, 0, cucul_get_canvas_width(cv), cucul_get_canvas_height(cv), dither, (char *)buffer); - cucul_free_dither(dither); + dither = caca_create_dither(32, 256, 256, 4 * 256, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000); + caca_set_dither_gamma(dither, -1.0); + caca_dither_bitmap(cv, 0, 0, caca_get_canvas_width(cv), caca_get_canvas_height(cv), dither, (char *)buffer); + caca_free_dither(dither); } static void draw_circle(int *buffer, int x, int y, int r, int mask, int val) diff --git a/examples/dithering.c b/examples/dithering.c index b269032..4be8d9b 100644 --- a/examples/dithering.c +++ b/examples/dithering.c @@ -18,7 +18,6 @@ # include #endif -#include "cucul.h" #include "caca.h" #define XRATIO 100*100 @@ -27,20 +26,20 @@ unsigned int points[] = { - CUCUL_BLACK, CUCUL_DARKGRAY, CUCUL_LIGHTGRAY, - CUCUL_WHITE, CUCUL_RED, CUCUL_LIGHTRED + CACA_BLACK, CACA_DARKGRAY, CACA_LIGHTGRAY, + CACA_WHITE, CACA_RED, CACA_LIGHTRED }; char density[] = " ',+:;o&%w$W@#"; int main(int argc, char *argv[]) { - cucul_canvas_t *cv; + caca_canvas_t *cv; caca_display_t *dp; int neara, dista, nearb, distb, dist; int x, y; - cv = cucul_create_canvas(80, 24); + cv = caca_create_canvas(80, 24); if(cv == NULL) { printf("Failed to create canvas\n"); @@ -67,7 +66,7 @@ int main(int argc, char *argv[]) /* distance to 40% */ dist = XRATIO * (x - 40) * (x - 40) + YRATIO * y * y; - if(cucul_rand(-FUZZY, FUZZY+1) + dist < dista) + if(caca_rand(-FUZZY, FUZZY+1) + dist < dista) { nearb = neara; distb = dista; neara = 1; dista = dist; } @@ -78,22 +77,22 @@ int main(int argc, char *argv[]) /* check dist to 70% */ dist = XRATIO * (x - 70) * (x - 70) + YRATIO * y * y; - if(cucul_rand(-FUZZY, FUZZY+1) + dist < dista) + if(caca_rand(-FUZZY, FUZZY+1) + dist < dista) { nearb = neara; distb = dista; neara = 2; dista = dist; } - else if(cucul_rand(-FUZZY, FUZZY+1) + dist < distb) + else if(caca_rand(-FUZZY, FUZZY+1) + dist < distb) { nearb = 2; distb = dist; } /* check dist to white */ dist = XRATIO * (x - 100) * (x - 100) + YRATIO * y * y; - if(cucul_rand(-FUZZY, FUZZY+1) + dist < dista) + if(caca_rand(-FUZZY, FUZZY+1) + dist < dista) { nearb = neara; distb = dista; neara = 3; dista = dist; } - else if(cucul_rand(-FUZZY, FUZZY+1) + dist < distb) + else if(caca_rand(-FUZZY, FUZZY+1) + dist < distb) { nearb = 3; distb = dist; } @@ -102,11 +101,11 @@ int main(int argc, char *argv[]) /* check dist to dark */ dist = XRATIO * (x - 40) * (x - 40) + YRATIO * (y - 100) * (y - 100); dist = dist * 12 / 16; - if(cucul_rand(-FUZZY, FUZZY+1) + dist < dista) + if(caca_rand(-FUZZY, FUZZY+1) + dist < dista) { nearb = neara; distb = dista; neara = 4; dista = dist; } - else if(cucul_rand(-FUZZY, FUZZY+1) + dist < distb) + else if(caca_rand(-FUZZY, FUZZY+1) + dist < distb) { nearb = 4; distb = dist; } @@ -114,11 +113,11 @@ int main(int argc, char *argv[]) /* check dist to light */ dist = XRATIO * (x - 100) * (x - 100) + YRATIO * (y - 100) * (y - 100); dist = dist * 8 / 16; - if(cucul_rand(-FUZZY, FUZZY+1) + dist < dista) + if(caca_rand(-FUZZY, FUZZY+1) + dist < dista) { nearb = neara; distb = dista; neara = 5; dista = dist; } - else if(cucul_rand(-FUZZY, FUZZY+1) + dist < distb) + else if(caca_rand(-FUZZY, FUZZY+1) + dist < distb) { nearb = 5; distb = dist; } @@ -129,10 +128,10 @@ int main(int argc, char *argv[]) ch = density[distb * 2 * 13 / (dista + distb)]; else ch = density[dista * 2 * 13 / (dista + distb)]; - cucul_set_color_ansi(cv, points[nearb], points[neara]); + caca_set_color_ansi(cv, points[nearb], points[neara]); - cucul_put_char(cv, x * cucul_get_canvas_width(cv) / 100, - (100 - y) * cucul_get_canvas_height(cv) / 100, ch); + caca_put_char(cv, x * caca_get_canvas_width(cv) / 100, + (100 - y) * caca_get_canvas_height(cv) / 100, ch); } caca_refresh_display(dp); @@ -140,7 +139,7 @@ int main(int argc, char *argv[]) caca_get_event(dp, CACA_EVENT_KEY_PRESS, NULL, -1); caca_free_display(dp); - cucul_free_canvas(cv); + caca_free_canvas(cv); return 0; } diff --git a/examples/driver.c b/examples/driver.c index 910a089..d45f28b 100644 --- a/examples/driver.c +++ b/examples/driver.c @@ -19,14 +19,13 @@ # include #endif -#include "cucul.h" #include "caca.h" int main(int argc, char *argv[]) { char const * const *list; caca_display_t *dp; - cucul_canvas_t *cv; + caca_canvas_t *cv; list = caca_get_display_driver_list(); @@ -38,14 +37,14 @@ int main(int argc, char *argv[]) } cv = caca_get_canvas(dp); - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLACK); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLACK); while(1) { char const *driver; int i, cur = 0; - cucul_put_str(cv, 1, 0, "Available drivers:"); + caca_put_str(cv, 1, 0, "Available drivers:"); driver = caca_get_display_driver(dp); @@ -55,12 +54,12 @@ int main(int argc, char *argv[]) if(match) cur = i; - cucul_draw_line(cv, 0, i + 2, 9999, i + 2, ' '); - cucul_printf(cv, 2, i + 2, "%c %s (%s)", + caca_draw_line(cv, 0, i + 2, 9999, i + 2, ' '); + caca_printf(cv, 2, i + 2, "%c %s (%s)", match ? '*' : ' ', list[i], list[i + 1]); } - cucul_put_str(cv, 1, i + 2, "Switching driver in 5 seconds"); + caca_put_str(cv, 1, i + 2, "Switching driver in 5 seconds"); caca_refresh_display(dp); diff --git a/examples/event.c b/examples/event.c index 6284b56..2e540f6 100644 --- a/examples/event.c +++ b/examples/event.c @@ -20,10 +20,9 @@ # include #endif -#include "cucul.h" #include "caca.h" -static cucul_canvas_t *cv; +static caca_canvas_t *cv; static caca_display_t *dp; static void print_event(int, int, caca_event_t *); @@ -33,7 +32,7 @@ int main(int argc, char **argv) caca_event_t *events; int i, h, quit; - cv = cucul_create_canvas(80, 24); + cv = caca_create_canvas(80, 24); if(cv == NULL) { printf("Failed to create canvas\n"); @@ -47,13 +46,13 @@ int main(int argc, char **argv) return 1; } - h = cucul_get_canvas_height(cv) - 1; + h = caca_get_canvas_height(cv) - 1; - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); - cucul_draw_line(cv, 0, 0, cucul_get_canvas_width(cv) - 1, 0, ' '); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); + caca_draw_line(cv, 0, 0, caca_get_canvas_width(cv) - 1, 0, ' '); - cucul_draw_line(cv, 0, h, cucul_get_canvas_width(cv) - 1, h, ' '); - cucul_put_str(cv, 0, h, "type \"quit\" to exit"); + caca_draw_line(cv, 0, h, caca_get_canvas_width(cv) - 1, h, ' '); + caca_put_str(cv, 0, h, "type \"quit\" to exit"); caca_refresh_display(dp); @@ -91,19 +90,19 @@ int main(int argc, char **argv) } while(ret); - cucul_set_color_ansi(cv, CUCUL_LIGHTGRAY, CUCUL_BLACK); - cucul_clear_canvas(cv); + caca_set_color_ansi(cv, CACA_LIGHTGRAY, CACA_BLACK); + caca_clear_canvas(cv); /* Print current event */ - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); - cucul_draw_line(cv, 0, 0, cucul_get_canvas_width(cv) - 1, 0, ' '); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); + caca_draw_line(cv, 0, 0, caca_get_canvas_width(cv) - 1, 0, ' '); print_event(0, 0, events); - cucul_draw_line(cv, 0, h, cucul_get_canvas_width(cv) - 1, h, ' '); - cucul_printf(cv, 0, h, "type \"quit\" to exit: %s", quit_string[quit]); + caca_draw_line(cv, 0, h, caca_get_canvas_width(cv) - 1, h, ' '); + caca_printf(cv, 0, h, "type \"quit\" to exit: %s", quit_string[quit]); /* Print previous events */ - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLACK); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLACK); for(i = 1; i < h && caca_get_event_type(&events[i]); i++) print_event(0, i, events + i); @@ -113,7 +112,7 @@ int main(int argc, char **argv) /* Clean up */ free(events); caca_free_display(dp); - cucul_free_canvas(cv); + caca_free_canvas(cv); return 0; } @@ -125,40 +124,40 @@ static void print_event(int x, int y, caca_event_t *ev) switch(caca_get_event_type(ev)) { case CACA_EVENT_NONE: - cucul_printf(cv, x, y, "CACA_EVENT_NONE"); + caca_printf(cv, x, y, "CACA_EVENT_NONE"); break; case CACA_EVENT_KEY_PRESS: character = caca_get_event_key_ch(ev); - cucul_printf(cv, x, y, "CACA_EVENT_KEY_PRESS 0x%02x (%c)", character, + caca_printf(cv, x, y, "CACA_EVENT_KEY_PRESS 0x%02x (%c)", character, (character > 0x1f && character < 0x80) ? character : '?'); break; case CACA_EVENT_KEY_RELEASE: character = caca_get_event_key_ch(ev); - cucul_printf(cv, x, y, "CACA_EVENT_KEY_RELEASE 0x%02x (%c)", character, + caca_printf(cv, x, y, "CACA_EVENT_KEY_RELEASE 0x%02x (%c)", character, (character > 0x1f && character < 0x80) ? character : '?'); break; case CACA_EVENT_MOUSE_MOTION: - cucul_printf(cv, x, y, "CACA_EVENT_MOUSE_MOTION %u %u", + caca_printf(cv, x, y, "CACA_EVENT_MOUSE_MOTION %u %u", caca_get_event_mouse_x(ev), caca_get_event_mouse_y(ev)); break; case CACA_EVENT_MOUSE_PRESS: - cucul_printf(cv, x, y, "CACA_EVENT_MOUSE_PRESS %u", + caca_printf(cv, x, y, "CACA_EVENT_MOUSE_PRESS %u", caca_get_event_mouse_button(ev)); break; case CACA_EVENT_MOUSE_RELEASE: - cucul_printf(cv, x, y, "CACA_EVENT_MOUSE_RELEASE %u", + caca_printf(cv, x, y, "CACA_EVENT_MOUSE_RELEASE %u", caca_get_event_mouse_button(ev)); break; case CACA_EVENT_RESIZE: - cucul_printf(cv, x, y, "CACA_EVENT_RESIZE %u %u", + caca_printf(cv, x, y, "CACA_EVENT_RESIZE %u %u", caca_get_event_resize_width(ev), caca_get_event_resize_height(ev)); break; case CACA_EVENT_QUIT: - cucul_printf(cv, x, y, "CACA_EVENT_QUIT"); + caca_printf(cv, x, y, "CACA_EVENT_QUIT"); break; default: - cucul_printf(cv, x, y, "CACA_EVENT_UNKNOWN"); + caca_printf(cv, x, y, "CACA_EVENT_UNKNOWN"); } } diff --git a/examples/export.c b/examples/export.c index ac6b870..44872fe 100644 --- a/examples/export.c +++ b/examples/export.c @@ -1,5 +1,5 @@ /* - * export libcucul export test program + * export libcaca export test program * Copyright (c) 2006 Sam Hocevar * All Rights Reserved * @@ -20,7 +20,7 @@ # include #endif -#include "cucul.h" +#include "caca.h" #define WIDTH 80 #define HEIGHT 32 @@ -29,15 +29,15 @@ uint32_t pixels[256*256]; int main(int argc, char *argv[]) { - cucul_canvas_t *cv; - cucul_dither_t *dither; + caca_canvas_t *cv; + caca_dither_t *dither; void *buffer; char *file, *format; char const * const * exports, * const * p; size_t len; int x, y; - exports = cucul_get_export_list(); + exports = caca_get_export_list(); if(argc < 2 || argc > 3) { @@ -75,8 +75,8 @@ int main(int argc, char *argv[]) if(file) { - cv = cucul_create_canvas(0, 0); - if(cucul_import_file(cv, file, "") < 0) + cv = caca_create_canvas(0, 0); + if(caca_import_file(cv, file, "") < 0) { fprintf(stderr, "%s: `%s' has unknown format\n", argv[0], file); exit(-1); @@ -84,7 +84,7 @@ int main(int argc, char *argv[]) } else { - cv = cucul_create_canvas(WIDTH, HEIGHT); + cv = caca_create_canvas(WIDTH, HEIGHT); for(y = 0; y < 256; y++) { @@ -97,62 +97,62 @@ int main(int argc, char *argv[]) } } - dither = cucul_create_dither(32, 256, 256, 4 * 256, + dither = caca_create_dither(32, 256, 256, 4 * 256, 0x00ff0000, 0x0000ff00, 0x000000ff, 0x0); if(!strcmp(format, "ansi") || !strcmp(format, "utf8")) - cucul_set_dither_charset(dither, "shades"); - cucul_dither_bitmap(cv, 0, 0, cucul_get_canvas_width(cv), - cucul_get_canvas_height(cv), dither, pixels); - cucul_free_dither(dither); + caca_set_dither_charset(dither, "shades"); + caca_dither_bitmap(cv, 0, 0, caca_get_canvas_width(cv), + caca_get_canvas_height(cv), dither, pixels); + caca_free_dither(dither); - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLACK); - cucul_draw_thin_box(cv, 0, 0, WIDTH - 1, HEIGHT - 1); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLACK); + caca_draw_thin_box(cv, 0, 0, WIDTH - 1, HEIGHT - 1); - cucul_set_color_ansi(cv, CUCUL_BLACK, CUCUL_WHITE); - cucul_fill_ellipse(cv, WIDTH / 2, HEIGHT / 2, + caca_set_color_ansi(cv, CACA_BLACK, CACA_WHITE); + caca_fill_ellipse(cv, WIDTH / 2, HEIGHT / 2, WIDTH / 4, HEIGHT / 4, ' '); - cucul_set_color_ansi(cv, CUCUL_LIGHTGRAY, CUCUL_BLACK); - cucul_put_str(cv, WIDTH / 2 - 12, HEIGHT / 2 - 6, + caca_set_color_ansi(cv, CACA_LIGHTGRAY, CACA_BLACK); + caca_put_str(cv, WIDTH / 2 - 12, HEIGHT / 2 - 6, " lightgray on black "); - cucul_set_color_ansi(cv, CUCUL_DEFAULT, CUCUL_TRANSPARENT); - cucul_put_str(cv, WIDTH / 2 - 12, HEIGHT / 2 - 5, + caca_set_color_ansi(cv, CACA_DEFAULT, CACA_TRANSPARENT); + caca_put_str(cv, WIDTH / 2 - 12, HEIGHT / 2 - 5, " default on transparent "); - cucul_set_color_ansi(cv, CUCUL_BLACK, CUCUL_WHITE); - cucul_put_str(cv, WIDTH / 2 - 12, HEIGHT / 2 - 4, + caca_set_color_ansi(cv, CACA_BLACK, CACA_WHITE); + caca_put_str(cv, WIDTH / 2 - 12, HEIGHT / 2 - 4, " black on white "); - cucul_set_color_ansi(cv, CUCUL_BLACK, CUCUL_WHITE); - cucul_put_str(cv, WIDTH / 2 - 8, HEIGHT / 2 - 3, "[<><><><> <>--<>]"); - cucul_put_str(cv, WIDTH / 2 - 8, HEIGHT / 2 - 2, "[ドラゴン ボーレ]"); - cucul_put_str(cv, WIDTH / 2 - 7, HEIGHT / 2 + 2, "äβç ░▒▓█▓▒░ ΔЗҒ"); - cucul_put_str(cv, WIDTH / 2 - 5, HEIGHT / 2 + 4, "(\") \\o/ <&>"); - - cucul_set_attr(cv, CUCUL_BOLD); - cucul_put_str(cv, WIDTH / 2 - 16, HEIGHT / 2 + 3, "Bold"); - cucul_set_attr(cv, CUCUL_BLINK); - cucul_put_str(cv, WIDTH / 2 - 9, HEIGHT / 2 + 3, "Blink"); - cucul_set_attr(cv, CUCUL_ITALICS); - cucul_put_str(cv, WIDTH / 2 - 1, HEIGHT / 2 + 3, "Italics"); - cucul_set_attr(cv, CUCUL_UNDERLINE); - cucul_put_str(cv, WIDTH / 2 + 8, HEIGHT / 2 + 3, "Underline"); - cucul_set_attr(cv, 0); - - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_LIGHTBLUE); - cucul_put_str(cv, WIDTH / 2 - 7, HEIGHT / 2, " LIBCACA "); + caca_set_color_ansi(cv, CACA_BLACK, CACA_WHITE); + caca_put_str(cv, WIDTH / 2 - 8, HEIGHT / 2 - 3, "[<><><><> <>--<>]"); + caca_put_str(cv, WIDTH / 2 - 8, HEIGHT / 2 - 2, "[ドラゴン ボーレ]"); + caca_put_str(cv, WIDTH / 2 - 7, HEIGHT / 2 + 2, "äβç ░▒▓█▓▒░ ΔЗҒ"); + caca_put_str(cv, WIDTH / 2 - 5, HEIGHT / 2 + 4, "(\") \\o/ <&>"); + + caca_set_attr(cv, CACA_BOLD); + caca_put_str(cv, WIDTH / 2 - 16, HEIGHT / 2 + 3, "Bold"); + caca_set_attr(cv, CACA_BLINK); + caca_put_str(cv, WIDTH / 2 - 9, HEIGHT / 2 + 3, "Blink"); + caca_set_attr(cv, CACA_ITALICS); + caca_put_str(cv, WIDTH / 2 - 1, HEIGHT / 2 + 3, "Italics"); + caca_set_attr(cv, CACA_UNDERLINE); + caca_put_str(cv, WIDTH / 2 + 8, HEIGHT / 2 + 3, "Underline"); + caca_set_attr(cv, 0); + + caca_set_color_ansi(cv, CACA_WHITE, CACA_LIGHTBLUE); + caca_put_str(cv, WIDTH / 2 - 7, HEIGHT / 2, " LIBCACA "); for(x = 0; x < 16; x++) { - cucul_set_color_argb(cv, 0xff00 | x, 0xf00f | (x << 4)); - cucul_put_char(cv, WIDTH / 2 - 7 + x, HEIGHT / 2 + 6, '#'); + caca_set_color_argb(cv, 0xff00 | x, 0xf00f | (x << 4)); + caca_put_char(cv, WIDTH / 2 - 7 + x, HEIGHT / 2 + 6, '#'); } } - buffer = cucul_export_memory(cv, format, &len); + buffer = caca_export_memory(cv, format, &len); fwrite(buffer, len, 1, stdout); free(buffer); - cucul_free_canvas(cv); + caca_free_canvas(cv); return 0; } diff --git a/examples/figfont.c b/examples/figfont.c index f49e775..4b8d5db 100644 --- a/examples/figfont.c +++ b/examples/figfont.c @@ -1,5 +1,5 @@ /* - * figfont libcucul FIGfont test program + * figfont libcaca FIGfont test program * Copyright (c) 2007 Sam Hocevar * All Rights Reserved * @@ -19,11 +19,11 @@ # include #endif -#include "cucul.h" +#include "caca.h" int main(int argc, char *argv[]) { - cucul_canvas_t *cv; + caca_canvas_t *cv; void *buffer; size_t len; uint8_t color = 0; @@ -34,8 +34,8 @@ int main(int argc, char *argv[]) return -1; } - cv = cucul_create_canvas(0, 0); - if(cucul_canvas_set_figfont(cv, argv[1])) + cv = caca_create_canvas(0, 0); + if(caca_canvas_set_figfont(cv, argv[1])) { fprintf(stderr, "Could not open font\n"); return -1; @@ -43,15 +43,15 @@ int main(int argc, char *argv[]) while(argv[2][0]) { - cucul_set_color_ansi(cv, 1 + ((color += 4) % 15), CUCUL_TRANSPARENT); - cucul_put_figchar(cv, argv[2]++[0]); + caca_set_color_ansi(cv, 1 + ((color += 4) % 15), CACA_TRANSPARENT); + caca_put_figchar(cv, argv[2]++[0]); } - buffer = cucul_export_memory(cv, "utf8", &len); + buffer = caca_export_memory(cv, "utf8", &len); fwrite(buffer, len, 1, stdout); free(buffer); - cucul_free_canvas(cv); + caca_free_canvas(cv); return 0; } diff --git a/examples/font.c b/examples/font.c index 57892c5..8373644 100644 --- a/examples/font.c +++ b/examples/font.c @@ -1,5 +1,5 @@ /* - * font libcucul font test program + * font libcaca font test program * Copyright (c) 2006 Sam Hocevar * All Rights Reserved * @@ -24,21 +24,20 @@ # include #endif -#include "cucul.h" #include "caca.h" int main(int argc, char *argv[]) { - cucul_canvas_t *cv; + caca_canvas_t *cv; caca_display_t *dp; - cucul_font_t *f; - cucul_dither_t *d; + caca_font_t *f; + caca_dither_t *d; uint8_t *buf; unsigned int w, h; char const * const * fonts; /* Create a canvas */ - cv = cucul_create_canvas(8, 2); + cv = caca_create_canvas(8, 2); if(cv == NULL) { printf("Can't create canvas\n"); @@ -47,21 +46,21 @@ int main(int argc, char *argv[]) /* Draw stuff on our canvas */ - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLACK); - cucul_put_str(cv, 0, 0, "ABcde"); - cucul_set_color_ansi(cv, CUCUL_LIGHTRED, CUCUL_BLACK); - cucul_put_str(cv, 5, 0, "\\o/"); - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); - cucul_put_str(cv, 0, 1, "&$âøÿØ?!"); - - /* Load a libcucul internal font */ - fonts = cucul_get_font_list(); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLACK); + caca_put_str(cv, 0, 0, "ABcde"); + caca_set_color_ansi(cv, CACA_LIGHTRED, CACA_BLACK); + caca_put_str(cv, 5, 0, "\\o/"); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); + caca_put_str(cv, 0, 1, "&$âøÿØ?!"); + + /* Load a libcaca internal font */ + fonts = caca_get_font_list(); if(fonts[0] == NULL) { - fprintf(stderr, "error: libcucul was compiled without any fonts\n"); + fprintf(stderr, "error: libcaca was compiled without any fonts\n"); return -1; } - f = cucul_load_font(fonts[0], 0); + f = caca_load_font(fonts[0], 0); if(f == NULL) { fprintf(stderr, "error: could not load font \"%s\"\n", fonts[0]); @@ -69,15 +68,15 @@ int main(int argc, char *argv[]) } /* Create our bitmap buffer (32-bit ARGB) */ - w = cucul_get_canvas_width(cv) * cucul_get_font_width(f); - h = cucul_get_canvas_height(cv) * cucul_get_font_height(f); + w = caca_get_canvas_width(cv) * caca_get_font_width(f); + h = caca_get_canvas_height(cv) * caca_get_font_height(f); buf = malloc(4 * w * h); /* Render the canvas onto our image buffer */ - cucul_render_canvas(cv, f, buf, w, h, 4 * w); + caca_render_canvas(cv, f, buf, w, h, 4 * w); /* Just for fun, render the image using libcaca */ - cucul_set_canvas_size(cv, 80, 32); + caca_set_canvas_size(cv, 80, 32); dp = caca_create_display(cv); { @@ -88,15 +87,15 @@ int main(int argc, char *argv[]) uint32_t const tmp = 0x12345678; if(*(uint8_t const *)&tmp == 0x12) #endif - d = cucul_create_dither(32, w, h, 4 * w, + d = caca_create_dither(32, w, h, 4 * w, 0xff0000, 0xff00, 0xff, 0xff000000); else - d = cucul_create_dither(32, w, h, 4 * w, + d = caca_create_dither(32, w, h, 4 * w, 0xff00, 0xff0000, 0xff000000, 0xff); } - cucul_dither_bitmap(cv, 0, 0, cucul_get_canvas_width(cv), - cucul_get_canvas_height(cv), d, buf); + caca_dither_bitmap(cv, 0, 0, caca_get_canvas_width(cv), + caca_get_canvas_height(cv), d, buf); caca_refresh_display(dp); caca_get_event(dp, CACA_EVENT_KEY_PRESS, NULL, -1); @@ -104,9 +103,9 @@ int main(int argc, char *argv[]) /* Free everything */ caca_free_display(dp); free(buf); - cucul_free_dither(d); - cucul_free_font(f); - cucul_free_canvas(cv); + caca_free_dither(d); + caca_free_font(f); + caca_free_canvas(cv); return 0; } diff --git a/examples/font2tga.c b/examples/font2tga.c index 1b68058..57d71a7 100644 --- a/examples/font2tga.c +++ b/examples/font2tga.c @@ -1,5 +1,5 @@ /* - * font2tga libcucul font test program + * font2tga libcaca font test program * Copyright (c) 2006 Sam Hocevar * All Rights Reserved * @@ -19,27 +19,27 @@ # include #endif -#include "cucul.h" +#include "caca.h" int main(int argc, char *argv[]) { uint32_t const *blocks; - cucul_font_t *f; + caca_font_t *f; char const * const * fonts; - cucul_canvas_t *cv; + caca_canvas_t *cv; void *buffer; size_t len; unsigned int i, j, x, y, cells, width; - fonts = cucul_get_font_list(); - f = cucul_load_font(fonts[0], 0); - blocks = cucul_get_font_blocks(f); + fonts = caca_get_font_list(); + f = caca_load_font(fonts[0], 0); + blocks = caca_get_font_blocks(f); for(i = 0, cells = 0; blocks[i + 1]; i += 2) { cells += blocks[i + 1] - blocks[i]; for(j = blocks[i]; j < blocks[i + 1]; j++) - if(cucul_utf32_is_fullwidth(j)) + if(caca_utf32_is_fullwidth(j)) cells++; } @@ -47,10 +47,10 @@ int main(int argc, char *argv[]) ; /* Create a canvas */ - cv = cucul_create_canvas(width, (cells + width - 1) / (width - 1)); - cucul_set_color_ansi(cv, CUCUL_RED, CUCUL_RED); - cucul_clear_canvas(cv); - cucul_set_color_ansi(cv, CUCUL_BLACK, CUCUL_WHITE); + cv = caca_create_canvas(width, (cells + width - 1) / (width - 1)); + caca_set_color_ansi(cv, CACA_RED, CACA_RED); + caca_clear_canvas(cv); + caca_set_color_ansi(cv, CACA_BLACK, CACA_WHITE); /* Put all glyphs on the canvas */ x = y = 0; @@ -59,9 +59,9 @@ int main(int argc, char *argv[]) { for(j = blocks[i]; j < blocks[i + 1]; j++) { - cucul_put_char(cv, x, y, j); + caca_put_char(cv, x, y, j); - if(cucul_utf32_is_fullwidth(j)) + if(caca_utf32_is_fullwidth(j)) ++x; if(++x >= width - 1) @@ -72,14 +72,14 @@ int main(int argc, char *argv[]) } } - cucul_free_font(f); + caca_free_font(f); - buffer = cucul_export_memory(cv, "tga", &len); + buffer = caca_export_memory(cv, "tga", &len); fwrite(buffer, len, 1, stdout); free(buffer); /* Free everything */ - cucul_free_canvas(cv); + caca_free_canvas(cv); return 0; } diff --git a/examples/frames.c b/examples/frames.c index 302950c..467e302 100644 --- a/examples/frames.c +++ b/examples/frames.c @@ -18,18 +18,17 @@ # include #endif -#include "cucul.h" #include "caca.h" int main(int argc, char *argv[]) { - cucul_canvas_t *cv; + caca_canvas_t *cv; caca_display_t *dp; int n, frame; /* Create a canvas with 200 frames */ - cv = cucul_create_canvas(0, 0); + cv = caca_create_canvas(0, 0); if(cv == NULL) { printf("Can't create canvas\n"); @@ -37,44 +36,44 @@ int main(int argc, char *argv[]) } for(frame = 1; frame < 200; frame++) - cucul_create_frame(cv, frame); + caca_create_frame(cv, frame); fprintf(stderr, "canvas created, size is %ix%i\n", - cucul_get_canvas_width(cv), cucul_get_canvas_height(cv)); + caca_get_canvas_width(cv), caca_get_canvas_height(cv)); /* Resize it to 150 x 80 (around 19MB) */ - cucul_set_canvas_size(cv, 150, 80); + caca_set_canvas_size(cv, 150, 80); fprintf(stderr, "canvas expanded, size is %ix%i\n", - cucul_get_canvas_width(cv), cucul_get_canvas_height(cv)); + caca_get_canvas_width(cv), caca_get_canvas_height(cv)); /* Fill the first 16 frames with a different colour */ for(frame = 0; frame < 16; frame++) { - cucul_set_frame(cv, frame); - cucul_set_color_ansi(cv, CUCUL_WHITE, frame); - cucul_fill_box(cv, 0, 0, 40, 15, ':'); - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); - cucul_put_str(cv, frame * 5 / 2, frame, "カカ"); - cucul_set_color_ansi(cv, CUCUL_DEFAULT, CUCUL_TRANSPARENT); + caca_set_frame(cv, frame); + caca_set_color_ansi(cv, CACA_WHITE, frame); + caca_fill_box(cv, 0, 0, 40, 15, ':'); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); + caca_put_str(cv, frame * 5 / 2, frame, "カカ"); + caca_set_color_ansi(cv, CACA_DEFAULT, CACA_TRANSPARENT); } /* Resize it to a more decent size */ - cucul_set_canvas_size(cv, 41, 16); + caca_set_canvas_size(cv, 41, 16); fprintf(stderr, "canvas shrinked, size is %ix%i\n", - cucul_get_canvas_width(cv), cucul_get_canvas_height(cv)); + caca_get_canvas_width(cv), caca_get_canvas_height(cv)); dp = caca_create_display(cv); caca_set_display_time(dp, 50000); fprintf(stderr, "display attached, size is %ix%i\n", - cucul_get_canvas_width(cv), cucul_get_canvas_height(cv)); + caca_get_canvas_width(cv), caca_get_canvas_height(cv)); n = 0; while(!caca_get_event(dp, CACA_EVENT_KEY_PRESS, NULL, 0)) { - cucul_set_frame(cv, n % 16); + caca_set_frame(cv, n % 16); caca_refresh_display(dp); n++; } @@ -83,7 +82,7 @@ int main(int argc, char *argv[]) /* It is possible, though not necessary, to free all additional frames * separately. */ - cucul_free_canvas(cv); + caca_free_canvas(cv); return 0; } diff --git a/examples/fullwidth.c b/examples/fullwidth.c index dfff4fb..f6a925f 100644 --- a/examples/fullwidth.c +++ b/examples/fullwidth.c @@ -18,19 +18,18 @@ # include #endif -#include "cucul.h" #include "caca.h" #define CACA "쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊" int main(int argc, char *argv[]) { - cucul_canvas_t *cv, *caca, *line; + caca_canvas_t *cv, *caca, *line; caca_display_t *dp; unsigned int i; - cv = cucul_create_canvas(0, 0); + cv = caca_create_canvas(0, 0); if(cv == NULL) { printf("Can't created canvas\n"); @@ -43,42 +42,42 @@ int main(int argc, char *argv[]) return -1; } - caca = cucul_create_canvas(6, 10); - line = cucul_create_canvas(2, 1); + caca = caca_create_canvas(6, 10); + line = caca_create_canvas(2, 1); /* Line of x's */ for(i = 0; i < 10; i++) { - cucul_set_color_ansi(caca, CUCUL_WHITE, CUCUL_BLUE); - cucul_put_str(caca, 0, i, CACA); - cucul_set_color_ansi(caca, CUCUL_WHITE, CUCUL_RED); - cucul_put_char(caca, i - 2, i, 'x'); + caca_set_color_ansi(caca, CACA_WHITE, CACA_BLUE); + caca_put_str(caca, 0, i, CACA); + caca_set_color_ansi(caca, CACA_WHITE, CACA_RED); + caca_put_char(caca, i - 2, i, 'x'); } - cucul_blit(cv, 1, 1, caca, NULL); + caca_blit(cv, 1, 1, caca, NULL); /* Line of ホ's */ for(i = 0; i < 10; i++) { - cucul_set_color_ansi(caca, CUCUL_WHITE, CUCUL_BLUE); - cucul_put_str(caca, 0, i, CACA); - cucul_set_color_ansi(caca, CUCUL_WHITE, CUCUL_GREEN); - cucul_put_str(caca, i - 2, i, "ホ"); + caca_set_color_ansi(caca, CACA_WHITE, CACA_BLUE); + caca_put_str(caca, 0, i, CACA); + caca_set_color_ansi(caca, CACA_WHITE, CACA_GREEN); + caca_put_str(caca, i - 2, i, "ホ"); } - cucul_blit(cv, 15, 1, caca, NULL); + caca_blit(cv, 15, 1, caca, NULL); /* Line of canvas */ - cucul_set_color_ansi(line, CUCUL_WHITE, CUCUL_MAGENTA); - cucul_put_str(line, 0, 0, "ほ"); + caca_set_color_ansi(line, CACA_WHITE, CACA_MAGENTA); + caca_put_str(line, 0, 0, "ほ"); for(i = 0; i < 10; i++) { - cucul_set_color_ansi(caca, CUCUL_WHITE, CUCUL_BLUE); - cucul_put_str(caca, 0, i, CACA); - cucul_blit(caca, i - 2, i, line, NULL); + caca_set_color_ansi(caca, CACA_WHITE, CACA_BLUE); + caca_put_str(caca, 0, i, CACA); + caca_blit(caca, i - 2, i, line, NULL); } - cucul_blit(cv, 29, 1, caca, NULL); + caca_blit(cv, 29, 1, caca, NULL); caca_refresh_display(dp); @@ -86,9 +85,9 @@ int main(int argc, char *argv[]) caca_free_display(dp); - cucul_free_canvas(line); - cucul_free_canvas(caca); - cucul_free_canvas(cv); + caca_free_canvas(line); + caca_free_canvas(caca); + caca_free_canvas(cv); return 0; } diff --git a/examples/gamma.c b/examples/gamma.c index 4cf912e..a36cdd4 100644 --- a/examples/gamma.c +++ b/examples/gamma.c @@ -1,5 +1,5 @@ /* - * gamma libcucul gamma test program + * gamma libcaca gamma test program * Copyright (c) 2006 Sam Hocevar * All Rights Reserved * @@ -19,7 +19,6 @@ # include #endif -#include "cucul.h" #include "caca.h" uint32_t buffer[256 * 4]; @@ -27,13 +26,13 @@ uint32_t buffer[256 * 4]; int main(int argc, char *argv[]) { caca_event_t ev; - cucul_canvas_t *cv, *cw, *mask; + caca_canvas_t *cv, *cw, *mask; caca_display_t *dp; - cucul_dither_t *left, *right; + caca_dither_t *left, *right; float gam; int x; - cv = cucul_create_canvas(0, 0); + cv = caca_create_canvas(0, 0); if(cv == NULL) { printf("Can't created canvas\n"); @@ -46,8 +45,8 @@ int main(int argc, char *argv[]) return -1; } - cw = cucul_create_canvas(cucul_get_canvas_width(cv), cucul_get_canvas_height(cv)); - mask = cucul_create_canvas(cucul_get_canvas_width(cv), cucul_get_canvas_height(cv)); + cw = caca_create_canvas(caca_get_canvas_width(cv), caca_get_canvas_height(cv)); + mask = caca_create_canvas(caca_get_canvas_width(cv), caca_get_canvas_height(cv)); for(x = 0; x < 256; x++) { @@ -57,11 +56,11 @@ int main(int argc, char *argv[]) buffer[x + 768] = (x << 16) | (0x00 << 8) | (0xff << 0); } - left = cucul_create_dither(32, 256, 4, 4 * 256, + left = caca_create_dither(32, 256, 4, 4 * 256, 0x00ff0000, 0x0000ff00, 0x000000ff, 0x0); - right = cucul_create_dither(32, 256, 4, 4 * 256, + right = caca_create_dither(32, 256, 4, 4 * 256, 0x00ff0000, 0x0000ff00, 0x000000ff, 0x0); - gam = cucul_get_dither_gamma(right); + gam = caca_get_dither_gamma(right); caca_set_display_time(dp, 20000); for(x = 0; ; x++) @@ -81,46 +80,46 @@ int main(int argc, char *argv[]) } /* Resize the spare canvas, just in case the main one changed */ - cucul_set_canvas_size(cw, cucul_get_canvas_width(cv), cucul_get_canvas_height(cv)); - cucul_set_canvas_size(mask, cucul_get_canvas_width(cv), cucul_get_canvas_height(cv)); + caca_set_canvas_size(cw, caca_get_canvas_width(cv), caca_get_canvas_height(cv)); + caca_set_canvas_size(mask, caca_get_canvas_width(cv), caca_get_canvas_height(cv)); /* Draw the regular dither on the main canvas */ - cucul_dither_bitmap(cv, 0, 0, cucul_get_canvas_width(cv), - cucul_get_canvas_height(cv), left, buffer); + caca_dither_bitmap(cv, 0, 0, caca_get_canvas_width(cv), + caca_get_canvas_height(cv), left, buffer); /* Draw the gamma-modified dither on the spare canvas */ - cucul_set_dither_gamma(right, gam); - cucul_dither_bitmap(cw, 0, 0, cucul_get_canvas_width(cw), - cucul_get_canvas_height(cw), right, buffer); + caca_set_dither_gamma(right, gam); + caca_dither_bitmap(cw, 0, 0, caca_get_canvas_width(cw), + caca_get_canvas_height(cw), right, buffer); /* Draw something on the mask */ - cucul_set_color_ansi(mask, CUCUL_LIGHTGRAY, CUCUL_BLACK); - cucul_clear_canvas(mask); - cucul_set_color_ansi(mask, CUCUL_WHITE, CUCUL_WHITE); - cucul_fill_ellipse(mask, (1.0 + sin(0.05 * (float)x)) - * 0.5 * cucul_get_canvas_width(mask), + caca_set_color_ansi(mask, CACA_LIGHTGRAY, CACA_BLACK); + caca_clear_canvas(mask); + caca_set_color_ansi(mask, CACA_WHITE, CACA_WHITE); + caca_fill_ellipse(mask, (1.0 + sin(0.05 * (float)x)) + * 0.5 * caca_get_canvas_width(mask), (1.0 + cos(0.05 * (float)x)) - * 0.5 * cucul_get_canvas_height(mask), - cucul_get_canvas_width(mask) / 2, - cucul_get_canvas_height(mask) / 2, '#'); + * 0.5 * caca_get_canvas_height(mask), + caca_get_canvas_width(mask) / 2, + caca_get_canvas_height(mask) / 2, '#'); /* Blit the spare canvas onto the first one */ - cucul_blit(cv, 0, 0, cw, mask); + caca_blit(cv, 0, 0, cw, mask); - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); - cucul_printf(cv, 2, 1, + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); + caca_printf(cv, 2, 1, "gamma=%g - use arrows to change, Esc to quit", gam); caca_refresh_display(dp); } - cucul_free_dither(left); - cucul_free_dither(right); + caca_free_dither(left); + caca_free_dither(right); caca_free_display(dp); - cucul_free_canvas(mask); - cucul_free_canvas(cw); - cucul_free_canvas(cv); + caca_free_canvas(mask); + caca_free_canvas(cw); + caca_free_canvas(cv); return 0; } diff --git a/examples/hsv.c b/examples/hsv.c index d835df9..d459f63 100644 --- a/examples/hsv.c +++ b/examples/hsv.c @@ -18,7 +18,6 @@ # include #endif -#include "cucul.h" #include "caca.h" uint32_t buffer[256*256]; @@ -26,9 +25,9 @@ uint32_t buffer[256*256]; int main(int argc, char *argv[]) { caca_display_t *dp; - cucul_canvas_t *cv; + caca_canvas_t *cv; - cucul_dither_t *dither; + caca_dither_t *dither; int x, y; dp = caca_create_display(NULL); @@ -46,11 +45,11 @@ int main(int argc, char *argv[]) buffer[y * 256 + x] = ((y * x / 256) << 16) | ((y * x / 256) << 8) | (x<< 0); } - dither = cucul_create_dither(32, 256, 256, 4 * 256, + dither = caca_create_dither(32, 256, 256, 4 * 256, 0x00ff0000, 0x0000ff00, 0x000000ff, 0x0); - cucul_dither_bitmap(caca_get_canvas(dp), 0, 0, cucul_get_canvas_width(cv), - cucul_get_canvas_height(cv), dither, buffer); - cucul_free_dither(dither); + caca_dither_bitmap(caca_get_canvas(dp), 0, 0, caca_get_canvas_width(cv), + caca_get_canvas_height(cv), dither, buffer); + caca_free_dither(dither); caca_refresh_display(dp); diff --git a/examples/import.c b/examples/import.c index 9658ee2..d235f62 100644 --- a/examples/import.c +++ b/examples/import.c @@ -19,12 +19,11 @@ # include #endif -#include "cucul.h" #include "caca.h" int main(int argc, char *argv[]) { - cucul_canvas_t *cv; + caca_canvas_t *cv; caca_display_t *dp; if(argc < 2) @@ -34,17 +33,17 @@ int main(int argc, char *argv[]) return 1; } - cv = cucul_create_canvas(0, 0); + cv = caca_create_canvas(0, 0); if(cv == NULL) { printf("Can't create canvas\n"); return -1; } - if(cucul_import_file(cv, argv[1], argc >= 3 ? argv[2] : "") < 0) + if(caca_import_file(cv, argv[1], argc >= 3 ? argv[2] : "") < 0) { fprintf(stderr, "%s: could not open `%s'.\n", argv[0], argv[1]); - cucul_free_canvas(cv); + caca_free_canvas(cv); return 1; } @@ -60,7 +59,7 @@ int main(int argc, char *argv[]) caca_get_event(dp, CACA_EVENT_KEY_PRESS, NULL, -1); caca_free_display(dp); - cucul_free_canvas(cv); + caca_free_canvas(cv); return 0; } diff --git a/examples/input.c b/examples/input.c index 0e1aec3..4c76379 100644 --- a/examples/input.c +++ b/examples/input.c @@ -19,7 +19,6 @@ # include #endif -#include "cucul.h" #include "caca.h" #define BUFFER_SIZE 75 @@ -34,11 +33,11 @@ typedef struct textentry int main(int argc, char *argv[]) { textentry entries[TEXT_ENTRIES]; - cucul_canvas_t *cv; + caca_canvas_t *cv; caca_display_t *dp; unsigned int i, e = 0, running = 1; - cv = cucul_create_canvas(0, 0); + cv = caca_create_canvas(0, 0); if(cv == NULL) { printf("Can't create canvas\n"); @@ -52,8 +51,8 @@ int main(int argc, char *argv[]) } caca_set_cursor(dp, 1); - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); - cucul_put_str(cv, 1, 1, "Text entries - press tab to cycle"); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); + caca_put_str(cv, 1, 1, "Text entries - press tab to cycle"); for(i = 0; i < TEXT_ENTRIES; i++) { @@ -70,21 +69,21 @@ int main(int argc, char *argv[]) { unsigned int j, start, size; - cucul_set_color_ansi(cv, CUCUL_BLACK, CUCUL_LIGHTGRAY); - cucul_fill_box(cv, 2, 3 * i + 4, 2 + BUFFER_SIZE, 3 * i + 4, ' '); + caca_set_color_ansi(cv, CACA_BLACK, CACA_LIGHTGRAY); + caca_fill_box(cv, 2, 3 * i + 4, 2 + BUFFER_SIZE, 3 * i + 4, ' '); start = 0; size = entries[i].size; for(j = 0; j < size; j++) { - cucul_put_char(cv, 2 + j, 3 * i + 4, + caca_put_char(cv, 2 + j, 3 * i + 4, entries[i].buffer[start + j]); } } /* Put the cursor on the active textentry */ - cucul_gotoxy(cv, 2 + entries[e].cursor, 3 * e + 4); + caca_gotoxy(cv, 2 + entries[e].cursor, 3 * e + 4); caca_refresh_display(dp); @@ -149,7 +148,7 @@ int main(int argc, char *argv[]) } caca_free_display(dp); - cucul_free_canvas(cv); + caca_free_canvas(cv); return 0; } diff --git a/examples/spritedit.c b/examples/spritedit.c index fba3180..ccb7c26 100644 --- a/examples/spritedit.c +++ b/examples/spritedit.c @@ -20,7 +20,6 @@ # include #endif -#include "cucul.h" #include "caca.h" /* Courtesy of Zashi */ @@ -48,46 +47,46 @@ char *guy[] = { int main(int argc, char **argv) { - cucul_canvas_t *sprite; + caca_canvas_t *sprite; size_t len; void *buffer; int i; /* Create a canvas with 4 frames */ - sprite = cucul_create_canvas(0, 0); + sprite = caca_create_canvas(0, 0); for(i = 0; i < 3; i++) - cucul_create_frame(sprite, 0); + caca_create_frame(sprite, 0); /* Load stuff in all 4 frames */ for(i = 0; i < 4; i++) { - cucul_set_frame(sprite, i); - cucul_import_memory(sprite, guy[i], strlen(guy[i]), "utf8"); + caca_set_frame(sprite, i); + caca_import_memory(sprite, guy[i], strlen(guy[i]), "utf8"); } /* Export our sprite in a memory buffer. We could save this to * disk afterwards. */ - buffer = cucul_export_memory(sprite, "caca", &len); + buffer = caca_export_memory(sprite, "caca", &len); /* Free our sprite and reload it from the memory buffer. We could * load this from disk, too. */ - cucul_free_canvas(sprite); - sprite = cucul_create_canvas(0, 0); - cucul_import_memory(sprite, buffer, len, "caca"); + caca_free_canvas(sprite); + sprite = caca_create_canvas(0, 0); + caca_import_memory(sprite, buffer, len, "caca"); free(buffer); /* Print each sprite frame to stdout */ for(i = 0; i < 4; i++) { - cucul_set_frame(sprite, i); + caca_set_frame(sprite, i); printf("Frame #%i\n", i); - buffer = cucul_export_memory(sprite, "utf8", &len); + buffer = caca_export_memory(sprite, "utf8", &len); fwrite(buffer, len, 1, stdout); free(buffer); } /* Free our sprite */ - cucul_free_canvas(sprite); + caca_free_canvas(sprite); return 0; } diff --git a/examples/swallow.c b/examples/swallow.c index 25ca9c9..8523406 100644 --- a/examples/swallow.c +++ b/examples/swallow.c @@ -20,13 +20,12 @@ # include #endif -#include "cucul.h" #include "caca.h" int main(int argc, char **argv) { char cmd[BUFSIZ]; - static cucul_canvas_t *cv, *app; + static caca_canvas_t *cv, *app; static caca_display_t *dp; uint8_t *buf[4]; long int bytes[4], total[4]; @@ -39,8 +38,8 @@ int main(int argc, char **argv) return 1; } - cv = cucul_create_canvas(0, 0); - app = cucul_create_canvas(0, 0); + cv = caca_create_canvas(0, 0); + app = caca_create_canvas(0, 0); dp = caca_create_display(cv); if(cv == NULL || app == NULL ) @@ -54,15 +53,15 @@ int main(int argc, char **argv) return -1; } - w = (cucul_get_canvas_width(cv) - 4) / 2; - h = (cucul_get_canvas_height(cv) - 6) / 2; + w = (caca_get_canvas_width(cv) - 4) / 2; + h = (caca_get_canvas_height(cv) - 6) / 2; if(w < 0 || h < 0) return 1; - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); - cucul_draw_line(cv, 0, 0, cucul_get_canvas_width(cv) - 1, 0, ' '); - cucul_printf(cv, cucul_get_canvas_width(cv) / 2 - 10, 0, + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); + caca_draw_line(cv, 0, 0, caca_get_canvas_width(cv) - 1, 0, ' '); + caca_printf(cv, caca_get_canvas_width(cv) / 2 - 10, 0, "libcaca multiplexer"); for(i = 0; i < 4; i++) @@ -74,7 +73,7 @@ int main(int argc, char **argv) f[i] = popen(cmd, "r"); if(!f[i]) return 1; - cucul_printf(cv, (w + 2) * (i / 2) + 1, + caca_printf(cv, (w + 2) * (i / 2) + 1, (h + 2) * ((i % 2) + 1), "%s", argv[i + 1]); } @@ -88,14 +87,14 @@ int main(int argc, char **argv) for(i = 0; i < 4; i++) { - bytes[i] = cucul_import_memory(app, buf[i], total[i], "caca"); + bytes[i] = caca_import_memory(app, buf[i], total[i], "caca"); if(bytes[i] > 0) { total[i] -= bytes[i]; memmove(buf[i], buf[i] + bytes[i], total[i]); - cucul_blit(cv, (w + 2) * (i / 2) + 1, + caca_blit(cv, (w + 2) * (i / 2) + 1, (h + 2) * (i % 2) + 2, app, NULL); caca_refresh_display(dp); } @@ -115,8 +114,8 @@ int main(int argc, char **argv) /* Clean up */ caca_free_display(dp); - cucul_free_canvas(cv); - cucul_free_canvas(app); + caca_free_canvas(cv); + caca_free_canvas(app); return 0; } diff --git a/examples/text.c b/examples/text.c index 2569c8d..de4bd10 100644 --- a/examples/text.c +++ b/examples/text.c @@ -20,7 +20,7 @@ # include #endif -#include "cucul.h" +#include "caca.h" #define STRING \ " |_| \n" \ @@ -35,16 +35,16 @@ int main(int argc, char *argv[]) { - cucul_canvas_t *cv, *pig; + caca_canvas_t *cv, *pig; void *buffer; size_t len; int i, j; - pig = cucul_create_canvas(0, 0); - cucul_import_memory(pig, STRING, strlen(STRING), "text"); + pig = caca_create_canvas(0, 0); + caca_import_memory(pig, STRING, strlen(STRING), "text"); - cv = cucul_create_canvas(cucul_get_canvas_width(pig) * 2, - cucul_get_canvas_height(pig) * 2); + cv = caca_create_canvas(caca_get_canvas_width(pig) * 2, + caca_get_canvas_height(pig) * 2); if(cv == NULL || pig == NULL) { @@ -52,41 +52,41 @@ int main(int argc, char *argv[]) return -1; } - cucul_blit(cv, 0, 0, pig, NULL); - cucul_flip(pig); - cucul_blit(cv, cucul_get_canvas_width(pig), 0, pig, NULL); - cucul_flip(pig); - cucul_flop(pig); - cucul_blit(cv, 0, cucul_get_canvas_height(pig), pig, NULL); - cucul_flop(pig); - cucul_rotate_180(pig); - cucul_blit(cv, cucul_get_canvas_width(pig), - cucul_get_canvas_height(pig), pig, NULL); + caca_blit(cv, 0, 0, pig, NULL); + caca_flip(pig); + caca_blit(cv, caca_get_canvas_width(pig), 0, pig, NULL); + caca_flip(pig); + caca_flop(pig); + caca_blit(cv, 0, caca_get_canvas_height(pig), pig, NULL); + caca_flop(pig); + caca_rotate_180(pig); + caca_blit(cv, caca_get_canvas_width(pig), + caca_get_canvas_height(pig), pig, NULL); - for(j = 0; j < cucul_get_canvas_height(cv); j++) + for(j = 0; j < caca_get_canvas_height(cv); j++) { - for(i = 0; i < cucul_get_canvas_width(cv); i += 2) + for(i = 0; i < caca_get_canvas_width(cv); i += 2) { unsigned long int a; - cucul_set_color_ansi(cv, CUCUL_LIGHTBLUE + (i + j) % 6, - CUCUL_DEFAULT); - a = cucul_get_attr(cv, -1, -1); - cucul_put_attr(cv, i, j, a); - cucul_put_attr(cv, i + 1, j, a); + caca_set_color_ansi(cv, CACA_LIGHTBLUE + (i + j) % 6, + CACA_DEFAULT); + a = caca_get_attr(cv, -1, -1); + caca_put_attr(cv, i, j, a); + caca_put_attr(cv, i + 1, j, a); } } - buffer = cucul_export_memory(cv, "utf8", &len); + buffer = caca_export_memory(cv, "utf8", &len); fwrite(buffer, len, 1, stdout); free(buffer); - cucul_rotate_left(cv); - buffer = cucul_export_memory(cv, "utf8", &len); + caca_rotate_left(cv); + buffer = caca_export_memory(cv, "utf8", &len); fwrite(buffer, len, 1, stdout); free(buffer); - cucul_free_canvas(pig); - cucul_free_canvas(cv); + caca_free_canvas(pig); + caca_free_canvas(cv); return 0; } diff --git a/examples/transform.c b/examples/transform.c index e676315..6c6827a 100644 --- a/examples/transform.c +++ b/examples/transform.c @@ -19,7 +19,6 @@ # include #endif -#include "cucul.h" #include "caca.h" static char const pig[] = @@ -39,10 +38,10 @@ static char const duck[] = int main(int argc, char *argv[]) { - cucul_canvas_t *cv, *image, *tmp, *sprite; + caca_canvas_t *cv, *image, *tmp, *sprite; caca_display_t *dp; - cv = cucul_create_canvas(0, 0); + cv = caca_create_canvas(0, 0); if(cv == NULL) { printf("Can't created canvas\n"); @@ -55,64 +54,64 @@ int main(int argc, char *argv[]) return -1; } - image = cucul_create_canvas(70, 6); - tmp = cucul_create_canvas(70, 6); - sprite = cucul_create_canvas(0, 0); + image = caca_create_canvas(70, 6); + tmp = caca_create_canvas(70, 6); + sprite = caca_create_canvas(0, 0); - cucul_set_color_ansi(sprite, CUCUL_LIGHTMAGENTA, CUCUL_BLACK); - cucul_import_memory(sprite, pig, strlen(pig), "text"); - cucul_blit(image, 55, 0, sprite, NULL); + caca_set_color_ansi(sprite, CACA_LIGHTMAGENTA, CACA_BLACK); + caca_import_memory(sprite, pig, strlen(pig), "text"); + caca_blit(image, 55, 0, sprite, NULL); - cucul_set_color_ansi(sprite, CUCUL_LIGHTGREEN, CUCUL_BLACK); - cucul_import_memory(sprite, duck, strlen(duck), "text"); - cucul_blit(image, 30, 1, sprite, NULL); + caca_set_color_ansi(sprite, CACA_LIGHTGREEN, CACA_BLACK); + caca_import_memory(sprite, duck, strlen(duck), "text"); + caca_blit(image, 30, 1, sprite, NULL); - cucul_set_color_ansi(image, CUCUL_LIGHTCYAN, CUCUL_BLACK); - cucul_put_str(image, 1, 1, "hahaha mais vieux porc immonde !! [⽼ ⾗]"); - cucul_set_color_ansi(image, CUCUL_LIGHTRED, CUCUL_BLACK); - cucul_put_char(image, 38, 1, '|'); + caca_set_color_ansi(image, CACA_LIGHTCYAN, CACA_BLACK); + caca_put_str(image, 1, 1, "hahaha mais vieux porc immonde !! [⽼ ⾗]"); + caca_set_color_ansi(image, CACA_LIGHTRED, CACA_BLACK); + caca_put_char(image, 38, 1, '|'); - cucul_set_color_ansi(image, CUCUL_YELLOW, CUCUL_BLACK); - cucul_put_str(image, 4, 2, "\\o\\ \\o| _o/ \\o_ |o/ /o/"); + caca_set_color_ansi(image, CACA_YELLOW, CACA_BLACK); + caca_put_str(image, 4, 2, "\\o\\ \\o| _o/ \\o_ |o/ /o/"); - cucul_set_color_ansi(image, CUCUL_WHITE, CUCUL_LIGHTRED); - cucul_put_str(image, 7, 3, "▙▘▌▙▘▞▖▞▖▌ ▞▖▌ ▌▌"); - cucul_put_str(image, 7, 4, "▛▖▌▛▖▚▘▚▘▚▖▚▘▚▖▖▖"); - cucul_set_color_ansi(image, CUCUL_BLACK, CUCUL_LIGHTRED); - cucul_put_str(image, 4, 3, "▓▒░"); - cucul_put_str(image, 4, 4, "▓▒░"); - cucul_put_str(image, 24, 3, "░▒▓"); - cucul_put_str(image, 24, 4, "░▒▓"); + caca_set_color_ansi(image, CACA_WHITE, CACA_LIGHTRED); + caca_put_str(image, 7, 3, "▙▘▌▙▘▞▖▞▖▌ ▞▖▌ ▌▌"); + caca_put_str(image, 7, 4, "▛▖▌▛▖▚▘▚▘▚▖▚▘▚▖▖▖"); + caca_set_color_ansi(image, CACA_BLACK, CACA_LIGHTRED); + caca_put_str(image, 4, 3, "▓▒░"); + caca_put_str(image, 4, 4, "▓▒░"); + caca_put_str(image, 24, 3, "░▒▓"); + caca_put_str(image, 24, 4, "░▒▓"); /* Blit the transformed canvas onto the main canvas */ - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); - cucul_put_str(cv, 0, 0, "normal"); - cucul_blit(cv, 10, 0, image, NULL); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); + caca_put_str(cv, 0, 0, "normal"); + caca_blit(cv, 10, 0, image, NULL); - cucul_put_str(cv, 0, 6, "flip"); - cucul_blit(tmp, 0, 0, image, NULL); - cucul_flip(tmp); - cucul_blit(cv, 10, 6, tmp, NULL); + caca_put_str(cv, 0, 6, "flip"); + caca_blit(tmp, 0, 0, image, NULL); + caca_flip(tmp); + caca_blit(cv, 10, 6, tmp, NULL); - cucul_put_str(cv, 0, 12, "flop"); - cucul_blit(tmp, 0, 0, image, NULL); - cucul_flop(tmp); - cucul_blit(cv, 10, 12, tmp, NULL); + caca_put_str(cv, 0, 12, "flop"); + caca_blit(tmp, 0, 0, image, NULL); + caca_flop(tmp); + caca_blit(cv, 10, 12, tmp, NULL); - cucul_put_str(cv, 0, 18, "rotate"); - cucul_blit(tmp, 0, 0, image, NULL); - cucul_rotate_180(tmp); - cucul_blit(cv, 10, 18, tmp, NULL); + caca_put_str(cv, 0, 18, "rotate"); + caca_blit(tmp, 0, 0, image, NULL); + caca_rotate_180(tmp); + caca_blit(cv, 10, 18, tmp, NULL); caca_refresh_display(dp); caca_get_event(dp, CACA_EVENT_KEY_PRESS, NULL, -1); caca_free_display(dp); - cucul_free_canvas(tmp); - cucul_free_canvas(sprite); - cucul_free_canvas(image); - cucul_free_canvas(cv); + caca_free_canvas(tmp); + caca_free_canvas(sprite); + caca_free_canvas(image); + caca_free_canvas(cv); return 0; } diff --git a/examples/truecolor.c b/examples/truecolor.c index 8e700bc..eccf922 100644 --- a/examples/truecolor.c +++ b/examples/truecolor.c @@ -18,17 +18,16 @@ # include #endif -#include "cucul.h" #include "caca.h" int main(int argc, char *argv[]) { - cucul_canvas_t *cv; + caca_canvas_t *cv; caca_display_t *dp; int x, y; - cv = cucul_create_canvas(32, 16); + cv = caca_create_canvas(32, 16); if(cv == NULL) { printf("Failed to create canvas\n"); @@ -48,19 +47,19 @@ int main(int argc, char *argv[]) uint16_t bgcolor = 0xff00 | (y << 4) | x; uint16_t fgcolor = 0xf000 | ((15 - y) << 4) | ((15 - x) << 8); - cucul_set_color_argb(cv, fgcolor, bgcolor); - cucul_put_str(cv, x * 2, y, "CA"); + caca_set_color_argb(cv, fgcolor, bgcolor); + caca_put_str(cv, x * 2, y, "CA"); } - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_LIGHTBLUE); - cucul_put_str(cv, 2, 1, " truecolor libcaca "); + caca_set_color_ansi(cv, CACA_WHITE, CACA_LIGHTBLUE); + caca_put_str(cv, 2, 1, " truecolor libcaca "); caca_refresh_display(dp); caca_get_event(dp, CACA_EVENT_KEY_PRESS, NULL, -1); caca_free_display(dp); - cucul_free_canvas(cv); + caca_free_canvas(cv); return 0; } diff --git a/examples/unicode.c b/examples/unicode.c index 673082a..2d01a3a 100644 --- a/examples/unicode.c +++ b/examples/unicode.c @@ -18,15 +18,14 @@ # include #endif -#include "cucul.h" #include "caca.h" int main(int argc, char *argv[]) { - cucul_canvas_t *cv; + caca_canvas_t *cv; caca_display_t *dp; - cv = cucul_create_canvas(0, 0); + cv = caca_create_canvas(0, 0); if(cv == NULL) { printf("Can't created canvas\n"); @@ -38,66 +37,66 @@ int main(int argc, char *argv[]) printf("Can't create display\n"); return -1; } - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); - cucul_put_str(cv, 1, 1, "Basic Unicode support"); - - cucul_set_color_ansi(cv, CUCUL_DEFAULT, CUCUL_TRANSPARENT); - cucul_put_str(cv, 1, 2, "This is ASCII: | abc DEF 123 !@# |"); - cucul_put_str(cv, 1, 3, "This is Unicode: | äßç δεφ ☺♥♀ ╞╬╗ |"); - cucul_put_str(cv, 1, 4, "And this is, too: | ἀβϛ ΔЗҒ ᚴᛒᛯ ♩♔✈ |"); - - cucul_put_str(cv, 1, 5, "If the three lines do not have the same length, there is a bug somewhere."); - - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); - cucul_put_str(cv, 1, 7, "Gradient glyphs"); - - cucul_set_color_ansi(cv, CUCUL_DEFAULT, CUCUL_TRANSPARENT); - cucul_put_str(cv, 31, 8, " 0%"); - cucul_put_str(cv, 31, 9, " 25%"); - cucul_put_str(cv, 31, 10, " 50%"); - cucul_put_str(cv, 31, 11, " 75%"); - cucul_put_str(cv, 31, 12, "100%"); - - cucul_set_color_ansi(cv, CUCUL_LIGHTRED, CUCUL_LIGHTGREEN); - cucul_put_str(cv, 1, 8, " "); - cucul_put_str(cv, 1, 9, "░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"); - cucul_put_str(cv, 1, 10, "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"); - cucul_put_str(cv, 1, 11, "▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓"); - cucul_put_str(cv, 1, 12, "█████████████████████████████"); - - cucul_set_color_ansi(cv, CUCUL_LIGHTGREEN, CUCUL_LIGHTRED); - cucul_put_str(cv, 36, 8, "█████████████████████████████"); - cucul_put_str(cv, 36, 9, "▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓"); - cucul_put_str(cv, 36, 10, "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"); - cucul_put_str(cv, 36, 11, "░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"); - cucul_put_str(cv, 36, 12, " "); - - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); - cucul_put_str(cv, 1, 14, "Double width characters"); - - cucul_set_color_ansi(cv, CUCUL_LIGHTRED, CUCUL_TRANSPARENT); - cucul_put_str(cv, 1, 15, "| ドラゴン ボーレ |"); - cucul_set_color_ansi(cv, CUCUL_DEFAULT, CUCUL_TRANSPARENT); - cucul_put_str(cv, 1, 16, "| ()()()() ()()() |"); - cucul_set_color_ansi(cv, CUCUL_YELLOW, CUCUL_TRANSPARENT); - cucul_put_str(cv, 1, 17, "| ドラゴン"); - cucul_put_str(cv, 12, 17, "ボーレ |"); - - cucul_set_color_ansi(cv, CUCUL_DEFAULT, CUCUL_TRANSPARENT); - cucul_put_str(cv, 1, 18, "If the three lines do not have the same length, there is a bug somewhere."); - - cucul_put_str(cv, 1, 20, "CP437 glyphs: ☺ ☻ ♥ ♦ ♣ ♠ • ◘ ○ ◙ ♂ ♀ ♪ ♫ ☼ ► ◄ ↕ ‼ ¶ § ▬ ↨ ↑ ↓ → ← ∟ ↔ ▲ ▼"); - cucul_put_str(cv, 1, 21, "more CP437: α ß Γ π Σ σ µ τ Φ Θ Ω δ ∞ φ ε ∩ ≡ ± ≥ ≤ ⌠ ⌡ ÷ ≈ ° ∙ · √ ⁿ ² ■"); - cucul_put_str(cv, 1, 22, "drawing blocks: ███ ▓▓▓ ▒▒▒ ░░░ ▀ ▄ ▌ ▐ █ ▖ ▗ ▘ ▝ ▚ ▞ ▙ ▛ ▜ ▟ ─ │ ┌ ┐ └ ┘ ├ ┤"); - cucul_put_str(cv, 1, 23, "more drawing: ┬ ┴ ┼ ═ ║ ╒ ╓ ╔ ╕ ╖ ╗ ╘ ╙ ╚ ╛ ╜ ╝ ╞ ╟ ╠ ╡ ╢ ╣ ╤ ╥ ╦ ╧ ╨ ╩ ╪ ╫ ╬"); - cucul_put_str(cv, 1, 24, "misc Unicode: ● ☭ ☮ ☯ ♔ ♛ ♙ ♞ ⚒ ⚓ ⚠"); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); + caca_put_str(cv, 1, 1, "Basic Unicode support"); + + caca_set_color_ansi(cv, CACA_DEFAULT, CACA_TRANSPARENT); + caca_put_str(cv, 1, 2, "This is ASCII: | abc DEF 123 !@# |"); + caca_put_str(cv, 1, 3, "This is Unicode: | äßç δεφ ☺♥♀ ╞╬╗ |"); + caca_put_str(cv, 1, 4, "And this is, too: | ἀβϛ ΔЗҒ ᚴᛒᛯ ♩♔✈ |"); + + caca_put_str(cv, 1, 5, "If the three lines do not have the same length, there is a bug somewhere."); + + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); + caca_put_str(cv, 1, 7, "Gradient glyphs"); + + caca_set_color_ansi(cv, CACA_DEFAULT, CACA_TRANSPARENT); + caca_put_str(cv, 31, 8, " 0%"); + caca_put_str(cv, 31, 9, " 25%"); + caca_put_str(cv, 31, 10, " 50%"); + caca_put_str(cv, 31, 11, " 75%"); + caca_put_str(cv, 31, 12, "100%"); + + caca_set_color_ansi(cv, CACA_LIGHTRED, CACA_LIGHTGREEN); + caca_put_str(cv, 1, 8, " "); + caca_put_str(cv, 1, 9, "░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"); + caca_put_str(cv, 1, 10, "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"); + caca_put_str(cv, 1, 11, "▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓"); + caca_put_str(cv, 1, 12, "█████████████████████████████"); + + caca_set_color_ansi(cv, CACA_LIGHTGREEN, CACA_LIGHTRED); + caca_put_str(cv, 36, 8, "█████████████████████████████"); + caca_put_str(cv, 36, 9, "▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓"); + caca_put_str(cv, 36, 10, "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"); + caca_put_str(cv, 36, 11, "░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"); + caca_put_str(cv, 36, 12, " "); + + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); + caca_put_str(cv, 1, 14, "Double width characters"); + + caca_set_color_ansi(cv, CACA_LIGHTRED, CACA_TRANSPARENT); + caca_put_str(cv, 1, 15, "| ドラゴン ボーレ |"); + caca_set_color_ansi(cv, CACA_DEFAULT, CACA_TRANSPARENT); + caca_put_str(cv, 1, 16, "| ()()()() ()()() |"); + caca_set_color_ansi(cv, CACA_YELLOW, CACA_TRANSPARENT); + caca_put_str(cv, 1, 17, "| ドラゴン"); + caca_put_str(cv, 12, 17, "ボーレ |"); + + caca_set_color_ansi(cv, CACA_DEFAULT, CACA_TRANSPARENT); + caca_put_str(cv, 1, 18, "If the three lines do not have the same length, there is a bug somewhere."); + + caca_put_str(cv, 1, 20, "CP437 glyphs: ☺ ☻ ♥ ♦ ♣ ♠ • ◘ ○ ◙ ♂ ♀ ♪ ♫ ☼ ► ◄ ↕ ‼ ¶ § ▬ ↨ ↑ ↓ → ← ∟ ↔ ▲ ▼"); + caca_put_str(cv, 1, 21, "more CP437: α ß Γ π Σ σ µ τ Φ Θ Ω δ ∞ φ ε ∩ ≡ ± ≥ ≤ ⌠ ⌡ ÷ ≈ ° ∙ · √ ⁿ ² ■"); + caca_put_str(cv, 1, 22, "drawing blocks: ███ ▓▓▓ ▒▒▒ ░░░ ▀ ▄ ▌ ▐ █ ▖ ▗ ▘ ▝ ▚ ▞ ▙ ▛ ▜ ▟ ─ │ ┌ ┐ └ ┘ ├ ┤"); + caca_put_str(cv, 1, 23, "more drawing: ┬ ┴ ┼ ═ ║ ╒ ╓ ╔ ╕ ╖ ╗ ╘ ╙ ╚ ╛ ╜ ╝ ╞ ╟ ╠ ╡ ╢ ╣ ╤ ╥ ╦ ╧ ╨ ╩ ╪ ╫ ╬"); + caca_put_str(cv, 1, 24, "misc Unicode: ● ☭ ☮ ☯ ♔ ♛ ♙ ♞ ⚒ ⚓ ⚠"); caca_refresh_display(dp); caca_get_event(dp, CACA_EVENT_KEY_PRESS, NULL, -1); caca_free_display(dp); - cucul_free_canvas(cv); + caca_free_canvas(cv); return 0; } diff --git a/kernel/kernel.c b/kernel/kernel.c index 15fc0b9..b1f03b9 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Canvas for ultrafast compositing of Unicode letters * libcaca Colour ASCII-Art library * Copyright (c) 2006 Sam Hocevar * 2006 Jean-Yves Lamoureux @@ -16,12 +16,12 @@ /* * This file contains replacement functions for the standard C library - * that must be used when building libcucul and libcaca into a kernel. + * that must be used when building libcaca and libcaca into a kernel. */ #include "config.h" -#include "cucul_types.h" +#include "caca_types.h" #ifdef __KERNEL__ diff --git a/kernel/kernel.h b/kernel/kernel.h index f95a076..e9951c3 100644 --- a/kernel/kernel.h +++ b/kernel/kernel.h @@ -1,5 +1,5 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters + * libcaca Canvas for ultrafast compositing of Unicode letters * libcaca Colour ASCII-Art library * Copyright (c) 2006 Sam Hocevar * All Rights Reserved @@ -15,7 +15,7 @@ /* * This file contains replacement functions for the standard C library - * that must be used when building libcucul and libcaca into a kernel. + * that must be used when building libcaca and libcaca into a kernel. */ /* Various defines */ diff --git a/msvc/Makefile.am b/msvc/Makefile.am index ea3068d..f20e338 100644 --- a/msvc/Makefile.am +++ b/msvc/Makefile.am @@ -4,12 +4,12 @@ NULL = EXTRA_DIST = libcaca.sln \ config.h \ - cucul_types.h \ - libcucul.vcproj \ + caca_types.h \ + libcaca.vcproj \ libcaca.vcproj \ cacafire.vcproj \ cacademo.vcproj \ - cucul-sharp.csproj \ + caca-sharp.csproj \ caca-sharp.csproj \ test-csharp.csproj \ $(NULL) diff --git a/msvc/cucul_types.h b/msvc/cucul_types.h index f55378d..d2e5826 100644 --- a/msvc/cucul_types.h +++ b/msvc/cucul_types.h @@ -1,2 +1,2 @@ -#define CUCUL_TYPES 3 -#include "../cucul/cucul_types.h.in" \ No newline at end of file +#define CACA_TYPES 3 +#include "../caca/caca_types.h.in" \ No newline at end of file diff --git a/ruby/Makefile.am b/ruby/Makefile.am index 118604c..f0e8888 100644 --- a/ruby/Makefile.am +++ b/ruby/Makefile.am @@ -4,30 +4,22 @@ rubylibdir = $(RUBY_SITEARCHDIR) rubysitedir = $(RUBY_SITELIBDIR) if USE_RUBY -rubylib_LTLIBRARIES = caca.la cucul.la +rubylib_LTLIBRARIES = caca.la rubysite_DATA = lib/caca.rb TESTS = test endif CFLAGS += -Wno-strict-prototypes -Wno-missing-prototypes -cucul_la_CPPFLAGS = -I$(top_srcdir)/cucul -I../cucul $(RUBY_CFLAGS) -cucul_la_SOURCES = cucul.c \ - common.h \ - cucul-canvas.c \ - cucul-canvas.h \ - cucul-dither.c \ - cucul-dither.h \ - cucul-font.c \ - cucul-font.h \ - $(NULL) -cucul_la_LDFLAGS = -module -avoid-version -shared $(RUBY_LIBS) -cucul_la_LIBADD = ../cucul/libcucul.la - -caca_la_CPPFLAGS = -I$(top_srcdir)/caca -I$(top_srcdir)/cucul -I../cucul \ - $(RUBY_CFLAGS) +caca_la_CPPFLAGS = -I$(top_srcdir)/caca -I../caca $(RUBY_CFLAGS) caca_la_SOURCES = caca.c \ common.h \ + caca-canvas.c \ + caca-canvas.h \ + caca-dither.c \ + caca-dither.h \ + caca-font.c \ + caca-font.h \ caca-display.c \ caca-display.h \ caca-event.c \ diff --git a/ruby/cucul-canvas.c b/ruby/caca-canvas.c similarity index 79% rename from ruby/cucul-canvas.c rename to ruby/caca-canvas.c index b9cd80e..2d8e98f 100644 --- a/ruby/cucul-canvas.c +++ b/ruby/caca-canvas.c @@ -1,5 +1,5 @@ /* - * libcucul Ruby bindings + * libcaca Ruby bindings * Copyright (c) 2007 Pascal Terjan * * This library is free software. It comes without any warranty, to @@ -10,10 +10,10 @@ */ #include -#include +#include #include -#include "cucul-dither.h" -#include "cucul-font.h" +#include "caca-dither.h" +#include "caca-font.h" #include "common.h" VALUE cCanvas; @@ -21,7 +21,7 @@ VALUE cCanvas; #define simple_func(x) \ static VALUE x (VALUE self) \ { \ - if( cucul_##x (_SELF) <0) \ + if( caca_##x (_SELF) <0) \ rb_raise(rb_eRuntimeError, strerror(errno)); \ \ return self; \ @@ -30,12 +30,12 @@ static VALUE x (VALUE self) \ #define get_int(x) \ static VALUE get_##x (VALUE self) \ { \ - return INT2NUM(cucul_get_##x (_SELF)); \ + return INT2NUM(caca_get_##x (_SELF)); \ } static void canvas_free(void * p) { - cucul_free_canvas((cucul_canvas_t *)p); + caca_free_canvas((caca_canvas_t *)p); } static VALUE canvas_alloc(VALUE klass) @@ -45,16 +45,16 @@ static VALUE canvas_alloc(VALUE klass) return obj; } -VALUE canvas_create(cucul_canvas_t *canvas) +VALUE canvas_create(caca_canvas_t *canvas) { return Data_Wrap_Struct(cCanvas, NULL, NULL, canvas); } static VALUE canvas_initialize(VALUE self, VALUE width, VALUE height) { - cucul_canvas_t *canvas; + caca_canvas_t *canvas; - canvas = cucul_create_canvas(NUM2INT(width), NUM2INT(height)); + canvas = caca_create_canvas(NUM2INT(width), NUM2INT(height)); if(canvas == NULL) { @@ -71,7 +71,7 @@ get_int(canvas_width) static VALUE set_canvas_width(VALUE self, VALUE width) { - cucul_set_canvas_size(_SELF, NUM2INT(width), cucul_get_canvas_height(_SELF)); + caca_set_canvas_size(_SELF, NUM2INT(width), caca_get_canvas_height(_SELF)); return width; } @@ -83,7 +83,7 @@ static VALUE set_canvas_width2(VALUE self, VALUE width) static VALUE set_canvas_height(VALUE self, VALUE height) { - cucul_set_canvas_size(_SELF, cucul_get_canvas_width(_SELF), NUM2INT(height)); + caca_set_canvas_size(_SELF, caca_get_canvas_width(_SELF), NUM2INT(height)); return height; } @@ -95,7 +95,7 @@ static VALUE set_canvas_height2(VALUE self, VALUE height) static VALUE set_canvas_size(VALUE self, VALUE height, VALUE width) { - cucul_set_canvas_size(_SELF, NUM2INT(width), NUM2INT(height)); + caca_set_canvas_size(_SELF, NUM2INT(width), NUM2INT(height)); return self; } @@ -103,7 +103,7 @@ static VALUE set_canvas_size(VALUE self, VALUE height, VALUE width) static VALUE gotoxy(VALUE self, VALUE x, VALUE y) { - if( cucul_gotoxy(_SELF, NUM2INT(x), NUM2INT(y)) <0) { + if( caca_gotoxy(_SELF, NUM2INT(x), NUM2INT(y)) <0) { rb_raise(rb_eRuntimeError, strerror(errno)); } return self; @@ -116,33 +116,33 @@ simple_func(clear_canvas) static VALUE put_char(VALUE self, VALUE x, VALUE y, VALUE ch) { - cucul_put_char(_SELF, NUM2INT(x), NUM2INT(y), NUM2ULONG(ch)); + caca_put_char(_SELF, NUM2INT(x), NUM2INT(y), NUM2ULONG(ch)); return self; } static VALUE get_char(VALUE self, VALUE x, VALUE y) { unsigned long int ch; - ch = cucul_get_char(_SELF, NUM2INT(x), NUM2INT(y)); + ch = caca_get_char(_SELF, NUM2INT(x), NUM2INT(y)); return INT2NUM(ch); } static VALUE put_str(VALUE self, VALUE x, VALUE y, VALUE str) { - cucul_put_str(_SELF, NUM2INT(x), NUM2INT(y), StringValuePtr(str)); + caca_put_str(_SELF, NUM2INT(x), NUM2INT(y), StringValuePtr(str)); return self; } static VALUE get_attr(VALUE self, VALUE x, VALUE y) { unsigned long int ch; - ch = cucul_get_attr(_SELF, NUM2INT(x), NUM2INT(y)); + ch = caca_get_attr(_SELF, NUM2INT(x), NUM2INT(y)); return INT2NUM(ch); } static VALUE set_attr(VALUE self, VALUE attr) { - if(cucul_set_attr(_SELF, NUM2ULONG(attr)) <0) + if(caca_set_attr(_SELF, NUM2ULONG(attr)) <0) rb_raise(rb_eRuntimeError, strerror(errno)); return self; @@ -156,7 +156,7 @@ static VALUE set_attr2(VALUE self, VALUE attr) static VALUE put_attr(VALUE self, VALUE x, VALUE y, VALUE attr) { - if(cucul_put_attr(_SELF, NUM2INT(x), NUM2INT(y), NUM2ULONG(attr)) <0) + if(caca_put_attr(_SELF, NUM2INT(x), NUM2INT(y), NUM2ULONG(attr)) <0) rb_raise(rb_eRuntimeError, strerror(errno)); return self; @@ -164,7 +164,7 @@ static VALUE put_attr(VALUE self, VALUE x, VALUE y, VALUE attr) static VALUE set_color_ansi(VALUE self, VALUE fg, VALUE bg) { - if(cucul_set_color_ansi(_SELF, NUM2INT(fg), NUM2INT(bg)) <0) + if(caca_set_color_ansi(_SELF, NUM2INT(fg), NUM2INT(bg)) <0) rb_raise(rb_eRuntimeError, strerror(errno)); return self; @@ -172,7 +172,7 @@ static VALUE set_color_ansi(VALUE self, VALUE fg, VALUE bg) static VALUE set_color_argb(VALUE self, VALUE fg, VALUE bg) { - if(cucul_set_color_argb(_SELF, NUM2UINT(fg), NUM2UINT(bg)) <0) { + if(caca_set_color_argb(_SELF, NUM2UINT(fg), NUM2UINT(bg)) <0) { rb_raise(rb_eRuntimeError, strerror(errno)); } return self; @@ -186,7 +186,7 @@ static VALUE cprintf(int argc, VALUE* argv, VALUE self) x = NUM2INT(rx); y = NUM2INT(ry); string = rb_funcall2(rb_mKernel, rb_intern("sprintf"), argc-2, argv+2); - cucul_put_str(_SELF, x, y, StringValuePtr(string)); + caca_put_str(_SELF, x, y, StringValuePtr(string)); return self; } @@ -196,13 +196,13 @@ get_int(canvas_handle_y) static VALUE set_canvas_handle(VALUE self, VALUE x, VALUE y) { - cucul_set_canvas_handle(_SELF, NUM2INT(x), NUM2INT(y)); + caca_set_canvas_handle(_SELF, NUM2INT(x), NUM2INT(y)); return self; } static VALUE blit(int argc, VALUE* argv, VALUE self) { VALUE x, y, src, mask; - cucul_canvas_t *csrc, *cmask; + caca_canvas_t *csrc, *cmask; rb_scan_args(argc, argv, "31", &x, &y, &src, &mask); @@ -213,7 +213,7 @@ static VALUE blit(int argc, VALUE* argv, VALUE self) { { rb_raise(rb_eArgError, "src is not a Cucul::Canvas"); } - Data_Get_Struct(src, cucul_canvas_t, csrc); + Data_Get_Struct(src, caca_canvas_t, csrc); if(!NIL_P(mask)) { @@ -221,12 +221,12 @@ static VALUE blit(int argc, VALUE* argv, VALUE self) { { rb_raise(rb_eArgError, "mask is not a Cucul::Canvas"); } - Data_Get_Struct(mask, cucul_canvas_t, cmask); + Data_Get_Struct(mask, caca_canvas_t, cmask); } else cmask = NULL; - if(cucul_blit(_SELF, NUM2INT(x), NUM2INT(y), csrc, cmask)<0) + if(caca_blit(_SELF, NUM2INT(x), NUM2INT(y), csrc, cmask)<0) rb_raise(rb_eRuntimeError, strerror(errno)); return self; @@ -234,7 +234,7 @@ static VALUE blit(int argc, VALUE* argv, VALUE self) { static VALUE set_canvas_boundaries(VALUE self, VALUE x, VALUE y, VALUE w, VALUE h) { - if(cucul_set_canvas_boundaries(_SELF, NUM2INT(x), NUM2INT(y), NUM2UINT(w), NUM2UINT(h))<0) + if(caca_set_canvas_boundaries(_SELF, NUM2INT(x), NUM2INT(y), NUM2UINT(w), NUM2UINT(h))<0) { rb_raise(rb_eRuntimeError, strerror(errno)); } @@ -256,7 +256,7 @@ simple_func(stretch_right) static VALUE draw_line(VALUE self, VALUE x1, VALUE y1, VALUE x2, VALUE y2, VALUE ch) { - cucul_draw_line(_SELF, NUM2INT(x1), NUM2INT(y1), NUM2INT(x2), NUM2INT(y2),NUM2ULONG(ch)); + caca_draw_line(_SELF, NUM2INT(x1), NUM2INT(y1), NUM2INT(x2), NUM2INT(y2),NUM2ULONG(ch)); return self; } @@ -308,7 +308,7 @@ static VALUE draw_polyline(VALUE self, VALUE points, VALUE ch) n--; - cucul_draw_polyline(_SELF, ax, ay, n, NUM2ULONG(ch)); + caca_draw_polyline(_SELF, ax, ay, n, NUM2ULONG(ch)); free(ax); free(ay); @@ -318,7 +318,7 @@ static VALUE draw_polyline(VALUE self, VALUE points, VALUE ch) static VALUE draw_thin_line(VALUE self, VALUE x1, VALUE y1, VALUE x2, VALUE y2) { - cucul_draw_thin_line(_SELF, NUM2INT(x1), NUM2INT(y1), NUM2INT(x2), NUM2INT(y2)); + caca_draw_thin_line(_SELF, NUM2INT(x1), NUM2INT(y1), NUM2INT(x2), NUM2INT(y2)); return self; } @@ -370,7 +370,7 @@ static VALUE draw_thin_polyline(VALUE self, VALUE points) n--; - cucul_draw_thin_polyline(_SELF, ax, ay, n); + caca_draw_thin_polyline(_SELF, ax, ay, n); free(ax); free(ay); @@ -380,67 +380,67 @@ static VALUE draw_thin_polyline(VALUE self, VALUE points) static VALUE draw_circle(VALUE self, VALUE x, VALUE y, VALUE r, VALUE ch) { - cucul_draw_circle(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(r), NUM2ULONG(ch)); + caca_draw_circle(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(r), NUM2ULONG(ch)); return self; } static VALUE draw_ellipse(VALUE self, VALUE x, VALUE y, VALUE a, VALUE b, VALUE ch) { - cucul_draw_ellipse(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(a), NUM2INT(b), NUM2ULONG(ch)); + caca_draw_ellipse(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(a), NUM2INT(b), NUM2ULONG(ch)); return self; } static VALUE draw_thin_ellipse(VALUE self, VALUE x, VALUE y, VALUE a, VALUE b) { - cucul_draw_thin_ellipse(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(a), NUM2INT(b)); + caca_draw_thin_ellipse(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(a), NUM2INT(b)); return self; } static VALUE fill_ellipse(VALUE self, VALUE x, VALUE y, VALUE a, VALUE b, VALUE ch) { - cucul_fill_ellipse(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(a), NUM2INT(b), NUM2ULONG(ch)); + caca_fill_ellipse(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(a), NUM2INT(b), NUM2ULONG(ch)); return self; } static VALUE draw_box(VALUE self, VALUE x, VALUE y, VALUE w, VALUE h, VALUE ch) { - cucul_draw_box(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(w), NUM2INT(h), NUM2ULONG(ch)); + caca_draw_box(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(w), NUM2INT(h), NUM2ULONG(ch)); return self; } static VALUE draw_thin_box(VALUE self, VALUE x, VALUE y, VALUE w, VALUE h) { - cucul_draw_thin_box(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(w), NUM2INT(h)); + caca_draw_thin_box(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(w), NUM2INT(h)); return self; } static VALUE draw_cp437_box(VALUE self, VALUE x, VALUE y, VALUE w, VALUE h) { - cucul_draw_cp437_box(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(w), NUM2INT(h)); + caca_draw_cp437_box(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(w), NUM2INT(h)); return self; } static VALUE fill_box(VALUE self, VALUE x, VALUE y, VALUE w, VALUE h, VALUE ch) { - cucul_fill_box(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(w), NUM2INT(h), NUM2ULONG(ch)); + caca_fill_box(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(w), NUM2INT(h), NUM2ULONG(ch)); return self; } static VALUE draw_triangle(VALUE self, VALUE x1, VALUE y1, VALUE x2, VALUE y2, VALUE x3, VALUE y3, VALUE ch) { - cucul_draw_triangle(_SELF, NUM2INT(x1), NUM2INT(y1), NUM2INT(x2), NUM2INT(y2), NUM2INT(x3), NUM2INT(y3), NUM2ULONG(ch)); + caca_draw_triangle(_SELF, NUM2INT(x1), NUM2INT(y1), NUM2INT(x2), NUM2INT(y2), NUM2INT(x3), NUM2INT(y3), NUM2ULONG(ch)); return self; } static VALUE draw_thin_triangle(VALUE self, VALUE x1, VALUE y1, VALUE x2, VALUE y2, VALUE x3, VALUE y3) { - cucul_draw_thin_triangle(_SELF, NUM2INT(x1), NUM2INT(y1), NUM2INT(x2), NUM2INT(y2), NUM2INT(x3), NUM2INT(y3)); + caca_draw_thin_triangle(_SELF, NUM2INT(x1), NUM2INT(y1), NUM2INT(x2), NUM2INT(y2), NUM2INT(x3), NUM2INT(y3)); return self; } static VALUE fill_triangle(VALUE self, VALUE x1, VALUE y1, VALUE x2, VALUE y2, VALUE x3, VALUE y3, VALUE ch) { - cucul_fill_triangle(_SELF, NUM2INT(x1), NUM2INT(y1), NUM2INT(x2), NUM2INT(y2), NUM2INT(x3), NUM2INT(y3), NUM2ULONG(ch)); + caca_fill_triangle(_SELF, NUM2INT(x1), NUM2INT(y1), NUM2INT(x2), NUM2INT(y2), NUM2INT(x3), NUM2INT(y3), NUM2ULONG(ch)); return self; } @@ -450,7 +450,7 @@ static VALUE dither_bitmap(VALUE self, VALUE x, VALUE y, VALUE w, VALUE h, VALUE rb_raise(rb_eArgError, "d is not a Cucul::Dither"); Check_Type(pixels, T_STRING); - cucul_dither_bitmap(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(w), NUM2INT(h), DATA_PTR(d), StringValuePtr(pixels)); + caca_dither_bitmap(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(w), NUM2INT(h), DATA_PTR(d), StringValuePtr(pixels)); return self; } @@ -460,7 +460,7 @@ get_int(frame_count) static VALUE set_frame(VALUE self, VALUE id) { - if(cucul_set_frame(_SELF, NUM2INT(id))<0) + if(caca_set_frame(_SELF, NUM2INT(id))<0) rb_raise(rb_eArgError, strerror(errno)); return self; @@ -474,12 +474,12 @@ static VALUE set_frame2(VALUE self, VALUE id) static VALUE get_frame_name(VALUE self) { - return rb_str_new2(cucul_get_frame_name(_SELF)); + return rb_str_new2(caca_get_frame_name(_SELF)); } static VALUE set_frame_name(VALUE self, VALUE name) { - if(cucul_set_frame_name(_SELF, StringValuePtr(name))<0) + if(caca_set_frame_name(_SELF, StringValuePtr(name))<0) rb_raise(rb_eRuntimeError, strerror(errno)); return self; @@ -493,7 +493,7 @@ static VALUE set_frame_name2(VALUE self, VALUE name) static VALUE create_frame(VALUE self, VALUE id) { - if(cucul_create_frame(_SELF, NUM2INT(id))<0) { + if(caca_create_frame(_SELF, NUM2INT(id))<0) { rb_raise(rb_eRuntimeError, strerror(errno)); } return self; @@ -501,7 +501,7 @@ static VALUE create_frame(VALUE self, VALUE id) static VALUE free_frame(VALUE self, VALUE id) { - if(cucul_free_frame(_SELF, NUM2INT(id))<0) { + if(caca_free_frame(_SELF, NUM2INT(id))<0) { rb_raise(rb_eArgError, strerror(errno)); } return self; @@ -512,7 +512,7 @@ static VALUE free_frame(VALUE self, VALUE id) static VALUE render_canvas(VALUE self, VALUE font, VALUE width, VALUE height, VALUE pitch) { void *buf; - cucul_font_t *f; + caca_font_t *f; VALUE b; if(CLASS_OF(font) != cFont) @@ -527,7 +527,7 @@ static VALUE render_canvas(VALUE self, VALUE font, VALUE width, VALUE height, VA } f = DATA_PTR(font); - cucul_render_canvas(_SELF, f, buf, NUM2UINT(width), NUM2UINT(height), NUM2UINT(pitch)); + caca_render_canvas(_SELF, f, buf, NUM2UINT(width), NUM2UINT(height), NUM2UINT(pitch)); b = rb_str_new(buf, width*height*4); free(buf); @@ -537,7 +537,7 @@ static VALUE render_canvas(VALUE self, VALUE font, VALUE width, VALUE height, VA static VALUE import_memory(VALUE self, VALUE data, VALUE format) { long int bytes; - bytes = cucul_import_memory (_SELF, StringValuePtr(data), RSTRING(StringValue(data))->len, StringValuePtr(format)); + bytes = caca_import_memory (_SELF, StringValuePtr(data), RSTRING(StringValue(data))->len, StringValuePtr(format)); if(bytes <= 0) rb_raise(rb_eRuntimeError, strerror(errno)); @@ -547,7 +547,7 @@ static VALUE import_memory(VALUE self, VALUE data, VALUE format) static VALUE import_file(VALUE self, VALUE filename, VALUE format) { long int bytes; - bytes = cucul_import_file (_SELF, StringValuePtr(filename), StringValuePtr(format)); + bytes = caca_import_file (_SELF, StringValuePtr(filename), StringValuePtr(format)); if(bytes <= 0) rb_raise(rb_eRuntimeError, strerror(errno)); @@ -559,7 +559,7 @@ static VALUE export_memory(VALUE self, VALUE format) unsigned long int bytes; void *result; VALUE ret; - result = cucul_export_memory (_SELF, StringValuePtr(format), &bytes); + result = caca_export_memory (_SELF, StringValuePtr(format), &bytes); ret = rb_str_new(result, bytes); free(result); return ret; @@ -570,7 +570,7 @@ get_singleton_double_list(import) /****/ -void Init_cucul_canvas(VALUE mCucul) +void Init_caca_canvas(VALUE mCucul) { cCanvas = rb_define_class_under(mCucul, "Canvas", rb_cObject); rb_define_alloc_func(cCanvas, canvas_alloc); diff --git a/ruby/caca-canvas.h b/ruby/caca-canvas.h new file mode 100644 index 0000000..b0d82e9 --- /dev/null +++ b/ruby/caca-canvas.h @@ -0,0 +1,10 @@ +#ifndef __CACA_CANVAS_H__ +#define __CACA_CANVAS_H__ + +#include + +extern VALUE cCanvas; +extern void Init_caca_canvas(VALUE); +extern VALUE canvas_create(caca_canvas_t *canvas); + +#endif diff --git a/ruby/caca-display.c b/ruby/caca-display.c index 538a87b..fd275ac 100644 --- a/ruby/caca-display.c +++ b/ruby/caca-display.c @@ -13,7 +13,7 @@ #include #include #include "caca-event.h" -#include "cucul-canvas.h" +#include "caca-canvas.h" #include "common.h" VALUE cDisplay; @@ -33,7 +33,7 @@ static VALUE display_alloc(VALUE klass) static VALUE display_initialize(int argc, VALUE* argv, VALUE self) { caca_display_t *display; - cucul_canvas_t *canvas = NULL; + caca_canvas_t *canvas = NULL; const char *driver = NULL; VALUE cv = Qnil; VALUE arg1, arg2; diff --git a/ruby/cucul-dither.c b/ruby/caca-dither.c similarity index 92% rename from ruby/cucul-dither.c rename to ruby/caca-dither.c index bcd4304..59981df 100644 --- a/ruby/cucul-dither.c +++ b/ruby/caca-dither.c @@ -1,5 +1,5 @@ /* - * libcucul Ruby bindings + * libcaca Ruby bindings * Copyright (c) 2007 Pascal Terjan * * This library is free software. It comes without any warranty, to @@ -10,7 +10,7 @@ */ #include -#include +#include #include #include "common.h" @@ -18,7 +18,7 @@ VALUE cDither; void dither_free(void *dither) { - cucul_free_dither((cucul_dither_t *)dither); + caca_free_dither((caca_dither_t *)dither); } static VALUE dither_alloc(VALUE klass) @@ -30,9 +30,9 @@ static VALUE dither_alloc(VALUE klass) static VALUE dither_initialize(VALUE self, VALUE bpp, VALUE w, VALUE h, VALUE pitch, VALUE rmask, VALUE gmask, VALUE bmask, VALUE amask) { - cucul_dither_t *dither; + caca_dither_t *dither; - dither = cucul_create_dither(NUM2UINT(bpp), NUM2UINT(w), NUM2UINT(h), NUM2UINT(pitch), NUM2ULONG(rmask), NUM2ULONG(gmask), NUM2ULONG(bmask), NUM2ULONG(amask)); + dither = caca_create_dither(NUM2UINT(bpp), NUM2UINT(w), NUM2UINT(h), NUM2UINT(pitch), NUM2ULONG(rmask), NUM2ULONG(gmask), NUM2ULONG(bmask), NUM2ULONG(amask)); if(dither == NULL) { rb_raise(rb_eRuntimeError, strerror(errno)); @@ -115,7 +115,7 @@ static VALUE set_dither_palette(VALUE self, VALUE palette) rb_raise(rb_eArgError, "Invalid palette"); } - if(cucul_set_dither_palette(_SELF, red, green, blue, alpha)<0) + if(caca_set_dither_palette(_SELF, red, green, blue, alpha)<0) { free(red); free(green); @@ -141,7 +141,7 @@ static VALUE set_dither_palette2(VALUE self, VALUE palette) #define set_float(x) \ static VALUE set_##x(VALUE self, VALUE x) \ { \ - if(cucul_set_dither_##x(_SELF, (float)NUM2DBL(x))<0)\ + if(caca_set_dither_##x(_SELF, (float)NUM2DBL(x))<0)\ rb_raise(rb_eRuntimeError, strerror(errno)); \ \ return x; \ @@ -161,7 +161,7 @@ set_float(contrast) get_double_list(dither_##x) \ static VALUE set_dither_##x(VALUE self, VALUE x) \ { \ - if(cucul_set_dither_##x(_SELF, StringValuePtr(x))<0) \ + if(caca_set_dither_##x(_SELF, StringValuePtr(x))<0) \ { \ rb_raise(rb_eRuntimeError, strerror(errno)); \ } \ @@ -179,7 +179,7 @@ get_set_str_from_list(color) get_set_str_from_list(charset) get_set_str_from_list(algorithm) -void Init_cucul_dither(VALUE mCucul) +void Init_caca_dither(VALUE mCucul) { cDither = rb_define_class_under(mCucul, "Dither", rb_cObject); rb_define_alloc_func(cDither, dither_alloc); diff --git a/ruby/caca-dither.h b/ruby/caca-dither.h new file mode 100644 index 0000000..c8be0b0 --- /dev/null +++ b/ruby/caca-dither.h @@ -0,0 +1,9 @@ +#ifndef __CACA_DITHER_H__ +#define __CACA_DITHER_H__ + +#include + +extern VALUE cDither; +extern void Init_caca_dither(VALUE); + +#endif diff --git a/ruby/cucul-font.c b/ruby/caca-font.c similarity index 82% rename from ruby/cucul-font.c rename to ruby/caca-font.c index a76a04c..8eceebd 100644 --- a/ruby/cucul-font.c +++ b/ruby/caca-font.c @@ -1,5 +1,5 @@ /* - * libcucul Ruby bindings + * libcaca Ruby bindings * Copyright (c) 2007 Pascal Terjan * * This library is free software. It comes without any warranty, to @@ -10,7 +10,7 @@ */ #include -#include +#include #include #include "common.h" @@ -18,7 +18,7 @@ VALUE cFont; void font_free(void *font) { - cucul_free_font((cucul_font_t *)font); + caca_free_font((caca_font_t *)font); } static VALUE font_alloc(VALUE klass) @@ -30,9 +30,9 @@ static VALUE font_alloc(VALUE klass) static VALUE font_initialize(VALUE self, VALUE name) { - cucul_font_t *font; + caca_font_t *font; - font = cucul_load_font(StringValuePtr(name), 0); + font = caca_load_font(StringValuePtr(name), 0); if(font == NULL) { rb_raise(rb_eRuntimeError, strerror(errno)); @@ -46,7 +46,7 @@ static VALUE font_list(void) VALUE ary; char const* const* list; - list = cucul_get_font_list(); + list = caca_get_font_list(); ary = rb_ary_new(); while (*list != NULL) @@ -60,12 +60,12 @@ static VALUE font_list(void) static VALUE get_font_width(VALUE self) { - return UINT2NUM(cucul_get_font_width(_SELF)); + return UINT2NUM(caca_get_font_width(_SELF)); } static VALUE get_font_height(VALUE self) { - return UINT2NUM(cucul_get_font_height(_SELF)); + return UINT2NUM(caca_get_font_height(_SELF)); } static VALUE get_font_blocks(VALUE self) @@ -73,7 +73,7 @@ static VALUE get_font_blocks(VALUE self) VALUE ary; uint32_t const *list; - list = cucul_get_font_blocks(_SELF); + list = caca_get_font_blocks(_SELF); ary = rb_ary_new(); while (*list != 0L) @@ -85,7 +85,7 @@ static VALUE get_font_blocks(VALUE self) return ary; } -void Init_cucul_font(VALUE mCucul) +void Init_caca_font(VALUE mCucul) { cFont = rb_define_class_under(mCucul, "Font", rb_cObject); rb_define_alloc_func(cFont, font_alloc); diff --git a/ruby/caca-font.h b/ruby/caca-font.h new file mode 100644 index 0000000..566fdfc --- /dev/null +++ b/ruby/caca-font.h @@ -0,0 +1,9 @@ +#ifndef __CACA_FONT_H__ +#define __CACA_FONT_H__ + +#include + +extern VALUE cFont; +extern void Init_caca_font(VALUE); + +#endif diff --git a/ruby/caca.c b/ruby/caca.c index 01fe790..595ddc4 100644 --- a/ruby/caca.c +++ b/ruby/caca.c @@ -12,6 +12,9 @@ #include #include +#include "caca-canvas.h" +#include "caca-dither.h" +#include "caca-font.h" #include "caca-display.h" #include "caca-event.h" @@ -26,6 +29,33 @@ void Init_caca() rb_define_singleton_method(mCaca, "version", get_version, 0); + rb_define_const(mCaca, "BLACK", INT2FIX(CACA_BLACK)); + rb_define_const(mCaca, "BLUE", INT2FIX(CACA_BLUE)); + rb_define_const(mCaca, "GREEN", INT2FIX(CACA_GREEN)); + rb_define_const(mCaca, "CYAN", INT2FIX(CACA_CYAN)); + rb_define_const(mCaca, "RED", INT2FIX(CACA_RED)); + rb_define_const(mCaca, "MAGENTA", INT2FIX(CACA_MAGENTA)); + rb_define_const(mCaca, "BROWN", INT2FIX(CACA_BROWN)); + rb_define_const(mCaca, "LIGHTGRAY", INT2FIX(CACA_LIGHTGRAY)); + rb_define_const(mCaca, "DARKGRAY", INT2FIX(CACA_DARKGRAY)); + rb_define_const(mCaca, "LIGHTBLUE", INT2FIX(CACA_LIGHTBLUE)); + rb_define_const(mCaca, "LIGHTGREEN", INT2FIX(CACA_LIGHTGREEN)); + rb_define_const(mCaca, "LIGHTCYAN", INT2FIX(CACA_LIGHTCYAN)); + rb_define_const(mCaca, "LIGHTRED", INT2FIX(CACA_LIGHTRED)); + rb_define_const(mCaca, "LIGHTMAGENTA", INT2FIX(CACA_LIGHTMAGENTA)); + rb_define_const(mCaca, "YELLOW", INT2FIX(CACA_YELLOW)); + rb_define_const(mCaca, "WHITE", INT2FIX(CACA_WHITE)); + rb_define_const(mCaca, "DEFAULT", INT2FIX(CACA_DEFAULT)); + rb_define_const(mCaca, "TRANSPARENT", INT2FIX(CACA_TRANSPARENT)); + + rb_define_const(mCaca, "BOLD", INT2FIX(CACA_BOLD)); + rb_define_const(mCaca, "ITALICS", INT2FIX(CACA_ITALICS)); + rb_define_const(mCaca, "UNDERLINE", INT2FIX(CACA_UNDERLINE)); + rb_define_const(mCaca, "BLINK", INT2FIX(CACA_BLINK)); + + Init_caca_canvas(mCaca); + Init_caca_dither(mCaca); + Init_caca_font(mCaca); Init_caca_display(mCaca); Init_caca_event(mCaca); } diff --git a/ruby/common.h b/ruby/common.h index 2345389..cc339df 100644 --- a/ruby/common.h +++ b/ruby/common.h @@ -9,7 +9,7 @@ static VALUE x##_list(void) \ VALUE ary, ary2; \ char const* const* list; \ \ - list = cucul_get_##x##_list(); \ + list = caca_get_##x##_list(); \ ary = rb_ary_new(); \ while (*list != NULL) \ { \ @@ -30,7 +30,7 @@ static VALUE x##_list(VALUE self) \ VALUE ary, ary2; \ char const* const* list; \ \ - list = cucul_get_##x##_list(_SELF); \ + list = caca_get_##x##_list(_SELF); \ ary = rb_ary_new(); \ while (*list != NULL) \ { \ diff --git a/ruby/cucul-canvas.h b/ruby/cucul-canvas.h deleted file mode 100644 index d3678ff..0000000 --- a/ruby/cucul-canvas.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __CUCUL_CANVAS_H__ -#define __CUCUL_CANVAS_H__ - -#include - -extern VALUE cCanvas; -extern void Init_cucul_canvas(VALUE); -extern VALUE canvas_create(cucul_canvas_t *canvas); - -#endif diff --git a/ruby/cucul-dither.h b/ruby/cucul-dither.h deleted file mode 100644 index 701f5b1..0000000 --- a/ruby/cucul-dither.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef __CUCUL_DITHER_H__ -#define __CUCUL_DITHER_H__ - -#include - -extern VALUE cDither; -extern void Init_cucul_dither(VALUE); - -#endif diff --git a/ruby/cucul-font.h b/ruby/cucul-font.h deleted file mode 100644 index 57141a5..0000000 --- a/ruby/cucul-font.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef __CUCUL_FONT_H__ -#define __CUCUL_FONT_H__ - -#include - -extern VALUE cFont; -extern void Init_cucul_font(VALUE); - -#endif diff --git a/ruby/cucul.c b/ruby/cucul.c deleted file mode 100644 index d895ef8..0000000 --- a/ruby/cucul.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * libcucul Ruby bindings - * Copyright (c) 2007 Pascal Terjan - * - * This library is free software. It comes without any warranty, to - * the extent permitted by applicable law. You can redistribute it - * and/or modify it under the terms of the Do What The Fuck You Want - * To Public License, Version 2, as published by Sam Hocevar. See - * http://sam.zoy.org/wtfpl/COPYING for more details. - */ - -#include -#include - -#include "cucul-canvas.h" -#include "cucul-dither.h" -#include "cucul-font.h" - -static VALUE get_version(VALUE self) -{ - return rb_str_new2(cucul_get_version()); -} - -void Init_cucul() -{ - VALUE mCucul = rb_define_module("Cucul"); - - rb_define_singleton_method(mCucul, "version", get_version, 0); - - rb_define_const(mCucul, "BLACK", INT2FIX(CUCUL_BLACK)); - rb_define_const(mCucul, "BLUE", INT2FIX(CUCUL_BLUE)); - rb_define_const(mCucul, "GREEN", INT2FIX(CUCUL_GREEN)); - rb_define_const(mCucul, "CYAN", INT2FIX(CUCUL_CYAN)); - rb_define_const(mCucul, "RED", INT2FIX(CUCUL_RED)); - rb_define_const(mCucul, "MAGENTA", INT2FIX(CUCUL_MAGENTA)); - rb_define_const(mCucul, "BROWN", INT2FIX(CUCUL_BROWN)); - rb_define_const(mCucul, "LIGHTGRAY", INT2FIX(CUCUL_LIGHTGRAY)); - rb_define_const(mCucul, "DARKGRAY", INT2FIX(CUCUL_DARKGRAY)); - rb_define_const(mCucul, "LIGHTBLUE", INT2FIX(CUCUL_LIGHTBLUE)); - rb_define_const(mCucul, "LIGHTGREEN", INT2FIX(CUCUL_LIGHTGREEN)); - rb_define_const(mCucul, "LIGHTCYAN", INT2FIX(CUCUL_LIGHTCYAN)); - rb_define_const(mCucul, "LIGHTRED", INT2FIX(CUCUL_LIGHTRED)); - rb_define_const(mCucul, "LIGHTMAGENTA", INT2FIX(CUCUL_LIGHTMAGENTA)); - rb_define_const(mCucul, "YELLOW", INT2FIX(CUCUL_YELLOW)); - rb_define_const(mCucul, "WHITE", INT2FIX(CUCUL_WHITE)); - rb_define_const(mCucul, "DEFAULT", INT2FIX(CUCUL_DEFAULT)); - rb_define_const(mCucul, "TRANSPARENT", INT2FIX(CUCUL_TRANSPARENT)); - - rb_define_const(mCucul, "BOLD", INT2FIX(CUCUL_BOLD)); - rb_define_const(mCucul, "ITALICS", INT2FIX(CUCUL_ITALICS)); - rb_define_const(mCucul, "UNDERLINE", INT2FIX(CUCUL_UNDERLINE)); - rb_define_const(mCucul, "BLINK", INT2FIX(CUCUL_BLINK)); - - Init_cucul_canvas(mCucul); - Init_cucul_dither(mCucul); - Init_cucul_font(mCucul); -} diff --git a/src/Makefile.am b/src/Makefile.am index 2e3706f..055ef44 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -3,35 +3,35 @@ pkgdata_DATA = caca.txt EXTRA_DIST = caca.txt -AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/cucul -I../cucul \ +AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/caca -I../caca \ -I$(top_srcdir)/caca -DLIBCACA=1 -DX_DISPLAY_MISSING=1 bin_PROGRAMS = cacademo cacafire cacaplay cacaview img2txt $(fcntl_programs) noinst_PROGRAMS = cacadraw cacademo_SOURCES = cacademo.c texture.h -cacademo_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +cacademo_LDADD = ../caca/libcaca.la ../caca/libcaca.la cacademo_LDFLAGS = @MATH_LIBS@ cacafire_SOURCES = aafire.c -cacafire_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +cacafire_LDADD = ../caca/libcaca.la ../caca/libcaca.la cacaview_SOURCES = cacaview.c common-image.c common-image.h -cacaview_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +cacaview_LDADD = ../caca/libcaca.la ../caca/libcaca.la cacaview_CFLAGS = $(IMLIB2_CFLAGS) cacaview_LDFLAGS = $(IMLIB2_LIBS) cacadraw_SOURCES = cacadraw.c -cacadraw_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +cacadraw_LDADD = ../caca/libcaca.la ../caca/libcaca.la cacaplay_SOURCES = cacaplay.c -cacaplay_LDADD = ../caca/libcaca.la ../cucul/libcucul.la +cacaplay_LDADD = ../caca/libcaca.la ../caca/libcaca.la cacaserver_SOURCES = cacaserver.c -cacaserver_LDADD = ../cucul/libcucul.la +cacaserver_LDADD = ../caca/libcaca.la img2txt_SOURCES = img2txt.c $(GETOPT) common-image.c common-image.h -img2txt_LDADD = ../cucul/libcucul.la +img2txt_LDADD = ../caca/libcaca.la img2txt_CFLAGS = $(IMLIB2_CFLAGS) img2txt_LDFLAGS = $(IMLIB2_LIBS) $(GETOPT_LIBS) diff --git a/src/aafire.c b/src/aafire.c index 16621e3..aee8b29 100644 --- a/src/aafire.c +++ b/src/aafire.c @@ -29,7 +29,6 @@ # include # include #endif -#include "cucul.h" #include "caca.h" #else #include @@ -40,10 +39,10 @@ #endif #define MAXTABLE (256*5) #ifdef LIBCACA -static cucul_canvas_t *cv; +static caca_canvas_t *cv; static caca_display_t *dp; static int XSIZ, YSIZ; -static cucul_dither_t *cucul_dither; +static caca_dither_t *caca_dither; static char *bitmap; static int paused = 0; #else @@ -101,10 +100,10 @@ initialize (void) #endif #ifdef LIBCACA - cv = cucul_create_canvas(80, 32); + cv = caca_create_canvas(80, 32); if (!cv) { - printf ("Failed to initialize libcucul\n"); + printf ("Failed to initialize libcaca\n"); exit (1); } dp = caca_create_display(cv); @@ -114,8 +113,8 @@ initialize (void) exit (1); } caca_set_display_time(dp, 10000); - XSIZ = cucul_get_canvas_width(cv) * 2; - YSIZ = cucul_get_canvas_height(cv) * 2 - 4; + XSIZ = caca_get_canvas_width(cv) * 2; + YSIZ = caca_get_canvas_height(cv) * 2 - 4; #else context = aa_autoinit (&aa_defparams); if (context == NULL) @@ -141,12 +140,12 @@ initialize (void) #endif #ifdef LIBCACA - cucul_dither = cucul_create_dither(8, XSIZ, YSIZ - 2, XSIZ, 0, 0, 0, 0); - cucul_set_dither_palette(cucul_dither, r, g, b, a); - bitmap = malloc(4 * cucul_get_canvas_width(cv) - * cucul_get_canvas_height(cv)); - memset(bitmap, 0, 4 * cucul_get_canvas_width(cv) - * cucul_get_canvas_height(cv)); + caca_dither = caca_create_dither(8, XSIZ, YSIZ - 2, XSIZ, 0, 0, 0, 0); + caca_set_dither_palette(caca_dither, r, g, b, a); + bitmap = malloc(4 * caca_get_canvas_width(cv) + * caca_get_canvas_height(cv)); + memset(bitmap, 0, 4 * caca_get_canvas_width(cv) + * caca_get_canvas_height(cv)); #else aa_hidecursor (context); #endif @@ -156,7 +155,7 @@ uninitialize (void) { #ifdef LIBCACA caca_free_display(dp); - cucul_free_canvas(cv); + caca_free_canvas(cv); #else aa_close (context); #endif @@ -238,12 +237,12 @@ drawfire (void) firemain (); #ifdef LIBCACA _paused: - cucul_dither_bitmap(cv, 0, 0, cucul_get_canvas_width(cv), - cucul_get_canvas_height(cv), cucul_dither, bitmap); - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); + caca_dither_bitmap(cv, 0, 0, caca_get_canvas_width(cv), + caca_get_canvas_height(cv), caca_dither, bitmap); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); if (sloop < 100) - cucul_put_str(cv, cucul_get_canvas_width(cv) - 30, - cucul_get_canvas_height(cv) - 2, + caca_put_str(cv, caca_get_canvas_width(cv) - 30, + caca_get_canvas_height(cv) - 2, " -=[ Powered by libcaca ]=- "); caca_refresh_display(dp); diff --git a/src/cacademo.c b/src/cacademo.c index 880c0ce..8473d96 100644 --- a/src/cacademo.c +++ b/src/cacademo.c @@ -26,20 +26,19 @@ # endif #endif -#include "cucul.h" #include "caca.h" enum action { PREPARE, INIT, UPDATE, RENDER, FREE }; -void transition(cucul_canvas_t *, int, int); -void plasma(enum action, cucul_canvas_t *); -void metaballs(enum action, cucul_canvas_t *); -void moire(enum action, cucul_canvas_t *); -void langton(enum action, cucul_canvas_t *); -void matrix(enum action, cucul_canvas_t *); -void rotozoom(enum action, cucul_canvas_t *); +void transition(caca_canvas_t *, int, int); +void plasma(enum action, caca_canvas_t *); +void metaballs(enum action, caca_canvas_t *); +void moire(enum action, caca_canvas_t *); +void langton(enum action, caca_canvas_t *); +void matrix(enum action, caca_canvas_t *); +void rotozoom(enum action, caca_canvas_t *); -void (*fn[])(enum action, cucul_canvas_t *) = +void (*fn[])(enum action, caca_canvas_t *) = { plasma, metaballs, @@ -50,7 +49,7 @@ void (*fn[])(enum action, cucul_canvas_t *) = }; #define DEMOS (sizeof(fn)/sizeof(*fn)) -#define DEMO_FRAMES cucul_rand(500, 1000) +#define DEMO_FRAMES caca_rand(500, 1000) #define TRANSITION_FRAMES 40 #define TRANSITION_COUNT 5 @@ -70,25 +69,25 @@ static int frame = 0; int main(int argc, char **argv) { static caca_display_t *dp; - static cucul_canvas_t *frontcv, *backcv, *mask; + static caca_canvas_t *frontcv, *backcv, *mask; int demo, next = -1, paused = 0, next_transition = DEMO_FRAMES; unsigned int i; - int tmode = cucul_rand(0, TRANSITION_COUNT); + int tmode = caca_rand(0, TRANSITION_COUNT); /* Set up two canvases, a mask, and attach a display to the front one */ - frontcv = cucul_create_canvas(0, 0); - backcv = cucul_create_canvas(0, 0); - mask = cucul_create_canvas(0, 0); + frontcv = caca_create_canvas(0, 0); + backcv = caca_create_canvas(0, 0); + mask = caca_create_canvas(0, 0); dp = caca_create_display(frontcv); if(!dp) return 1; - cucul_set_canvas_size(backcv, cucul_get_canvas_width(frontcv), - cucul_get_canvas_height(frontcv)); - cucul_set_canvas_size(mask, cucul_get_canvas_width(frontcv), - cucul_get_canvas_height(frontcv)); + caca_set_canvas_size(backcv, caca_get_canvas_width(frontcv), + caca_get_canvas_height(frontcv)); + caca_set_canvas_size(mask, caca_get_canvas_width(frontcv), + caca_get_canvas_height(frontcv)); caca_set_display_time(dp, 20000); @@ -97,7 +96,7 @@ int main(int argc, char **argv) fn[i](PREPARE, frontcv); /* Choose a demo at random */ - demo = cucul_rand(0, DEMOS); + demo = caca_rand(0, DEMOS); fn[demo](INIT, frontcv); for(;;) @@ -127,10 +126,10 @@ int main(int argc, char **argv) } /* Resize the spare canvas, just in case the main one changed */ - cucul_set_canvas_size(backcv, cucul_get_canvas_width(frontcv), - cucul_get_canvas_height(frontcv)); - cucul_set_canvas_size(mask, cucul_get_canvas_width(frontcv), - cucul_get_canvas_height(frontcv)); + caca_set_canvas_size(backcv, caca_get_canvas_width(frontcv), + caca_get_canvas_height(frontcv)); + caca_set_canvas_size(mask, caca_get_canvas_width(frontcv), + caca_get_canvas_height(frontcv)); if(paused) goto _paused; @@ -141,7 +140,7 @@ int main(int argc, char **argv) /* Handle transitions */ if(frame == next_transition) { - next = cucul_rand(0, DEMOS); + next = caca_rand(0, DEMOS); if(next == demo) next = (next + 1) % DEMOS; fn[next](INIT, backcv); @@ -152,7 +151,7 @@ int main(int argc, char **argv) demo = next; next = -1; next_transition = frame + DEMO_FRAMES; - tmode = cucul_rand(0, TRANSITION_COUNT); + tmode = caca_rand(0, TRANSITION_COUNT); } if(next != -1) @@ -167,18 +166,18 @@ _paused: if(next != -1) { fn[next](RENDER, backcv); - cucul_set_color_ansi(mask, CUCUL_LIGHTGRAY, CUCUL_BLACK); - cucul_clear_canvas(mask); - cucul_set_color_ansi(mask, CUCUL_WHITE, CUCUL_WHITE); + caca_set_color_ansi(mask, CACA_LIGHTGRAY, CACA_BLACK); + caca_clear_canvas(mask); + caca_set_color_ansi(mask, CACA_WHITE, CACA_WHITE); transition(mask, tmode, 100 * (frame - next_transition) / TRANSITION_FRAMES); - cucul_blit(frontcv, 0, 0, backcv, mask); + caca_blit(frontcv, 0, 0, backcv, mask); } - cucul_set_color_ansi(frontcv, CUCUL_WHITE, CUCUL_BLUE); + caca_set_color_ansi(frontcv, CACA_WHITE, CACA_BLUE); if(frame < 100) - cucul_put_str(frontcv, cucul_get_canvas_width(frontcv) - 30, - cucul_get_canvas_height(frontcv) - 2, + caca_put_str(frontcv, caca_get_canvas_width(frontcv) - 30, + caca_get_canvas_height(frontcv) - 2, " -=[ Powered by libcaca ]=- "); caca_refresh_display(dp); } @@ -188,15 +187,15 @@ end: fn[demo](FREE, frontcv); caca_free_display(dp); - cucul_free_canvas(mask); - cucul_free_canvas(backcv); - cucul_free_canvas(frontcv); + caca_free_canvas(mask); + caca_free_canvas(backcv); + caca_free_canvas(frontcv); return 0; } /* Transitions */ -void transition(cucul_canvas_t *mask, int tmode, int completed) +void transition(caca_canvas_t *mask, int tmode, int completed) { static float const star[] = { @@ -223,14 +222,14 @@ void transition(cucul_canvas_t *mask, int tmode, int completed) }; static float square_rot[sizeof(square)/sizeof(*square)]; - float mulx = 0.0075f * completed * cucul_get_canvas_width(mask); - float muly = 0.0075f * completed * cucul_get_canvas_height(mask); - int w2 = cucul_get_canvas_width(mask) / 2; - int h2 = cucul_get_canvas_height(mask) / 2; + float mulx = 0.0075f * completed * caca_get_canvas_width(mask); + float muly = 0.0075f * completed * caca_get_canvas_height(mask); + int w2 = caca_get_canvas_width(mask) / 2; + int h2 = caca_get_canvas_height(mask) / 2; float angle = (0.0075f * completed * 360) * 3.14 / 180, x, y; unsigned int i; - int w = cucul_get_canvas_width(mask); - int h = cucul_get_canvas_height(mask); + int w = caca_get_canvas_width(mask); + int h = caca_get_canvas_height(mask); switch(tmode) { @@ -247,11 +246,11 @@ void transition(cucul_canvas_t *mask, int tmode, int completed) mulx *= 1.8; muly *= 1.8; - cucul_fill_triangle(mask, + caca_fill_triangle(mask, square_rot[0*2] * mulx + w2, square_rot[0*2+1] * muly + h2, \ square_rot[1*2] * mulx + w2, square_rot[1*2+1] * muly + h2, \ square_rot[2*2] * mulx + w2, square_rot[2*2+1] * muly + h2, '#'); - cucul_fill_triangle(mask, + caca_fill_triangle(mask, square_rot[0*2] * mulx + w2, square_rot[0*2+1] * muly + h2, \ square_rot[2*2] * mulx + w2, square_rot[2*2+1] * muly + h2, \ square_rot[3*2] * mulx + w2, square_rot[3*2+1] * muly + h2, '#'); @@ -273,7 +272,7 @@ void transition(cucul_canvas_t *mask, int tmode, int completed) muly *= 1.8; #define DO_TRI(a, b, c) \ - cucul_fill_triangle(mask, \ + caca_fill_triangle(mask, \ star_rot[(a)*2] * mulx + w2, star_rot[(a)*2+1] * muly + h2, \ star_rot[(b)*2] * mulx + w2, star_rot[(b)*2+1] * muly + h2, \ star_rot[(c)*2] * mulx + w2, star_rot[(c)*2+1] * muly + h2, '#') @@ -288,14 +287,14 @@ void transition(cucul_canvas_t *mask, int tmode, int completed) break; case TRANSITION_CIRCLE: - cucul_fill_ellipse(mask, w2, h2, mulx, muly, '#'); + caca_fill_ellipse(mask, w2, h2, mulx, muly, '#'); break; case TRANSITION_VLINES: for(i = 0; i < 8; i++) { int z = ((i & 1) ? w : (-w)/2) * (100 - completed) / 100; - cucul_fill_box(mask, i * w / 8, z , (w / 8) + 1, z + h, '#'); + caca_fill_box(mask, i * w / 8, z , (w / 8) + 1, z + h, '#'); } break; @@ -304,7 +303,7 @@ void transition(cucul_canvas_t *mask, int tmode, int completed) for(i = 0; i < 6; i++) { int z = ((i & 1) ? w : (-w)/2) * (100 - completed) / 100; - cucul_fill_box(mask, z, i * h / 6, z + w, (h / 6) + 1, '#'); + caca_fill_box(mask, z, i * h / 6, z + w, (h / 6) + 1, '#'); } break; } @@ -318,9 +317,9 @@ static uint8_t table[TABLEX * TABLEY]; static void do_plasma(uint8_t *, double, double, double, double, double, double); -void plasma(enum action action, cucul_canvas_t *cv) +void plasma(enum action action, caca_canvas_t *cv) { - static cucul_dither_t *dither; + static caca_dither_t *dither; static uint8_t *screen; static uint32_t red[256], green[256], blue[256], alpha[256]; static double r[3], R[6]; @@ -335,10 +334,10 @@ void plasma(enum action action, cucul_canvas_t *cv) red[i] = green[i] = blue[i] = alpha[i] = 0; for(i = 0; i < 3; i++) - r[i] = (double)(cucul_rand(1, 1000)) / 60000 * M_PI; + r[i] = (double)(caca_rand(1, 1000)) / 60000 * M_PI; for(i = 0; i < 6; i++) - R[i] = (double)(cucul_rand(1, 1000)) / 10000; + R[i] = (double)(caca_rand(1, 1000)) / 10000; for(y = 0 ; y < TABLEY ; y++) for(x = 0 ; x < TABLEX ; x++) @@ -353,7 +352,7 @@ void plasma(enum action action, cucul_canvas_t *cv) case INIT: screen = malloc(XSIZ * YSIZ * sizeof(uint8_t)); - dither = cucul_create_dither(8, XSIZ, YSIZ, XSIZ, 0, 0, 0, 0); + dither = caca_create_dither(8, XSIZ, YSIZ, XSIZ, 0, 0, 0, 0); break; case UPDATE: @@ -367,7 +366,7 @@ void plasma(enum action action, cucul_canvas_t *cv) } /* Set the palette */ - cucul_set_dither_palette(dither, red, green, blue, alpha); + caca_set_dither_palette(dither, red, green, blue, alpha); do_plasma(screen, (1.0 + sin(((double)frame) * R[0])) / 2, @@ -379,15 +378,15 @@ void plasma(enum action action, cucul_canvas_t *cv) break; case RENDER: - cucul_dither_bitmap(cv, 0, 0, - cucul_get_canvas_width(cv), - cucul_get_canvas_height(cv), + caca_dither_bitmap(cv, 0, 0, + caca_get_canvas_width(cv), + caca_get_canvas_height(cv), dither, screen); break; case FREE: free(screen); - cucul_free_dither(dither); + caca_free_dither(dither); break; } } @@ -425,9 +424,9 @@ static uint8_t metaball[METASIZE * METASIZE]; static void create_ball(void); static void draw_ball(uint8_t *, unsigned int, unsigned int); -void metaballs(enum action action, cucul_canvas_t *cv) +void metaballs(enum action action, caca_canvas_t *cv) { - static cucul_dither_t *cucul_dither; + static caca_dither_t *caca_dither; static uint8_t *screen; static uint32_t r[256], g[256], b[256], a[256]; static float dd[METABALLS], di[METABALLS], dj[METABALLS], dk[METABALLS]; @@ -451,13 +450,13 @@ void metaballs(enum action action, cucul_canvas_t *cv) for(n = 0; n < METABALLS; n++) { - dd[n] = cucul_rand(0, 100); - di[n] = (float)cucul_rand(500, 4000) / 6000.0; - dj[n] = (float)cucul_rand(500, 4000) / 6000.0; - dk[n] = (float)cucul_rand(500, 4000) / 6000.0; + dd[n] = caca_rand(0, 100); + di[n] = (float)caca_rand(500, 4000) / 6000.0; + dj[n] = (float)caca_rand(500, 4000) / 6000.0; + dk[n] = (float)caca_rand(500, 4000) / 6000.0; } - angleoff = cucul_rand(0, 360); + angleoff = caca_rand(0, 360); for(n = 0; n < 360 + 80; n++) offset[n] = 1.0 + sin((double)(n * M_PI / 60)); @@ -465,9 +464,9 @@ void metaballs(enum action action, cucul_canvas_t *cv) case INIT: screen = malloc(XSIZ * YSIZ * sizeof(uint8_t)); - /* Create a libcucul dither smaller than our pixel buffer, so that we + /* Create a libcaca dither smaller than our pixel buffer, so that we * display only the interesting part of it */ - cucul_dither = cucul_create_dither(8, XSIZ - METASIZE, YSIZ - METASIZE, + caca_dither = caca_create_dither(8, XSIZ - METASIZE, YSIZ - METASIZE, XSIZ, 0, 0, 0, 0); break; @@ -492,7 +491,7 @@ void metaballs(enum action action, cucul_canvas_t *cv) } /* Set the palette */ - cucul_set_dither_palette(cucul_dither, r, g, b, a); + caca_set_dither_palette(caca_dither, r, g, b, a); /* Silly paths for our balls */ for(n = 0; n < METABALLS; n++) @@ -516,15 +515,15 @@ void metaballs(enum action action, cucul_canvas_t *cv) break; case RENDER: - cucul_dither_bitmap(cv, 0, 0, - cucul_get_canvas_width(cv), - cucul_get_canvas_height(cv), - cucul_dither, screen + (METASIZE / 2) * (1 + XSIZ)); + caca_dither_bitmap(cv, 0, 0, + caca_get_canvas_width(cv), + caca_get_canvas_height(cv), + caca_dither, screen + (METASIZE / 2) * (1 + XSIZ)); break; case FREE: free(screen); - cucul_free_dither(cucul_dither); + caca_free_dither(caca_dither); break; } } @@ -576,9 +575,9 @@ static uint8_t disc[DISCSIZ * DISCSIZ]; static void put_disc(uint8_t *, int, int); static void draw_line(int, int, char); -void moire(enum action action, cucul_canvas_t *cv) +void moire(enum action action, caca_canvas_t *cv) { - static cucul_dither_t *dither; + static caca_dither_t *dither; static uint8_t *screen; static float d[6]; static uint32_t red[256], green[256], blue[256], alpha[256]; @@ -593,7 +592,7 @@ void moire(enum action action, cucul_canvas_t *cv) red[i] = green[i] = blue[i] = alpha[i] = 0; for(i = 0; i < 6; i++) - d[i] = ((float)cucul_rand(50, 70)) / 1000.0; + d[i] = ((float)caca_rand(50, 70)) / 1000.0; red[0] = green[0] = blue[0] = 0x777; red[1] = green[1] = blue[1] = 0xfff; @@ -616,7 +615,7 @@ void moire(enum action action, cucul_canvas_t *cv) case INIT: screen = malloc(XSIZ * YSIZ * sizeof(uint8_t)); - dither = cucul_create_dither(8, XSIZ, YSIZ, XSIZ, 0, 0, 0, 0); + dither = caca_create_dither(8, XSIZ, YSIZ, XSIZ, 0, 0, 0, 0); break; case UPDATE: @@ -631,7 +630,7 @@ void moire(enum action action, cucul_canvas_t *cv) green[1] = 0.5 * (1 + cos(d[4] * frame + 5.0)) * 0xfff; blue[1] = 0.5 * (1 + cos(d[5] * (frame + 4000))) * 0xfff; - cucul_set_dither_palette(dither, red, green, blue, alpha); + caca_set_dither_palette(dither, red, green, blue, alpha); /* Draw circles */ x = cos(d[0] * (frame + 1000)) * 128.0 + (XSIZ / 2); @@ -644,15 +643,15 @@ void moire(enum action action, cucul_canvas_t *cv) break; case RENDER: - cucul_dither_bitmap(cv, 0, 0, - cucul_get_canvas_width(cv), - cucul_get_canvas_height(cv), + caca_dither_bitmap(cv, 0, 0, + caca_get_canvas_width(cv), + caca_get_canvas_height(cv), dither, screen); break; case FREE: free(screen); - cucul_free_dither(dither); + caca_free_dither(dither); break; } } @@ -687,7 +686,7 @@ static void draw_line(int x, int y, char color) #define ANTS 15 #define ITER 2 -void langton(enum action action, cucul_canvas_t *cv) +void langton(enum action action, caca_canvas_t *cv) { static char gradient[] = { @@ -704,13 +703,13 @@ void langton(enum action action, cucul_canvas_t *cv) switch(action) { case PREPARE: - width = cucul_get_canvas_width(cv); - height = cucul_get_canvas_height(cv); + width = caca_get_canvas_width(cv); + height = caca_get_canvas_height(cv); for(i = 0; i < ANTS; i++) { - ax[i] = cucul_rand(0, width); - ay[i] = cucul_rand(0, height); - dir[i] = cucul_rand(0, 4); + ax[i] = caca_rand(0, width); + ay[i] = caca_rand(0, height); + dir[i] = caca_rand(0, 4); } break; @@ -757,10 +756,10 @@ void langton(enum action action, cucul_canvas_t *cv) uint8_t p = screen[x + width * y]; if(p & 0x0f) - cucul_set_color_ansi(cv, CUCUL_WHITE, p >> 4); + caca_set_color_ansi(cv, CACA_WHITE, p >> 4); else - cucul_set_color_ansi(cv, CUCUL_BLACK, CUCUL_BLACK); - cucul_put_char(cv, x, y, gradient[p & 0x0f]); + caca_set_color_ansi(cv, CACA_BLACK, CACA_BLACK); + caca_put_char(cv, x, y, gradient[p & 0x0f]); } } break; @@ -776,7 +775,7 @@ void langton(enum action action, cucul_canvas_t *cv) #define MINLEN 15 #define MAXLEN 30 -void matrix(enum action action, cucul_canvas_t *cv) +void matrix(enum action action, caca_canvas_t *cv) { static struct drop { @@ -792,12 +791,12 @@ void matrix(enum action action, cucul_canvas_t *cv) case PREPARE: for(i = 0; i < MAXDROPS; i++) { - drop[i].x = cucul_rand(0, 1000); - drop[i].y = cucul_rand(0, 1000); - drop[i].speed = 5 + cucul_rand(0, 30); - drop[i].len = MINLEN + cucul_rand(0, (MAXLEN - MINLEN)); + drop[i].x = caca_rand(0, 1000); + drop[i].y = caca_rand(0, 1000); + drop[i].speed = 5 + caca_rand(0, 30); + drop[i].len = MINLEN + caca_rand(0, (MAXLEN - MINLEN)); for(j = 0; j < MAXLEN; j++) - drop[i].str[j] = cucul_rand('0', 'z'); + drop[i].str[j] = caca_rand('0', 'z'); } break; @@ -805,8 +804,8 @@ void matrix(enum action action, cucul_canvas_t *cv) break; case UPDATE: - w = cucul_get_canvas_width(cv); - h = cucul_get_canvas_height(cv); + w = caca_get_canvas_width(cv); + h = caca_get_canvas_height(cv); for(i = 0; i < MAXDROPS && i < (w * h / 32); i++) { @@ -814,17 +813,17 @@ void matrix(enum action action, cucul_canvas_t *cv) if(drop[i].y > 1000) { drop[i].y -= 1000; - drop[i].x = cucul_rand(0, 1000); + drop[i].x = caca_rand(0, 1000); } } break; case RENDER: - w = cucul_get_canvas_width(cv); - h = cucul_get_canvas_height(cv); + w = caca_get_canvas_width(cv); + h = caca_get_canvas_height(cv); - cucul_set_color_ansi(cv, CUCUL_BLACK, CUCUL_BLACK); - cucul_clear_canvas(cv); + caca_set_color_ansi(cv, CACA_BLACK, CACA_BLACK); + caca_clear_canvas(cv); for(i = 0; i < MAXDROPS && i < (w * h / 32); i++) { @@ -838,16 +837,16 @@ void matrix(enum action action, cucul_canvas_t *cv) unsigned int fg; if(j < 2) - fg = CUCUL_WHITE; + fg = CACA_WHITE; else if(j < drop[i].len / 4) - fg = CUCUL_LIGHTGREEN; + fg = CACA_LIGHTGREEN; else if(j < drop[i].len * 4 / 5) - fg = CUCUL_GREEN; + fg = CACA_GREEN; else - fg = CUCUL_DARKGRAY; - cucul_set_color_ansi(cv, fg, CUCUL_BLACK); + fg = CACA_DARKGRAY; + caca_set_color_ansi(cv, fg, CACA_BLACK); - cucul_put_char(cv, x, y - j, + caca_put_char(cv, x, y - j, drop[i].str[(y - j) % drop[i].len]); } } @@ -871,13 +870,13 @@ void matrix(enum action action, cucul_canvas_t *cv) #include "texture.h" -void rotozoom(enum action action, cucul_canvas_t *canvas) +void rotozoom(enum action action, caca_canvas_t *canvas) { static uint32_t screen[XSIZ * YSIZ]; static int cos_tab[TABLE_SIZE], sin_tab[TABLE_SIZE]; static int y_tab[TEXTURE_SIZE]; - static cucul_dither_t *dither; + static caca_dither_t *dither; static uint32_t *texture; uint32_t *p; static int alphaF, tF; @@ -903,7 +902,7 @@ void rotozoom(enum action action, cucul_canvas_t *canvas) break; case INIT: - dither = cucul_create_dither(32, XSIZ, YSIZ, XSIZ * 4, + dither = caca_create_dither(32, XSIZ, YSIZ, XSIZ * 4, 0x00FF0000, 0x0000FF00, 0x000000FF, @@ -941,14 +940,14 @@ void rotozoom(enum action action, cucul_canvas_t *canvas) break; case RENDER: - cucul_dither_bitmap(canvas, 0, 0, - cucul_get_canvas_width(canvas), - cucul_get_canvas_height(canvas), + caca_dither_bitmap(canvas, 0, 0, + caca_get_canvas_width(canvas), + caca_get_canvas_height(canvas), dither, screen); break; case FREE: - cucul_free_dither(dither); + caca_free_dither(dither); break; } } diff --git a/src/cacadraw.c b/src/cacadraw.c index 2f03d45..2f41dd1 100644 --- a/src/cacadraw.c +++ b/src/cacadraw.c @@ -20,12 +20,11 @@ # include #endif -#include "cucul.h" #include "caca.h" static int refresh_screen(void); -static cucul_canvas_t *cv, *image; +static caca_canvas_t *cv, *image; static caca_display_t *dp; static int x = 0, y = 0; @@ -40,7 +39,7 @@ int main(int argc, char **argv) return 1; } - cv = cucul_create_canvas(0, 0); + cv = caca_create_canvas(0, 0); if(!cv) return 1; dp = caca_create_display(cv); @@ -55,15 +54,15 @@ int main(int argc, char **argv) if(!image) { - image = cucul_create_canvas(0, 0); - if(cucul_import_file(image, argv[file], "ansi") < 0) + image = caca_create_canvas(0, 0); + if(caca_import_file(image, argv[file], "ansi") < 0) { fprintf(stderr, "%s: invalid file `%s'.\n", argv[0], argv[1]); return 1; } - ih = cucul_get_canvas_height(image); - iw = cucul_get_canvas_width(image); + ih = caca_get_canvas_height(image); + iw = caca_get_canvas_width(image); x = y = 0; caca_set_display_title(dp, argv[file]); @@ -97,12 +96,12 @@ int main(int argc, char **argv) goto quit; case 'n': file = file + 1 < argc ? file + 1 : 1; - cucul_free_canvas(image); + caca_free_canvas(image); image = NULL; goto stopevents; case 'p': file = file > 1 ? file - 1 : argc - 1; - cucul_free_canvas(image); + caca_free_canvas(image); image = NULL; goto stopevents; default: @@ -117,8 +116,8 @@ int main(int argc, char **argv) } stopevents: - w = cucul_get_canvas_width(cv); - h = cucul_get_canvas_height(cv); + w = caca_get_canvas_width(cv); + h = caca_get_canvas_height(cv); if(dx | dy) { @@ -134,18 +133,18 @@ quit: /* Clean up */ caca_free_display(dp); - cucul_free_canvas(image); - cucul_free_canvas(cv); + caca_free_canvas(image); + caca_free_canvas(cv); return 0; } static int refresh_screen(void) { - cucul_set_color_ansi(cv, CUCUL_DEFAULT, CUCUL_DEFAULT); - cucul_clear_canvas(cv); + caca_set_color_ansi(cv, CACA_DEFAULT, CACA_DEFAULT); + caca_clear_canvas(cv); - cucul_blit(cv, - x, - y, image, NULL); + caca_blit(cv, - x, - y, image, NULL); caca_refresh_display(dp); diff --git a/src/cacaplay.c b/src/cacaplay.c index 24a22da..5ba2aa0 100644 --- a/src/cacaplay.c +++ b/src/cacaplay.c @@ -24,12 +24,11 @@ # include #endif -#include "cucul.h" #include "caca.h" int main(int argc, char **argv) { - cucul_canvas_t *cv, *app; + caca_canvas_t *cv, *app; caca_display_t *dp; uint8_t *buf = NULL; long int bytes = 0, total = 0; @@ -49,8 +48,8 @@ int main(int argc, char **argv) } } - cv = cucul_create_canvas(0, 0); - app = cucul_create_canvas(0, 0); + cv = caca_create_canvas(0, 0); + app = caca_create_canvas(0, 0); if(cv == NULL || app == NULL) { printf("Can't created canvas\n"); @@ -90,14 +89,14 @@ int main(int argc, char **argv) total += n; } - bytes = cucul_import_memory(app, buf, total, "caca"); + bytes = caca_import_memory(app, buf, total, "caca"); if(bytes > 0) { total -= bytes; memmove(buf, buf + bytes, total); - cucul_blit(cv, 0, 0, app, NULL); + caca_blit(cv, 0, 0, app, NULL); caca_refresh_display(dp); } else if(bytes < 0) @@ -116,7 +115,7 @@ int main(int argc, char **argv) close(fd); caca_free_display(dp); - cucul_free_canvas(cv); + caca_free_canvas(cv); return 0; } diff --git a/src/cacaserver.c b/src/cacaserver.c index 7deec73..4a3308c 100644 --- a/src/cacaserver.c +++ b/src/cacaserver.c @@ -42,7 +42,7 @@ # define USE_WINSOCK 0 #endif -#include "cucul.h" +#include "caca.h" #define BACKLOG 1337 /* Number of pending connections */ #define INBUFFER 32 /* Size of per-client input buffer */ @@ -110,7 +110,7 @@ struct server char prefix[sizeof(INIT_PREFIX)]; - cucul_canvas_t *canvas; + caca_canvas_t *canvas; void *buffer; size_t buflen; @@ -189,7 +189,7 @@ int main(void) return -1; } - server->canvas = cucul_create_canvas(0, 0); + server->canvas = caca_create_canvas(0, 0); server->buffer = NULL; /* Ignore SIGPIPE */ @@ -213,7 +213,7 @@ restart: server->read = 12; } - while(cucul_import_memory(server->canvas, server->input, + while(caca_import_memory(server->canvas, server->input, server->read, "caca") < 0) { memmove(server->input, server->input + 1, server->read - 1); @@ -224,7 +224,7 @@ restart: { ssize_t needed, wanted; - needed = cucul_import_memory(server->canvas, server->input, + needed = caca_import_memory(server->canvas, server->input, server->read, "caca"); if(needed < 0) goto restart; @@ -252,7 +252,7 @@ restart: /* Get ANSI representation of the image and skip the end-of buffer * linefeed ("\r\n", 2 byte) */ - server->buffer = cucul_export_memory(server->canvas, "utf8cr", + server->buffer = caca_export_memory(server->canvas, "utf8cr", &server->buflen); server->buflen -= 2; @@ -284,7 +284,7 @@ restart: if(server->buffer) free(server->buffer); - cucul_free_canvas(server->canvas); + caca_free_canvas(server->canvas); /* Restore SIGPIPE handler */ signal(SIGPIPE, server->sigpipe_handler); diff --git a/src/cacaview.c b/src/cacaview.c index c051d87..91d7d21 100644 --- a/src/cacaview.c +++ b/src/cacaview.c @@ -24,7 +24,6 @@ # include #endif -#include "cucul.h" #include "caca.h" #include "common-image.h" @@ -44,8 +43,8 @@ #define GAMMA(g) (((g) < 0) ? 1.0 / gammatab[-(g)] : gammatab[(g)]) #define PAD_STEP 0.15 -/* libcucul/libcaca contexts */ -cucul_canvas_t *cv; caca_display_t *dp; +/* libcaca/libcaca contexts */ +caca_canvas_t *cv; caca_display_t *dp; /* Local functions */ static void print_status(void); @@ -64,7 +63,7 @@ int zoom = 0, g = 0, fullscreen = 0, mode, ww, wh; int main(int argc, char **argv) { - char const * const * algos = cucul_get_dither_algorithm_list(NULL); + char const * const * algos = caca_get_dither_algorithm_list(NULL); int dither_algorithm = 0; int quit = 0, update = 1, help = 0, status = 0; @@ -74,11 +73,11 @@ int main(int argc, char **argv) int current = 0, items = 0, opts = 1; int i; - /* Initialise libcucul */ - cv = cucul_create_canvas(0, 0); + /* Initialise libcaca */ + cv = caca_create_canvas(0, 0); if(!cv) { - fprintf(stderr, "%s: unable to initialise libcucul\n", argv[0]); + fprintf(stderr, "%s: unable to initialise libcaca\n", argv[0]); return 1; } @@ -92,8 +91,8 @@ int main(int argc, char **argv) /* Set the window title */ caca_set_display_title(dp, "cacaview"); - ww = cucul_get_canvas_width(cv); - wh = cucul_get_canvas_height(cv); + ww = caca_get_canvas_width(cv); + wh = caca_get_canvas_height(cv); /* Fill the zoom table */ zoomtab[0] = 1.0; @@ -180,30 +179,30 @@ int main(int argc, char **argv) break; #if 0 /* FIXME */ case 'b': - i = 1 + cucul_get_feature(cv, CUCUL_BACKGROUND); - if(i > CUCUL_BACKGROUND_MAX) i = CUCUL_BACKGROUND_MIN; - cucul_set_feature(cv, i); + i = 1 + caca_get_feature(cv, CACA_BACKGROUND); + if(i > CACA_BACKGROUND_MAX) i = CACA_BACKGROUND_MIN; + caca_set_feature(cv, i); new_status = STATUS_BACKGROUND; update = 1; break; case 'B': - i = -1 + cucul_get_feature(cv, CUCUL_BACKGROUND); - if(i < CUCUL_BACKGROUND_MIN) i = CUCUL_BACKGROUND_MAX; - cucul_set_feature(cv, i); + i = -1 + caca_get_feature(cv, CACA_BACKGROUND); + if(i < CACA_BACKGROUND_MIN) i = CACA_BACKGROUND_MAX; + caca_set_feature(cv, i); new_status = STATUS_BACKGROUND; update = 1; break; case 'a': - i = 1 + cucul_get_feature(cv, CUCUL_ANTIALIASING); - if(i > CUCUL_ANTIALIASING_MAX) i = CUCUL_ANTIALIASING_MIN; - cucul_set_feature(cv, i); + i = 1 + caca_get_feature(cv, CACA_ANTIALIASING); + if(i > CACA_ANTIALIASING_MAX) i = CACA_ANTIALIASING_MIN; + caca_set_feature(cv, i); new_status = STATUS_ANTIALIASING; update = 1; break; case 'A': - i = -1 + cucul_get_feature(cv, CUCUL_ANTIALIASING); - if(i < CUCUL_ANTIALIASING_MIN) i = CUCUL_ANTIALIASING_MAX; - cucul_set_feature(cv, i); + i = -1 + caca_get_feature(cv, CACA_ANTIALIASING); + if(i < CACA_ANTIALIASING_MIN) i = CACA_ANTIALIASING_MAX; + caca_set_feature(cv, i); new_status = STATUS_ANTIALIASING; update = 1; break; @@ -212,7 +211,7 @@ int main(int argc, char **argv) dither_algorithm++; if(algos[dither_algorithm * 2] == NULL) dither_algorithm = 0; - cucul_set_dither_algorithm(im->dither, + caca_set_dither_algorithm(im->dither, algos[dither_algorithm * 2]); new_status = STATUS_DITHERING; update = 1; @@ -222,7 +221,7 @@ int main(int argc, char **argv) if(dither_algorithm < 0) while(algos[dither_algorithm * 2 + 2] != NULL) dither_algorithm++; - cucul_set_dither_algorithm(im->dither, + caca_set_dither_algorithm(im->dither, algos[dither_algorithm * 2]); new_status = STATUS_DITHERING; update = 1; @@ -319,11 +318,11 @@ int main(int argc, char **argv) sprintf(buffer, " Loading `%s'... ", list[current]); buffer[ww] = '\0'; - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); - cucul_put_str(cv, (ww - strlen(buffer)) / 2, wh / 2, buffer); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); + caca_put_str(cv, (ww - strlen(buffer)) / 2, wh / 2, buffer); caca_refresh_display(dp); - ww = cucul_get_canvas_width(cv); - wh = cucul_get_canvas_height(cv); + ww = caca_get_canvas_width(cv); + wh = caca_get_canvas_height(cv); if(im) unload_image(im); @@ -339,13 +338,13 @@ int main(int argc, char **argv) free(buffer); } - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLACK); - cucul_clear_canvas(cv); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLACK); + caca_clear_canvas(cv); if(!items) { - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); - cucul_printf(cv, ww / 2 - 5, wh / 2, " No image. "); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); + caca_printf(cv, ww / 2 - 5, wh / 2, " No image. "); } else if(!im) { @@ -364,8 +363,8 @@ int main(int argc, char **argv) sprintf(buffer, ERROR_STRING, list[current]); buffer[ww] = '\0'; - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); - cucul_put_str(cv, (ww - strlen(buffer)) / 2, wh / 2, buffer); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); + caca_put_str(cv, (ww - strlen(buffer)) / 2, wh / 2, buffer); free(buffer); } else @@ -383,7 +382,7 @@ int main(int argc, char **argv) y + height * (1.0 - yfactor) / 2, ww * xfactor, height * yfactor); - cucul_dither_bitmap(cv, ww * (1.0 - xfactor) * xdelta, + caca_dither_bitmap(cv, ww * (1.0 - xfactor) * xdelta, y + height * (1.0 - yfactor) * ydelta, ww * xfactor + 1, height * yfactor + 1, im->dither, im->pixels); @@ -393,21 +392,21 @@ int main(int argc, char **argv) { print_status(); - cucul_set_color_ansi(cv, CUCUL_LIGHTGRAY, CUCUL_BLACK); + caca_set_color_ansi(cv, CACA_LIGHTGRAY, CACA_BLACK); switch(status) { case STATUS_DITHERING: - cucul_printf(cv, 0, wh - 1, "Dithering: %s", - cucul_get_dither_algorithm(im->dither)); + caca_printf(cv, 0, wh - 1, "Dithering: %s", + caca_get_dither_algorithm(im->dither)); break; #if 0 /* FIXME */ case STATUS_ANTIALIASING: - cucul_printf(cv, 0, wh - 1, "Antialiasing: %s", - cucul_get_feature_name(cucul_get_feature(cv, CUCUL_ANTIALIASING))); + caca_printf(cv, 0, wh - 1, "Antialiasing: %s", + caca_get_feature_name(caca_get_feature(cv, CACA_ANTIALIASING))); break; case STATUS_BACKGROUND: - cucul_printf(cv, 0, wh - 1, "Background: %s", - cucul_get_feature_name(cucul_get_feature(cv, CUCUL_BACKGROUND))); + caca_printf(cv, 0, wh - 1, "Background: %s", + caca_get_feature_name(caca_get_feature(cv, CACA_BACKGROUND))); break; #endif } @@ -426,25 +425,25 @@ int main(int argc, char **argv) if(im) unload_image(im); caca_free_display(dp); - cucul_free_canvas(cv); + caca_free_canvas(cv); return 0; } static void print_status(void) { - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); - cucul_draw_line(cv, 0, 0, ww - 1, 0, ' '); - cucul_draw_line(cv, 0, wh - 2, ww - 1, wh - 2, '-'); - cucul_put_str(cv, 0, 0, "q:Quit np:Next/Prev +-x:Zoom gG:Gamma " + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); + caca_draw_line(cv, 0, 0, ww - 1, 0, ' '); + caca_draw_line(cv, 0, wh - 2, ww - 1, wh - 2, '-'); + caca_put_str(cv, 0, 0, "q:Quit np:Next/Prev +-x:Zoom gG:Gamma " "hjkl:Move d:Dither a:Antialias"); - cucul_put_str(cv, ww - strlen("?:Help"), 0, "?:Help"); - cucul_printf(cv, 3, wh - 2, "cacaview %s", VERSION); - cucul_printf(cv, ww - 30, wh - 2, "(gamma: %#.3g)", GAMMA(g)); - cucul_printf(cv, ww - 14, wh - 2, "(zoom: %s%i)", zoom > 0 ? "+" : "", zoom); + caca_put_str(cv, ww - strlen("?:Help"), 0, "?:Help"); + caca_printf(cv, 3, wh - 2, "cacaview %s", VERSION); + caca_printf(cv, ww - 30, wh - 2, "(gamma: %#.3g)", GAMMA(g)); + caca_printf(cv, ww - 14, wh - 2, "(zoom: %s%i)", zoom > 0 ? "+" : "", zoom); - cucul_set_color_ansi(cv, CUCUL_LIGHTGRAY, CUCUL_BLACK); - cucul_draw_line(cv, 0, wh - 1, ww - 1, wh - 1, ' '); + caca_set_color_ansi(cv, CACA_LIGHTGRAY, CACA_BLACK); + caca_draw_line(cv, 0, wh - 1, ww - 1, wh - 1, ' '); } static void print_help(int x, int y) @@ -471,10 +470,10 @@ static void print_help(int x, int y) int i; - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE); for(i = 0; help[i]; i++) - cucul_put_str(cv, x, y + i, help[i]); + caca_put_str(cv, x, y + i, help[i]); } static void set_zoom(int new_zoom) @@ -489,12 +488,12 @@ static void set_zoom(int new_zoom) if(zoom > ZOOM_MAX) zoom = ZOOM_MAX; if(zoom < -ZOOM_MAX) zoom = -ZOOM_MAX; - ww = cucul_get_canvas_width(cv); + ww = caca_get_canvas_width(cv); height = fullscreen ? wh : wh - 3; xfactor = (zoom < 0) ? 1.0 / zoomtab[-zoom] : zoomtab[zoom]; yfactor = xfactor * ww / height * im->h / im->w - * cucul_get_canvas_height(cv) / cucul_get_canvas_width(cv) + * caca_get_canvas_height(cv) / caca_get_canvas_width(cv) * caca_get_display_width(dp) / caca_get_display_height(dp); if(yfactor > xfactor) @@ -515,7 +514,7 @@ static void set_gamma(int new_gamma) if(g > GAMMA_MAX) g = GAMMA_MAX; if(g < -GAMMA_MAX) g = -GAMMA_MAX; - cucul_set_dither_gamma(im->dither, + caca_set_dither_gamma(im->dither, (g < 0) ? 1.0 / gammatab[-g] : gammatab[g]); } @@ -523,19 +522,19 @@ static void draw_checkers(int x, int y, int w, int h) { int xn, yn; - if(x + w > (int)cucul_get_canvas_width(cv)) - w = cucul_get_canvas_width(cv) - x; - if(y + h > (int)cucul_get_canvas_height(cv)) - h = cucul_get_canvas_height(cv) - y; + if(x + w > (int)caca_get_canvas_width(cv)) + w = caca_get_canvas_width(cv) - x; + if(y + h > (int)caca_get_canvas_height(cv)) + h = caca_get_canvas_height(cv) - y; for(yn = y > 0 ? y : 0; yn < y + h; yn++) for(xn = x > 0 ? x : 0; xn < x + w; xn++) { if((((xn - x) / 5) ^ ((yn - y) / 3)) & 1) - cucul_set_color_ansi(cv, CUCUL_LIGHTGRAY, CUCUL_DARKGRAY); + caca_set_color_ansi(cv, CACA_LIGHTGRAY, CACA_DARKGRAY); else - cucul_set_color_ansi(cv, CUCUL_DARKGRAY, CUCUL_LIGHTGRAY); - cucul_put_char(cv, xn, yn, ' '); + caca_set_color_ansi(cv, CACA_DARKGRAY, CACA_LIGHTGRAY); + caca_put_char(cv, xn, yn, ' '); } } diff --git a/src/common-image.c b/src/common-image.c index 0c177ce..acab4f2 100644 --- a/src/common-image.c +++ b/src/common-image.c @@ -23,14 +23,14 @@ # include #endif -#include "cucul.h" +#include "caca.h" #include "common-image.h" #if !defined(USE_IMLIB2) -static unsigned int u32fread(cucul_file_t *); -static unsigned int u16fread(cucul_file_t *); -static unsigned int u8fread(cucul_file_t *); +static unsigned int u32fread(caca_file_t *); +static unsigned int u16fread(caca_file_t *); +static unsigned int u8fread(caca_file_t *); #endif struct image * load_image(char const * name) @@ -61,8 +61,8 @@ struct image * load_image(char const * name) bpp = 32; depth = 4; - /* Create the libcucul dither */ - im->dither = cucul_create_dither(bpp, im->w, im->h, depth * im->w, + /* Create the libcaca dither */ + im->dither = caca_create_dither(bpp, im->w, im->h, depth * im->w, rmask, gmask, bmask, amask); if(!im->dither) { @@ -77,9 +77,9 @@ struct image * load_image(char const * name) /* Try to load a BMP file */ unsigned int red[256], green[256], blue[256], alpha[256]; unsigned int i, colors, offset, tmp, planes; - cucul_file_t *f; + caca_file_t *f; - f = cucul_file_open(name, "rb"); + f = caca_file_open(name, "rb"); if(!f) { free(im); @@ -88,7 +88,7 @@ struct image * load_image(char const * name) if(u16fread(f) != 0x4d42) { - cucul_file_close(f); + caca_file_close(f); free(im); return NULL; } @@ -110,7 +110,7 @@ struct image * load_image(char const * name) tmp = u32fread(f); /* compression */ if(tmp != 0) { - cucul_file_close(f); + caca_file_close(f); free(im); return NULL; } @@ -149,7 +149,7 @@ struct image * load_image(char const * name) } else { - cucul_file_close(f); + caca_file_close(f); free(im); return NULL; } @@ -163,7 +163,7 @@ struct image * load_image(char const * name) /* Sanity check */ if(!im->w || im->w > 0x10000 || !im->h || im->h > 0x10000 || planes != 1) { - cucul_file_close(f); + caca_file_close(f); free(im); return NULL; } @@ -172,7 +172,7 @@ struct image * load_image(char const * name) im->pixels = malloc(im->w * im->h * depth); if(!im->pixels) { - cucul_file_close(f); + caca_file_close(f); free(im); return NULL; } @@ -208,7 +208,7 @@ struct image * load_image(char const * name) break; default: /* Works for 8bpp, but also for 16, 24 etc. */ - cucul_file_read(f, im->pixels + im->w * i * depth, + caca_file_read(f, im->pixels + im->w * i * depth, im->w * depth); /* Pad reads to 4 bytes */ tmp = (im->w * depth) % 4; @@ -240,10 +240,10 @@ struct image * load_image(char const * name) break; } - cucul_file_close(f); + caca_file_close(f); - /* Create the libcucul dither */ - im->dither = cucul_create_dither(bpp, im->w, im->h, depth * im->w, + /* Create the libcaca dither */ + im->dither = caca_create_dither(bpp, im->w, im->h, depth * im->w, rmask, gmask, bmask, amask); if(!im->dither) { @@ -253,7 +253,7 @@ struct image * load_image(char const * name) } if(bpp == 8) - cucul_set_dither_palette(im->dither, red, green, blue, alpha); + caca_set_dither_palette(im->dither, red, green, blue, alpha); #endif return im; @@ -267,29 +267,29 @@ void unload_image(struct image * im) #else free(im->pixels); #endif - cucul_free_dither(im->dither); + caca_free_dither(im->dither); } #if !defined(USE_IMLIB2) -static unsigned int u32fread(cucul_file_t * f) +static unsigned int u32fread(caca_file_t * f) { uint8_t buffer[4]; - cucul_file_read(f, buffer, 4); + caca_file_read(f, buffer, 4); return ((unsigned int)buffer[3] << 24) | ((unsigned int)buffer[2] << 16) | ((unsigned int)buffer[1] << 8) | ((unsigned int)buffer[0]); } -static unsigned int u16fread(cucul_file_t * f) +static unsigned int u16fread(caca_file_t * f) { uint8_t buffer[2]; - cucul_file_read(f, buffer, 2); + caca_file_read(f, buffer, 2); return ((unsigned int)buffer[1] << 8) | ((unsigned int)buffer[0]); } -static unsigned int u8fread(cucul_file_t * f) +static unsigned int u8fread(caca_file_t * f) { uint8_t buffer; - cucul_file_read(f, &buffer, 1); + caca_file_read(f, &buffer, 1); return (unsigned int)buffer; } #endif diff --git a/src/common-image.h b/src/common-image.h index 4508024..2317589 100644 --- a/src/common-image.h +++ b/src/common-image.h @@ -16,7 +16,7 @@ struct image { char *pixels; unsigned int w, h; - struct cucul_dither *dither; + struct caca_dither *dither; void *priv; }; diff --git a/src/img2txt.c b/src/img2txt.c index 057c72f..1a5a462 100644 --- a/src/img2txt.c +++ b/src/img2txt.c @@ -33,7 +33,7 @@ # define myoption option #endif -#include "cucul.h" +#include "caca.h" #include "common-image.h" @@ -57,7 +57,7 @@ static void usage(int argc, char **argv) fprintf(stderr, " -c, --contrast=CONTRAST\tContrast of resulting image\n"); fprintf(stderr, " -g, --gamma=GAMMA\t\tGamma of resulting image\n"); fprintf(stderr, " -d, --dither=DITHER\t\tDithering algorithm to use :\n"); - list = cucul_get_dither_algorithm_list(NULL); + list = caca_get_dither_algorithm_list(NULL); while(*list) { fprintf(stderr, "\t\t\t%s: %s\n", list[0], list[1]); @@ -65,7 +65,7 @@ static void usage(int argc, char **argv) } fprintf(stderr, " -f, --format=FORMAT\t\tFormat of the resulting image :\n"); - list = cucul_get_export_list(); + list = caca_get_export_list(); while(*list) { fprintf(stderr, "\t\t\t%s: %s\n", list[0], list[1]); @@ -88,12 +88,12 @@ static void version(void) "The latest version of img2txt is available from the web site,\n" " http://libcaca.zoy.org/ in the libcaca package.\n" "\n", - cucul_get_version(), __DATE__); + caca_get_version(), __DATE__); } int main(int argc, char **argv) { - /* libcucul context */ - cucul_canvas_t *cv; + /* libcaca context */ + caca_canvas_t *cv; void *export; size_t len; struct image *i; @@ -174,10 +174,10 @@ int main(int argc, char **argv) } - cv = cucul_create_canvas(0, 0); + cv = caca_create_canvas(0, 0); if(!cv) { - fprintf(stderr, "%s: unable to initialise libcucul\n", argv[0]); + fprintf(stderr, "%s: unable to initialise libcaca\n", argv[0]); return 1; } @@ -185,7 +185,7 @@ int main(int argc, char **argv) if(!i) { fprintf(stderr, "%s: unable to load %s\n", argv[0], argv[argc-1]); - cucul_free_canvas(cv); + caca_free_canvas(cv); return 1; } @@ -205,26 +205,26 @@ int main(int argc, char **argv) } - cucul_set_canvas_size(cv, cols, lines); - cucul_set_color_ansi(cv, CUCUL_DEFAULT, CUCUL_TRANSPARENT); - cucul_clear_canvas(cv); - if(cucul_set_dither_algorithm(i->dither, dither?dither:"fstein")) + caca_set_canvas_size(cv, cols, lines); + caca_set_color_ansi(cv, CACA_DEFAULT, CACA_TRANSPARENT); + caca_clear_canvas(cv); + if(caca_set_dither_algorithm(i->dither, dither?dither:"fstein")) { fprintf(stderr, "%s: Can't dither image with algorithm '%s'\n", argv[0], dither); unload_image(i); - cucul_free_canvas(cv); + caca_free_canvas(cv); return -1; } - if(brightness!=-1) cucul_set_dither_brightness (i->dither, brightness); - if(contrast!=-1) cucul_set_dither_contrast (i->dither, contrast); - if(gamma!=-1) cucul_set_dither_gamma (i->dither, gamma); + if(brightness!=-1) caca_set_dither_brightness (i->dither, brightness); + if(contrast!=-1) caca_set_dither_contrast (i->dither, contrast); + if(gamma!=-1) caca_set_dither_gamma (i->dither, gamma); - cucul_dither_bitmap(cv, 0, 0, cols, lines, i->dither, i->pixels); + caca_dither_bitmap(cv, 0, 0, cols, lines, i->dither, i->pixels); unload_image(i); - export = cucul_export_memory(cv, format?format:"ansi", &len); + export = caca_export_memory(cv, format?format:"ansi", &len); if(!export) { fprintf(stderr, "%s: Can't export to format '%s'\n", argv[0], format); @@ -235,7 +235,7 @@ int main(int argc, char **argv) free(export); } - cucul_free_canvas(cv); + caca_free_canvas(cv); return 0; } diff --git a/src/mygetopt.c b/src/mygetopt.c index 57ddd14..5dc5bb4 100644 --- a/src/mygetopt.c +++ b/src/mygetopt.c @@ -21,7 +21,7 @@ #include #include -#include "cucul_types.h" +#include "caca_types.h" #include "mygetopt.h" diff --git a/stubs.h b/stubs.h index 9c34a5f..07761a5 100644 --- a/stubs.h +++ b/stubs.h @@ -1,5 +1,4 @@ /* - * libcucul Canvas for ultrafast compositing of Unicode letters * libcaca Colour ASCII-Art library * Copyright (c) 2006 Sam Hocevar * All Rights Reserved diff --git a/tests/.gitignore b/tests/.gitignore index 2c539b2..5e50da2 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -1,3 +1,3 @@ simple cucul-test -caca-test +cucul-test diff --git a/tests/Makefile.am b/tests/Makefile.am index 0be9d40..1d53e50 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,10 +1,9 @@ # $Id$ -AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/cucul -I../cucul \ - -I$(top_srcdir)/caca +AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/caca -I../caca if USE_CPPUNIT -cppunit_tests = cucul-test caca-test +cppunit_tests = caca-test endif noinst_PROGRAMS = simple $(cppunit_tests) @@ -12,13 +11,9 @@ noinst_PROGRAMS = simple $(cppunit_tests) TESTS = $(noinst_PROGRAMS) simple_SOURCES = simple.c -simple_LDADD = ../cucul/libcucul.la +simple_LDADD = ../caca/libcaca.la -cucul_test_SOURCES = cucul-test.cpp canvas.cpp -cucul_test_CXXFLAGS = $(CPPUNIT_CFLAGS) -cucul_test_LDADD = ../cucul/libcucul.la $(CPPUNIT_LIBS) - -caca_test_SOURCES = caca-test.cpp driver.cpp +caca_test_SOURCES = caca-test.cpp canvas.cpp driver.cpp caca_test_CXXFLAGS = $(CPPUNIT_CFLAGS) caca_test_LDADD = ../caca/libcaca.la $(CPPUNIT_LIBS) diff --git a/tests/caca-test.cpp b/tests/caca-test.cpp index 0bd5c0c..14faf4b 100644 --- a/tests/caca-test.cpp +++ b/tests/caca-test.cpp @@ -1,5 +1,5 @@ /* - * caca-test testsuite program for libcaca + * cucul-test testsuite program for libcucul * Copyright (c) 2008 Sam Hocevar * All Rights Reserved * diff --git a/tests/canvas.cpp b/tests/canvas.cpp index a72f115..bd392dc 100644 --- a/tests/canvas.cpp +++ b/tests/canvas.cpp @@ -1,5 +1,5 @@ /* - * cucul-test testsuite program for libcucul + * caca-test testsuite program for libcaca * Copyright (c) 2008 Sam Hocevar * All Rights Reserved * @@ -19,7 +19,7 @@ #include #include -#include "cucul.h" +#include "caca.h" class CanvasTest : public CppUnit::TestCase { @@ -38,63 +38,63 @@ public: void test_creation() { - cucul_canvas_t *cv; + caca_canvas_t *cv; - cv = cucul_create_canvas(0, 0); + cv = caca_create_canvas(0, 0); CPPUNIT_ASSERT(cv != NULL); - cucul_free_canvas(cv); + caca_free_canvas(cv); } void test_resize() { - cucul_canvas_t *cv; + caca_canvas_t *cv; - cv = cucul_create_canvas(0, 0); - CPPUNIT_ASSERT_EQUAL(cucul_get_canvas_width(cv), 0); - CPPUNIT_ASSERT_EQUAL(cucul_get_canvas_height(cv), 0); + cv = caca_create_canvas(0, 0); + CPPUNIT_ASSERT_EQUAL(caca_get_canvas_width(cv), 0); + CPPUNIT_ASSERT_EQUAL(caca_get_canvas_height(cv), 0); - cucul_set_canvas_size(cv, 1, 1); - CPPUNIT_ASSERT_EQUAL(cucul_get_canvas_width(cv), 1); - CPPUNIT_ASSERT_EQUAL(cucul_get_canvas_height(cv), 1); + caca_set_canvas_size(cv, 1, 1); + CPPUNIT_ASSERT_EQUAL(caca_get_canvas_width(cv), 1); + CPPUNIT_ASSERT_EQUAL(caca_get_canvas_height(cv), 1); - cucul_set_canvas_size(cv, 1234, 1001); - CPPUNIT_ASSERT_EQUAL(cucul_get_canvas_width(cv), 1234); - CPPUNIT_ASSERT_EQUAL(cucul_get_canvas_height(cv), 1001); + caca_set_canvas_size(cv, 1234, 1001); + CPPUNIT_ASSERT_EQUAL(caca_get_canvas_width(cv), 1234); + CPPUNIT_ASSERT_EQUAL(caca_get_canvas_height(cv), 1001); - cucul_set_canvas_size(cv, 0, 0); - CPPUNIT_ASSERT_EQUAL(cucul_get_canvas_width(cv), 0); - CPPUNIT_ASSERT_EQUAL(cucul_get_canvas_height(cv), 0); + caca_set_canvas_size(cv, 0, 0); + CPPUNIT_ASSERT_EQUAL(caca_get_canvas_width(cv), 0); + CPPUNIT_ASSERT_EQUAL(caca_get_canvas_height(cv), 0); - cucul_free_canvas(cv); + caca_free_canvas(cv); } void test_chars() { - cucul_canvas_t *cv; + caca_canvas_t *cv; - cv = cucul_create_canvas(0, 0); - CPPUNIT_ASSERT(cucul_get_char(cv, 0, 0) == ' '); + cv = caca_create_canvas(0, 0); + CPPUNIT_ASSERT(caca_get_char(cv, 0, 0) == ' '); - cucul_put_char(cv, 0, 0, 'x'); - CPPUNIT_ASSERT(cucul_get_char(cv, 0, 0) == ' '); + caca_put_char(cv, 0, 0, 'x'); + CPPUNIT_ASSERT(caca_get_char(cv, 0, 0) == ' '); - cucul_set_canvas_size(cv, 1, 1); - CPPUNIT_ASSERT(cucul_get_char(cv, 0, 0) == ' '); + caca_set_canvas_size(cv, 1, 1); + CPPUNIT_ASSERT(caca_get_char(cv, 0, 0) == ' '); - cucul_put_char(cv, 0, 0, 'x'); - CPPUNIT_ASSERT(cucul_get_char(cv, 0, 0) == 'x'); + caca_put_char(cv, 0, 0, 'x'); + CPPUNIT_ASSERT(caca_get_char(cv, 0, 0) == 'x'); - cucul_put_char(cv, 0, 0, 'y'); - CPPUNIT_ASSERT(cucul_get_char(cv, 0, 0) == 'y'); + caca_put_char(cv, 0, 0, 'y'); + CPPUNIT_ASSERT(caca_get_char(cv, 0, 0) == 'y'); - cucul_set_canvas_size(cv, 1000, 1000); - CPPUNIT_ASSERT(cucul_get_char(cv, 999, 999) == ' '); + caca_set_canvas_size(cv, 1000, 1000); + CPPUNIT_ASSERT(caca_get_char(cv, 999, 999) == ' '); - cucul_put_char(cv, 999, 999, 'z'); - CPPUNIT_ASSERT(cucul_get_char(cv, 999, 999) == 'z'); + caca_put_char(cv, 999, 999, 'z'); + CPPUNIT_ASSERT(caca_get_char(cv, 999, 999) == 'z'); - cucul_free_canvas(cv); + caca_free_canvas(cv); } }; diff --git a/tests/cucul-test.cpp b/tests/cucul-test.cpp deleted file mode 100644 index abadc8c..0000000 --- a/tests/cucul-test.cpp +++ /dev/null @@ -1,29 +0,0 @@ -/* - * cucul-test testsuite program for libcucul - * Copyright (c) 2008 Sam Hocevar - * All Rights Reserved - * - * $Id$ - * - * This program is free software. It comes without any warranty, to - * the extent permitted by applicable law. You can redistribute it - * and/or modify it under the terms of the Do What The Fuck You Want - * To Public License, Version 2, as published by Sam Hocevar. See - * http://sam.zoy.org/wtfpl/COPYING for more details. - */ - -#include "config.h" - -#include -#include - -int main(int argc, char *argv[]) -{ - CppUnit::TextTestRunner runner; - runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); - - runner.run(); - - return 0; -} - diff --git a/tests/simple.c b/tests/simple.c index d4a88ee..f2bedd0 100644 --- a/tests/simple.c +++ b/tests/simple.c @@ -19,7 +19,7 @@ # include #endif -#include "cucul.h" +#include "caca.h" #define TEST(x) \ do \ @@ -34,27 +34,27 @@ int main(int argc, char *argv[]) { - cucul_canvas_t *cv; + caca_canvas_t *cv; int tests = 0, passed = 0; - cv = cucul_create_canvas(0, 0); - cucul_put_char(cv, 0, 0, 'x'); - TEST(cucul_get_char(cv, 0, 0) != 'x'); + cv = caca_create_canvas(0, 0); + caca_put_char(cv, 0, 0, 'x'); + TEST(caca_get_char(cv, 0, 0) != 'x'); - cucul_set_canvas_size(cv, 1, 1); - TEST(cucul_get_char(cv, 0, 0) != 'x'); - TEST(cucul_get_char(cv, 0, 0) == ' '); + caca_set_canvas_size(cv, 1, 1); + TEST(caca_get_char(cv, 0, 0) != 'x'); + TEST(caca_get_char(cv, 0, 0) == ' '); - cucul_put_char(cv, 0, 0, 'y'); - TEST(cucul_get_char(cv, 0, 0) == 'y'); + caca_put_char(cv, 0, 0, 'y'); + TEST(caca_get_char(cv, 0, 0) == 'y'); - cucul_set_canvas_size(cv, 1000, 1000); - TEST(cucul_get_canvas_width(cv) == 1000); + caca_set_canvas_size(cv, 1000, 1000); + TEST(caca_get_canvas_width(cv) == 1000); - cucul_put_char(cv, 999, 999, 'z'); - TEST(cucul_get_char(cv, 999, 999) == 'z'); + caca_put_char(cv, 999, 999, 'z'); + TEST(caca_get_char(cv, 999, 999) == 'z'); - cucul_free_canvas(cv); + caca_free_canvas(cv); fprintf(stderr, "%i tests, %i errors\n", tests, tests - passed); diff --git a/tools/Makefile.am b/tools/Makefile.am index c58eb65..eb7354d 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -1,6 +1,6 @@ # $Id$ -AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/cucul -I../cucul \ +AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/caca -I../caca \ -I$(top_srcdir)/caca -DDATADIR=\"$(pkgdatadir)\" noinst_PROGRAMS = optipal sortchars $(pango_programs) @@ -8,10 +8,10 @@ noinst_PROGRAMS = optipal sortchars $(pango_programs) optipal_SOURCES = optipal.c sortchars_SOURCES = sortchars.c -sortchars_LDADD = ../cucul/libcucul.la +sortchars_LDADD = ../caca/libcaca.la makefont_SOURCES = makefont.c -makefont_LDADD = ../cucul/libcucul.la +makefont_LDADD = ../caca/libcaca.la makefont_CFLAGS = $(PANGOFT2_CFLAGS) makefont_LDFLAGS = $(PANGOFT2_LIBS) diff --git a/tools/makefont.c b/tools/makefont.c index 9da9357..189ca44 100644 --- a/tools/makefont.c +++ b/tools/makefont.c @@ -30,7 +30,7 @@ #include #include -#include "cucul.h" +#include "caca.h" /* Split our big strings into chunks of 480 characters, because it is * the multiple of 32 directly below 509, which is the maximum allowed @@ -166,7 +166,7 @@ int main(int argc, char *argv[]) blocks++; glyphs += blocklist[b + 1] - blocklist[b]; for(i = blocklist[b]; i < blocklist[b + 1]; i++) - if(cucul_utf32_is_fullwidth(i)) + if(caca_utf32_is_fullwidth(i)) fullglyphs++; } @@ -177,7 +177,7 @@ int main(int argc, char *argv[]) glyph_data = malloc(data_size); /* Let's go! */ - printf("/* libcucul font file\n"); + printf("/* libcaca font file\n"); printf(" * \"%s\": %i dpi, %i bpp, %ix%i/%ix%i glyphs\n", font, dpi, bpp, stdwidth, height, fullwidth, height); printf(" * Automatically generated by tools/makefont.c:\n"); @@ -231,13 +231,13 @@ int main(int argc, char *argv[]) int x, y, bytes, current_width = stdwidth; unsigned int k, current_size = stdsize; - if(cucul_utf32_is_fullwidth(i)) + if(caca_utf32_is_fullwidth(i)) { current_width = fullwidth; current_size = fullsize; } gtab[n].unicode = i; - bytes = cucul_utf32_to_utf8(gtab[n].buf, gtab[n].unicode); + bytes = caca_utf32_to_utf8(gtab[n].buf, gtab[n].unicode); gtab[n].buf[bytes] = '\0'; /* Render glyph on a bitmap */ diff --git a/tools/optipal.c b/tools/optipal.c index 82a9b97..23c33d6 100644 --- a/tools/optipal.c +++ b/tools/optipal.c @@ -18,7 +18,7 @@ # include #endif -#include "cucul.h" /* Only necessary for CUCUL_* macros */ +#include "caca.h" /* Only necessary for CACA_* macros */ static void base_colors(void); static void emulated_colors(void); @@ -29,8 +29,8 @@ static int slang_assoc[16*16], palette[16*16]; /* 6 colours in hue order */ static unsigned int const hue_list[] = { - CUCUL_RED, CUCUL_BROWN, CUCUL_GREEN, - CUCUL_CYAN, CUCUL_BLUE, CUCUL_MAGENTA + CACA_RED, CACA_BROWN, CACA_GREEN, + CACA_CYAN, CACA_BLUE, CACA_MAGENTA }; #define SETPAIR(_fg, _bg, _n) \ @@ -167,14 +167,14 @@ static void base_colors(void) /* black background colour pairs that are needed for the old renderer */ for(i = 1; i < 16; i++) - SETPAIR(i, CUCUL_BLACK, cur++); + SETPAIR(i, CACA_BLACK, cur++); /* gray combinations used for grayscale dithering */ - SETPAIR(CUCUL_BLACK, CUCUL_DARKGRAY, cur++); - SETPAIR(CUCUL_DARKGRAY, CUCUL_LIGHTGRAY, cur++); - SETPAIR(CUCUL_LIGHTGRAY, CUCUL_DARKGRAY, cur++); - SETPAIR(CUCUL_WHITE, CUCUL_LIGHTGRAY, cur++); - SETPAIR(CUCUL_LIGHTGRAY, CUCUL_WHITE, cur++); + SETPAIR(CACA_BLACK, CACA_DARKGRAY, cur++); + SETPAIR(CACA_DARKGRAY, CACA_LIGHTGRAY, cur++); + SETPAIR(CACA_LIGHTGRAY, CACA_DARKGRAY, cur++); + SETPAIR(CACA_WHITE, CACA_LIGHTGRAY, cur++); + SETPAIR(CACA_LIGHTGRAY, CACA_WHITE, cur++); /* white/light, light/dark, lightgray/light, darkgray/dark, dark/black * combinations often used for saturation/value dithering (the two @@ -182,15 +182,15 @@ static void base_colors(void) * not considered here) */ for(i = 1; i < 7; i++) { - SETPAIR(CUCUL_WHITE, i + 8, cur++); - SETPAIR(i + 8, CUCUL_WHITE, cur++); + SETPAIR(CACA_WHITE, i + 8, cur++); + SETPAIR(i + 8, CACA_WHITE, cur++); SETPAIR(i, i + 8, cur++); SETPAIR(i + 8, i, cur++); - SETPAIR(CUCUL_LIGHTGRAY, i + 8, cur++); - SETPAIR(i + 8, CUCUL_LIGHTGRAY, cur++); - SETPAIR(CUCUL_DARKGRAY, i, cur++); - SETPAIR(i, CUCUL_DARKGRAY, cur++); - SETPAIR(CUCUL_BLACK, i, cur++); + SETPAIR(CACA_LIGHTGRAY, i + 8, cur++); + SETPAIR(i + 8, CACA_LIGHTGRAY, cur++); + SETPAIR(CACA_DARKGRAY, i, cur++); + SETPAIR(i, CACA_DARKGRAY, cur++); + SETPAIR(CACA_BLACK, i, cur++); } /* next colour combinations for hue dithering (magenta/blue, blue/green @@ -215,12 +215,12 @@ static void base_colors(void) /* black on light gray, black on white, white on dark gray, dark gray * on white, white on blue, light gray on blue (chosen arbitrarily) */ - SETPAIR(CUCUL_BLACK, CUCUL_LIGHTGRAY, cur++); - SETPAIR(CUCUL_BLACK, CUCUL_WHITE, cur++); - SETPAIR(CUCUL_WHITE, CUCUL_DARKGRAY, cur++); - SETPAIR(CUCUL_DARKGRAY, CUCUL_WHITE, cur++); - SETPAIR(CUCUL_WHITE, CUCUL_BLUE, cur++); - SETPAIR(CUCUL_LIGHTGRAY, CUCUL_BLUE, cur++); + SETPAIR(CACA_BLACK, CACA_LIGHTGRAY, cur++); + SETPAIR(CACA_BLACK, CACA_WHITE, cur++); + SETPAIR(CACA_WHITE, CACA_DARKGRAY, cur++); + SETPAIR(CACA_DARKGRAY, CACA_WHITE, cur++); + SETPAIR(CACA_WHITE, CACA_BLUE, cur++); + SETPAIR(CACA_LIGHTGRAY, CACA_BLUE, cur++); } static void emulated_colors(void) @@ -236,23 +236,23 @@ static void emulated_colors(void) * dark colour on white: emulate with light colour on white */ for(i = 1; i < 7; i++) { - if(i != CUCUL_BLUE) + if(i != CACA_BLUE) { - SETPAIR(CUCUL_LIGHTGRAY, i, 128 + + SETPAIR(CACA_LIGHTGRAY, i, 128 + slang_assoc[i + 8 + 16 * i]); - SETPAIR(CUCUL_WHITE, i, 128 + - slang_assoc[CUCUL_LIGHTGRAY + 16 * (i + 8)]); + SETPAIR(CACA_WHITE, i, 128 + + slang_assoc[CACA_LIGHTGRAY + 16 * (i + 8)]); } - SETPAIR(CUCUL_BLACK, i + 8, - 128 + slang_assoc[CUCUL_DARKGRAY + 16 * i]); - SETPAIR(CUCUL_DARKGRAY, i + 8, + SETPAIR(CACA_BLACK, i + 8, + 128 + slang_assoc[CACA_DARKGRAY + 16 * i]); + SETPAIR(CACA_DARKGRAY, i + 8, 128 + slang_assoc[i + 16 * (i + 8)]); - SETPAIR(i + 8, CUCUL_DARKGRAY, - 128 + slang_assoc[i + 16 * CUCUL_DARKGRAY]); - SETPAIR(i, CUCUL_LIGHTGRAY, - 128 + slang_assoc[i + 8 + 16 * CUCUL_LIGHTGRAY]); - SETPAIR(i, CUCUL_WHITE, - 128 + slang_assoc[i + 8 + 16 * CUCUL_WHITE]); + SETPAIR(i + 8, CACA_DARKGRAY, + 128 + slang_assoc[i + 16 * CACA_DARKGRAY]); + SETPAIR(i, CACA_LIGHTGRAY, + 128 + slang_assoc[i + 8 + 16 * CACA_LIGHTGRAY]); + SETPAIR(i, CACA_WHITE, + 128 + slang_assoc[i + 8 + 16 * CACA_WHITE]); } /* 120 degree hue pairs can be emulated as well; for instance blue on @@ -286,13 +286,13 @@ static void emulated_colors(void) for(i = 0; i < 6; i++) { SETPAIR(hue_list[i], hue_list[(i + 3) % 6], - 128 + slang_assoc[hue_list[i] + 16 * CUCUL_BLACK]); + 128 + slang_assoc[hue_list[i] + 16 * CACA_BLACK]); SETPAIR(hue_list[i] + 8, hue_list[(i + 3) % 6], - 128 + slang_assoc[hue_list[i] + 8 + 16 * CUCUL_BLACK]); + 128 + slang_assoc[hue_list[i] + 8 + 16 * CACA_BLACK]); SETPAIR(hue_list[(i + 3) % 6], hue_list[i] + 8, - 128 + slang_assoc[CUCUL_BLACK + 16 * hue_list[i]]); + 128 + slang_assoc[CACA_BLACK + 16 * hue_list[i]]); SETPAIR(hue_list[(i + 3) % 6] + 8, hue_list[i] + 8, - 128 + slang_assoc[CUCUL_WHITE + 16 * (hue_list[i] + 8)]); + 128 + slang_assoc[CACA_WHITE + 16 * (hue_list[i] + 8)]); } } diff --git a/tools/sortchars.c b/tools/sortchars.c index 9984ebd..aab3470 100644 --- a/tools/sortchars.c +++ b/tools/sortchars.c @@ -20,7 +20,7 @@ # include #endif -#include "cucul.h" +#include "caca.h" #define GLYPHS 0x7f #define FONT 0 /* 0 or 1 */ @@ -48,33 +48,33 @@ int main(int argc, char *argv[]) { int count[DX][DY]; char utf8[7]; - cucul_canvas_t *cv; - cucul_font_t *f; + caca_canvas_t *cv; + caca_font_t *f; char const * const * fonts; uint8_t *img; unsigned int w, h, x, y; int ret, i, max; - /* Load a libcucul internal font */ - fonts = cucul_get_font_list(); + /* Load a libcaca internal font */ + fonts = caca_get_font_list(); if(fonts[FONT] == NULL) { - fprintf(stderr, "error: libcucul was compiled without any fonts\n"); + fprintf(stderr, "error: libcaca was compiled without any fonts\n"); return -1; } - f = cucul_load_font(fonts[FONT], 0); + f = caca_load_font(fonts[FONT], 0); if(f == NULL) { fprintf(stderr, "error: could not load font \"%s\"\n", fonts[0]); return -1; } - cv = cucul_create_canvas(1, 1); - cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLACK); + cv = caca_create_canvas(1, 1); + caca_set_color_ansi(cv, CACA_WHITE, CACA_BLACK); /* Create our bitmap buffer (32-bit ARGB) */ - w = cucul_get_font_width(f); - h = cucul_get_font_height(f); + w = caca_get_font_width(f); + h = caca_get_font_height(f); img = malloc(4 * w * h); /* Zero our structures */ @@ -94,10 +94,10 @@ int main(int argc, char *argv[]) /* Draw all glyphs and count their pixels */ for(i = 0x20; i < GLYPHS; i++) { - cucul_put_char(cv, 0, 0, i); + caca_put_char(cv, 0, 0, i); /* Render the canvas onto our image buffer */ - cucul_render_canvas(cv, f, img, w, h, 4 * w); + caca_render_canvas(cv, f, img, w, h, 4 * w); for(y = 0; y < h * DY; y++) for(x = 0; x < w * DX; x++) @@ -165,7 +165,7 @@ int main(int argc, char *argv[]) printf("static char const cells_to_ascii[%i] =\n{\n ", FULLRANGE); for(i = 0; i < FULLRANGE; i++) { - ret = cucul_utf32_to_utf8(utf8, bestchar[i]); + ret = caca_utf32_to_utf8(utf8, bestchar[i]); utf8[ret] = '\0'; printf("%i, ", bestchar[i]); if((i % 16) == 15 && i != FULLRANGE - 1) @@ -175,7 +175,7 @@ int main(int argc, char *argv[]) printf("static uint16_t const ascii_to_cells[%i] =\n{\n ", GLYPHS); for(i = 0; i < GLYPHS; i++) { - ret = cucul_utf32_to_utf8(utf8, bestchar[i]); + ret = caca_utf32_to_utf8(utf8, bestchar[i]); utf8[ret] = '\0'; printf("0x%03x, ", allbits[i]); if((i % 8) == 7 && i != GLYPHS - 1) @@ -183,7 +183,7 @@ int main(int argc, char *argv[]) } printf("\n};\n"); - cucul_free_canvas(cv); + caca_free_canvas(cv); testcircle(); @@ -252,7 +252,7 @@ static void testcircle(void) bits |= dst[(y * DY + j) * WIDTH * DX + x * DX + i]; } - ret = cucul_utf32_to_utf8(utf8, bestchar[bits]); + ret = caca_utf32_to_utf8(utf8, bestchar[bits]); utf8[ret] = '\0'; printf("%s", utf8); }