From: Zygo Blaxell Date: Mon, 2 Mar 2009 05:42:56 +0000 (-0500) Subject: http://packetstormsecurity.org/UNIX/admin/xscreensaver-4.05.tar.gz X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=commitdiff_plain;h=723c9eeee862766a1534b2ce17b78adbfac1c3be packetstormsecurity.org/UNIX/admin/xscreensaver-4.05.tar.gz -rw-r--r-- 1 zblaxell zblaxell 2914308 Jun 12 2002 xscreensaver-4.05.tar.gz 90a29ee99c7b36baf01aa152f2ab2ac9392cb3f1 xscreensaver-4.05.tar.gz --- diff --git a/README b/README index 811c4a31..ae7f2be1 100644 --- a/README +++ b/README @@ -70,6 +70,10 @@ the XScreenSaver FAQ about that: http://www.jwz.org/xscreensaver/faq.html ============ +Changes since 4.04: * More `configure' tweaks to try and get things working + on systems that both Gtk 1.x and 2.x installed. + * New hack, `endgame'. + * Minor updates to `gltext'. Changes since 4.03: * Support for GTK 2.x / GNOME 2.x. * The `configure' script will now use `pkg-config' if you have it, in preference to `gtk-config', etc. @@ -86,7 +90,7 @@ Changes since 4.03: * Support for GTK 2.x / GNOME 2.x. will close a race condition that could sometimes cause your desktop background to be changed; and also makes it possible for those programs to operate on image - files when running in non-root mode. + files when running in windowed mode. * `webcollage' can now be used in conjunction with `driftnet' to display images snooped from your local ethernet instead of obtained from search engines. diff --git a/configure b/configure index 8bd58380..94dd9a65 100755 --- a/configure +++ b/configure @@ -12376,6 +12376,8 @@ parse_gtk_version_string() { jurassic_gtk=no +gtk2_halfassed=no + if test "$with_gtk" = yes; then have_gtk=no @@ -12489,6 +12491,10 @@ echo "${ECHO_T}no" >&6 #define HAVE_GTK2 1 _ACEOF + else + if test -n "$ac_gtk_version_string" ; then + gtk2_halfassed="$ac_gtk_version_string" + fi fi if test "$have_gtk" = no; then @@ -12503,7 +12509,7 @@ _ACEOF # Now check for Gnome... # - if test "$have_gtk" = yes; then + if test "$have_gtk" = yes -a "$with_gnome" = yes; then old_pkgs="$pkgs" ok=yes pkg_check_version capplet 1.0 @@ -12750,6 +12756,11 @@ echo "${ECHO_T}$ac_cv_gtk_config_libs" >&6 ac_gtk_config_libs=$ac_cv_gtk_config_libs # Check for Gnome Capplet support. + # Note that this is only needed with Gnome 1.x, not Gnome 2.x. + # In a Gnome 2.x world, libcapplet will not exist. + # (In fact, this likely won't even be checked, since in a Gnome 2.x + # world, we will probably be up in the "$pkg_config" branch instead + # of here in the "$gnome_config" branch.) # if test "$have_gnome" = yes -a "$have_gtk" = yes; then gnome_config_libs="gtk capplet gnomeui gdk_pixbuf" @@ -12818,6 +12829,7 @@ _ACEOF if test "$have_gtk" = yes -a "$have_gtk2" = no; then # check for this function that was not in libcapplet 1.2. + # (only needed in Gnome/Gtk 1.x, not Gnome/Gtk 2.x) ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" @@ -12908,13 +12920,16 @@ fi GNOME_DATADIR="" if test "$have_gnome" = yes -a "$have_gtk" = yes; then - if test -n "$gnome_config"; then - GNOME_DATADIR=`$gnome_config --datadir` + if test -n "$pkg_config"; then + if test "$have_gtk2" = yes; then + GNOME_DATADIR=`$pkg_config --variable=prefix gtk+-2.0` + else + GNOME_DATADIR=`$pkg_config --variable=prefix gtk+` + fi else - #### is this right? - GNOME_DATADIR=`$pkg_config --variable=prefix gtk+` - GNOME_DATADIR="$GNOME_DATADIR/share" + GNOME_DATADIR=`$gtk_config --prefix` fi + GNOME_DATADIR="$GNOME_DATADIR/share" fi # .desktop files go in different places in Gnome 1.x and Gnome 2.x... @@ -13094,11 +13109,21 @@ if test "$with_xml" = yes; then # pkgs="" ok="yes" - pkg_check_version xml2 1.0 - if test "$ok" = no; then + # If we have Gtk 2.x, then *only* XML 2.x will work. + # If we have Gtk 1.x, or don't have Gtk at all, then + # either XML 1.x or 2.x will work. + + # First check for XML 2.x. + # + pkg_check_version libxml-2.0 2.4.6 + + # If that didn't work (we don't have XML 2.x) and we *don't* have + # Gtk 2.x, then check to see if we have XML 1.x + # + if test "$ok" = no -a "$have_gtk2" = no; then ok=yes - pkg_check_version xml 1.0 + pkg_check_version libxml 1.0 fi have_xml="$ok" @@ -13129,7 +13154,7 @@ echo "${ECHO_T}$ac_cv_xml_config_libs" >&6 else # # the old way... - # run {gnome,gtk}-config based tests. + # run {xml2,xml}-config based tests. # for ac_prog in xml2-config xml-config @@ -13421,13 +13446,13 @@ fi # note: $X_LIBS includes $x_libraries LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" - echo "$as_me:$LINENO: checking for xmlParseChunk in -lxml" >&5 -echo $ECHO_N "checking for xmlParseChunk in -lxml... $ECHO_C" >&6 -if test "${ac_cv_lib_xml_xmlParseChunk+set}" = set; then + echo "$as_me:$LINENO: checking for xmlParseChunk in -lc" >&5 +echo $ECHO_N "checking for xmlParseChunk in -lc... $ECHO_C" >&6 +if test "${ac_cv_lib_c_xmlParseChunk+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lxml $ac_xml_config_libs $LIBS" +LIBS="-lc $ac_xml_config_libs $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" @@ -13465,18 +13490,18 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_lib_xml_xmlParseChunk=yes + ac_cv_lib_c_xmlParseChunk=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 -ac_cv_lib_xml_xmlParseChunk=no +ac_cv_lib_c_xmlParseChunk=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_xml_xmlParseChunk" >&5 -echo "${ECHO_T}$ac_cv_lib_xml_xmlParseChunk" >&6 -if test $ac_cv_lib_xml_xmlParseChunk = yes; then +echo "$as_me:$LINENO: result: $ac_cv_lib_c_xmlParseChunk" >&5 +echo "${ECHO_T}$ac_cv_lib_c_xmlParseChunk" >&6 +if test $ac_cv_lib_c_xmlParseChunk = yes; then have_xml=yes xml_halfassed=no XML_LIBS="$ac_xml_config_libs" @@ -14491,7 +14516,7 @@ if test "${ac_cv_mesagl_version_string+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.$ac_ext < #ifndef MESA_MAJOR_VERSION @@ -15365,20 +15390,33 @@ if test "$with_gdk_pixbuf" = yes; then # pkgs='' ok="yes" - pkg_check_version gdk-pixbuf-2.0 2.0.0 - pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0 - have_gdk_pixbuf="$ok" - have_gdk_pixbuf2="$ok" - if test "$have_gdk_pixbuf2" = no; then + # If we have Gtk 2.x, then *only* gdk-pixbuf 2.x will work. + # If we have Gtk 1.x, then *only* gdk-pixbuf 1.x will work. + # If we don't have Gtk at all, then either will work. + + if test "$have_gtk" = no -o "$have_gtk2" = yes; then # - # We don't have pixbuf 2.x; check for 1.x. + # we don't have Gtk; or we have Gtk 2.x. Check for pixbuf 2.x. # - pkgs='' - ok="yes" - pkg_check_version gdk-pixbuf 0.0 - pkg_check_version gdk-pixbuf-xlib 0.0 + pkg_check_version gdk-pixbuf-2.0 2.0.0 + pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0 have_gdk_pixbuf="$ok" + have_gdk_pixbuf2="$ok" + fi + + if test "$have_gtk" = no -o "$have_gtk2" = no; then + # + # we don't have Gtk; or we have Gtk 1.x. + # If we don't have pixbuf 2.x, then check for pixbuf 1.x. + # + if test "$have_gdk_pixbuf2" = no; then + pkgs='' + ok="yes" + pkg_check_version gdk-pixbuf 0.0 + pkg_check_version gdk-pixbuf-xlib 0.0 + have_gdk_pixbuf="$ok" + fi fi if test "$have_gdk_pixbuf" = yes; then @@ -15405,6 +15443,7 @@ echo "${ECHO_T}$ac_cv_gdk_pixbuf_config_libs" >&6 ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs fi + if test "$have_gdk_pixbuf" = no; then # # the old way... @@ -15523,7 +15562,7 @@ echo "${ECHO_T}$ac_cv_gdk_pixbuf_config_libs" >&6 have_gdk_pixbuf=no - # check for header 1... + # check for header A... ac_save_CPPFLAGS="$CPPFLAGS" if test \! -z "$includedir" ; then @@ -15638,7 +15677,7 @@ fi CPPFLAGS="$ac_save_CPPFLAGS" - # if that worked, check for header 2... + # if that worked, check for header B... if test "$have_gdk_pixbuf" = yes; then have_gdk_pixbuf=no gdk_pixbuf_halfassed=yes @@ -15757,7 +15796,7 @@ fi CPPFLAGS="$ac_save_CPPFLAGS" - # yay, it has a new name in GTK2... + # yay, it has a new name in Gtk 2.x... if test "$have_gdk_pixbuf" = no; then have_gdk_pixbuf=no gdk_pixbuf_halfassed=yes @@ -15886,7 +15925,7 @@ fi have_gdk_pixbuf=no gdk_pixbuf_halfassed=yes - # library 1... + # library A... ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" @@ -15967,7 +16006,7 @@ fi LDFLAGS="$ac_save_LDFLAGS" # LIBS="$ac_save_LIBS" - # library 2... + # library B... if test "$have_gdk_pixbuf" = yes; then have_gdk_pixbuf=no @@ -17465,11 +17504,24 @@ fi # After computing $HACK_CONF_DIR, make sure $GLADE_DATADIR has a value # so that we know where to install the Gtk pixmaps. # +# It should usually be "/usr/share/pixmaps/", but we can't just use +# "$(prefix)/share/pixmaps" because that would usually result in +# "/usr/X11R6/share/pixmaps/", which is wrong. It needs to be the +# Gnome/Gtk prefix, not the overall prefix. +# if test -n "$GNOME_DATADIR" ; then GLADE_DATADIR='$(GNOME_DATADIR)/xscreensaver' elif test "$have_gtk" = yes; then - # should this be "$(prefix)/share/pixmaps"? But /usr/X11R6/share/ is wrong... - GLADE_DATADIR='/usr/share/xscreensaver' + if test -n "$pkg_config"; then + if test "$have_gtk2" = yes; then + GLADE_DATADIR=`$pkg_config --variable=prefix gtk+-2.0` + else + GLADE_DATADIR=`$pkg_config --variable=prefix gtk+` + fi + else + GLADE_DATADIR=`$gtk_config --prefix` + fi + GLADE_DATADIR="$GLADE_DATADIR/share/xscreensaver" else GLADE_DATADIR='' fi @@ -17542,7 +17594,7 @@ APPDEFAULTS=$ac_x_app_defaults -ac_config_files="$ac_config_files Makefile utils/Makefile driver/Makefile hacks/Makefile hacks/glx/Makefile po/Makefile.in driver/XScreenSaver.ad" +ac_config_files="$ac_config_files Makefile utils/Makefile driver/Makefile hacks/Makefile hacks/glx/Makefile po/Makefile.in driver/XScreenSaver.ad driver/xscreensaver.kss" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -18039,6 +18091,7 @@ do "hacks/glx/Makefile" ) CONFIG_FILES="$CONFIG_FILES hacks/glx/Makefile" ;; "po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "driver/XScreenSaver.ad" ) CONFIG_FILES="$CONFIG_FILES driver/XScreenSaver.ad" ;; + "driver/xscreensaver.kss" ) CONFIG_FILES="$CONFIG_FILES driver/xscreensaver.kss" ;; "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "default-2" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; @@ -18898,8 +18951,17 @@ elif test "$jurassic_gtk" = yes ; then warn2 "Gtk $pref_gtk or newer is required. Motif will be used instead." elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then - warnL "Use of Gtk was requested, but it wasn't found;" - warn2 "Motif will be used instead." + warnL "Use of Gtk was requested, but it wasn't found." + if test "$have_motif" = yes; then + warn2 "Motif will be used instead." + fi +fi + +if test "$gtk2_halfassed" != no ; then + warnL "GTK version $gtk2_halfassed was found, but some other supporting" + warn2 "libraries were not, so GTK 2.x can't be used. Please" + warn2 "read the above output and the \`config.log' file to see" + warn2 "which libraries are missing." fi diff --git a/configure.in b/configure.in index 901b5a23..ac16c7e8 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,4 @@ -# configure.in --- xscreensaver, Copyright (c) 1997-2000 Jamie Zawinski. +# configure.in --- xscreensaver, Copyright (c) 1997-2002 Jamie Zawinski. # AC_PREREQ(2.52) @@ -1882,6 +1882,8 @@ parse_gtk_version_string() { jurassic_gtk=no +gtk2_halfassed=no + if test "$with_gtk" = yes; then have_gtk=no @@ -1945,6 +1947,10 @@ if test "$with_gtk" = yes; then if test "$have_gtk" = yes; then have_gtk2=yes AC_DEFINE(HAVE_GTK2) + else + if test -n "$ac_gtk_version_string" ; then + gtk2_halfassed="$ac_gtk_version_string" + fi fi if test "$have_gtk" = no; then @@ -1959,7 +1965,7 @@ if test "$with_gtk" = yes; then # Now check for Gnome... # - if test "$have_gtk" = yes; then + if test "$have_gtk" = yes -a "$with_gnome" = yes; then old_pkgs="$pkgs" ok=yes pkg_check_version capplet 1.0 @@ -2039,6 +2045,11 @@ if test "$with_gtk" = yes; then ac_gtk_config_libs=$ac_cv_gtk_config_libs # Check for Gnome Capplet support. + # Note that this is only needed with Gnome 1.x, not Gnome 2.x. + # In a Gnome 2.x world, libcapplet will not exist. + # (In fact, this likely won't even be checked, since in a Gnome 2.x + # world, we will probably be up in the "$pkg_config" branch instead + # of here in the "$gnome_config" branch.) # if test "$have_gnome" = yes -a "$have_gtk" = yes; then gnome_config_libs="gtk capplet gnomeui gdk_pixbuf" @@ -2090,6 +2101,7 @@ if test "$with_gtk" = yes; then if test "$have_gtk" = yes -a "$have_gtk2" = no; then # check for this function that was not in libcapplet 1.2. + # (only needed in Gnome/Gtk 1.x, not Gnome/Gtk 2.x) AC_CHECK_X_LIB(capplet, capplet_widget_changes_are_immediate, [AC_DEFINE(HAVE_CRAPPLET_IMMEDIATE)], [true], $ac_gnome_config_libs) @@ -2098,13 +2110,16 @@ if test "$with_gtk" = yes; then GNOME_DATADIR="" if test "$have_gnome" = yes -a "$have_gtk" = yes; then - if test -n "$gnome_config"; then - GNOME_DATADIR=`$gnome_config --datadir` + if test -n "$pkg_config"; then + if test "$have_gtk2" = yes; then + GNOME_DATADIR=`$pkg_config --variable=prefix gtk+-2.0` + else + GNOME_DATADIR=`$pkg_config --variable=prefix gtk+` + fi else - #### is this right? - GNOME_DATADIR=`$pkg_config --variable=prefix gtk+` - GNOME_DATADIR="$GNOME_DATADIR/share" + GNOME_DATADIR=`$gtk_config --prefix` fi + GNOME_DATADIR="$GNOME_DATADIR/share" fi # .desktop files go in different places in Gnome 1.x and Gnome 2.x... @@ -2200,11 +2215,21 @@ if test "$with_xml" = yes; then # pkgs="" ok="yes" - pkg_check_version xml2 1.0 - if test "$ok" = no; then + # If we have Gtk 2.x, then *only* XML 2.x will work. + # If we have Gtk 1.x, or don't have Gtk at all, then + # either XML 1.x or 2.x will work. + + # First check for XML 2.x. + # + pkg_check_version libxml-2.0 2.4.6 + + # If that didn't work (we don't have XML 2.x) and we *don't* have + # Gtk 2.x, then check to see if we have XML 1.x + # + if test "$ok" = no -a "$have_gtk2" = no; then ok=yes - pkg_check_version xml 1.0 + pkg_check_version libxml 1.0 fi have_xml="$ok" @@ -2221,7 +2246,7 @@ if test "$with_xml" = yes; then else # # the old way... - # run {gnome,gtk}-config based tests. + # run {xml2,xml}-config based tests. # AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path) @@ -2272,7 +2297,7 @@ if test "$with_xml" = yes; then # we have the header, now check for the library have_xml=no xml_halfassed=yes - AC_CHECK_X_LIB(xml, xmlParseChunk, + AC_CHECK_X_LIB(c, xmlParseChunk, [have_xml=yes xml_halfassed=no XML_LIBS="$ac_xml_config_libs" @@ -2763,20 +2788,33 @@ if test "$with_gdk_pixbuf" = yes; then # pkgs='' ok="yes" - pkg_check_version gdk-pixbuf-2.0 2.0.0 - pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0 - have_gdk_pixbuf="$ok" - have_gdk_pixbuf2="$ok" - if test "$have_gdk_pixbuf2" = no; then + # If we have Gtk 2.x, then *only* gdk-pixbuf 2.x will work. + # If we have Gtk 1.x, then *only* gdk-pixbuf 1.x will work. + # If we don't have Gtk at all, then either will work. + + if test "$have_gtk" = no -o "$have_gtk2" = yes; then # - # We don't have pixbuf 2.x; check for 1.x. + # we don't have Gtk; or we have Gtk 2.x. Check for pixbuf 2.x. # - pkgs='' - ok="yes" - pkg_check_version gdk-pixbuf 0.0 - pkg_check_version gdk-pixbuf-xlib 0.0 + pkg_check_version gdk-pixbuf-2.0 2.0.0 + pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0 have_gdk_pixbuf="$ok" + have_gdk_pixbuf2="$ok" + fi + + if test "$have_gtk" = no -o "$have_gtk2" = no; then + # + # we don't have Gtk; or we have Gtk 1.x. + # If we don't have pixbuf 2.x, then check for pixbuf 1.x. + # + if test "$have_gdk_pixbuf2" = no; then + pkgs='' + ok="yes" + pkg_check_version gdk-pixbuf 0.0 + pkg_check_version gdk-pixbuf-xlib 0.0 + have_gdk_pixbuf="$ok" + fi fi if test "$have_gdk_pixbuf" = yes; then @@ -2789,6 +2827,7 @@ if test "$with_gdk_pixbuf" = yes; then ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs fi + if test "$have_gdk_pixbuf" = no; then # # the old way... @@ -2850,10 +2889,10 @@ if test "$with_gdk_pixbuf" = yes; then have_gdk_pixbuf=no - # check for header 1... + # check for header A... AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes]) - # if that worked, check for header 2... + # if that worked, check for header B... if test "$have_gdk_pixbuf" = yes; then have_gdk_pixbuf=no gdk_pixbuf_halfassed=yes @@ -2861,7 +2900,7 @@ if test "$with_gdk_pixbuf" = yes; then [have_gdk_pixbuf=yes gdk_pixbuf_halfassed=no]) - # yay, it has a new name in GTK2... + # yay, it has a new name in Gtk 2.x... if test "$have_gdk_pixbuf" = no; then have_gdk_pixbuf=no gdk_pixbuf_halfassed=yes @@ -2879,10 +2918,10 @@ if test "$with_gdk_pixbuf" = yes; then have_gdk_pixbuf=no gdk_pixbuf_halfassed=yes - # library 1... + # library A... AC_CHECK_X_LIB(c, gdk_pixbuf_new_from_file, [have_gdk_pixbuf=yes],, $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm) - # library 2... + # library B... if test "$have_gdk_pixbuf" = yes; then have_gdk_pixbuf=no AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init, @@ -3297,11 +3336,24 @@ fi # After computing $HACK_CONF_DIR, make sure $GLADE_DATADIR has a value # so that we know where to install the Gtk pixmaps. # +# It should usually be "/usr/share/pixmaps/", but we can't just use +# "$(prefix)/share/pixmaps" because that would usually result in +# "/usr/X11R6/share/pixmaps/", which is wrong. It needs to be the +# Gnome/Gtk prefix, not the overall prefix. +# if test -n "$GNOME_DATADIR" ; then GLADE_DATADIR='$(GNOME_DATADIR)/xscreensaver' elif test "$have_gtk" = yes; then - # should this be "$(prefix)/share/pixmaps"? But /usr/X11R6/share/ is wrong... - GLADE_DATADIR='/usr/share/xscreensaver' + if test -n "$pkg_config"; then + if test "$have_gtk2" = yes; then + GLADE_DATADIR=`$pkg_config --variable=prefix gtk+-2.0` + else + GLADE_DATADIR=`$pkg_config --variable=prefix gtk+` + fi + else + GLADE_DATADIR=`$gtk_config --prefix` + fi + GLADE_DATADIR="$GLADE_DATADIR/share/xscreensaver" else GLADE_DATADIR='' fi @@ -3380,7 +3432,8 @@ AC_OUTPUT(Makefile hacks/Makefile hacks/glx/Makefile po/Makefile.in - driver/XScreenSaver.ad) + driver/XScreenSaver.ad + driver/xscreensaver.kss) ############################################################################### # @@ -3503,8 +3556,17 @@ elif test "$jurassic_gtk" = yes ; then warn2 "Gtk $pref_gtk or newer is required. Motif will be used instead." elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then - warnL "Use of Gtk was requested, but it wasn't found;" - warn2 "Motif will be used instead." + warnL "Use of Gtk was requested, but it wasn't found." + if test "$have_motif" = yes; then + warn2 "Motif will be used instead." + fi +fi + +if test "$gtk2_halfassed" != no ; then + warnL "GTK version $gtk2_halfassed was found, but some other supporting" + warn2 "libraries were not, so GTK 2.x can't be used. Please" + warn2 "read the above output and the \`config.log' file to see" + warn2 "which libraries are missing." fi diff --git a/driver/Makefile.in b/driver/Makefile.in index f7012a66..8e925da4 100644 --- a/driver/Makefile.in +++ b/driver/Makefile.in @@ -212,9 +212,10 @@ MEN = xscreensaver.man xscreensaver-demo.man \ xscreensaver-getimage-file.man \ xscreensaver-getimage-video.man EXTRAS = README Makefile.in XScreenSaver.ad.in xscreensaver.pam \ - xscreensaver.kss xscreensaver-demo.glade xscreensaver-demo.glade2 \ + xscreensaver-demo.glade xscreensaver-demo.glade2 \ screensaver-properties.desktop.in \ screensaver-properties-capplet \ + xscreensaver.kss.in \ .gdbinit VMSFILES = compile_axp.com compile_decc.com link_axp.com link_decc.com \ vms-getpwnam.c vms-pwd.h vms-hpwd.c vms-validate.c \ @@ -604,10 +605,10 @@ uninstall-gnome:: fi install-kde: - @src="$(srcdir)/xscreensaver.kss" ; \ + @src="xscreensaver.kss" ; \ if [ "$$KDEDIR" != "" ]; then \ dir="$(install_prefix)$$KDEDIR/bin" ; \ - dest="$$dir/xscreensaver.kss" ; \ + dest="$$dir/$$src" ; \ echo $(INSTALL_SCRIPT) $$src $$dest ; \ if $(INSTALL_SCRIPT) $$src $$dest ; then \ true ; \ diff --git a/driver/XScreenSaver.ad.in b/driver/XScreenSaver.ad.in index 10b60265..f759d19c 100644 --- a/driver/XScreenSaver.ad.in +++ b/driver/XScreenSaver.ad.in @@ -4,8 +4,8 @@ ! a screen saver and locker for the X window system ! by Jamie Zawinski ! -! version 4.04 -! 31-May-2002 +! version 4.05 +! 11-Jun-2002 ! ! See "man xscreensaver" for more info. The latest version is always ! available at http://www.jwz.org/xscreensaver/ @@ -330,6 +330,7 @@ @GL_KLUDGE@ GL: spheremonics -root \n\ @GL_KLUDGE@ GL: lavalite -root \n\ @GL_KLUDGE@ GL: queens -root \n\ +@GL_KLUDGE@ GL: endgame -root \n\ \ - xdaliclock -root -builtin3 -cycle \n\ - default-n: xearth -nofork -nostars -ncolors 50 \ diff --git a/driver/XScreenSaver_ad.h b/driver/XScreenSaver_ad.h index 0d91e8f3..79d17107 100644 --- a/driver/XScreenSaver_ad.h +++ b/driver/XScreenSaver_ad.h @@ -233,6 +233,7 @@ GL: spheremonics -root \\n\ GL: lavalite -root \\n\ GL: queens -root \\n\ + GL: endgame -root \\n\ \ - xdaliclock -root -builtin3 -cycle \\n\ - default-n: xearth -nofork -nostars -ncolors 50 \ diff --git a/driver/demo-Gtk.c b/driver/demo-Gtk.c index 486e4a48..3a3f2d6f 100644 --- a/driver/demo-Gtk.c +++ b/driver/demo-Gtk.c @@ -266,7 +266,19 @@ static void ensure_selected_item_visible (GtkWidget *widget) { #ifdef HAVE_GTK2 + GtkTreePath *path; + GtkTreeSelection *selection; + GtkTreeIter iter; + GtkTreeModel *model; + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget)); + if (!gtk_tree_selection_get_selected (selection, &model, &iter)) + return; + path = gtk_tree_model_get_path (model, &iter); + + gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (widget), + path, NULL, FALSE, 0.0, 0.0); #else /* !HAVE_GTK2 */ GtkScrolledWindow *scroller = 0; @@ -1700,7 +1712,7 @@ list_checkbox_cb ( GtkList *list = GTK_LIST (GTK_WIDGET (line)->parent); GtkViewport *vp = GTK_VIEWPORT (GTK_WIDGET (list)->parent); GtkScrolledWindow *scroller = GTK_SCROLLED_WINDOW (GTK_WIDGET (vp)->parent); -#endif /* ~HAVE_GTK2 */ +#endif /* !HAVE_GTK2 */ GtkAdjustment *adj; double scroll_top; diff --git a/driver/xscreensaver-command.man b/driver/xscreensaver-command.man index a3622c7a..cd8e729c 100644 --- a/driver/xscreensaver-command.man +++ b/driver/xscreensaver-command.man @@ -11,7 +11,7 @@ .if n .sp 1 .if t .sp .5 .. -.TH XScreenSaver 1 "31-May-2002 (4.04)" "X Version 11" +.TH XScreenSaver 1 "11-Jun-2002 (4.05)" "X Version 11" .SH NAME xscreensaver-command - control a running xscreensaver process .SH SYNOPSIS diff --git a/driver/xscreensaver-demo.man b/driver/xscreensaver-demo.man index b39b13d8..059509c9 100644 --- a/driver/xscreensaver-demo.man +++ b/driver/xscreensaver-demo.man @@ -11,7 +11,7 @@ .if n .sp 1 .if t .sp .5 .. -.TH XScreenSaver 1 "31-May-2002 (4.04)" "X Version 11" +.TH XScreenSaver 1 "11-Jun-2002 (4.05)" "X Version 11" .SH NAME xscreensaver-demo - interactively control the background xscreensaver daemon .SH SYNOPSIS diff --git a/driver/xscreensaver-getimage-file.man b/driver/xscreensaver-getimage-file.man index 71861cf0..4b975b51 100644 --- a/driver/xscreensaver-getimage-file.man +++ b/driver/xscreensaver-getimage-file.man @@ -1,4 +1,4 @@ -.TH XScreenSaver 1 "31-May-2002 (4.04)" "X Version 11" +.TH XScreenSaver 1 "11-Jun-2002 (4.05)" "X Version 11" .SH NAME xscreensaver-getimage-file - put a randomly-selected image on the root window .SH SYNOPSIS diff --git a/driver/xscreensaver-getimage-video.man b/driver/xscreensaver-getimage-video.man index f2587fa7..da67cd67 100644 --- a/driver/xscreensaver-getimage-video.man +++ b/driver/xscreensaver-getimage-video.man @@ -1,4 +1,4 @@ -.TH XScreenSaver 1 "31-May-2002 (4.04)" "X Version 11" +.TH XScreenSaver 1 "11-Jun-2002 (4.05)" "X Version 11" .SH NAME xscreensaver-getimage-video - put a video frame on the root window .SH SYNOPSIS diff --git a/driver/xscreensaver-getimage.man b/driver/xscreensaver-getimage.man index c956fe8c..559b205c 100644 --- a/driver/xscreensaver-getimage.man +++ b/driver/xscreensaver-getimage.man @@ -1,4 +1,4 @@ -.TH XScreenSaver 1 "31-May-2002 (4.04)" "X Version 11" +.TH XScreenSaver 1 "11-Jun-2002 (4.05)" "X Version 11" .SH NAME xscreensaver-getimage - put some randomly-selected image on the root window .SH SYNOPSIS diff --git a/driver/xscreensaver.kss b/driver/xscreensaver.kss deleted file mode 100755 index 5c397f65..00000000 --- a/driver/xscreensaver.kss +++ /dev/null @@ -1,140 +0,0 @@ -#!/bin/bash - - -# script - "xscreensaver.kss" -# -# Author: Shane Smit -# -# Modification History: -# [08/23/1999] - Shane Smit: Creation -# -# Description: -# This script file enables users to use XScreenSaver via the -# KDE Display Properties. - -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation. No representations are made about the suitability of this -# software for any purpose. It is provided "as is" without express or -# implied warranty. - - -# Locking is turned off by default. -lockmode="-no-lock-mode" - -while [ -n "$1" ]; do - case "$1" in - - -desc) - # This is the name in the list box. - echo "XScreenSaver" - exit - ;; - - -preview) - # This simply runs xflame in the preview window. For this to be "real", - # it needs to run xscreensaver with a -window-id parameter for each hack. - # There are two ways to do this: - # 1) Hack xscreensaver to allow global parameters. - # 2) Hack xscreensaver to accept alternate setup files, and create one on - # the fly here. - shift - /usr/X11R6/lib/xscreensaver/xflame -delay 1 -window-id $1 & # Start new preview - echo "$!" > $HOME/.kss-preview$1.pid.`hostname` # Write PID - wait $! # Wait for it to get killed - exit - ;; - - -setup) - /usr/X11R6/bin/xscreensaver -no-splash & # daemon must be started - /usr/X11R6/bin/xscreensaver-demo # or the setup will produce - kill $! # a warning. - exit - ;; - - -test) - # I was unable to grep stdout because xscreensaver nabs it. But I was able - # to output it to a file, and grep the file. - TEMP_FILE=/tmp/xsc.$RANDOM - /usr/X11R6/bin/xscreensaver -no-splash -verbose -no-capture-stderr 2> $TEMP_FILE & - /usr/X11R6/bin/xscreensaver-command -activate - while true; do - ExitNow=$(grep -E -c unblanking\|already $TEMP_FILE) - if [ $ExitNow != 0 ]; then - kill $! - rm $TEMP_FILE - exit - fi - sleep 1 - done - exit # It should never get this far. - ;; - -# -corners) -# echo "Not yet supported" -# ;; - -delay) - shift - timeout="-timeout $1" - ;; - -install) - Install="TRUE" - ;; - -lock) - if [ ! -f "/etc/shadow" ]; then - lockmode="-lock-mode" - fi - ;; -# -allow-root) -# echo "Not yet supported" -# ;; - -nice) - shift - Nice="-nice $1" - ;; -# -inroot) -# echo "Not yet supported" -# ;; - *) - echo "Unknown parameter: $1" - ;; - esac - shift -done - -if [ -n "$Install" ] ; then - PID_FILE=$HOME/.kss-install.pid.`hostname` - if [ -r "$PID_FILE" ] ; then - kill `cat $PID_FILE` # Kill old screensaver - fi - echo "$$" > $PID_FILE # Write PID of this script - /usr/X11R6/bin/xscreensaver -no-splash $timeout $lockmode $Nice & # Start XScreenSaver daemon - trap "kill $!" SIGTERM # Set these to kill the daemon - trap "kill $!" SIGKILL - -# KDE sends SIGUSER1 to indicate the user has hit the "lock" button. - trap "/usr/X11R6/bin/xscreensaver-command -lock" SIGUSR1 - - wait $! # Do not exit, just wait for signals. - -else - echo "Usage: ./xscreensaver.kss -install|-setup|-test|-desc [-delay num] [-lock] [-nice num]" -# echo " -corners xxxx Placing cursor in corner performs action:" -# echo " x = i no action (ignore)" -# echo " x = s save screen" -# echo " x = l lock screen" -# echo " order: top-left, top-right, bottom-left, bottom-right" - echo " -delay num Amount of idle time before screen saver starts (default 10min)" - echo " -desc Print the screen saver's description to stdout" - echo " -install Install screen saver" - echo " -lock Require password to stop screen saver" -# echo " -allow-root Accept root password to unlock" - echo " -nice num Run with specified nice value" - echo " -preview wid Run in the specified XWindow" -# echo " -inroot Run in the root window" - echo " -setup Setup screen saver" - echo " -test Invoke the screen saver immediately" -fi - -# End of script - "xscreensaver.kss" diff --git a/driver/xscreensaver.kss.in b/driver/xscreensaver.kss.in new file mode 100755 index 00000000..974ecc2e --- /dev/null +++ b/driver/xscreensaver.kss.in @@ -0,0 +1,145 @@ +#!/bin/sh - + +# script - "xscreensaver.kss" +# +# Author: Shane Smit +# +# Modification History: +# [08/23/1999] - Shane Smit: Creation +# +# Description: +# This script file enables users to use XScreenSaver via the +# KDE Display Properties. + +# Permission to use, copy, modify, distribute, and sell this software and its +# documentation for any purpose is hereby granted without fee, provided that +# the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation. No representations are made about the suitability of this +# software for any purpose. It is provided "as is" without express or +# implied warranty. + + +# Locking is turned off by default. +lockmode="-no-lock-mode" + +prefix="@prefix@" +exec_prefix="@exec_prefix@" +bindir="@bindir@" +hackdir="@HACKDIR@" + +while [ -n "$1" ]; do + case "$1" in + + -desc) + # This is the name in the list box. + echo "XScreenSaver" + exit + ;; + + -preview) + # This simply runs xflame in the preview window. For this to be "real", + # it needs to run xscreensaver with a -window-id parameter for each hack. + # There are two ways to do this: + # 1) Hack xscreensaver to allow global parameters. + # 2) Hack xscreensaver to accept alternate setup files, and create one on + # the fly here. + shift + $hackdir/xflame -delay 1 -window-id $1 & # Start new preview + echo "$!" > $HOME/.kss-preview$1.pid.`hostname` # Write PID + wait $! # Wait for it to get killed + exit + ;; + + -setup) + $bindir/xscreensaver -no-splash & # daemon must be started + $bindir/xscreensaver-demo # or the setup will produce + kill $! # a warning. + exit + ;; + + -test) + # I was unable to grep stdout because xscreensaver nabs it. But I was able + # to output it to a file, and grep the file. + TEMP_FILE=/tmp/xsc.$RANDOM + $bindir/xscreensaver -no-splash -verbose -no-capture-stderr 2> $TEMP_FILE & + $bindir/xscreensaver-command -activate + while true; do + ExitNow=$(grep -E -c unblanking\|already $TEMP_FILE) + if [ $ExitNow != 0 ]; then + kill $! + rm $TEMP_FILE + exit + fi + sleep 1 + done + exit # It should never get this far. + ;; + +# -corners) +# echo "Not yet supported" +# ;; + -delay) + shift + timeout="-timeout $1" + ;; + -install) + Install="TRUE" + ;; + -lock) + if [ ! -f "/etc/shadow" ]; then + lockmode="-lock-mode" + fi + ;; +# -allow-root) +# echo "Not yet supported" +# ;; + -nice) + shift + Nice="-nice $1" + ;; +# -inroot) +# echo "Not yet supported" +# ;; + *) + echo "Unknown parameter: $1" + ;; + esac + shift +done + +if [ -n "$Install" ] ; then + PID_FILE=$HOME/.kss-install.pid.`hostname` + if [ -r "$PID_FILE" ] ; then + kill `cat $PID_FILE` # Kill old screensaver + fi + echo "$$" > $PID_FILE # Write PID of this script + $bindir/xscreensaver -no-splash $timeout $lockmode $Nice & # Start XScreenSaver daemon + trap "kill $!" SIGTERM # Set these to kill the daemon + trap "kill $!" SIGKILL + +# KDE sends SIGUSER1 to indicate the user has hit the "lock" button. + trap "$bindir/xscreensaver-command -lock" SIGUSR1 + + wait $! # Do not exit, just wait for signals. + +else + echo "Usage: ./xscreensaver.kss -install|-setup|-test|-desc [-delay num] [-lock] [-nice num]" +# echo " -corners xxxx Placing cursor in corner performs action:" +# echo " x = i no action (ignore)" +# echo " x = s save screen" +# echo " x = l lock screen" +# echo " order: top-left, top-right, bottom-left, bottom-right" + echo " -delay num Amount of idle time before screen saver starts (default 10min)" + echo " -desc Print the screen saver's description to stdout" + echo " -install Install screen saver" + echo " -lock Require password to stop screen saver" +# echo " -allow-root Accept root password to unlock" + echo " -nice num Run with specified nice value" + echo " -preview wid Run in the specified XWindow" +# echo " -inroot Run in the root window" + echo " -setup Setup screen saver" + echo " -test Invoke the screen saver immediately" +fi + +# End of script - "xscreensaver.kss" diff --git a/driver/xscreensaver.man b/driver/xscreensaver.man index 5d1cfd2b..16ef372c 100644 --- a/driver/xscreensaver.man +++ b/driver/xscreensaver.man @@ -11,7 +11,7 @@ .if n .sp 1 .if t .sp .5 .. -.TH XScreenSaver 1 "31-May-2002 (4.04)" "X Version 11" +.TH XScreenSaver 1 "11-Jun-2002 (4.05)" "X Version 11" .SH NAME xscreensaver - extensible screen saver framework, plus locking .SH SYNOPSIS diff --git a/hacks/config/README b/hacks/config/README index 492330ca..55ca4f8b 100644 --- a/hacks/config/README +++ b/hacks/config/README @@ -4,8 +4,8 @@ a screen saver and locker for the X window system by Jamie Zawinski - version 4.04 - 31-May-2002 + version 4.05 + 11-Jun-2002 http://www.jwz.org/xscreensaver/ diff --git a/hacks/config/endgame.xml b/hacks/config/endgame.xml new file mode 100644 index 00000000..23f8ff1a --- /dev/null +++ b/hacks/config/endgame.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + <_description> +Black slips out of three mating nets, but the fourth one holds him tight! +A brilliant composition! +Written by Blair Tennessy. + + diff --git a/hacks/config/xmatrix.xml b/hacks/config/xmatrix.xml index 31c346da..c2a8f87e 100644 --- a/hacks/config/xmatrix.xml +++ b/hacks/config/xmatrix.xml @@ -28,7 +28,7 @@ convert="invert"/> diff --git a/hacks/glx/Makefile.in b/hacks/glx/Makefile.in index 49e42729..25ddc2ca 100644 --- a/hacks/glx/Makefile.in +++ b/hacks/glx/Makefile.in @@ -81,7 +81,7 @@ SRCS = xscreensaver-gl-helper.c \ menger.c engine.c flipscreen3d.c font-ximage.c \ grab-ximage.c glsnake.c boxed.c glforestfire.c sballs.c \ cubenetic.c spheremonics.c marching.c lavalite.c rotator.c \ - trackball.c gltrackball.c queens.c + trackball.c gltrackball.c queens.c endgame.c chessmodels.c OBJS = xscreensaver-gl-helper.o \ atlantis.o b_draw.o b_lockglue.o b_sphere.o bubble3d.o \ @@ -99,13 +99,14 @@ OBJS = xscreensaver-gl-helper.o \ menger.o engine.o flipscreen3d.o font-ximage.o \ grab-ximage.o glsnake.o boxed.o glforestfire.o sballs.o \ cubenetic.o spheremonics.o marching.o lavalite.o rotator.o \ - trackball.o gltrackball.o queens.o + trackball.o gltrackball.o queens.o endgame.o chessmodels.o GL_EXES = cage gears moebius pipes sproingies stairs superquadrics \ morph3d rubik atlantis lament bubble3d glplanet pulsar \ sierpinski3d gflux stonerview starwars gltext molecule \ dangerball circuit menger engine flipscreen3d glsnake boxed \ - glforestfire sballs cubenetic spheremonics lavalite queens + glforestfire sballs cubenetic spheremonics lavalite queens \ + endgame GLE_EXES = extrusion GL_UTIL_EXES = xscreensaver-gl-helper HACK_EXES = @GL_EXES@ @GLE_EXES@ @@ -121,7 +122,8 @@ HACK_OBJS = screenhack-gl.o xlock-gl.o fps.o $(HACK_BIN)/xlockmore.o \ HDRS = atlantis.h bubble3d.h buildlwo.h e_textures.h xpm-ximage.h \ grab-ximage.h font-ximage.h tube.h sphere.h boxed.h \ stonerview-move.h stonerview-osc.h glutstroke.h \ - glut_roman.h marching.h rotator.h trackball.h gltrackball.h + glut_roman.h marching.h rotator.h trackball.h gltrackball.h \ + chessmodels.h GL_MEN = atlantis.man boxed.man bubble3d.man cage.man circuit.man \ cubenetic.man dangerball.man engine.man extrusion.man \ flipscreen3d.man gears.man gflux.man glforestfire.man \ @@ -129,7 +131,8 @@ GL_MEN = atlantis.man boxed.man bubble3d.man cage.man circuit.man \ menger.man moebius.man molecule.man morph3d.man pipes.man \ pulsar.man queens.man rubik.man sballs.man sierpinski3d.man \ spheremonics.man sproingies.man stairs.man starwars.man \ - stonerview.man superquadrics.man xscreensaver-gl-helper.man + stonerview.man superquadrics.man xscreensaver-gl-helper.man \ + endgame.man MEN = @GL_MEN@ EXTRAS = README Makefile.in @@ -453,6 +456,10 @@ lavalite: lavalite.o $(LLOBJS) queens: queens.o $(TRACK_OBJS) $(HACK_OBJS) $(CC_HACK) -o $@ $@.o $(TRACK_OBJS) $(HACK_OBJS) $(HACK_LIBS) +CHESSOBJS=chessmodels.o $(TRACK_OBJS) $(HACK_OBJS) +endgame: endgame.o $(CHESSOBJS) + $(CC_HACK) -o $@ $@.o $(CHESSOBJS) $(HACK_LIBS) + # This one works differently (it's not xlock-like.) # STONER_OBJS=stonerview.o stonerview-move.o stonerview-osc.o stonerview-view.o \ @@ -499,6 +506,7 @@ bubble3d.o: ../../config.h buildlwo.o: $(srcdir)/buildlwo.h cage.o: ../../config.h cage.o: $(srcdir)/e_textures.h +chessmodels.o: $(srcdir)/chessmodels.h circuit.o: ../../config.h circuit.o: $(srcdir)/font-ximage.h cubenetic.o: ../../config.h @@ -510,6 +518,9 @@ dangerball.o: $(srcdir)/rotator.h dangerball.o: $(srcdir)/sphere.h dangerball.o: $(srcdir)/tube.h dolphin.o: $(srcdir)/atlantis.h +endgame.o: $(srcdir)/chessmodels.h +endgame.o: ../../config.h +endgame.o: $(srcdir)/gltrackball.h engine.o: ../../config.h extrusion-helix2.o: ../../config.h extrusion-helix3.o: ../../config.h diff --git a/hacks/glx/chessmodels.c b/hacks/glx/chessmodels.c new file mode 100644 index 00000000..0dd9b0cf --- /dev/null +++ b/hacks/glx/chessmodels.c @@ -0,0 +1,1056 @@ +/* + * glChess - A 3D chess interface + * + * Copyright (C) 2002 Robert Ancell + * Michael Duelli + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* chessmodels.c: Contains the code for piece model creation */ + +#include +#include +#include +#include + +#include "chessmodels.h" + +double piece_size = 0.1; + +#define ROT 16 + +#define piece_size 0.095 +#define EPSILON 0.001 + +/* Make a revolved piece */ +void revolve_line(double *trace_r, double *trace_h, double max_ih, int rot) { + double theta, norm_theta, sin_theta, cos_theta; + double norm_ptheta = 0.0, sin_ptheta = 0.0, cos_ptheta = 1.0; + double radius, pradius; + double max_height = max_ih, height, pheight; + double dx, dy, len; + int npoints, p; + double dtheta = (2.0*M_PI) / rot; + + /* Get the number of points */ + for(npoints = 0; + fabs(trace_r[npoints]) > EPSILON || fabs(trace_h[npoints]) > EPSILON; + ++npoints); + + /* If less than two points, can not revolve */ + if(npoints < 2) + return; + + /* If the max_height hasn't been defined, find it */ + if(max_height < EPSILON) + for(p = 0; p < npoints; ++p) + if(max_height < trace_h[p]) + max_height = trace_h[p]; + + /* Draw the revolution */ + for(theta = dtheta; rot > 0; --rot) { + sin_theta = sin(theta); + cos_theta = cos(theta); + norm_theta = theta / (2.0 * M_PI); + pradius = trace_r[0] * piece_size; + pheight = trace_h[0] * piece_size; + + for(p = 0; p < npoints; ++p) { + radius = trace_r[p] * piece_size; + height = trace_h[p] * piece_size; + + /* Get the normalized lengths of the normal vector */ + dx = radius - pradius; + dy = height - pheight; + len = sqrt(dx*dx + dy*dy); + dx /= len; + dy /= len; + + /* If only triangles required */ + if (fabs(radius) < EPSILON) { + glBegin(GL_TRIANGLES); + + glNormal3f(dy * sin_ptheta, -dx, dy * cos_ptheta); + glTexCoord2f(norm_ptheta, pheight / max_height); + glVertex3f(pradius * sin_ptheta, pheight, pradius * cos_ptheta); + + glNormal3f(dy * sin_theta, -dx, dy * cos_theta); + glTexCoord2f(norm_theta, pheight / max_height); + glVertex3f(pradius * sin_theta, pheight, pradius * cos_theta); + + glTexCoord2f(0.5 * (norm_theta + norm_ptheta), + height / max_height); + glVertex3f(0.0, height, 0.0); + + glEnd(); + } + + else { + glBegin(GL_QUADS); + + glNormal3f(dy * sin_ptheta, -dx, dy * cos_ptheta); + glTexCoord2f(norm_ptheta, pheight / max_height); + glVertex3f(pradius * sin_ptheta, pheight, pradius * cos_ptheta); + + glNormal3f(dy * sin_theta, -dx, dy * cos_theta); + glTexCoord2f(norm_theta, pheight / max_height); + glVertex3f(pradius * sin_theta, pheight, pradius * cos_theta); + + glTexCoord2f(norm_theta, height / max_height); + glVertex3f(radius * sin_theta, height, radius * cos_theta); + + glNormal3f(dy * sin_ptheta, -dx, dy * cos_ptheta); + glTexCoord2f(norm_ptheta, height / max_height); + glVertex3f(radius * sin_ptheta, height, radius * cos_ptheta); + + glEnd(); + } + + pradius = radius; + pheight = height; + } + + sin_ptheta = sin_theta; + cos_ptheta = cos_theta; + norm_ptheta = norm_theta; + theta += dtheta; + } +} + +void gen_model_lists(void) { + glNewList(1, GL_COMPILE); + draw_king(); + glEndList(); + + glNewList(2, GL_COMPILE); + draw_queen(); + glEndList(); + + glNewList(3, GL_COMPILE); + draw_bishop(); + glEndList(); + + glNewList(4, GL_COMPILE); + draw_knight(); + glEndList(); + + glNewList(5, GL_COMPILE); + draw_rook(); + glEndList(); + + glNewList(6, GL_COMPILE); + draw_pawn(); + glEndList(); +} + +void draw_pawn(void) { + double trace_r[] = + { 3.5, 3.5, 2.5, 2.5, 1.5, 1.0, 1.8, 1.0, 2.0, 1.0, 0.0, 0.0 }; + double trace_h[] = + { 0.0, 2.0, 3.0, 4.0, 6.0, 8.8, 8.8, 9.2, 11.6, 13.4, 13.4, 0.0 }; + + revolve_line(trace_r, trace_h, 0.0, ROT); +} + +void draw_rook(void) +{ + double trace_r[] = + { 3.8, 3.8, 2.6, 2.0, 2.8, 2.8, 2.2, 2.2, 0.0, 0.0 }; + double trace_h[] = + { 0.0, 2.0, 5.0, 10.2, 10.2, 13.6, 13.6, 13.0, 13.0, 0.0 }; + + revolve_line(trace_r, trace_h, 0.0, ROT); +} + +void draw_knight(void) +{ + double trace_r[] = { 4.1, 4.1, 2.0, 2.0, 2.6, 0.0 }; + double trace_h[] = { 0.0, 2.0, 3.6, 4.8, 5.8, 0.0 }; + + /* Revolved base */ + revolve_line(trace_r, trace_h, 17.8, ROT); + + /* Non revolved pieces */ + /* Quads */ + glBegin(GL_QUADS); + + /* Square base */ + glNormal3f(0.0, -1.0, 0.0); + glTexCoord2f(0.0, 5.8 / 17.8 * piece_size); + glVertex3f(2.6 * piece_size, 5.8 * piece_size, 2.6 * piece_size); + glTexCoord2f(0.0, 5.8 / 17.8 * piece_size); + glVertex3f(-2.6 * piece_size, 5.8 * piece_size, 2.6 * piece_size); + glTexCoord2f(0.0, 5.8 / 17.8 * piece_size); + glVertex3f(-2.6 * piece_size, 5.8 * piece_size, -0.8 * piece_size); + glTexCoord2f(0.0, 5.8 / 17.8 * piece_size); + glVertex3f(2.6 * piece_size, 5.8 * piece_size, -0.8 * piece_size); + + /* Upper edge of nose */ + glNormal3f(0.0, 0.707107, 0.707107); + glTexCoord2f(0.0, 16.2 / 17.8 * piece_size); + glVertex3f(0.8 * piece_size, 16.2 * piece_size, 4.0 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, 3.4 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 3.4 * piece_size); + glTexCoord2f(0.0, 16.2 / 17.8 * piece_size); + glVertex3f(-0.8 * piece_size, 16.2 * piece_size, 4.0 * piece_size); + + /* Above head */ + glNormal3f(0.0, 1.0, 0.0); + + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, 3.4 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, 3.0 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 3.0 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 3.4 * piece_size); + + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, 3.0 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(0.5 * piece_size, 16.8 * piece_size, 1.6 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-0.5 * piece_size, 16.8 * piece_size, 1.6 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 3.0 * piece_size); + + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(0.5 * piece_size, 16.8 * piece_size, 1.6 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-0.5 * piece_size, 16.8 * piece_size, 1.6 * piece_size); + + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 0.2 * piece_size); + + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(0.4 * piece_size, 16.8 * piece_size, -1.1 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-0.4 * piece_size, 16.8 * piece_size, -1.1 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -0.2 * piece_size); + + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(0.4 * piece_size, 16.8 * piece_size, -1.1 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-0.4 * piece_size, 16.8 * piece_size, -1.1 * piece_size); + + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size); + + /* Back of head */ + glNormal3f(0.0, 0.0, -1.0); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0, 15.0 / 17.8 * piece_size); + glVertex3f(1.0 * piece_size, 15.0 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0, 15.0 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 15.0 * piece_size, -4.4 * piece_size); + + /* Under back */ + glNormal3f(0.0, 0.0, -1.0); + glTexCoord2f(0.0, 15.0 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 15.0 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0, 15.0 / 17.8 * piece_size); + glVertex3f(1.0 * piece_size, 15.0 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0, 14.8 / 17.8 * piece_size); + glVertex3f(0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size); + glTexCoord2f(0.0, 14.8 / 17.8 * piece_size); + glVertex3f(-0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size); + + /* Right side of face */ + glNormal3f(-0.933878, 0.128964, -0.333528); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 3.0 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-0.5 * piece_size, 16.8 * piece_size, 1.6 * piece_size); + glTexCoord2f(0.0, 14.0 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 14.0 * piece_size, 1.3 * piece_size); + glTexCoord2f(0.0, 13.8 / 17.8 * piece_size); + glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size); + + glNormal3f(-0.966676, 0.150427, 0.207145); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-0.5 * piece_size, 16.8 * piece_size, 1.6 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-0.8 * piece_size, 16.8 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0, 13.8 / 17.8 * piece_size); + glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0, 14.0 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 14.0 * piece_size, 1.3 * piece_size); + + /* (above and below eye) */ + glNormal3f(-0.934057, 0.124541, -0.334704); + + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-0.82666667 * piece_size, 16.6 * piece_size, + 0.2 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-0.8 * piece_size, 16.8 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0, 16.6 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.6 * piece_size, -0.38 * piece_size); + + glTexCoord2f(0.0, 13.8 / 17.8 * piece_size); + glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0, 16.2 / 17.8 * piece_size); + glVertex3f(-0.88 * piece_size, 16.2 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0, 16.2 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.2 * piece_size, -0.74 * piece_size); + glTexCoord2f(0.0, 13.6 / 17.8 * piece_size); + glVertex3f(-1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size); + + glTexCoord2f(0.0, 13.6 / 17.8 * piece_size); + glVertex3f(-1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0, 16.2 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.2 * piece_size, -0.74 * piece_size); + glTexCoord2f(0.0, 15.8 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 15.8 * piece_size, -1.1 * piece_size); + glTexCoord2f(0.0, 14.0 / 17.8 * piece_size); + glVertex3f(-0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size); + + glNormal3f(-0.970801, -0.191698, -0.144213); + glTexCoord2f(0.0, 16.8 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size); + glTexCoord2f(0.0, 14.8 / 17.8 * piece_size); + glVertex3f(-0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size); + glTexCoord2f(0.0, 14.0 / 17.8 * piece_size); + glVertex3f(-0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size); + glTexCoord2f(0.0, 15.8 / 17.8 * piece_size); + glVertex3f(-1.0 * piece_size, 15.8 * piece_size, -1.1 * piece_size); + + glNormal3f(-0.975610, 0.219512, 0.0); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 15.0f / 17.8f * piece_size); + glVertex3f(-1.0 * piece_size, 15.0 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 14.8f / 17.8f * piece_size); + glVertex3f(-0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size); + + /* Left side of face */ + glNormal3f(0.933878, 0.128964, -0.333528); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, 3.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 14.0 * piece_size, 1.3 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(0.5 * piece_size, 16.8 * piece_size, 1.6 * piece_size); + + glNormal3f(0.966676, 0.150427, 0.207145); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(0.5 * piece_size, 16.8 * piece_size, 1.6 * piece_size); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 14.0 * piece_size, 1.3 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(1.2 * piece_size, 13.8 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(0.8 * piece_size, 16.8 * piece_size, 0.2 * piece_size); + + /* (above and below eye) */ + glNormal3f(0.934057, 0.124541, -0.334704); + + glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size); + glVertex3f(0.82666667 * piece_size, 16.6 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 16.6 * piece_size, -0.38 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(0.8 * piece_size, 16.8 * piece_size, 0.2 * piece_size); + + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(1.2 * piece_size, 13.8 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.6f / 17.8f * piece_size); + glVertex3f(1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 16.2 * piece_size, -0.74 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size); + glVertex3f(0.88 * piece_size, 16.2 * piece_size, 0.2 * piece_size); + + glTexCoord2f(0.0f * piece_size, 13.6f / 17.8f * piece_size); + glVertex3f(1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 15.8f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 15.8 * piece_size, -1.1 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 16.2 * piece_size, -0.74 * piece_size); + + glNormal3f(0.970801, -0.191698, -0.144213); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 15.8f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 15.8 * piece_size, -1.1 * piece_size); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 14.8f / 17.8f * piece_size); + glVertex3f(0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size); + + glNormal3f(0.975610, -0.219512, 0.0); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 14.8f / 17.8f * piece_size); + glVertex3f(0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size); + glTexCoord2f(0.0f * piece_size, 15.0f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 15.0 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, -4.4 * piece_size); + + /* Eyes */ + glNormal3f(0.598246, 0.797665, 0.076372); + glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size); + glVertex3f(0.88 * piece_size, 16.2 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 16.2 * piece_size, -0.74 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size); + glVertex3f(0.8 * piece_size, 16.4 * piece_size, -0.56 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size); + glVertex3f(0.61333334 * piece_size, 16.4 * piece_size, 0.2 * piece_size); + + glNormal3f(0.670088, -0.714758, 0.200256); + glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size); + glVertex3f(0.61333334 * piece_size, 16.4 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size); + glVertex3f(0.8 * piece_size, 16.4 * piece_size, -0.56 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 16.6 * piece_size, -0.38 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size); + glVertex3f(0.82666667 * piece_size, 16.6 * piece_size, 0.2 * piece_size); + + glNormal3f(-0.598246, 0.797665, 0.076372); + glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size); + glVertex3f(-0.88 * piece_size, 16.2 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size); + glVertex3f(-0.61333334 * piece_size, 16.4 * piece_size, + 0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size); + glVertex3f(-0.8 * piece_size, 16.4 * piece_size, -0.56 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size); + glVertex3f(-1.0 * piece_size, 16.2 * piece_size, -0.74 * piece_size); + + glNormal3f(-0.670088, -0.714758, 0.200256); + glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size); + glVertex3f(-0.61333334 * piece_size, 16.4 * piece_size, + 0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size); + glVertex3f(-0.82666667 * piece_size, 16.6 * piece_size, + 0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size); + glVertex3f(-1.0 * piece_size, 16.6 * piece_size, -0.38 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size); + glVertex3f(-0.8 * piece_size, 16.4 * piece_size, -0.56 * piece_size); + + /* Hair */ + glNormal3f(0.0, 1.0, 0.0); + glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size); + glVertex3f(0.35 * piece_size, 17.8 * piece_size, -0.8 * piece_size); + glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size); + glVertex3f(0.35 * piece_size, 17.8 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size); + glVertex3f(-0.35 * piece_size, 17.8 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size); + glVertex3f(-0.35 * piece_size, 17.8 * piece_size, -0.8 * piece_size); + + glNormal3f(1.0, 0.0, 0.0); + glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size); + glVertex3f(0.35 * piece_size, 17.8 * piece_size, -0.8 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(0.35 * piece_size, 16.8 * piece_size, -0.8 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(0.35 * piece_size, 16.8 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size); + glVertex3f(0.35 * piece_size, 17.8 * piece_size, -4.4 * piece_size); + + glNormal3f(-1.0, 0.0, 0.0); + glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size); + glVertex3f(-0.35 * piece_size, 17.8 * piece_size, -0.8 * piece_size); + glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size); + glVertex3f(-0.35 * piece_size, 17.8 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(-0.35 * piece_size, 16.8 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(-0.35 * piece_size, 16.8 * piece_size, -0.8 * piece_size); + + glNormal3f(0.0, 0.0, 1.0); + glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size); + glVertex3f(0.35 * piece_size, 17.8 * piece_size, -0.8 * piece_size); + glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size); + glVertex3f(-0.35 * piece_size, 17.8 * piece_size, -0.8 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(-0.35 * piece_size, 16.8 * piece_size, -0.8 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(0.35 * piece_size, 16.8 * piece_size, -0.8 * piece_size); + + glNormal3f(0.0, 0.0, -1.0); + glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size); + glVertex3f(0.35 * piece_size, 17.8 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(0.35 * piece_size, 16.8 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(-0.35 * piece_size, 16.8 * piece_size, -4.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size); + glVertex3f(-0.35 * piece_size, 17.8 * piece_size, -4.4 * piece_size); + + /* Under chin */ + glNormal3f(0.0, -0.853282, 0.521450); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(-1.0 * piece_size, 14.0 * piece_size, 1.3 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(1.2 * piece_size, 13.8 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 14.0 * piece_size, 1.3 * piece_size); + + glNormal3f(0.0, -0.983870, -0.178885); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(-1.0 * piece_size, 14.0 * piece_size, 1.3 * piece_size); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 14.0 * piece_size, 1.3 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size); + + /* Mane */ + + /* Right */ + glNormal3f(-0.788443, 0.043237, -0.613587); + glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size); + glVertex3f(-2.6 * piece_size, 5.8 * piece_size, -0.8 * piece_size); + glTexCoord2f(0.0f * piece_size, 14.8f / 17.8f * piece_size); + glVertex3f(-0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size); + glTexCoord2f(0.0f * piece_size, 15.0f / 17.8f * piece_size); + glVertex3f(0.0, 15.0 * piece_size, -3.6 * piece_size); + glTexCoord2f(0.0f * piece_size, 7.8f / 17.8f * piece_size); + glVertex3f(0.0, 7.8 * piece_size, -4.0 * piece_size); + + /* Left */ + glNormal3f(0.788443, 0.043237, -0.613587); + glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size); + glVertex3f(2.6 * piece_size, 5.8 * piece_size, -0.8 * piece_size); + glTexCoord2f(0.0f * piece_size, 7.8f / 17.8f * piece_size); + glVertex3f(0.0, 7.8 * piece_size, -4.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 15.0f / 17.8f * piece_size); + glVertex3f(0.0, 15.0 * piece_size, -3.6 * piece_size); + glTexCoord2f(0.0f * piece_size, 14.8f / 17.8f * piece_size); + glVertex3f(0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size); + + /* Chest */ + /* Front */ + glNormal3f(0.0, 0.584305, 0.811534); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(-0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 8.8f / 17.8f * piece_size); + glVertex3f(-2.0 * piece_size, 8.8 * piece_size, 4.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 8.8f / 17.8f * piece_size); + glVertex3f(2.0 * piece_size, 8.8 * piece_size, 4.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size); + + /* Bottom */ + glNormal3f(0.0, -0.422886, 0.906183); + glTexCoord2f(0.0f * piece_size, 8.8f / 17.8f * piece_size); + glVertex3f(-2.0 * piece_size, 8.8 * piece_size, 4.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size); + glVertex3f(-2.6 * piece_size, 5.8 * piece_size, 2.6 * piece_size); + glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size); + glVertex3f(2.6 * piece_size, 5.8 * piece_size, 2.6 * piece_size); + glTexCoord2f(0.0f * piece_size, 8.8f / 17.8f * piece_size); + glVertex3f(2.0 * piece_size, 8.8 * piece_size, 4.0 * piece_size); + + /* Right */ + glNormal3f(-0.969286, 0.231975, -0.081681); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(-0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size); + glVertex3f(-1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size); + glVertex3f(-2.6 * piece_size, 5.8 * piece_size, 2.6 * piece_size); + glTexCoord2f(0.0f * piece_size, 8.8f / 17.8f * piece_size); + glVertex3f(-2.0 * piece_size, 8.8 * piece_size, 4.0 * piece_size); + + glNormal3f(-0.982872, 0.184289, 0.0); + glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size); + glVertex3f(-1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size); + glVertex3f(-1.1422222222 * piece_size, 12.2 * piece_size, + -2.2222222222 * piece_size); + glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size); + glVertex3f(-2.6 * piece_size, 5.8 * piece_size, -0.8 * piece_size); + glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size); + glVertex3f(-2.6 * piece_size, 5.8 * piece_size, 2.6 * piece_size); + + glTexCoord2f(0.0f * piece_size, 14.8f / 17.8f * piece_size); + glVertex3f(-0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size); + glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size); + glVertex3f(-1.1422222222 * piece_size, 12.2 * piece_size, + -2.2222222222 * piece_size); + glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size); + glVertex3f(-1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(-0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size); + + /* Left */ + glNormal3f(0.969286, 0.231975, -0.081681); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 8.8f / 17.8f * piece_size); + glVertex3f(2.0 * piece_size, 8.8 * piece_size, 4.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size); + glVertex3f(2.6 * piece_size, 5.8 * piece_size, 2.6 * piece_size); + glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size); + glVertex3f(1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size); + + glNormal3f(0.982872, 0.184289, 0.0); + glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size); + glVertex3f(1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size); + glVertex3f(2.6 * piece_size, 5.8 * piece_size, 2.6 * piece_size); + glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size); + glVertex3f(2.6 * piece_size, 5.8 * piece_size, -0.8 * piece_size); + glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size); + glVertex3f(1.1422222222 * piece_size, 12.2 * piece_size, + -2.2222222222 * piece_size); + + glTexCoord2f(0.0f * piece_size, 14.8f / 17.8f * piece_size); + glVertex3f(0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size); + glVertex3f(1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size); + glVertex3f(1.1422222222 * piece_size, 12.2 * piece_size, + -2.2222222222 * piece_size); + glEnd(); + + /* Triangles */ + glBegin(GL_TRIANGLES); + + /* Under mane */ + glNormal3f(0.819890, -0.220459, -0.528373); + glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size); + glVertex3f(2.6 * piece_size, 5.8 * piece_size, -0.8 * piece_size); + glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size); + glVertex3f(1.44 * piece_size, 5.8 * piece_size, -2.6 * piece_size); + glTexCoord2f(0.0f * piece_size, 7.8f / 17.8f * piece_size); + glVertex3f(0.0, 7.8 * piece_size, -4.0 * piece_size); + + glNormal3f(0.0, -0.573462, -0.819232); + glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size); + glVertex3f(1.44 * piece_size, 5.8 * piece_size, -2.6 * piece_size); + glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size); + glVertex3f(-1.44 * piece_size, 5.8 * piece_size, -2.6 * piece_size); + glTexCoord2f(0.0f * piece_size, 7.8f / 17.8f * piece_size); + glVertex3f(0.0, 7.8 * piece_size, -4.0 * piece_size); + + glNormal3f(-0.819890, -0.220459, -0.528373); + glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size); + glVertex3f(-2.6 * piece_size, 5.8 * piece_size, -0.8 * piece_size); + glTexCoord2f(0.0f * piece_size, 7.8f / 17.8f * piece_size); + glVertex3f(0.0, 7.8 * piece_size, -4.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size); + glVertex3f(-1.44 * piece_size, 5.8 * piece_size, -2.6 * piece_size); + + /* Nose tip */ + glNormal3f(0.0, 0.0, 1.0); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(0.0, 14.0 * piece_size, 4.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size); + glVertex3f(0.8 * piece_size, 16.2 * piece_size, 4.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size); + glVertex3f(-0.8 * piece_size, 16.2 * piece_size, 4.0 * piece_size); + + /* Mouth left */ + glNormal3f(-0.752714, -0.273714, 0.598750); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(0.0, 14.0 * piece_size, 4.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size); + glVertex3f(-0.8 * piece_size, 16.2 * piece_size, 4.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size); + + glNormal3f(-0.957338, 0.031911, 0.287202); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size); + glVertex3f(-0.8 * piece_size, 16.2 * piece_size, 4.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 3.4 * piece_size); + + glNormal3f(-0.997785, 0.066519, 0.0); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 3.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 3.0 * piece_size); + + /* Mouth right */ + glNormal3f(0.752714, -0.273714, 0.598750); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(0.0, 14.0 * piece_size, 4.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size); + glVertex3f(0.8 * piece_size, 16.2 * piece_size, 4.0 * piece_size); + + glNormal3f(0.957338, 0.031911, 0.287202); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, 3.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size); + glVertex3f(0.8 * piece_size, 16.2 * piece_size, 4.0 * piece_size); + + glNormal3f(0.997785, 0.066519, 0.0); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, 3.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, 3.4 * piece_size); + + /* Under nose */ + glNormal3f(0.0, -0.992278, 0.124035); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(0.0, 14.0 * piece_size, 4.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size); + + /* Neck indents */ + glNormal3f(-0.854714, 0.484047, 0.187514); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(-0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size); + glVertex3f(-1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(-0.45 * piece_size, 13.8 * piece_size, -0.2 * piece_size); + + glNormal3f(-0.853747, 0.515805, -0.071146); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(-0.45 * piece_size, 13.8 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size); + glVertex3f(-1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(-0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size); + + glNormal3f(0.854714, 0.484047, 0.187514); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(0.45 * piece_size, 13.8 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size); + glVertex3f(1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size); + + glNormal3f(0.853747, 0.515805, -0.071146); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(0.45 * piece_size, 13.8 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size); + glVertex3f(1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size); + + /* Under chin */ + glNormal3f(0.252982, -0.948683, -0.189737); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.6f / 17.8f * piece_size); + glVertex3f(1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(0.45 * piece_size, 13.8 * piece_size, -0.2 * piece_size); + + glNormal3f(0.257603, -0.966012, 0.021467); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(0.45 * piece_size, 13.8 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.6f / 17.8f * piece_size); + glVertex3f(1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size); + + glNormal3f(0.126745, -0.887214, 0.443607); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.6f / 17.8f * piece_size); + glVertex3f(1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(1.2 * piece_size, 13.8 * piece_size, 0.2 * piece_size); + + glNormal3f(-0.252982, -0.948683, -0.189737); + glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size); + glVertex3f(-0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(-0.45 * piece_size, 13.8 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.6f / 17.8f * piece_size); + glVertex3f(-1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size); + + glNormal3f(-0.257603, -0.966012, 0.021467); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(-0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.6f / 17.8f * piece_size); + glVertex3f(-1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(-0.45 * piece_size, 13.8 * piece_size, -0.2 * piece_size); + + glNormal3f(-0.126745, -0.887214, 0.443607); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(-0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size); + glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 13.6f / 17.8f * piece_size); + glVertex3f(-1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size); + + /* Eyes */ + glNormal3f(0.0, 0.0, -1.0); + glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size); + glVertex3f(0.88 * piece_size, 16.2 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size); + glVertex3f(0.61333334 * piece_size, 16.4 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size); + glVertex3f(0.82666667 * piece_size, 16.6 * piece_size, 0.2 * piece_size); + + glNormal3f(0.000003, -0.668965, 0.743294); + glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 16.2 * piece_size, -0.74 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 16.6 * piece_size, -0.38 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size); + glVertex3f(0.8 * piece_size, 16.4 * piece_size, -0.56 * piece_size); + + glNormal3f(0.0, 0.0, -1.0); + glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size); + glVertex3f(-0.88 * piece_size, 16.2 * piece_size, 0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size); + glVertex3f(-0.82666667 * piece_size, 16.6 * piece_size, + 0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size); + glVertex3f(-0.61333334 * piece_size, 16.4 * piece_size, + 0.2 * piece_size); + + glNormal3f(-0.000003, -0.668965, 0.743294); + glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size); + glVertex3f(-1.0 * piece_size, 16.2 * piece_size, -0.74 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size); + glVertex3f(-0.8 * piece_size, 16.4 * piece_size, -0.56 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size); + glVertex3f(-1.0 * piece_size, 16.6 * piece_size, -0.38 * piece_size); + + /* Behind eyes */ + /* Right */ + glNormal3f(-0.997484, 0.070735, 0.004796); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(-0.4 * piece_size, 16.8 * piece_size, -1.1 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size); + glTexCoord2f(0.0f * piece_size, 15.8f / 17.8f * piece_size); + glVertex3f(-1.0 * piece_size, 15.8 * piece_size, -1.1 * piece_size); + + glNormal3f(-0.744437, 0.446663, -0.496292); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(-0.4 * piece_size, 16.8 * piece_size, -1.1 * piece_size); + glTexCoord2f(0.0f * piece_size, 15.8f / 17.8f * piece_size); + glVertex3f(-1.0 * piece_size, 15.8 * piece_size, -1.1 * piece_size); + + /* Left */ + glNormal3f(0.997484, 0.070735, 0.004796); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(0.4 * piece_size, 16.8 * piece_size, -1.1 * piece_size); + glTexCoord2f(0.0f * piece_size, 15.8f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 15.8 * piece_size, -1.1 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size); + + glNormal3f(0.744437, 0.446663, -0.496292); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 16.8 * piece_size, -0.2 * piece_size); + glTexCoord2f(0.0f * piece_size, 15.8f / 17.8f * piece_size); + glVertex3f(1.0 * piece_size, 15.8 * piece_size, -1.1 * piece_size); + glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size); + glVertex3f(0.4 * piece_size, 16.8 * piece_size, -1.1 * piece_size); + + glEnd(); +} + +void draw_bishop(void) +{ + double trace_r[] = + { 4.0, 4.0, 2.5, 2.5, 1.5, 1.2, 2.5, 1.7, 1.7, 2.2, 2.2, + 1.0, 0.8, 1.2, 0.8, 0.0, 0.0 + }; + double trace_h[] = + { 0.0, 2.0, 3.0, 4.0, 7.0, 9.4, 9.4, 11.0, 12.2, 13.2, + 14.8, 16.0, 17.0, 17.7, 18.4, 18.4, 0.0 + }; + + revolve_line(trace_r, trace_h, 0.0, ROT); +} + +void draw_queen(void) +{ + double trace_r[] = + { 4.8, 4.8, 3.4, 3.4, 1.8, 1.4, 2.9, 1.8, 1.8, 2.0, 2.7, + 2.4, 1.7, 0.95, 0.7, 0.9, 0.7, 0.0, 0.0 + }; + double trace_h[] = + { 0.0, 2.2, 4.0, 5.0, 8.0, 11.8, 11.8, 13.6, 15.2, 17.8, + 19.2, 20.0, 20.0, 20.8, 20.8, 21.4, 22.0, 22.0, 0.0 + }; + + revolve_line(trace_r, trace_h, 0.0, ROT); +} + +void draw_king(void) +{ + double trace_r[] = + { 5.0, 5.0, 3.5, 3.5, 2.0, 1.4, 3.0, 2.0, 2.0, 2.8, 1.6, + 1.6, 0.0, 0.0 + }; + double trace_h[] = + { 0.0, 2.0, 3.0, 4.6, 7.6, 12.6, 12.6, 14.6, 15.6, 19.1, + 19.7, 20.1, 20.1, 0.0 + }; + + revolve_line(trace_r, trace_h, 0.0, ROT); + + glBegin(GL_QUADS); + + /* Cross front */ + glNormal3f(0.0, 0.0, 1.0); + + glVertex3f(-0.3 * piece_size, 20.1 * piece_size, 0.351 * piece_size); + glVertex3f(0.3 * piece_size, 20.1 * piece_size, 0.35 * piece_size); + glVertex3f(0.3 * piece_size, 23.1 * piece_size, 0.35 * piece_size); + glVertex3f(-0.3 * piece_size, 23.1 * piece_size, 0.35 * piece_size); + + glVertex3f(-0.9 * piece_size, 21.1 * piece_size, 0.35 * piece_size); + glVertex3f(-0.3 * piece_size, 21.1 * piece_size, 0.35 * piece_size); + glVertex3f(-0.3 * piece_size, 22.1 * piece_size, 0.35 * piece_size); + glVertex3f(-0.9 * piece_size, 22.1 * piece_size, 0.35 * piece_size); + + glVertex3f(0.9 * piece_size, 21.1 * piece_size, 0.35 * piece_size); + glVertex3f(0.9 * piece_size, 22.1 * piece_size, 0.35 * piece_size); + glVertex3f(0.3 * piece_size, 22.1 * piece_size, 0.35 * piece_size); + glVertex3f(0.3 * piece_size, 21.1 * piece_size, 0.35 * piece_size); + + /* Cross back */ + glNormal3f(0.0, 0.0, -1.0); + + glVertex3f(0.3 * piece_size, 20.1 * piece_size, -0.35 * piece_size); + glVertex3f(-0.3 * piece_size, 20.1 * piece_size, -0.35 * piece_size); + glVertex3f(-0.3 * piece_size, 23.1 * piece_size, -0.35 * piece_size); + glVertex3f(0.3 * piece_size, 23.1 * piece_size, -0.35 * piece_size); + + glVertex3f(-0.3 * piece_size, 21.1 * piece_size, -0.35 * piece_size); + glVertex3f(-0.9 * piece_size, 21.1 * piece_size, -0.35 * piece_size); + glVertex3f(-0.9 * piece_size, 22.1 * piece_size, -0.35 * piece_size); + glVertex3f(-0.3 * piece_size, 22.1 * piece_size, -0.35 * piece_size); + + glVertex3f(0.3 * piece_size, 21.1 * piece_size, -0.35 * piece_size); + glVertex3f(0.3 * piece_size, 22.1 * piece_size, -0.35 * piece_size); + glVertex3f(0.9 * piece_size, 22.1 * piece_size, -0.35 * piece_size); + glVertex3f(0.9 * piece_size, 21.1 * piece_size, -0.35 * piece_size); + + /* Cross left */ + glNormal3f(-1.0, 0.0, 0.0); + + glVertex3f(-0.9 * piece_size, 21.1 * piece_size, 0.35 * piece_size); + glVertex3f(-0.9 * piece_size, 22.1 * piece_size, 0.35 * piece_size); + glVertex3f(-0.9 * piece_size, 22.1 * piece_size, -0.35 * piece_size); + glVertex3f(-0.9 * piece_size, 21.1 * piece_size, -0.35 * piece_size); + + glVertex3f(-0.3 * piece_size, 20.1 * piece_size, 0.35 * piece_size); + glVertex3f(-0.3 * piece_size, 21.1 * piece_size, 0.35 * piece_size); + glVertex3f(-0.3 * piece_size, 21.1 * piece_size, -0.35 * piece_size); + glVertex3f(-0.3 * piece_size, 20.1 * piece_size, -0.35 * piece_size); + + glVertex3f(-0.3 * piece_size, 22.1 * piece_size, 0.3 * piece_size); + glVertex3f(-0.3 * piece_size, 23.1 * piece_size, 0.3 * piece_size); + glVertex3f(-0.3 * piece_size, 23.1 * piece_size, -0.3 * piece_size); + glVertex3f(-0.3 * piece_size, 22.1 * piece_size, -0.3 * piece_size); + + /* Cross right */ + glNormal3f(1.0, 0.0, 0.0); + + glVertex3f(0.9 * piece_size, 21.1 * piece_size, -0.35 * piece_size); + glVertex3f(0.9 * piece_size, 22.1 * piece_size, -0.35 * piece_size); + glVertex3f(0.9 * piece_size, 22.1 * piece_size, 0.35 * piece_size); + glVertex3f(0.9 * piece_size, 21.1 * piece_size, 0.35 * piece_size); + + glVertex3f(0.3 * piece_size, 20.1 * piece_size, -0.35 * piece_size); + glVertex3f(0.3 * piece_size, 21.1 * piece_size, -0.35 * piece_size); + glVertex3f(0.3 * piece_size, 21.1 * piece_size, 0.35 * piece_size); + glVertex3f(0.3 * piece_size, 20.1 * piece_size, 0.35 * piece_size); + + glVertex3f(0.3 * piece_size, 22.1 * piece_size, -0.35 * piece_size); + glVertex3f(0.3 * piece_size, 23.1 * piece_size, -0.35 * piece_size); + glVertex3f(0.3 * piece_size, 23.1 * piece_size, 0.35 * piece_size); + glVertex3f(0.3 * piece_size, 22.1 * piece_size, 0.35 * piece_size); + + /* Cross top */ + glNormal3f(0.0, 1.0, 0.0); + + glVertex3f(-0.9 * piece_size, 22.1 * piece_size, -0.35 * piece_size); + glVertex3f(-0.9 * piece_size, 22.1 * piece_size, 0.35 * piece_size); + glVertex3f(-0.3 * piece_size, 22.1 * piece_size, 0.35 * piece_size); + glVertex3f(-0.3 * piece_size, 22.1 * piece_size, -0.35 * piece_size); + + glVertex3f(0.3 * piece_size, 22.1 * piece_size, -0.35 * piece_size); + glVertex3f(0.3 * piece_size, 22.1 * piece_size, 0.35 * piece_size); + glVertex3f(0.9 * piece_size, 22.1 * piece_size, 0.35 * piece_size); + glVertex3f(0.9 * piece_size, 22.1 * piece_size, -0.35 * piece_size); + + glVertex3f(-0.3 * piece_size, 23.1 * piece_size, -0.35 * piece_size); + glVertex3f(-0.3 * piece_size, 23.1 * piece_size, 0.35 * piece_size); + glVertex3f(0.3 * piece_size, 23.1 * piece_size, 0.35 * piece_size); + glVertex3f(0.3 * piece_size, 23.1 * piece_size, -0.35 * piece_size); + + glEnd(); +} diff --git a/hacks/glx/chessmodels.h b/hacks/glx/chessmodels.h new file mode 100644 index 00000000..9ef8c9bb --- /dev/null +++ b/hacks/glx/chessmodels.h @@ -0,0 +1,31 @@ +/* + * glChess - A 3D chess interface + * + * Copyright (C) 2002 Robert Ancell + * Michael Duelli + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +void revolve_line(double *, double *, double, int); +void gen_model_lists(void); +void draw_pawn(void); +void draw_rook(void); +void draw_rook_old(void); +void draw_knight(void); +void draw_bishop(void); +void draw_queen(void); +void draw_king(void); + diff --git a/hacks/glx/cubenetic.c b/hacks/glx/cubenetic.c index db2f6ac3..7fa06e1b 100644 --- a/hacks/glx/cubenetic.c +++ b/hacks/glx/cubenetic.c @@ -441,7 +441,7 @@ init_cube (ModeInfo *mi) spinz ? spin_speed : 0, 1.0, do_wander ? wander_speed : 0, - True); + (spinx && spiny && spinz)); cc->trackball = gltrackball_init (); } diff --git a/hacks/glx/endgame.c b/hacks/glx/endgame.c new file mode 100644 index 00000000..96db2761 --- /dev/null +++ b/hacks/glx/endgame.c @@ -0,0 +1,461 @@ +/* + * endgame.c + * plays through a chess game ending. enjoy. + * + * version 1.0 - June 6, 2002 + * + * Copyright (C) 2002 Blair Tennessy (tennessb@unbc.ca) + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + */ + +#include + +#ifdef STANDALONE +# define PROGCLASS "Endgame" +# define HACK_INIT init_chess +# define HACK_DRAW draw_chess +# define HACK_RESHAPE reshape_chess +# define HACK_HANDLE_EVENT chess_handle_event +# define EVENT_MASK PointerMotionMask +# define chess_opts xlockmore_opts + +#define DEFAULTS "*delay: 20000 \n" \ + "*showFPS: False \n" \ + "*wireframe: False \n" \ + +# include "xlockmore.h" + +#else +# include "xlock.h" +#endif + +#ifdef USE_GL + +#include +#include "gltrackball.h" +#include "chessmodels.h" + +#undef countof +#define countof(x) (sizeof((x))/sizeof((*x))) + +static XrmOptionDescRec opts[] = { + {"+rotate", ".chess.rotate", XrmoptionNoArg, (caddr_t) "false" }, + {"-rotate", ".chess.rotate", XrmoptionNoArg, (caddr_t) "true" }, +}; + +int rotate, spidey, spideydark; + +static argtype vars[] = { + {(caddr_t *) &rotate, "rotate", "Rotate", "True", t_Bool}, +}; + +ModeSpecOpt chess_opts = {countof(opts), opts, countof(vars), vars, NULL}; + +#ifdef USE_MODULES +ModStruct chess_description = +{"chess", "init_chess", "draw_chess", "release_chess", + "draw_chess", "init_chess", NULL, &chess_opts, + 1000, 1, 2, 1, 4, 1.0, "", + "Chess", 0, NULL}; + +#endif + +typedef struct { + GLXContext *glx_context; + Window window; + trackball_state *trackball; + Bool button_down_p; +} Chesscreen; + +static Chesscreen *qs = NULL; + +#include +#include +#include +#include + +#ifndef M_PI +#define M_PI 3.14159265 +#endif + +/* ugggggggly */ +#define NONE 0 +#define KING 1 +#define QUEEN 2 +#define BISHOP 3 +#define KNIGHT 4 +#define ROOK 5 +#define PAWN 6 +#define BKING 8 +#define BQUEEN 9 +#define BBISHOP 10 +#define BKNIGHT 11 +#define BROOK 12 +#define BPAWN 13 + +#define BOARDSIZE 8 +#define PIECES 7 + +/* definition of white/black colors */ +GLfloat colors[2][3] = { {1.0, 0.5, 0.0}, + {0.5, 0.5, 0.5} }; + +/* int board[8][8] = */ +/* { {ROOK, KNIGHT, BISHOP, QUEEN, KING, BISHOP, KNIGHT, ROOK}, */ +/* {PAWN, PAWN, PAWN, PAWN, PAWN, PAWN, PAWN, PAWN}, */ +/* {NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE}, */ +/* {NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE}, */ +/* {NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE}, */ +/* {NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE}, */ +/* {BPAWN, BPAWN, BPAWN, BPAWN, BPAWN, BPAWN, BPAWN, BPAWN}, */ +/* {BROOK, BKNIGHT, BBISHOP, BQUEEN, BKING, BBISHOP, BKNIGHT, BROOK}}; */ + +int board[8][8]; + +void buildBoard(void) { + board[0][5] = BKING; + board[1][4] = BPAWN; + board[1][2] = BPAWN; + board[1][0] = BPAWN; + board[2][2] = BPAWN; + board[2][4] = BPAWN; + board[2][7] = KNIGHT; + board[3][0] = PAWN; + board[3][2] = ROOK; + board[4][0] = PAWN; + board[4][4] = KING; + board[4][5] = PAWN; + board[6][0] = BPAWN; + board[6][7] = PAWN; + board[7][0] = BBISHOP; +} + +#define MOVES 24 + +int moves[MOVES][4] = + { {3, 2, 6, 2}, + {7, 0, 6, 1}, + {6, 2, 6, 6}, + {0, 5, 0, 4}, + {6, 6, 0, 6}, + {0, 4, 1, 3}, + {2, 7, 1, 5}, + {2, 2, 3, 2}, + {0, 6, 0, 3}, + {1, 3, 2, 2}, + {0, 3, 6, 3}, + {3, 2, 4, 2}, /* pawn to bishop 5 */ + {1, 5, 0, 3}, /* check */ + {2, 2, 3, 2}, + {0, 3, 2, 4}, /* takes pawn */ + {3, 2, 2, 2}, + {2, 4, 0, 3}, + {2, 2, 3, 2}, + {6, 3, 6, 1}, /* rook takes bishop */ + {6, 0, 7, 0}, /* hack this in! */ + {6, 1, 3, 1}, + {3, 2, 2, 3}, + {3, 1, 3, 3}, + {0, 0, 2, 3}, + }; + +/* yay its c */ +int mpiece = 0, tpiece, steps = 0; +double mcount = 0.0; +double from[2], to[2]; +double dx, dz; +int moving = 0, take = 0, mc = 0, count = 0; + +Bool chess_handle_event (ModeInfo *mi, XEvent *event) { + Chesscreen *c = &qs[MI_SCREEN(mi)]; + + if(event->xany.type == ButtonPress && event->xbutton.button & Button1) { + c->button_down_p = True; + gltrackball_start (c->trackball, + event->xbutton.x, event->xbutton.y, + MI_WIDTH (mi), MI_HEIGHT (mi)); + return True; + } + else if(event->xany.type == ButtonRelease + && event->xbutton.button & Button1) { + c->button_down_p = False; + return True; + } + else if(event->xany.type == MotionNotify && c->button_down_p) { + gltrackball_track (c->trackball, + event->xmotion.x, event->xmotion.y, + MI_WIDTH (mi), MI_HEIGHT (mi)); + return True; + } + + return False; +} + +/* clear board */ +void blank(void) { + int i, j; + + for(i = 0; i < BOARDSIZE; ++i) + for(j = 0; j < BOARDSIZE; ++j) + board[i][j] = NONE; +} + +/* configure lighting */ +void setup_lights(void) { + GLfloat position[] = { 0.0, 8.0, 0.0, 1.0 }; + + glEnable(GL_LIGHTING); + glLightfv(GL_LIGHT0, GL_POSITION, position); + glEnable(GL_LIGHT0); +} + +/* draw pieces */ +void drawPieces(void) { + int i, j; + + for(i = 0; i < BOARDSIZE; ++i) { + for(j = 0; j < BOARDSIZE; ++j) { + if(board[i][j]) { + int c = board[i][j]/PIECES; + glColor3fv(colors[c]); + glCallList(board[i][j]%7); + } + + glTranslatef(1.0, 0.0, 0.0); + } + + glTranslatef(-1.0*BOARDSIZE, 0.0, 1.0); + } + + glTranslatef(0.0, 0.0, -1.0*BOARDSIZE); +} + +void drawMovingPiece(int wire) { + glTranslatef(from[1], 0.0, from[0]); + glColor3fv(colors[mpiece/7]); + + /* assume a queening. should be more general */ + if((mpiece == PAWN && fabs(to[0]) < 0.01) || + (mpiece == BPAWN && fabs(to[0]-7.0) < 0.01)) { + if(!wire) + glEnable(GL_BLEND); + + glColor4f(colors[mpiece/7][0], colors[mpiece/7][1], colors[mpiece/7][2], + (fabs(50.0-steps))/50.0); + + glCallList(steps < 50 ? PAWN : QUEEN); + + /* what a kludge. yay for side effects */ + if(steps == 99) + mpiece = mpiece == PAWN ? QUEEN : BQUEEN; + + if(!wire) + glDisable(GL_BLEND); + } + else + glCallList(mpiece % 7); +} + +void drawTakePiece(int wire) { + if(!wire) + glEnable(GL_BLEND); + + glColor4f(colors[tpiece/7][0], colors[tpiece/7][1], colors[tpiece/7][2], + (100-1.6*steps)/100.0); + + glTranslatef(to[1] - from[1], 0.0, to[0] - from[0]); + glScalef(1.0, 1 - steps/50.0 > 0.01 ? 1 - steps/50.0 : 0.01, 1.0); + glCallList(tpiece % 7); + + if(!wire) + glDisable(GL_BLEND); +} + +/* draw board */ +void drawBoard(void) { + int i, j; + + for(i = 0; i < BOARDSIZE; ++i) + for(j = 0; j < BOARDSIZE; ++j) { + glColor3fv(colors[(i+j)%2]); + glNormal3f(0.0, 1.0, 0.0); + + glBegin(GL_QUADS); + + glVertex3f(i - 0.5, 0.0, j + 0.5); + glVertex3f(i + 0.5, 0.0, j + 0.5); + glVertex3f(i + 0.5, 0.0, j - 0.5); + glVertex3f(i - 0.5, 0.0, j - 0.5); + + /* draw the bottom, too */ + glNormal3f(0.0, -1.0, 0.0); + + glVertex3f(i - 0.5, 0.0, j - 0.5); + glVertex3f(i + 0.5, 0.0, j - 0.5); + glVertex3f(i + 0.5, 0.0, j + 0.5); + glVertex3f(i - 0.5, 0.0, j + 0.5); + + glEnd(); + } +} + +#define SQ 0.5 + +double theta = 0.0; + +void display(Chesscreen *c, int wire) { + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + + glTranslatef(0.0, -3.0+fabs(sin(theta)), -1.3*BOARDSIZE); + gltrackball_rotate (c->trackball); + glRotatef(theta*100, 0.0, 1.0, 0.0); + glTranslatef(-0.5*(BOARDSIZE-1), 0.0, -0.5*(BOARDSIZE-1)); + + if(!wire) { + glEnable(GL_LIGHTING); + glEnable(GL_COLOR_MATERIAL); + } + + drawBoard(); + glTranslatef(0.0, .02, 0.0); + drawPieces(); + if(moving) drawMovingPiece(wire); + if(take) drawTakePiece(wire); + + glDisable(GL_COLOR_MATERIAL); + glDisable(GL_LIGHTING); + + theta += .002; +} + +void reshape_chess(ModeInfo *mi, int width, int height) { + GLfloat h = (GLfloat) height / (GLfloat) width; + glViewport(0,0, width, height); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(45, 1/h, 2.0, 30.0); + glMatrixMode(GL_MODELVIEW); +} + +void init_chess(ModeInfo *mi) { + GLfloat mat_shininess[] = { 90.0 }; + GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 }; + + int screen = MI_SCREEN(mi); + int wire = MI_IS_WIREFRAME(mi); + Chesscreen *c; + + if(!qs && + !(qs = (Chesscreen *) calloc(MI_NUM_SCREENS(mi), sizeof(Chesscreen)))) + return; + + c = &qs[screen]; + c->window = MI_WINDOW(mi); + c->trackball = gltrackball_init (); + + if((c->glx_context = init_GL(mi))) + reshape_chess(mi, MI_WIDTH(mi), MI_HEIGHT(mi)); + else + MI_CLEARWINDOW(mi); + + glClearColor(0.0, 0.0, 0.0, 0.0); + + glEnable(GL_CULL_FACE); + glCullFace(GL_BACK); + glLineWidth(1.0); + glDepthFunc(GL_LEQUAL); + + setup_lights(); + + gen_model_lists(); + + if (!wire) { + glColorMaterial(GL_FRONT, GL_DIFFUSE); + + glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); + glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess); + glShadeModel(GL_SMOOTH); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_DEPTH_TEST); + } + else + glPolygonMode(GL_FRONT, GL_LINE); + + buildBoard(); +} + +void draw_chess(ModeInfo *mi) { + Chesscreen *c = &qs[MI_SCREEN(mi)]; + Window w = MI_WINDOW(mi); + Display *disp = MI_DISPLAY(mi); + + if(!c->glx_context) + return; + + glXMakeCurrent(disp, w, *(c->glx_context)); + + /* moving code */ + if(moving) { + ++steps; + from[0] += dz; + from[1] += dx; + } + + if(steps == 100) { + moving = count = steps = take = 0; + board[moves[mc][2]][moves[mc][3]] = mpiece; + ++mc; + + if(mc == MOVES) { + blank(); + buildBoard(); + mc = 0; + } + } + + if(count++ == 100) { + moving = 1; + mpiece = board[moves[mc][0]][moves[mc][1]]; + board[moves[mc][0]][moves[mc][1]] = NONE; + + if((tpiece = board[moves[mc][2]][moves[mc][3]]) != NONE) { + board[moves[mc][2]][moves[mc][3]] = NONE; + take = 1; + } + + mcount = 0.0; + from[0] = moves[mc][0]; + from[1] = moves[mc][1]; + to[0] = moves[mc][2]; + to[1] = moves[mc][3]; + + dz = (to[0] - from[0]) / 100; + dx = (to[1] - from[1]) / 100; + steps = 0; + } + + display(c, MI_IS_WIREFRAME(mi)); + + if(mi->fps_p) do_fps(mi); + glFinish(); + glXSwapBuffers(disp, w); +} + +void release_chess(ModeInfo *mi) { + if(qs) + free((void *) qs); + + FreeAllGL(MI); +} + +#endif diff --git a/hacks/glx/endgame.man b/hacks/glx/endgame.man new file mode 100644 index 00000000..ab00c95f --- /dev/null +++ b/hacks/glx/endgame.man @@ -0,0 +1,56 @@ +.TH XScreenSaver 1 "May 2002" +.SH NAME +endgame \- endgame chess screensaver +.SH SYNOPSIS +.B endgame +[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install] +[\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP] [\-fps] +.SH DESCRIPTION +endgame replays a brilliant chess ending +.SH OPTIONS +.I chess +accepts the following options: +.TP 8 +.B \-window +Draw on a newly-created window. This is the default. +.TP 8 +.B \-root +Draw on the root window. +.TP 8 +.B \-install +Install a private colormap for the window. +.TP 8 +.B \-visual \fIvisual\fP\fP +Specify which visual to use. Legal values are the name of a visual class, +or the id number (decimal or hex) of a specific visual. +.B \-fps +Display a running tally of how many frames per second are being rendered. +In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of +your GL performance. +.SH ENVIRONMENT +.PP +.TP 8 +.B DISPLAY +to get the default host and display number. +.TP 8 +.B XENVIRONMENT +to get the name of a resource file that overrides the global resources +stored in the RESOURCE_MANAGER property. +.SH BUGS +It's not unknown for this and other OpenGL hacks to fail under hardware accelaration (UtahGLX) and take the X server with them. Texture images must be 16x16 or 32x32 or 64x64 etc. +.SH SEE ALSO +.BR X (1), +.BR xscreensaver (1) +.BR xscreensaver\-demo (1), +.BR xscreensaver\-getimage (1) +.SH COPYRIGHT +Copyright \(co 2002 by Blair Tennessy. Permission to use, copy, modify, +distribute, and sell this software and its documentation for any purpose is +hereby granted without fee, provided that the above copyright notice appear +in all copies and that both that copyright notice and this permission notice +appear in supporting documentation. No representations are made about the +suitability of this software for any purpose. It is provided "as is" without +express or implied warranty. +.SH AUTHOR +Blair Tennessy , 20-April-2002. + diff --git a/hacks/glx/extrusion-helix2.c b/hacks/glx/extrusion-helix2.c index 9220133e..605badcd 100644 --- a/hacks/glx/extrusion-helix2.c +++ b/hacks/glx/extrusion-helix2.c @@ -19,7 +19,7 @@ #endif #include -#include +/*#include */ #ifdef HAVE_GLE3 #include #else diff --git a/hacks/glx/extrusion-helix3.c b/hacks/glx/extrusion-helix3.c index 003e4bd6..34ae2960 100644 --- a/hacks/glx/extrusion-helix3.c +++ b/hacks/glx/extrusion-helix3.c @@ -19,7 +19,7 @@ #endif #include -#include +/*#include */ #ifdef HAVE_GLE3 #include #else diff --git a/hacks/glx/extrusion-helix4.c b/hacks/glx/extrusion-helix4.c index d6a786a7..c74fc59c 100644 --- a/hacks/glx/extrusion-helix4.c +++ b/hacks/glx/extrusion-helix4.c @@ -19,7 +19,7 @@ #endif #include -#include +/*#include */ #ifdef HAVE_GLE3 #include #else diff --git a/hacks/glx/extrusion-joinoffset.c b/hacks/glx/extrusion-joinoffset.c index 12406b4f..5b0b332b 100644 --- a/hacks/glx/extrusion-joinoffset.c +++ b/hacks/glx/extrusion-joinoffset.c @@ -8,7 +8,7 @@ #endif #include -#include +/*#include */ #ifdef HAVE_GLE3 #include #else diff --git a/hacks/glx/extrusion-screw.c b/hacks/glx/extrusion-screw.c index 3d84a5ce..cfae2968 100644 --- a/hacks/glx/extrusion-screw.c +++ b/hacks/glx/extrusion-screw.c @@ -19,7 +19,7 @@ #include #include #include -#include +/*#include */ #ifdef HAVE_GLE3 #include #else diff --git a/hacks/glx/extrusion-taper.c b/hacks/glx/extrusion-taper.c index 3b44c287..8aa07ab0 100644 --- a/hacks/glx/extrusion-taper.c +++ b/hacks/glx/extrusion-taper.c @@ -19,7 +19,7 @@ #include #include #include -#include +/*#include */ #ifdef HAVE_GLE3 #include #else diff --git a/hacks/glx/extrusion-twistoid.c b/hacks/glx/extrusion-twistoid.c index 1dce69db..f5e4965e 100644 --- a/hacks/glx/extrusion-twistoid.c +++ b/hacks/glx/extrusion-twistoid.c @@ -19,7 +19,7 @@ #include #include #include -#include +/*#include */ #ifdef HAVE_GLE3 #include #else diff --git a/hacks/glx/gltext.c b/hacks/glx/gltext.c index 2ccae161..5b80d76c 100644 --- a/hacks/glx/gltext.c +++ b/hacks/glx/gltext.c @@ -92,7 +92,7 @@ static Bool do_wander; static XrmOptionDescRec opts[] = { { "-text", ".text", XrmoptionSepArg, 0 }, { "-spin", ".spin", XrmoptionSepArg, 0 }, - { "+spin", ".spin", XrmoptionNoArg, "False" }, + { "+spin", ".spin", XrmoptionNoArg, "" }, { "-wander", ".wander", XrmoptionNoArg, "True" }, { "+wander", ".wander", XrmoptionNoArg, "False" } }; @@ -269,16 +269,33 @@ init_text (ModeInfo *mi) } { + Bool spinx=False, spiny=False, spinz=False; double spin_speed = 1.0; double wander_speed = 0.05; double spin_accel = 1.0; - tp->rot = make_rotator (do_spin ? spin_speed : 0, - do_spin ? spin_speed : 0, - do_spin ? spin_speed : 0, + char *s = do_spin; + while (*s) + { + if (*s == 'x' || *s == 'X') spinx = True; + else if (*s == 'y' || *s == 'Y') spiny = True; + else if (*s == 'z' || *s == 'Z') spinz = True; + else + { + fprintf (stderr, + "%s: spin must contain only the characters X, Y, or Z (not \"%s\")\n", + progname, do_spin); + exit (1); + } + s++; + } + + tp->rot = make_rotator (spinx ? spin_speed : 0, + spiny ? spin_speed : 0, + spinz ? spin_speed : 0, spin_accel, do_wander ? wander_speed : 0, - True); + False); tp->trackball = gltrackball_init (); } diff --git a/hacks/glx/lavalite.c b/hacks/glx/lavalite.c index 631c2e22..8c653287 100644 --- a/hacks/glx/lavalite.c +++ b/hacks/glx/lavalite.c @@ -244,8 +244,6 @@ typedef struct { GLuint bottle_list; GLuint ball_list; - Bool spin_x, spin_y, spin_z; /* spin of the scene overall */ - int bottle_poly_count; /* polygons in the bottle only */ } lavalite_configuration; @@ -1334,24 +1332,7 @@ init_lavalite (ModeInfo *mi) reshape_lavalite (mi, MI_WIDTH(mi), MI_HEIGHT(mi)); { - char *s = do_spin; - while (*s) - { - if (*s == ' ' || *s == '\t') ; - else if (*s == 'x' || *s == 'X') bp->spin_x = 1; - else if (*s == 'y' || *s == 'Y') bp->spin_y = 1; - else if (*s == 'z' || *s == 'Z') bp->spin_z = 1; - else - { - fprintf (stderr, - "%s: spin must contain only the characters X, Y, or Z (not \"%s\")\n", - progname, do_spin); - exit (1); - } - s++; - } - - s = do_style; + char *s = do_style; if (!s || !*s || !strcasecmp (s, "classic")) bp->style = CLASSIC; else if (!strcasecmp (s, "giant")) bp->style = GIANT; else if (!strcasecmp (s, "cone")) bp->style = CONE; diff --git a/hacks/glx/molecule.c b/hacks/glx/molecule.c index 75010b8e..06513953 100644 --- a/hacks/glx/molecule.c +++ b/hacks/glx/molecule.c @@ -1355,7 +1355,7 @@ init_molecule (ModeInfo *mi) spinz ? spin_speed : 0, 1.0, do_wander ? wander_speed : 0, - True); + (spinx && spiny && spinz)); mc->trackball = gltrackball_init (); } diff --git a/hacks/glx/spheremonics.c b/hacks/glx/spheremonics.c index f4ffa011..a4c06902 100644 --- a/hacks/glx/spheremonics.c +++ b/hacks/glx/spheremonics.c @@ -851,11 +851,11 @@ init_spheremonics (ModeInfo *mi) } cc->rot = make_rotator (spinx ? spin_speed : 0, - spiny ? spin_speed : 0, spinz ? spin_speed : 0, + spiny ? spin_speed : 0, 1.0, do_wander ? wander_speed : 0, - True); + (spinx && spiny && spinz)); cc->trackball = gltrackball_init (); } diff --git a/po/Makefile.in.in b/po/Makefile.in.in index d01dcdd4..001c3d02 100644 --- a/po/Makefile.in.in +++ b/po/Makefile.in.in @@ -282,6 +282,7 @@ generate_potfiles_in: echo "# Auto-generated: `date`" ; \ ( grep -l '_("' driver/*.[ch] ; \ ls driver/*.glade \ + driver/*.glade2 \ driver/*.desktop.in \ hacks/config/*.xml ) | sort \ ) > $$tmp && \ diff --git a/po/POTFILES.in b/po/POTFILES.in index 256102d7..30542720 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,10 +1,11 @@ -# Auto-generated: Fri May 31 20:43:52 PDT 2002 +# Auto-generated: Tue Jun 11 02:09:09 PDT 2002 driver/demo-Gtk-conf.c driver/demo-Gtk-support.c driver/demo-Gtk-widgets.c driver/demo-Gtk.c driver/screensaver-properties.desktop.in driver/xscreensaver-demo.glade +driver/xscreensaver-demo.glade2 hacks/config/anemone.xml hacks/config/ant.xml hacks/config/apollonian.xml @@ -38,6 +39,7 @@ hacks/config/discrete.xml hacks/config/distort.xml hacks/config/drift.xml hacks/config/electricsheep.xml +hacks/config/endgame.xml hacks/config/engine.xml hacks/config/epicycle.xml hacks/config/euler2d.xml diff --git a/po/es.po b/po/es.po index cbcee53d..6b3522f4 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: control-center 1.2.1\n" -"POT-Creation-Date: 2002-02-13 00:37+0100\n" +"POT-Creation-Date: 2002-05-10 19:02-0700\n" "PO-Revision-Date: 2001-09-19 23:30+0200\n" "Last-Translator: Lucas Di Pentima \n" "Language-Team: Spanish \n" @@ -15,17 +15,27 @@ msgstr "" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" -#: driver/demo-Gtk-conf.c:697 +#: driver/demo-Gtk-conf.c:729 #, fuzzy msgid "Browse..." msgstr " Buscar... " -#: driver/demo-Gtk-conf.c:989 +#: driver/demo-Gtk-conf.c:1021 #, fuzzy msgid "Select file." msgstr "Seleccionar archivo de sonido" -#: driver/demo-Gtk-widgets.c:155 +#: driver/demo-Gtk-support.c:121 +#, c-format +msgid "Couldn't find pixmap file: %s" +msgstr "" + +#: driver/demo-Gtk-support.c:130 +#, c-format +msgid "Error loading pixmap file: %s" +msgstr "" + +#: driver/demo-Gtk-widgets.c:155 driver/xscreensaver-demo.glade.h:89 #, fuzzy msgid "XScreenSaver" msgstr "Salvapantalla" @@ -35,44 +45,44 @@ msgstr "Salvapantalla" msgid "_File" msgstr "Mosaico" -#: driver/demo-Gtk-widgets.c:196 +#: driver/demo-Gtk-widgets.c:196 driver/xscreensaver-demo.glade.h:93 msgid "_Blank Screen Now" msgstr "" -#: driver/demo-Gtk-widgets.c:205 +#: driver/demo-Gtk-widgets.c:205 driver/xscreensaver-demo.glade.h:2 msgid "" "Activate the XScreenSaver daemon now (locking the screen if so configured.)" msgstr "" -#: driver/demo-Gtk-widgets.c:209 +#: driver/demo-Gtk-widgets.c:209 driver/xscreensaver-demo.glade.h:97 msgid "_Lock Screen Now" msgstr "" -#: driver/demo-Gtk-widgets.c:218 +#: driver/demo-Gtk-widgets.c:218 driver/xscreensaver-demo.glade.h:51 msgid "Lock the screen now (even if \"Lock Screen\" is unchecked.)" msgstr "" -#: driver/demo-Gtk-widgets.c:222 +#: driver/demo-Gtk-widgets.c:222 driver/xscreensaver-demo.glade.h:96 msgid "_Kill Daemon" msgstr "" -#: driver/demo-Gtk-widgets.c:231 +#: driver/demo-Gtk-widgets.c:231 driver/xscreensaver-demo.glade.h:71 msgid "Tell the running XScreenSaver daemon to exit." msgstr "" -#: driver/demo-Gtk-widgets.c:235 +#: driver/demo-Gtk-widgets.c:235 driver/xscreensaver-demo.glade.h:98 msgid "_Restart Daemon" msgstr "" -#: driver/demo-Gtk-widgets.c:244 +#: driver/demo-Gtk-widgets.c:244 driver/xscreensaver-demo.glade.h:49 msgid "Kill and re-launch the XScreenSaver daemon." msgstr "" -#: driver/demo-Gtk-widgets.c:257 +#: driver/demo-Gtk-widgets.c:257 driver/xscreensaver-demo.glade.h:95 msgid "_Exit" msgstr "" -#: driver/demo-Gtk-widgets.c:266 +#: driver/demo-Gtk-widgets.c:266 driver/xscreensaver-demo.glade.h:33 msgid "" "Exit the xscreensaver-demo program (but leave the XScreenSaver daemon " "running in the background.)" @@ -83,344 +93,625 @@ msgstr "" msgid "_Help" msgstr "Hélice" -#: driver/demo-Gtk-widgets.c:290 +#: driver/demo-Gtk-widgets.c:290 driver/xscreensaver-demo.glade.h:92 #, fuzzy msgid "_About..." msgstr "Acerca" -#: driver/demo-Gtk-widgets.c:299 +#: driver/demo-Gtk-widgets.c:299 driver/xscreensaver-demo.glade.h:30 #, fuzzy msgid "Display version information." msgstr "Cambiar a la visualización en monocromo." -#: driver/demo-Gtk-widgets.c:303 +#: driver/demo-Gtk-widgets.c:303 driver/xscreensaver-demo.glade.h:94 msgid "_Documentation..." msgstr "" -#: driver/demo-Gtk-widgets.c:312 +#: driver/demo-Gtk-widgets.c:312 driver/xscreensaver-demo.glade.h:38 msgid "Go to the documentation on the XScreenSaver web page." msgstr "" -#: driver/demo-Gtk-widgets.c:342 +#: driver/demo-Gtk-widgets.c:342 driver/xscreensaver-demo.glade.h:18 #, fuzzy msgid "Cycle After" msgstr "Ciclo" -#: driver/demo-Gtk-widgets.c:366 +#: driver/demo-Gtk-widgets.c:364 driver/xscreensaver-demo.glade.h:78 +msgid "Whether a password should be required to un-blank the screen." +msgstr "" + +#: driver/demo-Gtk-widgets.c:366 driver/xscreensaver-demo.glade.h:50 #, fuzzy msgid "Lock Screen After" msgstr "Ningún salvapantalla" -#: driver/demo-Gtk-widgets.c:374 +#: driver/demo-Gtk-widgets.c:374 driver/xscreensaver-demo.glade.h:8 #, fuzzy msgid "Blank After" msgstr "Activar después de " #: driver/demo-Gtk-widgets.c:397 driver/demo-Gtk-widgets.c:447 #: driver/demo-Gtk-widgets.c:461 driver/demo-Gtk-widgets.c:1010 +#: driver/xscreensaver-demo.glade.h:43 msgid "How long before the monitor goes completely black." msgstr "" #: driver/demo-Gtk-widgets.c:401 driver/demo-Gtk-widgets.c:413 #: driver/demo-Gtk-widgets.c:425 driver/demo-Gtk-widgets.c:1014 #: driver/demo-Gtk-widgets.c:1026 driver/demo-Gtk-widgets.c:1038 +#: driver/xscreensaver-demo.glade.h:99 #, fuzzy msgid "minutes" msgstr " minutos." -#: driver/demo-Gtk-widgets.c:476 +#: driver/demo-Gtk-widgets.c:476 driver/demo-Gtk.c:2336 +#: driver/xscreensaver-demo.glade.h:58 msgid "Preview" msgstr "Previsualizar" -#: driver/demo-Gtk-widgets.c:484 +#: driver/demo-Gtk-widgets.c:484 driver/xscreensaver-demo.glade.h:21 msgid "" "Demo the selected screen saver in full-screen mode (click the mouse to " "return.)" msgstr "" -#: driver/demo-Gtk-widgets.c:486 +#: driver/demo-Gtk-widgets.c:486 driver/xscreensaver-demo.glade.h:65 msgid "Settings..." msgstr "Propiedades..." -#: driver/demo-Gtk-widgets.c:494 +#: driver/demo-Gtk-widgets.c:494 driver/xscreensaver-demo.glade.h:17 msgid "Customization and explanation of the selected screen saver." msgstr "" -#: driver/demo-Gtk-widgets.c:515 +#: driver/demo-Gtk-widgets.c:515 driver/xscreensaver-demo.glade.h:52 #, fuzzy msgid "Mode:" msgstr "Modo" -#: driver/demo-Gtk-widgets.c:533 +#: driver/demo-Gtk-widgets.c:533 driver/xscreensaver-demo.glade.h:25 #, fuzzy msgid "Disable Screen Saver" msgstr "Salvapantalla" -#: driver/demo-Gtk-widgets.c:536 +#: driver/demo-Gtk-widgets.c:536 driver/xscreensaver-demo.glade.h:9 msgid "Blank Screen Only" msgstr "" -#: driver/demo-Gtk-widgets.c:539 +#: driver/demo-Gtk-widgets.c:539 driver/xscreensaver-demo.glade.h:56 #, fuzzy msgid "Only One Screen Saver" msgstr "Salvapantalla" -#: driver/demo-Gtk-widgets.c:542 +#: driver/demo-Gtk-widgets.c:542 driver/xscreensaver-demo.glade.h:60 #, fuzzy msgid "Random Screen Saver" msgstr "Salvapantalla al azar" -#: driver/demo-Gtk-widgets.c:565 +#: driver/demo-Gtk-widgets.c:565 driver/xscreensaver-demo.glade.h:75 msgid "Use" msgstr "" -#: driver/demo-Gtk-widgets.c:585 +#: driver/demo-Gtk-widgets.c:585 driver/xscreensaver-demo.glade.h:63 msgid "Screen Saver" msgstr "Salvapantalla" -#: driver/demo-Gtk-widgets.c:646 +#: driver/demo-Gtk-widgets.c:638 driver/xscreensaver-demo.glade.h:91 +msgid "\\/" +msgstr "" + +#: driver/demo-Gtk-widgets.c:646 driver/xscreensaver-demo.glade.h:61 msgid "" "Run the next screen saver in the list in full-screen mode (click the mouse " "to return.)" msgstr "" -#: driver/demo-Gtk-widgets.c:656 +#: driver/demo-Gtk-widgets.c:648 +msgid "/\\" +msgstr "" + +#: driver/demo-Gtk-widgets.c:656 driver/xscreensaver-demo.glade.h:62 msgid "" "Run the previous screen saver in the list in full-screen mode (click the " "mouse to return.)" msgstr "" #: driver/demo-Gtk-widgets.c:658 driver/demo-Gtk-widgets.c:1601 +#: driver/xscreensaver-demo.glade.h:22 msgid "Description" msgstr "Descripción" -#: driver/demo-Gtk-widgets.c:685 +#: driver/demo-Gtk-widgets.c:685 driver/xscreensaver-demo.glade.h:26 #, fuzzy msgid "Display Modes" msgstr "Muestra gotas aceitosas." -#: driver/demo-Gtk-widgets.c:701 +#: driver/demo-Gtk-widgets.c:701 driver/xscreensaver-demo.glade.h:23 #, fuzzy msgid "Diagnostics" msgstr "Posición de las ventanas de diálogo" -#: driver/demo-Gtk-widgets.c:745 +#: driver/demo-Gtk-widgets.c:745 driver/xscreensaver-demo.glade.h:80 msgid "Whether the daemon should print lots of debugging information." msgstr "" -#: driver/demo-Gtk-widgets.c:747 +#: driver/demo-Gtk-widgets.c:747 driver/xscreensaver-demo.glade.h:76 msgid "Verbose Diagnostics" msgstr "" -#: driver/demo-Gtk-widgets.c:762 +#: driver/demo-Gtk-widgets.c:762 driver/xscreensaver-demo.glade.h:79 msgid "" "Whether any error output of the display modes should be redirected to the " "screen." msgstr "" -#: driver/demo-Gtk-widgets.c:764 +#: driver/demo-Gtk-widgets.c:764 driver/xscreensaver-demo.glade.h:29 msgid "Display Subprocess Errors" msgstr "" -#: driver/demo-Gtk-widgets.c:779 +#: driver/demo-Gtk-widgets.c:779 driver/xscreensaver-demo.glade.h:87 msgid "" "Whether the splash screen (with the version number and `Help' button) should " "be momentarily displayed when the daemon first starts up." msgstr "" -#: driver/demo-Gtk-widgets.c:781 +#: driver/demo-Gtk-widgets.c:781 driver/xscreensaver-demo.glade.h:28 msgid "Display Splash Screen at Startup" msgstr "" -#: driver/demo-Gtk-widgets.c:790 +#: driver/demo-Gtk-widgets.c:790 driver/xscreensaver-demo.glade.h:15 #, fuzzy msgid "Colormaps" msgstr "Colores" -#: driver/demo-Gtk-widgets.c:834 +#: driver/demo-Gtk-widgets.c:834 driver/xscreensaver-demo.glade.h:88 msgid "" "Whether to install a private colormap when running in 8-bit mode on the " "default Visual." msgstr "" -#: driver/demo-Gtk-widgets.c:836 +#: driver/demo-Gtk-widgets.c:836 driver/xscreensaver-demo.glade.h:48 msgid "Install Colormap" msgstr "" -#: driver/demo-Gtk-widgets.c:859 +#: driver/demo-Gtk-widgets.c:859 driver/xscreensaver-demo.glade.h:86 msgid "" "Whether the screen should slowly fade to black when the screen saver " "activates." msgstr "" -#: driver/demo-Gtk-widgets.c:861 +#: driver/demo-Gtk-widgets.c:861 driver/xscreensaver-demo.glade.h:36 msgid "Fade To Black When Blanking" msgstr "" -#: driver/demo-Gtk-widgets.c:876 +#: driver/demo-Gtk-widgets.c:876 driver/xscreensaver-demo.glade.h:85 msgid "" "Whether the screen should slowly fade in from black when the screen saver " "deactivates." msgstr "" -#: driver/demo-Gtk-widgets.c:878 +#: driver/demo-Gtk-widgets.c:878 driver/xscreensaver-demo.glade.h:35 msgid "Fade From Black When Unblanking" msgstr "" -#: driver/demo-Gtk-widgets.c:904 +#: driver/demo-Gtk-widgets.c:904 driver/xscreensaver-demo.glade.h:34 #, fuzzy msgid "Fade Duration" msgstr "Duración" -#: driver/demo-Gtk-widgets.c:922 +#: driver/demo-Gtk-widgets.c:922 driver/xscreensaver-demo.glade.h:44 msgid "How long it should take for the screen to fade in and out." msgstr "" -#: driver/demo-Gtk-widgets.c:926 +#: driver/demo-Gtk-widgets.c:926 driver/xscreensaver-demo.glade.h:100 msgid "seconds" msgstr "segundos" -#: driver/demo-Gtk-widgets.c:936 +#: driver/demo-Gtk-widgets.c:936 driver/xscreensaver-demo.glade.h:27 #, fuzzy msgid "Display Power Management" msgstr "Usar gestión de energía." -#: driver/demo-Gtk-widgets.c:980 +#: driver/demo-Gtk-widgets.c:980 driver/xscreensaver-demo.glade.h:84 msgid "Whether the monitor should be powered down after a while." msgstr "" -#: driver/demo-Gtk-widgets.c:982 +#: driver/demo-Gtk-widgets.c:982 driver/xscreensaver-demo.glade.h:57 #, fuzzy msgid "Power Management Enabled" msgstr "Usar gestión de energía." -#: driver/demo-Gtk-widgets.c:1050 +#: driver/demo-Gtk-widgets.c:1050 driver/xscreensaver-demo.glade.h:55 msgid "Off After" msgstr "" -#: driver/demo-Gtk-widgets.c:1063 +#: driver/demo-Gtk-widgets.c:1063 driver/xscreensaver-demo.glade.h:70 msgid "Suspend After" msgstr "" -#: driver/demo-Gtk-widgets.c:1076 +#: driver/demo-Gtk-widgets.c:1076 driver/xscreensaver-demo.glade.h:68 #, fuzzy msgid "Standby After" msgstr "Activar después de " -#: driver/demo-Gtk-widgets.c:1099 +#: driver/demo-Gtk-widgets.c:1099 driver/xscreensaver-demo.glade.h:45 msgid "How long until the monitor goes into power-saving mode." msgstr "" -#: driver/demo-Gtk-widgets.c:1113 +#: driver/demo-Gtk-widgets.c:1113 driver/xscreensaver-demo.glade.h:46 msgid "How long until the monitor powers down." msgstr "" -#: driver/demo-Gtk-widgets.c:1117 +#: driver/demo-Gtk-widgets.c:1117 driver/xscreensaver-demo.glade.h:47 msgid "Image Manipulation" msgstr "" -#: driver/demo-Gtk-widgets.c:1161 +#: driver/demo-Gtk-widgets.c:1161 driver/xscreensaver-demo.glade.h:81 msgid "" "Whether the image-manipulating modes should be allowed to operate on an " "image of your desktop." msgstr "" -#: driver/demo-Gtk-widgets.c:1163 +#: driver/demo-Gtk-widgets.c:1163 driver/xscreensaver-demo.glade.h:39 msgid "Grab Desktop Images" msgstr "" -#: driver/demo-Gtk-widgets.c:1178 +#: driver/demo-Gtk-widgets.c:1178 driver/xscreensaver-demo.glade.h:82 msgid "" "Whether the image-manipulating modes should operate on images captured from " "the system's video input (if there is one)." msgstr "" -#: driver/demo-Gtk-widgets.c:1180 +#: driver/demo-Gtk-widgets.c:1180 driver/xscreensaver-demo.glade.h:40 msgid "Grab Video Frames" msgstr "" -#: driver/demo-Gtk-widgets.c:1195 +#: driver/demo-Gtk-widgets.c:1195 driver/xscreensaver-demo.glade.h:83 msgid "" "Whether the image-manipulating modes should operate on random images loaded " "from disk." msgstr "" -#: driver/demo-Gtk-widgets.c:1197 +#: driver/demo-Gtk-widgets.c:1197 driver/xscreensaver-demo.glade.h:12 #, fuzzy msgid "Choose Random Image:" msgstr "Permite elegir un gestor de ventanas" -#: driver/demo-Gtk-widgets.c:1230 +#: driver/demo-Gtk-widgets.c:1230 driver/xscreensaver-demo.glade.h:73 msgid "The directory from which images will be randomly chosen." msgstr "" -#: driver/demo-Gtk-widgets.c:1232 +#: driver/demo-Gtk-widgets.c:1232 driver/xscreensaver-demo.glade.h:10 #, fuzzy msgid "Browse" msgstr " Buscar... " #: driver/demo-Gtk-widgets.c:1240 driver/demo-Gtk-widgets.c:1593 +#: driver/xscreensaver-demo.glade.h:3 msgid "Advanced" msgstr "" -#: driver/demo-Gtk-widgets.c:1438 +#: driver/demo-Gtk-widgets.c:1438 driver/xscreensaver-demo.glade.h:90 #, fuzzy msgid "XScreenSaver: Mode-Specific Settings" msgstr "Configuración del salvapantalla" -#: driver/demo-Gtk-widgets.c:1460 +#: driver/demo-Gtk-widgets.c:1460 driver/xscreensaver-demo.glade.h:64 msgid "Settings" msgstr "Parámetros" -#: driver/demo-Gtk-widgets.c:1489 +#: driver/demo-Gtk-widgets.c:1489 driver/xscreensaver-demo.glade.h:66 #, fuzzy msgid "Standard" msgstr "Sonar" -#: driver/demo-Gtk-widgets.c:1526 +#: driver/demo-Gtk-widgets.c:1526 driver/xscreensaver-demo.glade.h:77 msgid "Visual:" msgstr "" -#: driver/demo-Gtk-widgets.c:1566 +#: driver/demo-Gtk-widgets.c:1544 driver/demo-Gtk-widgets.c:1567 +#: driver/demo-Gtk.c:1318 driver/demo-Gtk.c:2355 +#: driver/xscreensaver-demo.glade.h:5 +#, fuzzy +msgid "Any" +msgstr "Hormigas" + +#: driver/demo-Gtk-widgets.c:1545 driver/xscreensaver-demo.glade.h:7 +#, fuzzy +msgid "Best" +msgstr "Bosque" + +#: driver/demo-Gtk-widgets.c:1546 driver/xscreensaver-demo.glade.h:19 +#, fuzzy +msgid "Default" +msgstr "Valor predeterminado" + +#: driver/demo-Gtk-widgets.c:1547 driver/xscreensaver-demo.glade.h:20 +#, fuzzy +msgid "Default-N" +msgstr "Valor predeterminado" + +#: driver/demo-Gtk-widgets.c:1548 driver/xscreensaver-demo.glade.h:37 +msgid "GL" +msgstr "" + +#: driver/demo-Gtk-widgets.c:1549 driver/xscreensaver-demo.glade.h:74 +#, fuzzy +msgid "TrueColor" +msgstr "Color" + +#: driver/demo-Gtk-widgets.c:1550 driver/xscreensaver-demo.glade.h:59 +#, fuzzy +msgid "PseudoColor" +msgstr "Color" + +#: driver/demo-Gtk-widgets.c:1551 driver/xscreensaver-demo.glade.h:69 +#, fuzzy +msgid "StaticGray" +msgstr "Estática." + +#: driver/demo-Gtk-widgets.c:1552 driver/xscreensaver-demo.glade.h:42 +#, fuzzy +msgid "GrayScale" +msgstr "Redimensionado" + +#: driver/demo-Gtk-widgets.c:1553 driver/xscreensaver-demo.glade.h:24 +#, fuzzy +msgid "DirectColor" +msgstr "Color" + +#: driver/demo-Gtk-widgets.c:1554 driver/xscreensaver-demo.glade.h:14 +msgid "Color" +msgstr "Color" + +#: driver/demo-Gtk-widgets.c:1555 driver/xscreensaver-demo.glade.h:41 +#, fuzzy +msgid "Gray" +msgstr "Gravedad" + +#: driver/demo-Gtk-widgets.c:1556 driver/xscreensaver-demo.glade.h:53 +msgid "Mono" +msgstr "Mono" + +#: driver/demo-Gtk-widgets.c:1566 driver/xscreensaver-demo.glade.h:72 msgid "" "The X visual type that this demo will require. If that visual is available " "it will be used, otherwise, this demo will not be run." msgstr "" -#: driver/demo-Gtk-widgets.c:1641 +#: driver/demo-Gtk-widgets.c:1569 driver/xscreensaver-demo.glade.h:16 +#, fuzzy +msgid "Command Line:" +msgstr "Comando:" + +#: driver/demo-Gtk-widgets.c:1641 driver/xscreensaver-demo.glade.h:31 #, fuzzy msgid "Documentation..." msgstr "Manejadores de Documentos" -#: driver/demo-Gtk-widgets.c:1649 +#: driver/demo-Gtk-widgets.c:1649 driver/xscreensaver-demo.glade.h:13 msgid "Click here to read the manual for this display mode, if it has one." msgstr "" -#: driver/demo-Gtk-widgets.c:1674 +#: driver/demo-Gtk-widgets.c:1674 driver/xscreensaver-demo.glade.h:4 msgid "Advanced >>" msgstr "" -#: driver/demo-Gtk-widgets.c:1682 +#: driver/demo-Gtk-widgets.c:1682 driver/xscreensaver-demo.glade.h:32 msgid "Edit the command line directly." msgstr "" -#: driver/demo-Gtk-widgets.c:1684 +#: driver/demo-Gtk-widgets.c:1684 driver/xscreensaver-demo.glade.h:67 msgid "Standard <<" msgstr "" -#: driver/demo-Gtk-widgets.c:1692 +#: driver/demo-Gtk-widgets.c:1692 driver/xscreensaver-demo.glade.h:6 msgid "Back to the graphical configuration options." msgstr "" -#: driver/demo-Gtk-widgets.c:1703 +#: driver/demo-Gtk-widgets.c:1703 driver/demo-Gtk.c:587 +#: driver/xscreensaver-demo.glade.h:54 msgid "OK" msgstr "Aceptar" -#: driver/demo-Gtk-widgets.c:1712 +#: driver/demo-Gtk-widgets.c:1712 driver/xscreensaver-demo.glade.h:11 #, fuzzy msgid "Cancel" msgstr "Células" +#: driver/demo-Gtk.c:511 +msgid "For updates, check http://www.jwz.org/xscreensaver/" +msgstr "" + +#: driver/demo-Gtk.c:517 +#, c-format +msgid "Copyright © 1991-2002 %s" +msgstr "" + +#: driver/demo-Gtk.c:624 +msgid "" +"Error:\n" +"\n" +"No Help URL has been specified.\n" +msgstr "" + +#: driver/demo-Gtk.c:710 +msgid "" +"Error:\n" +"\n" +"The xscreensaver daemon did not start up properly.\n" +"\n" +msgstr "" + +#: driver/demo-Gtk.c:716 +msgid "" +"You are running as root. This usually means that xscreensaver\n" +"was unable to contact your X server because access control is\n" +"turned on. Try running this command:\n" +"\n" +" xhost +localhost\n" +"\n" +"and then selecting `File / Restart Daemon'.\n" +"\n" +"Note that turning off access control will allow anyone logged\n" +"on to this machine to access your screen, which might be\n" +"considered a security problem. Please read the xscreensaver\n" +"manual and FAQ for more information.\n" +"\n" +"You shouldn't run X as root. Instead, you should log in as a\n" +"normal user, and `su' as necessary." +msgstr "" + +#: driver/demo-Gtk.c:732 +msgid "Please check your $PATH and permissions." +msgstr "" + +#: driver/demo-Gtk.c:767 +msgid "" +"Error:\n" +"\n" +"Couldn't determine init file name!\n" +msgstr "" + +#: driver/demo-Gtk.c:772 +#, c-format +msgid "" +"Error:\n" +"\n" +"Couldn't write %s\n" +msgstr "" + +#: driver/demo-Gtk.c:831 +msgid "" +"Error:\n" +"\n" +"no `manualCommand' resource set." +msgstr "" + +#: driver/demo-Gtk.c:1001 +#, c-format +msgid "" +"Error:\n" +"\n" +"Unparsable time format: \"%s\"\n" +msgstr "" + +#: driver/demo-Gtk.c:1528 +#, fuzzy, c-format +msgid "" +"Error:\n" +"\n" +"Directory does not exist: \"%s\"\n" +msgstr "¡El directorio personal no existe!\n" + +#: driver/demo-Gtk.c:2053 +msgid "Descriptions not available: no XML support compiled in." +msgstr "" + +#: driver/demo-Gtk.c:2058 +msgid "No description available." +msgstr "" + +#: driver/demo-Gtk.c:2307 +#, fuzzy +msgid "Blank Screen" +msgstr "Activar después de " + +#: driver/demo-Gtk.c:2313 +#, fuzzy +msgid "Screen Saver Disabled" +msgstr "Demostración del salvapantalla" + +#: driver/demo-Gtk.c:2473 +#, c-format +msgid "" +"Warning:\n" +"\n" +"file \"%s\" has changed, reloading.\n" +msgstr "" + +#: driver/demo-Gtk.c:2540 +#, fuzzy +msgid "No Preview" +msgstr "Previsualizar" + +#: driver/demo-Gtk.c:2540 +#, fuzzy +msgid "Available" +msgstr "Temas disponibles" + +#: driver/demo-Gtk.c:3210 +#, c-format +msgid "" +"Warning:\n" +"\n" +"The XScreenSaver daemon doesn't seem to be running\n" +"on display \"%s\". Launch it now?" +msgstr "" + +#: driver/demo-Gtk.c:3220 +#, c-format +msgid "" +"Warning:\n" +"\n" +"%s is running as user \"%s\" on host \"%s\".\n" +"But the xscreensaver managing display \"%s\"\n" +"is running as user \"%s\" on host \"%s\".\n" +"\n" +"Since they are different users, they won't be reading/writing\n" +"the same ~/.xscreensaver file, so %s isn't\n" +"going to work right.\n" +"\n" +"You should either re-run %s as \"%s\", or re-run\n" +"xscreensaver as \"%s\".\n" +"\n" +"Restart the xscreensaver daemon now?\n" +msgstr "" + +#: driver/demo-Gtk.c:3245 +#, c-format +msgid "" +"Warning:\n" +"\n" +"%s is running as user \"%s\" on host \"%s\".\n" +"But the xscreensaver managing display \"%s\"\n" +"is running as user \"%s\" on host \"%s\".\n" +"\n" +"If those two machines don't share a file system (that is,\n" +"if they don't see the same ~%s/.xscreensaver file) then\n" +"%s won't work right.\n" +"\n" +"Restart the daemon on \"%s\" as \"%s\" now?\n" +msgstr "" + +#: driver/demo-Gtk.c:3267 +#, c-format +msgid "" +"Warning:\n" +"\n" +"This is %s version %s.\n" +"But the xscreensaver managing display \"%s\"\n" +"is version %s. This could cause problems.\n" +"\n" +"Restart the xscreensaver daemon now?\n" +msgstr "" + +#: driver/demo-Gtk.c:3636 +#, c-format +msgid "%s: unknown option: %s\n" +msgstr "" + +#: driver/screensaver-properties.desktop.in.h:1 +msgid "Configure the settings of the screensaver." +msgstr "Configurar el salvapantalla" + +#: driver/screensaver-properties.desktop.in.h:2 +msgid "Screensaver" +msgstr "Propiedades Salvapantallas" + +#: driver/xscreensaver-demo.glade.h:1 +msgid "/\");" +msgstr "" + #: hacks/config/ant.xml.h:1 #, fuzzy msgid "" @@ -448,30 +739,34 @@ msgstr "Tama msgid "Ants Count" msgstr "Cantidad" -#: hacks/config/ant.xml.h:5 hacks/config/atlantis.xml.h:4 -#: hacks/config/attraction.xml.h:8 hacks/config/blaster.xml.h:3 -#: hacks/config/blitspin.xml.h:4 hacks/config/bouboule.xml.h:3 +#: hacks/config/ant.xml.h:5 hacks/config/apollonian.xml.h:5 +#: hacks/config/atlantis.xml.h:4 hacks/config/attraction.xml.h:8 +#: hacks/config/blaster.xml.h:3 hacks/config/blitspin.xml.h:4 +#: hacks/config/bouboule.xml.h:3 hacks/config/boxed.xml.h:4 #: hacks/config/braid.xml.h:4 hacks/config/bubble3d.xml.h:3 #: hacks/config/bubbles.xml.h:8 hacks/config/bumps.xml.h:3 #: hacks/config/cage.xml.h:2 hacks/config/circuit.xml.h:4 #: hacks/config/compass.xml.h:3 hacks/config/coral.xml.h:7 #: hacks/config/critical.xml.h:3 hacks/config/crystal.xml.h:6 -#: hacks/config/cynosure.xml.h:4 hacks/config/dangerball.xml.h:3 -#: hacks/config/decayscreen.xml.h:2 hacks/config/deluxe.xml.h:4 -#: hacks/config/demon.xml.h:4 hacks/config/discrete.xml.h:2 -#: hacks/config/distort.xml.h:4 hacks/config/drift.xml.h:3 -#: hacks/config/engine.xml.h:3 hacks/config/epicycle.xml.h:5 +#: hacks/config/cubenetic.xml.h:8 hacks/config/cynosure.xml.h:4 +#: hacks/config/dangerball.xml.h:3 hacks/config/decayscreen.xml.h:2 +#: hacks/config/deluxe.xml.h:4 hacks/config/demon.xml.h:4 +#: hacks/config/discrete.xml.h:2 hacks/config/distort.xml.h:4 +#: hacks/config/drift.xml.h:3 hacks/config/engine.xml.h:3 +#: hacks/config/epicycle.xml.h:5 hacks/config/euler2d.xml.h:3 #: hacks/config/extrusion.xml.h:3 hacks/config/fadeplot.xml.h:4 #: hacks/config/flag.xml.h:2 hacks/config/flame.xml.h:6 #: hacks/config/flipscreen3d.xml.h:1 hacks/config/flow.xml.h:4 -#: hacks/config/forest.xml.h:1 hacks/config/galaxy.xml.h:3 -#: hacks/config/gears.xml.h:3 hacks/config/gflux.xml.h:6 -#: hacks/config/glplanet.xml.h:2 hacks/config/gltext.xml.h:3 -#: hacks/config/goop.xml.h:4 hacks/config/grav.xml.h:2 -#: hacks/config/greynetic.xml.h:1 hacks/config/halo.xml.h:2 -#: hacks/config/hopalong.xml.h:9 hacks/config/hyperball.xml.h:2 -#: hacks/config/hypercube.xml.h:2 hacks/config/ifs.xml.h:1 -#: hacks/config/interference.xml.h:5 hacks/config/jigsaw.xml.h:3 +#: hacks/config/fluidballs.xml.h:3 hacks/config/forest.xml.h:1 +#: hacks/config/galaxy.xml.h:3 hacks/config/gears.xml.h:2 +#: hacks/config/gflux.xml.h:6 hacks/config/glforestfire.xml.h:4 +#: hacks/config/glplanet.xml.h:2 hacks/config/glsnake.xml.h:5 +#: hacks/config/gltext.xml.h:3 hacks/config/goop.xml.h:4 +#: hacks/config/grav.xml.h:2 hacks/config/greynetic.xml.h:1 +#: hacks/config/halo.xml.h:2 hacks/config/hopalong.xml.h:9 +#: hacks/config/hyperball.xml.h:2 hacks/config/hypercube.xml.h:2 +#: hacks/config/ifs.xml.h:1 hacks/config/interference.xml.h:5 +#: hacks/config/jigsaw.xml.h:3 hacks/config/juggle.xml.h:3 #: hacks/config/julia.xml.h:2 hacks/config/kaleidescope.xml.h:2 #: hacks/config/kumppa.xml.h:3 hacks/config/lament.xml.h:2 #: hacks/config/laser.xml.h:3 hacks/config/lightning.xml.h:1 @@ -483,27 +778,29 @@ msgstr "Cantidad" #: hacks/config/mountain.xml.h:2 hacks/config/munch.xml.h:3 #: hacks/config/nerverot.xml.h:9 hacks/config/penetrate.xml.h:3 #: hacks/config/penrose.xml.h:6 hacks/config/petri.xml.h:5 -#: hacks/config/phosphor.xml.h:3 hacks/config/pipes.xml.h:4 -#: hacks/config/pulsar.xml.h:11 hacks/config/pyro.xml.h:4 -#: hacks/config/qix.xml.h:7 hacks/config/rd-bomb.xml.h:9 -#: hacks/config/ripples.xml.h:4 hacks/config/rocks.xml.h:4 -#: hacks/config/rotor.xml.h:3 hacks/config/rubik.xml.h:3 +#: hacks/config/phosphor.xml.h:3 hacks/config/pipes.xml.h:5 +#: hacks/config/polyominoes.xml.h:2 hacks/config/pulsar.xml.h:11 +#: hacks/config/pyro.xml.h:4 hacks/config/qix.xml.h:7 +#: hacks/config/rd-bomb.xml.h:9 hacks/config/ripples.xml.h:4 +#: hacks/config/rocks.xml.h:4 hacks/config/rotor.xml.h:3 +#: hacks/config/rubik.xml.h:3 hacks/config/sballs.xml.h:4 #: hacks/config/shadebobs.xml.h:3 hacks/config/sierpinski.xml.h:2 #: hacks/config/sierpinski3d.xml.h:2 hacks/config/slidescreen.xml.h:2 #: hacks/config/slip.xml.h:2 hacks/config/speedmine.xml.h:3 -#: hacks/config/sphere.xml.h:2 hacks/config/spiral.xml.h:3 -#: hacks/config/spotlight.xml.h:2 hacks/config/sproingies.xml.h:2 -#: hacks/config/squiral.xml.h:4 hacks/config/stairs.xml.h:1 -#: hacks/config/starfish.xml.h:3 hacks/config/starwars.xml.h:6 -#: hacks/config/strange.xml.h:2 hacks/config/superquadrics.xml.h:3 -#: hacks/config/swirl.xml.h:2 hacks/config/t3d.xml.h:6 +#: hacks/config/sphere.xml.h:2 hacks/config/spheremonics.xml.h:5 +#: hacks/config/spiral.xml.h:3 hacks/config/spotlight.xml.h:2 +#: hacks/config/sproingies.xml.h:2 hacks/config/squiral.xml.h:4 +#: hacks/config/stairs.xml.h:1 hacks/config/starfish.xml.h:3 +#: hacks/config/starwars.xml.h:6 hacks/config/strange.xml.h:2 +#: hacks/config/superquadrics.xml.h:3 hacks/config/swirl.xml.h:2 +#: hacks/config/t3d.xml.h:6 hacks/config/thornbird.xml.h:2 #: hacks/config/triangle.xml.h:1 hacks/config/truchet.xml.h:1 -#: hacks/config/vines.xml.h:1 hacks/config/webcollage.xml.h:4 -#: hacks/config/worm.xml.h:3 hacks/config/xearth.xml.h:7 -#: hacks/config/xfishtank.xml.h:3 hacks/config/xflame.xml.h:4 -#: hacks/config/xjack.xml.h:1 hacks/config/xmatrix.xml.h:4 -#: hacks/config/xmountains.xml.h:1 hacks/config/xrayswarm.xml.h:2 -#: hacks/config/zoom.xml.h:2 +#: hacks/config/twang.xml.h:3 hacks/config/vines.xml.h:1 +#: hacks/config/webcollage.xml.h:4 hacks/config/worm.xml.h:3 +#: hacks/config/xearth.xml.h:7 hacks/config/xfishtank.xml.h:3 +#: hacks/config/xflame.xml.h:4 hacks/config/xjack.xml.h:1 +#: hacks/config/xmatrix.xml.h:4 hacks/config/xmountains.xml.h:1 +#: hacks/config/xrayswarm.xml.h:2 hacks/config/zoom.xml.h:2 msgid "Fast" msgstr "Rápido" @@ -512,9 +809,10 @@ msgid "Four Sided Cells" msgstr "" #: hacks/config/ant.xml.h:7 hacks/config/attraction.xml.h:13 -#: hacks/config/demon.xml.h:5 hacks/config/discrete.xml.h:3 -#: hacks/config/distort.xml.h:5 hacks/config/fadeplot.xml.h:5 -#: hacks/config/flag.xml.h:4 hacks/config/flow.xml.h:7 +#: hacks/config/cubenetic.xml.h:11 hacks/config/demon.xml.h:5 +#: hacks/config/discrete.xml.h:3 hacks/config/distort.xml.h:5 +#: hacks/config/fadeplot.xml.h:5 hacks/config/flag.xml.h:4 +#: hacks/config/flow.xml.h:7 hacks/config/fluidballs.xml.h:12 #: hacks/config/hopalong.xml.h:13 hacks/config/interference.xml.h:8 #: hacks/config/julia.xml.h:5 hacks/config/lissie.xml.h:4 #: hacks/config/loop.xml.h:2 hacks/config/moire.xml.h:4 @@ -524,16 +822,18 @@ msgstr "" msgid "Large" msgstr "Grande" -#: hacks/config/ant.xml.h:8 hacks/config/attraction.xml.h:18 -#: hacks/config/blaster.xml.h:6 hacks/config/bouboule.xml.h:5 -#: hacks/config/braid.xml.h:7 hacks/config/coral.xml.h:9 -#: hacks/config/critical.xml.h:4 hacks/config/crystal.xml.h:8 +#: hacks/config/ant.xml.h:8 hacks/config/apollonian.xml.h:7 +#: hacks/config/attraction.xml.h:18 hacks/config/blaster.xml.h:6 +#: hacks/config/bouboule.xml.h:5 hacks/config/braid.xml.h:7 +#: hacks/config/coral.xml.h:9 hacks/config/critical.xml.h:4 +#: hacks/config/crystal.xml.h:8 hacks/config/cubenetic.xml.h:13 #: hacks/config/cynosure.xml.h:6 hacks/config/deco.xml.h:5 #: hacks/config/deluxe.xml.h:6 hacks/config/demon.xml.h:6 #: hacks/config/discrete.xml.h:4 hacks/config/drift.xml.h:9 -#: hacks/config/epicycle.xml.h:8 hacks/config/fadeplot.xml.h:6 -#: hacks/config/flag.xml.h:5 hacks/config/flame.xml.h:10 -#: hacks/config/flow.xml.h:8 hacks/config/forest.xml.h:3 +#: hacks/config/epicycle.xml.h:8 hacks/config/euler2d.xml.h:8 +#: hacks/config/fadeplot.xml.h:6 hacks/config/flag.xml.h:5 +#: hacks/config/flame.xml.h:11 hacks/config/flow.xml.h:8 +#: hacks/config/fluidballs.xml.h:13 hacks/config/forest.xml.h:3 #: hacks/config/galaxy.xml.h:6 hacks/config/grav.xml.h:4 #: hacks/config/halo.xml.h:4 hacks/config/hopalong.xml.h:15 #: hacks/config/ifs.xml.h:3 hacks/config/imsmap.xml.h:9 @@ -544,14 +844,15 @@ msgstr "Grande" #: hacks/config/moire.xml.h:5 hacks/config/moire2.xml.h:3 #: hacks/config/mountain.xml.h:4 hacks/config/nerverot.xml.h:15 #: hacks/config/pedal.xml.h:6 hacks/config/penrose.xml.h:7 -#: hacks/config/petri.xml.h:11 hacks/config/qix.xml.h:14 -#: hacks/config/rd-bomb.xml.h:12 hacks/config/ripples.xml.h:7 -#: hacks/config/rocks.xml.h:5 hacks/config/rotor.xml.h:6 -#: hacks/config/shadebobs.xml.h:5 hacks/config/sierpinski.xml.h:4 -#: hacks/config/slip.xml.h:4 hacks/config/sphere.xml.h:3 -#: hacks/config/spiral.xml.h:6 hacks/config/squiral.xml.h:9 -#: hacks/config/starfish.xml.h:5 hacks/config/strange.xml.h:5 -#: hacks/config/swirl.xml.h:3 hacks/config/triangle.xml.h:3 +#: hacks/config/petri.xml.h:11 hacks/config/polyominoes.xml.h:5 +#: hacks/config/qix.xml.h:14 hacks/config/rd-bomb.xml.h:12 +#: hacks/config/ripples.xml.h:7 hacks/config/rocks.xml.h:5 +#: hacks/config/rotor.xml.h:6 hacks/config/shadebobs.xml.h:5 +#: hacks/config/sierpinski.xml.h:4 hacks/config/slip.xml.h:4 +#: hacks/config/sphere.xml.h:3 hacks/config/spiral.xml.h:6 +#: hacks/config/squiral.xml.h:9 hacks/config/starfish.xml.h:5 +#: hacks/config/strange.xml.h:5 hacks/config/swirl.xml.h:3 +#: hacks/config/thornbird.xml.h:4 hacks/config/triangle.xml.h:3 #: hacks/config/vines.xml.h:2 hacks/config/whirlwindwarp.xml.h:4 #: hacks/config/worm.xml.h:4 hacks/config/xearth.xml.h:12 #: hacks/config/xfishtank.xml.h:8 @@ -562,14 +863,15 @@ msgstr "" msgid "Nine Sided Cells" msgstr "" -#: hacks/config/ant.xml.h:10 hacks/config/attraction.xml.h:19 -#: hacks/config/bouboule.xml.h:6 hacks/config/braid.xml.h:9 -#: hacks/config/critical.xml.h:5 hacks/config/crystal.xml.h:10 -#: hacks/config/cynosure.xml.h:7 hacks/config/deco.xml.h:8 -#: hacks/config/deluxe.xml.h:7 hacks/config/demon.xml.h:7 -#: hacks/config/discrete.xml.h:6 hacks/config/drift.xml.h:10 -#: hacks/config/epicycle.xml.h:9 hacks/config/fadeplot.xml.h:7 -#: hacks/config/flag.xml.h:6 hacks/config/flame.xml.h:11 +#: hacks/config/ant.xml.h:10 hacks/config/apollonian.xml.h:8 +#: hacks/config/attraction.xml.h:19 hacks/config/bouboule.xml.h:6 +#: hacks/config/braid.xml.h:9 hacks/config/critical.xml.h:5 +#: hacks/config/crystal.xml.h:10 hacks/config/cynosure.xml.h:7 +#: hacks/config/deco.xml.h:8 hacks/config/deluxe.xml.h:7 +#: hacks/config/demon.xml.h:7 hacks/config/discrete.xml.h:6 +#: hacks/config/drift.xml.h:10 hacks/config/epicycle.xml.h:9 +#: hacks/config/euler2d.xml.h:9 hacks/config/fadeplot.xml.h:7 +#: hacks/config/flag.xml.h:6 hacks/config/flame.xml.h:12 #: hacks/config/flow.xml.h:9 hacks/config/forest.xml.h:4 #: hacks/config/galaxy.xml.h:7 hacks/config/grav.xml.h:5 #: hacks/config/halo.xml.h:6 hacks/config/hopalong.xml.h:17 @@ -579,13 +881,14 @@ msgstr "" #: hacks/config/lisa.xml.h:6 hacks/config/lissie.xml.h:7 #: hacks/config/loop.xml.h:5 hacks/config/moire.xml.h:7 #: hacks/config/moire2.xml.h:5 hacks/config/mountain.xml.h:6 -#: hacks/config/penrose.xml.h:8 hacks/config/rd-bomb.xml.h:13 -#: hacks/config/rocks.xml.h:6 hacks/config/rotor.xml.h:7 -#: hacks/config/shadebobs.xml.h:6 hacks/config/sierpinski.xml.h:5 -#: hacks/config/slip.xml.h:5 hacks/config/sphere.xml.h:4 -#: hacks/config/spiral.xml.h:8 hacks/config/squiral.xml.h:10 -#: hacks/config/starfish.xml.h:6 hacks/config/strange.xml.h:6 -#: hacks/config/swirl.xml.h:5 hacks/config/triangle.xml.h:4 +#: hacks/config/penrose.xml.h:8 hacks/config/polyominoes.xml.h:6 +#: hacks/config/rd-bomb.xml.h:13 hacks/config/rocks.xml.h:6 +#: hacks/config/rotor.xml.h:7 hacks/config/shadebobs.xml.h:6 +#: hacks/config/sierpinski.xml.h:5 hacks/config/slip.xml.h:5 +#: hacks/config/sphere.xml.h:4 hacks/config/spiral.xml.h:8 +#: hacks/config/squiral.xml.h:10 hacks/config/starfish.xml.h:6 +#: hacks/config/strange.xml.h:6 hacks/config/swirl.xml.h:5 +#: hacks/config/thornbird.xml.h:5 hacks/config/triangle.xml.h:4 #: hacks/config/vines.xml.h:3 hacks/config/worm.xml.h:5 #: hacks/config/xearth.xml.h:17 hacks/config/xfishtank.xml.h:9 msgid "Number of Colors" @@ -603,30 +906,34 @@ msgstr "" msgid "Six Sided Cells" msgstr "" -#: hacks/config/ant.xml.h:14 hacks/config/atlantis.xml.h:13 -#: hacks/config/attraction.xml.h:26 hacks/config/blaster.xml.h:8 -#: hacks/config/blitspin.xml.h:7 hacks/config/bouboule.xml.h:8 +#: hacks/config/ant.xml.h:14 hacks/config/apollonian.xml.h:11 +#: hacks/config/atlantis.xml.h:13 hacks/config/attraction.xml.h:26 +#: hacks/config/blaster.xml.h:8 hacks/config/blitspin.xml.h:7 +#: hacks/config/bouboule.xml.h:8 hacks/config/boxed.xml.h:6 #: hacks/config/braid.xml.h:11 hacks/config/bubble3d.xml.h:5 #: hacks/config/bubbles.xml.h:10 hacks/config/bumps.xml.h:4 #: hacks/config/cage.xml.h:4 hacks/config/circuit.xml.h:10 #: hacks/config/compass.xml.h:4 hacks/config/coral.xml.h:12 #: hacks/config/critical.xml.h:6 hacks/config/crystal.xml.h:11 -#: hacks/config/cynosure.xml.h:9 hacks/config/dangerball.xml.h:5 -#: hacks/config/decayscreen.xml.h:17 hacks/config/deluxe.xml.h:8 -#: hacks/config/demon.xml.h:8 hacks/config/discrete.xml.h:7 -#: hacks/config/distort.xml.h:11 hacks/config/drift.xml.h:12 -#: hacks/config/engine.xml.h:5 hacks/config/epicycle.xml.h:10 +#: hacks/config/cubenetic.xml.h:22 hacks/config/cynosure.xml.h:9 +#: hacks/config/dangerball.xml.h:5 hacks/config/decayscreen.xml.h:17 +#: hacks/config/deluxe.xml.h:8 hacks/config/demon.xml.h:8 +#: hacks/config/discrete.xml.h:7 hacks/config/distort.xml.h:11 +#: hacks/config/drift.xml.h:12 hacks/config/engine.xml.h:5 +#: hacks/config/epicycle.xml.h:10 hacks/config/euler2d.xml.h:14 #: hacks/config/extrusion.xml.h:11 hacks/config/fadeplot.xml.h:8 -#: hacks/config/flag.xml.h:7 hacks/config/flame.xml.h:13 -#: hacks/config/flipscreen3d.xml.h:5 hacks/config/flow.xml.h:13 -#: hacks/config/forest.xml.h:5 hacks/config/galaxy.xml.h:10 -#: hacks/config/gears.xml.h:8 hacks/config/gflux.xml.h:12 -#: hacks/config/glplanet.xml.h:6 hacks/config/gltext.xml.h:13 -#: hacks/config/goop.xml.h:10 hacks/config/grav.xml.h:8 -#: hacks/config/greynetic.xml.h:3 hacks/config/halo.xml.h:9 -#: hacks/config/hopalong.xml.h:21 hacks/config/hyperball.xml.h:8 -#: hacks/config/hypercube.xml.h:7 hacks/config/ifs.xml.h:5 -#: hacks/config/interference.xml.h:14 hacks/config/jigsaw.xml.h:5 +#: hacks/config/flag.xml.h:7 hacks/config/flame.xml.h:14 +#: hacks/config/flipscreen3d.xml.h:6 hacks/config/flow.xml.h:13 +#: hacks/config/fluidballs.xml.h:18 hacks/config/forest.xml.h:5 +#: hacks/config/galaxy.xml.h:10 hacks/config/gears.xml.h:7 +#: hacks/config/gflux.xml.h:12 hacks/config/glforestfire.xml.h:14 +#: hacks/config/glplanet.xml.h:6 hacks/config/glsnake.xml.h:12 +#: hacks/config/gltext.xml.h:13 hacks/config/goop.xml.h:10 +#: hacks/config/grav.xml.h:8 hacks/config/greynetic.xml.h:3 +#: hacks/config/halo.xml.h:9 hacks/config/hopalong.xml.h:21 +#: hacks/config/hyperball.xml.h:8 hacks/config/hypercube.xml.h:7 +#: hacks/config/ifs.xml.h:5 hacks/config/interference.xml.h:14 +#: hacks/config/jigsaw.xml.h:5 hacks/config/juggle.xml.h:7 #: hacks/config/julia.xml.h:8 hacks/config/kaleidescope.xml.h:7 #: hacks/config/kumppa.xml.h:8 hacks/config/lament.xml.h:6 #: hacks/config/laser.xml.h:10 hacks/config/lightning.xml.h:5 @@ -638,34 +945,37 @@ msgstr "" #: hacks/config/mountain.xml.h:7 hacks/config/munch.xml.h:7 #: hacks/config/nerverot.xml.h:20 hacks/config/penetrate.xml.h:6 #: hacks/config/penrose.xml.h:11 hacks/config/petri.xml.h:23 -#: hacks/config/phosphor.xml.h:6 hacks/config/pipes.xml.h:14 -#: hacks/config/pulsar.xml.h:15 hacks/config/pyro.xml.h:13 -#: hacks/config/qix.xml.h:19 hacks/config/rd-bomb.xml.h:17 -#: hacks/config/ripples.xml.h:11 hacks/config/rocks.xml.h:9 -#: hacks/config/rotor.xml.h:11 hacks/config/rubik.xml.h:9 +#: hacks/config/phosphor.xml.h:6 hacks/config/pipes.xml.h:15 +#: hacks/config/polyominoes.xml.h:10 hacks/config/pulsar.xml.h:15 +#: hacks/config/pyro.xml.h:13 hacks/config/qix.xml.h:19 +#: hacks/config/rd-bomb.xml.h:17 hacks/config/ripples.xml.h:11 +#: hacks/config/rocks.xml.h:9 hacks/config/rotor.xml.h:11 +#: hacks/config/rubik.xml.h:9 hacks/config/sballs.xml.h:13 #: hacks/config/shadebobs.xml.h:9 hacks/config/sierpinski.xml.h:7 #: hacks/config/sierpinski3d.xml.h:8 hacks/config/slidescreen.xml.h:6 #: hacks/config/slip.xml.h:7 hacks/config/speedmine.xml.h:13 -#: hacks/config/sphere.xml.h:5 hacks/config/spiral.xml.h:9 -#: hacks/config/spotlight.xml.h:4 hacks/config/sproingies.xml.h:6 -#: hacks/config/squiral.xml.h:14 hacks/config/stairs.xml.h:3 -#: hacks/config/starfish.xml.h:8 hacks/config/starwars.xml.h:12 -#: hacks/config/strange.xml.h:7 hacks/config/superquadrics.xml.h:7 -#: hacks/config/swirl.xml.h:6 hacks/config/t3d.xml.h:11 +#: hacks/config/sphere.xml.h:5 hacks/config/spheremonics.xml.h:19 +#: hacks/config/spiral.xml.h:9 hacks/config/spotlight.xml.h:4 +#: hacks/config/sproingies.xml.h:6 hacks/config/squiral.xml.h:14 +#: hacks/config/stairs.xml.h:3 hacks/config/starfish.xml.h:8 +#: hacks/config/starwars.xml.h:12 hacks/config/strange.xml.h:7 +#: hacks/config/superquadrics.xml.h:7 hacks/config/swirl.xml.h:6 +#: hacks/config/t3d.xml.h:11 hacks/config/thornbird.xml.h:7 #: hacks/config/triangle.xml.h:5 hacks/config/truchet.xml.h:2 -#: hacks/config/vines.xml.h:4 hacks/config/webcollage.xml.h:7 -#: hacks/config/worm.xml.h:7 hacks/config/xearth.xml.h:22 -#: hacks/config/xfishtank.xml.h:10 hacks/config/xflame.xml.h:5 -#: hacks/config/xjack.xml.h:2 hacks/config/xmatrix.xml.h:13 -#: hacks/config/xmountains.xml.h:4 hacks/config/xrayswarm.xml.h:3 -#: hacks/config/zoom.xml.h:6 +#: hacks/config/twang.xml.h:9 hacks/config/vines.xml.h:4 +#: hacks/config/webcollage.xml.h:7 hacks/config/worm.xml.h:7 +#: hacks/config/xearth.xml.h:22 hacks/config/xfishtank.xml.h:10 +#: hacks/config/xflame.xml.h:5 hacks/config/xjack.xml.h:2 +#: hacks/config/xmatrix.xml.h:13 hacks/config/xmountains.xml.h:4 +#: hacks/config/xrayswarm.xml.h:3 hacks/config/zoom.xml.h:6 msgid "Slow" msgstr "Lento" #: hacks/config/ant.xml.h:15 hacks/config/attraction.xml.h:27 -#: hacks/config/demon.xml.h:9 hacks/config/discrete.xml.h:8 -#: hacks/config/distort.xml.h:12 hacks/config/fadeplot.xml.h:9 -#: hacks/config/flag.xml.h:8 hacks/config/flow.xml.h:15 +#: hacks/config/cubenetic.xml.h:23 hacks/config/demon.xml.h:9 +#: hacks/config/discrete.xml.h:8 hacks/config/distort.xml.h:12 +#: hacks/config/fadeplot.xml.h:9 hacks/config/flag.xml.h:8 +#: hacks/config/flow.xml.h:15 hacks/config/fluidballs.xml.h:19 #: hacks/config/hopalong.xml.h:22 hacks/config/interference.xml.h:15 #: hacks/config/julia.xml.h:9 hacks/config/lissie.xml.h:10 #: hacks/config/loop.xml.h:8 hacks/config/moire.xml.h:9 @@ -675,28 +985,31 @@ msgstr "Lento" msgid "Small" msgstr "Pequeño" -#: hacks/config/ant.xml.h:16 hacks/config/attraction.xml.h:28 -#: hacks/config/blaster.xml.h:9 hacks/config/bouboule.xml.h:9 -#: hacks/config/braid.xml.h:12 hacks/config/bubble3d.xml.h:6 -#: hacks/config/bubbles.xml.h:11 hacks/config/bumps.xml.h:5 -#: hacks/config/cage.xml.h:6 hacks/config/circuit.xml.h:11 -#: hacks/config/compass.xml.h:5 hacks/config/coral.xml.h:14 -#: hacks/config/critical.xml.h:7 hacks/config/crystal.xml.h:12 +#: hacks/config/ant.xml.h:16 hacks/config/apollonian.xml.h:12 +#: hacks/config/attraction.xml.h:28 hacks/config/blaster.xml.h:9 +#: hacks/config/bouboule.xml.h:9 hacks/config/braid.xml.h:12 +#: hacks/config/bubble3d.xml.h:6 hacks/config/bubbles.xml.h:11 +#: hacks/config/bumps.xml.h:5 hacks/config/cage.xml.h:6 +#: hacks/config/circuit.xml.h:11 hacks/config/compass.xml.h:5 +#: hacks/config/coral.xml.h:14 hacks/config/critical.xml.h:7 +#: hacks/config/crystal.xml.h:12 hacks/config/cubenetic.xml.h:24 #: hacks/config/cynosure.xml.h:10 hacks/config/dangerball.xml.h:6 #: hacks/config/decayscreen.xml.h:18 hacks/config/deluxe.xml.h:9 #: hacks/config/demon.xml.h:10 hacks/config/discrete.xml.h:9 #: hacks/config/distort.xml.h:13 hacks/config/drift.xml.h:13 #: hacks/config/engine.xml.h:6 hacks/config/epicycle.xml.h:11 -#: hacks/config/extrusion.xml.h:13 hacks/config/fadeplot.xml.h:10 -#: hacks/config/flag.xml.h:9 hacks/config/flame.xml.h:14 -#: hacks/config/flipscreen3d.xml.h:6 hacks/config/flow.xml.h:16 +#: hacks/config/euler2d.xml.h:15 hacks/config/extrusion.xml.h:13 +#: hacks/config/fadeplot.xml.h:10 hacks/config/flag.xml.h:9 +#: hacks/config/flame.xml.h:15 hacks/config/flipscreen3d.xml.h:7 +#: hacks/config/flow.xml.h:16 hacks/config/fluidballs.xml.h:20 #: hacks/config/forest.xml.h:6 hacks/config/galaxy.xml.h:11 -#: hacks/config/glplanet.xml.h:8 hacks/config/gltext.xml.h:15 -#: hacks/config/goop.xml.h:11 hacks/config/grav.xml.h:9 -#: hacks/config/greynetic.xml.h:4 hacks/config/halo.xml.h:10 -#: hacks/config/hopalong.xml.h:23 hacks/config/hyperball.xml.h:9 -#: hacks/config/hypercube.xml.h:8 hacks/config/ifs.xml.h:6 -#: hacks/config/jigsaw.xml.h:7 hacks/config/julia.xml.h:10 +#: hacks/config/glforestfire.xml.h:15 hacks/config/glplanet.xml.h:8 +#: hacks/config/gltext.xml.h:15 hacks/config/goop.xml.h:11 +#: hacks/config/grav.xml.h:9 hacks/config/greynetic.xml.h:4 +#: hacks/config/halo.xml.h:10 hacks/config/hopalong.xml.h:23 +#: hacks/config/hyperball.xml.h:9 hacks/config/hypercube.xml.h:8 +#: hacks/config/ifs.xml.h:6 hacks/config/jigsaw.xml.h:7 +#: hacks/config/juggle.xml.h:8 hacks/config/julia.xml.h:10 #: hacks/config/kaleidescope.xml.h:8 hacks/config/kumppa.xml.h:9 #: hacks/config/lament.xml.h:7 hacks/config/laser.xml.h:11 #: hacks/config/lightning.xml.h:6 hacks/config/lisa.xml.h:9 @@ -707,24 +1020,26 @@ msgstr "Peque #: hacks/config/mountain.xml.h:8 hacks/config/munch.xml.h:9 #: hacks/config/nerverot.xml.h:22 hacks/config/penrose.xml.h:12 #: hacks/config/petri.xml.h:25 hacks/config/phosphor.xml.h:7 -#: hacks/config/pipes.xml.h:15 hacks/config/pulsar.xml.h:17 -#: hacks/config/qix.xml.h:22 hacks/config/rotor.xml.h:12 -#: hacks/config/rubik.xml.h:11 hacks/config/shadebobs.xml.h:10 +#: hacks/config/pipes.xml.h:16 hacks/config/polyominoes.xml.h:11 +#: hacks/config/pulsar.xml.h:17 hacks/config/qix.xml.h:22 +#: hacks/config/rotor.xml.h:12 hacks/config/rubik.xml.h:11 +#: hacks/config/sballs.xml.h:14 hacks/config/shadebobs.xml.h:10 #: hacks/config/sierpinski.xml.h:9 hacks/config/sierpinski3d.xml.h:10 #: hacks/config/slidescreen.xml.h:7 hacks/config/slip.xml.h:9 #: hacks/config/speedmine.xml.h:15 hacks/config/sphere.xml.h:6 -#: hacks/config/spiral.xml.h:10 hacks/config/spotlight.xml.h:5 -#: hacks/config/sproingies.xml.h:8 hacks/config/squiral.xml.h:16 -#: hacks/config/stairs.xml.h:5 hacks/config/starfish.xml.h:9 -#: hacks/config/strange.xml.h:8 hacks/config/superquadrics.xml.h:9 -#: hacks/config/swirl.xml.h:7 hacks/config/t3d.xml.h:13 +#: hacks/config/spheremonics.xml.h:22 hacks/config/spiral.xml.h:10 +#: hacks/config/spotlight.xml.h:5 hacks/config/sproingies.xml.h:8 +#: hacks/config/squiral.xml.h:16 hacks/config/stairs.xml.h:5 +#: hacks/config/starfish.xml.h:9 hacks/config/strange.xml.h:8 +#: hacks/config/superquadrics.xml.h:9 hacks/config/swirl.xml.h:7 +#: hacks/config/t3d.xml.h:13 hacks/config/thornbird.xml.h:8 #: hacks/config/triangle.xml.h:6 hacks/config/truchet.xml.h:3 -#: hacks/config/vines.xml.h:5 hacks/config/webcollage.xml.h:8 -#: hacks/config/whirlygig.xml.h:4 hacks/config/worm.xml.h:8 -#: hacks/config/xearth.xml.h:25 hacks/config/xflame.xml.h:6 -#: hacks/config/xjack.xml.h:3 hacks/config/xmatrix.xml.h:16 -#: hacks/config/xmountains.xml.h:5 hacks/config/xrayswarm.xml.h:4 -#: hacks/config/zoom.xml.h:7 +#: hacks/config/twang.xml.h:10 hacks/config/vines.xml.h:5 +#: hacks/config/webcollage.xml.h:8 hacks/config/whirlygig.xml.h:4 +#: hacks/config/worm.xml.h:8 hacks/config/xearth.xml.h:25 +#: hacks/config/xflame.xml.h:6 hacks/config/xjack.xml.h:3 +#: hacks/config/xmatrix.xml.h:16 hacks/config/xmountains.xml.h:5 +#: hacks/config/xrayswarm.xml.h:4 hacks/config/zoom.xml.h:7 msgid "Speed" msgstr "Velocidad" @@ -750,14 +1065,15 @@ msgstr "Truchet" msgid "Twelve Sided Cells" msgstr "" -#: hacks/config/ant.xml.h:21 hacks/config/attraction.xml.h:32 -#: hacks/config/bouboule.xml.h:11 hacks/config/braid.xml.h:13 -#: hacks/config/critical.xml.h:8 hacks/config/crystal.xml.h:13 -#: hacks/config/cynosure.xml.h:11 hacks/config/deco.xml.h:10 -#: hacks/config/deluxe.xml.h:14 hacks/config/demon.xml.h:13 -#: hacks/config/discrete.xml.h:11 hacks/config/drift.xml.h:14 -#: hacks/config/epicycle.xml.h:13 hacks/config/fadeplot.xml.h:12 -#: hacks/config/flag.xml.h:13 hacks/config/flame.xml.h:15 +#: hacks/config/ant.xml.h:21 hacks/config/apollonian.xml.h:13 +#: hacks/config/attraction.xml.h:32 hacks/config/bouboule.xml.h:11 +#: hacks/config/braid.xml.h:13 hacks/config/critical.xml.h:8 +#: hacks/config/crystal.xml.h:13 hacks/config/cynosure.xml.h:11 +#: hacks/config/deco.xml.h:10 hacks/config/deluxe.xml.h:14 +#: hacks/config/demon.xml.h:13 hacks/config/discrete.xml.h:11 +#: hacks/config/drift.xml.h:14 hacks/config/epicycle.xml.h:13 +#: hacks/config/euler2d.xml.h:17 hacks/config/fadeplot.xml.h:12 +#: hacks/config/flag.xml.h:13 hacks/config/flame.xml.h:16 #: hacks/config/flow.xml.h:18 hacks/config/forest.xml.h:8 #: hacks/config/galaxy.xml.h:13 hacks/config/grav.xml.h:11 #: hacks/config/halo.xml.h:12 hacks/config/hopalong.xml.h:25 @@ -768,18 +1084,52 @@ msgstr "" #: hacks/config/loop.xml.h:12 hacks/config/moire.xml.h:11 #: hacks/config/moire2.xml.h:9 hacks/config/mountain.xml.h:9 #: hacks/config/nerverot.xml.h:23 hacks/config/penrose.xml.h:13 -#: hacks/config/rd-bomb.xml.h:20 hacks/config/rocks.xml.h:12 -#: hacks/config/rotor.xml.h:13 hacks/config/shadebobs.xml.h:12 -#: hacks/config/sierpinski.xml.h:12 hacks/config/slip.xml.h:12 -#: hacks/config/sphere.xml.h:8 hacks/config/spiral.xml.h:12 -#: hacks/config/squiral.xml.h:18 hacks/config/starfish.xml.h:14 -#: hacks/config/strange.xml.h:11 hacks/config/swirl.xml.h:9 +#: hacks/config/polyominoes.xml.h:12 hacks/config/rd-bomb.xml.h:20 +#: hacks/config/rocks.xml.h:12 hacks/config/rotor.xml.h:13 +#: hacks/config/shadebobs.xml.h:12 hacks/config/sierpinski.xml.h:12 +#: hacks/config/slip.xml.h:12 hacks/config/sphere.xml.h:8 +#: hacks/config/spiral.xml.h:12 hacks/config/squiral.xml.h:18 +#: hacks/config/starfish.xml.h:14 hacks/config/strange.xml.h:11 +#: hacks/config/swirl.xml.h:9 hacks/config/thornbird.xml.h:13 #: hacks/config/triangle.xml.h:8 hacks/config/vines.xml.h:7 #: hacks/config/worm.xml.h:9 hacks/config/xearth.xml.h:28 #: hacks/config/xfishtank.xml.h:11 msgid "Two" msgstr "Dos" +#: hacks/config/apollonian.xml.h:1 +msgid "Apollonian" +msgstr "" + +#: hacks/config/apollonian.xml.h:2 +#, fuzzy +msgid "Deep" +msgstr "Más denso" + +#: hacks/config/apollonian.xml.h:3 +msgid "Depth" +msgstr "" + +#: hacks/config/apollonian.xml.h:4 +#, fuzzy +msgid "Draw Labels" +msgstr "Células" + +#: hacks/config/apollonian.xml.h:6 +msgid "Include Alternate Geometries" +msgstr "" + +#: hacks/config/apollonian.xml.h:9 +msgid "" +"Packs a large circle with smaller circles, demonstrating the Descartes " +"Circle Theorem. Written by Allan R. Wilks and David Bagley." +msgstr "" + +#: hacks/config/apollonian.xml.h:10 +#, fuzzy +msgid "Shallow" +msgstr "Lento" + #: hacks/config/atlantis.xml.h:1 msgid "Agressive" msgstr "" @@ -820,19 +1170,22 @@ msgstr "Velocidad" msgid "Shimmering Water" msgstr "" -#: hacks/config/atlantis.xml.h:11 hacks/config/bubble3d.xml.h:4 -#: hacks/config/cage.xml.h:3 hacks/config/circuit.xml.h:9 +#: hacks/config/atlantis.xml.h:11 hacks/config/boxed.xml.h:5 +#: hacks/config/bubble3d.xml.h:4 hacks/config/cage.xml.h:3 +#: hacks/config/circuit.xml.h:9 hacks/config/cubenetic.xml.h:21 #: hacks/config/dangerball.xml.h:4 hacks/config/engine.xml.h:4 -#: hacks/config/extrusion.xml.h:10 hacks/config/flipscreen3d.xml.h:4 -#: hacks/config/gears.xml.h:7 hacks/config/gflux.xml.h:11 -#: hacks/config/glplanet.xml.h:5 hacks/config/gltext.xml.h:12 -#: hacks/config/lament.xml.h:5 hacks/config/menger.xml.h:15 -#: hacks/config/moebius.xml.h:6 hacks/config/molecule.xml.h:21 -#: hacks/config/morph3d.xml.h:5 hacks/config/pipes.xml.h:13 -#: hacks/config/pulsar.xml.h:14 hacks/config/rubik.xml.h:6 -#: hacks/config/sierpinski3d.xml.h:6 hacks/config/sproingies.xml.h:4 -#: hacks/config/stairs.xml.h:2 hacks/config/starwars.xml.h:11 -#: hacks/config/superquadrics.xml.h:6 +#: hacks/config/extrusion.xml.h:10 hacks/config/flipscreen3d.xml.h:5 +#: hacks/config/fluidballs.xml.h:17 hacks/config/gears.xml.h:6 +#: hacks/config/gflux.xml.h:11 hacks/config/glforestfire.xml.h:13 +#: hacks/config/glplanet.xml.h:5 hacks/config/glsnake.xml.h:10 +#: hacks/config/gltext.xml.h:12 hacks/config/lament.xml.h:5 +#: hacks/config/menger.xml.h:15 hacks/config/moebius.xml.h:6 +#: hacks/config/molecule.xml.h:21 hacks/config/morph3d.xml.h:5 +#: hacks/config/pipes.xml.h:14 hacks/config/pulsar.xml.h:14 +#: hacks/config/rubik.xml.h:6 hacks/config/sballs.xml.h:12 +#: hacks/config/sierpinski3d.xml.h:6 hacks/config/spheremonics.xml.h:18 +#: hacks/config/sproingies.xml.h:4 hacks/config/stairs.xml.h:2 +#: hacks/config/starwars.xml.h:11 hacks/config/superquadrics.xml.h:6 msgid "Show Frames-per-Second" msgstr "" @@ -840,14 +1193,15 @@ msgstr "" msgid "Shy" msgstr "" -#: hacks/config/atlantis.xml.h:14 hacks/config/cage.xml.h:5 -#: hacks/config/extrusion.xml.h:12 hacks/config/gears.xml.h:9 -#: hacks/config/glplanet.xml.h:7 hacks/config/gltext.xml.h:14 +#: hacks/config/atlantis.xml.h:14 hacks/config/boxed.xml.h:7 +#: hacks/config/cage.xml.h:5 hacks/config/extrusion.xml.h:12 +#: hacks/config/gears.xml.h:8 hacks/config/glplanet.xml.h:7 +#: hacks/config/glsnake.xml.h:13 hacks/config/gltext.xml.h:14 #: hacks/config/menger.xml.h:17 hacks/config/molecule.xml.h:23 #: hacks/config/munch.xml.h:8 hacks/config/sierpinski3d.xml.h:9 -#: hacks/config/speedmine.xml.h:14 hacks/config/sproingies.xml.h:7 -#: hacks/config/stairs.xml.h:4 hacks/config/stonerview.xml.h:2 -#: hacks/config/superquadrics.xml.h:8 +#: hacks/config/speedmine.xml.h:14 hacks/config/spheremonics.xml.h:21 +#: hacks/config/sproingies.xml.h:7 hacks/config/stairs.xml.h:4 +#: hacks/config/stonerview.xml.h:2 hacks/config/superquadrics.xml.h:8 msgid "Solid" msgstr "Sólido" @@ -863,15 +1217,18 @@ msgstr "" msgid "Whale Speed" msgstr "Velocidad" -#: hacks/config/atlantis.xml.h:17 hacks/config/cage.xml.h:8 -#: hacks/config/dangerball.xml.h:11 hacks/config/extrusion.xml.h:19 -#: hacks/config/gears.xml.h:12 hacks/config/glplanet.xml.h:11 -#: hacks/config/gltext.xml.h:18 hacks/config/lament.xml.h:9 -#: hacks/config/menger.xml.h:21 hacks/config/moebius.xml.h:11 -#: hacks/config/molecule.xml.h:26 hacks/config/pulsar.xml.h:20 +#: hacks/config/atlantis.xml.h:17 hacks/config/boxed.xml.h:8 +#: hacks/config/cage.xml.h:8 hacks/config/dangerball.xml.h:11 +#: hacks/config/extrusion.xml.h:19 hacks/config/gears.xml.h:11 +#: hacks/config/glforestfire.xml.h:20 hacks/config/glplanet.xml.h:11 +#: hacks/config/glsnake.xml.h:16 hacks/config/gltext.xml.h:18 +#: hacks/config/lament.xml.h:9 hacks/config/menger.xml.h:21 +#: hacks/config/moebius.xml.h:11 hacks/config/molecule.xml.h:26 +#: hacks/config/pulsar.xml.h:20 hacks/config/sballs.xml.h:18 #: hacks/config/sierpinski3d.xml.h:12 hacks/config/speedmine.xml.h:18 -#: hacks/config/sproingies.xml.h:10 hacks/config/stairs.xml.h:7 -#: hacks/config/stonerview.xml.h:4 hacks/config/superquadrics.xml.h:11 +#: hacks/config/spheremonics.xml.h:26 hacks/config/sproingies.xml.h:10 +#: hacks/config/stairs.xml.h:7 hacks/config/stonerview.xml.h:4 +#: hacks/config/superquadrics.xml.h:11 msgid "Wireframe" msgstr "" @@ -888,7 +1245,7 @@ msgstr "Cantidad" msgid "Ball Mass" msgstr "" -#: hacks/config/attraction.xml.h:4 +#: hacks/config/attraction.xml.h:4 hacks/config/fluidballs.xml.h:2 #, fuzzy msgid "Balls" msgstr "Barras" @@ -914,15 +1271,17 @@ msgid "Filled Splines" msgstr "Muestra polilíneas coloreadas" #: hacks/config/attraction.xml.h:10 hacks/config/ccurve.xml.h:9 +#: hacks/config/cubenetic.xml.h:10 hacks/config/euler2d.xml.h:5 #: hacks/config/flame.xml.h:9 hacks/config/goop.xml.h:6 #: hacks/config/hopalong.xml.h:10 hacks/config/hyperball.xml.h:3 #: hacks/config/hypercube.xml.h:3 hacks/config/interference.xml.h:6 #: hacks/config/kumppa.xml.h:4 hacks/config/nerverot.xml.h:11 #: hacks/config/petri.xml.h:8 hacks/config/pyro.xml.h:5 #: hacks/config/qix.xml.h:10 hacks/config/speedmine.xml.h:5 -#: hacks/config/spiral.xml.h:4 hacks/config/squiral.xml.h:6 -#: hacks/config/strange.xml.h:3 hacks/config/superquadrics.xml.h:4 -#: hacks/config/t3d.xml.h:7 hacks/config/wander.xml.h:8 +#: hacks/config/spheremonics.xml.h:6 hacks/config/spiral.xml.h:4 +#: hacks/config/squiral.xml.h:6 hacks/config/strange.xml.h:3 +#: hacks/config/superquadrics.xml.h:4 hacks/config/t3d.xml.h:7 +#: hacks/config/twang.xml.h:5 hacks/config/wander.xml.h:8 msgid "High" msgstr "Alto" @@ -957,26 +1316,30 @@ msgstr "Vines" #: hacks/config/attraction.xml.h:16 hacks/config/braid.xml.h:6 #: hacks/config/cynosure.xml.h:5 hacks/config/drift.xml.h:8 -#: hacks/config/galaxy.xml.h:5 hacks/config/laser.xml.h:5 +#: hacks/config/euler2d.xml.h:6 hacks/config/galaxy.xml.h:5 +#: hacks/config/juggle.xml.h:5 hacks/config/laser.xml.h:5 #: hacks/config/menger.xml.h:4 hacks/config/munch.xml.h:4 #: hacks/config/nerverot.xml.h:13 hacks/config/petri.xml.h:9 -#: hacks/config/rotor.xml.h:5 hacks/config/shadebobs.xml.h:4 -#: hacks/config/sierpinski3d.xml.h:3 hacks/config/wander.xml.h:10 +#: hacks/config/polyominoes.xml.h:4 hacks/config/rotor.xml.h:5 +#: hacks/config/shadebobs.xml.h:4 hacks/config/sierpinski3d.xml.h:3 +#: hacks/config/spheremonics.xml.h:7 hacks/config/wander.xml.h:10 #: hacks/config/whirlwindwarp.xml.h:3 #, fuzzy msgid "Long" msgstr "Más largo" #: hacks/config/attraction.xml.h:17 hacks/config/ccurve.xml.h:10 -#: hacks/config/goop.xml.h:7 hacks/config/hopalong.xml.h:14 -#: hacks/config/hyperball.xml.h:6 hacks/config/hypercube.xml.h:5 -#: hacks/config/interference.xml.h:9 hacks/config/kumppa.xml.h:6 -#: hacks/config/nerverot.xml.h:14 hacks/config/petri.xml.h:10 -#: hacks/config/pyro.xml.h:7 hacks/config/qix.xml.h:13 -#: hacks/config/speedmine.xml.h:6 hacks/config/spiral.xml.h:5 +#: hacks/config/cubenetic.xml.h:12 hacks/config/euler2d.xml.h:7 +#: hacks/config/flame.xml.h:10 hacks/config/goop.xml.h:7 +#: hacks/config/hopalong.xml.h:14 hacks/config/hyperball.xml.h:6 +#: hacks/config/hypercube.xml.h:5 hacks/config/interference.xml.h:9 +#: hacks/config/kumppa.xml.h:6 hacks/config/nerverot.xml.h:14 +#: hacks/config/petri.xml.h:10 hacks/config/pyro.xml.h:7 +#: hacks/config/qix.xml.h:13 hacks/config/speedmine.xml.h:6 +#: hacks/config/spheremonics.xml.h:8 hacks/config/spiral.xml.h:5 #: hacks/config/squiral.xml.h:8 hacks/config/strange.xml.h:4 #: hacks/config/superquadrics.xml.h:5 hacks/config/t3d.xml.h:8 -#: hacks/config/wander.xml.h:11 +#: hacks/config/twang.xml.h:7 hacks/config/wander.xml.h:11 msgid "Low" msgstr "Bajo" @@ -1004,12 +1367,13 @@ msgstr "Punto de activaci #: hacks/config/attraction.xml.h:25 hacks/config/braid.xml.h:10 #: hacks/config/cynosure.xml.h:8 hacks/config/drift.xml.h:11 -#: hacks/config/galaxy.xml.h:8 hacks/config/laser.xml.h:9 -#: hacks/config/menger.xml.h:14 hacks/config/munch.xml.h:6 -#: hacks/config/nerverot.xml.h:19 hacks/config/petri.xml.h:22 +#: hacks/config/euler2d.xml.h:12 hacks/config/galaxy.xml.h:8 +#: hacks/config/laser.xml.h:9 hacks/config/menger.xml.h:14 +#: hacks/config/munch.xml.h:6 hacks/config/nerverot.xml.h:19 +#: hacks/config/petri.xml.h:22 hacks/config/polyominoes.xml.h:9 #: hacks/config/rotor.xml.h:9 hacks/config/shadebobs.xml.h:8 -#: hacks/config/sierpinski3d.xml.h:5 hacks/config/wander.xml.h:12 -#: hacks/config/whirlwindwarp.xml.h:6 +#: hacks/config/sierpinski3d.xml.h:5 hacks/config/spheremonics.xml.h:17 +#: hacks/config/wander.xml.h:12 hacks/config/whirlwindwarp.xml.h:6 #, fuzzy msgid "Short" msgstr "Más corto" @@ -1024,7 +1388,8 @@ msgstr "Sproingies" msgid "Tails" msgstr "Rastros" -#: hacks/config/attraction.xml.h:31 +#: hacks/config/attraction.xml.h:31 hacks/config/euler2d.xml.h:16 +#: hacks/config/juggle.xml.h:9 msgid "Trail Length" msgstr "" @@ -1041,10 +1406,12 @@ msgid "" msgstr "" #: hacks/config/blaster.xml.h:4 hacks/config/bouboule.xml.h:4 -#: hacks/config/coral.xml.h:8 hacks/config/flame.xml.h:7 -#: hacks/config/kaleidescope.xml.h:3 hacks/config/lisa.xml.h:3 -#: hacks/config/pedal.xml.h:4 hacks/config/petri.xml.h:7 -#: hacks/config/qix.xml.h:8 hacks/config/whirlwindwarp.xml.h:1 +#: hacks/config/coral.xml.h:8 hacks/config/cubenetic.xml.h:9 +#: hacks/config/euler2d.xml.h:4 hacks/config/flame.xml.h:7 +#: hacks/config/fluidballs.xml.h:4 hacks/config/kaleidescope.xml.h:3 +#: hacks/config/lisa.xml.h:3 hacks/config/pedal.xml.h:4 +#: hacks/config/petri.xml.h:7 hacks/config/qix.xml.h:8 +#: hacks/config/thornbird.xml.h:3 hacks/config/whirlwindwarp.xml.h:1 #: hacks/config/xfishtank.xml.h:4 msgid "Few" msgstr "" @@ -1118,6 +1485,25 @@ msgid "" "spots painted on its invisible surface. Written by Jeremie Petit." msgstr "" +#: hacks/config/boxed.xml.h:1 hacks/config/gears.xml.h:1 +#: hacks/config/gflux.xml.h:1 hacks/config/pyro.xml.h:1 +#: hacks/config/rd-bomb.xml.h:6 hacks/config/rocks.xml.h:1 +#: hacks/config/starwars.xml.h:1 hacks/config/xfishtank.xml.h:1 +#, fuzzy +msgid "Animation Speed" +msgstr "Animar" + +#: hacks/config/boxed.xml.h:2 +#, fuzzy +msgid "Boxed" +msgstr "BSoD" + +#: hacks/config/boxed.xml.h:3 +msgid "" +"Draws a box full of 3D bouncing balls that explode. Written by Sander van " +"Grieken." +msgstr "" + #: hacks/config/braid.xml.h:1 msgid "Braid" msgstr "Galones" @@ -1132,15 +1518,17 @@ msgstr "" #: hacks/config/ccurve.xml.h:7 hacks/config/coral.xml.h:6 #: hacks/config/cynosure.xml.h:3 hacks/config/deco.xml.h:4 #: hacks/config/drift.xml.h:2 hacks/config/epicycle.xml.h:3 -#: hacks/config/flame.xml.h:5 hacks/config/galaxy.xml.h:2 +#: hacks/config/euler2d.xml.h:1 hacks/config/flame.xml.h:5 +#: hacks/config/galaxy.xml.h:2 hacks/config/glsnake.xml.h:4 #: hacks/config/helix.xml.h:3 hacks/config/hopalong.xml.h:2 #: hacks/config/imsmap.xml.h:6 hacks/config/laser.xml.h:2 #: hacks/config/menger.xml.h:2 hacks/config/moire.xml.h:3 #: hacks/config/molecule.xml.h:9 hacks/config/munch.xml.h:2 #: hacks/config/nerverot.xml.h:8 hacks/config/pedal.xml.h:3 -#: hacks/config/penrose.xml.h:5 hacks/config/rorschach.xml.h:3 -#: hacks/config/rotzoomer.xml.h:5 hacks/config/shadebobs.xml.h:2 -#: hacks/config/sierpinski3d.xml.h:1 hacks/config/starfish.xml.h:2 +#: hacks/config/penrose.xml.h:5 hacks/config/polyominoes.xml.h:1 +#: hacks/config/rorschach.xml.h:3 hacks/config/rotzoomer.xml.h:5 +#: hacks/config/shadebobs.xml.h:2 hacks/config/sierpinski3d.xml.h:1 +#: hacks/config/spheremonics.xml.h:4 hacks/config/starfish.xml.h:2 #: hacks/config/vidwhacker.xml.h:3 hacks/config/wander.xml.h:7 #: hacks/config/xspirograph.xml.h:3 msgid "Duration" @@ -1193,7 +1581,7 @@ msgid "" msgstr "" #: hacks/config/bsod.xml.h:9 -msgid "MacOS" +msgid "Mac Bomb" msgstr "" #: hacks/config/bsod.xml.h:10 @@ -1210,20 +1598,29 @@ msgid "SCO" msgstr "" #: hacks/config/bsod.xml.h:13 +msgid "Sad Mac" +msgstr "" + +#: hacks/config/bsod.xml.h:14 #, fuzzy msgid "Solaris" msgstr "Estrella de mar" -#: hacks/config/bsod.xml.h:14 +#: hacks/config/bsod.xml.h:15 msgid "Sparc Linux" msgstr "" -#: hacks/config/bsod.xml.h:15 +#: hacks/config/bsod.xml.h:16 #, fuzzy msgid "Windows" msgstr "Window Maker" -#: hacks/config/bsod.xml.h:16 +#: hacks/config/bsod.xml.h:17 +#, fuzzy +msgid "Windows 2000" +msgstr "Window Maker" + +#: hacks/config/bsod.xml.h:18 #, fuzzy msgid "Windows NT" msgstr "Window Maker" @@ -1365,7 +1762,7 @@ msgstr "Color muerto" msgid "Parts" msgstr "Barras" -#: hacks/config/circuit.xml.h:7 hacks/config/flipscreen3d.xml.h:3 +#: hacks/config/circuit.xml.h:7 hacks/config/flipscreen3d.xml.h:4 #, fuzzy msgid "Rotate" msgstr "Rotación" @@ -1387,7 +1784,7 @@ msgstr "Compass" #: hacks/config/compass.xml.h:2 hacks/config/deluxe.xml.h:3 #: hacks/config/interference.xml.h:4 hacks/config/kumppa.xml.h:2 -#: hacks/config/nerverot.xml.h:6 +#: hacks/config/nerverot.xml.h:6 hacks/config/pipes.xml.h:4 msgid "Double Buffer" msgstr "" @@ -1454,7 +1851,7 @@ msgstr "Colores" #: hacks/config/cosmos.xml.h:2 msgid "" "Draws fireworks and zooming, fading flares. By Tom Campbell. You can find it " -"at " +"at <http://cosmos.dnsalias.net/cosmos/>" msgstr "" #: hacks/config/critical.xml.h:1 @@ -1474,7 +1871,7 @@ msgstr "Al centro de la pantalla" #: hacks/config/crystal.xml.h:2 hacks/config/deluxe.xml.h:1 #: hacks/config/fadeplot.xml.h:1 hacks/config/flow.xml.h:3 -#: hacks/config/galaxy.xml.h:1 hacks/config/gears.xml.h:2 +#: hacks/config/galaxy.xml.h:1 hacks/config/glforestfire.xml.h:1 #: hacks/config/grav.xml.h:1 hacks/config/julia.xml.h:1 #: hacks/config/laser.xml.h:1 hacks/config/lisa.xml.h:1 #: hacks/config/lissie.xml.h:2 hacks/config/morph3d.xml.h:2 @@ -1497,7 +1894,8 @@ msgstr "Cristal" msgid "Draw Cell" msgstr "Células" -#: hacks/config/crystal.xml.h:5 hacks/config/xearth.xml.h:6 +#: hacks/config/crystal.xml.h:5 hacks/config/spheremonics.xml.h:3 +#: hacks/config/xearth.xml.h:6 msgid "Draw Grid" msgstr "" @@ -1517,6 +1915,106 @@ msgstr "" msgid "Vertical Symmetries" msgstr "Degradado vertical" +#: hacks/config/cubenetic.xml.h:1 +msgid "Boxes" +msgstr "" + +#: hacks/config/cubenetic.xml.h:2 +#, fuzzy +msgid "Cubenetic" +msgstr "Grisnética" + +#: hacks/config/cubenetic.xml.h:3 +#, fuzzy +msgid "Display Solid Colors" +msgstr "Muestra una pantalla de sonar." + +#: hacks/config/cubenetic.xml.h:4 +#, fuzzy +msgid "Display Surface Patterns" +msgstr "Muestra estática." + +#: hacks/config/cubenetic.xml.h:5 +#, fuzzy +msgid "Display Wireframe" +msgstr "Mostrar un juego de acción" + +#: hacks/config/cubenetic.xml.h:6 hacks/config/gltext.xml.h:2 +#: hacks/config/menger.xml.h:1 hacks/config/molecule.xml.h:4 +#: hacks/config/spheremonics.xml.h:1 +msgid "Don't Rotate" +msgstr "" + +#: hacks/config/cubenetic.xml.h:7 +msgid "" +"Draws a pulsating set of overlapping boxes with ever-chaning blobby patterns " +"undulating across their surfaces. It's sort of a cubist Lavalite. Written by " +"Jamie Zawinski." +msgstr "" + +#: hacks/config/cubenetic.xml.h:14 hacks/config/gltext.xml.h:5 +#: hacks/config/menger.xml.h:7 hacks/config/molecule.xml.h:14 +#: hacks/config/spheremonics.xml.h:10 +msgid "Rotate around X and Y axes" +msgstr "" + +#: hacks/config/cubenetic.xml.h:15 hacks/config/gltext.xml.h:6 +#: hacks/config/menger.xml.h:8 hacks/config/molecule.xml.h:15 +#: hacks/config/spheremonics.xml.h:11 +msgid "Rotate around X and Z axes" +msgstr "" + +#: hacks/config/cubenetic.xml.h:16 hacks/config/gltext.xml.h:7 +#: hacks/config/menger.xml.h:9 hacks/config/molecule.xml.h:16 +#: hacks/config/spheremonics.xml.h:12 +msgid "Rotate around X axis" +msgstr "" + +#: hacks/config/cubenetic.xml.h:17 hacks/config/gltext.xml.h:8 +#: hacks/config/menger.xml.h:10 hacks/config/molecule.xml.h:17 +#: hacks/config/spheremonics.xml.h:13 +msgid "Rotate around Y and Z axes" +msgstr "" + +#: hacks/config/cubenetic.xml.h:18 hacks/config/gltext.xml.h:9 +#: hacks/config/menger.xml.h:11 hacks/config/molecule.xml.h:18 +#: hacks/config/spheremonics.xml.h:14 +msgid "Rotate around Y axis" +msgstr "" + +#: hacks/config/cubenetic.xml.h:19 hacks/config/gltext.xml.h:10 +#: hacks/config/menger.xml.h:12 hacks/config/molecule.xml.h:19 +#: hacks/config/spheremonics.xml.h:15 +msgid "Rotate around Z axis" +msgstr "" + +#: hacks/config/cubenetic.xml.h:20 hacks/config/gltext.xml.h:11 +#: hacks/config/menger.xml.h:13 hacks/config/molecule.xml.h:20 +#: hacks/config/spheremonics.xml.h:16 +msgid "Rotate around all three axes" +msgstr "" + +#: hacks/config/cubenetic.xml.h:25 +msgid "Surface Pattern Complexity" +msgstr "" + +#: hacks/config/cubenetic.xml.h:26 +msgid "Surface Pattern Overlap" +msgstr "" + +#: hacks/config/cubenetic.xml.h:27 +msgid "Surface Pattern Speed" +msgstr "" + +#: hacks/config/cubenetic.xml.h:28 hacks/config/dangerball.xml.h:10 +#: hacks/config/engine.xml.h:8 hacks/config/glforestfire.xml.h:19 +#: hacks/config/gltext.xml.h:17 hacks/config/menger.xml.h:20 +#: hacks/config/molecule.xml.h:25 hacks/config/spheremonics.xml.h:25 +#: hacks/config/wander.xml.h:15 +#, fuzzy +msgid "Wander" +msgstr "selector:" + #: hacks/config/cynosure.xml.h:1 msgid "" "A hack similar to `greynetic', but less frenetic. The first implementation " @@ -1548,13 +2046,6 @@ msgstr "Cantidad" msgid "Spike Growth" msgstr "" -#: hacks/config/dangerball.xml.h:10 hacks/config/engine.xml.h:8 -#: hacks/config/gltext.xml.h:17 hacks/config/menger.xml.h:20 -#: hacks/config/molecule.xml.h:25 hacks/config/wander.xml.h:15 -#, fuzzy -msgid "Wander" -msgstr "selector:" - #: hacks/config/decayscreen.xml.h:1 #, fuzzy msgid "DecayScreen" @@ -1665,13 +2156,13 @@ msgid "Deluxe" msgstr "Deluxe" #: hacks/config/deluxe.xml.h:10 hacks/config/lmorph.xml.h:13 -#: hacks/config/starfish.xml.h:11 +#: hacks/config/starfish.xml.h:11 hacks/config/thornbird.xml.h:9 #, fuzzy msgid "Thick" msgstr "Grosor" #: hacks/config/deluxe.xml.h:11 hacks/config/lmorph.xml.h:14 -#: hacks/config/starfish.xml.h:12 +#: hacks/config/starfish.xml.h:12 hacks/config/thornbird.xml.h:11 #, fuzzy msgid "Thin" msgstr "Más fino" @@ -1750,7 +2241,8 @@ msgstr "Tama msgid "Magnify" msgstr "" -#: hacks/config/distort.xml.h:9 hacks/config/lament.xml.h:4 +#: hacks/config/distort.xml.h:9 hacks/config/glforestfire.xml.h:10 +#: hacks/config/lament.xml.h:4 hacks/config/sballs.xml.h:6 #, fuzzy msgid "Normal" msgstr " Normal" @@ -1774,7 +2266,7 @@ msgstr "" #: hacks/config/distort.xml.h:16 hacks/config/moire.xml.h:12 #: hacks/config/rd-bomb.xml.h:21 hacks/config/ripples.xml.h:15 #: hacks/config/rotzoomer.xml.h:10 hacks/config/swirl.xml.h:10 -#: hacks/config/xflame.xml.h:7 +#: hacks/config/twang.xml.h:15 hacks/config/xflame.xml.h:7 msgid "Use Shared Memory" msgstr "" @@ -1819,8 +2311,8 @@ msgid "" "the next animation. Periodically it uploades completed frames to the server, " "where they are compressed for distribution to all clients. This program is " "recommended only if you have a high bandwidth connection to the Internet. By " -"Scott Draves. You can find it at . See that " -"web site for configuration information." +"Scott Draves. You can find it at <http://www.electricsheep.org/>. See " +"that web site for configuration information." msgstr "" #: hacks/config/engine.xml.h:1 @@ -1853,6 +2345,26 @@ msgstr "" "Este salvapantalla dibuja la trayectoria de un punto sobre un círculo en " "rotación que se desplaza sobre otro círculo" +#: hacks/config/euler2d.xml.h:2 +msgid "Euler2d" +msgstr "" + +#: hacks/config/euler2d.xml.h:10 hacks/config/whirlwindwarp.xml.h:5 +#, fuzzy +msgid "Particles" +msgstr "Partículas en pantalla" + +#: hacks/config/euler2d.xml.h:11 +#, fuzzy +msgid "Power" +msgstr "Lento" + +#: hacks/config/euler2d.xml.h:13 +msgid "" +"Simulates two dimensional Incompressible Inviscid Fluid Flow. Written by " +"Stephen Montgomery-Smith." +msgstr "" + #: hacks/config/extrusion.xml.h:1 msgid "" "Draws various rotating extruded shapes that twist around, lengthen, and turn " @@ -1979,7 +2491,7 @@ msgstr "" msgid "Flame" msgstr "Xflame" -#: hacks/config/flame.xml.h:12 +#: hacks/config/flame.xml.h:13 #, fuzzy msgid "Number of Fractals" msgstr "Cantidad de rastros." @@ -1989,6 +2501,12 @@ msgstr "Cantidad de rastros." msgid "Flipscreen3d" msgstr "Slidescreen" +#: hacks/config/flipscreen3d.xml.h:3 +msgid "" +"Grabs an image of the desktop, turns it into a GL texture map, and spins it " +"around and deforms it in various ways. Written by Ben Buxton." +msgstr "" + #: hacks/config/flow.xml.h:1 msgid "Allow 2D Attractors" msgstr "" @@ -2027,7 +2545,77 @@ msgstr "" msgid "Zoom In and Out" msgstr "" -#: hacks/config/forest.xml.h:2 +#: hacks/config/fluidballs.xml.h:1 +#, fuzzy +msgid "Ball Size" +msgstr "Tamaño" + +#: hacks/config/fluidballs.xml.h:5 +#, fuzzy +msgid "FluidBalls" +msgstr "Barras" + +#: hacks/config/fluidballs.xml.h:6 +msgid "Freefall" +msgstr "" + +#: hacks/config/fluidballs.xml.h:7 hacks/config/twang.xml.h:4 +#, fuzzy +msgid "Friction" +msgstr "Atracción" + +#: hacks/config/fluidballs.xml.h:8 +#, fuzzy +msgid "Glass" +msgstr "Engranajes" + +#: hacks/config/fluidballs.xml.h:9 hacks/config/qix.xml.h:9 +#: hacks/config/speedmine.xml.h:4 +#, fuzzy +msgid "Gravity" +msgstr "Gravedad" + +#: hacks/config/fluidballs.xml.h:10 +msgid "Hurricane" +msgstr "" + +#: hacks/config/fluidballs.xml.h:11 +msgid "Jupiter" +msgstr "" + +#: hacks/config/fluidballs.xml.h:14 +msgid "" +"Models the physics of bouncing balls, or of particles in a gas or fluid, " +"depending on the settings. If \"Shake Box\" is selected, then every now and " +"then, the box will be rotated, changing which direction is down (in order to " +"keep the settled balls in motion.)" +msgstr "" + +#: hacks/config/fluidballs.xml.h:15 +#, fuzzy +msgid "Sandpaper" +msgstr "Sonar" + +#: hacks/config/fluidballs.xml.h:16 +#, fuzzy +msgid "Shake Box" +msgstr "Shadebobs" + +#: hacks/config/fluidballs.xml.h:21 hacks/config/glforestfire.xml.h:16 +#, fuzzy +msgid "Still" +msgstr "Revolver" + +#: hacks/config/fluidballs.xml.h:22 +msgid "Various Ball Sizes" +msgstr "" + +#: hacks/config/fluidballs.xml.h:23 +#, fuzzy +msgid "Wind" +msgstr "Gordo " + +#: hacks/config/forest.xml.h:2 hacks/config/glforestfire.xml.h:6 msgid "Forest" msgstr "Bosque" @@ -2056,35 +2644,27 @@ msgid "" "Siegmund." msgstr "" -#: hacks/config/gears.xml.h:1 hacks/config/gflux.xml.h:1 -#: hacks/config/pyro.xml.h:1 hacks/config/rd-bomb.xml.h:6 -#: hacks/config/rocks.xml.h:1 hacks/config/starwars.xml.h:1 -#: hacks/config/xfishtank.xml.h:1 -#, fuzzy -msgid "Animation Speed" -msgstr "Animar" - -#: hacks/config/gears.xml.h:4 +#: hacks/config/gears.xml.h:3 msgid "Gears" msgstr "Engranajes" -#: hacks/config/gears.xml.h:5 +#: hacks/config/gears.xml.h:4 msgid "Planetary Gear System" msgstr "" -#: hacks/config/gears.xml.h:6 hacks/config/goop.xml.h:9 +#: hacks/config/gears.xml.h:5 hacks/config/goop.xml.h:9 #, fuzzy msgid "Rotational Speed" msgstr "Rotación" -#: hacks/config/gears.xml.h:10 +#: hacks/config/gears.xml.h:9 msgid "" "This draws sets of turning, interlocking gears, rotating in three " "dimensions. Another GL hack, by Danny Sung, Brian Paul, Ed Mackey, and Jamie " "Zawinski." msgstr "" -#: hacks/config/gears.xml.h:11 +#: hacks/config/gears.xml.h:10 msgid "Three Gear System" msgstr "" @@ -2115,21 +2695,71 @@ msgstr "Densidad" #: hacks/config/gflux.xml.h:10 #, fuzzy -msgid "Screen Image" -msgstr "Salvapantalla" +msgid "Screen Image" +msgstr "Salvapantalla" + +#: hacks/config/gflux.xml.h:14 hacks/config/interference.xml.h:18 +#, fuzzy +msgid "Wave Speed" +msgstr "Velocidad" + +#: hacks/config/gflux.xml.h:15 +msgid "Waves" +msgstr "" + +#: hacks/config/gflux.xml.h:16 +msgid "Wire Mesh" +msgstr "" + +#: hacks/config/glforestfire.xml.h:2 +#, fuzzy +msgid "Desert" +msgstr "Más denso" + +#: hacks/config/glforestfire.xml.h:3 +msgid "" +"Draws an animation of sprinkling fire-like 3D triangles in a landscape " +"filled with trees. Requires OpenGL, and a machine with fast hardware support " +"for texture maps. Written by Eric Lassauge <lassauge@mail.dotcom.fr>." +msgstr "" + +#: hacks/config/glforestfire.xml.h:5 +msgid "Fog" +msgstr "" + +#: hacks/config/glforestfire.xml.h:7 +#, fuzzy +msgid "GLForestFire" +msgstr "Bosque" + +#: hacks/config/glforestfire.xml.h:8 +#, fuzzy +msgid "Huge Fire" +msgstr "Tipo de letra del Usuario" + +#: hacks/config/glforestfire.xml.h:9 +msgid "No shadow" +msgstr "" + +#: hacks/config/glforestfire.xml.h:11 +#, fuzzy +msgid "Number of trees" +msgstr "Número de ciclos" -#: hacks/config/gflux.xml.h:14 hacks/config/interference.xml.h:18 +#: hacks/config/glforestfire.xml.h:12 #, fuzzy -msgid "Wave Speed" -msgstr "Velocidad" +msgid "Rain" +msgstr "Rotación" -#: hacks/config/gflux.xml.h:15 -msgid "Waves" +#: hacks/config/glforestfire.xml.h:17 +msgid "Track mouse" msgstr "" -#: hacks/config/gflux.xml.h:16 -msgid "Wire Mesh" -msgstr "" +#: hacks/config/glforestfire.xml.h:18 hacks/config/lament.xml.h:8 +#: hacks/config/sballs.xml.h:17 +#, fuzzy +msgid "Untextured" +msgstr "Centrado" #: hacks/config/glplanet.xml.h:1 msgid "" @@ -2147,57 +2777,73 @@ msgstr "Planeta GL" msgid "Image File" msgstr "" -#: hacks/config/gltext.xml.h:1 +#: hacks/config/glsnake.xml.h:1 +msgid "1" +msgstr "" + +#: hacks/config/glsnake.xml.h:2 hacks/config/penrose.xml.h:2 +#, fuzzy +msgid "30 Seconds" +msgstr "Segundos" + +#: hacks/config/glsnake.xml.h:3 msgid "" -"Displays a few lines of text spinning around in a solid 3D font. Written by " -"Jamie Zawinski." +"Draws a simulation of the Rubik's Snake puzzle. Written by Jamie Wilkinson, " +"Andrew Bennetts, and Peter Aylett." msgstr "" -#: hacks/config/gltext.xml.h:2 hacks/config/menger.xml.h:1 -#: hacks/config/molecule.xml.h:4 -msgid "Don't Rotate" +#: hacks/config/glsnake.xml.h:6 +msgid "GlSnake" msgstr "" -#: hacks/config/gltext.xml.h:4 +#: hacks/config/glsnake.xml.h:7 #, fuzzy -msgid "GLText" -msgstr "Izquierda" +msgid "Loose" +msgstr "Puntos" -#: hacks/config/gltext.xml.h:5 hacks/config/menger.xml.h:7 -#: hacks/config/molecule.xml.h:14 -msgid "Rotate around X and Y axes" +#: hacks/config/glsnake.xml.h:8 +msgid "Packing" msgstr "" -#: hacks/config/gltext.xml.h:6 hacks/config/menger.xml.h:8 -#: hacks/config/molecule.xml.h:15 -msgid "Rotate around X and Z axes" -msgstr "" +#: hacks/config/glsnake.xml.h:9 +#, fuzzy +msgid "Scary Colors" +msgstr "Color secundario" -#: hacks/config/gltext.xml.h:7 hacks/config/menger.xml.h:9 -#: hacks/config/molecule.xml.h:16 -msgid "Rotate around X axis" +#: hacks/config/glsnake.xml.h:11 +msgid "Show Labels" msgstr "" -#: hacks/config/gltext.xml.h:8 hacks/config/menger.xml.h:10 -#: hacks/config/molecule.xml.h:17 -msgid "Rotate around Y and Z axes" -msgstr "" +#: hacks/config/glsnake.xml.h:14 +#, fuzzy +msgid "Tight" +msgstr "Derecha" -#: hacks/config/gltext.xml.h:9 hacks/config/menger.xml.h:11 -#: hacks/config/molecule.xml.h:18 -msgid "Rotate around Y axis" +#: hacks/config/glsnake.xml.h:15 hacks/config/rocks.xml.h:13 +msgid "Velocity" msgstr "" -#: hacks/config/gltext.xml.h:10 hacks/config/menger.xml.h:12 -#: hacks/config/molecule.xml.h:19 -msgid "Rotate around Z axis" -msgstr "" +#: hacks/config/glsnake.xml.h:17 +#, fuzzy +msgid "Y Rotation" +msgstr "Rotación" -#: hacks/config/gltext.xml.h:11 hacks/config/menger.xml.h:13 -#: hacks/config/molecule.xml.h:20 -msgid "Rotate around all three axes" +#: hacks/config/glsnake.xml.h:18 +#, fuzzy +msgid "Z Rotation" +msgstr "Rotación" + +#: hacks/config/gltext.xml.h:1 +msgid "" +"Displays a few lines of text spinning around in a solid 3D font. Written by " +"Jamie Zawinski." msgstr "" +#: hacks/config/gltext.xml.h:4 +#, fuzzy +msgid "GLText" +msgstr "Izquierda" + #: hacks/config/gltext.xml.h:16 hacks/config/noseguy.xml.h:5 #, fuzzy msgid "Text" @@ -2210,7 +2856,7 @@ msgstr "" #: hacks/config/goban.xml.h:2 msgid "" "Replays historical games of go (aka wei-chi and baduk) on the screen. By " -"Scott Draves. You can find it at ." +"Scott Draves. You can find it at <http://www.draves.org/goban/>." msgstr "" #: hacks/config/goop.xml.h:1 @@ -2560,6 +3206,22 @@ msgid "" "puzzle is solved. Written by Jamie Zawinski." msgstr "" +#: hacks/config/juggle.xml.h:1 +msgid "Checkered Balls" +msgstr "" + +#: hacks/config/juggle.xml.h:2 +msgid "Draws a juggling stick-man. Written by Tim Auckland." +msgstr "" + +#: hacks/config/juggle.xml.h:4 +msgid "Juggle" +msgstr "" + +#: hacks/config/juggle.xml.h:6 hacks/config/pipes.xml.h:10 +msgid "None" +msgstr "Ninguno" + #: hacks/config/julia.xml.h:3 hacks/config/rorschach.xml.h:4 msgid "Iterations" msgstr "Iteraciones" @@ -2628,11 +3290,6 @@ msgstr "" msgid "Lament" msgstr "Lament" -#: hacks/config/lament.xml.h:8 -#, fuzzy -msgid "Untextured" -msgstr "Centrado" - #: hacks/config/laser.xml.h:4 msgid "Laser" msgstr "Láser" @@ -2830,23 +3487,6 @@ msgstr "S msgid "Solid Objects" msgstr "" -#: hacks/config/moire2.xml.h:1 -msgid "" -"Another example of the fun you can have with moire interference patterns; " -"this hack generates fields of concentric circles or ovals, and combines the " -"planes with various operations. The planes are moving independently of one " -"another, causing the interference lines to ``spray.'' Written by Jamie " -"Zawinski." -msgstr "" - -#: hacks/config/moire2.xml.h:4 -msgid "Moire2" -msgstr "Moire2" - -#: hacks/config/moire2.xml.h:8 -msgid "Thickness" -msgstr "Grosor" - #: hacks/config/moire.xml.h:6 msgid "Moire" msgstr "Moire" @@ -2866,6 +3506,23 @@ msgid "" "hack metric''." msgstr "" +#: hacks/config/moire2.xml.h:1 +msgid "" +"Another example of the fun you can have with moire interference patterns; " +"this hack generates fields of concentric circles or ovals, and combines the " +"planes with various operations. The planes are moving independently of one " +"another, causing the interference lines to ``spray.'' Written by Jamie " +"Zawinski." +msgstr "" + +#: hacks/config/moire2.xml.h:4 +msgid "Moire2" +msgstr "Moire2" + +#: hacks/config/moire2.xml.h:8 hacks/config/thornbird.xml.h:10 +msgid "Thickness" +msgstr "Grosor" + #: hacks/config/molecule.xml.h:3 msgid "Describe Molecule" msgstr "" @@ -2879,7 +3536,7 @@ msgstr "" msgid "Draw Atoms" msgstr "Duración (ms)" -#: hacks/config/molecule.xml.h:7 +#: hacks/config/molecule.xml.h:7 hacks/config/spheremonics.xml.h:2 msgid "Draw Bounding Box" msgstr "" @@ -3061,11 +3718,6 @@ msgid "" "Miller." msgstr "" -#: hacks/config/penrose.xml.h:2 -#, fuzzy -msgid "30 Seconds" -msgstr "Segundos" - #: hacks/config/penrose.xml.h:3 msgid "Draw Ammann Lines" msgstr "" @@ -3205,47 +3857,57 @@ msgstr "Tratamiento" msgid "Curved Pipes" msgstr "" -#: hacks/config/pipes.xml.h:5 +#: hacks/config/pipes.xml.h:6 msgid "Fisheye Lens" msgstr "" -#: hacks/config/pipes.xml.h:6 +#: hacks/config/pipes.xml.h:7 msgid "Gadgetry" msgstr "" -#: hacks/config/pipes.xml.h:7 +#: hacks/config/pipes.xml.h:8 msgid "" "If you've ever been in the same room with a Windows NT machine, you've " "probably seen this GL hack. This version is by Marcelo Vianna." msgstr "" -#: hacks/config/pipes.xml.h:8 +#: hacks/config/pipes.xml.h:9 #, fuzzy msgid "Lots" msgstr "Puntos" -#: hacks/config/pipes.xml.h:9 -msgid "None" -msgstr "Ninguno" - -#: hacks/config/pipes.xml.h:10 +#: hacks/config/pipes.xml.h:11 #, fuzzy msgid "Number of Pipe Systems" msgstr "Cantidad de semillas" -#: hacks/config/pipes.xml.h:11 +#: hacks/config/pipes.xml.h:12 #, fuzzy msgid "Pipe Fittings" msgstr "Parámetros" -#: hacks/config/pipes.xml.h:12 +#: hacks/config/pipes.xml.h:13 msgid "Pipes" msgstr "Tuberías" -#: hacks/config/pipes.xml.h:16 +#: hacks/config/pipes.xml.h:17 msgid "System Length" msgstr "" +#: hacks/config/polyominoes.xml.h:3 +msgid "Identical Pieces" +msgstr "" + +#: hacks/config/polyominoes.xml.h:7 +msgid "Polyominoes" +msgstr "" + +#: hacks/config/polyominoes.xml.h:8 +msgid "" +"Repeatedly attempts to completely fill a rectangle with irregularly-shaped " +"puzzle pieces. Written by Stephen Montgomery-Smith." +msgstr "" + #: hacks/config/pulsar.xml.h:1 msgid "Anti-alias Lines" msgstr "" @@ -3342,11 +4004,6 @@ msgstr "Color vivo" msgid "Corners" msgstr "Cerca" -#: hacks/config/qix.xml.h:9 hacks/config/speedmine.xml.h:4 -#, fuzzy -msgid "Gravity" -msgstr "Gravedad" - #: hacks/config/qix.xml.h:11 #, fuzzy msgid "Line Segments" @@ -3430,7 +4087,7 @@ msgstr "" msgid "Seed Radius" msgstr "Radio" -#: hacks/config/rd-bomb.xml.h:19 +#: hacks/config/rd-bomb.xml.h:19 hacks/config/twang.xml.h:12 #, fuzzy msgid "Tile Size" msgstr "Tamaño" @@ -3512,10 +4169,6 @@ msgid "" "glasses! Mostly written by Jamie Zawinski." msgstr "" -#: hacks/config/rocks.xml.h:13 -msgid "Velocity" -msgstr "" - #: hacks/config/rorschach.xml.h:7 msgid "Rorschach" msgstr "Rorschach" @@ -3599,6 +4252,58 @@ msgstr "Cubo de Rubik" msgid "Show Shuffling" msgstr "" +#: hacks/config/sballs.xml.h:1 +msgid "Cube" +msgstr "" + +#: hacks/config/sballs.xml.h:2 +msgid "Dodecahedron" +msgstr "" + +#: hacks/config/sballs.xml.h:3 +msgid "" +"Draws an animation of textured balls spinning like crazy in GL. Requires " +"OpenGL, and a machine with fast hardware support for texture maps. Written " +"by Eric Lassauge <lassauge@mail.dotcom.fr>." +msgstr "" + +#: hacks/config/sballs.xml.h:5 +msgid "Icosahedron" +msgstr "" + +#: hacks/config/sballs.xml.h:7 +msgid "Octahedron" +msgstr "" + +#: hacks/config/sballs.xml.h:8 +#, fuzzy +msgid "Plane" +msgstr "Planeta GL" + +#: hacks/config/sballs.xml.h:9 +#, fuzzy +msgid "Pyramid" +msgstr "Galones" + +#: hacks/config/sballs.xml.h:10 +#, fuzzy +msgid "Random" +msgstr " Aleatorio)" + +#: hacks/config/sballs.xml.h:11 +#, fuzzy +msgid "Sballs" +msgstr "Pequeño" + +#: hacks/config/sballs.xml.h:15 +#, fuzzy +msgid "Star" +msgstr "Escaleras" + +#: hacks/config/sballs.xml.h:16 +msgid "Tetrahedron" +msgstr "" + #: hacks/config/shadebobs.xml.h:7 #, fuzzy msgid "ShadeBobs" @@ -3613,6 +4318,16 @@ msgstr "" "Dibuja patrones oscilantes, sombreados y ovalados, que recuerdan a rastros " "de vapor." +#: hacks/config/sierpinski.xml.h:6 +msgid "Sierpinski" +msgstr "Sierpinski" + +#: hacks/config/sierpinski.xml.h:10 +msgid "" +"This draws the two-dimensional variant of the recursive Sierpinski triangle " +"fractal. Written by Desmond Daignault." +msgstr "" + #: hacks/config/sierpinski3d.xml.h:7 #, fuzzy msgid "Sierpinski3D" @@ -3624,17 +4339,8 @@ msgid "" "triangle fractal, using GL. Written by Tim Robinson and Jamie Zawinski." msgstr "" -#: hacks/config/sierpinski.xml.h:6 -msgid "Sierpinski" -msgstr "Sierpinski" - -#: hacks/config/sierpinski.xml.h:10 -msgid "" -"This draws the two-dimensional variant of the recursive Sierpinski triangle " -"fractal. Written by Desmond Daignault." -msgstr "" - -#: hacks/config/slidescreen.xml.h:1 hacks/config/zoom.xml.h:1 +#: hacks/config/slidescreen.xml.h:1 hacks/config/twang.xml.h:1 +#: hacks/config/zoom.xml.h:1 msgid "Border Width" msgstr "" @@ -3752,6 +4458,17 @@ msgstr "Truchet" msgid "Worm" msgstr "Orugas" +#: hacks/config/sphere.xml.h:1 +msgid "" +"Another of the classic screenhacks of the distant past, this one draws " +"shaded spheres in multiple colors. This hack traces its lineage back to Tom " +"Duff in 1982." +msgstr "" + +#: hacks/config/sphere.xml.h:7 +msgid "Sphere" +msgstr "Esfera" + #: hacks/config/sphereEversion.xml.h:1 #, fuzzy msgid "SphereEversion" @@ -3765,20 +4482,31 @@ msgid "" "itself. This program animates what is known as the Thurston Eversion. " "Written by Nathaniel Thurston and Michael McGuffin. This program is not " "included with the XScreenSaver package, but if you don't have it already, " -"you can find it at ." +"you can find it at <http://www.dgp.utoronto.ca/~mjmcguff/eversion/>." msgstr "" -#: hacks/config/sphere.xml.h:1 -msgid "" -"Another of the classic screenhacks of the distant past, this one draws " -"shaded spheres in multiple colors. This hack traces its lineage back to Tom " -"Duff in 1982." +#: hacks/config/spheremonics.xml.h:9 +#, fuzzy +msgid "Resolution" +msgstr "Acción predeterminada" + +#: hacks/config/spheremonics.xml.h:20 +msgid "Smoothed Lines" msgstr "" -#: hacks/config/sphere.xml.h:7 -msgid "Sphere" +#: hacks/config/spheremonics.xml.h:23 +#, fuzzy +msgid "Spheremonics" msgstr "Esfera" +#: hacks/config/spheremonics.xml.h:24 +msgid "" +"These closed objects are commonly called spherical harmonics, although they " +"are only remotely related to the mathematical definition found in the " +"solution to certain wave functions, most notable the eigenfunctions of " +"angular momentum operators. Written by Paul Bourke and Jamie Zawinski." +msgstr "" + #: hacks/config/spiral.xml.h:2 msgid "Cycles" msgstr "Ciclos" @@ -3826,7 +4554,7 @@ msgstr "" msgid "Left" msgstr "Izquierda" -#: hacks/config/squiral.xml.h:11 +#: hacks/config/squiral.xml.h:11 hacks/config/twang.xml.h:8 #, fuzzy msgid "Randomness" msgstr "Aleatorio" @@ -3847,11 +4575,16 @@ msgstr "" msgid "" "SSystem is a GL Solar System simulator. It simulates flybys of Sun, the nine " "planets and a few major satellites, with four camera modes. Written by Raul " -"Alonso. This is not included with the XScreenSaver package, but if you don't " -"have it already, you can find it at . " -"Note: this program doesn't work as a screen saver on all systems, because it " -"doesn't communicate with xscreensaver properly. It happens to work with some " -"window managers, but not with others, so your mileage may vary." +"Alonso. This is not included with the XScreenSaver package, but is packaged " +"separately. Note: SSystem does not work as a screen saver on all systems, " +"because it doesn't communicate with xscreensaver properly. It happens to " +"work with some window managers, but not with others, so your mileage may " +"vary. SSystem was once available at <http://www1.las.es/~amil/ssystem/" +">, but is now gone. You may still be able to find copies elsewhere. " +"SSystem has since evolved into two different programs: OpenUniverse (http://" +"openuniverse.sourceforge.net/) and Celestia (http://www.shatters.net/" +"celestia/). Sadly, neither of these programs work with xscreensaver at all. " +"You are encouraged to nag their authors into adding xscreensaver support!" msgstr "" #: hacks/config/stairs.xml.h:6 @@ -4049,6 +4782,21 @@ msgstr "" msgid "Wobbliness" msgstr "Burbujas" +#: hacks/config/thornbird.xml.h:1 +msgid "" +"Displays a view of the ``Bird in a Thornbush'' fractal. Written by Tim " +"Auckland." +msgstr "" + +#: hacks/config/thornbird.xml.h:6 +#, fuzzy +msgid "Points" +msgstr "Puntos:" + +#: hacks/config/thornbird.xml.h:12 +msgid "Thornbird" +msgstr "" + #: hacks/config/triangle.xml.h:2 #, fuzzy msgid "" @@ -4072,6 +4820,31 @@ msgstr "" msgid "Truchet" msgstr "Truchet" +#: hacks/config/twang.xml.h:2 +msgid "" +"Divides the screen into a grid, and plucks them. Written by Dan Bornstein." +msgstr "" + +#: hacks/config/twang.xml.h:6 +#, fuzzy +msgid "Jumpy" +msgstr "Bumps" + +#: hacks/config/twang.xml.h:11 +#, fuzzy +msgid "Springiness" +msgstr "Sproingies" + +#: hacks/config/twang.xml.h:13 +#, fuzzy +msgid "Transference" +msgstr "Transparente" + +#: hacks/config/twang.xml.h:14 +#, fuzzy +msgid "Twang" +msgstr "Triángulo" + #: hacks/config/vermiculate.xml.h:1 msgid "Draws squiggly worm-like paths. Written by Tyler Pierce." msgstr "" @@ -4166,11 +4939,6 @@ msgid "" "and off at random. By Paul 'Joey' Clark." msgstr "" -#: hacks/config/whirlwindwarp.xml.h:5 -#, fuzzy -msgid "Particles" -msgstr "Partículas en pantalla" - #: hacks/config/whirlwindwarp.xml.h:7 #, fuzzy msgid "Trail Size" @@ -4212,7 +4980,7 @@ msgid "" "XaoS generates fast fly-through animations of the Mandelbrot and other " "fractal sets. Written by Thomas Marsh and Jan Hubicka. This is not included " "with the XScreenSaver package, but if you don't have it already, you can " -"find it at ." +"find it at <http://limax.paru.cas.cz/~hubicka/XaoS/>." msgstr "" #: hacks/config/xdaliclock.xml.h:1 @@ -4263,7 +5031,7 @@ msgid "" "XDaliClock draws a large digital clock, the numbers of which change by " "``melting'' into their new shapes. Written by Jamie Zawinski. This is not " "included with the XScreenSaver package, but if you don't have it already, " -"you can find it at ." +"you can find it at <http://www.jwz.org/xdaliclock/>." msgstr "" #: hacks/config/xearth.xml.h:1 @@ -4357,8 +5125,8 @@ msgid "" "XEarth draws an image of the Earth, as seen from your favorite vantage point " "in space, correctly shaded for the current position of the Sun. Written by " "Kirk Johnson. This is not included with the XScreenSaver package, but if you " -"don't have it already, you can find it at ." +"don't have it already, you can find it at <http://www.cs.colorado.edu/" +"~tuna/xearth/>." msgstr "" #: hacks/config/xearth.xml.h:32 @@ -4378,8 +5146,8 @@ msgstr "Velocidad" #: hacks/config/xfishtank.xml.h:7 msgid "" "Fish! This is not included with the XScreenSaver package, but if you don't " -"have it already, you can find it at ." +"have it already, you can find it at <http://metalab.unc.edu/pub/Linux/X11/" +"demos/>." msgstr "" #: hacks/config/xfishtank.xml.h:12 @@ -4497,9 +5265,9 @@ msgid "" "XMountains generates realistic-looking fractal terrains of snow-capped " "mountains near water, with either a top view or a side view. Written by " "Stephen Booth. This is not included with the XScreenSaver package, but if " -"you don't have it already, you can find it at . Be sure to compile it with -DVROOT or it won't work right when " -"launched by the xscreensaver daemon." +"you don't have it already, you can find it at <http://www.epcc.ed.ac.uk/" +"~spb/xmountains/>. Be sure to compile it with -DVROOT or it won't work " +"right when launched by the xscreensaver daemon." msgstr "" #: hacks/config/xmountains.xml.h:8 @@ -4520,7 +5288,7 @@ msgstr "" #: hacks/config/xsnow.xml.h:1 msgid "" "Draws falling snow and the occasional tiny Santa. By Rick Jansen. You can " -"find it at ." +"find it at <http://www.euronet.nl/~rja/Xsnow/>." msgstr "" #: hacks/config/xsnow.xml.h:2 @@ -4612,15 +5380,9 @@ msgstr "" #~ msgid "Disabled" #~ msgstr "Desactivado" -#~ msgid "Color" -#~ msgstr "Color" - #~ msgid "Primary Color" #~ msgstr "Color primario" -#~ msgid "Secondary Color" -#~ msgstr "Color secundario" - #~ msgid "Wallpaper Selection" #~ msgstr "Selección del fondo" @@ -5086,9 +5848,6 @@ msgstr "" #~ msgid "Size of point." #~ msgstr "Tamaño de los puntos." -#~ msgid "Slower" -#~ msgstr "Lento" - #~ msgid "Speed of Motion." #~ msgstr "Velocidad de la animación." @@ -5160,9 +5919,6 @@ msgstr "" #~ "Este salvapantalla dibuja unos galones trenzados en círculo con colores " #~ "que cambian al azar cíclicamente." -#~ msgid "Bsod" -#~ msgstr "BSoD" - #~ msgid "Bsod simulates crash screens from other operating systems." #~ msgstr "BSoD simula las pantallas de fallo de varios sistemas operativos." @@ -5626,9 +6382,6 @@ msgstr "" #~ "nuevo \n" #~ "lugar en la pantalla." -#~ msgid "Mono" -#~ msgstr "Mono" - #~ msgid "Number of segments per laser burst." #~ msgstr "Número de segmentos por disparo láser." @@ -5680,9 +6433,6 @@ msgstr "" #~ "«Lmorph» transforma dibujos simples de línea usando interpolación " #~ "bilineal." -#~ msgid "Points:" -#~ msgstr "Puntos:" - #~ msgid "" #~ "Sverre H. Huseby & Glenn T. Lines " @@ -5850,9 +6600,6 @@ msgstr "" #~ msgid "Time to show each picture." #~ msgstr "Tiempo para mostrar cada dibujo." -#~ msgid "Display an arcade game" -#~ msgstr "Mostrar un juego de acción" - #~ msgid "3d pipes flow around the screen" #~ msgstr "Tuberías 3D fluyen por la pantalla" @@ -5946,9 +6693,6 @@ msgstr "" #~ msgid "Oily" #~ msgstr "Aceitoso" -#~ msgid "Stir" -#~ msgstr "Revolver" - #~ msgid "Stir it up." #~ msgstr "Revuelto." @@ -5985,9 +6729,6 @@ msgstr "" #~ msgid "The famous, M.C. Escher, impossible stairs" #~ msgstr "Las famosas escaleras imposibles de M.C. Eschers" -#~ msgid " Random)" -#~ msgstr " Aleatorio)" - #~ msgid "Change the animation step delay." #~ msgstr "Cambia el retardo en ciclos." @@ -6022,9 +6763,6 @@ msgstr "" #~ msgid "Use raw shapes " #~ msgstr "Utilizar formas rústicas" -#~ msgid "Wide" -#~ msgstr "Gordo " - #~ msgid "Random mountain ranges" #~ msgstr "Rangos aleatorios de montañas" @@ -6077,9 +6815,6 @@ msgstr "" #~ msgid "Roll" #~ msgstr "Rodar" -#~ msgid "Static." -#~ msgstr "Estática." - #~ msgid "Vertical roll." #~ msgstr "Ruedo vertical." @@ -6117,15 +6852,9 @@ msgstr "" #~ msgid " minutes after screen saver has started." #~ msgstr " minutos después de haberse iniciado el salvapantalla." -#~ msgid "Screen Saver Demo" -#~ msgstr "Demostración del salvapantalla" - #~ msgid "Configure the settings of the screensaver" #~ msgstr "Configurar el salvapantalla" -#~ msgid "Screensaver" -#~ msgstr "Salvapantalla" - #~ msgid "" #~ "an initialization error occurred while starting 'sound-properties-" #~ "capplet'." @@ -6240,9 +6969,6 @@ msgstr "" #~ msgid "Select a theme to install" #~ msgstr "Seleccione un tema a instalar" -#~ msgid "Available Themes" -#~ msgstr "Temas disponibles" - #~ msgid "" #~ "Auto\n" #~ "Preview" @@ -6263,9 +6989,6 @@ msgstr "" #~ msgid "Use custom font." #~ msgstr "Usar un tipo de letra personalizada." -#~ msgid "Home directory doesn't exist!\n" -#~ msgstr "¡El directorio personal no existe!\n" - #~ msgid "Theme does not exist" #~ msgstr "El tema no existe" @@ -6339,9 +7062,6 @@ msgstr "" #~ msgid "Dialog buttons" #~ msgstr "Botones de diálogo" -#~ msgid "Default value" -#~ msgstr "Valor predeterminado" - #~ msgid "Spread buttons out" #~ msgstr "Espaciar los botones" @@ -6547,9 +7267,6 @@ msgstr "" #~ msgid "Name:" #~ msgstr "Nombre:" -#~ msgid "Command:" -#~ msgstr "Comando:" - #~ msgid "Configuration Command:" #~ msgstr "Comando para la configuración:" @@ -6685,11 +7402,3 @@ msgstr "" #~ msgid "If the solver can " #~ msgstr "Si el resolutor puede " - -#: driver/screensaver-properties.desktop.in:3 -msgid "Screensaver" -msgstr "Propiedades Salvapantallas" - -#: driver/screensaver-properties.desktop.in:4 -msgid "Configure the settings of the screensaver." -msgstr "Configurar el salvapantalla" diff --git a/utils/version.h b/utils/version.h index 93407d96..a3423d0a 100644 --- a/utils/version.h +++ b/utils/version.h @@ -1,2 +1,2 @@ static const char screensaver_id[] = - "@(#)xscreensaver 4.04 (28-May-2002), by Jamie Zawinski (jwz@jwz.org)"; + "@(#)xscreensaver 4.05 (28-May-2002), by Jamie Zawinski (jwz@jwz.org)"; diff --git a/xscreensaver.lsm b/xscreensaver.lsm index 52c4e93e..3eb277be 100644 --- a/xscreensaver.lsm +++ b/xscreensaver.lsm @@ -1,7 +1,7 @@ Begin3 Title: xscreensaver -Version: 4.04 -Entered-date: 31MAY02 +Version: 4.05 +Entered-date: 11JUN02 Description: A modular screen saver and locker for the X Window System. Highly customizable: allows the use of any program that can draw on the root window as a display mode. @@ -10,15 +10,15 @@ Keywords: screen saver, screen lock, lock, xlock, X11 Author: jwz@jwz.org (Jamie Zawinski) Maintained-by: jwz@jwz.org (Jamie Zawinski) Primary-site: http://www.jwz.org/xscreensaver/ - xscreensaver-4.04.tar.gz + 2913K xscreensaver-4.05.tar.gz 59K xscreensaver.README 1K xscreensaver.lsm Alternate-site: sunsite.unc.edu /pub/Linux/X11/screensavers/ - xscreensaver-4.04.tar.gz + 2913K xscreensaver-4.05.tar.gz 59K xscreensaver.README 1K xscreensaver.lsm Alternate-site: ftp.x.org /contrib/applications/ - xscreensaver-4.04.tar.gz + 2913K xscreensaver-4.05.tar.gz 59K xscreensaver.README 1K xscreensaver.lsm Platforms: Linux, Irix, SunOS, Solaris, HPUX, AIX, FreeBSD, NetBSD, diff --git a/xscreensaver.spec b/xscreensaver.spec index 088bacbc..8c73ef8b 100644 --- a/xscreensaver.spec +++ b/xscreensaver.spec @@ -1,5 +1,5 @@ %define name xscreensaver -%define version 4.04 +%define version 4.05 %define release 1 %define serial 1 %define x11_prefix /usr/X11R6