diff --git a/Makefile.am b/Makefile.am index ba35452..8ab1c05 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,6 @@ # $Id$ -SUBDIRS = kernel cucul caca src test tools doc +SUBDIRS = kernel cucul caca src test tools cpp doc DIST_SUBDIRS = $(SUBDIRS) autotools debian msvc EXTRA_DIST = NOTES COPYING.GPL COPYING.LGPL bootstrap build-dos build-kernel build-win32 caca-config.in libcaca.spec diff --git a/configure.ac b/configure.ac index c8aa7dc..ff3df72 100644 --- a/configure.ac +++ b/configure.ac @@ -11,10 +11,13 @@ AM_CONFIG_HEADER(config.h) AM_PROG_CC_C_O AC_PROG_CPP +AC_PROG_CXX AM_PROG_AS AC_LIBTOOL_WIN32_DLL AM_PROG_LIBTOOL +AC_LIBTOOL_CXX + AC_C_CONST AC_C_INLINE @@ -23,9 +26,17 @@ AC_TYPE_SIGNAL dnl AC_PROG_EGREP only exists in autoconf 2.54+, so we use AC_EGREP_CPP right dnl now otherwise it might be set in an obscure if statement. Same thing for dnl PKG_PROG_PKG_CONFIG which needs to be called first. -AC_EGREP_CPP(foo, foo) +AC_EGREP_CPP(yes, foo) PKG_PROG_PKG_CONFIG() +dnl Check the C++ compiler and preprocessor. +AC_PROG_CXX +AC_PROG_CXXCPP + +dnl Set the test language as C++ +AC_LANG([C++]) + + dnl output driver features AC_ARG_ENABLE(slang, [ --enable-slang slang graphics support (autodetected)]) @@ -44,6 +55,9 @@ AC_ARG_ENABLE(network, AC_ARG_ENABLE(vga, [ --enable-vga VGA support (default disabled)]) +AC_ARG_ENABLE(cpp, + [ --enable-cpp C++ bindings (autodetected)]) + dnl example programs features AC_ARG_ENABLE(imlib2, [ --enable-imlib2 Imlib2 graphics support (default enabled)]) @@ -76,6 +90,13 @@ AC_TRY_COMPILE([],[asm("fldln2; fldln2; fxch; fyl2x");], AC_CHECK_LIB(m, sin, MATH_LIBS="${MATH_LIBS} -lm") + +if test "${enable_cpp}" != "no"; then + ac_cv_my_have_cpp="yes" + AC_DEFINE(USE_CPP, 1, + Define to 1 to enable C++ bindigs) +fi + CACA_DRIVERS="" if test "${enable_conio}" != "no"; then @@ -221,9 +242,14 @@ else AC_MSG_RESULT([${CACA_DRIVERS}]) fi + + + + AC_SUBST(MATH_LIBS) AC_SUBST(CACA_LIBS) AC_SUBST(CUCUL_LIBS) +AC_SUBST(CUCUL++_LIBS) # Optimizations CFLAGS="${CFLAGS} -g -O2 -fno-strength-reduce -fomit-frame-pointer" @@ -301,6 +327,7 @@ AC_CONFIG_FILES([ src/Makefile test/Makefile tools/Makefile + cpp/Makefile doc/Makefile autotools/Makefile debian/Makefile diff --git a/cpp/Makefile.am b/cpp/Makefile.am new file mode 100644 index 0000000..0a06383 --- /dev/null +++ b/cpp/Makefile.am @@ -0,0 +1,32 @@ +# $Id: Makefile.am 552 2006-04-13 16:10:16Z jylam $ + +SUFFIXES = .cpp + +AM_CXXFLAGS = + +include_HEADERS = cucul++.h caca++.h + +noinst_LIBRARIES = libcucul++.a libcaca++.a + +libcucul___a_SOURCES = \ + cucul++.cpp \ + cucul++.h \ + $(NULL) +libcucul___la_LDFLAGS = -no-undefined +libcucul___la_LIBADD = + + +libcaca___a_SOURCES = \ + caca++.cpp \ + caca++.h \ + $(NULL) +libcaca___la_LDFLAGS = -no-undefined +libcaca___la_LIBADD = + + + +noinst_PROGRAMS = cpptest + + +cpptest_SOURCES = cpptest.cpp +cpptest_LDADD = ../caca/libcaca.la ../cucul/libcucul.la libcucul++.a libcaca++.a @CACA_LIBS@ \ No newline at end of file diff --git a/cpp/Makefile.in b/cpp/Makefile.in new file mode 100644 index 0000000..63d0040 --- /dev/null +++ b/cpp/Makefile.in @@ -0,0 +1,541 @@ +# Makefile.in generated by automake 1.9.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# $Id: Makefile.am 552 2006-04-13 16:10:16Z jylam $ + + + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +noinst_PROGRAMS = cpptest$(EXEEXT) +subdir = cpp +DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) +ARFLAGS = cru +libcaca___a_AR = $(AR) $(ARFLAGS) +libcaca___a_LIBADD = +am_libcaca___a_OBJECTS = caca++.$(OBJEXT) +libcaca___a_OBJECTS = $(am_libcaca___a_OBJECTS) +libcucul___a_AR = $(AR) $(ARFLAGS) +libcucul___a_LIBADD = +am_libcucul___a_OBJECTS = cucul++.$(OBJEXT) +libcucul___a_OBJECTS = $(am_libcucul___a_OBJECTS) +PROGRAMS = $(noinst_PROGRAMS) +am_cpptest_OBJECTS = cpptest.$(OBJEXT) +cpptest_OBJECTS = $(am_cpptest_OBJECTS) +cpptest_DEPENDENCIES = ../caca/libcaca.la ../cucul/libcucul.la \ + libcucul++.a libcaca++.a +DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/autotools/depcomp +am__depfiles_maybe = depfiles +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(libcaca___a_SOURCES) $(libcucul___a_SOURCES) \ + $(cpptest_SOURCES) +DIST_SOURCES = $(libcaca___a_SOURCES) $(libcucul___a_SOURCES) \ + $(cpptest_SOURCES) +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(includedir)" +includeHEADERS_INSTALL = $(INSTALL_HEADER) +HEADERS = $(include_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BUILD_DOCUMENTATION_FALSE = @BUILD_DOCUMENTATION_FALSE@ +BUILD_DOCUMENTATION_TRUE = @BUILD_DOCUMENTATION_TRUE@ +CACA_LIBS = @CACA_LIBS@ +CC = @CC@ +CCAS = @CCAS@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CUCUL_LIBS = @CUCUL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DOXYGEN = @DOXYGEN@ +DVIPS = @DVIPS@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +IMLIB2_CONFIG = @IMLIB2_CONFIG@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LATEX = @LATEX@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MATH_LIBS = @MATH_LIBS@ +NEED_PIC_FALSE = @NEED_PIC_FALSE@ +NEED_PIC_TRUE = @NEED_PIC_TRUE@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_IMLIB2_FALSE = @USE_IMLIB2_FALSE@ +USE_IMLIB2_TRUE = @USE_IMLIB2_TRUE@ +USE_KERNEL_FALSE = @USE_KERNEL_FALSE@ +USE_KERNEL_TRUE = @USE_KERNEL_TRUE@ +USE_LATEX_FALSE = @USE_LATEX_FALSE@ +USE_LATEX_TRUE = @USE_LATEX_TRUE@ +USE_PANGO_FALSE = @USE_PANGO_FALSE@ +USE_PANGO_TRUE = @USE_PANGO_TRUE@ +VERSION = @VERSION@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_AS = @ac_ct_AS@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DLLTOOL = @ac_ct_DLLTOOL@ +ac_ct_F77 = @ac_ct_F77@ +ac_ct_OBJDUMP = @ac_ct_OBJDUMP@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pangoft2_CFLAGS = @pangoft2_CFLAGS@ +pangoft2_LIBS = @pangoft2_LIBS@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +SUFFIXES = .cpp +AM_CXXFLAGS = +include_HEADERS = cucul++.h caca++.h +noinst_LIBRARIES = libcucul++.a libcaca++.a +libcucul___a_SOURCES = \ + cucul++.cpp \ + cucul++.h \ + $(NULL) + +libcucul___la_LDFLAGS = -no-undefined +libcucul___la_LIBADD = +libcaca___a_SOURCES = \ + caca++.cpp \ + caca++.h \ + $(NULL) + +libcaca___la_LDFLAGS = -no-undefined +libcaca___la_LIBADD = +cpptest_SOURCES = cpptest.cpp +cpptest_LDADD = ../caca/libcaca.la ../cucul/libcucul.la libcucul++.a libcaca++.a @CACA_LIBS@ +all: all-am + +.SUFFIXES: +.SUFFIXES: .cpp .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign cpp/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign cpp/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +libcaca++.a: $(libcaca___a_OBJECTS) $(libcaca___a_DEPENDENCIES) + -rm -f libcaca++.a + $(libcaca___a_AR) libcaca++.a $(libcaca___a_OBJECTS) $(libcaca___a_LIBADD) + $(RANLIB) libcaca++.a +libcucul++.a: $(libcucul___a_OBJECTS) $(libcucul___a_DEPENDENCIES) + -rm -f libcucul++.a + $(libcucul___a_AR) libcucul++.a $(libcucul___a_OBJECTS) $(libcucul___a_LIBADD) + $(RANLIB) libcucul++.a + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +cpptest$(EXEEXT): $(cpptest_OBJECTS) $(cpptest_DEPENDENCIES) + @rm -f cpptest$(EXEEXT) + $(CXXLINK) $(cpptest_LDFLAGS) $(cpptest_OBJECTS) $(cpptest_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/caca++.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpptest.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cucul++.Po@am__quote@ + +.cpp.o: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.lo: +@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: +install-includeHEADERS: $(include_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" + @list='$(include_HEADERS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ + $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ + done + +uninstall-includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(include_HEADERS)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ + rm -f "$(DESTDIR)$(includedir)/$$f"; \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(includedir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ + clean-noinstPROGRAMS mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-includeHEADERS + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-includeHEADERS uninstall-info-am + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLIBRARIES clean-noinstPROGRAMS ctags \ + distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-exec install-exec-am \ + install-includeHEADERS install-info install-info-am \ + install-man install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-includeHEADERS uninstall-info-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/cpp/caca++.cpp b/cpp/caca++.cpp new file mode 100644 index 0000000..e0e8ace --- /dev/null +++ b/cpp/caca++.cpp @@ -0,0 +1,69 @@ +#include "caca++.h" + + +Caca::Caca(void) +{ + +} +Caca::Caca(Cucul *qq) +{ + kk = caca_attach(qq->get_cucul_t()); + if(!kk) throw -1; +} + +Caca::~Caca() +{ + caca_detach(kk); +} + +void Caca::attach(Cucul *qq) +{ + kk = caca_attach(qq->get_cucul_t()); + if(!kk) throw -1; +} + + +void Caca::detach () +{ + caca_detach(kk); +} +void Caca::set_delay (unsigned int d) +{ + caca_set_delay(kk, d); +} +void Caca::display () +{ + caca_display(kk); +} +unsigned int Caca::get_rendertime () +{ + return caca_get_rendertime(kk); +} +unsigned int Caca::get_window_width () +{ + return caca_get_window_width(kk); +} +unsigned int Caca::get_window_height () +{ + return caca_get_window_height(kk); +} +int Caca::set_window_title (char const *s) +{ + return caca_set_window_title(kk, s); +} +int Caca::get_event (unsigned int g, Caca::Event *n, int aa) +{ + return caca_get_event(kk, g, n->e, aa); +} +unsigned int Caca::get_mouse_x () +{ + return caca_get_mouse_x(kk); +} +unsigned int Caca::get_mouse_y () +{ + return caca_get_mouse_x(kk); +} +void Caca::set_mouse (int v) +{ + caca_set_mouse(kk, v); +} diff --git a/cpp/caca++.h b/cpp/caca++.h new file mode 100644 index 0000000..9f58fbc --- /dev/null +++ b/cpp/caca++.h @@ -0,0 +1,46 @@ +#ifndef _CACA_PP_H +#define _CACA_PP_H + + +#include "cucul.h" +#include "caca.h" + +#include "cucul++.h" + + +class Caca { + public: + Caca(); + Caca(Cucul *qq); + ~Caca(); + + class Event { + friend class Caca; + protected: + caca_event *e; + }; + + + void attach (Cucul *qq); + void detach (); + void set_delay (unsigned int); + void display (); + unsigned int get_rendertime (); + unsigned int get_window_width (); + unsigned int get_window_height (); + int set_window_title (char const *); + int get_event (unsigned int, Caca::Event*, int); + unsigned int get_mouse_x (); + unsigned int get_mouse_y (); + void set_mouse (int); + + + + private: + caca_t *kk; + + +}; + + +#endif /* _CACA_PP_H */ diff --git a/cpp/caca++.pc b/cpp/caca++.pc new file mode 100644 index 0000000..c19ebec --- /dev/null +++ b/cpp/caca++.pc @@ -0,0 +1,12 @@ +prefix=/usr/local +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: caca++ +Description: Colour ASCII-Art library C++ bindings +Version: 0.10 +Requires: cucul++ = 0.10 +Conflicts: +Libs: -L${libdir} -lcaca -lcucul -lcucul++ +Cflags: -I${includedir} diff --git a/cpp/caca++.pc.in b/cpp/caca++.pc.in new file mode 100644 index 0000000..d63e0a4 --- /dev/null +++ b/cpp/caca++.pc.in @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: caca++ +Description: Colour ASCII-Art library C++ bindings +Version: @VERSION@ +Requires: cucul++ = @VERSION@ +Conflicts: +Libs: -L${libdir} -lcaca -lcucul -lcucul++ +Cflags: -I${includedir} diff --git a/cpp/cpptest.cpp b/cpp/cpptest.cpp new file mode 100644 index 0000000..966b5e7 --- /dev/null +++ b/cpp/cpptest.cpp @@ -0,0 +1,59 @@ +#include + +#include +#include + +using namespace std; + + +static char const *pig[]= { + " _ ", + " _._ _..._ .-', _.._(`)) ", + " '-. ` ' /-._.-' ',/ ", + " ) \ '. ", + " / _ _ | \\ ", + " | a a / | ", + " \ .-. ; " , + " '-('' ).-' ,' ; ", + " '-; | .' ", + " \\ \\ / ", + " | 7 .__ _.-\\ \\ ", + " | | | ``/ /` / ", + " jgs /,_| | /,_/ / ", + " /,_/ '`-' ", + NULL +}; + +int main(int argc, char *argv[]) +{ + Cucul *qq; + Caca *kk; + Caca::Event ev; + + try { + qq = new Cucul(); + } + catch (int e) { + cerr << "Error while initializing cucul (" << e << ")" << endl; + return -1; + } + + kk = new Caca(qq); + + + + qq->set_color(CUCUL_COLOR_LIGHTMAGENTA, CUCUL_COLOR_BLACK); + + for(int i = 0; pig[i]; i++) + qq->putstr(0, i, (char*)pig[i]); + + + kk->display(); + kk->get_event(CACA_EVENT_KEY_PRESS, &ev, -1); + + + delete kk; + delete qq; + + return 0; +} diff --git a/cpp/cucul++.cpp b/cpp/cucul++.cpp new file mode 100644 index 0000000..3232608 --- /dev/null +++ b/cpp/cucul++.cpp @@ -0,0 +1,333 @@ +#include "cucul++.h" + +Cucul::Cucul() +{ + qq = cucul_create(0,0); + if(!qq) throw -1; +} +Cucul::Cucul(int width, int height) +{ + qq = cucul_create(width, height); + if(!qq) throw -1; +} +Cucul::~Cucul() +{ + if(qq) { + cucul_free(qq); + } +} + +cucul_t *Cucul::get_cucul_t() +{ + return qq; +} + + + +void Cucul::set_size(unsigned int width, unsigned int height) +{ + cucul_set_size (qq, width, height); +} +unsigned int Cucul::get_width(void) +{ + return cucul_get_width (qq); +} +unsigned int Cucul::get_height(void) +{ + return cucul_get_height (qq); +} +void Cucul::set_color(unsigned int f, unsigned int b) +{ + cucul_set_color (qq, f, b); +} +char const * Cucul::get_color_name (unsigned int color) +{ + return cucul_get_color_name (color); +} +void Cucul::putchar (int x, int y, char c) +{ + cucul_putchar (qq, x, y, c); +} +void Cucul::putstr (int x, int y, char *str) +{ + cucul_putstr(qq, x, y, str); +} +//void Cucul::printf ( int, int, char const *,...) + +void Cucul::clear () +{ + cucul_clear(qq); +} + +void Cucul::blit ( int x, int y, Cucul* c1, Cucul* c2) +{ + cucul_blit(qq, x, y, c1->get_cucul_t(), c2->get_cucul_t()); +} + +void Cucul::invert () +{ + cucul_invert(qq); +} + +void Cucul::flip () +{ + cucul_flip(qq); +} + +void Cucul::flop () +{ + cucul_flop(qq); +} + +void Cucul::rotate () +{ + cucul_rotate(qq); +} + +void Cucul::draw_line (int x1 , int y1, int x2, int y2, char const *c) +{ + cucul_draw_line(qq, x1,y1,x2,y2, c); +} + +void Cucul::draw_polyline (int const x[], int const y[], int f, char const *c) +{ + cucul_draw_polyline(qq, x, y, f, c); +} + +void Cucul::draw_thin_line (int x1 , int y1, int x2, int y2) +{ + cucul_draw_thin_line(qq, x1, y1, x2, y2); +} + +void Cucul::draw_thin_polyline ( int const x[], int const y[], int f) +{ + cucul_draw_thin_polyline(qq, x, y, f); +} + +void Cucul::draw_circle ( int x, int y, int d, char const *c) +{ + cucul_draw_circle(qq, x, y, d, c); +} + +void Cucul::draw_ellipse ( int x, int y, int d1, int d2, char const *c) +{ + cucul_draw_ellipse(qq, x, y, d1, d2, c); +} + +void Cucul::draw_thin_ellipse ( int x, int y, int d1, int d2) +{ + cucul_draw_thin_ellipse(qq, x, y, d1, d2); +} + +void Cucul::fill_ellipse ( int x, int y, int d1, int d2, char const *c) +{ + cucul_fill_ellipse(qq, x, y, d1, d2, c); +} + +void Cucul::draw_box ( int x, int y, int w, int h, char const *c) +{ + cucul_draw_box(qq, x, y, w, h, c); +} + +void Cucul::draw_thin_box ( int x, int y, int w, int h) +{ + cucul_draw_thin_box(qq, x, y, w, h); +} + +void Cucul::fill_box ( int x, int y, int w, int h, char const *c) +{ + cucul_fill_box(qq, x, y, w, h, c); +} + +void Cucul::draw_triangle ( int x1, int y1, int x2, int y2, int x3, int y3, char const *c) +{ + cucul_draw_triangle(qq, x1, y1, x2, y2, x3, y3, c); +} + +void Cucul::draw_thin_triangle ( int x1, int y1, int x2, int y2, int x3, int y3) +{ + cucul_draw_thin_triangle(qq, x1, y1, x2, y2, x3, y3); +} + +void Cucul::fill_triangle ( int x1, int y1, int x2, int y2, int x3, int y3, const char *c) +{ + cucul_fill_triangle(qq, x1, y1, x2, y2, x3, y3, c); +} + +int Cucul::rand (int min, int max) +{ + return cucul_rand(min, max); +} + +unsigned int Cucul::sqrt (unsigned int v) +{ + return cucul_sqrt(v); +} + +Cucul::Sprite * Cucul::load_sprite (char const *f) +{ + Cucul::Sprite *s = new Cucul::Sprite(); + s->sprite = cucul_load_sprite(f); + return s; +} + +int Cucul::get_sprite_frames (Cucul::Sprite const *s) +{ + return cucul_get_sprite_frames(s->sprite); +} + +int Cucul::get_sprite_width (Cucul::Sprite const *s, int v) +{ + return cucul_get_sprite_width(s->sprite, v); +} + +int Cucul::get_sprite_height (Cucul::Sprite const *s, int v) +{ + return cucul_get_sprite_height(s->sprite, v); +} + +int Cucul::get_sprite_dx (Cucul::Sprite const *s, int v) +{ + return cucul_get_sprite_dx(s->sprite, v); +} + +int Cucul::get_sprite_dy (Cucul::Sprite const *s, int v) +{ + return cucul_get_sprite_dy(s->sprite, v); +} + +void Cucul::draw_sprite ( int x, int y, Cucul::Sprite const *s, int v) +{ + cucul_draw_sprite(qq, x, y, s->sprite, v); +} + +void Cucul::free_sprite (Cucul::Sprite *s) +{ + cucul_free_sprite(s->sprite); +} + +Cucul::Dither * Cucul::create_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) +{ + Cucul::Dither *d = new Dither(); + d->dither = cucul_create_dither(v1,v2,v3,v4,v5,v6,v7,v8); + return d; +} + +void Cucul::set_dither_palette (Cucul::Dither *d, unsigned int r[], unsigned int g[], unsigned int b[], unsigned int a[]) +{ + cucul_set_dither_palette(d->dither, r, g, b, a); +} + +void Cucul::set_dither_brightness (Cucul::Dither *d, float f) +{ + cucul_set_dither_brightness(d->dither, f); +} + +void Cucul::set_dither_gamma (Cucul::Dither *d, float f) +{ + cucul_set_dither_gamma(d->dither, f); +} + +void Cucul::set_dither_contrast ( Cucul::Dither *d, float f) +{ + cucul_set_dither_contrast(d->dither, f); +} + +void Cucul::set_dither_invert ( Cucul::Dither *d, int i) +{ + cucul_set_dither_invert(d->dither, i); +} + +void Cucul::set_dither_antialias ( Cucul::Dither *d, char const *c) +{ + cucul_set_dither_antialias(d->dither, c); +} + +char const *const * Cucul::get_dither_antialias_list ( Cucul::Dither const *d) +{ + return cucul_get_dither_antialias_list(d->dither); +} + +void Cucul::set_dither_color ( Cucul::Dither *d, char const *c) +{ + cucul_set_dither_color(d->dither, c); +} + +char const *const * Cucul::get_dither_color_list ( Cucul::Dither const *d) +{ + return cucul_get_dither_color_list(d->dither); +} + +void Cucul::set_dither_charset ( Cucul::Dither *d, char const *c) +{ + cucul_set_dither_charset(d->dither, c); +} + +char const *const * Cucul::get_dither_charset_list ( Cucul::Dither const *d) +{ + return cucul_get_dither_charset_list(d->dither); +} + +void Cucul::set_dither_mode ( Cucul::Dither *d, char const *c) +{ + cucul_set_dither_mode(d->dither, c); +} + +char const *const * Cucul::get_dither_mode_list ( Cucul::Dither const *d) +{ + return cucul_get_dither_mode_list(d->dither); +} + +void Cucul::dither_bitmap ( int x, int y, int w, int h, Cucul::Dither const *d, void *v) +{ + cucul_dither_bitmap(qq, x, y, w, h, d->dither, v); +} + +void Cucul::free_dither ( Cucul::Dither *d) +{ + cucul_free_dither(d->dither); +} + +Cucul::Font * Cucul::load_font (void const *s, unsigned int v) +{ + Cucul::Font *f = new Cucul::Font(); + f->font = cucul_load_font(s, v); + return f; +} + +char const *const * Cucul::get_font_list (void) +{ + return cucul_get_font_list(); +} + +unsigned int Cucul::get_font_width ( Cucul::Font *f) +{ + return cucul_get_font_width(f->font); +} + +unsigned int Cucul::get_font_height ( Cucul::Font *f) +{ + return cucul_get_font_height(f->font); +} + +void Cucul::render_canvas (Cucul::Font *f, unsigned char *c, unsigned int x, unsigned int y, unsigned int w) +{ + cucul_render_canvas(qq, f->font, c, x,y,w); +} + +void Cucul::free_font ( Cucul::Font *f) +{ + cucul_free_font(f->font); +} + +Cucul::Buffer * Cucul::create_export (char const *c) +{ + Cucul::Buffer *b = new Cucul::Buffer(); + b->buffer = cucul_create_export(qq, c); + return b; +} + +char const *const * Cucul::get_export_list (void) +{ + return cucul_get_export_list(); +} diff --git a/cpp/cucul++.h b/cpp/cucul++.h new file mode 100644 index 0000000..921efff --- /dev/null +++ b/cpp/cucul++.h @@ -0,0 +1,112 @@ +#ifndef _CUCUL_PP_H +#define _CUCUL_PP_H + + +#include "cucul.h" + + +class Cucul { + friend class Caca; + public: + Cucul(); + Cucul(int width, int height); + ~Cucul(); + + /* Ugly, I know */ + class Font { + friend class Cucul; + protected: + cucul_font *font; + }; + class Sprite { + friend class Cucul; + protected: + cucul_sprite *sprite; + }; + class Dither { + friend class Cucul; + protected: + cucul_dither *dither; + }; + class Buffer { + friend class Cucul; + protected: + cucul_buffer *buffer; + }; + + + + void set_size(unsigned int w, unsigned int h); + unsigned int get_width(void); + unsigned int get_height(void); + void set_color(unsigned int f, unsigned int b); + char const * get_color_name (unsigned int color); + void putchar (int x, int y, char c); + void putstr (int x, int y, char *str); + void clear (); + void blit ( int, int, Cucul* c1, Cucul* c2); + void invert (); + void flip (); + void flop (); + void rotate (); + void draw_line ( int, int, int, int, char const *); + void draw_polyline ( int const x[], int const y[], int, char const *); + void draw_thin_line ( int, int, int, int); + void draw_thin_polyline ( int const x[], int const y[], int); + void draw_circle ( int, int, int, char const *); + void draw_ellipse ( int, int, int, int, char const *); + void draw_thin_ellipse ( int, int, int, int); + void fill_ellipse ( int, int, int, int, char const *); + void draw_box ( int, int, int, int, char const *); + void draw_thin_box ( int, int, int, int); + void fill_box ( int, int, int, int, char const *); + void draw_triangle ( int, int, int, int, int, int, char const *); + void draw_thin_triangle ( int, int, int, int, int, int); + void fill_triangle ( int, int, int, int, int, int, char const *); + int rand (int, int); + unsigned int sqrt (unsigned int); + Sprite * load_sprite (char const *); + int get_sprite_frames (Cucul::Sprite const *); + int get_sprite_width (Cucul::Sprite const *, int); + int get_sprite_height (Cucul::Sprite const *, int); + int get_sprite_dx (Cucul::Sprite const *, int); + int get_sprite_dy (Cucul::Sprite const *, int); + void draw_sprite ( int, int, Cucul::Sprite const *, int); + void free_sprite (Cucul::Sprite*); + Dither * create_dither (unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); + void set_dither_palette (Cucul::Dither *, unsigned int r[], unsigned int g[], unsigned int b[], unsigned int a[]); + void set_dither_brightness (Cucul::Dither *, float); + void set_dither_gamma (Cucul::Dither *, float); + void set_dither_contrast (Cucul::Dither *, float); + void set_dither_invert (Cucul::Dither *, int); + void set_dither_antialias (Cucul::Dither *, char const *); + char const *const * get_dither_antialias_list (Cucul::Dither const *); + void set_dither_color (Cucul::Dither *, char const *); + char const *const * get_dither_color_list (Cucul::Dither const *); + void set_dither_charset (Cucul::Dither *, char const *); + char const *const * get_dither_charset_list (Cucul::Dither const *); + void set_dither_mode (Cucul::Dither *, char const *); + char const *const * get_dither_mode_list (Cucul::Dither const *); + void dither_bitmap ( int, int, int, int, Cucul::Dither const *, void *); + void free_dither (Cucul::Dither *); + Font * load_font (void const *, unsigned int); + char const *const * get_font_list (void); + unsigned int get_font_width (Font *); + unsigned int get_font_height (Font *); + void render_canvas ( Font *, unsigned char *, unsigned int, unsigned int, unsigned int); + void free_font (Font *); + Buffer * create_export ( char const *); + char const *const * get_export_list (void); + + + protected: + cucul_t *get_cucul_t(); + + private: + cucul_t *qq; + + +}; + + +#endif /* _CUCUL_PP_H */ diff --git a/cpp/cucul++.pc b/cpp/cucul++.pc new file mode 100644 index 0000000..7fc156d --- /dev/null +++ b/cpp/cucul++.pc @@ -0,0 +1,12 @@ +prefix=/usr/local +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: cucul++ +Description: Canvas for ultrafast compositing of Unicode letters C++ binding +Version: 0.10 +Requires: +Conflicts: +Libs: -L${libdir} -lcucul -lcaca +Cflags: -I${includedir} diff --git a/cpp/cucul++.pc.in b/cpp/cucul++.pc.in new file mode 100644 index 0000000..5ea9ebe --- /dev/null +++ b/cpp/cucul++.pc.in @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: cucul++ +Description: Canvas for ultrafast compositing of Unicode letters C++ binding +Version: @VERSION@ +Requires: +Conflicts: +Libs: -L${libdir} -lcucul -lcaca +Cflags: -I${includedir}