From c85f503f5793839a6be4c818332aca4a96927bb2 Mon Sep 17 00:00:00 2001 From: Zygo Blaxell Date: Mon, 13 Aug 2018 12:54:16 -0400 Subject: [PATCH] From http://www.jwz.org/xscreensaver/xscreensaver-5.40.tar.gz -rw-rw-r-- 1 zblaxell zblaxell 12248135 Aug 12 19:49 xscreensaver-5.40.tar.gz 82c7433fe008e6ea9ab8683cf3325a673b8a8233 xscreensaver-5.40.tar.gz --- OSX/README | 34 +- OSX/SaverRunner.plist | 10 +- OSX/Updater.plist | 10 +- OSX/XScreenSaver.plist | 4 +- OSX/bindist.rtf | 4 +- OSX/build-fntable.pl | 5 +- OSX/grabclient-osx.m | 3 +- OSX/iSaverRunner.plist | 10 +- OSX/ios-function-table.m | 6 +- OSX/updates.xml | 22 +- OSX/xscreensaver.xcodeproj/project.pbxproj | 447 ++++++++- README | 12 + android/Makefile | 34 +- android/README | 35 +- android/build.gradle | 16 +- .../gradle/wrapper/gradle-wrapper.properties | 4 +- .../.idea/caches/build_file_checksums.ser | Bin 521 -> 521 bytes ...le__android_arch_core_common_1_1_0_jar.xml | 11 + ...radle__android_arch_core_runtime_1_1_0.xml | 12 + ...ndroid_arch_lifecycle_common_1_1_0_jar.xml | 11 + ...oid_arch_lifecycle_livedata_core_1_1_0.xml | 12 + ...__android_arch_lifecycle_runtime_1_1_0.xml | 12 + ...android_arch_lifecycle_viewmodel_1_1_0.xml | 12 + ...support_support_annotations_27_1_1_jar.xml | 11 + ..._android_support_support_compat_27_1_1.xml | 12 + ...android_support_support_core_ui_27_1_1.xml | 12 + ...roid_support_support_core_utils_27_1_1.xml | 12 + ...ndroid_support_support_fragment_27_1_1.xml | 12 + ...id_support_support_media_compat_27_1_1.xml | 12 + ..._com_android_support_support_v4_27_1_1.xml | 12 + android/xscreensaver/.idea/misc.xml | 27 +- android/xscreensaver/.idea/workspace.xml | 898 ++++++++++++------ android/xscreensaver/build.gradle | 9 +- android/xscreensaver/jni/Android.mk | 1 + android/xscreensaver/jni/Application.mk | 3 +- .../src/org/jwz/xscreensaver/Activity.java | 116 ++- .../src/org/jwz/xscreensaver/jwxyz.java | 39 + android/xscreensaver/xscreensaver.iml | 55 +- configure | 3 +- configure.in | 1 + driver/Makefile.in | 2 +- driver/XScreenSaver.ad.in | 12 +- driver/XScreenSaver_ad.h | 8 +- driver/xscreensaver-getimage-file | 204 +++- driver/xscreensaver-getimage.c | 6 +- hacks/Makefile.in | 237 ++++- hacks/analogtv.c | 163 +--- hacks/analogtv.h | 18 +- hacks/bsod.c | 1 + hacks/compile_axp.com | 3 + hacks/compile_decc.com | 3 + hacks/config/README | 4 +- hacks/config/apple2.xml | 8 +- hacks/config/bsod.xml | 8 +- hacks/config/cubestorm.xml | 52 +- hacks/config/dymaxionmap.xml | 74 +- hacks/config/filmleader.xml | 42 + hacks/config/glitchpeg.xml | 38 + hacks/config/glplanet.xml | 10 +- hacks/config/m6502.xml | 8 +- hacks/config/maze3d.xml | 2 +- hacks/config/pong.xml | 5 +- hacks/config/tessellimage.xml | 25 +- hacks/config/vfeedback.xml | 39 + hacks/config/xanalogtv.xml | 18 +- hacks/filmleader.c | 571 +++++++++++ hacks/filmleader.man | 69 ++ hacks/glitchpeg.c | 440 +++++++++ hacks/glitchpeg.man | 79 ++ hacks/glx/Makefile.in | 182 +++- hacks/glx/crumbler.c | 79 +- hacks/glx/cubestorm.c | 152 ++- hacks/glx/dnalogo.c | 103 +- hacks/glx/dymaxionmap-coords.c | 685 +++++++++++++ hacks/glx/dymaxionmap-coords.h | 6 + hacks/glx/dymaxionmap.c | 868 ++++++++++++++--- hacks/glx/dymaxionmap.man | 55 +- hacks/glx/glplanet.c | 318 +++++-- hacks/glx/glplanet.man | 37 +- hacks/glx/noof.c | 68 +- hacks/glx/quasicrystal.c | 4 +- hacks/glx/quickhull.c | 20 + hacks/glx/sonar-icmp.c | 6 +- hacks/glx/zalgo.txt | 10 + hacks/images/Makefile | 42 +- hacks/images/Makefile.in | 54 ++ hacks/images/dymaxionmap.png | Bin 152179 -> 0 bytes hacks/images/earth_flat.png | Bin 0 -> 16698 bytes hacks/images/testcard_bbcf.png | Bin 0 -> 67094 bytes hacks/images/testcard_pm5544.png | Bin 0 -> 20774 bytes hacks/images/testcard_rca.png | Bin 0 -> 96263 bytes hacks/interference.c | 6 +- hacks/recanim.c | 62 ++ hacks/recanim.h | 11 +- hacks/screenhackI.h | 4 + hacks/tessellimage.c | 287 +++--- hacks/testx11.c | 3 +- hacks/vfeedback.c | 628 ++++++++++++ hacks/vfeedback.man | 71 ++ hacks/xanalogtv.c | 191 ++-- hacks/xflame.c | 205 ++-- hacks/ximage-loader.c | 22 +- hacks/ximage-loader.h | 9 +- jwxyz/jwxyz-android.c | 7 +- jwxyz/jwxyz-cocoa.m | 4 +- jwxyz/jwxyz-common.c | 74 +- jwxyz/jwxyz-gl.c | 564 +++++++---- jwxyz/jwxyz-image.c | 7 +- jwxyz/jwxyz.h | 8 +- jwxyz/jwxyz.m | 16 +- jwxyz/jwxyzI.h | 19 +- jwxyz/jwzgles.c | 21 +- jwxyz/jwzglesI.h | 7 +- po/POTFILES.in | 5 +- setup.com | 3 + utils/Makefile.in | 13 +- utils/colorbars.c | 3 - utils/font-retry.c | 57 +- utils/font-retry.h | 4 + utils/utf8wc.c | 80 +- utils/version.h | 2 +- utils/visual-gl.c | 11 +- utils/xft.c | 18 +- xscreensaver.spec | 2 +- 124 files changed, 7581 insertions(+), 1642 deletions(-) create mode 100644 android/xscreensaver/.idea/libraries/Gradle__android_arch_core_common_1_1_0_jar.xml create mode 100644 android/xscreensaver/.idea/libraries/Gradle__android_arch_core_runtime_1_1_0.xml create mode 100644 android/xscreensaver/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_0_jar.xml create mode 100644 android/xscreensaver/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_0.xml create mode 100644 android/xscreensaver/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_0.xml create mode 100644 android/xscreensaver/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_0.xml create mode 100644 android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_annotations_27_1_1_jar.xml create mode 100644 android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_compat_27_1_1.xml create mode 100644 android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_core_ui_27_1_1.xml create mode 100644 android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_core_utils_27_1_1.xml create mode 100644 android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_fragment_27_1_1.xml create mode 100644 android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_media_compat_27_1_1.xml create mode 100644 android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_v4_27_1_1.xml create mode 100644 hacks/config/filmleader.xml create mode 100644 hacks/config/glitchpeg.xml create mode 100644 hacks/config/vfeedback.xml create mode 100644 hacks/filmleader.c create mode 100644 hacks/filmleader.man create mode 100644 hacks/glitchpeg.c create mode 100644 hacks/glitchpeg.man create mode 100644 hacks/glx/dymaxionmap-coords.c create mode 100644 hacks/glx/dymaxionmap-coords.h create mode 100644 hacks/images/Makefile.in delete mode 100644 hacks/images/dymaxionmap.png create mode 100644 hacks/images/earth_flat.png create mode 100644 hacks/images/testcard_bbcf.png create mode 100644 hacks/images/testcard_pm5544.png create mode 100644 hacks/images/testcard_rca.png create mode 100644 hacks/vfeedback.c create mode 100644 hacks/vfeedback.man diff --git a/OSX/README b/OSX/README index acf589b2..0799995a 100644 --- a/OSX/README +++ b/OSX/README @@ -18,25 +18,25 @@ ridiculously long list of steps! 3: Delete the dangerball.c and dangerball.xml files from Build Phases. 4: Delete the "DangerBall copy-Info.plist" file that got created. 5: Delete the "DangerBall copy-Info.plist" from the Build Settings too. - 6: - - 7: Manage Schemes, rename "DangerBall Copy". - 8: Move to the right place in the list. - 9: Scheme / Run / Info: Executable: SaverTester.app. - 10: Scheme / Run / Arguments: set SELECTED_SAVER environment variable. - 11: File / Add Files / the new .c and .xml. - 12: Select each file in the left pane; see Target Membership in the right - pane and add them to the new target, and to "XScreenSaver-iOS". - 13: Re-order them in the file list. - 14: In target "All Savers (OpenGL)" add the new target as Build Phases / + 6: Manage Schemes, rename "DangerBall Copy". + 7: Move to the right place in the list. + 8: Scheme / Run / Info: Executable: SaverTester.app. + 9: Scheme / Run / Arguments: set SELECTED_SAVER environment variable. + 10: File / Add Files / the new .c and .xml. + 11: Re-order them in the file list. This will bring up an Options dialog. + Add To Targets: the new target, and "XScreenSaver-iOS". + 12: The files might not have moved. This means Xcode is gonna crash soon. + It will repair itself after. + 13: In target "All Savers (OpenGL)" add the new target as Build Phases / Target Dependency. - 15: In target "XScreenSaver-iOS", reorder new files in Build Phases / + 14: In target "XScreenSaver-iOS", reorder new files in Build Phases / "Copy" and "Compile", since they showed up in a random place. - 16: In target "XScreenSaver-iOS", add "-DUSE_GL" to the new file's options. - 17: Put a 200x150 screen shot in ~/www/xscreensaver/screenshots/ - 18: ln -s ../../src/xscreensaver/OSX/build/Debug/NEW.saver \ + 15: In target "XScreenSaver-iOS", add "-DUSE_GL" to the new file's options. + 16: Put a 200x150 screen shot in ~/www/xscreensaver/screenshots/ + 17: ln -s ../../src/xscreensaver/OSX/build/Debug/NEW.saver \ ~/Library/Screen\ Savers/ - 19: git add xscreensaver.xcodeproj/xcuserdata/*/xcschemes/*.xcscheme - 20: Don't forget to create a man page from the XML with xml2man.pl, + 18: git add xscreensaver.xcodeproj/xcuserdata/*/xcschemes/*.xcscheme + 19: Don't forget to create a man page from the XML with xml2man.pl, and update Makefile.in. - 21: Make a video: -record-animation 3600 -delay 1 -geom 1920x1080+128+64 + 20: Make a video: -record-animation 3600 -delay 1 -geom 1920x1080+128+64 ./upload-video.pl NAME diff --git a/OSX/SaverRunner.plist b/OSX/SaverRunner.plist index 50216435..3ad0ce71 100644 --- a/OSX/SaverRunner.plist +++ b/OSX/SaverRunner.plist @@ -7,7 +7,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleGetInfoString - 5.39 + 5.40 CFBundleIconFile SaverRunner CFBundleIdentifier @@ -15,21 +15,21 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleLongVersionString - 5.39 + 5.40 CFBundleName ${PRODUCT_NAME} CFBundlePackageType APPL CFBundleShortVersionString - 5.39 + 5.40 CFBundleSignature ???? CFBundleVersion - 5.39 + 5.40 LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} NSHumanReadableCopyright - 5.39 + 5.40 NSMainNibFile SaverRunner NSPrincipalClass diff --git a/OSX/Updater.plist b/OSX/Updater.plist index 00e6b1bd..fd3b1765 100644 --- a/OSX/Updater.plist +++ b/OSX/Updater.plist @@ -9,7 +9,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleGetInfoString - 5.39 + 5.40 CFBundleIconFile SaverRunner CFBundleIdentifier @@ -17,23 +17,23 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleLongVersionString - 5.39 + 5.40 CFBundleName ${PRODUCT_NAME} CFBundlePackageType APPL CFBundleShortVersionString - 5.39 + 5.40 CFBundleSignature ???? CFBundleVersion - 5.39 + 5.40 LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} LSUIElement NSHumanReadableCopyright - 5.39 + 5.40 NSMainNibFile Updater NSPrincipalClass diff --git a/OSX/XScreenSaver.plist b/OSX/XScreenSaver.plist index 23e1eb67..34172952 100644 --- a/OSX/XScreenSaver.plist +++ b/OSX/XScreenSaver.plist @@ -15,11 +15,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 5.39 + 5.40 CFBundleSignature ???? CFBundleVersion - 5.39 + 5.40 LSMinimumSystemVersion 10.8 NSMainNibFile diff --git a/OSX/bindist.rtf b/OSX/bindist.rtf index a1e749d6..9d824318 100644 --- a/OSX/bindist.rtf +++ b/OSX/bindist.rtf @@ -16,8 +16,8 @@ \b0 by Jamie Zawinski\ and many others\ \ -version 5.39\ -12-Apr-2018\ +version 5.40\ +12-Aug-2018\ \ {\field{\*\fldinst{HYPERLINK "https://www.jwz.org/xscreensaver/"}}{\fldrslt \cf2 \ul \ulc2 https://www.jwz.org/xscreensaver/}}\ \pard\pardeftab720 diff --git a/OSX/build-fntable.pl b/OSX/build-fntable.pl index dc69dfec..c93343cf 100755 --- a/OSX/build-fntable.pl +++ b/OSX/build-fntable.pl @@ -1,5 +1,5 @@ #!/usr/bin/perl -w -# Copyright © 2012-2015 Jamie Zawinski +# Copyright © 2012-2018 Jamie Zawinski # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that @@ -23,7 +23,7 @@ require 5; use strict; my $progname = $0; $progname =~ s@.*/@@g; -my ($version) = ('$Revision: 1.5 $' =~ m/\s(\d[.\d]+)\s/s); +my ($version) = ('$Revision: 1.6 $' =~ m/\s(\d[.\d]+)\s/s); my $verbose = 1; @@ -31,6 +31,7 @@ my $verbose = 1; # my %disable = ( 'extrusion' => 1, + 'glitchpeg' => 1, 'lcdscrub' => 1, 'lockward' => 1, 'webcollage' => 1, diff --git a/OSX/grabclient-osx.m b/OSX/grabclient-osx.m index 045039d3..7bfdcb4f 100644 --- a/OSX/grabclient-osx.m +++ b/OSX/grabclient-osx.m @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1992-2017 Jamie Zawinski +/* xscreensaver, Copyright (c) 1992-2018 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -342,6 +342,7 @@ osx_grab_desktop_image (Screen *screen, Window xwindow, Drawable drawable, (NSString *)kCGWindowNumber]).intValue; } } + CFRelease (L); } // Grab a screen shot of those windows below this one diff --git a/OSX/iSaverRunner.plist b/OSX/iSaverRunner.plist index 517380e8..4604e9d3 100644 --- a/OSX/iSaverRunner.plist +++ b/OSX/iSaverRunner.plist @@ -9,7 +9,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleGetInfoString - 5.39 + 5.40 CFBundleIcons CFBundleIcons~ipad @@ -19,21 +19,21 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleLongVersionString - 5.39 + 5.40 CFBundleName ${PRODUCT_NAME} CFBundlePackageType APPL CFBundleShortVersionString - 5.39 + 5.40 CFBundleSignature ???? CFBundleVersion - 5.39 + 5.40 LSRequiresIPhoneOS NSHumanReadableCopyright - 5.39 + 5.40 NSMainNibFile iSaverRunner UIAppFonts diff --git a/OSX/ios-function-table.m b/OSX/ios-function-table.m index 3fb284a2..fcb28084 100644 --- a/OSX/ios-function-table.m +++ b/OSX/ios-function-table.m @@ -1,5 +1,5 @@ /* Generated file, do not edit. - Created: Tue Apr 10 17:04:05 2018 by build-fntable.pl 1.5. + Created: Sat Aug 4 21:35:23 2018 by build-fntable.pl 1.6. */ #import @@ -75,6 +75,7 @@ extern struct xscreensaver_function_table euler2d_xscreensaver_function_table, fadeplot_xscreensaver_function_table, fiberlamp_xscreensaver_function_table, + filmleader_xscreensaver_function_table, fireworkx_xscreensaver_function_table, flame_xscreensaver_function_table, flipflop_xscreensaver_function_table, @@ -217,6 +218,7 @@ extern struct xscreensaver_function_table unicrud_xscreensaver_function_table, unknownpleasures_xscreensaver_function_table, vermiculate_xscreensaver_function_table, + vfeedback_xscreensaver_function_table, vigilance_xscreensaver_function_table, voronoi_xscreensaver_function_table, wander_xscreensaver_function_table, @@ -312,6 +314,7 @@ NSDictionary *make_function_table_dict(void) [NSValue valueWithPointer:&euler2d_xscreensaver_function_table], @"euler2d", [NSValue valueWithPointer:&fadeplot_xscreensaver_function_table], @"fadeplot", [NSValue valueWithPointer:&fiberlamp_xscreensaver_function_table], @"fiberlamp", + [NSValue valueWithPointer:&filmleader_xscreensaver_function_table], @"filmleader", [NSValue valueWithPointer:&fireworkx_xscreensaver_function_table], @"fireworkx", [NSValue valueWithPointer:&flame_xscreensaver_function_table], @"flame", [NSValue valueWithPointer:&flipflop_xscreensaver_function_table], @"flipflop", @@ -454,6 +457,7 @@ NSDictionary *make_function_table_dict(void) [NSValue valueWithPointer:&unicrud_xscreensaver_function_table], @"unicrud", [NSValue valueWithPointer:&unknownpleasures_xscreensaver_function_table], @"unknownpleasures", [NSValue valueWithPointer:&vermiculate_xscreensaver_function_table], @"vermiculate", + [NSValue valueWithPointer:&vfeedback_xscreensaver_function_table], @"vfeedback", [NSValue valueWithPointer:&vigilance_xscreensaver_function_table], @"vigilance", [NSValue valueWithPointer:&voronoi_xscreensaver_function_table], @"voronoi", [NSValue valueWithPointer:&wander_xscreensaver_function_table], @"wander", diff --git a/OSX/updates.xml b/OSX/updates.xml index 2581d5cd..a4733a6f 100644 --- a/OSX/updates.xml +++ b/OSX/updates.xml @@ -7,6 +7,17 @@ https://www.jwz.org/xscreensaver/updates.xml Updates to xscreensaver. en + + Version 5.39 + https://www.jwz.org/xscreensaver/xscreensaver-5.39.dmg + • More heuristics for using RSS feeds as image sources.
• Android: Image loading works.
• Built-in image assets are now PNG instead of XPM or XBM.
• X11: Better font-loading fallback heuristics on systems with a terrible selection of installed fonts.
• macOS: Retina display-related bug fixes.]]>
+ Thu, 12 Apr 2018 13:00:37 -0700 + +
Version 5.38 https://www.jwz.org/xscreensaver/xscreensaver-5.38.dmg @@ -29,17 +40,6 @@ length="52481386" type="application/octet-stream" /> - - Version 5.36 - https://www.jwz.org/xscreensaver/xscreensaver-5.36.dmg - • macOS: loading image files works in `dymaxionmap', `glplanet', `lavalite', `pulsar', `gleidescope' and `extrusion'.
• Several new programs in `m6502'.
• `rotzoomer -mode circle'.
• Better titles in `photopile'.]]>
- Mon, 10 Oct 2016 19:59:35 -0700 - -
Version 5.34 https://www.jwz.org/xscreensaver/xscreensaver-5.34.dmg diff --git a/OSX/xscreensaver.xcodeproj/project.pbxproj b/OSX/xscreensaver.xcodeproj/project.pbxproj index ecd80f84..f5e98b81 100644 --- a/OSX/xscreensaver.xcodeproj/project.pbxproj +++ b/OSX/xscreensaver.xcodeproj/project.pbxproj @@ -70,11 +70,13 @@ AF77796509B6604A00EA3033 /* PBXTargetDependency */, AF77796309B6604A00EA3033 /* PBXTargetDependency */, AF77796109B6604A00EA3033 /* PBXTargetDependency */, + AFD77E7A20C241BE00A3638D /* PBXTargetDependency */, AF77795F09B6604A00EA3033 /* PBXTargetDependency */, AF77795D09B6604A00EA3033 /* PBXTargetDependency */, AF77795B09B6604A00EA3033 /* PBXTargetDependency */, AF77795909B6604A00EA3033 /* PBXTargetDependency */, AF77795709B6604A00EA3033 /* PBXTargetDependency */, + AFA6AB1120999A9A006D2685 /* PBXTargetDependency */, AF77795509B6604A00EA3033 /* PBXTargetDependency */, AF77795309B6604900EA3033 /* PBXTargetDependency */, AF77795109B6604900EA3033 /* PBXTargetDependency */, @@ -126,6 +128,7 @@ AF7778F309B6604600EA3033 /* PBXTargetDependency */, AF7778F109B6604600EA3033 /* PBXTargetDependency */, AF7778EF09B6604600EA3033 /* PBXTargetDependency */, + AF5ECEC92116B31F00069433 /* PBXTargetDependency */, AF7778ED09B6604600EA3033 /* PBXTargetDependency */, AFA33B8F0B0585A4002B0E7D /* PBXTargetDependency */, AFA33BCF0B0587B2002B0E7D /* PBXTargetDependency */, @@ -1594,6 +1597,7 @@ AF3EC991203517AE00180A35 /* peepers.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF3EC98F203517AD00180A35 /* peepers.xml */; }; AF3EC993203517CC00180A35 /* peepers.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3EC992203517CC00180A35 /* peepers.c */; }; AF3EC994203517CC00180A35 /* peepers.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3EC992203517CC00180A35 /* peepers.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF3FAD8F20C242DA00680000 /* analogtv.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4CFA09B5AC94006E59CF /* analogtv.c */; }; AF41E959201D49DB0098E253 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; AF41E95B201D49DB0098E253 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; AF41E95C201D49DB0098E253 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; @@ -1805,6 +1809,8 @@ AF4A3464102A5A0E00A81B2A /* surfaces.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4A3463102A5A0E00A81B2A /* surfaces.c */; }; AF4A6692191F7CAE00C74753 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; }; AF4A8CA010B609B50074B062 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; }; + AF4C300E208569AA00BE1DEF /* dymaxionmap-coords.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4C300D208569A900BE1DEF /* dymaxionmap-coords.c */; }; + AF4C300F208569AA00BE1DEF /* dymaxionmap-coords.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4C300D208569A900BE1DEF /* dymaxionmap-coords.c */; }; AF4FD6EC0CE7A486005EE58E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; AF4FD7010CE7A577005EE58E /* lockward.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4FD7000CE7A577005EE58E /* lockward.c */; }; AF4FD7030CE7A5BC005EE58E /* lockward.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF4FD7020CE7A5BC005EE58E /* lockward.xml */; }; @@ -1827,6 +1833,19 @@ AF5C9B121A0CCF4E00B0147A /* cityflow.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF5C9B0F1A0CCF4E00B0147A /* cityflow.xml */; }; AF5C9B131A0CCF4E00B0147A /* cityflow.c in Sources */ = {isa = PBXBuildFile; fileRef = AF5C9B101A0CCF4E00B0147A /* cityflow.c */; }; AF5C9B141A0CCF4E00B0147A /* cityflow.c in Sources */ = {isa = PBXBuildFile; fileRef = AF5C9B101A0CCF4E00B0147A /* cityflow.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF5ECEB02116B1A400069433 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; + AF5ECEB12116B1A400069433 /* analogtv.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4CFA09B5AC94006E59CF /* analogtv.c */; }; + AF5ECEB42116B1A400069433 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF5ECEB52116B1A400069433 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF5ECEB62116B1A400069433 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF2C31E515C0F7FE007A6896 /* QuartzCore.framework */; }; + AF5ECEB72116B1A400069433 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF5ECEB82116B1A400069433 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF5ECEB92116B1A400069433 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE0BC611A6B0D6200C098BF /* OpenGL.framework */; }; + AF5ECEBA2116B1A400069433 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AF78369617DB9F25003B9FC0 /* libz.dylib */; }; + AF5ECEC32116B2CC00069433 /* vfeedback.c in Sources */ = {isa = PBXBuildFile; fileRef = AF5ECEC22116B2CC00069433 /* vfeedback.c */; }; + AF5ECEC42116B2CC00069433 /* vfeedback.c in Sources */ = {isa = PBXBuildFile; fileRef = AF5ECEC22116B2CC00069433 /* vfeedback.c */; }; + AF5ECEC62116B2FE00069433 /* vfeedback.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF5ECEC52116B2FE00069433 /* vfeedback.xml */; }; + AF5ECEC72116B2FE00069433 /* vfeedback.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF5ECEC52116B2FE00069433 /* vfeedback.xml */; }; AF6048FB157C07C600CA21E4 /* jwzgles.c in Sources */ = {isa = PBXBuildFile; fileRef = AF6048F8157C07C600CA21E4 /* jwzgles.c */; }; AF6048FC157C07C600CA21E4 /* jwzgles.h in Headers */ = {isa = PBXBuildFile; fileRef = AF6048F9157C07C600CA21E4 /* jwzgles.h */; }; AF6048FD157C07C600CA21E4 /* jwzglesI.h in Headers */ = {isa = PBXBuildFile; fileRef = AF6048FA157C07C600CA21E4 /* jwzglesI.h */; }; @@ -2742,6 +2761,7 @@ AF939AD320351BFD0032DD23 /* font-retry.c in Sources */ = {isa = PBXBuildFile; fileRef = AF939AD220351BFC0032DD23 /* font-retry.c */; }; AF939AD52038C0050032DD23 /* luximr.ttf in Resources */ = {isa = PBXBuildFile; fileRef = AF939AD42038C0040032DD23 /* luximr.ttf */; }; AF939AD72038C5F00032DD23 /* luximr.ttf in Resources */ = {isa = PBXBuildFile; fileRef = AF939AD42038C0040032DD23 /* luximr.ttf */; }; + AF95C30420999B3E001924BE /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; }; AF975734099C317000B05160 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; AF97573F099C31BB00B05160 /* imsmap.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258CA0988A468000655EE /* imsmap.xml */; }; AF975741099C31DD00B05160 /* imsmap.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975740099C31DD00B05160 /* imsmap.c */; }; @@ -3077,6 +3097,16 @@ AFA5638F0993980D00F3E977 /* timetunnel.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5638E0993980D00F3E977 /* timetunnel.c */; }; AFA563B8099398F700F3E977 /* juggler3d.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D10988A468000655EE /* juggler3d.xml */; }; AFA563BA0993991300F3E977 /* juggler3d.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA563B90993991300F3E977 /* juggler3d.c */; }; + AFA6AAF720999950006D2685 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; + AFA6AAF920999950006D2685 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AFA6AAFA20999950006D2685 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AFA6AAFB20999950006D2685 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF2C31E515C0F7FE007A6896 /* QuartzCore.framework */; }; + AFA6AAFC20999950006D2685 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AFA6AAFD20999950006D2685 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AFA6AAFE20999950006D2685 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE0BC611A6B0D6200C098BF /* OpenGL.framework */; }; + AFA6AAFF20999950006D2685 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AF78369617DB9F25003B9FC0 /* libz.dylib */; }; + AFA6AB0D20999A60006D2685 /* glitchpeg.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFA6AB0C20999A60006D2685 /* glitchpeg.xml */; }; + AFA6AB0F20999A7B006D2685 /* glitchpeg.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA6AB0E20999A7B006D2685 /* glitchpeg.c */; }; AFAA6B451773F07800DE720C /* ios-function-table.m in Sources */ = {isa = PBXBuildFile; fileRef = AFAA6B441773F07700DE720C /* ios-function-table.m */; }; AFAAE38E207D6343007A515C /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; AFAAE390207D6343007A515C /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; @@ -3303,6 +3333,19 @@ AFD573630997411200BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; AFD573700997418D00BA26F7 /* strange.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2591D0988A469000655EE /* strange.xml */; }; AFD57372099741A200BA26F7 /* strange.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD57371099741A200BA26F7 /* strange.c */; }; + AFD77E6220C23F8600A3638D /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; + AFD77E6420C23F8600A3638D /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AFD77E6520C23F8600A3638D /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AFD77E6620C23F8600A3638D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF2C31E515C0F7FE007A6896 /* QuartzCore.framework */; }; + AFD77E6720C23F8600A3638D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AFD77E6820C23F8600A3638D /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AFD77E6920C23F8600A3638D /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE0BC611A6B0D6200C098BF /* OpenGL.framework */; }; + AFD77E6A20C23F8600A3638D /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AF78369617DB9F25003B9FC0 /* libz.dylib */; }; + AFD77E7320C2418000A3638D /* filmleader.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD77E7220C2417F00A3638D /* filmleader.c */; }; + AFD77E7420C2418000A3638D /* filmleader.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD77E7220C2417F00A3638D /* filmleader.c */; }; + AFD77E7520C2418000A3638D /* filmleader.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD77E7220C2417F00A3638D /* filmleader.c */; }; + AFD77E7720C2419600A3638D /* filmleader.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFD77E7620C2419600A3638D /* filmleader.xml */; }; + AFD77E7820C2419600A3638D /* filmleader.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFD77E7620C2419600A3638D /* filmleader.xml */; }; AFD9D5BE201E686B0070E99D /* ships.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD9D5BD201E686A0070E99D /* ships.c */; }; AFD9D5BF201E686B0070E99D /* ships.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD9D5BD201E686A0070E99D /* ships.c */; }; AFD9D5C0201E686B0070E99D /* ships.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD9D5BD201E686A0070E99D /* ships.c */; }; @@ -4549,6 +4592,20 @@ remoteGlobalIDString = AF5C9AF91A0CCE6E00B0147A; remoteInfo = Cityflow; }; + AF5ECEAB2116B1A400069433 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = AF4808C0098C3B6C00FB32B8; + remoteInfo = jwxyz; + }; + AF5ECEC82116B31F00069433 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = AF5ECEA92116B1A400069433; + remoteInfo = VFeedback; + }; AF633C031EE0BA6F00AB33BD /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; @@ -6789,6 +6846,20 @@ remoteGlobalIDString = AF4808C0098C3B6C00FB32B8; remoteInfo = jwxyz; }; + AFA6AAF220999950006D2685 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = AF4808C0098C3B6C00FB32B8; + remoteInfo = jwxyz; + }; + AFA6AB1020999A9A006D2685 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = AFA6AAF020999950006D2685; + remoteInfo = GlitchPEG; + }; AFAAE389207D6343007A515C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; @@ -7202,6 +7273,20 @@ remoteGlobalIDString = AF4808C0098C3B6C00FB32B8; remoteInfo = jwxyz; }; + AFD77E5D20C23F8600A3638D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = AF4808C0098C3B6C00FB32B8; + remoteInfo = jwxyz; + }; + AFD77E7920C241BE00A3638D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = AFD77E5B20C23F8600A3638D; + remoteInfo = FilmLeader; + }; AFDA6590178A52B70070D24B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; @@ -7676,6 +7761,7 @@ AF4A345D102A593600A81B2A /* Surfaces.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Surfaces.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4A3461102A59EB00A81B2A /* surfaces.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = surfaces.xml; sourceTree = ""; }; AF4A3463102A5A0E00A81B2A /* surfaces.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = surfaces.c; path = hacks/glx/surfaces.c; sourceTree = ""; }; + AF4C300D208569A900BE1DEF /* dymaxionmap-coords.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "dymaxionmap-coords.c"; path = "hacks/glx/dymaxionmap-coords.c"; sourceTree = ""; }; AF4FD6FA0CE7A486005EE58E /* Lockward.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Lockward.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4FD7000CE7A577005EE58E /* lockward.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = lockward.c; path = hacks/glx/lockward.c; sourceTree = ""; }; AF4FD7020CE7A5BC005EE58E /* lockward.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = lockward.xml; sourceTree = ""; }; @@ -7689,6 +7775,9 @@ AF5C9B0D1A0CCE6E00B0147A /* Cityflow.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Cityflow.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF5C9B0F1A0CCF4E00B0147A /* cityflow.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = cityflow.xml; sourceTree = ""; }; AF5C9B101A0CCF4E00B0147A /* cityflow.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cityflow.c; path = hacks/glx/cityflow.c; sourceTree = ""; }; + AF5ECEC02116B1A400069433 /* VFeedback.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = VFeedback.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF5ECEC22116B2CC00069433 /* vfeedback.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = vfeedback.c; path = hacks/vfeedback.c; sourceTree = ""; }; + AF5ECEC52116B2FE00069433 /* vfeedback.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = vfeedback.xml; sourceTree = ""; }; AF6048F8157C07C600CA21E4 /* jwzgles.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jwzgles.c; path = ../jwxyz/jwzgles.c; sourceTree = ""; }; AF6048F9157C07C600CA21E4 /* jwzgles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = jwzgles.h; path = ../jwxyz/jwzgles.h; sourceTree = ""; }; AF6048FA157C07C600CA21E4 /* jwzglesI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = jwzglesI.h; path = ../jwxyz/jwzglesI.h; sourceTree = ""; }; @@ -8044,6 +8133,9 @@ AFA5638E0993980D00F3E977 /* timetunnel.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = timetunnel.c; path = hacks/glx/timetunnel.c; sourceTree = ""; }; AFA563B6099398BB00F3E977 /* Juggler3D.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Juggler3D.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA563B90993991300F3E977 /* juggler3d.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = juggler3d.c; path = hacks/glx/juggler3d.c; sourceTree = ""; }; + AFA6AB0520999950006D2685 /* GlitchPEG.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GlitchPEG.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA6AB0C20999A60006D2685 /* glitchpeg.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = glitchpeg.xml; sourceTree = ""; }; + AFA6AB0E20999A7B006D2685 /* glitchpeg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = glitchpeg.c; path = hacks/glitchpeg.c; sourceTree = ""; }; AFAA6B441773F07700DE720C /* ios-function-table.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "ios-function-table.m"; sourceTree = ""; }; AFAAE39C207D6343007A515C /* Maze3D.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Maze3D.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFAAE39E207D6420007A515C /* maze3d.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = maze3d.c; path = hacks/glx/maze3d.c; sourceTree = ""; }; @@ -8366,6 +8458,9 @@ AFD5730C099702C800BA26F7 /* julia.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = julia.c; path = hacks/julia.c; sourceTree = ""; }; AFD5736D0997411200BA26F7 /* Strange.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Strange.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD57371099741A200BA26F7 /* strange.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = strange.c; path = hacks/strange.c; sourceTree = ""; }; + AFD77E7020C23F8600A3638D /* FilmLeader.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FilmLeader.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD77E7220C2417F00A3638D /* filmleader.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = filmleader.c; path = hacks/filmleader.c; sourceTree = ""; }; + AFD77E7620C2419600A3638D /* filmleader.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = filmleader.xml; sourceTree = ""; }; AFD9D5BD201E686A0070E99D /* ships.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ships.c; path = hacks/glx/ships.c; sourceTree = ""; }; AFDA11211934424D003D397F /* aligned_malloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = aligned_malloc.c; path = utils/aligned_malloc.c; sourceTree = ""; }; AFDA11221934424D003D397F /* aligned_malloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = aligned_malloc.h; path = utils/aligned_malloc.h; sourceTree = ""; }; @@ -9529,6 +9624,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AF5ECEB32116B1A400069433 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AF5ECEB42116B1A400069433 /* libjwxyz.a in Frameworks */, + AF5ECEB52116B1A400069433 /* ScreenSaver.framework in Frameworks */, + AF5ECEB62116B1A400069433 /* QuartzCore.framework in Frameworks */, + AF5ECEB72116B1A400069433 /* Cocoa.framework in Frameworks */, + AF5ECEB82116B1A400069433 /* Carbon.framework in Frameworks */, + AF5ECEB92116B1A400069433 /* OpenGL.framework in Frameworks */, + AF5ECEBA2116B1A400069433 /* libz.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; AF633C091EE0BA6F00AB33BD /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -11293,6 +11402,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AFA6AAF820999950006D2685 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AFA6AAF920999950006D2685 /* libjwxyz.a in Frameworks */, + AFA6AAFA20999950006D2685 /* ScreenSaver.framework in Frameworks */, + AFA6AAFB20999950006D2685 /* QuartzCore.framework in Frameworks */, + AFA6AAFC20999950006D2685 /* Cocoa.framework in Frameworks */, + AFA6AAFD20999950006D2685 /* Carbon.framework in Frameworks */, + AFA6AAFE20999950006D2685 /* OpenGL.framework in Frameworks */, + AFA6AAFF20999950006D2685 /* libz.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; AFAAE38F207D6343007A515C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -11879,6 +12002,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AFD77E6320C23F8600A3638D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AFD77E6420C23F8600A3638D /* libjwxyz.a in Frameworks */, + AFD77E6520C23F8600A3638D /* ScreenSaver.framework in Frameworks */, + AFD77E6620C23F8600A3638D /* QuartzCore.framework in Frameworks */, + AFD77E6720C23F8600A3638D /* Cocoa.framework in Frameworks */, + AFD77E6820C23F8600A3638D /* Carbon.framework in Frameworks */, + AFD77E6920C23F8600A3638D /* OpenGL.framework in Frameworks */, + AFD77E6A20C23F8600A3638D /* libz.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; AFDA6596178A52B70070D24B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -12389,6 +12526,9 @@ AF3EC98D2035154C00180A35 /* Peepers.saver */, AFC5CFEB2044AA23004CEB5E /* Crumbler.saver */, AFAAE39C207D6343007A515C /* Maze3D.saver */, + AFA6AB0520999950006D2685 /* GlitchPEG.saver */, + AFD77E7020C23F8600A3638D /* FilmLeader.saver */, + AF5ECEC02116B1A400069433 /* VFeedback.saver */, ); name = Products; path = ..; @@ -12536,6 +12676,7 @@ AF9D490709B536F7006E59CF /* distort.c */, AF477605099DA097001F091E /* epicycle.c */, AF975A83099C6B4900B05160 /* eruption.c */, + AFD77E7220C2417F00A3638D /* filmleader.c */, AF975AEE099C6F1700B05160 /* fireworkx.c */, AF477496099D8A53001F091E /* flame.c */, AF4777A4099DBB11001F091E /* fluidballs.c */, @@ -12544,6 +12685,7 @@ AFBF893D0E41D930006A2D66 /* fps.h */, AFBF89B10E424036006A2D66 /* fpsI.h */, AF4773B4099D6778001F091E /* fuzzyflakes.c */, + AFA6AB0E20999A7B006D2685 /* glitchpeg.c */, AF64268E09A19542000F4CD4 /* goop.c */, AF480C21098E28EF00FB32B8 /* greynetic.c */, AF477266099D5768001F091E /* halftone.c */, @@ -12602,6 +12744,7 @@ AF476FF0099D1713001F091E /* truchet.c */, AF9D497F09B541E5006E59CF /* twang.c */, AF477704099DAF3F001F091E /* vermiculate.c */, + AF5ECEC22116B2CC00069433 /* vfeedback.c */, AF477192099D4864001F091E /* wander.c */, AFA33C0A0B058E6B002B0E7D /* webcollage */, AFA33BAE0B0585F7002B0E7D /* webcollage-cocoa.m */, @@ -12727,6 +12870,7 @@ AF241F81107C38DF00046A84 /* dropshadow.c */, AF241F82107C38DF00046A84 /* dropshadow.h */, AFEC23E41CB6EBC400DE138F /* dymaxionmap.c */, + AF4C300D208569A900BE1DEF /* dymaxionmap-coords.c */, AF7778C109B65C6A00EA3033 /* e_textures.h */, AFA55E2509935F2B00F3E977 /* endgame.c */, AFACE88A1CC83578008B24CD /* energystream.c */, @@ -12958,6 +13102,7 @@ AFC258A00988A468000655EE /* extrusion.xml */, AFC258A10988A468000655EE /* fadeplot.xml */, AFC258A20988A468000655EE /* fiberlamp.xml */, + AFD77E7620C2419600A3638D /* filmleader.xml */, AFC258A40988A468000655EE /* fireworkx.xml */, AFC258A50988A468000655EE /* flag.xml */, AFC258A60988A468000655EE /* flame.xml */, @@ -12981,6 +13126,7 @@ AFC258B50988A468000655EE /* gleidescope.xml */, AFC258B60988A468000655EE /* glforestfire.xml */, AFC258B70988A468000655EE /* glhanoi.xml */, + AFA6AB0C20999A60006D2685 /* glitchpeg.xml */, AFC258B80988A468000655EE /* glknots.xml */, AFC258B90988A468000655EE /* glmatrix.xml */, AFC258BA0988A468000655EE /* glplanet.xml */, @@ -13123,6 +13269,7 @@ AFC2592A0988A469000655EE /* vines.xml */, AF46E9E61CBBA3F900240FBC /* unicrud.xml */, AFDA65A3178A541A0070D24B /* unknownpleasures.xml */, + AF5ECEC52116B2FE00069433 /* vfeedback.xml */, AF633C181EE0BC4900AB33BD /* vigilance.xml */, AF0DCA610C4CBB8E00D76972 /* voronoi.xml */, AFC2592B0988A469000655EE /* wander.xml */, @@ -14850,6 +14997,26 @@ productReference = AF5C9B0D1A0CCE6E00B0147A /* Cityflow.saver */; productType = "com.apple.product-type.bundle"; }; + AF5ECEA92116B1A400069433 /* VFeedback */ = { + isa = PBXNativeTarget; + buildConfigurationList = AF5ECEBD2116B1A400069433 /* Build configuration list for PBXNativeTarget "VFeedback" */; + buildPhases = ( + AF5ECEAC2116B1A400069433 /* Resources */, + AF5ECEAF2116B1A400069433 /* Sources */, + AF5ECEB32116B1A400069433 /* Frameworks */, + AF5ECEBB2116B1A400069433 /* Rez */, + AF5ECEBC2116B1A400069433 /* Run Update Info Plist */, + ); + buildRules = ( + ); + dependencies = ( + AF5ECEAA2116B1A400069433 /* PBXTargetDependency */, + ); + name = VFeedback; + productName = XAnalogTV; + productReference = AF5ECEC02116B1A400069433 /* VFeedback.saver */; + productType = "com.apple.product-type.bundle"; + }; AF633C011EE0BA6F00AB33BD /* Vigilance */ = { isa = PBXNativeTarget; buildConfigurationList = AF633C131EE0BA6F00AB33BD /* Build configuration list for PBXNativeTarget "Vigilance" */; @@ -17375,6 +17542,26 @@ productReference = AFA563B6099398BB00F3E977 /* Juggler3D.saver */; productType = "com.apple.product-type.bundle"; }; + AFA6AAF020999950006D2685 /* GlitchPEG */ = { + isa = PBXNativeTarget; + buildConfigurationList = AFA6AB0220999950006D2685 /* Build configuration list for PBXNativeTarget "GlitchPEG" */; + buildPhases = ( + AFA6AAF320999950006D2685 /* Resources */, + AFA6AAF520999950006D2685 /* Sources */, + AFA6AAF820999950006D2685 /* Frameworks */, + AFA6AB0020999950006D2685 /* Rez */, + AFA6AB0120999950006D2685 /* Run Update Info Plist */, + ); + buildRules = ( + ); + dependencies = ( + AFA6AAF120999950006D2685 /* PBXTargetDependency */, + ); + name = GlitchPEG; + productName = Attraction; + productReference = AFA6AB0520999950006D2685 /* GlitchPEG.saver */; + productType = "com.apple.product-type.bundle"; + }; AFAAE387207D6343007A515C /* Maze3D */ = { isa = PBXNativeTarget; buildConfigurationList = AFAAE399207D6343007A515C /* Build configuration list for PBXNativeTarget "Maze3D" */; @@ -18217,6 +18404,26 @@ productReference = AFD5736D0997411200BA26F7 /* Strange.saver */; productType = "com.apple.product-type.bundle"; }; + AFD77E5B20C23F8600A3638D /* FilmLeader */ = { + isa = PBXNativeTarget; + buildConfigurationList = AFD77E6D20C23F8600A3638D /* Build configuration list for PBXNativeTarget "FilmLeader" */; + buildPhases = ( + AFD77E5E20C23F8600A3638D /* Resources */, + AFD77E6020C23F8600A3638D /* Sources */, + AFD77E6320C23F8600A3638D /* Frameworks */, + AFD77E6B20C23F8600A3638D /* Rez */, + AFD77E6C20C23F8600A3638D /* Run Update Info Plist */, + ); + buildRules = ( + ); + dependencies = ( + AFD77E5C20C23F8600A3638D /* PBXTargetDependency */, + ); + name = FilmLeader; + productName = Attraction; + productReference = AFD77E7020C23F8600A3638D /* FilmLeader.saver */; + productType = "com.apple.product-type.bundle"; + }; AFDA658E178A52B70070D24B /* Unknown Pleasures */ = { isa = PBXNativeTarget; buildConfigurationList = AFDA659E178A52B70070D24B /* Build configuration list for PBXNativeTarget "Unknown Pleasures" */; @@ -18524,7 +18731,7 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0930; + LastUpgradeCheck = 0940; TargetAttributes = { AF08398F09930B6B00277BE9 = { DevelopmentTeam = 4627ATJELP; @@ -18775,6 +18982,9 @@ AF5C9AF91A0CCE6E00B0147A = { DevelopmentTeam = 4627ATJELP; }; + AF5ECEA92116B1A400069433 = { + DevelopmentTeam = 4627ATJELP; + }; AF633C011EE0BA6F00AB33BD = { DevelopmentTeam = 4627ATJELP; }; @@ -19159,6 +19369,9 @@ AFA563A4099398BB00F3E977 = { DevelopmentTeam = 4627ATJELP; }; + AFA6AAF020999950006D2685 = { + DevelopmentTeam = 4627ATJELP; + }; AFAAE387207D6343007A515C = { DevelopmentTeam = 4627ATJELP; }; @@ -19293,6 +19506,9 @@ AFD5735D0997411200BA26F7 = { DevelopmentTeam = 4627ATJELP; }; + AFD77E5B20C23F8600A3638D = { + DevelopmentTeam = 4627ATJELP; + }; AFDA658E178A52B70070D24B = { DevelopmentTeam = 4627ATJELP; }; @@ -19387,11 +19603,13 @@ AF9D48F409B535DA006E59CF /* Distort */, AF4775F2099DA030001F091E /* Epicycle */, AF975A6C099C6AB200B05160 /* Eruption */, + AFD77E5B20C23F8600A3638D /* FilmLeader */, AF975AD7099C6EB100B05160 /* Fireworkx */, AF477483099D89E4001F091E /* Flame */, AF477790099DBA90001F091E /* FluidBalls */, AF77787F09B6563500EA3033 /* FontGlide */, AF47739A099D6648001F091E /* FuzzyFlakes */, + AFA6AAF020999950006D2685 /* GlitchPEG */, AF64267B09A194B0000F4CD4 /* Goop */, AF975C3D099C8DCF00B05160 /* Greynetic */, AF477253099D5717001F091E /* Halftone */, @@ -19444,6 +19662,7 @@ AF476FDA099D1686001F091E /* Truchet */, AF9D496C09B5411D006E59CF /* Twang */, AF4776F1099DAE7A001F091E /* Vermiculate */, + AF5ECEA92116B1A400069433 /* VFeedback */, AF47717F099D4803001F091E /* Wander */, AFA3392E0B058505002B0E7D /* WebCollage */, AFA33C020B058E17002B0E7D /* webcollage-perl */, @@ -20250,6 +20469,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AF5ECEAC2116B1A400069433 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AF5ECEC62116B2FE00069433 /* vfeedback.xml in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; AF633C041EE0BA6F00AB33BD /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -20640,6 +20867,7 @@ AF21078A1FD23D2800B61EA9 /* esper.xml in Resources */, AF918AEE158FC53D002B5D1E /* euler2d.xml in Resources */, AF918AF0158FC53D002B5D1E /* fadeplot.xml in Resources */, + AFD77E7820C2419600A3638D /* filmleader.xml in Resources */, AF918AF1158FC53D002B5D1E /* fiberlamp.xml in Resources */, AF918AF2158FC53D002B5D1E /* fireworkx.xml in Resources */, AF918AF4158FC53D002B5D1E /* flame.xml in Resources */, @@ -20783,6 +21011,7 @@ AF46E9EA1CBBA42F00240FBC /* unicrud.xml in Resources */, AFDA65A6178A541A0070D24B /* unknownpleasures.xml in Resources */, AF918B80158FC53E002B5D1E /* vermiculate.xml in Resources */, + AF5ECEC72116B2FE00069433 /* vfeedback.xml in Resources */, AF633C1A1EE0BC5500AB33BD /* vigilance.xml in Resources */, AF918B83158FC53E002B5D1E /* voronoi.xml in Resources */, AF918B84158FC53E002B5D1E /* wander.xml in Resources */, @@ -21527,6 +21756,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AFA6AAF320999950006D2685 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AF95C30420999B3E001924BE /* xscreensaver-getimage-file in Resources */, + AFA6AB0D20999A60006D2685 /* glitchpeg.xml in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; AFAAE38A207D6343007A515C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -21870,6 +22108,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AFD77E5E20C23F8600A3638D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AFD77E7720C2419600A3638D /* filmleader.xml in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; AFDA6591178A52B70070D24B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -22518,6 +22764,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AF5ECEBB2116B1A400069433 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; AF633C111EE0BA6F00AB33BD /* Rez */ = { isa = PBXRezBuildPhase; buildActionMask = 2147483647; @@ -23351,6 +23604,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AFA6AB0020999950006D2685 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; AFAAE397207D6343007A515C /* Rez */ = { isa = PBXRezBuildPhase; buildActionMask = 2147483647; @@ -23631,6 +23891,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AFD77E6B20C23F8600A3638D /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; AFDA659C178A52B70070D24B /* Rez */ = { isa = PBXRezBuildPhase; buildActionMask = 2147483647; @@ -24084,6 +24351,21 @@ shellScript = "$SOURCE_ROOT/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; + AF5ECEBC2116B1A400069433 /* Run Update Info Plist */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Update Info Plist"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "$SOURCE_ROOT/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + showEnvVarsInLog = 0; + }; AF633C121EE0BA6F00AB33BD /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -27213,6 +27495,21 @@ shellScript = "$SOURCE_ROOT/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; + AFA6AB0120999950006D2685 /* Run Update Info Plist */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Update Info Plist"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "$SOURCE_ROOT/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + showEnvVarsInLog = 0; + }; AFAAE398207D6343007A515C /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -27496,6 +27793,21 @@ shellScript = "$SOURCE_ROOT/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; + AFD77E6C20C23F8600A3638D /* Run Update Info Plist */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Update Info Plist"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "$SOURCE_ROOT/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + showEnvVarsInLog = 0; + }; AFDA659D178A52B70070D24B /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -28346,6 +28658,7 @@ AF4808C6098C3BDF00FB32B8 /* erase.c in Sources */, AF4808C7098C3BE600FB32B8 /* hsv.c in Sources */, AFBF893E0E41D930006A2D66 /* fps.c in Sources */, + AFD77E7320C2418000A3638D /* filmleader.c in Sources */, AFBF89AF0E423FC3006A2D66 /* fps-gl.c in Sources */, 5501D1961DBDCC3D00624BE9 /* xshm.c in Sources */, AF4808C8098C3BE800FB32B8 /* InvertedSlider.m in Sources */, @@ -28493,6 +28806,16 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AF5ECEAF2116B1A400069433 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AF5ECEB02116B1A400069433 /* XScreenSaverSubclass.m in Sources */, + AF5ECEC32116B2CC00069433 /* vfeedback.c in Sources */, + AF5ECEB12116B1A400069433 /* analogtv.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; AF633C061EE0BA6F00AB33BD /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -28885,6 +29208,7 @@ AF918A06158FC38A002B5D1E /* euler2d.c in Sources */, AF918A07158FC38A002B5D1E /* fadeplot.c in Sources */, AF918A08158FC38A002B5D1E /* fiberlamp.c in Sources */, + AFD77E7520C2418000A3638D /* filmleader.c in Sources */, AF9189B5158FC311002B5D1E /* fireworkx.c in Sources */, AF9189B6158FC334002B5D1E /* flame.c in Sources */, AF918A0A158FC38A002B5D1E /* flow.c in Sources */, @@ -28924,6 +29248,7 @@ AF918A19158FC38A002B5D1E /* pacman_ai.c in Sources */, AF918A1A158FC38A002B5D1E /* pacman_level.c in Sources */, AF9189D4158FC334002B5D1E /* pedal.c in Sources */, + AF4C300F208569AA00BE1DEF /* dymaxionmap-coords.c in Sources */, AF9189D5158FC334002B5D1E /* penetrate.c in Sources */, AF9189D6158FC334002B5D1E /* petri.c in Sources */, AF9189D7158FC334002B5D1E /* phosphor.c in Sources */, @@ -28958,6 +29283,7 @@ AF9189EF158FC35D002B5D1E /* truchet.c in Sources */, AF9189F0158FC35D002B5D1E /* twang.c in Sources */, AF9189F1158FC35D002B5D1E /* vermiculate.c in Sources */, + AF5ECEC42116B2CC00069433 /* vfeedback.c in Sources */, AF9189F2158FC35D002B5D1E /* wander.c in Sources */, AF9189F3158FC35E002B5D1E /* whirlwindwarp.c in Sources */, AF9189F5158FC35E002B5D1E /* wormhole.c in Sources */, @@ -29993,6 +30319,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AFA6AAF520999950006D2685 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AFA6AAF720999950006D2685 /* XScreenSaverSubclass.m in Sources */, + AFA6AB0F20999A7B006D2685 /* glitchpeg.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; AFAAE38C207D6343007A515C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -30376,6 +30711,16 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AFD77E6020C23F8600A3638D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AF3FAD8F20C242DA00680000 /* analogtv.c in Sources */, + AFD77E7420C2418000A3638D /* filmleader.c in Sources */, + AFD77E6220C23F8600A3638D /* XScreenSaverSubclass.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; AFDA6593178A52B70070D24B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -30430,6 +30775,7 @@ files = ( AFEC23E61CB6EC0400DE138F /* dymaxionmap.c in Sources */, AFEC23D41CB6EAE100DE138F /* XScreenSaverSubclass.m in Sources */, + AF4C300E208569AA00BE1DEF /* dymaxionmap-coords.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -31132,6 +31478,16 @@ target = AF5C9AF91A0CCE6E00B0147A /* Cityflow */; targetProxy = AF5C9B151A0CCF8000B0147A /* PBXContainerItemProxy */; }; + AF5ECEAA2116B1A400069433 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = AF4808C0098C3B6C00FB32B8 /* jwxyz */; + targetProxy = AF5ECEAB2116B1A400069433 /* PBXContainerItemProxy */; + }; + AF5ECEC92116B31F00069433 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = AF5ECEA92116B1A400069433 /* VFeedback */; + targetProxy = AF5ECEC82116B31F00069433 /* PBXContainerItemProxy */; + }; AF633C021EE0BA6F00AB33BD /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = AF4808C0098C3B6C00FB32B8 /* jwxyz */; @@ -32732,6 +33088,16 @@ target = AF4808C0098C3B6C00FB32B8 /* jwxyz */; targetProxy = AFA563A6099398BB00F3E977 /* PBXContainerItemProxy */; }; + AFA6AAF120999950006D2685 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = AF4808C0098C3B6C00FB32B8 /* jwxyz */; + targetProxy = AFA6AAF220999950006D2685 /* PBXContainerItemProxy */; + }; + AFA6AB1120999A9A006D2685 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = AFA6AAF020999950006D2685 /* GlitchPEG */; + targetProxy = AFA6AB1020999A9A006D2685 /* PBXContainerItemProxy */; + }; AFAAE388207D6343007A515C /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = AF4808C0098C3B6C00FB32B8 /* jwxyz */; @@ -33027,6 +33393,16 @@ target = AF4808C0098C3B6C00FB32B8 /* jwxyz */; targetProxy = AFD5735F0997411200BA26F7 /* PBXContainerItemProxy */; }; + AFD77E5C20C23F8600A3638D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = AF4808C0098C3B6C00FB32B8 /* jwxyz */; + targetProxy = AFD77E5D20C23F8600A3638D /* PBXContainerItemProxy */; + }; + AFD77E7A20C241BE00A3638D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = AFD77E5B20C23F8600A3638D /* FilmLeader */; + targetProxy = AFD77E7920C241BE00A3638D /* PBXContainerItemProxy */; + }; AFDA658F178A52B70070D24B /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = AF4808C0098C3B6C00FB32B8 /* jwxyz */; @@ -34425,6 +34801,20 @@ }; name = Release; }; + AF5ECEBE2116B1A400069433 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + AF5ECEBF2116B1A400069433 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; AF633C141EE0BA6F00AB33BD /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -36725,6 +37115,20 @@ }; name = Release; }; + AFA6AB0320999950006D2685 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + AFA6AB0420999950006D2685 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; AFAAE39A207D6343007A515C /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -37335,6 +37739,20 @@ }; name = Release; }; + AFD77E6E20C23F8600A3638D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + AFD77E6F20C23F8600A3638D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; AFDA659F178A52B70070D24B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -38579,6 +38997,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + AF5ECEBD2116B1A400069433 /* Build configuration list for PBXNativeTarget "VFeedback" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AF5ECEBE2116B1A400069433 /* Debug */, + AF5ECEBF2116B1A400069433 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; AF633C131EE0BA6F00AB33BD /* Build configuration list for PBXNativeTarget "Vigilance" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -39731,6 +40158,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + AFA6AB0220999950006D2685 /* Build configuration list for PBXNativeTarget "GlitchPEG" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AFA6AB0320999950006D2685 /* Debug */, + AFA6AB0420999950006D2685 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; AFAAE399207D6343007A515C /* Build configuration list for PBXNativeTarget "Maze3D" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -40118,6 +40554,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + AFD77E6D20C23F8600A3638D /* Build configuration list for PBXNativeTarget "FilmLeader" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AFD77E6E20C23F8600A3638D /* Debug */, + AFD77E6F20C23F8600A3638D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; AFDA659E178A52B70070D24B /* Build configuration list for PBXNativeTarget "Unknown Pleasures" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/README b/README index 9d6e4272..af3f9490 100644 --- a/README +++ b/README @@ -46,6 +46,18 @@ XScreenSaver has an extensive manual -- please read it! =============================================================================== +5.40 * New hacks, 'filmleader', 'vfeedback'. + * New hack, 'glitchpeg' (X11 and macOS only). + * GLPlanet blends between day and night maps at the dusk terminator. + * DymaxionMap can display arbitrary map images, and animate sunlight + across the flattened globe. + * Tessellimage can draw either Delaunay or Voronoi tilings. + * XAnalogTV includes test cards. + * Android: These hacks work now: 'blitspin', 'bumps', 'cityflow', + 'endgame', 'esper', 'flipscreen3d', 'gleidescope', 'glslideshow', + 'jigglypuff', 'queens', 'tessellimage', 'xanalogtv', 'xmatrix', + 'zoom'. + 5.39 * New hacks, 'razzledazzle', 'peepers', 'crumbler' and `maze3d'. * More heuristics for using RSS feeds as image sources. * Android: Image loading works. diff --git a/android/Makefile b/android/Makefile index bd5d15df..f0d5da01 100644 --- a/android/Makefile +++ b/android/Makefile @@ -49,6 +49,7 @@ export ANDROID_HACKS= \ binaryring \ blaster \ blinkbox \ + blitspin \ blocktube \ boing \ bouboule \ @@ -57,10 +58,12 @@ export ANDROID_HACKS= \ boxfit \ braid \ bsod \ + bumps \ cage \ ccurve \ celtic \ circuit \ + cityflow \ cloudlife \ companioncube \ compass \ @@ -87,16 +90,20 @@ export ANDROID_HACKS= \ dnalogo \ drift \ dymaxionmap \ + endgame \ energystream \ engine \ epicycle \ eruption \ + esper \ euler2d \ fadeplot \ fiberlamp \ + filmleader \ fireworkx \ flame \ flipflop \ + flipscreen3d \ flow \ fluidballs \ flyingtoasters \ @@ -108,11 +115,13 @@ export ANDROID_HACKS= \ gflux \ glblur \ glcells \ + gleidescope \ glhanoi \ glknots \ glmatrix \ glplanet \ glschool \ + glslideshow \ glsnake \ gltext \ goop \ @@ -131,6 +140,7 @@ export ANDROID_HACKS= \ interaggregate \ interference \ intermomentary \ + jigglypuff \ jigsaw \ julia \ kaleidescope \ @@ -172,6 +182,7 @@ export ANDROID_HACKS= \ pulsar \ pyro \ quasicrystal \ + queens \ raverhoop \ razzledazzle \ rd-bomb \ @@ -192,6 +203,7 @@ export ANDROID_HACKS= \ spheremonics \ splitflap \ splodesic \ + spotlight \ squiral \ stairs \ stonerview \ @@ -201,6 +213,7 @@ export ANDROID_HACKS= \ surfaces \ swirl \ tangram \ + tessellimage \ thornbird \ timetunnel \ topblock \ @@ -210,17 +223,21 @@ export ANDROID_HACKS= \ twang \ unknownpleasures \ vermiculate \ + vfeedback \ vigilance \ voronoi \ wander \ whirlwindwarp \ winduprobot \ wormhole \ + xanalogtv \ xflame \ xjack \ xlyap \ + xmatrix \ xrayswarm \ xspirograph \ + zoom \ # These don't work well enough to turn on by default: @@ -228,19 +245,10 @@ export ANDROID_HACKS= \ ANDROID_TODO= \ antinspect \ barcode \ - blitspin \ - bumps \ carousel \ - cityflow \ - endgame \ - esper \ - flipscreen3d \ fliptext \ fontglide \ - gleidescope \ - glslideshow \ halftone \ - jigglypuff \ juggler3d \ molecule \ pedal \ @@ -248,17 +256,11 @@ ANDROID_TODO= \ photopile \ polyominoes \ qix \ - queens \ speedmine \ - spotlight \ starfish \ starwars \ - tessellimage \ testx11 \ unicrud \ - xanalogtv \ - xmatrix \ - zoom \ # Download and resize images from jwz.org. @@ -367,7 +369,7 @@ $(KEYSTORE): keytool -genkey -v -keystore $@ \ -alias xscreensaver -keyalg RSA -keysize 2048 -validity 10000 -APK_DIR = xscreensaver/build/outputs/apk/ +APK_DIR = xscreensaver/build/outputs/apk/release/ APK_UNSIGNED = $(APK_DIR)xscreensaver-release-unsigned.apk APK_UNALIGNED = $(APK_DIR)xscreensaver-release-unaligned.apk APK_SIGNED = $(APK_DIR)xscreensaver-release.apk diff --git a/android/README b/android/README index c5b00c18..28432965 100644 --- a/android/README +++ b/android/README @@ -151,58 +151,39 @@ TODO list, and known bugs: box does not. antinspect renders incorrectly - antmaze crashes emulator, sometimes - antspotlight crashes emulator, sometimes apple2 text, images into pixmaps doesn't work - atlantis crashes emulator, sometimes barcode pixmaps - blitspin images bsod pixmaps, XCopyArea problems - bumps images - carousel images + carousel images are corrupted cityflow shading is wrong endgame insanely slow engine text - esper images, text - flipflop images - flipscreen3d images + esper images don't load, no text fliptext text fontglide text - gflux images glblur grayscale instead of color - gleidescope images - glslideshow images halftone XFillArc crash - halo some extra triangles show up jigglypuff incredibly slow - jigsaw images juggler3d blank maze lines are not the same thickness (aliased?) - mirrorblob images molecule blank - mountain polygons - munch XOR - noseguy text; images flicker to black and white - pacman launches really slowly + noseguy text; images + pacman images; launches really slowly pedal polygons phosphor text; pixmaps - photopile images; pixmaps + photopile text; images don't display polyhedra text polyominoes pixmaps qix polygons - queens blank - slip images + queens insanely slow sonar does icmp work? speedmine polygons splitflap super slow - spotlight pixmaps + spotlight blank starfish polygons starwars text - tessellimage pixmaps - twang background should be black unicrud pixmaps winduprobot dome is not transparent xanalogtv pixmaps xflame draws only upper left corner - xmatrix super slow, glitch on first screen - zoom pixmaps + xmatrix pretty slow diff --git a/android/build.gradle b/android/build.gradle index 613cb908..648cc321 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -2,17 +2,23 @@ buildscript { repositories { jcenter() + google() } dependencies { - classpath 'com.android.tools.build:gradle:2.1.0' + classpath 'com.android.tools.build:gradle:3.1.2' } - // This allows versions of Gradle past 2.9 to be used with the Gradle - // Android plugin. - // https://discuss.gradle.org/t/gradle-thinks-2-10-is-less-than-2-2-when-resolving-plugins/13434/2 -// System.properties['com.android.build.gradle.overrideVersionCheck'] = 'true'; } +allprojects { + repositories { + maven { url 'https://maven.google.com' } + jcenter() + google() + } +} + + task clean(type: Delete) { delete('./build') } diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 729f41b7..0ac000f5 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sun Jun 12 14:20:28 PDT 2016 +#Sat Feb 10 21:20:31 PST 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip diff --git a/android/xscreensaver/.idea/caches/build_file_checksums.ser b/android/xscreensaver/.idea/caches/build_file_checksums.ser index 9e196d6986c074210333084a1427e76a05975fb7..bc8f00c653bd31d53e3eff5e684e8fba834820d9 100644 GIT binary patch delta 57 zcmV-90LK4`1c?NYmjz`e`=p7HoU{=9ste`Lcy3K5kXt4JAdUQ!U;%0n9IZFph6{7i PWLV0NtAIE~liC3<)teaH delta 57 zcmV-90LK4`1c?NYmjz;?)IKYboU{5l?>+=SWb1B1 + + + + + + + + + + \ No newline at end of file diff --git a/android/xscreensaver/.idea/libraries/Gradle__android_arch_core_runtime_1_1_0.xml b/android/xscreensaver/.idea/libraries/Gradle__android_arch_core_runtime_1_1_0.xml new file mode 100644 index 00000000..03529f74 --- /dev/null +++ b/android/xscreensaver/.idea/libraries/Gradle__android_arch_core_runtime_1_1_0.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/android/xscreensaver/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_0_jar.xml b/android/xscreensaver/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_0_jar.xml new file mode 100644 index 00000000..29c00493 --- /dev/null +++ b/android/xscreensaver/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_0_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/android/xscreensaver/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_0.xml b/android/xscreensaver/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_0.xml new file mode 100644 index 00000000..c43180e1 --- /dev/null +++ b/android/xscreensaver/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_0.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/android/xscreensaver/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_0.xml b/android/xscreensaver/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_0.xml new file mode 100644 index 00000000..6031fb97 --- /dev/null +++ b/android/xscreensaver/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_0.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/android/xscreensaver/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_0.xml b/android/xscreensaver/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_0.xml new file mode 100644 index 00000000..11a24fb3 --- /dev/null +++ b/android/xscreensaver/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_0.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_annotations_27_1_1_jar.xml b/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_annotations_27_1_1_jar.xml new file mode 100644 index 00000000..1517ad9c --- /dev/null +++ b/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_annotations_27_1_1_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_compat_27_1_1.xml b/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_compat_27_1_1.xml new file mode 100644 index 00000000..fba52e87 --- /dev/null +++ b/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_compat_27_1_1.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_core_ui_27_1_1.xml b/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_core_ui_27_1_1.xml new file mode 100644 index 00000000..3ccece02 --- /dev/null +++ b/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_core_ui_27_1_1.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_core_utils_27_1_1.xml b/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_core_utils_27_1_1.xml new file mode 100644 index 00000000..69d23f29 --- /dev/null +++ b/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_core_utils_27_1_1.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_fragment_27_1_1.xml b/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_fragment_27_1_1.xml new file mode 100644 index 00000000..8eb356f8 --- /dev/null +++ b/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_fragment_27_1_1.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_media_compat_27_1_1.xml b/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_media_compat_27_1_1.xml new file mode 100644 index 00000000..c577eba6 --- /dev/null +++ b/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_media_compat_27_1_1.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_v4_27_1_1.xml b/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_v4_27_1_1.xml new file mode 100644 index 00000000..10d31088 --- /dev/null +++ b/android/xscreensaver/.idea/libraries/Gradle__com_android_support_support_v4_27_1_1.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/android/xscreensaver/.idea/misc.xml b/android/xscreensaver/.idea/misc.xml index 37a75096..c0f68edd 100644 --- a/android/xscreensaver/.idea/misc.xml +++ b/android/xscreensaver/.idea/misc.xml @@ -1,6 +1,31 @@ - + + + + + diff --git a/android/xscreensaver/.idea/workspace.xml b/android/xscreensaver/.idea/workspace.xml index d7076122..1dedd643 100644 --- a/android/xscreensaver/.idea/workspace.xml +++ b/android/xscreensaver/.idea/workspace.xml @@ -29,15 +29,29 @@ + + + + + + + + + + + + + + - - + @@ -1645,8 +1851,6 @@ - - @@ -1658,8 +1862,31 @@ + + @@ -1674,7 +1901,8 @@ - + + - + @@ -1895,7 +2123,7 @@ - + @@ -1903,8 +2131,9 @@ - - + + + @@ -1923,7 +2152,6 @@ - @@ -1946,4 +2174,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/xscreensaver/build.gradle b/android/xscreensaver/build.gradle index 6d1151ff..f0ff9a3e 100644 --- a/android/xscreensaver/build.gradle +++ b/android/xscreensaver/build.gradle @@ -2,11 +2,12 @@ apply plugin: 'android' dependencies { compile fileTree(include: '*.jar', dir: 'libs') + compile "com.android.support:support-v4:27.1.1" } android { - compileSdkVersion 21 - buildToolsVersion "21.1.2" + compileSdkVersion 27 + buildToolsVersion "27.0.3" compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 @@ -26,7 +27,7 @@ android { } // Move the tests to tests/java, tests/res, etc... - instrumentTest.setRoot('tests') + androidTest.setRoot('tests') // Move the build types to build-types/ // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... @@ -96,7 +97,7 @@ android { defaultConfig { minSdkVersion 15 - targetSdkVersion 21 + targetSdkVersion 27 } productFlavors { } diff --git a/android/xscreensaver/jni/Android.mk b/android/xscreensaver/jni/Android.mk index 28005793..1e20a83e 100644 --- a/android/xscreensaver/jni/Android.mk +++ b/android/xscreensaver/jni/Android.mk @@ -69,6 +69,7 @@ LOCAL_SRC_FILES += \ hacks/glx/cow_tail.c \ hacks/glx/cow_udder.c \ hacks/glx/dolphin.c \ + hacks/glx/dymaxionmap-coords.c \ hacks/glx/gllist.c \ hacks/glx/glschool_alg.c \ hacks/glx/glschool_gl.c \ diff --git a/android/xscreensaver/jni/Application.mk b/android/xscreensaver/jni/Application.mk index a7aa11b6..d3f54367 100644 --- a/android/xscreensaver/jni/Application.mk +++ b/android/xscreensaver/jni/Application.mk @@ -2,5 +2,6 @@ APP_ABI := $(shell echo $$APP_ABI) APP_STL := stlport_static APP_PLATFORM := android-14 -# ^^ this can be increased +# ^^ APP_PLATFORM is minimum API version supported +# https://android.googlesource.com/platform/ndk/+/master/docs/user/common_problems.md#target-api-set-higher-than-device-api diff --git a/android/xscreensaver/src/org/jwz/xscreensaver/Activity.java b/android/xscreensaver/src/org/jwz/xscreensaver/Activity.java index 1209c1b7..ac0ab4c1 100644 --- a/android/xscreensaver/src/org/jwz/xscreensaver/Activity.java +++ b/android/xscreensaver/src/org/jwz/xscreensaver/Activity.java @@ -24,15 +24,25 @@ import android.os.Build; import android.os.Bundle; import android.view.View; import android.provider.Settings; +import android.Manifest; +import android.support.v4.app.ActivityCompat; +import android.support.v4.content.ContextCompat; +import android.os.Build; +import android.content.pm.PackageManager; public class Activity extends android.app.Activity implements View.OnClickListener { + private boolean wallpaperButtonClicked, daydreamButtonClicked; + private final static int MY_REQ_READ_EXTERNAL_STORAGE = 271828; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // openList(); setContentView(R.layout.activity_xscreensaver); + wallpaperButtonClicked = false; + daydreamButtonClicked = false; findViewById(R.id.apply_wallpaper).setOnClickListener(this); findViewById(R.id.apply_daydream).setOnClickListener(this); @@ -42,10 +52,18 @@ public class Activity extends android.app.Activity public void onClick(View v) { switch (v.getId()) { case R.id.apply_wallpaper: - startActivity(new Intent(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER)); + wallpaperButtonClicked(); break; - case R.id.apply_daydream: + daydreamButtonClicked(); + break; + } + } + + // synchronized when dealing with wallpaper state - perhaps can + // narrow down more + private synchronized void withProceed() { + if (daydreamButtonClicked) { String action; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { action = Settings.ACTION_DREAM_SETTINGS; @@ -53,7 +71,99 @@ public class Activity extends android.app.Activity action = Settings.ACTION_DISPLAY_SETTINGS; } startActivity(new Intent(action)); - break; + } else if (wallpaperButtonClicked) { + startActivity(new Intent(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER)); + } + } + + private void wallpaperButtonClicked() { + wallpaperButtonClicked = true; + checkPermission(); + } + + private void daydreamButtonClicked() { + daydreamButtonClicked = true; + checkPermission(); + } + + void checkPermission() { + // RES introduced in API 16 + String permission = Manifest.permission.READ_EXTERNAL_STORAGE; + if (havePermission(permission)) { + withProceed(); + } else { + noPermission(permission); + } + } + + private void noPermission(String permission) { + int myRequestCode; + myRequestCode = MY_REQ_READ_EXTERNAL_STORAGE; + + if (permissionsDeniedRationale(permission)) { + showDeniedRationale(); + } else { + requestPermission(permission, myRequestCode); + } + } + + private boolean permissionsDeniedRationale(String permission) { + boolean rationale = ActivityCompat.shouldShowRequestPermissionRationale(this, + permission); + return rationale; + } + + private void requestPermission(String permission, int myRequestCode) { + ActivityCompat.requestPermissions(this, + new String[]{permission}, + myRequestCode); + + // myRequestCode is an app-defined int constant. + // The callback method gets the result of the request. + } + + // TODO: This method should be asynchronous, and not block the thread + private void showDeniedRationale() { + withProceed(); + } + + boolean havePermission(String permission) { + + if (Build.VERSION.SDK_INT < 16) { + return true; + } + + if (permissionGranted(permission)) { + return true; + } + + return false; + } + + private boolean permissionGranted(String permission) { + boolean check = ContextCompat.checkSelfPermission(this, permission) == + PackageManager.PERMISSION_GRANTED; + return check; + } + + public void proceedIfPermissionGranted(int[] grantResults) { + + // If request is cancelled, the result arrays are empty. + if (grantResults.length > 0 + && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + withProceed(); + } else if (grantResults.length > 0) { + withProceed(); + } + } + + @Override + public void onRequestPermissionsResult(int requestCode, + String permissions[], int[] grantResults) { + switch (requestCode) { + case MY_REQ_READ_EXTERNAL_STORAGE: + proceedIfPermissionGranted(grantResults); } } + } diff --git a/android/xscreensaver/src/org/jwz/xscreensaver/jwxyz.java b/android/xscreensaver/src/org/jwz/xscreensaver/jwxyz.java index 8ca6af40..a22a26d4 100644 --- a/android/xscreensaver/src/org/jwz/xscreensaver/jwxyz.java +++ b/android/xscreensaver/src/org/jwz/xscreensaver/jwxyz.java @@ -57,6 +57,11 @@ import android.media.ExifInterface; import org.jwz.xscreensaver.TTFAnalyzer; import android.util.Log; import android.view.Surface; +import android.Manifest; +import android.support.v4.app.ActivityCompat; +import android.support.v4.content.ContextCompat; +import android.os.Build; +import android.content.pm.PackageManager; public class jwxyz implements GestureDetector.OnGestureListener, @@ -100,6 +105,8 @@ public class jwxyz public final static int FONT_FACE = 1; public final static int FONT_RANDOM = 2; + public final static int MY_REQ_READ_EXTERNAL_STORAGE = 271828; + private long nativeRunningHackPtr; private String hack; @@ -627,6 +634,38 @@ public class jwxyz } + boolean havePermission(String permission) { + + if (Build.VERSION.SDK_INT < 16) { + return true; + } + + if (permissionGranted(permission)) { + return true; + } + + return false; + } + + + private boolean permissionGranted(String permission) { + boolean check = ContextCompat.checkSelfPermission(app, permission) == + PackageManager.PERMISSION_GRANTED; + return check; + } + + public Object[] checkThenLoadRandomImage (int target_width, int target_height, + boolean rotate_p) { + // RES introduced in API 16 + String permission = Manifest.permission.READ_EXTERNAL_STORAGE; + + if (havePermission(permission)) { + return loadRandomImage(target_width,target_height,rotate_p); + } else { + return null; + } + } + public Object[] loadRandomImage (int target_width, int target_height, boolean rotate_p) { diff --git a/android/xscreensaver/xscreensaver.iml b/android/xscreensaver/xscreensaver.iml index 9478b133..dd9566c3 100644 --- a/android/xscreensaver/xscreensaver.iml +++ b/android/xscreensaver/xscreensaver.iml @@ -24,18 +24,21 @@ + + + @@ -43,6 +46,13 @@ + + + + + + + @@ -62,33 +72,30 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - + + + + + + + + + + + + + + \ No newline at end of file diff --git a/configure b/configure index 38da6107..2ac1b1b5 100755 --- a/configure +++ b/configure @@ -16114,7 +16114,7 @@ APPDEFAULTS=$ac_x_app_defaults -ac_config_files="$ac_config_files Makefile utils/Makefile jwxyz/Makefile hacks/Makefile hacks/glx/Makefile po/Makefile.in driver/Makefile driver/xscreensaver.pam driver/xscreensaver-demo.glade2 driver/XScreenSaver.ad" +ac_config_files="$ac_config_files Makefile utils/Makefile jwxyz/Makefile hacks/Makefile hacks/images/Makefile hacks/glx/Makefile po/Makefile.in driver/Makefile driver/xscreensaver.pam driver/xscreensaver-demo.glade2 driver/XScreenSaver.ad" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -16825,6 +16825,7 @@ do "utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;; "jwxyz/Makefile") CONFIG_FILES="$CONFIG_FILES jwxyz/Makefile" ;; "hacks/Makefile") CONFIG_FILES="$CONFIG_FILES hacks/Makefile" ;; + "hacks/images/Makefile") CONFIG_FILES="$CONFIG_FILES hacks/images/Makefile" ;; "hacks/glx/Makefile") CONFIG_FILES="$CONFIG_FILES hacks/glx/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "driver/Makefile") CONFIG_FILES="$CONFIG_FILES driver/Makefile" ;; diff --git a/configure.in b/configure.in index 68928a09..d439bb5c 100644 --- a/configure.in +++ b/configure.in @@ -4142,6 +4142,7 @@ AC_OUTPUT(Makefile utils/Makefile jwxyz/Makefile hacks/Makefile + hacks/images/Makefile hacks/glx/Makefile po/Makefile.in driver/Makefile diff --git a/driver/Makefile.in b/driver/Makefile.in index 1f490f67..55effece 100644 --- a/driver/Makefile.in +++ b/driver/Makefile.in @@ -157,7 +157,7 @@ SAVER_UTIL_SRCS = $(UTILS_SRC)/fade.c $(UTILS_SRC)/overlay.c \ $(DEMO_UTIL_SRCS) SAVER_UTIL_OBJS = $(UTILS_BIN)/fade.o $(UTILS_BIN)/overlay.o \ $(UTILS_BIN)/logo.o $(UTILS_BIN)/yarandom.o \ - $(UTILS_BIN)/minixpm.o $(UTILS_SRC)/font-retry.o \ + $(UTILS_BIN)/minixpm.o $(UTILS_BIN)/font-retry.o \ $(DEMO_UTIL_OBJS) GETIMG_SRCS_1 = xscreensaver-getimage.c diff --git a/driver/XScreenSaver.ad.in b/driver/XScreenSaver.ad.in index 932c0fe2..f4e29d41 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 5.39 -! 12-Apr-2018 +! version 5.40 +! 12-Aug-2018 ! ! See "man xscreensaver" for more info. The latest version is always ! available at https://www.jwz.org/xscreensaver/ @@ -384,9 +384,12 @@ GetViewPortIsFullOfLies: False @GL_KLUDGE@ GL: esper -root \n\ @GL_KLUDGE@ GL: vigilance -root \n\ @GL_KLUDGE@ GL: crumbler -root \n\ + filmleader -root \n\ + glitchpeg -root \n\ @GL_KLUDGE@ GL: maze3d -root \n\ @GL_KLUDGE@ GL: peepers -root \n\ -@GL_KLUDGE@ GL: razzledazzle -root \n +@GL_KLUDGE@ GL: razzledazzle -root \n\ + vfeedback -root \n @@ -484,6 +487,7 @@ XScreenSaver.bourneShell: /bin/sh *hacks.energystream.name: EnergyStream *hacks.euler2d.name: Euler2D *hacks.fadeplot.name: FadePlot +*hacks.filmleader.name: FilmLeader *hacks.flipflop.name: FlipFlop *hacks.flipscreen3d.name: FlipScreen3D *hacks.fliptext.name: FlipText @@ -495,6 +499,7 @@ XScreenSaver.bourneShell: /bin/sh *hacks.gflux.name: GFlux *hacks.gleidescope.name: Gleidescope *hacks.glforestfire.name: GLForestFire +*hacks.glitchpeg.name: GlitchPEG *hacks.hyperball.name: HyperBall *hacks.hypercube.name: HyperCube *hacks.ifs.name: IFS @@ -537,6 +542,7 @@ XScreenSaver.bourneShell: /bin/sh *hacks.topblock.name: TopBlock *hacks.tronbit.name: TronBit *hacks.unknownpleasures.name:UnknownPleasures +*hacks.vfeedback.name: VFeedback *hacks.vidwhacker.name: VidWhacker *hacks.webcollage.name: WebCollage *hacks.whirlwindwarp.name: WhirlWindWarp diff --git a/driver/XScreenSaver_ad.h b/driver/XScreenSaver_ad.h index 171d9b09..cd4976ed 100644 --- a/driver/XScreenSaver_ad.h +++ b/driver/XScreenSaver_ad.h @@ -279,9 +279,12 @@ GL: esper -root \\n\ GL: vigilance -root \\n\ GL: crumbler -root \\n\ + filmleader -root \\n\ + glitchpeg -root \\n\ GL: maze3d -root \\n\ GL: peepers -root \\n\ - GL: razzledazzle -root \\n", + GL: razzledazzle -root \\n\ + vfeedback -root \\n", "XScreenSaver.pointerPollTime: 0:00:05", "XScreenSaver.pointerHysteresis: 10", "XScreenSaver.initialDelay: 0:00:00", @@ -348,6 +351,7 @@ "*hacks.energystream.name: EnergyStream", "*hacks.euler2d.name: Euler2D", "*hacks.fadeplot.name: FadePlot", +"*hacks.filmleader.name: FilmLeader", "*hacks.flipflop.name: FlipFlop", "*hacks.flipscreen3d.name: FlipScreen3D", "*hacks.fliptext.name: FlipText", @@ -359,6 +363,7 @@ "*hacks.gflux.name: GFlux", "*hacks.gleidescope.name: Gleidescope", "*hacks.glforestfire.name: GLForestFire", +"*hacks.glitchpeg.name: GlitchPEG", "*hacks.hyperball.name: HyperBall", "*hacks.hypercube.name: HyperCube", "*hacks.ifs.name: IFS", @@ -401,6 +406,7 @@ "*hacks.topblock.name: TopBlock", "*hacks.tronbit.name: TronBit", "*hacks.unknownpleasures.name:UnknownPleasures", +"*hacks.vfeedback.name: VFeedback", "*hacks.vidwhacker.name: VidWhacker", "*hacks.webcollage.name: WebCollage", "*hacks.whirlwindwarp.name: WhirlWindWarp", diff --git a/driver/xscreensaver-getimage-file b/driver/xscreensaver-getimage-file index 6335d931..ba1ef308 100755 --- a/driver/xscreensaver-getimage-file +++ b/driver/xscreensaver-getimage-file @@ -53,7 +53,7 @@ BEGIN { eval 'use LWP::Simple;' } my $progname = $0; $progname =~ s@.*/@@g; -my ($version) = ('$Revision: 1.46 $' =~ m/\s(\d[.\d]+)\s/s); +my ($version) = ('$Revision: 1.52 $' =~ m/\s(\d[.\d]+)\s/s); my $verbose = 0; @@ -103,6 +103,7 @@ my $nondir_re = '\.(' . join("|", @nondir_extensions) . ')$'; # JPEG, GIF, and PNG files that are are smaller than this are rejected: # this is so that you can use an image directory that contains both big # images and thumbnails, and have it only select the big versions. +# But, if all of your images are smaller than this, all will be rejected. # my $min_image_width = 500; my $min_image_height = 500; @@ -117,6 +118,10 @@ my $stat_count = 0; # number of files/dirs stat'ed my $skip_count_unstat = 0; # number of files skipped without stat'ing my $skip_count_stat = 0; # number of files skipped after stat +my $config_file = $ENV{HOME} . "/.xscreensaver"; +my $image_directory = undef; + + sub find_all_files($); sub find_all_files($) { my ($dir) = @_; @@ -451,7 +456,7 @@ sub parse_feed($) { # malicious images really do exist, so for xscreensaver-getimage-file, # let's actually require that SSL be installed properly. - + print STDERR "$progname: loading $url\n" if ($verbose); my $body = (LWP::Simple::get($url) || ''); if ($body !~ m@^\s*<(\?xml|rss)\b@si) { @@ -563,12 +568,19 @@ sub parse_feed($) { } } - # Then look for ... with an inside. + # Then look for or ... with an + # inside. If more than one image, take the first. # - if (! $iurl) { - foreach my $link ($item =~ m@]*>(.*?)@gsi) { + foreach my $t ('content:encoded', 'description') { + last if $iurl; + foreach my $link ($item =~ m@<$t[^<>]*>(.*?)@gsi) { last if $iurl; - my $desc = html_unquote($1); + my $desc = $1; + if ($desc =~ m@@gs) { + $desc = $1; + } else { + $desc = html_unquote($desc); + } my ($href) = ($desc =~ m@]*\bSRC=[\"\']?([^\"\'<>]+)@si); $iurl = html_unquote($href) if ($href); # If IMG SRC has a bogus extension, pretend it's a JPEG. @@ -577,10 +589,6 @@ sub parse_feed($) { } } - # Could also do , but the above probably covers all - # of the real-world possibilities. - - # Find a unique ID for this image, to defeat image farms. # First look for ... ($id) = ($item =~ m!]*>\s*([^<>]+?)\s*!si) unless $id; @@ -817,7 +825,8 @@ sub mirror_feed($) { closedir $dirh; if ($count <= 0) { - print STDERR "$progname: no files in cache of $url\n" if ($verbose); + print STDERR "$progname: no image files in cache of $url\n" + if ($verbose); $poll_p = 1; } } @@ -842,9 +851,16 @@ sub mirror_feed($) { my @urls = parse_feed ($url); print STDERR "$progname: " . ($#urls + 1) . " images\n" if ($verbose > 1); + my %seen_src_urls; foreach my $p (@urls) { my ($furl, $id) = @$p; $furl = expand_url ($furl, $url); + + # No need to download the same image twice, even if it was in the feed + # multiple times under different GUIDs. + next if ($seen_src_urls{$furl}); + $seen_src_urls{$furl} = 1; + my $f = download_image ($furl, $id, $dir); next unless $f; $files{$f} = 1; # Got it, don't delete @@ -956,25 +972,40 @@ sub find_random_file($) { write_cache ($dir); if ($#all_files < 0) { - print STDERR "$progname: no files in $dir\n"; + print STDERR "$progname: no image files in $dir\n"; exit 1; } my $max_tries = 50; - for (my $i = 0; $i < $max_tries; $i++) { - - my $n = int (rand ($#all_files + 1)); - my $file = $all_files[$n]; - if (large_enough_p ($file)) { - if (! $url) { - $file =~ s@^\Q$dir/@@so || die; # remove $dir from front + my $total_files = @all_files; + my $sparse_p = ($total_files < 20); + + # If the directory has a lot of files in it: + # Make a pass through looking for hirez files (assume some are thumbs); + # If we found none, then, select any other file at random. + # Otherwise if there are a small number of files: + # Just select one at random (in case there's like, just one hirez). + + for (my $check_size_p = $sparse_p ? 0 : 1; + $check_size_p >= 0; $check_size_p--) { + + for (my $i = 0; $i < $max_tries; $i++) { + my $n = int (rand ($total_files)); + my $file = $all_files[$n]; + if (!$check_size_p || large_enough_p ($file)) { + if (! $url) { + $file =~ s@^\Q$dir/@@so || die; # remove $dir from front + } + return $file; } - return $file; } } - print STDERR "$progname: no suitable images in $dir " . - "(after $max_tries tries)\n"; + print STDERR "$progname: no suitable images in " . ($url || $dir) . " -- " . + ($total_files <= $max_tries + ? "all $total_files images" + : "$max_tries of $total_files images") . + " are smaller than ${min_image_width}x${min_image_height}.\n"; # If we got here, blow away the cache. Maybe it's stale. unlink $cache_file_name if $cache_file_name; @@ -1119,6 +1150,81 @@ sub image_file_size($) { } +# Reads the prefs we use from ~/.xscreensaver +# +sub get_x11_prefs() { + my $got_any_p = 0; + + if (open (my $in, '<', $config_file)) { + print STDERR "$progname: reading $config_file\n" if ($verbose > 1); + local $/ = undef; # read entire file + my $body = <$in>; + close $in; + $got_any_p = get_x11_prefs_1 ($body); + + } elsif ($verbose > 1) { + print STDERR "$progname: $config_file: $!\n"; + } + + if (! $got_any_p && defined ($ENV{DISPLAY})) { + # We weren't able to read settings from the .xscreensaver file. + # Fall back to any settings in the X resource database + # (/usr/X11R6/lib/X11/app-defaults/XScreenSaver) + # + print STDERR "$progname: reading X resources\n" if ($verbose > 1); + my $body = `appres XScreenSaver xscreensaver -1`; + $got_any_p = get_x11_prefs_1 ($body); + } +} + + +sub get_x11_prefs_1($) { + my ($body) = @_; + + my $got_any_p = 0; + $body =~ s@\\\n@@gs; + $body =~ s@^[ \t]*#[^\n]*$@@gm; + + if ($body =~ m/^[.*]*imageDirectory:[ \t]*([^\s]+)\s*$/im) { + $image_directory = $1; + $got_any_p = 1; + } + return $got_any_p; +} + + +sub get_cocoa_prefs($) { + my ($id) = @_; + print STDERR "$progname: reading Cocoa prefs: \"$id\"\n" if ($verbose > 1); + my $v = get_cocoa_pref_1 ($id, "imageDirectory"); + $v = '~/Pictures' unless defined ($v); # Match default in XScreenSaverView + $image_directory = $v if defined ($v); +} + + +sub get_cocoa_pref_1($$) { + my ($id, $key) = @_; + # make sure there's nothing stupid/malicious in either string. + $id =~ s/[^-a-z\d. ]/_/gsi; + $key =~ s/[^-a-z\d. ]/_/gsi; + my $cmd = "defaults -currentHost read \"$id\" \"$key\""; + + print STDERR "$progname: executing $cmd\n" + if ($verbose > 3); + + my $val = `$cmd 2>/dev/null`; + $val =~ s/^\s+//s; + $val =~ s/\s+$//s; + + print STDERR "$progname: Cocoa: $id $key = \"$val\"\n" + if ($verbose > 2); + + $val = undef if ($val =~ m/^$/s); + + return $val; +} + + sub error($) { my ($err) = @_; print STDERR "$progname: $err\n"; @@ -1126,7 +1232,7 @@ sub error($) { } sub usage() { - print STDERR "usage: $progname [--verbose] directory-or-feed-url\n\n" . + print STDERR "usage: $progname [--verbose] [ directory-or-feed-url ]\n\n" . " Prints the name of a randomly-selected image file. The directory\n" . " is searched recursively. Images smaller than " . "${min_image_width}x${min_image_height} are excluded.\n" . @@ -1138,7 +1244,8 @@ sub usage() { } sub main() { - my $dir = undef; + my $cocoa_id = undef; + my $abs_p = 0; while ($_ = $ARGV[0]) { shift @ARGV; @@ -1149,28 +1256,59 @@ sub main() { elsif (m/^--?no-spotlight$/s) { $use_spotlight_p = 0; } elsif (m/^--?cache$/s) { $cache_p = 1; } elsif (m/^--?no-?cache$/s) { $cache_p = 0; } + elsif (m/^--?cocoa$/) { $cocoa_id = shift @ARGV; } + elsif (m/^--?abs(olute)?$/) { $abs_p = 1; } elsif (m/^-./) { usage; } - elsif (!defined($dir)) { $dir = $_; } + elsif (!defined($image_directory)) { $image_directory = $_; } else { usage; } } - usage unless (defined($dir)); + # Most hacks (X11 and Cocoa) pass a --directory value on the command line, + # but if they don't, look it up from the resources. Currently this only + # happens with "glitchpeg" which invokes xscreensaver-getimage-file + # directly instead of going through the traditional path. + # + if (! $image_directory) { + if (!defined ($cocoa_id)) { + # see OSX/XScreenSaverView.m + $cocoa_id = $ENV{XSCREENSAVER_CLASSPATH}; + } + + if (defined ($cocoa_id)) { + get_cocoa_prefs($cocoa_id); + error ("no imageDirectory in $cocoa_id") unless $image_directory; + } else { + get_x11_prefs(); + error ("no imageDirectory in X11 resources") unless $image_directory; + } + } + + usage unless (defined($image_directory)); - $dir =~ s@^feed:@http:@si; + $image_directory =~ s@^feed:@http:@si; - if ($dir =~ m/^https?:/si) { + if ($image_directory =~ m/^https?:/si) { # ok } else { - $dir =~ s@^~/@$ENV{HOME}/@s; # allow literal "~/" - $dir =~ s@/+$@@s; # omit trailing / + $image_directory =~ s@^~/@$ENV{HOME}/@s; # allow literal "~/" + $image_directory =~ s@/+$@@s; # omit trailing / - if (! -d $dir) { - print STDERR "$progname: $dir: not a directory or URL\n"; + if (! -d $image_directory) { + print STDERR "$progname: $image_directory not a directory or URL\n"; usage; } } - my $file = find_random_file ($dir); + my $file = find_random_file ($image_directory); + + # With --absolute return fully qualified paths instead of relative to --dir. + if ($abs_p && + $file !~ m@^/@ && + $image_directory =~ m@^/@s) { + $file = "$image_directory/$file"; + $file =~ s@//+@/@gs; + } + print STDOUT "$file\n"; } diff --git a/driver/xscreensaver-getimage.c b/driver/xscreensaver-getimage.c index b9715aec..092540d4 100644 --- a/driver/xscreensaver-getimage.c +++ b/driver/xscreensaver-getimage.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2001-2016 by Jamie Zawinski +/* xscreensaver, Copyright (c) 2001-2018 by Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -316,9 +316,11 @@ static void colorbars (Screen *screen, Visual *visual, Drawable drawable, Colormap cmap) { Pixmap mask = 0; + unsigned long *pixels; /* ignored - unfreed */ + int npixels; Pixmap logo = xscreensaver_logo (screen, visual, drawable, cmap, BlackPixelOfScreen (screen), - 0, 0, &mask, True); + &pixels, &npixels, &mask, True); draw_colorbars (screen, visual, drawable, cmap, 0, 0, 0, 0, logo, mask); XFreePixmap (DisplayOfScreen (screen), logo); XFreePixmap (DisplayOfScreen (screen), mask); diff --git a/hacks/Makefile.in b/hacks/Makefile.in index 6089af80..45568728 100644 --- a/hacks/Makefile.in +++ b/hacks/Makefile.in @@ -64,6 +64,7 @@ TEXT_LIBS = @PTY_LIBS@ UTILS_SRC = $(srcdir)/../utils UTILS_BIN = ../utils +HACK_BIN = . INCLUDES_1 = -I. -I$(srcdir) -I$(UTILS_SRC) -I.. INCLUDES = $(INCLUDES_1) @INCLUDES@ @@ -89,7 +90,7 @@ UTIL_OBJS = $(UTILS_BIN)/alpha.o $(UTILS_BIN)/colors.o \ $(UTILS_BIN)/textclient.o $(UTILS_BIN)/aligned_malloc.o \ $(UTILS_BIN)/thread_util.o $(UTILS_BIN)/pow2.o \ $(UTILS_BIN)/xft.o $(UTILS_BIN)/utf8wc.o \ - $(UTILS_BIN)/font-retry.o + $(UTILS_BIN)/font-retry-xft.o SRCS = attraction.c blitspin.c bouboule.c braid.c bubbles.c \ bubbles-default.c decayscreen.c deco.c drift.c flag.c \ @@ -114,13 +115,14 @@ SRCS = attraction.c blitspin.c bouboule.c braid.c bubbles.c \ euler2d.c juggle.c polyominoes.c thornbird.c fluidballs.c \ anemone.c halftone.c metaballs.c eruption.c popsquares.c \ barcode.c piecewise.c cloudlife.c fontglide.c apple2.c \ - apple2-main.c analogtv.c xanalogtv.c pong.c wormhole.c \ - pacman.c pacman_ai.c pacman_level.c \ + apple2-main.c analogtv.c xanalogtv.c pong.c filmleader.c \ + wormhole.c pacman.c pacman_ai.c pacman_level.c \ fuzzyflakes.c anemotaxis.c memscroller.c substrate.c \ intermomentary.c fireworkx.c fiberlamp.c \ boxfit.c interaggregate.c celtic.c cwaves.c m6502.c \ asm6502.c abstractile.c lcdscrub.c hexadrop.c \ tessellimage.c delaunay.c recanim.c binaryring.c \ + glitchpeg.c vfeedback.c \ webcollage-cocoa.m webcollage-helper-cocoa.m testx11.c SCRIPTS = vidwhacker webcollage ljlatest @@ -154,14 +156,14 @@ OBJS = attraction.o blitspin.o bouboule.o braid.o bubbles.o \ euler2d.o juggle.o polyominoes.o thornbird.o fluidballs.o \ anemone.o halftone.o metaballs.o eruption.o popsquares.o \ barcode.o piecewise.o cloudlife.o fontglide.o apple2.o \ - apple2-main.o analogtv.o xanalogtv.o pong.o wormhole.o \ - pacman.o pacman_ai.o pacman_level.o \ + apple2-main.o analogtv.o xanalogtv.o pong.o filmleader.o \ + wormhole.o pacman.o pacman_ai.o pacman_level.o \ fuzzyflakes.o anemotaxis.o memscroller.o substrate.o \ intermomentary.o fireworkx.o fiberlamp.o boxfit.o \ interaggregate.o celtic.o cwaves.o webcollage-cocoa.o \ webcollage-helper-cocoa.o m6502.o asm6502.o abstractile.o \ lcdscrub.o hexadrop.o tessellimage.o delaunay.o recanim.o \ - binaryring.o testx11.o + binaryring.o glitchpeg.o vfeedback.o testx11.o EXES = attraction blitspin bouboule braid decayscreen deco \ drift flame galaxy grav greynetic halo \ @@ -179,11 +181,11 @@ EXES = attraction blitspin bouboule braid decayscreen deco \ speedmine vermiculate twang apollonian euler2d \ polyominoes thornbird fluidballs anemone halftone \ metaballs eruption popsquares barcode piecewise cloudlife \ - fontglide apple2 xanalogtv pong wormhole \ + fontglide apple2 xanalogtv pong filmleader wormhole \ pacman fuzzyflakes anemotaxis memscroller substrate \ intermomentary fireworkx fiberlamp boxfit interaggregate \ celtic cwaves m6502 abstractile lcdscrub hexadrop \ - tessellimage binaryring \ + tessellimage binaryring glitchpeg vfeedback \ @JPEG_EXES@ JPEG_EXES = webcollage-helper @@ -193,7 +195,7 @@ RETIRED_EXES = ant bubbles critical flag forest hyperball hypercube laser \ HACK_OBJS_1 = fps.o $(UTILS_BIN)/resources.o $(UTILS_BIN)/visual.o \ $(UTILS_BIN)/usleep.o $(UTILS_BIN)/yarandom.o \ - $(UTILS_BIN)/utf8wc.o $(UTILS_BIN)/font-retry.o \ + $(UTILS_BIN)/utf8wc.o $(UTILS_BIN)/font-retry-xft.o \ @XMU_OBJS@ @XFT_OBJS@ @ANIM_OBJS@ HACK_OBJS = screenhack.o $(HACK_OBJS_1) XLOCK_OBJS = screenhack.o xlockmore.o $(COLOR_OBJS) $(HACK_OBJS_1) \ @@ -236,12 +238,13 @@ MEN = anemone.man apollonian.man attraction.man \ xrayswarm.man xspirograph.man \ zoom.man halftone.man eruption.man metaballs.man \ barcode.man piecewise.man cloudlife.man ljlatest.man \ - fontglide.man apple2.man xanalogtv.man pong.man \ - wormhole.man pacman.man fuzzyflakes.man \ + fontglide.man apple2.man xanalogtv.man filmleader.man \ + pong.man wormhole.man pacman.man fuzzyflakes.man \ anemotaxis.man memscroller.man substrate.man \ intermomentary.man fireworkx.man fiberlamp.man boxfit.man \ interaggregate.man celtic.man cwaves.man abstractile.man \ - lcdscrub.man hexadrop.man tessellimage.man binaryring.man + lcdscrub.man hexadrop.man tessellimage.man binaryring.man \ + glitchpeg.man vfeedback.man RETIRED_MEN = ant.man bubbles.man critical.man flag.man forest.man \ laser.man lightning.man lisa.man lissie.man lmorph.man \ @@ -523,7 +526,7 @@ $(UTILS_BIN)/textclient.o: $(UTILS_SRC)/textclient.c $(UTILS_BIN)/aligned_malloc.o: $(UTILS_SRC)/aligned_malloc.c $(UTILS_BIN)/thread_util.o: $(UTILS_SRC)/thread_util.c $(UTILS_BIN)/pow2.o: $(UTILS_SRC)/pow2.c -$(UTILS_BIN)/font-retry.o: $(UTILS_SRC)/font-retry.c +$(UTILS_BIN)/font-retry-xft.o: $(UTILS_SRC)/font-retry.c $(UTIL_OBJS): cd $(UTILS_BIN) ; \ @@ -565,7 +568,7 @@ test-utf8wc: $(UTILS_SRC)/utf8wc.c -o $@ -DSELFTEST $< # Make sure the images have been packaged. This is the first one hit: -$(srcdir)/images/gen/nose-f1_png.h: +$(HACK_BIN)/images/gen/nose-f1_png.h: cd $(srcdir)/images && $(MAKE) # The rules for those hacks which follow the `screenhack.c' API. @@ -868,6 +871,16 @@ hexadrop: hexadrop.o $(HACK_OBJS) $(COL) tessellimage: tessellimage.o delaunay.o $(HACK_OBJS) $(GRAB) $(CC_HACK) -o $@ $@.o delaunay.o $(HACK_OBJS) $(GRAB) $(HACK_LIBS) +glitchpeg: glitchpeg.o $(HACK_OBJS) $(PNG) + $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(PNG) $(PNG_LIBS) + +filmleader: filmleader.o $(HACK_OBJS) $(ATV) $(GRAB) $(PNG) + $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(ATV) $(GRAB) $(PNG) $(PNG_LIBS) $(HACK_LIBS) $(THRL) + +vfeedback: vfeedback.o $(HACK_OBJS) $(ATV) $(GRAB) $(PNG) + $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(ATV) $(GRAB) $(PNG) $(PNG_LIBS) $(HACK_LIBS) $(THRL) + + testx11: testx11.o glx/rotator.o $(HACK_OBJS) $(COL) $(PNG) $(BARS) $(ERASE) $(CC_HACK) -o $@ $@.o glx/rotator.o $(HACK_OBJS) $(COL) $(PNG) $(BARS) $(ERASE) $(PNG_LIBS) @@ -1011,6 +1024,7 @@ webcollage-helper: webcollage-helper.o abstractile.o: ../config.h abstractile.o: $(srcdir)/fps.h +abstractile.o: $(srcdir)/recanim.h abstractile.o: $(srcdir)/screenhackI.h abstractile.o: $(srcdir)/screenhack.h abstractile.o: $(UTILS_SRC)/colors.h @@ -1036,6 +1050,7 @@ analogtv.o: $(UTILS_SRC)/yarandom.h analogtv.o: $(srcdir)/ximage-loader.h anemone.o: ../config.h anemone.o: $(srcdir)/fps.h +anemone.o: $(srcdir)/recanim.h anemone.o: $(srcdir)/screenhackI.h anemone.o: $(srcdir)/screenhack.h anemone.o: $(UTILS_SRC)/colors.h @@ -1049,6 +1064,7 @@ anemone.o: $(UTILS_SRC)/xdbe.h anemone.o: $(UTILS_SRC)/yarandom.h anemotaxis.o: ../config.h anemotaxis.o: $(srcdir)/fps.h +anemotaxis.o: $(srcdir)/recanim.h anemotaxis.o: $(srcdir)/screenhackI.h anemotaxis.o: $(srcdir)/screenhack.h anemotaxis.o: $(UTILS_SRC)/colors.h @@ -1063,6 +1079,7 @@ anemotaxis.o: $(UTILS_SRC)/yarandom.h ant.o: $(srcdir)/automata.h ant.o: ../config.h ant.o: $(srcdir)/fps.h +ant.o: $(srcdir)/recanim.h ant.o: $(srcdir)/screenhackI.h ant.o: $(UTILS_SRC)/colors.h ant.o: $(UTILS_SRC)/erase.h @@ -1077,6 +1094,7 @@ ant.o: $(srcdir)/xlockmoreI.h ant.o: $(srcdir)/xlockmore.h apollonian.o: ../config.h apollonian.o: $(srcdir)/fps.h +apollonian.o: $(srcdir)/recanim.h apollonian.o: $(srcdir)/screenhackI.h apollonian.o: $(UTILS_SRC)/colors.h apollonian.o: $(UTILS_SRC)/erase.h @@ -1093,6 +1111,7 @@ apple2-main.o: $(srcdir)/analogtv.h apple2-main.o: $(srcdir)/apple2.h apple2-main.o: ../config.h apple2-main.o: $(srcdir)/fps.h +apple2-main.o: $(srcdir)/recanim.h apple2-main.o: $(srcdir)/screenhackI.h apple2-main.o: $(srcdir)/screenhack.h apple2-main.o: $(UTILS_SRC)/aligned_malloc.h @@ -1113,6 +1132,7 @@ apple2.o: $(srcdir)/apple2.h apple2.o: ../config.h apple2.o: $(srcdir)/fps.h apple2.o: $(srcdir)/images/gen/apple2font_png.h +apple2.o: $(srcdir)/recanim.h apple2.o: $(srcdir)/screenhackI.h apple2.o: $(UTILS_SRC)/aligned_malloc.h apple2.o: $(UTILS_SRC)/colors.h @@ -1131,6 +1151,7 @@ asm6502.o: ../config.h asm6502.o: $(UTILS_SRC)/yarandom.h attraction.o: ../config.h attraction.o: $(srcdir)/fps.h +attraction.o: $(srcdir)/recanim.h attraction.o: $(srcdir)/screenhackI.h attraction.o: $(srcdir)/screenhack.h attraction.o: $(UTILS_SRC)/colors.h @@ -1144,6 +1165,7 @@ attraction.o: $(UTILS_SRC)/visual.h attraction.o: $(UTILS_SRC)/yarandom.h barcode.o: ../config.h barcode.o: $(srcdir)/fps.h +barcode.o: $(srcdir)/recanim.h barcode.o: $(srcdir)/screenhackI.h barcode.o: $(srcdir)/screenhack.h barcode.o: $(UTILS_SRC)/colors.h @@ -1156,6 +1178,7 @@ barcode.o: $(UTILS_SRC)/visual.h barcode.o: $(UTILS_SRC)/yarandom.h binaryring.o: ../config.h binaryring.o: $(srcdir)/fps.h +binaryring.o: $(srcdir)/recanim.h binaryring.o: $(srcdir)/screenhackI.h binaryring.o: $(srcdir)/screenhack.h binaryring.o: $(UTILS_SRC)/colors.h @@ -1168,6 +1191,7 @@ binaryring.o: $(UTILS_SRC)/visual.h binaryring.o: $(UTILS_SRC)/yarandom.h blaster.o: ../config.h blaster.o: $(srcdir)/fps.h +blaster.o: $(srcdir)/recanim.h blaster.o: $(srcdir)/screenhackI.h blaster.o: $(srcdir)/screenhack.h blaster.o: $(UTILS_SRC)/colors.h @@ -1181,6 +1205,7 @@ blaster.o: $(UTILS_SRC)/yarandom.h blitspin.o: ../config.h blitspin.o: $(srcdir)/fps.h blitspin.o: $(srcdir)/images/gen/som_png.h +blitspin.o: $(srcdir)/recanim.h blitspin.o: $(srcdir)/screenhackI.h blitspin.o: $(srcdir)/screenhack.h blitspin.o: $(UTILS_SRC)/colors.h @@ -1195,6 +1220,7 @@ blitspin.o: $(UTILS_SRC)/yarandom.h blitspin.o: $(srcdir)/ximage-loader.h bouboule.o: ../config.h bouboule.o: $(srcdir)/fps.h +bouboule.o: $(srcdir)/recanim.h bouboule.o: $(srcdir)/screenhackI.h bouboule.o: $(UTILS_SRC)/colors.h bouboule.o: $(UTILS_SRC)/erase.h @@ -1209,6 +1235,7 @@ bouboule.o: $(srcdir)/xlockmoreI.h bouboule.o: $(srcdir)/xlockmore.h boxfit.o: ../config.h boxfit.o: $(srcdir)/fps.h +boxfit.o: $(srcdir)/recanim.h boxfit.o: $(srcdir)/screenhackI.h boxfit.o: $(srcdir)/screenhack.h boxfit.o: $(UTILS_SRC)/colors.h @@ -1222,6 +1249,7 @@ boxfit.o: $(UTILS_SRC)/yarandom.h boxfit.o: $(srcdir)/ximage-loader.h braid.o: ../config.h braid.o: $(srcdir)/fps.h +braid.o: $(srcdir)/recanim.h braid.o: $(srcdir)/screenhackI.h braid.o: $(UTILS_SRC)/colors.h braid.o: $(UTILS_SRC)/erase.h @@ -1249,6 +1277,7 @@ bsod.o: $(srcdir)/images/gen/mac_png.h bsod.o: $(srcdir)/images/gen/osx_10_2_png.h bsod.o: $(srcdir)/images/gen/osx_10_3_png.h bsod.o: $(srcdir)/images/gen/ransomware_png.h +bsod.o: $(srcdir)/recanim.h bsod.o: $(srcdir)/screenhackI.h bsod.o: $(srcdir)/screenhack.h bsod.o: $(UTILS_SRC)/aligned_malloc.h @@ -1313,6 +1342,7 @@ bubbles-default.o: $(UTILS_SRC)/yarandom.h bubbles.o: $(srcdir)/bubbles.h bubbles.o: ../config.h bubbles.o: $(srcdir)/fps.h +bubbles.o: $(srcdir)/recanim.h bubbles.o: $(srcdir)/screenhackI.h bubbles.o: $(srcdir)/screenhack.h bubbles.o: $(UTILS_SRC)/colors.h @@ -1326,6 +1356,7 @@ bubbles.o: $(UTILS_SRC)/yarandom.h bubbles.o: $(srcdir)/ximage-loader.h bumps.o: ../config.h bumps.o: $(srcdir)/fps.h +bumps.o: $(srcdir)/recanim.h bumps.o: $(srcdir)/screenhackI.h bumps.o: $(srcdir)/screenhack.h bumps.o: $(UTILS_SRC)/colors.h @@ -1339,6 +1370,7 @@ bumps.o: $(UTILS_SRC)/xshm.h bumps.o: $(UTILS_SRC)/yarandom.h ccurve.o: ../config.h ccurve.o: $(srcdir)/fps.h +ccurve.o: $(srcdir)/recanim.h ccurve.o: $(srcdir)/screenhackI.h ccurve.o: $(srcdir)/screenhack.h ccurve.o: $(UTILS_SRC)/colors.h @@ -1352,6 +1384,7 @@ ccurve.o: $(UTILS_SRC)/visual.h ccurve.o: $(UTILS_SRC)/yarandom.h celtic.o: ../config.h celtic.o: $(srcdir)/fps.h +celtic.o: $(srcdir)/recanim.h celtic.o: $(srcdir)/screenhackI.h celtic.o: $(srcdir)/screenhack.h celtic.o: $(UTILS_SRC)/colors.h @@ -1365,6 +1398,7 @@ celtic.o: $(UTILS_SRC)/visual.h celtic.o: $(UTILS_SRC)/yarandom.h cloudlife.o: ../config.h cloudlife.o: $(srcdir)/fps.h +cloudlife.o: $(srcdir)/recanim.h cloudlife.o: $(srcdir)/screenhackI.h cloudlife.o: $(srcdir)/screenhack.h cloudlife.o: $(UTILS_SRC)/colors.h @@ -1377,6 +1411,7 @@ cloudlife.o: $(UTILS_SRC)/visual.h cloudlife.o: $(UTILS_SRC)/yarandom.h compass.o: ../config.h compass.o: $(srcdir)/fps.h +compass.o: $(srcdir)/recanim.h compass.o: $(srcdir)/screenhackI.h compass.o: $(srcdir)/screenhack.h compass.o: $(UTILS_SRC)/colors.h @@ -1390,6 +1425,7 @@ compass.o: $(UTILS_SRC)/xdbe.h compass.o: $(UTILS_SRC)/yarandom.h coral.o: ../config.h coral.o: $(srcdir)/fps.h +coral.o: $(srcdir)/recanim.h coral.o: $(srcdir)/screenhackI.h coral.o: $(srcdir)/screenhack.h coral.o: $(UTILS_SRC)/colors.h @@ -1403,6 +1439,7 @@ coral.o: $(UTILS_SRC)/visual.h coral.o: $(UTILS_SRC)/yarandom.h critical.o: ../config.h critical.o: $(srcdir)/fps.h +critical.o: $(srcdir)/recanim.h critical.o: $(srcdir)/screenhackI.h critical.o: $(srcdir)/screenhack.h critical.o: $(UTILS_SRC)/colors.h @@ -1416,6 +1453,7 @@ critical.o: $(UTILS_SRC)/visual.h critical.o: $(UTILS_SRC)/yarandom.h crystal.o: ../config.h crystal.o: $(srcdir)/fps.h +crystal.o: $(srcdir)/recanim.h crystal.o: $(srcdir)/screenhackI.h crystal.o: $(UTILS_SRC)/colors.h crystal.o: $(UTILS_SRC)/erase.h @@ -1430,6 +1468,7 @@ crystal.o: $(srcdir)/xlockmoreI.h crystal.o: $(srcdir)/xlockmore.h cwaves.o: ../config.h cwaves.o: $(srcdir)/fps.h +cwaves.o: $(srcdir)/recanim.h cwaves.o: $(srcdir)/screenhackI.h cwaves.o: $(srcdir)/screenhack.h cwaves.o: $(UTILS_SRC)/colors.h @@ -1443,6 +1482,7 @@ cwaves.o: $(UTILS_SRC)/yarandom.h cwaves.o: $(srcdir)/ximage-loader.h cynosure.o: ../config.h cynosure.o: $(srcdir)/fps.h +cynosure.o: $(srcdir)/recanim.h cynosure.o: $(srcdir)/screenhackI.h cynosure.o: $(srcdir)/screenhack.h cynosure.o: $(UTILS_SRC)/colors.h @@ -1455,6 +1495,7 @@ cynosure.o: $(UTILS_SRC)/visual.h cynosure.o: $(UTILS_SRC)/yarandom.h decayscreen.o: ../config.h decayscreen.o: $(srcdir)/fps.h +decayscreen.o: $(srcdir)/recanim.h decayscreen.o: $(srcdir)/screenhackI.h decayscreen.o: $(srcdir)/screenhack.h decayscreen.o: $(UTILS_SRC)/colors.h @@ -1467,6 +1508,7 @@ decayscreen.o: $(UTILS_SRC)/visual.h decayscreen.o: $(UTILS_SRC)/yarandom.h deco.o: ../config.h deco.o: $(srcdir)/fps.h +deco.o: $(srcdir)/recanim.h deco.o: $(srcdir)/screenhackI.h deco.o: $(srcdir)/screenhack.h deco.o: $(UTILS_SRC)/colors.h @@ -1481,6 +1523,7 @@ delaunay.o: ../config.h delaunay.o: $(srcdir)/delaunay.h deluxe.o: ../config.h deluxe.o: $(srcdir)/fps.h +deluxe.o: $(srcdir)/recanim.h deluxe.o: $(srcdir)/screenhackI.h deluxe.o: $(srcdir)/screenhack.h deluxe.o: $(UTILS_SRC)/alpha.h @@ -1496,6 +1539,7 @@ deluxe.o: $(UTILS_SRC)/yarandom.h demon.o: $(srcdir)/automata.h demon.o: ../config.h demon.o: $(srcdir)/fps.h +demon.o: $(srcdir)/recanim.h demon.o: $(srcdir)/screenhackI.h demon.o: $(UTILS_SRC)/colors.h demon.o: $(UTILS_SRC)/erase.h @@ -1510,6 +1554,7 @@ demon.o: $(srcdir)/xlockmoreI.h demon.o: $(srcdir)/xlockmore.h discrete.o: ../config.h discrete.o: $(srcdir)/fps.h +discrete.o: $(srcdir)/recanim.h discrete.o: $(srcdir)/screenhackI.h discrete.o: $(UTILS_SRC)/colors.h discrete.o: $(UTILS_SRC)/erase.h @@ -1524,6 +1569,7 @@ discrete.o: $(srcdir)/xlockmoreI.h discrete.o: $(srcdir)/xlockmore.h distort.o: ../config.h distort.o: $(srcdir)/fps.h +distort.o: $(srcdir)/recanim.h distort.o: $(srcdir)/screenhackI.h distort.o: $(srcdir)/screenhack.h distort.o: $(UTILS_SRC)/colors.h @@ -1537,6 +1583,7 @@ distort.o: $(UTILS_SRC)/xshm.h distort.o: $(UTILS_SRC)/yarandom.h drift.o: ../config.h drift.o: $(srcdir)/fps.h +drift.o: $(srcdir)/recanim.h drift.o: $(srcdir)/screenhackI.h drift.o: $(UTILS_SRC)/colors.h drift.o: $(UTILS_SRC)/erase.h @@ -1551,6 +1598,7 @@ drift.o: $(srcdir)/xlockmoreI.h drift.o: $(srcdir)/xlockmore.h epicycle.o: ../config.h epicycle.o: $(srcdir)/fps.h +epicycle.o: $(srcdir)/recanim.h epicycle.o: $(srcdir)/screenhackI.h epicycle.o: $(srcdir)/screenhack.h epicycle.o: $(UTILS_SRC)/colors.h @@ -1564,6 +1612,7 @@ epicycle.o: $(UTILS_SRC)/visual.h epicycle.o: $(UTILS_SRC)/yarandom.h eruption.o: ../config.h eruption.o: $(srcdir)/fps.h +eruption.o: $(srcdir)/recanim.h eruption.o: $(srcdir)/screenhackI.h eruption.o: $(srcdir)/screenhack.h eruption.o: $(UTILS_SRC)/colors.h @@ -1576,6 +1625,7 @@ eruption.o: $(UTILS_SRC)/visual.h eruption.o: $(UTILS_SRC)/yarandom.h euler2d.o: ../config.h euler2d.o: $(srcdir)/fps.h +euler2d.o: $(srcdir)/recanim.h euler2d.o: $(srcdir)/screenhackI.h euler2d.o: $(UTILS_SRC)/colors.h euler2d.o: $(UTILS_SRC)/erase.h @@ -1590,6 +1640,7 @@ euler2d.o: $(srcdir)/xlockmoreI.h euler2d.o: $(srcdir)/xlockmore.h fadeplot.o: ../config.h fadeplot.o: $(srcdir)/fps.h +fadeplot.o: $(srcdir)/recanim.h fadeplot.o: $(srcdir)/screenhackI.h fadeplot.o: $(UTILS_SRC)/colors.h fadeplot.o: $(UTILS_SRC)/erase.h @@ -1604,6 +1655,7 @@ fadeplot.o: $(srcdir)/xlockmoreI.h fadeplot.o: $(srcdir)/xlockmore.h fiberlamp.o: ../config.h fiberlamp.o: $(srcdir)/fps.h +fiberlamp.o: $(srcdir)/recanim.h fiberlamp.o: $(srcdir)/screenhackI.h fiberlamp.o: $(UTILS_SRC)/colors.h fiberlamp.o: $(UTILS_SRC)/erase.h @@ -1616,8 +1668,27 @@ fiberlamp.o: $(UTILS_SRC)/visual.h fiberlamp.o: $(UTILS_SRC)/yarandom.h fiberlamp.o: $(srcdir)/xlockmoreI.h fiberlamp.o: $(srcdir)/xlockmore.h +filmleader.o: $(srcdir)/analogtv.h +filmleader.o: ../config.h +filmleader.o: $(srcdir)/fps.h +filmleader.o: $(srcdir)/recanim.h +filmleader.o: $(srcdir)/screenhackI.h +filmleader.o: $(srcdir)/screenhack.h +filmleader.o: $(UTILS_SRC)/aligned_malloc.h +filmleader.o: $(UTILS_SRC)/colors.h +filmleader.o: $(UTILS_SRC)/font-retry.h +filmleader.o: $(UTILS_SRC)/grabscreen.h +filmleader.o: $(UTILS_SRC)/hsv.h +filmleader.o: $(UTILS_SRC)/resources.h +filmleader.o: $(UTILS_SRC)/thread_util.h +filmleader.o: $(UTILS_SRC)/usleep.h +filmleader.o: $(UTILS_SRC)/visual.h +filmleader.o: $(UTILS_SRC)/xft.h +filmleader.o: $(UTILS_SRC)/xshm.h +filmleader.o: $(UTILS_SRC)/yarandom.h fireworkx.o: ../config.h fireworkx.o: $(srcdir)/fps.h +fireworkx.o: $(srcdir)/recanim.h fireworkx.o: $(srcdir)/screenhackI.h fireworkx.o: $(srcdir)/screenhack.h fireworkx.o: $(UTILS_SRC)/colors.h @@ -1631,6 +1702,7 @@ fireworkx.o: $(UTILS_SRC)/yarandom.h flag.o: ../config.h flag.o: $(srcdir)/fps.h flag.o: $(srcdir)/images/gen/bob_png.h +flag.o: $(srcdir)/recanim.h flag.o: $(srcdir)/screenhackI.h flag.o: $(UTILS_SRC)/colors.h flag.o: $(UTILS_SRC)/erase.h @@ -1646,6 +1718,7 @@ flag.o: $(srcdir)/xlockmoreI.h flag.o: $(srcdir)/xlockmore.h flame.o: ../config.h flame.o: $(srcdir)/fps.h +flame.o: $(srcdir)/recanim.h flame.o: $(srcdir)/screenhackI.h flame.o: $(srcdir)/screenhack.h flame.o: $(UTILS_SRC)/colors.h @@ -1658,6 +1731,7 @@ flame.o: $(UTILS_SRC)/visual.h flame.o: $(UTILS_SRC)/yarandom.h flow.o: ../config.h flow.o: $(srcdir)/fps.h +flow.o: $(srcdir)/recanim.h flow.o: $(srcdir)/screenhackI.h flow.o: $(UTILS_SRC)/colors.h flow.o: $(UTILS_SRC)/erase.h @@ -1672,6 +1746,7 @@ flow.o: $(srcdir)/xlockmoreI.h flow.o: $(srcdir)/xlockmore.h fluidballs.o: ../config.h fluidballs.o: $(srcdir)/fps.h +fluidballs.o: $(srcdir)/recanim.h fluidballs.o: $(srcdir)/screenhackI.h fluidballs.o: $(srcdir)/screenhack.h fluidballs.o: $(UTILS_SRC)/colors.h @@ -1685,6 +1760,7 @@ fluidballs.o: $(UTILS_SRC)/xdbe.h fluidballs.o: $(UTILS_SRC)/yarandom.h fontglide.o: ../config.h fontglide.o: $(srcdir)/fps.h +fontglide.o: $(srcdir)/recanim.h fontglide.o: $(srcdir)/screenhackI.h fontglide.o: $(srcdir)/screenhack.h fontglide.o: $(UTILS_SRC)/colors.h @@ -1701,6 +1777,7 @@ fontglide.o: $(UTILS_SRC)/xft.h fontglide.o: $(UTILS_SRC)/yarandom.h forest.o: ../config.h forest.o: $(srcdir)/fps.h +forest.o: $(srcdir)/recanim.h forest.o: $(srcdir)/screenhackI.h forest.o: $(UTILS_SRC)/colors.h forest.o: $(UTILS_SRC)/erase.h @@ -1716,6 +1793,7 @@ forest.o: $(srcdir)/xlockmore.h fps.o: ../config.h fps.o: $(srcdir)/fpsI.h fps.o: $(srcdir)/fps.h +fps.o: $(srcdir)/recanim.h fps.o: $(srcdir)/screenhackI.h fps.o: $(UTILS_SRC)/colors.h fps.o: $(UTILS_SRC)/font-retry.h @@ -1727,6 +1805,7 @@ fps.o: $(UTILS_SRC)/visual.h fps.o: $(UTILS_SRC)/yarandom.h fuzzyflakes.o: ../config.h fuzzyflakes.o: $(srcdir)/fps.h +fuzzyflakes.o: $(srcdir)/recanim.h fuzzyflakes.o: $(srcdir)/screenhackI.h fuzzyflakes.o: $(srcdir)/screenhack.h fuzzyflakes.o: $(UTILS_SRC)/colors.h @@ -1739,6 +1818,7 @@ fuzzyflakes.o: $(UTILS_SRC)/visual.h fuzzyflakes.o: $(UTILS_SRC)/yarandom.h galaxy.o: ../config.h galaxy.o: $(srcdir)/fps.h +galaxy.o: $(srcdir)/recanim.h galaxy.o: $(srcdir)/screenhackI.h galaxy.o: $(UTILS_SRC)/colors.h galaxy.o: $(UTILS_SRC)/erase.h @@ -1751,8 +1831,23 @@ galaxy.o: $(UTILS_SRC)/visual.h galaxy.o: $(UTILS_SRC)/yarandom.h galaxy.o: $(srcdir)/xlockmoreI.h galaxy.o: $(srcdir)/xlockmore.h +glitchpeg.o: ../config.h +glitchpeg.o: $(srcdir)/fps.h +glitchpeg.o: $(srcdir)/recanim.h +glitchpeg.o: $(srcdir)/screenhackI.h +glitchpeg.o: $(srcdir)/screenhack.h +glitchpeg.o: $(UTILS_SRC)/colors.h +glitchpeg.o: $(UTILS_SRC)/font-retry.h +glitchpeg.o: $(UTILS_SRC)/grabscreen.h +glitchpeg.o: $(UTILS_SRC)/hsv.h +glitchpeg.o: $(UTILS_SRC)/resources.h +glitchpeg.o: $(UTILS_SRC)/usleep.h +glitchpeg.o: $(UTILS_SRC)/visual.h +glitchpeg.o: $(UTILS_SRC)/yarandom.h +glitchpeg.o: $(srcdir)/ximage-loader.h goop.o: ../config.h goop.o: $(srcdir)/fps.h +goop.o: $(srcdir)/recanim.h goop.o: $(srcdir)/screenhackI.h goop.o: $(srcdir)/screenhack.h goop.o: $(UTILS_SRC)/alpha.h @@ -1767,6 +1862,7 @@ goop.o: $(UTILS_SRC)/visual.h goop.o: $(UTILS_SRC)/yarandom.h grav.o: ../config.h grav.o: $(srcdir)/fps.h +grav.o: $(srcdir)/recanim.h grav.o: $(srcdir)/screenhackI.h grav.o: $(UTILS_SRC)/colors.h grav.o: $(UTILS_SRC)/erase.h @@ -1781,6 +1877,7 @@ grav.o: $(srcdir)/xlockmoreI.h grav.o: $(srcdir)/xlockmore.h greynetic.o: ../config.h greynetic.o: $(srcdir)/fps.h +greynetic.o: $(srcdir)/recanim.h greynetic.o: $(srcdir)/screenhackI.h greynetic.o: $(srcdir)/screenhack.h greynetic.o: $(UTILS_SRC)/colors.h @@ -1793,6 +1890,7 @@ greynetic.o: $(UTILS_SRC)/visual.h greynetic.o: $(UTILS_SRC)/yarandom.h halftone.o: ../config.h halftone.o: $(srcdir)/fps.h +halftone.o: $(srcdir)/recanim.h halftone.o: $(srcdir)/screenhackI.h halftone.o: $(srcdir)/screenhack.h halftone.o: $(UTILS_SRC)/colors.h @@ -1805,6 +1903,7 @@ halftone.o: $(UTILS_SRC)/visual.h halftone.o: $(UTILS_SRC)/yarandom.h halo.o: ../config.h halo.o: $(srcdir)/fps.h +halo.o: $(srcdir)/recanim.h halo.o: $(srcdir)/screenhackI.h halo.o: $(srcdir)/screenhack.h halo.o: $(UTILS_SRC)/colors.h @@ -1817,6 +1916,7 @@ halo.o: $(UTILS_SRC)/visual.h halo.o: $(UTILS_SRC)/yarandom.h helix.o: ../config.h helix.o: $(srcdir)/fps.h +helix.o: $(srcdir)/recanim.h helix.o: $(srcdir)/screenhackI.h helix.o: $(srcdir)/screenhack.h helix.o: $(UTILS_SRC)/colors.h @@ -1830,6 +1930,7 @@ helix.o: $(UTILS_SRC)/visual.h helix.o: $(UTILS_SRC)/yarandom.h hexadrop.o: ../config.h hexadrop.o: $(srcdir)/fps.h +hexadrop.o: $(srcdir)/recanim.h hexadrop.o: $(srcdir)/screenhackI.h hexadrop.o: $(srcdir)/screenhack.h hexadrop.o: $(UTILS_SRC)/colors.h @@ -1842,6 +1943,7 @@ hexadrop.o: $(UTILS_SRC)/visual.h hexadrop.o: $(UTILS_SRC)/yarandom.h hopalong.o: ../config.h hopalong.o: $(srcdir)/fps.h +hopalong.o: $(srcdir)/recanim.h hopalong.o: $(srcdir)/screenhackI.h hopalong.o: $(UTILS_SRC)/colors.h hopalong.o: $(UTILS_SRC)/erase.h @@ -1856,6 +1958,7 @@ hopalong.o: $(srcdir)/xlockmoreI.h hopalong.o: $(srcdir)/xlockmore.h hyperball.o: ../config.h hyperball.o: $(srcdir)/fps.h +hyperball.o: $(srcdir)/recanim.h hyperball.o: $(srcdir)/screenhackI.h hyperball.o: $(srcdir)/screenhack.h hyperball.o: $(UTILS_SRC)/colors.h @@ -1868,6 +1971,7 @@ hyperball.o: $(UTILS_SRC)/visual.h hyperball.o: $(UTILS_SRC)/yarandom.h hypercube.o: ../config.h hypercube.o: $(srcdir)/fps.h +hypercube.o: $(srcdir)/recanim.h hypercube.o: $(srcdir)/screenhackI.h hypercube.o: $(srcdir)/screenhack.h hypercube.o: $(UTILS_SRC)/colors.h @@ -1880,6 +1984,7 @@ hypercube.o: $(UTILS_SRC)/visual.h hypercube.o: $(UTILS_SRC)/yarandom.h ifs.o: ../config.h ifs.o: $(srcdir)/fps.h +ifs.o: $(srcdir)/recanim.h ifs.o: $(srcdir)/screenhackI.h ifs.o: $(srcdir)/screenhack.h ifs.o: $(UTILS_SRC)/colors.h @@ -1892,6 +1997,7 @@ ifs.o: $(UTILS_SRC)/visual.h ifs.o: $(UTILS_SRC)/yarandom.h imsmap.o: ../config.h imsmap.o: $(srcdir)/fps.h +imsmap.o: $(srcdir)/recanim.h imsmap.o: $(srcdir)/screenhackI.h imsmap.o: $(srcdir)/screenhack.h imsmap.o: $(UTILS_SRC)/colors.h @@ -1904,6 +2010,7 @@ imsmap.o: $(UTILS_SRC)/visual.h imsmap.o: $(UTILS_SRC)/yarandom.h interaggregate.o: ../config.h interaggregate.o: $(srcdir)/fps.h +interaggregate.o: $(srcdir)/recanim.h interaggregate.o: $(srcdir)/screenhackI.h interaggregate.o: $(srcdir)/screenhack.h interaggregate.o: $(UTILS_SRC)/colors.h @@ -1916,6 +2023,7 @@ interaggregate.o: $(UTILS_SRC)/visual.h interaggregate.o: $(UTILS_SRC)/yarandom.h interference.o: ../config.h interference.o: $(srcdir)/fps.h +interference.o: $(srcdir)/recanim.h interference.o: $(srcdir)/screenhackI.h interference.o: $(srcdir)/screenhack.h interference.o: $(UTILS_SRC)/aligned_malloc.h @@ -1932,6 +2040,7 @@ interference.o: $(UTILS_SRC)/xshm.h interference.o: $(UTILS_SRC)/yarandom.h intermomentary.o: ../config.h intermomentary.o: $(srcdir)/fps.h +intermomentary.o: $(srcdir)/recanim.h intermomentary.o: $(srcdir)/screenhackI.h intermomentary.o: $(srcdir)/screenhack.h intermomentary.o: $(UTILS_SRC)/colors.h @@ -1944,6 +2053,7 @@ intermomentary.o: $(UTILS_SRC)/visual.h intermomentary.o: $(UTILS_SRC)/yarandom.h juggle.o: ../config.h juggle.o: $(srcdir)/fps.h +juggle.o: $(srcdir)/recanim.h juggle.o: $(srcdir)/screenhackI.h juggle.o: $(UTILS_SRC)/colors.h juggle.o: $(UTILS_SRC)/erase.h @@ -1958,6 +2068,7 @@ juggle.o: $(srcdir)/xlockmoreI.h juggle.o: $(srcdir)/xlockmore.h julia.o: ../config.h julia.o: $(srcdir)/fps.h +julia.o: $(srcdir)/recanim.h julia.o: $(srcdir)/screenhackI.h julia.o: $(UTILS_SRC)/colors.h julia.o: $(UTILS_SRC)/erase.h @@ -1972,6 +2083,7 @@ julia.o: $(srcdir)/xlockmoreI.h julia.o: $(srcdir)/xlockmore.h kaleidescope.o: ../config.h kaleidescope.o: $(srcdir)/fps.h +kaleidescope.o: $(srcdir)/recanim.h kaleidescope.o: $(srcdir)/screenhackI.h kaleidescope.o: $(srcdir)/screenhack.h kaleidescope.o: $(UTILS_SRC)/colors.h @@ -1985,6 +2097,7 @@ kaleidescope.o: $(UTILS_SRC)/visual.h kaleidescope.o: $(UTILS_SRC)/yarandom.h kumppa.o: ../config.h kumppa.o: $(srcdir)/fps.h +kumppa.o: $(srcdir)/recanim.h kumppa.o: $(srcdir)/screenhackI.h kumppa.o: $(srcdir)/screenhack.h kumppa.o: $(UTILS_SRC)/colors.h @@ -1998,6 +2111,7 @@ kumppa.o: $(UTILS_SRC)/xdbe.h kumppa.o: $(UTILS_SRC)/yarandom.h laser.o: ../config.h laser.o: $(srcdir)/fps.h +laser.o: $(srcdir)/recanim.h laser.o: $(srcdir)/screenhackI.h laser.o: $(UTILS_SRC)/colors.h laser.o: $(UTILS_SRC)/erase.h @@ -2012,6 +2126,7 @@ laser.o: $(srcdir)/xlockmoreI.h laser.o: $(srcdir)/xlockmore.h lcdscrub.o: ../config.h lcdscrub.o: $(srcdir)/fps.h +lcdscrub.o: $(srcdir)/recanim.h lcdscrub.o: $(srcdir)/screenhackI.h lcdscrub.o: $(srcdir)/screenhack.h lcdscrub.o: $(UTILS_SRC)/colors.h @@ -2024,6 +2139,7 @@ lcdscrub.o: $(UTILS_SRC)/visual.h lcdscrub.o: $(UTILS_SRC)/yarandom.h lightning.o: ../config.h lightning.o: $(srcdir)/fps.h +lightning.o: $(srcdir)/recanim.h lightning.o: $(srcdir)/screenhackI.h lightning.o: $(UTILS_SRC)/colors.h lightning.o: $(UTILS_SRC)/erase.h @@ -2038,6 +2154,7 @@ lightning.o: $(srcdir)/xlockmoreI.h lightning.o: $(srcdir)/xlockmore.h lisa.o: ../config.h lisa.o: $(srcdir)/fps.h +lisa.o: $(srcdir)/recanim.h lisa.o: $(srcdir)/screenhackI.h lisa.o: $(UTILS_SRC)/colors.h lisa.o: $(UTILS_SRC)/erase.h @@ -2052,6 +2169,7 @@ lisa.o: $(srcdir)/xlockmoreI.h lisa.o: $(srcdir)/xlockmore.h lissie.o: ../config.h lissie.o: $(srcdir)/fps.h +lissie.o: $(srcdir)/recanim.h lissie.o: $(srcdir)/screenhackI.h lissie.o: $(UTILS_SRC)/colors.h lissie.o: $(UTILS_SRC)/erase.h @@ -2066,6 +2184,7 @@ lissie.o: $(srcdir)/xlockmoreI.h lissie.o: $(srcdir)/xlockmore.h lmorph.o: ../config.h lmorph.o: $(srcdir)/fps.h +lmorph.o: $(srcdir)/recanim.h lmorph.o: $(srcdir)/screenhackI.h lmorph.o: $(srcdir)/screenhack.h lmorph.o: $(UTILS_SRC)/colors.h @@ -2079,6 +2198,7 @@ lmorph.o: $(UTILS_SRC)/yarandom.h loop.o: $(srcdir)/automata.h loop.o: ../config.h loop.o: $(srcdir)/fps.h +loop.o: $(srcdir)/recanim.h loop.o: $(srcdir)/screenhackI.h loop.o: $(UTILS_SRC)/colors.h loop.o: $(UTILS_SRC)/erase.h @@ -2096,6 +2216,7 @@ m6502.o: $(srcdir)/asm6502.h m6502.o: ../config.h m6502.o: $(srcdir)/fps.h m6502.o: m6502.h +m6502.o: $(srcdir)/recanim.h m6502.o: $(srcdir)/screenhackI.h m6502.o: $(srcdir)/screenhack.h m6502.o: $(UTILS_SRC)/aligned_malloc.h @@ -2113,6 +2234,7 @@ maze.o: ../config.h maze.o: $(srcdir)/fps.h maze.o: $(srcdir)/images/gen/logo-180_png.h maze.o: $(srcdir)/images/gen/logo-50_png.h +maze.o: $(srcdir)/recanim.h maze.o: $(srcdir)/screenhackI.h maze.o: $(srcdir)/screenhack.h maze.o: $(UTILS_SRC)/colors.h @@ -2127,6 +2249,7 @@ maze.o: $(UTILS_SRC)/yarandom.h maze.o: $(srcdir)/ximage-loader.h memscroller.o: ../config.h memscroller.o: $(srcdir)/fps.h +memscroller.o: $(srcdir)/recanim.h memscroller.o: $(srcdir)/screenhackI.h memscroller.o: $(srcdir)/screenhack.h memscroller.o: $(UTILS_SRC)/colors.h @@ -2140,6 +2263,7 @@ memscroller.o: $(UTILS_SRC)/xshm.h memscroller.o: $(UTILS_SRC)/yarandom.h metaballs.o: ../config.h metaballs.o: $(srcdir)/fps.h +metaballs.o: $(srcdir)/recanim.h metaballs.o: $(srcdir)/screenhackI.h metaballs.o: $(srcdir)/screenhack.h metaballs.o: $(UTILS_SRC)/colors.h @@ -2152,6 +2276,7 @@ metaballs.o: $(UTILS_SRC)/visual.h metaballs.o: $(UTILS_SRC)/yarandom.h moire2.o: ../config.h moire2.o: $(srcdir)/fps.h +moire2.o: $(srcdir)/recanim.h moire2.o: $(srcdir)/screenhackI.h moire2.o: $(srcdir)/screenhack.h moire2.o: $(UTILS_SRC)/colors.h @@ -2165,6 +2290,7 @@ moire2.o: $(UTILS_SRC)/xdbe.h moire2.o: $(UTILS_SRC)/yarandom.h moire.o: ../config.h moire.o: $(srcdir)/fps.h +moire.o: $(srcdir)/recanim.h moire.o: $(srcdir)/screenhackI.h moire.o: $(srcdir)/screenhack.h moire.o: $(UTILS_SRC)/colors.h @@ -2178,6 +2304,7 @@ moire.o: $(UTILS_SRC)/xshm.h moire.o: $(UTILS_SRC)/yarandom.h mountain.o: ../config.h mountain.o: $(srcdir)/fps.h +mountain.o: $(srcdir)/recanim.h mountain.o: $(srcdir)/screenhackI.h mountain.o: $(UTILS_SRC)/colors.h mountain.o: $(UTILS_SRC)/erase.h @@ -2192,6 +2319,7 @@ mountain.o: $(srcdir)/xlockmoreI.h mountain.o: $(srcdir)/xlockmore.h munch.o: ../config.h munch.o: $(srcdir)/fps.h +munch.o: $(srcdir)/recanim.h munch.o: $(srcdir)/screenhackI.h munch.o: $(srcdir)/screenhack.h munch.o: $(UTILS_SRC)/colors.h @@ -2204,6 +2332,7 @@ munch.o: $(UTILS_SRC)/visual.h munch.o: $(UTILS_SRC)/yarandom.h nerverot.o: ../config.h nerverot.o: $(srcdir)/fps.h +nerverot.o: $(srcdir)/recanim.h nerverot.o: $(srcdir)/screenhackI.h nerverot.o: $(srcdir)/screenhack.h nerverot.o: $(UTILS_SRC)/colors.h @@ -2224,6 +2353,7 @@ noseguy.o: $(srcdir)/images/gen/nose-l1_png.h noseguy.o: $(srcdir)/images/gen/nose-l2_png.h noseguy.o: $(srcdir)/images/gen/nose-r1_png.h noseguy.o: $(srcdir)/images/gen/nose-r2_png.h +noseguy.o: $(srcdir)/recanim.h noseguy.o: $(srcdir)/screenhackI.h noseguy.o: $(srcdir)/screenhack.h noseguy.o: $(UTILS_SRC)/colors.h @@ -2242,6 +2372,7 @@ pacman_ai.o: $(srcdir)/fps.h pacman_ai.o: $(srcdir)/pacman_ai.h pacman_ai.o: $(srcdir)/pacman.h pacman_ai.o: $(srcdir)/pacman_level.h +pacman_ai.o: $(srcdir)/recanim.h pacman_ai.o: $(srcdir)/screenhackI.h pacman_ai.o: $(UTILS_SRC)/colors.h pacman_ai.o: $(UTILS_SRC)/erase.h @@ -2258,6 +2389,7 @@ pacman_level.o: ../config.h pacman_level.o: $(srcdir)/fps.h pacman_level.o: $(srcdir)/pacman.h pacman_level.o: $(srcdir)/pacman_level.h +pacman_level.o: $(srcdir)/recanim.h pacman_level.o: $(srcdir)/screenhackI.h pacman_level.o: $(UTILS_SRC)/colors.h pacman_level.o: $(UTILS_SRC)/erase.h @@ -2276,6 +2408,7 @@ pacman.o: $(srcdir)/images/gen/pacman_png.h pacman.o: $(srcdir)/pacman_ai.h pacman.o: $(srcdir)/pacman.h pacman.o: $(srcdir)/pacman_level.h +pacman.o: $(srcdir)/recanim.h pacman.o: $(srcdir)/screenhackI.h pacman.o: $(UTILS_SRC)/colors.h pacman.o: $(UTILS_SRC)/erase.h @@ -2291,6 +2424,7 @@ pacman.o: $(srcdir)/xlockmoreI.h pacman.o: $(srcdir)/xlockmore.h pedal.o: ../config.h pedal.o: $(srcdir)/fps.h +pedal.o: $(srcdir)/recanim.h pedal.o: $(srcdir)/screenhackI.h pedal.o: $(srcdir)/screenhack.h pedal.o: $(UTILS_SRC)/colors.h @@ -2304,6 +2438,7 @@ pedal.o: $(UTILS_SRC)/visual.h pedal.o: $(UTILS_SRC)/yarandom.h penetrate.o: ../config.h penetrate.o: $(srcdir)/fps.h +penetrate.o: $(srcdir)/recanim.h penetrate.o: $(srcdir)/screenhackI.h penetrate.o: $(srcdir)/screenhack.h penetrate.o: $(UTILS_SRC)/colors.h @@ -2316,6 +2451,7 @@ penetrate.o: $(UTILS_SRC)/visual.h penetrate.o: $(UTILS_SRC)/yarandom.h penrose.o: ../config.h penrose.o: $(srcdir)/fps.h +penrose.o: $(srcdir)/recanim.h penrose.o: $(srcdir)/screenhackI.h penrose.o: $(UTILS_SRC)/colors.h penrose.o: $(UTILS_SRC)/erase.h @@ -2330,6 +2466,7 @@ penrose.o: $(srcdir)/xlockmoreI.h penrose.o: $(srcdir)/xlockmore.h petri.o: ../config.h petri.o: $(srcdir)/fps.h +petri.o: $(srcdir)/recanim.h petri.o: $(srcdir)/screenhackI.h petri.o: $(srcdir)/screenhack.h petri.o: $(UTILS_SRC)/colors.h @@ -2344,6 +2481,7 @@ petri.o: $(UTILS_SRC)/yarandom.h phosphor.o: ../config.h phosphor.o: $(srcdir)/fps.h phosphor.o: $(srcdir)/images/gen/6x10font_png.h +phosphor.o: $(srcdir)/recanim.h phosphor.o: $(srcdir)/screenhackI.h phosphor.o: $(srcdir)/screenhack.h phosphor.o: $(UTILS_SRC)/colors.h @@ -2359,6 +2497,7 @@ phosphor.o: $(UTILS_SRC)/yarandom.h phosphor.o: $(srcdir)/ximage-loader.h piecewise.o: ../config.h piecewise.o: $(srcdir)/fps.h +piecewise.o: $(srcdir)/recanim.h piecewise.o: $(srcdir)/screenhackI.h piecewise.o: $(srcdir)/screenhack.h piecewise.o: $(UTILS_SRC)/colors.h @@ -2372,6 +2511,7 @@ piecewise.o: $(UTILS_SRC)/xdbe.h piecewise.o: $(UTILS_SRC)/yarandom.h polyominoes.o: ../config.h polyominoes.o: $(srcdir)/fps.h +polyominoes.o: $(srcdir)/recanim.h polyominoes.o: $(srcdir)/screenhackI.h polyominoes.o: $(UTILS_SRC)/colors.h polyominoes.o: $(UTILS_SRC)/erase.h @@ -2387,6 +2527,7 @@ polyominoes.o: $(srcdir)/xlockmore.h pong.o: $(srcdir)/analogtv.h pong.o: ../config.h pong.o: $(srcdir)/fps.h +pong.o: $(srcdir)/recanim.h pong.o: $(srcdir)/screenhackI.h pong.o: $(srcdir)/screenhack.h pong.o: $(UTILS_SRC)/aligned_malloc.h @@ -2402,6 +2543,7 @@ pong.o: $(UTILS_SRC)/xshm.h pong.o: $(UTILS_SRC)/yarandom.h popsquares.o: ../config.h popsquares.o: $(srcdir)/fps.h +popsquares.o: $(srcdir)/recanim.h popsquares.o: $(srcdir)/screenhackI.h popsquares.o: $(srcdir)/screenhack.h popsquares.o: $(UTILS_SRC)/colors.h @@ -2415,6 +2557,7 @@ popsquares.o: $(UTILS_SRC)/xdbe.h popsquares.o: $(UTILS_SRC)/yarandom.h pyro.o: ../config.h pyro.o: $(srcdir)/fps.h +pyro.o: $(srcdir)/recanim.h pyro.o: $(srcdir)/screenhackI.h pyro.o: $(srcdir)/screenhack.h pyro.o: $(UTILS_SRC)/colors.h @@ -2427,6 +2570,7 @@ pyro.o: $(UTILS_SRC)/visual.h pyro.o: $(UTILS_SRC)/yarandom.h qix.o: ../config.h qix.o: $(srcdir)/fps.h +qix.o: $(srcdir)/recanim.h qix.o: $(srcdir)/screenhackI.h qix.o: $(srcdir)/screenhack.h qix.o: $(UTILS_SRC)/alpha.h @@ -2440,6 +2584,7 @@ qix.o: $(UTILS_SRC)/visual.h qix.o: $(UTILS_SRC)/yarandom.h rd-bomb.o: ../config.h rd-bomb.o: $(srcdir)/fps.h +rd-bomb.o: $(srcdir)/recanim.h rd-bomb.o: $(srcdir)/screenhackI.h rd-bomb.o: $(srcdir)/screenhack.h rd-bomb.o: $(UTILS_SRC)/colors.h @@ -2465,6 +2610,7 @@ recanim.o: $(UTILS_SRC)/visual.h recanim.o: $(UTILS_SRC)/yarandom.h ripples.o: ../config.h ripples.o: $(srcdir)/fps.h +ripples.o: $(srcdir)/recanim.h ripples.o: $(srcdir)/screenhackI.h ripples.o: $(srcdir)/screenhack.h ripples.o: $(UTILS_SRC)/colors.h @@ -2478,6 +2624,7 @@ ripples.o: $(UTILS_SRC)/xshm.h ripples.o: $(UTILS_SRC)/yarandom.h rocks.o: ../config.h rocks.o: $(srcdir)/fps.h +rocks.o: $(srcdir)/recanim.h rocks.o: $(srcdir)/screenhackI.h rocks.o: $(srcdir)/screenhack.h rocks.o: $(UTILS_SRC)/colors.h @@ -2490,6 +2637,7 @@ rocks.o: $(UTILS_SRC)/visual.h rocks.o: $(UTILS_SRC)/yarandom.h rorschach.o: ../config.h rorschach.o: $(srcdir)/fps.h +rorschach.o: $(srcdir)/recanim.h rorschach.o: $(srcdir)/screenhackI.h rorschach.o: $(srcdir)/screenhack.h rorschach.o: $(UTILS_SRC)/colors.h @@ -2503,6 +2651,7 @@ rorschach.o: $(UTILS_SRC)/visual.h rorschach.o: $(UTILS_SRC)/yarandom.h rotor.o: ../config.h rotor.o: $(srcdir)/fps.h +rotor.o: $(srcdir)/recanim.h rotor.o: $(srcdir)/screenhackI.h rotor.o: $(UTILS_SRC)/colors.h rotor.o: $(UTILS_SRC)/erase.h @@ -2517,6 +2666,7 @@ rotor.o: $(srcdir)/xlockmoreI.h rotor.o: $(srcdir)/xlockmore.h rotzoomer.o: ../config.h rotzoomer.o: $(srcdir)/fps.h +rotzoomer.o: $(srcdir)/recanim.h rotzoomer.o: $(srcdir)/screenhackI.h rotzoomer.o: $(srcdir)/screenhack.h rotzoomer.o: $(UTILS_SRC)/colors.h @@ -2545,6 +2695,7 @@ screenhack.o: $(UTILS_SRC)/xmu.h screenhack.o: $(UTILS_SRC)/yarandom.h shadebobs.o: ../config.h shadebobs.o: $(srcdir)/fps.h +shadebobs.o: $(srcdir)/recanim.h shadebobs.o: $(srcdir)/screenhackI.h shadebobs.o: $(srcdir)/screenhack.h shadebobs.o: $(UTILS_SRC)/colors.h @@ -2557,6 +2708,7 @@ shadebobs.o: $(UTILS_SRC)/visual.h shadebobs.o: $(UTILS_SRC)/yarandom.h sierpinski.o: ../config.h sierpinski.o: $(srcdir)/fps.h +sierpinski.o: $(srcdir)/recanim.h sierpinski.o: $(srcdir)/screenhackI.h sierpinski.o: $(UTILS_SRC)/colors.h sierpinski.o: $(UTILS_SRC)/erase.h @@ -2571,6 +2723,7 @@ sierpinski.o: $(srcdir)/xlockmoreI.h sierpinski.o: $(srcdir)/xlockmore.h slidescreen.o: ../config.h slidescreen.o: $(srcdir)/fps.h +slidescreen.o: $(srcdir)/recanim.h slidescreen.o: $(srcdir)/screenhackI.h slidescreen.o: $(srcdir)/screenhack.h slidescreen.o: $(UTILS_SRC)/colors.h @@ -2583,6 +2736,7 @@ slidescreen.o: $(UTILS_SRC)/visual.h slidescreen.o: $(UTILS_SRC)/yarandom.h slip.o: ../config.h slip.o: $(srcdir)/fps.h +slip.o: $(srcdir)/recanim.h slip.o: $(srcdir)/screenhackI.h slip.o: $(UTILS_SRC)/colors.h slip.o: $(UTILS_SRC)/erase.h @@ -2597,6 +2751,7 @@ slip.o: $(srcdir)/xlockmoreI.h slip.o: $(srcdir)/xlockmore.h speedmine.o: ../config.h speedmine.o: $(srcdir)/fps.h +speedmine.o: $(srcdir)/recanim.h speedmine.o: $(srcdir)/screenhackI.h speedmine.o: $(srcdir)/screenhack.h speedmine.o: $(UTILS_SRC)/colors.h @@ -2610,6 +2765,7 @@ speedmine.o: $(UTILS_SRC)/visual.h speedmine.o: $(UTILS_SRC)/yarandom.h sphere.o: ../config.h sphere.o: $(srcdir)/fps.h +sphere.o: $(srcdir)/recanim.h sphere.o: $(srcdir)/screenhackI.h sphere.o: $(UTILS_SRC)/colors.h sphere.o: $(UTILS_SRC)/erase.h @@ -2624,6 +2780,7 @@ sphere.o: $(srcdir)/xlockmoreI.h sphere.o: $(srcdir)/xlockmore.h spiral.o: ../config.h spiral.o: $(srcdir)/fps.h +spiral.o: $(srcdir)/recanim.h spiral.o: $(srcdir)/screenhackI.h spiral.o: $(UTILS_SRC)/colors.h spiral.o: $(UTILS_SRC)/erase.h @@ -2638,6 +2795,7 @@ spiral.o: $(srcdir)/xlockmoreI.h spiral.o: $(srcdir)/xlockmore.h spotlight.o: ../config.h spotlight.o: $(srcdir)/fps.h +spotlight.o: $(srcdir)/recanim.h spotlight.o: $(srcdir)/screenhackI.h spotlight.o: $(srcdir)/screenhack.h spotlight.o: $(UTILS_SRC)/colors.h @@ -2650,6 +2808,7 @@ spotlight.o: $(UTILS_SRC)/visual.h spotlight.o: $(UTILS_SRC)/yarandom.h squiral.o: ../config.h squiral.o: $(srcdir)/fps.h +squiral.o: $(srcdir)/recanim.h squiral.o: $(srcdir)/screenhackI.h squiral.o: $(srcdir)/screenhack.h squiral.o: $(UTILS_SRC)/colors.h @@ -2663,6 +2822,7 @@ squiral.o: $(UTILS_SRC)/visual.h squiral.o: $(UTILS_SRC)/yarandom.h starfish.o: ../config.h starfish.o: $(srcdir)/fps.h +starfish.o: $(srcdir)/recanim.h starfish.o: $(srcdir)/screenhackI.h starfish.o: $(srcdir)/screenhack.h starfish.o: $(UTILS_SRC)/colors.h @@ -2676,6 +2836,7 @@ starfish.o: $(UTILS_SRC)/visual.h starfish.o: $(UTILS_SRC)/yarandom.h strange.o: ../config.h strange.o: $(srcdir)/fps.h +strange.o: $(srcdir)/recanim.h strange.o: $(srcdir)/screenhackI.h strange.o: $(UTILS_SRC)/aligned_malloc.h strange.o: $(UTILS_SRC)/colors.h @@ -2694,6 +2855,7 @@ strange.o: $(srcdir)/xlockmoreI.h strange.o: $(srcdir)/xlockmore.h substrate.o: ../config.h substrate.o: $(srcdir)/fps.h +substrate.o: $(srcdir)/recanim.h substrate.o: $(srcdir)/screenhackI.h substrate.o: $(srcdir)/screenhack.h substrate.o: $(UTILS_SRC)/colors.h @@ -2706,6 +2868,7 @@ substrate.o: $(UTILS_SRC)/visual.h substrate.o: $(UTILS_SRC)/yarandom.h swirl.o: ../config.h swirl.o: $(srcdir)/fps.h +swirl.o: $(srcdir)/recanim.h swirl.o: $(srcdir)/screenhackI.h swirl.o: $(UTILS_SRC)/colors.h swirl.o: $(UTILS_SRC)/erase.h @@ -2721,6 +2884,7 @@ swirl.o: $(srcdir)/xlockmoreI.h swirl.o: $(srcdir)/xlockmore.h t3d.o: ../config.h t3d.o: $(srcdir)/fps.h +t3d.o: $(srcdir)/recanim.h t3d.o: $(srcdir)/screenhackI.h t3d.o: $(srcdir)/screenhack.h t3d.o: $(UTILS_SRC)/colors.h @@ -2734,6 +2898,7 @@ t3d.o: $(UTILS_SRC)/yarandom.h tessellimage.o: ../config.h tessellimage.o: $(srcdir)/delaunay.h tessellimage.o: $(srcdir)/fps.h +tessellimage.o: $(srcdir)/recanim.h tessellimage.o: $(srcdir)/screenhackI.h tessellimage.o: $(srcdir)/screenhack.h tessellimage.o: $(UTILS_SRC)/colors.h @@ -2748,6 +2913,7 @@ testx11.o: ../config.h testx11.o: $(srcdir)/fps.h testx11.o: $(srcdir)/glx/rotator.h testx11.o: $(srcdir)/images/gen/logo-180_png.h +testx11.o: $(srcdir)/recanim.h testx11.o: $(srcdir)/screenhackI.h testx11.o: $(srcdir)/screenhack.h testx11.o: $(UTILS_SRC)/colorbars.h @@ -2763,6 +2929,7 @@ testx11.o: $(UTILS_SRC)/yarandom.h testx11.o: $(srcdir)/ximage-loader.h thornbird.o: ../config.h thornbird.o: $(srcdir)/fps.h +thornbird.o: $(srcdir)/recanim.h thornbird.o: $(srcdir)/screenhackI.h thornbird.o: $(UTILS_SRC)/colors.h thornbird.o: $(UTILS_SRC)/erase.h @@ -2777,6 +2944,7 @@ thornbird.o: $(srcdir)/xlockmoreI.h thornbird.o: $(srcdir)/xlockmore.h triangle.o: ../config.h triangle.o: $(srcdir)/fps.h +triangle.o: $(srcdir)/recanim.h triangle.o: $(srcdir)/screenhackI.h triangle.o: $(UTILS_SRC)/colors.h triangle.o: $(UTILS_SRC)/erase.h @@ -2791,6 +2959,7 @@ triangle.o: $(srcdir)/xlockmoreI.h triangle.o: $(srcdir)/xlockmore.h truchet.o: ../config.h truchet.o: $(srcdir)/fps.h +truchet.o: $(srcdir)/recanim.h truchet.o: $(srcdir)/screenhackI.h truchet.o: $(srcdir)/screenhack.h truchet.o: $(UTILS_SRC)/colors.h @@ -2803,6 +2972,7 @@ truchet.o: $(UTILS_SRC)/visual.h truchet.o: $(UTILS_SRC)/yarandom.h twang.o: ../config.h twang.o: $(srcdir)/fps.h +twang.o: $(srcdir)/recanim.h twang.o: $(srcdir)/screenhackI.h twang.o: $(srcdir)/screenhack.h twang.o: $(UTILS_SRC)/colors.h @@ -2816,6 +2986,7 @@ twang.o: $(UTILS_SRC)/xshm.h twang.o: $(UTILS_SRC)/yarandom.h vermiculate.o: ../config.h vermiculate.o: $(srcdir)/fps.h +vermiculate.o: $(srcdir)/recanim.h vermiculate.o: $(srcdir)/screenhackI.h vermiculate.o: $(srcdir)/screenhack.h vermiculate.o: $(UTILS_SRC)/colors.h @@ -2826,8 +2997,26 @@ vermiculate.o: $(UTILS_SRC)/resources.h vermiculate.o: $(UTILS_SRC)/usleep.h vermiculate.o: $(UTILS_SRC)/visual.h vermiculate.o: $(UTILS_SRC)/yarandom.h +vfeedback.o: $(srcdir)/analogtv.h +vfeedback.o: ../config.h +vfeedback.o: $(srcdir)/fps.h +vfeedback.o: $(srcdir)/recanim.h +vfeedback.o: $(srcdir)/screenhackI.h +vfeedback.o: $(srcdir)/screenhack.h +vfeedback.o: $(UTILS_SRC)/aligned_malloc.h +vfeedback.o: $(UTILS_SRC)/colors.h +vfeedback.o: $(UTILS_SRC)/font-retry.h +vfeedback.o: $(UTILS_SRC)/grabscreen.h +vfeedback.o: $(UTILS_SRC)/hsv.h +vfeedback.o: $(UTILS_SRC)/resources.h +vfeedback.o: $(UTILS_SRC)/thread_util.h +vfeedback.o: $(UTILS_SRC)/usleep.h +vfeedback.o: $(UTILS_SRC)/visual.h +vfeedback.o: $(UTILS_SRC)/xshm.h +vfeedback.o: $(UTILS_SRC)/yarandom.h vines.o: ../config.h vines.o: $(srcdir)/fps.h +vines.o: $(srcdir)/recanim.h vines.o: $(srcdir)/screenhackI.h vines.o: $(UTILS_SRC)/colors.h vines.o: $(UTILS_SRC)/erase.h @@ -2842,6 +3031,7 @@ vines.o: $(srcdir)/xlockmoreI.h vines.o: $(srcdir)/xlockmore.h wander.o: ../config.h wander.o: $(srcdir)/fps.h +wander.o: $(srcdir)/recanim.h wander.o: $(srcdir)/screenhackI.h wander.o: $(srcdir)/screenhack.h wander.o: $(UTILS_SRC)/colors.h @@ -2855,6 +3045,7 @@ wander.o: $(UTILS_SRC)/visual.h wander.o: $(UTILS_SRC)/yarandom.h webcollage-cocoa.o: ../config.h webcollage-cocoa.o: $(srcdir)/fps.h +webcollage-cocoa.o: $(srcdir)/recanim.h webcollage-cocoa.o: $(srcdir)/screenhackI.h webcollage-cocoa.o: $(srcdir)/screenhack.h webcollage-cocoa.o: $(UTILS_SRC)/colors.h @@ -2868,6 +3059,7 @@ webcollage-cocoa.o: $(UTILS_SRC)/yarandom.h webcollage-helper.o: ../config.h whirlwindwarp.o: ../config.h whirlwindwarp.o: $(srcdir)/fps.h +whirlwindwarp.o: $(srcdir)/recanim.h whirlwindwarp.o: $(srcdir)/screenhackI.h whirlwindwarp.o: $(srcdir)/screenhack.h whirlwindwarp.o: $(UTILS_SRC)/colors.h @@ -2881,6 +3073,7 @@ whirlwindwarp.o: $(UTILS_SRC)/visual.h whirlwindwarp.o: $(UTILS_SRC)/yarandom.h whirlygig.o: ../config.h whirlygig.o: $(srcdir)/fps.h +whirlygig.o: $(srcdir)/recanim.h whirlygig.o: $(srcdir)/screenhackI.h whirlygig.o: $(srcdir)/screenhack.h whirlygig.o: $(UTILS_SRC)/colors.h @@ -2894,6 +3087,7 @@ whirlygig.o: $(UTILS_SRC)/xdbe.h whirlygig.o: $(UTILS_SRC)/yarandom.h wormhole.o: ../config.h wormhole.o: $(srcdir)/fps.h +wormhole.o: $(srcdir)/recanim.h wormhole.o: $(srcdir)/screenhackI.h wormhole.o: $(srcdir)/screenhack.h wormhole.o: $(UTILS_SRC)/colors.h @@ -2906,6 +3100,7 @@ wormhole.o: $(UTILS_SRC)/visual.h wormhole.o: $(UTILS_SRC)/yarandom.h worm.o: ../config.h worm.o: $(srcdir)/fps.h +worm.o: $(srcdir)/recanim.h worm.o: $(srcdir)/screenhackI.h worm.o: $(UTILS_SRC)/colors.h worm.o: $(UTILS_SRC)/erase.h @@ -2921,6 +3116,11 @@ worm.o: $(srcdir)/xlockmore.h xanalogtv.o: $(srcdir)/analogtv.h xanalogtv.o: ../config.h xanalogtv.o: $(srcdir)/fps.h +xanalogtv.o: $(srcdir)/images/gen/logo-180_png.h +xanalogtv.o: $(srcdir)/images/gen/testcard_bbcf_png.h +xanalogtv.o: $(srcdir)/images/gen/testcard_pm5544_png.h +xanalogtv.o: $(srcdir)/images/gen/testcard_rca_png.h +xanalogtv.o: $(srcdir)/recanim.h xanalogtv.o: $(srcdir)/screenhackI.h xanalogtv.o: $(srcdir)/screenhack.h xanalogtv.o: $(UTILS_SRC)/aligned_malloc.h @@ -2928,7 +3128,6 @@ xanalogtv.o: $(UTILS_SRC)/colors.h xanalogtv.o: $(UTILS_SRC)/font-retry.h xanalogtv.o: $(UTILS_SRC)/grabscreen.h xanalogtv.o: $(UTILS_SRC)/hsv.h -xanalogtv.o: $(UTILS_SRC)/images/logo-50.xpm xanalogtv.o: $(UTILS_SRC)/resources.h xanalogtv.o: $(UTILS_SRC)/thread_util.h xanalogtv.o: $(UTILS_SRC)/usleep.h @@ -2939,6 +3138,7 @@ xanalogtv.o: $(srcdir)/ximage-loader.h xflame.o: ../config.h xflame.o: $(srcdir)/fps.h xflame.o: $(srcdir)/images/gen/bob_png.h +xflame.o: $(srcdir)/recanim.h xflame.o: $(srcdir)/screenhackI.h xflame.o: $(srcdir)/screenhack.h xflame.o: $(UTILS_SRC)/colors.h @@ -2955,6 +3155,7 @@ ximage-loader.o: ../config.h ximage-loader.o: $(srcdir)/ximage-loader.h xjack.o: ../config.h xjack.o: $(srcdir)/fps.h +xjack.o: $(srcdir)/recanim.h xjack.o: $(srcdir)/screenhackI.h xjack.o: $(srcdir)/screenhack.h xjack.o: $(UTILS_SRC)/colors.h @@ -2967,6 +3168,7 @@ xjack.o: $(UTILS_SRC)/visual.h xjack.o: $(UTILS_SRC)/yarandom.h xlockmore.o: ../config.h xlockmore.o: $(srcdir)/fps.h +xlockmore.o: $(srcdir)/recanim.h xlockmore.o: $(srcdir)/screenhackI.h xlockmore.o: $(srcdir)/screenhack.h xlockmore.o: $(UTILS_SRC)/colors.h @@ -2981,6 +3183,7 @@ xlockmore.o: $(UTILS_SRC)/yarandom.h xlockmore.o: $(srcdir)/xlockmoreI.h xlyap.o: ../config.h xlyap.o: $(srcdir)/fps.h +xlyap.o: $(srcdir)/recanim.h xlyap.o: $(srcdir)/screenhackI.h xlyap.o: $(srcdir)/screenhack.h xlyap.o: $(UTILS_SRC)/colors.h @@ -2997,6 +3200,7 @@ xmatrix.o: $(srcdir)/images/gen/matrix1b_png.h xmatrix.o: $(srcdir)/images/gen/matrix1_png.h xmatrix.o: $(srcdir)/images/gen/matrix2b_png.h xmatrix.o: $(srcdir)/images/gen/matrix2_png.h +xmatrix.o: $(srcdir)/recanim.h xmatrix.o: $(srcdir)/screenhackI.h xmatrix.o: $(srcdir)/screenhack.h xmatrix.o: $(UTILS_SRC)/colors.h @@ -3011,6 +3215,7 @@ xmatrix.o: $(UTILS_SRC)/yarandom.h xmatrix.o: $(srcdir)/ximage-loader.h xrayswarm.o: ../config.h xrayswarm.o: $(srcdir)/fps.h +xrayswarm.o: $(srcdir)/recanim.h xrayswarm.o: $(srcdir)/screenhackI.h xrayswarm.o: $(srcdir)/screenhack.h xrayswarm.o: $(UTILS_SRC)/colors.h @@ -3024,6 +3229,7 @@ xrayswarm.o: $(UTILS_SRC)/yarandom.h xscreensaver-sgigl.o: $(UTILS_SRC)/vroot.h xspirograph.o: ../config.h xspirograph.o: $(srcdir)/fps.h +xspirograph.o: $(srcdir)/recanim.h xspirograph.o: $(srcdir)/screenhackI.h xspirograph.o: $(srcdir)/screenhack.h xspirograph.o: $(UTILS_SRC)/colors.h @@ -3043,6 +3249,7 @@ xsublim.o: $(UTILS_SRC)/vroot.h xsublim.o: $(UTILS_SRC)/yarandom.h zoom.o: ../config.h zoom.o: $(srcdir)/fps.h +zoom.o: $(srcdir)/recanim.h zoom.o: $(srcdir)/screenhackI.h zoom.o: $(srcdir)/screenhack.h zoom.o: $(UTILS_SRC)/colors.h diff --git a/hacks/analogtv.c b/hacks/analogtv.c index e3af6f2b..fd7f504c 100644 --- a/hacks/analogtv.c +++ b/hacks/analogtv.c @@ -568,6 +568,9 @@ analogtv_allocate(Display *dpy, Window window) "background", "Background"); it->gc = XCreateGC(it->dpy, it->window, GCBackground, &gcv); +# ifdef HAVE_JWXYZ + jwxyz_XSetAntiAliasing (it->dpy, it->gc, False); +# endif XSetWindowBackground(it->dpy, it->window, gcv.background); XClearWindow(dpy,window); @@ -1983,10 +1986,16 @@ analogtv_input_allocate() This takes a screen image and encodes it as a video camera would, including all the bandlimiting and YIQ modulation. This isn't especially tuned for speed. + + xoff, yoff: top left corner of rendered image, in window pixels. + w, h: scaled size of rendered image, in window pixels. + mask: BlackPixel means don't render (it's not full alpha) */ int -analogtv_load_ximage(analogtv *it, analogtv_input *input, XImage *pic_im) +analogtv_load_ximage(analogtv *it, analogtv_input *input, + XImage *pic_im, XImage *mask_im, + int xoff, int yoff, int target_w, int target_h) { int i,x,y; int img_w,img_h; @@ -1995,14 +2004,24 @@ analogtv_load_ximage(analogtv *it, analogtv_input *input, XImage *pic_im) int fqx[4],fqy[4]; XColor col1[ANALOGTV_PIC_LEN]; XColor col2[ANALOGTV_PIC_LEN]; + char mask[ANALOGTV_PIC_LEN]; int multiq[ANALOGTV_PIC_LEN+4]; + unsigned long black = 0; /* not BlackPixelOfScreen (it->xgwa.screen); */ + + int x_length=ANALOGTV_PIC_LEN; int y_overscan=5; /* overscan this much top and bottom */ int y_scanlength=ANALOGTV_VISLINES+2*y_overscan; - img_w=pic_im->width; - img_h=pic_im->height; + if (target_w > 0) x_length = x_length * target_w / it->xgwa.width; + if (target_h > 0) y_scanlength = y_scanlength * target_h / it->xgwa.height; + + img_w = pic_im->width; + img_h = pic_im->height; - for (i=0; ixgwa.width; + yoff = ANALOGTV_VISLINES * yoff / it->xgwa.height; + + for (i=0; idpy, it->colormap, col1, ANALOGTV_PIC_LEN); - XQueryColors(it->dpy, it->colormap, col2, ANALOGTV_PIC_LEN); - + XQueryColors(it->dpy, it->colormap, col1, x_length); + XQueryColors(it->dpy, it->colormap, col2, x_length); for (i=0; i<7; i++) fyx[i]=fyy[i]=0; for (i=0; i<4; i++) fix[i]=fiy[i]=fqx[i]=fqy[i]=0.0; - for (x=0; x>14) + ANALOGTV_BLACK_LEVEL; if (composite>125) composite=125; if (composite<0) composite=0; - input->signal[y-y_overscan+ANALOGTV_TOP][x+ANALOGTV_PIC_START] = composite; + + input->signal[y-y_overscan+ANALOGTV_TOP+yoff][x+ANALOGTV_PIC_START+xoff] = composite; } } @@ -2243,6 +2269,9 @@ analogtv_make_font(Display *dpy, Window window, analogtv_font *f, gcv.background=0; gcv.font=font->fid; gc=XCreateGC(dpy, text_pm, GCFont|GCBackground|GCForeground, &gcv); +# ifdef HAVE_JWXYZ + jwxyz_XSetAntiAliasing (dpy, gc, False); +# endif XSetForeground(dpy, gc, 0); XFillRectangle(dpy, text_pm, gc, 0, 0, 256*f->char_w, f->char_h); @@ -2400,115 +2429,3 @@ analogtv_draw_string_centered(analogtv_input *input, analogtv_font *f, analogtv_draw_string(input, f, s, x, y, ntsc); } - - -static const char hextonib[128] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, - 0, 10,11,12,13,14,15,0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 10,11,12,13,14,15,0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - -/* - Much of this function was adapted from logo.c - */ -void -analogtv_draw_xpm(analogtv *tv, analogtv_input *input, - const char * const *xpm, int left, int top) -{ - int xpmw,xpmh; - int x,y,tvx,tvy,i; - int rawy,rawi,rawq; - int ncolors, nbytes; - char dummyc; - struct { - int r; int g; int b; - } cmap[256]; - - - if (4 != sscanf ((const char *) *xpm, - "%d %d %d %d %c", - &xpmw, &xpmh, &ncolors, &nbytes, &dummyc)) - abort(); - if (ncolors < 1 || ncolors > 255) - abort(); - if (nbytes != 1) /* a serious limitation */ - abort(); - xpm++; - - for (i = 0; i < ncolors; i++) { - const char *line = *xpm; - int colori = ((unsigned char)*line++)&0xff; - while (*line) - { - int r, g, b; - char which; - while (*line == ' ' || *line == '\t') - line++; - which = *line++; - if (which != 'c' && which != 'm') - abort(); - while (*line == ' ' || *line == '\t') - line++; - if (!strncasecmp(line, "None", 4)) - { - r = g = b = -1; - line += 4; - } - else - { - if (*line == '#') - line++; - r = (hextonib[(int) line[0]] << 4) | hextonib[(int) line[1]]; - line += 2; - g = (hextonib[(int) line[0]] << 4) | hextonib[(int) line[1]]; - line += 2; - b = (hextonib[(int) line[0]] << 4) | hextonib[(int) line[1]]; - line += 2; - } - - if (which == 'c') - { - cmap[colori].r = r; - cmap[colori].g = g; - cmap[colori].b = b; - } - } - - xpm++; - } - - for (y=0; y=ANALOGTV_BOT) continue; - - for (x=0; xANALOGTV_PIC_END) continue; - - rawy=( 5*cmap[cbyte].r + 11*cmap[cbyte].g + 2*cmap[cbyte].b) / 64; - rawi=(10*cmap[cbyte].r - 4*cmap[cbyte].g - 5*cmap[cbyte].b) / 64; - rawq=( 3*cmap[cbyte].r - 8*cmap[cbyte].g + 5*cmap[cbyte].b) / 64; - - ntsc[0]=rawy+rawq; - ntsc[1]=rawy-rawi; - ntsc[2]=rawy-rawq; - ntsc[3]=rawy+rawi; - - for (i=0; i<4; i++) { - if (ntsc[i]>ANALOGTV_WHITE_LEVEL) ntsc[i]=ANALOGTV_WHITE_LEVEL; - if (ntsc[i]signal[tvy][tvx+0]= ntsc[(tvx+0)&3]; - input->signal[tvy][tvx+1]= ntsc[(tvx+1)&3]; - input->signal[tvy][tvx+2]= ntsc[(tvx+2)&3]; - input->signal[tvy][tvx+3]= ntsc[(tvx+3)&3]; - } - } -} diff --git a/hacks/analogtv.h b/hacks/analogtv.h index ed3ce340..e3170f1d 100644 --- a/hacks/analogtv.h +++ b/hacks/analogtv.h @@ -1,4 +1,4 @@ -/* analogtv, Copyright (c) 2003-2016 Trevor Blackwell +/* analogtv, Copyright (c) 2003-2018 Trevor Blackwell * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -252,7 +252,9 @@ void analogtv_setup_sync(analogtv_input *input, int do_cb, int do_ssavi); void analogtv_draw(analogtv *it, double noiselevel, const analogtv_reception *const *recs, unsigned rec_count); -int analogtv_load_ximage(analogtv *it, analogtv_input *input, XImage *pic_im); +int analogtv_load_ximage(analogtv *it, analogtv_input *input, + XImage *pic_im, XImage *mask_im, + int xoff, int yoff, int width, int height); void analogtv_reception_update(analogtv_reception *inp); @@ -285,8 +287,6 @@ void analogtv_draw_string(analogtv_input *input, analogtv_font *f, char *s, int x, int y, int ntsc[4]); void analogtv_draw_string_centered(analogtv_input *input, analogtv_font *f, char *s, int x, int y, int ntsc[4]); -void analogtv_draw_xpm(analogtv *tv, analogtv_input *input, - const char * const *xpm, int left, int top); int analogtv_handle_events (analogtv *it); @@ -305,6 +305,15 @@ int analogtv_handle_events (analogtv *it); # define ANALOGTV_DEF_CONTRAST "400" #endif +/* Brightness: useful range is around -75 to 100. + Contrast: useful range is around 0 - 500. + Color: useful range is around +/- 500. + Tint: range is mod 360. + + The values in the 'analogtv' struct are the resource divided by 100.0, + except for tint, which is exact. + */ + #define ANALOGTV_DEFAULTS \ "*TVColor: 70", \ "*TVTint: 5", \ @@ -314,6 +323,7 @@ int analogtv_handle_events (analogtv *it); "*use_cmap: 0", \ "*geometry: 800x600", \ "*fpsSolid: True", \ + "*lowrez: True", \ THREAD_DEFAULTS \ ANALOGTV_DEFAULTS_SHM diff --git a/hacks/bsod.c b/hacks/bsod.c index 46225e5d..ff6c359f 100644 --- a/hacks/bsod.c +++ b/hacks/bsod.c @@ -1533,6 +1533,7 @@ windows_ransomware (Display *dpy, Window window) "Dunning-Krugerrands", "Dunning-Krugerrands", "gift certificates", + "Creepto-Currency", "secret sauce", "Tribbles", }; diff --git a/hacks/compile_axp.com b/hacks/compile_axp.com index c07a51a1..c50e0f96 100644 --- a/hacks/compile_axp.com +++ b/hacks/compile_axp.com @@ -41,6 +41,7 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) EULER2D.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FADEPLOT.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FIBERLAMP.C +$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FILMLEADER.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FIREWORKX.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FLAG.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FLAME.C @@ -51,6 +52,7 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FPS.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FUZZYFLAKES.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GALAXY.C +$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GLITCHPEG.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GOOP.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GRAV.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GREYNETIC.C @@ -130,6 +132,7 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) TRUCHET.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) TWANG.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) VERMICULATE.C +$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) VFEEDBACK.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) VINES.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WANDER.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WEBCOLLAGE-COCOA.M diff --git a/hacks/compile_decc.com b/hacks/compile_decc.com index c07a51a1..c50e0f96 100644 --- a/hacks/compile_decc.com +++ b/hacks/compile_decc.com @@ -41,6 +41,7 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) EULER2D.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FADEPLOT.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FIBERLAMP.C +$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FILMLEADER.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FIREWORKX.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FLAG.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FLAME.C @@ -51,6 +52,7 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FPS.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FUZZYFLAKES.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GALAXY.C +$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GLITCHPEG.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GOOP.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GRAV.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GREYNETIC.C @@ -130,6 +132,7 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) TRUCHET.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) TWANG.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) VERMICULATE.C +$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) VFEEDBACK.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) VINES.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WANDER.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WEBCOLLAGE-COCOA.M diff --git a/hacks/config/README b/hacks/config/README index 82656aee..9771a89c 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 5.39 - 12-Apr-2018 + version 5.40 + 12-Aug-2018 https://www.jwz.org/xscreensaver/ diff --git a/hacks/config/apple2.xml b/hacks/config/apple2.xml index e48fc2ce..4084bc96 100644 --- a/hacks/config/apple2.xml +++ b/hacks/config/apple2.xml @@ -30,16 +30,16 @@ + low="0" high="400" default="70"/> + low="0" high="360" default="5"/> + low="-75.0" high="100.0" default="3.0"/> + low="0" high="500" default="150"/> diff --git a/hacks/config/bsod.xml b/hacks/config/bsod.xml index ea3d07cb..ef18e212 100644 --- a/hacks/config/bsod.xml +++ b/hacks/config/bsod.xml @@ -73,18 +73,18 @@ + low="0" high="400" default="70"/> + low="0" high="360" default="5"/> + low="-75.0" high="100.0" default="3.0"/> + low="0" high="500" default="150"/> --> diff --git a/hacks/config/cubestorm.xml b/hacks/config/cubestorm.xml index daad604b..533d710a 100644 --- a/hacks/config/cubestorm.xml +++ b/hacks/config/cubestorm.xml @@ -6,27 +6,39 @@