From: Zygo Blaxell Date: Fri, 22 Dec 2017 02:17:43 +0000 (-0500) Subject: From http://www.jwz.org/xscreensaver/xscreensaver-5.38.tar.gz X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=commitdiff_plain;h=39809ded547bdbb08207d3e514950425215b4410 From jwz.org/xscreensaver/xscreensaver-5.38.tar.gz -rw-rw-r-- 1 zblaxell zblaxell 10712548 Dec 20 15:14 xscreensaver-5.38.tar.gz b4e6b6799e8e244c894db277d6ff2bf5ee48290c xscreensaver-5.38.tar.gz --- diff --git a/Makefile.in b/Makefile.in index cf80264b..17c698d5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -230,55 +230,6 @@ rpm:: echo '' ; \ ls -lFG xscreensaver*-$$VERS-*.rpm -test-tar:: - @ \ - VERS=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' utils/version.h` ; \ - D=xscreensaver-$$VERS ; \ - ADIR=archive/ ; \ - NAME="$${ADIR}$$D.tar.gz" ; \ - if [ ! -f $$NAME ]; then \ - echo "$$NAME does not exist! Did you forget to \`make tar'?" ; \ - exit 1 ; \ - fi ; \ - \ - set -e ; \ - set -x ; \ - \ - if [ -d $$D ]; then \ - chmod -R u+w $$D ; \ - fi ; \ - rm -rf $$D ; \ - zcat $${ADIR}$$D.tar.gz | tar -xf - ; \ - cd $$D ; \ - chmod -R a-w . ; \ - chmod u+w . ; \ - mkdir BIN ; \ - mkdir BIN/motif ; \ - mkdir BIN/lesstif ; \ - chmod a-w . ; \ - \ - ( cd BIN/motif ; \ - CC=cc ; \ - export CC ; \ - ../../configure --without-xpm --without-xdbe --without-xshm \ - --with-motif=/usr/local/motif ; \ - echo --------------------------------------------------------------- ; \ - gmake all ; \ - ( cd driver; gmake tests ) ; \ - echo --------------------------------------------------------------- ); \ - \ - ( cd BIN/lesstif ; \ - CC=cc ; \ - export CC ; \ - ../../configure --with-motif=/usr/local/lesstif --without-gnome ; \ - echo --------------------------------------------------------------- ; \ - ( cd utils; gmake all ) ; \ - ( cd jwxyz; gmake all ) ; \ - ( cd driver; gmake all ) ; \ - echo --------------------------------------------------------------- ); \ - \ - chmod -R u+w . - dmg:: $(MAKE) -C OSX release dmg apk:: @@ -363,6 +314,7 @@ www:: for EXT in tar.gz dmg ; do \ OLDEST=`ls xscreensaver*.$$EXT | \ fgrep -v 5.14 | \ + fgrep -v 5.34 | \ head -n 1` ; \ /bin/echo -n "Delete $$DEST/$$OLDEST? "; \ read line; \ diff --git a/OSX/Media-iOS.xcassets/AppIcon.appiconset/Contents.json b/OSX/Media-iOS.xcassets/AppIcon.appiconset/Contents.json index 89e33aff..f7aa929a 100644 --- a/OSX/Media-iOS.xcassets/AppIcon.appiconset/Contents.json +++ b/OSX/Media-iOS.xcassets/AppIcon.appiconset/Contents.json @@ -1,5 +1,15 @@ { "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, { "size" : "29x29", "idiom" : "iphone", @@ -54,6 +64,16 @@ "filename" : "iSaverRunner180.png", "scale" : "3x" }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, { "size" : "29x29", "idiom" : "ipad", @@ -119,6 +139,12 @@ "idiom" : "ipad", "filename" : "iSaverRunner167.png", "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "iSaverRunner1024.png", + "scale" : "1x" } ], "info" : { diff --git a/OSX/Media-iOS.xcassets/AppIcon.appiconset/iSaverRunner1024.png b/OSX/Media-iOS.xcassets/AppIcon.appiconset/iSaverRunner1024.png new file mode 100644 index 00000000..a548d1c6 Binary files /dev/null and b/OSX/Media-iOS.xcassets/AppIcon.appiconset/iSaverRunner1024.png differ diff --git a/OSX/SaverRunner.m b/OSX/SaverRunner.m index 5d0259b8..f358fb75 100644 --- a/OSX/SaverRunner.m +++ b/OSX/SaverRunner.m @@ -1416,7 +1416,7 @@ FAIL: backing:NSBackingStoreBuffered defer:YES screen:screen]; - [win setMinSize:[win frameRectForContentRect:rect].size]; +// [win setMinSize:[win frameRectForContentRect:rect].size]; [[win contentView] addSubview: (pbox ? (NSView *) pbox : (NSView *) sv)]; [pbox release]; diff --git a/OSX/SaverRunner.plist b/OSX/SaverRunner.plist index 457c5f45..692e5764 100644 --- a/OSX/SaverRunner.plist +++ b/OSX/SaverRunner.plist @@ -7,7 +7,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleGetInfoString - 5.37 + 5.38 CFBundleIconFile SaverRunner CFBundleIdentifier @@ -15,21 +15,21 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleLongVersionString - 5.37 + 5.38 CFBundleName ${PRODUCT_NAME} CFBundlePackageType APPL CFBundleShortVersionString - 5.37 + 5.38 CFBundleSignature ???? CFBundleVersion - 5.37 + 5.38 LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} NSHumanReadableCopyright - 5.37 + 5.38 NSMainNibFile SaverRunner NSPrincipalClass diff --git a/OSX/Updater.plist b/OSX/Updater.plist index 515452ad..e25e0348 100644 --- a/OSX/Updater.plist +++ b/OSX/Updater.plist @@ -9,7 +9,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleGetInfoString - 5.37 + 5.38 CFBundleIconFile SaverRunner CFBundleIdentifier @@ -17,23 +17,23 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleLongVersionString - 5.37 + 5.38 CFBundleName ${PRODUCT_NAME} CFBundlePackageType APPL CFBundleShortVersionString - 5.37 + 5.38 CFBundleSignature ???? CFBundleVersion - 5.37 + 5.38 LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} LSUIElement NSHumanReadableCopyright - 5.37 + 5.38 NSMainNibFile Updater NSPrincipalClass diff --git a/OSX/XScreenSaver.plist b/OSX/XScreenSaver.plist index 04a25c58..480276ea 100644 --- a/OSX/XScreenSaver.plist +++ b/OSX/XScreenSaver.plist @@ -15,11 +15,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 5.37 + 5.38 CFBundleSignature ???? CFBundleVersion - 5.37 + 5.38 LSMinimumSystemVersion 10.8 NSMainNibFile diff --git a/OSX/XScreenSaverGLView.m b/OSX/XScreenSaverGLView.m index d61964f8..57b0c7c7 100644 --- a/OSX/XScreenSaverGLView.m +++ b/OSX/XScreenSaverGLView.m @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2006-2016 Jamie Zawinski +/* xscreensaver, Copyright (c) 2006-2017 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 @@ -41,14 +41,19 @@ extern void check_gl_error (const char *type); @implementation XScreenSaverGLView -#ifdef USE_IPHONE /* With GL programs, drawing at full resolution isn't a problem. */ - (CGFloat) hackedContentScaleFactor { +# ifdef USE_IPHONE return [self contentScaleFactor]; +# else + return self.window.backingScaleFactor; +# endif } +# ifdef USE_IPHONE + - (BOOL)ignoreRotation { return FALSE; // Allow xwindow and the glViewport to change shape diff --git a/OSX/XScreenSaverView.h b/OSX/XScreenSaverView.h index dffa58e9..8283d35e 100644 --- a/OSX/XScreenSaverView.h +++ b/OSX/XScreenSaverView.h @@ -29,6 +29,7 @@ #else # import # import +//# define USE_TOUCHBAR #endif @@ -85,6 +86,8 @@ fps_state *fpst; void (*fps_cb) (Display *, Window, fps_state *, void *); + BOOL _lowrez_p; // Whether the saver prefers 1990s pixels. + # ifdef USE_IPHONE BOOL screenLocked; BOOL _ignoreRotation; // whether hack requested "always portrait". @@ -106,6 +109,11 @@ # endif // !USE_IPHONE +# ifdef USE_TOUCHBAR + NSWindow *touchbar_window; + XScreenSaverView *touchbar_view; +# endif + NSOpenGLContext *ogl_ctx; // OpenGL rendering context # ifdef JWXYZ_QUARTZ @@ -144,8 +152,9 @@ - (NSUserDefaultsController *) userDefaultsController; + (NSString *) decompressXML:(NSData *)xml; -#ifdef USE_IPHONE - (CGFloat) hackedContentScaleFactor; + +#ifdef USE_IPHONE - (void)setScreenLocked:(BOOL)locked; - (NSDictionary *)getGLProperties; - (void)addExtraRenderbuffers:(CGSize)size; diff --git a/OSX/XScreenSaverView.m b/OSX/XScreenSaverView.m index 947525dd..1ec05a7d 100644 --- a/OSX/XScreenSaverView.m +++ b/OSX/XScreenSaverView.m @@ -22,7 +22,6 @@ #import "XScreenSaverConfigSheet.h" #import "Updater.h" #import "screenhackI.h" -#import "xlockmoreI.h" #import "pow2.h" #import "jwxyzI.h" #import "jwxyz-cocoa.h" @@ -645,6 +644,9 @@ add_default_options (const XrmOptionDescRec *opts, // from initWithFrame. [ogl_ctx setView:self]; + // Get device pixels instead of points. + self.wantsBestResolutionOpenGLSurface = YES; + // This may not be necessary if there's FBO support. # ifdef JWXYZ_GL xwindow->window.pixfmt = pixfmt; @@ -676,6 +678,11 @@ add_default_options (const XrmOptionDescRec *opts, new_backbuffer_size = NSSizeToCGSize ([self bounds].size); + // Scale factor for desktop retina displays + double s = [self hackedContentScaleFactor]; + new_backbuffer_size.width *= s; + new_backbuffer_size.height *= s; + # else // USE_IPHONE if (!ogl_ctx) { CAEAGLLayer *eagl_layer = (CAEAGLLayer *) self.layer; @@ -728,6 +735,50 @@ add_default_options (const XrmOptionDescRec *opts, [self setViewport]; [self createBackbuffer:new_backbuffer_size]; + +# ifdef USE_TOUCHBAR + static BOOL created_touchbar = NO; + + if (!touchbar_view && + //#### !self.isPreview && + self.window.screen == [[NSScreen screens] objectAtIndex: 0] && + !created_touchbar) { + + // Figure out which NSScreen has the touchbar on it; + // find its bounds; create a saver there. + + created_touchbar = YES; + NSScreen *tbs = [[NSScreen screens] lastObject]; // #### write me + NSRect rect = [tbs visibleFrame]; + + // #### debugging + rect.origin.x += 40; + rect.origin.x += 40; + rect.size.width /= 4; + rect.size.height /= 4; + NSLog(@"## TB %.0f, %.0f %.0f x %.0f", + rect.origin.x, rect.origin.y, rect.size.width, rect.size.height); + + touchbar_view = [[[self class] alloc] + initWithFrame:rect + saverName:[NSString stringWithCString:xsft->progclass + encoding:NSISOLatin1StringEncoding] + isPreview:self.isPreview]; + [touchbar_view setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable]; + + touchbar_window = [[NSWindow alloc] + initWithContentRect:rect + styleMask: (NSTitledWindowMask|NSResizableWindowMask) + backing:NSBackingStoreBuffered + defer:YES + screen:tbs]; + [touchbar_window setTitle: @"XScreenSaver Touchbar"]; + [[touchbar_window contentView] addSubview: touchbar_view]; + [touchbar_window makeKeyAndOrderFront:touchbar_window]; + } + + if (touchbar_view) [touchbar_view startAnimation]; +# endif // USE_TOUCHBAR } - (void)stopAnimation @@ -749,7 +800,7 @@ add_default_options (const XrmOptionDescRec *opts, xsft->free_cb (xdpy, xwindow, xdata); [self unlockFocus]; - jwxyz_free_display (xdpy); + jwxyz_quartz_free_display (xdpy); xdpy = NULL; # if defined JWXYZ_GL && !defined USE_IPHONE CFRelease (xwindow->ogl_ctx); @@ -800,6 +851,19 @@ add_default_options (const XrmOptionDescRec *opts, backbuffer_data = NULL; backbuffer_len = 0; # endif + +# ifdef USE_TOUCHBAR + if (touchbar_view) { + [touchbar_view stopAnimation]; + [touchbar_window close]; + + [touchbar_view release]; + [touchbar_window release]; + + touchbar_view = nil; + touchbar_window = nil; + } +# endif } @@ -835,18 +899,12 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure) } -#ifdef USE_IPHONE +/* Some of the older X11 savers look bad if a "pixel" is not a thing you can + see. They expect big, chunky, luxurious 1990s pixels, and if they use + "device" pixels on a Retina screen, everything just disappears. -/* On iPhones with Retina displays, we can draw the savers in "real" - pixels, and that works great. The 320x480 "point" screen is really - a 640x960 *pixel* screen. However, Retina iPads have 768x1024 - point screens which are 1536x2048 pixels, and apparently that's - enough pixels that copying those bits to the screen is slow. Like, - drops us from 15fps to 7fps. So, on Retina iPads, we don't draw in - real pixels. This will probably make the savers look better - anyway, since that's a higher resolution than most desktop monitors - have even today. (This is only true for X11 programs, not GL - programs. Those are fine at full rez.) + Retina iPads have 768x1024 point screens which are 1536x2048 pixels, + 2017 iMac screens are 5120x2880 in device pixels. This method is overridden in XScreenSaverGLView, since this kludge isn't necessary for GL programs, being resolution independent by @@ -854,32 +912,27 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure) */ - (CGFloat) hackedContentScaleFactor { - NSSize bsize = [self bounds].size; - - CGFloat - max_bsize = bsize.width > bsize.height ? bsize.width : bsize.height; - - // Ratio of screen size in pixels to view size in points. +# ifdef USE_IPHONE CGFloat s = self.contentScaleFactor; +# else + CGFloat s = self.window.backingScaleFactor; +# endif - // Two constraints: - - // 1. Don't exceed -- let's say 1280 pixels in either direction. - // (Otherwise the frame rate gets bad.) - // Actually let's make that 1440 since iPhone 6 is natively 1334. - CGFloat mag0 = ceil(max_bsize * s / 1440); - - // 2. Don't let the pixel size get too small. - // (Otherwise pixels in IFS and similar are too fine.) - // So don't let the result be > 2 pixels per point. - CGFloat mag1 = ceil(s / 2); + if (_lowrez_p) { + NSSize b = [self bounds].size; + CGFloat wh = b.width > b.height ? b.width : b.height; + const int max = 800; // maybe 1024? + wh *= s; + if (wh > max) + s *= max / wh; + } - // As of iPhone 6, mag0 is always >= mag1. This may not be true in the future. - // (desired scale factor) = s / (desired magnification factor) - return s / (mag0 > mag1 ? mag0 : mag1); + return s; } +#ifdef USE_IPHONE + double current_device_rotation (void) { @@ -1095,11 +1148,10 @@ gl_check_ver (const struct gl_version *caps, # ifdef USE_IPHONE GLfloat s = self.contentScaleFactor; - GLfloat hs = self.hackedContentScaleFactor; # else // !USE_IPHONE - const GLfloat s = 1; - const GLfloat hs = s; + const GLfloat s = self.window.backingScaleFactor; # endif + GLfloat hs = self.hackedContentScaleFactor; // On OS X this almost isn't necessary, except for the ugly aliasing // artifacts. @@ -1455,11 +1507,11 @@ gl_check_ver (const struct gl_version *caps, new_size.width = new_size.height; new_size.height = swap; } +# endif // USE_IPHONE double s = self.hackedContentScaleFactor; new_size.width *= s; new_size.height *= s; -# endif // USE_IPHONE [self prepareContext]; [self setViewport]; @@ -1541,11 +1593,13 @@ gl_check_ver (const struct gl_version *caps, if (!initted_p) { + resized_p = NO; + if (! xdpy) { # ifdef JWXYZ_QUARTZ xwindow->cgc = backbuffer; # endif // JWXYZ_QUARTZ - xdpy = jwxyz_make_display (xwindow); + xdpy = jwxyz_quartz_make_display (xwindow); # if defined USE_IPHONE /* Some X11 hacks (fluidballs) want to ignore all rotation events. */ @@ -1557,6 +1611,24 @@ gl_check_ver (const struct gl_version *caps, # endif // !JWXYZ_GL # endif // USE_IPHONE + _lowrez_p = get_boolean_resource (xdpy, "lowrez", "Lowrez"); + if (_lowrez_p) { + resized_p = YES; + +# if !defined __OPTIMIZE__ || TARGET_IPHONE_SIMULATOR + NSSize b = [self bounds].size; + CGFloat s = self.hackedContentScaleFactor; +# ifdef USE_IPHONE + CGFloat o = self.contentScaleFactor; +# else + CGFloat o = self.window.backingScaleFactor; +# endif + NSLog(@"lowrez: scaling %.0fx%.0f -> %.0fx%.0f (%.02f)", + b.width * o, b.height * o, + b.width * s, b.height * s, s); +# endif + } + [self resize_x11]; } @@ -1566,7 +1638,6 @@ gl_check_ver (const struct gl_version *caps, xsft->setup_cb (xsft, xsft->setup_arg); } initted_p = YES; - resized_p = NO; NSAssert(!xdata, @"xdata already initialized"); @@ -1785,6 +1856,10 @@ gl_check_ver (const struct gl_version *caps, # if defined USE_IPHONE && defined JWXYZ_QUARTZ UIGraphicsPopContext(); # endif + +# ifdef USE_TOUCHBAR + if (touchbar_view) [touchbar_view animateOneFrame]; +# endif } @@ -1983,11 +2058,7 @@ gl_check_ver (const struct gl_version *caps, NSPoint p = [[[e window] contentView] convertPoint:[e locationInWindow] toView:self]; -# ifdef USE_IPHONE double s = [self hackedContentScaleFactor]; -# else - int s = 1; -# endif int x = s * p.x; int y = s * ([self bounds].size.height - p.y); @@ -2742,6 +2813,18 @@ gl_check_ver (const struct gl_version *caps, [self addSubview:closeBox]; } + // Don't hide the buttons under the iPhone X bezel. + UIEdgeInsets is = { 0, }; + if ([self respondsToSelector:@selector(safeAreaInsets)]) { +# pragma clang diagnostic push // "only available on iOS 11.0 or newer" +# pragma clang diagnostic ignored "-Wunguarded-availability-new" + is = [self safeAreaInsets]; +# pragma clang diagnostic pop + [closeBox setFrame:CGRectMake(is.left, is.top, + self.bounds.size.width - is.right - is.left, + ih + off)]; + } + if (closeBox.layer.opacity <= 0) { // Fade in CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"opacity"]; diff --git a/OSX/bindist.rtf b/OSX/bindist.rtf index 74e15780..9f112e7d 100644 --- a/OSX/bindist.rtf +++ b/OSX/bindist.rtf @@ -16,8 +16,8 @@ \b0 by Jamie Zawinski\ and many others\ \ -version 5.37\ -05-Jul-2017\ +version 5.38\ +20-Dec-2017\ \ {\field{\*\fldinst{HYPERLINK "https://www.jwz.org/xscreensaver/"}}{\fldrslt \cf2 \ul \ulc2 https://www.jwz.org/xscreensaver/}}\ \pard\pardeftab720 diff --git a/OSX/iSaverRunner.plist b/OSX/iSaverRunner.plist index fef1480d..e2923073 100644 --- a/OSX/iSaverRunner.plist +++ b/OSX/iSaverRunner.plist @@ -9,7 +9,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleGetInfoString - 5.37 + 5.38 CFBundleIcons CFBundleIcons~ipad @@ -19,21 +19,21 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleLongVersionString - 5.37 + 5.38 CFBundleName ${PRODUCT_NAME} CFBundlePackageType APPL CFBundleShortVersionString - 5.37 + 5.38 CFBundleSignature ???? CFBundleVersion - 5.37 + 5.38 LSRequiresIPhoneOS NSHumanReadableCopyright - 5.37 + 5.38 NSMainNibFile iSaverRunner UIAppFonts diff --git a/OSX/ios-function-table.m b/OSX/ios-function-table.m index e1a05a43..4940fd05 100644 --- a/OSX/ios-function-table.m +++ b/OSX/ios-function-table.m @@ -1,5 +1,5 @@ /* Generated file, do not edit. - Created: Thu Jun 1 17:53:59 2017 by build-fntable.pl 1.5. + Created: Fri Dec 1 17:57:48 2017 by build-fntable.pl 1.5. */ #import @@ -70,6 +70,7 @@ extern struct xscreensaver_function_table engine_xscreensaver_function_table, epicycle_xscreensaver_function_table, eruption_xscreensaver_function_table, + esper_xscreensaver_function_table, euler2d_xscreensaver_function_table, fadeplot_xscreensaver_function_table, fiberlamp_xscreensaver_function_table, @@ -302,6 +303,7 @@ NSDictionary *make_function_table_dict(void) [NSValue valueWithPointer:&engine_xscreensaver_function_table], @"engine", [NSValue valueWithPointer:&epicycle_xscreensaver_function_table], @"epicycle", [NSValue valueWithPointer:&eruption_xscreensaver_function_table], @"eruption", + [NSValue valueWithPointer:&esper_xscreensaver_function_table], @"esper", [NSValue valueWithPointer:&euler2d_xscreensaver_function_table], @"euler2d", [NSValue valueWithPointer:&fadeplot_xscreensaver_function_table], @"fadeplot", [NSValue valueWithPointer:&fiberlamp_xscreensaver_function_table], @"fiberlamp", diff --git a/OSX/updates.xml b/OSX/updates.xml index 9c8f7cfb..d4d2a011 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.37 + https://www.jwz.org/xscreensaver/xscreensaver-5.37.dmg + • Added Mac Software Update and VMware to `bsod'.
• OSX: Grabbing the desktop works again.
• OSX: Pinch to zoom.
• Android: Both Daydreams and Live Wallpapers are implemented.
• Updated `webcollage' for recent changes.
• Various bug fixes.]]>
+ Wed, 05 Jul 2017 10:55:51 -0700 + +
Version 5.36 https://www.jwz.org/xscreensaver/xscreensaver-5.36.dmg diff --git a/OSX/xscreensaver.xcodeproj/project.pbxproj b/OSX/xscreensaver.xcodeproj/project.pbxproj index 479545fd..942114b9 100644 --- a/OSX/xscreensaver.xcodeproj/project.pbxproj +++ b/OSX/xscreensaver.xcodeproj/project.pbxproj @@ -214,6 +214,7 @@ AF777A3D09B660B500EA3033 /* PBXTargetDependency */, AFACE8911CC8365F008B24CD /* PBXTargetDependency */, AF777A3B09B660B500EA3033 /* PBXTargetDependency */, + AF21078F1FD23D9800B61EA9 /* PBXTargetDependency */, AF777A3909B660B400EA3033 /* PBXTargetDependency */, AF777A3709B660B400EA3033 /* PBXTargetDependency */, AF777A3509B660B400EA3033 /* PBXTargetDependency */, @@ -1287,6 +1288,19 @@ AF1FDA88158FF96600C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; AF1FDA89158FF96600C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF1FDA8A158FF96600C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF2107781FD23BDD00B61EA9 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; + AF21077A1FD23BDD00B61EA9 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF21077B1FD23BDD00B61EA9 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF21077C1FD23BDD00B61EA9 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF2C31E515C0F7FE007A6896 /* QuartzCore.framework */; }; + AF21077D1FD23BDD00B61EA9 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF21077E1FD23BDD00B61EA9 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF21077F1FD23BDD00B61EA9 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE0BC611A6B0D6200C098BF /* OpenGL.framework */; }; + AF2107801FD23BDD00B61EA9 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AF78369617DB9F25003B9FC0 /* libz.dylib */; }; + AF2107891FD23D2800B61EA9 /* esper.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF2107881FD23D2800B61EA9 /* esper.xml */; }; + AF21078A1FD23D2800B61EA9 /* esper.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF2107881FD23D2800B61EA9 /* esper.xml */; }; + AF21078C1FD23D5000B61EA9 /* esper.c in Sources */ = {isa = PBXBuildFile; fileRef = AF21078B1FD23D5000B61EA9 /* esper.c */; }; + AF21078D1FD23D5000B61EA9 /* esper.c in Sources */ = {isa = PBXBuildFile; fileRef = AF21078B1FD23D5000B61EA9 /* esper.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF2107901FD23FEC00B61EA9 /* OCRAStd.otf in Resources */ = {isa = PBXBuildFile; fileRef = AFEC68361BD6CA85004C1B64 /* OCRAStd.otf */; }; AF241F83107C38DF00046A84 /* dropshadow.c in Sources */ = {isa = PBXBuildFile; fileRef = AF241F81107C38DF00046A84 /* dropshadow.c */; }; AF2C31E615C0F7FE007A6896 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF2C31E515C0F7FE007A6896 /* QuartzCore.framework */; }; AF2C31EA15C0FC9C007A6896 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF2C31E515C0F7FE007A6896 /* QuartzCore.framework */; }; @@ -3801,6 +3815,20 @@ remoteGlobalIDString = AF1B0FA71D7AB4740011DBE4; remoteInfo = Hexstrut; }; + AF2107731FD23BDD00B61EA9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = AF4808C0098C3B6C00FB32B8; + remoteInfo = jwxyz; + }; + AF21078E1FD23D9800B61EA9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = AF2107711FD23BDD00B61EA9; + remoteInfo = Esper; + }; AF32D9E20F3AD0B40080F535 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; @@ -7320,6 +7348,9 @@ AF1B0FBC1D7AB4740011DBE4 /* Hexstrut.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Hexstrut.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF1B0FBE1D7AB5210011DBE4 /* hexstrut.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = hexstrut.c; path = hacks/glx/hexstrut.c; sourceTree = ""; }; AF1B0FBF1D7AB5210011DBE4 /* hexstrut.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = hexstrut.xml; sourceTree = ""; }; + AF2107861FD23BDE00B61EA9 /* Esper.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Esper.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF2107881FD23D2800B61EA9 /* esper.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = esper.xml; sourceTree = ""; }; + AF21078B1FD23D5000B61EA9 /* esper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = esper.c; path = hacks/glx/esper.c; sourceTree = ""; }; AF241F81107C38DF00046A84 /* dropshadow.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = dropshadow.c; path = hacks/glx/dropshadow.c; sourceTree = ""; }; AF241F82107C38DF00046A84 /* dropshadow.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = dropshadow.h; path = hacks/glx/dropshadow.h; sourceTree = ""; }; AF2C31E515C0F7FE007A6896 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; @@ -8379,6 +8410,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AF2107791FD23BDD00B61EA9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AF21077A1FD23BDD00B61EA9 /* libjwxyz.a in Frameworks */, + AF21077B1FD23BDD00B61EA9 /* ScreenSaver.framework in Frameworks */, + AF21077C1FD23BDD00B61EA9 /* QuartzCore.framework in Frameworks */, + AF21077D1FD23BDD00B61EA9 /* Cocoa.framework in Frameworks */, + AF21077E1FD23BDD00B61EA9 /* Carbon.framework in Frameworks */, + AF21077F1FD23BDD00B61EA9 /* OpenGL.framework in Frameworks */, + AF2107801FD23BDD00B61EA9 /* libz.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; AF32D9E80F3AD0B40080F535 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -12137,6 +12182,7 @@ AFEE10A01D17E20B00AAC8F7 /* Splodesic.saver */, AF1B0FBC1D7AB4740011DBE4 /* Hexstrut.saver */, AF633C161EE0BA6F00AB33BD /* Vigilance.saver */, + AF2107861FD23BDE00B61EA9 /* Esper.saver */, ); name = Products; path = ..; @@ -12477,6 +12523,7 @@ AFA55E2509935F2B00F3E977 /* endgame.c */, AFACE88A1CC83578008B24CD /* energystream.c */, AFA55C230993435300F3E977 /* engine.c */, + AF21078B1FD23D5000B61EA9 /* esper.c */, AF642409099FFAF0000F4CD4 /* extrusion-helix2.c */, AF64240A099FFAF0000F4CD4 /* extrusion-helix3.c */, AF64240B099FFAF0000F4CD4 /* extrusion-helix4.c */, @@ -12692,6 +12739,7 @@ AFC2589C0988A468000655EE /* engine.xml */, AFC2589D0988A468000655EE /* epicycle.xml */, AFC2589E0988A468000655EE /* eruption.xml */, + AF2107881FD23D2800B61EA9 /* esper.xml */, AFC2589F0988A468000655EE /* euler2d.xml */, AFC258A00988A468000655EE /* extrusion.xml */, AFC258A10988A468000655EE /* fadeplot.xml */, @@ -13173,6 +13221,26 @@ productReference = AF1B0FBC1D7AB4740011DBE4 /* Hexstrut.saver */; productType = "com.apple.product-type.bundle"; }; + AF2107711FD23BDD00B61EA9 /* Esper */ = { + isa = PBXNativeTarget; + buildConfigurationList = AF2107831FD23BDD00B61EA9 /* Build configuration list for PBXNativeTarget "Esper" */; + buildPhases = ( + AF2107741FD23BDD00B61EA9 /* Resources */, + AF2107761FD23BDD00B61EA9 /* Sources */, + AF2107791FD23BDD00B61EA9 /* Frameworks */, + AF2107811FD23BDD00B61EA9 /* Rez */, + AF2107821FD23BDD00B61EA9 /* Run Update Info Plist */, + ); + buildRules = ( + ); + dependencies = ( + AF2107721FD23BDD00B61EA9 /* PBXTargetDependency */, + ); + name = Esper; + productName = DangerBall; + productReference = AF2107861FD23BDE00B61EA9 /* Esper.saver */; + productType = "com.apple.product-type.bundle"; + }; AF32D9E00F3AD0B40080F535 /* RubikBlocks */ = { isa = PBXNativeTarget; buildConfigurationList = AF32D9F10F3AD0B40080F535 /* Build configuration list for PBXNativeTarget "RubikBlocks" */; @@ -18144,7 +18212,7 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0830; + LastUpgradeCheck = 0920; TargetAttributes = { AF08398F09930B6B00277BE9 = { DevelopmentTeam = 4627ATJELP; @@ -18170,6 +18238,9 @@ AF1B0FA71D7AB4740011DBE4 = { DevelopmentTeam = 4627ATJELP; }; + AF2107711FD23BDD00B61EA9 = { + DevelopmentTeam = 4627ATJELP; + }; AF32D9E00F3AD0B40080F535 = { DevelopmentTeam = 4627ATJELP; }; @@ -19116,6 +19187,7 @@ AFACE8731CC83458008B24CD /* EnergyStream */, AFA55E0D09935EDC00F3E977 /* Endgame */, AFA55C0E0993431300F3E977 /* Engine */, + AF2107711FD23BDD00B61EA9 /* Esper */, AF6423F2099FF9C2000F4CD4 /* Extrusion */, AFA5603209936D5100F3E977 /* FlipFlop */, AF77773E09B6446500EA3033 /* FlipScreen3D */, @@ -19284,6 +19356,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AF2107741FD23BDD00B61EA9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AF2107891FD23D2800B61EA9 /* esper.xml in Resources */, + AF2107901FD23FEC00B61EA9 /* OCRAStd.otf in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; AF32D9E30F3AD0B40080F535 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -20204,6 +20285,7 @@ AF918AEB158FC53D002B5D1E /* engine.xml in Resources */, AF918AEC158FC53D002B5D1E /* epicycle.xml in Resources */, AF918AED158FC53D002B5D1E /* eruption.xml in Resources */, + AF21078A1FD23D2800B61EA9 /* esper.xml in Resources */, AF918AEE158FC53D002B5D1E /* euler2d.xml in Resources */, AF918AF0158FC53D002B5D1E /* fadeplot.xml in Resources */, AF918AF1158FC53D002B5D1E /* fiberlamp.xml in Resources */, @@ -21581,6 +21663,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AF2107811FD23BDD00B61EA9 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; AF32D9EF0F3AD0B40080F535 /* Rez */ = { isa = PBXRezBuildPhase; buildActionMask = 2147483647; @@ -23325,6 +23414,21 @@ shellScript = "$SOURCE_ROOT/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; + AF2107821FD23BDD00B61EA9 /* 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; + }; AF32D9F00F3AD0B40080F535 /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -27230,6 +27334,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AF2107761FD23BDD00B61EA9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AF2107781FD23BDD00B61EA9 /* XScreenSaverSubclass.m in Sources */, + AF21078C1FD23D5000B61EA9 /* esper.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; AF32D9E50F3AD0B40080F535 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -28420,6 +28533,7 @@ AF918A4A158FC3E5002B5D1E /* endgame.c in Sources */, AFACE88F1CC83617008B24CD /* energystream.c in Sources */, AF918A4B158FC3E5002B5D1E /* engine.c in Sources */, + AF21078D1FD23D5000B61EA9 /* esper.c in Sources */, AF918A54158FC3E5002B5D1E /* flipflop.c in Sources */, AF918A55158FC3E5002B5D1E /* flipscreen3d.c in Sources */, AF918A56158FC3E5002B5D1E /* fliptext.c in Sources */, @@ -30032,6 +30146,16 @@ target = AF1B0FA71D7AB4740011DBE4 /* Hexstrut */; targetProxy = AF1B0FC41D7AB5740011DBE4 /* PBXContainerItemProxy */; }; + AF2107721FD23BDD00B61EA9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = AF4808C0098C3B6C00FB32B8 /* jwxyz */; + targetProxy = AF2107731FD23BDD00B61EA9 /* PBXContainerItemProxy */; + }; + AF21078F1FD23D9800B61EA9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = AF2107711FD23BDD00B61EA9 /* Esper */; + targetProxy = AF21078E1FD23D9800B61EA9 /* PBXContainerItemProxy */; + }; AF32D9E10F3AD0B40080F535 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = AF4808C0098C3B6C00FB32B8 /* jwxyz */; @@ -32661,6 +32785,28 @@ }; name = Release; }; + AF2107841FD23BDD00B61EA9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "USE_GL=1", + "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + AF2107851FD23BDD00B61EA9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "USE_GL=1", + "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; AF32D9F20F3AD0B40080F535 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -36816,13 +36962,19 @@ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; BUNDLE_IDENTIFIER = "org.jwz.${PROJECT_NAME:rfc1034identifier}.${PRODUCT_NAME:rfc1034identifier}"; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = NO; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = NO; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -36842,6 +36994,7 @@ "GETTIMEOFDAY_TWO_ARGS=1", "HAVE_UNISTD_H=1", "STANDALONE=1", + "HAVE_GL=1", "HAVE_GLBINDTEXTURE=1", "HAVE_UNAME=1", "HAVE_ICMP=1", @@ -36862,6 +37015,7 @@ "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -36910,13 +37064,19 @@ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; BUNDLE_IDENTIFIER = "org.jwz.${PROJECT_NAME:rfc1034identifier}.${PRODUCT_NAME:rfc1034identifier}"; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = NO; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = NO; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -36935,6 +37095,7 @@ "GETTIMEOFDAY_TWO_ARGS=1", "HAVE_UNISTD_H=1", "STANDALONE=1", + "HAVE_GL=1", "HAVE_GLBINDTEXTURE=1", "HAVE_UNAME=1", "HAVE_ICMP=1", @@ -36954,6 +37115,7 @@ "CLASS=XScreenSaver${EXECUTABLE_NAME}View", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -37084,6 +37246,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + AF2107831FD23BDD00B61EA9 /* Build configuration list for PBXNativeTarget "Esper" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AF2107841FD23BDD00B61EA9 /* Debug */, + AF2107851FD23BDD00B61EA9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; AF32D9F10F3AD0B40080F535 /* Build configuration list for PBXNativeTarget "RubikBlocks" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/README b/README index 333b464f..8a29747a 100644 --- a/README +++ b/README @@ -3,7 +3,8 @@ a collection of free screen savers - for X11 and MacOS + for X11, macOS, + iOS and Android By Jamie Zawinski and many others @@ -14,8 +15,8 @@ This is the XScreenSaver source code distribution. It is strongly recommended that you install a binary release rather than trying to compile it yourself. -Binaries are available for almost all platforms, including MacOS X. See the -XScreenSaver web site for details. +Executables are available for almost all platforms, including macOS, iOS, and +Android. See the XScreenSaver web site for details. To compile for a Unix system with X11: @@ -26,9 +27,9 @@ To compile for a Unix system with X11: If you are on an "apt"-based system, "apt-get build-dep xscreensaver" might install most of the compilation dependencies. -To compile for MacOS X or iOS: +To compile for macOS X or iOS: - Use the included XCode project. Requires XCode 6 and MacOS X 10.8 + Use the included XCode project. Requires XCode 6 and macOS 10.8 or newer. To compile for Android: @@ -45,27 +46,49 @@ XScreenSaver has an extensive manual -- please read it! =============================================================================== +5.38 * New hack, 'esper'. + * macOS: Support for Retina displays. + * X11: `webcollage' now works with ImageMagick instead of with + pbmtools if `webcollage-helper' is not installed. + * 'bsod' now accepts Dunning-Krugerrands. + * Android: These hacks work now: 'anemone', 'anemotaxis', 'atlantis', + 'bouboule', 'celtic', 'compass', 'crackberg', 'epicycle', + 'fuzzyflakes', 'goop', 'kumppa' 'munch', 'pacman', 'polyominoes', + 'slip'. + * Android: Thick lines work better for: 'anemone', 'anemotaxis', + 'celtic', 'compass', 'deluxe', 'epicycle', 'fuzzyflakes', 'pacman' + * Android: Assorted performance improvements, especially for 'kumppa' + and 'slip'. + * Android TV: Daydreams work. + * iOS: Tweaks for iPhone X. + * Lots of xlockmore-derived hacks now have animated erase routines. + * 'crystal' works properly on non-X11 systems. + * 'm6502' now includes 'texture.asm'. + * X11: Try harder to find sensible fonts for the password dialog. + 5.37 * New hack, `vigilance'. * Added Mac Software Update and VMware to `bsod'. - * OSX: Grabbing the desktop works again. - * OSX: Pinch to zoom. + * macOS: Grabbing the desktop works again. + * macOS: Pinch to zoom. * Android: Both Daydreams and Live Wallpapers are implemented. * Updated `webcollage' for recent changes. * Various bug fixes. + 5.36 * New hacks, `discoball', `cubetwist', `cubestack', `splodesic' and `hexstrut'. - * OSX: loading image files works in `dymaxionmap', `glplanet', + * 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'. + 5.35 * New hacks, `dymaxionmap', `unicrud', `energystream', `raverhoop' and `hydrostat'. * Added Windows 10 to `bsod'. * X11: ignore WM_USER_TIME property changes with days-old timestamps. Thanks, KDE. - * MacOS, iOS: Better fonts in `BSOD' and `memscroller'. - * MacOS 10.8 or later and iOS 6.0 or later are now required, since + * macOS, iOS: Better fonts in `bsod' and `memscroller'. + * macOS 10.8 or later and iOS 6.0 or later are now required, since Xcode 6 can no longer build executables that work on older OSes. * Many, many Android improvements. * iOS: Fixed rotation to work with the new iOS 8+ API. @@ -73,7 +96,7 @@ XScreenSaver has an extensive manual -- please read it! 5.34 * Fixed a crash when hot-swapping monitors while locked. * Fixed some incorrect output from `xscreensaver-command -watch'. - * Various OSX and iOS performance improvements. + * Various macOS and iOS performance improvements. 5.33 * New hacks, `splitflap' and `romanboy'. * Better detection of user activity on modern GNOME systems. @@ -84,20 +107,20 @@ XScreenSaver has an extensive manual -- please read it! 5.32 * Fixed some X11 compilation problems. * Fixed display size and shake gestures on iOS. - * OSX/iOS Performance improvements. + * macOS/iOS Performance improvements. 5.31 * New hacks, `geodesicgears', `binaryring' and `cityflow'. * UTF-8 text support (instead of only Latin1) and antialiased text - on X11 with Xft (instead of only on OSX/iOS) in `fontglide', + on X11 with Xft (instead of only on macOS/iOS) in `fontglide', `noseguy', `fliptext', `starwars', and `winduprobot'. The other text-displaying hacks (`apple2', `phosphor', `xmatrix', and `gltext') also now accept UTF-8 input, though they convert it to Latin1 or ASCII. * `glplanet' now has both day and night maps, and a sharp terminator. - * Fixed `webcollage' on OSX. + * Fixed `webcollage' on macOS. * Fixed a transparency glitch in `winduprobot'. * `lockward' works on iOS. - * Text and image loading work on OSX 10.10. + * Text and image loading work on macOS 10.10. * Rotation works properly on iOS 8. * Added a search field on iOS. * Preliminary, unfinished support for Android. @@ -112,7 +135,7 @@ XScreenSaver has an extensive manual -- please read it! * Most hacks respond to mouse-clicks, double-taps and swipes as meaning "do something different now". * Reworked OpenGL fonts. - * The OSX auto-update installer wasn't working. This time for sure? + * The macOS auto-update installer wasn't working. This time for sure? * Various minor fixes. 5.29 * Downgraded to Xcode 5.0.2 to make it possible to build savers @@ -120,7 +143,7 @@ XScreenSaver has an extensive manual -- please read it! * Updated `webcollage' for recent changes. 5.28 * Fixed some compilation problems and intermittent crashes. - * Turned off the OSX 10.6 enable_gc hack. It didn't work. + * Turned off the macOS 10.6 enable_gc hack. It didn't work. 5.27 * New hacks, `tessellimage' and `projectiveplane'. * Added support for pthreads, because Dave Odell is a madman. @@ -129,16 +152,16 @@ XScreenSaver has an extensive manual -- please read it! * X11: Don't assume Suspend = 0 implies "No DPMS". * Minor updates to `boxed' and `klein'. * Fixed possible crash in `apple2', `noseguy', `xmatrix', `shadebobs'. - * Fixed possible crash in OSX preferences. - * OSX Performance improvements. + * Fixed possible crash in macOS preferences. + * macOS Performance improvements. * Plugged some leaks. 5.26 * More auto-updater tweaks. -5.25 * Try harder to bypass Quarrantine and Gatekeeper in OSX installer. +5.25 * Try harder to bypass Quarrantine and Gatekeeper in macOS installer. * Some files were missing from the tarball. -5.24 * Added "Automatically check for updates" option on OSX. +5.24 * Added "Automatically check for updates" option on macOS. * Updated feed-loading for recent Flickr changes. * Updated `webcollage' for recent Google changes. * Added Instagram and Bing as `webcollage' image sources. @@ -146,13 +169,13 @@ XScreenSaver has an extensive manual -- please read it! * Bug fixes. 5.23 * New hack, `geodesic'. - * iOS and OSX: huge XCopyArea performance improvements. + * iOS and macOS: huge XCopyArea performance improvements. * More heuristics for using RSS feeds as image sources. * Improved Wikipedia parser. * Updated `webcollage' for recent Flickr changes. * Added Android to `bsod'. - * OSX: Added a real installer. - * iOS and OSX: fixed a font-metrics bug. + * macOS: Added a real installer. + * iOS and macOS: fixed a font-metrics bug. * iOS: Fixed aspect ratio bug in non-rotating apps when launched in landscape mode. * Made `quasicrystal' work on weak graphics cards. @@ -181,14 +204,14 @@ XScreenSaver has an extensive manual -- please read it! now requires a login to get any feeds. * New version of `fireworkx'. * Minor fixes to `distort', `fontglide', `xmatrix'. - * New MacOS crash in `bsod'. + * New macOS crash in `bsod'. * New mode in `lcdscrub'. 5.20 * Support for iPhone 5 screen size. - * Fixed modifier key handing in Apple2.app and Phosphor.app on MacOS. + * Fixed modifier key handing in Apple2.app and Phosphor.app on macOS. * Various minor bug fixes. -5.19 * MacOS 10.8.0 compatibility. +5.19 * macOS 10.8.0 compatibility. * iOS performance improvements. 5.18 * iOS responds to shake gestures to randomize. @@ -216,10 +239,10 @@ XScreenSaver has an extensive manual -- please read it! `imageDirectory' may contain a URL. * Updated `webcollage' for recent search engine changes. * `phosphor' and `apple2' can now be run as standalone terminal - emulator applications on MacOS. + emulator applications on macOS. * `photopile' sped up. * New molecule in `molecule'. - * "Upgraded" to XCode 4.0, which means that MacOS 10.4 PPC builds are + * "Upgraded" to XCode 4.0, which means that macOS 10.4 PPC builds are impossible, and Intel is now required. * Turned on LC_CTYPE on Linux; maybe Japanese password entry works now? @@ -238,10 +261,10 @@ XScreenSaver has an extensive manual -- please read it! * Passwords that contain UTF-8 non-Latin1 chars are now typeable. * Numerous minor stability fixes. -5.12 * Big speed improvement on OSX for heavy XCopyArea users (`xmatrix', +5.12 * Big speed improvement on macOS for heavy XCopyArea users (`xmatrix', `moire2', `phosphor', etc.) - * Plugged a bad OSX-only Pixmap leak. - * Kludged around the OSX pty bug that caused text to be truncated in + * Plugged a bad macOS-only Pixmap leak. + * Kludged around the macOS pty bug that caused text to be truncated in phosphor, starwars, apple2, etc. * New molecule in `molecule'. * `glhanoi' now supports an arbitrary number of poles. @@ -249,25 +272,25 @@ XScreenSaver has an extensive manual -- please read it! * Added support for XInput-style alternate input devices. 5.11 * New versions of `photopile', `strange'. - * Worked around MacOS 10.6 garbage collector bug that caused the + * Worked around macOS 10.6 garbage collector bug that caused the screen saver process to become enormous. * Fixed flicker in `pipes', `cubestorm', and `noof'. - * Fixed EXIF rotation on MacOS 10.6. - * Fixed desktop-grabbing when screen locked on MacOS. + * Fixed EXIF rotation on macOS 10.6. + * Fixed desktop-grabbing when screen locked on macOS. * Minor fixes to `circuit', `polyhedra', `tangram', `gears', `pinion', `substrate', `xanalogtv'. * Fixed some leaks in `xanalogtv' and `apple2'. * Better seeding of the RNG. -5.10 * Fixed some crashes and color problems on MacOS 10.6. +5.10 * Fixed some crashes and color problems on macOS 10.6. * Retired `hypercube' and `hyperball', which are redundant with `polytopes'. -5.09 * Ported to MacOS 10.6, including various 64-bit fixes. +5.09 * Ported to macOS 10.6, including various 64-bit fixes. * New hack, `rubikblocks'. * Fixed another potential RANDR crash. - * Use correct proxy server on MacOS. + * Use correct proxy server on macOS. * `molecule' now correctly displays PDB 3.2 files. * Updates to `mirrorblob', `glhanoi', and `sonar'. * Rewritten version of `klein' hack. @@ -298,11 +321,11 @@ XScreenSaver has an extensive manual -- please read it! * `flipflop' can load images onto the tiles. * Fixed the bouncing ball in `stairs'. * Added the missing Utah Teapotahedron to `polyhedra'. - * `blitspin' works with color images on MacOS now. + * `blitspin' works with color images on macOS now. * Added transparency to `stonerview'. * Improved layout of the preferences dialogs: they should all now be usable even on ridiculously tiny laptop screens. - * MacOS preferences text fields now prevent you from entering numbers + * macOS preferences text fields now prevent you from entering numbers that are out of range. * Added "Reset to Defaults" button on X11. * Added relevant Wikipedia links to many of the screen saver @@ -331,9 +354,9 @@ XScreenSaver has an extensive manual -- please read it! rectangles available. * Don't warning about receipt of bogus ClientMessages, since Gnome's just never going to stop sending those. - * Worked around MacOS 10.5 perl bug that caused the text-displaying + * Worked around macOS 10.5 perl bug that caused the text-displaying hacks to fail on some systems. - * Hopefully fixed font-related System Preferences crashes in MacOS + * Hopefully fixed font-related System Preferences crashes in macOS savers. * The recent PAM changes broke the "Caps Lock" warning in the password dialog, the failed login warnings, and syslogging. Fixed all that. @@ -347,7 +370,7 @@ XScreenSaver has an extensive manual -- please read it! `fireworkx' and `webcollage'. * `pong' can now display the current time as the score. * `xmatrix -mode pipe' works better. - * Minor tweaks for compilation on MacOS 10.5.0. + * Minor tweaks for compilation on macOS 10.5.0. 5.03 * New hacks, `cwaves', `glcells', `m6502', and `voronoi'. * Minor fixes to `bsod'. @@ -356,27 +379,27 @@ XScreenSaver has an extensive manual -- please read it! changes. 5.02 * Reworked PAM code to support fingerprint readers, etc. - * Ported `webcollage' to MacOS. - * Added MacOS 10.2 and 10.3 kernel panics to `bsod'. + * Ported `webcollage' to macOS. + * Added macOS 10.2 and 10.3 kernel panics to `bsod'. * Fixed a Xinerama crash when changing the screen count. * New blobbier `mirrorblob'. * Minor updates to `lisa', `bsod', `ifs', `hypertorus', `polytopes', `circuit', `endgame', `crackberg', `flipflop', `flipscreen3d', `fliptext', and `carousel'. - * Enabled multi-threaded OpenGL on MacOS. + * Enabled multi-threaded OpenGL on macOS. 5.01 * Backed out recent locale-related changes, since they broke far more things than they fixed. * Fail gracefully with ridiculously small window sizes. - * `xflame' and `flag' ignore bitmap option on MacOS. - * `speedmine' prefs work on MacOS. + * `xflame' and `flag' ignore bitmap option on macOS. + * `speedmine' prefs work on macOS. * Better explosions in `boxed'. * More dynamic motion in `sproingies'. * More options in `flipflop'. * Minor updates to `topblock'. * Various other minor fixes. -5.00 * Ported to MacOS X! (10.4.0 or newer) +5.00 * Ported to macOS! (10.4.0 or newer) * API change: instead of providing a single screenhack() function that does not return, screen savers using the screenhack.h framework must now provide "init" and "draw one frame" functions instead. All @@ -392,7 +415,7 @@ XScreenSaver has an extensive manual -- please read it! * Changes to the defaults and command-line options of many hacks to make the .xml files more consistent. * Reap zombies in `glslideshow' and `carousel'. - * `sonar' works without setuid on MacOS (dgram icmp). + * `sonar' works without setuid on macOS (dgram icmp). * `xmatrix -mode pipe' displays the text of a subprocess. * `endgame' has higher resolution chess-piece models. * `webcollage' takes a -directory option to get images from a local @@ -419,7 +442,7 @@ XScreenSaver has an extensive manual -- please read it! seem to be installed. * Don't install `ant' by default, since there is some Java tool of that name, which was causing confusion. And also it's boring. - * Made screen grabbing work again on MacOS 10.4.2. + * Made screen grabbing work again on macOS 10.4.2. * No longer prints bogus warnings about ClientMessages intended for the window manager. * Ignore unprintable characters in passwd entry field. @@ -539,7 +562,7 @@ XScreenSaver has an extensive manual -- please read it! * New version of `glsnake' (with many more models.) * Another Windows crash in `bsod'; also HVX/GCOS6/TPS6. * New version of `endgame'. - * Screen grabbing works on MacOS X. + * Screen grabbing works on macOS. * Various minor fixes. 4.13 * On Xinerama systems, xscreensaver now runs one hack on each monitor @@ -582,7 +605,7 @@ XScreenSaver has an extensive manual -- please read it! 4.08 * New hacks, `atunnels' and `piecewise'. * Physics improvement in `fluidballs'. - * Various fixes for XDarwin systems (X11 on MacOS X.) + * Various fixes for XDarwin systems (X11 on macOS.) * Added -clock option to `barcode'. * Minor fixes to `endgame', `flurry', `flipscreen3d', and `gflux'. @@ -619,7 +642,7 @@ XScreenSaver has an extensive manual -- please read it! * Updated to latest `config.guess' and `config.sub'. * Fixed occasional core dump in `distort'. * Added a Linux fsck failure and kernel panic to `bsod'. - * Added MacOS X kernel panic to `bsod'. + * Added macOS kernel panic to `bsod'. * Fixed a bug in `bsod' (all bsod bugs are ironic.) * Fixed a bug that caused `xscreensaver-gl-helper' to print a nonsense visual ID with some versions of `printf': this could cause GL diff --git a/README.hacking b/README.hacking index 3cceb577..6fc2fe58 100644 --- a/README.hacking +++ b/README.hacking @@ -92,7 +92,7 @@ The XScreenSaver API You may not store global state in global variables, or in function-local static variables. All of your runtime state must be encapsulted in the "state" object created by your "init" function. If you use global or - static variables, your screen saver will not work properly on MacOS. + static variables, your screen saver will not work properly on macOS. Do not call XSync() or XFlush(). If you think you need to do that, it probably means that you are you are relying on the speed of the graphics @@ -101,29 +101,46 @@ The XScreenSaver API ========================================================================== -The XLockMore API +The xlockmore API ========================================================================== Some of the display modes that come with xscreensaver were ported from - XLock, and so, for historical reasons, they follow a slightly different + xlock, and so, for historical reasons, they follow a slightly different programming convention. For newly-written Xlib programs, you'd be better off following the pattern used in hacks like "Deluxe" than in - hacks like "Flag". The XLockMore ones are the ones that begin with + hacks like "Flag". The xlockmore ones are the ones that begin with "#ifdef STANDALONE" and #include "xlockmore.h". - But, all OpenGL screen savers have to follow the XLockMore API. + But, all OpenGL screen savers have to follow the xlockmore API. - The XLockMore API is similar to the XScreenSaver API, in that you define + The xlockmore API is similar to the XScreenSaver API, in that you define (roughly) the same set of functions, but the naming conventions are slightly different. Instead of "hackname_init", it's "init_hackname", and it should be preceeded with the pseudo-declaration ENTRYPOINT. - One annoying mis-feature of the XLockMore API is that it *requires* you + One annoying mis-feature of the xlockmore API is that it *requires* you to make use of global variables for two things: first, for each of your command line options; and second, for an array that holds your global state objects. These are the only exceptions to the "never use global variables" rule. + There are a few important differences between the original xlockmore API + and XScreenSaver's implementation: + + - XScreenSaver does not use refresh_hackname or change_hackname. + + - XScreenSaver provides two additional hooks not present in xlockmore: + reshape_hackname, and hackname_handle_event. These are respectively + equivalent to hackname_reshape and hackname_event in the XScreenSaver + API. + + - Under Xlib, MI_CLEARWINDOW doesn't clear the window immediately. + Instead, due to double buffering on macOS/iOS/Android, it waits until + after init_hackname or draw_hackname returns before clearing. Make + sure not to issue any Xlib drawing calls immediately after a call to + MI_CLEARWINDOW, as these will be erased. To clear the window + immediately, just use XClearWindow. + ========================================================================== Programming Tips @@ -163,16 +180,19 @@ Programming Tips ========================================================================== -MacOS, iOS and Android +macOS, iOS and Android ========================================================================== Though XScreenSaver started its life as an X11 program, it also now runs - on MacOS, iOS and Android, due to a maniacal collection of compatibility + on macOS, iOS and Android, due to a maniacal collection of compatibility shims. If you do your development on an X11 system, and follow the usual XScreenSaver APIs, you shouldn't need to do anything special for - it to also work on MacOS and on phones. + it to also work on macOS and on phones. See the READMEs in the OSX/ and android/ directories for instructions on compiling for those platforms. + To check that an X11 saver will fit well on a mobile device, test it + with -geometry 640x1136 and 640x960. That's a good first step, anyway. + ========================================================================== diff --git a/aclocal.m4 b/aclocal.m4 index 03fbf515..28686cb1 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.15 -*- Autoconf -*- +# generated automatically by aclocal 1.15.1 -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2017 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -111,6 +111,51 @@ fi AC_SUBST($1)dnl ]) +dnl Checks for special options needed on Mac OS X. +dnl Defines INTL_MACOSX_LIBS. +dnl +dnl Copied from intlmacosx.m4 in gettext, GPL. +dnl Copyright (C) 2004-2013 Free Software Foundation, Inc. +glib_DEFUN([glib_gt_INTL_MACOSX], +[ + dnl Check for API introduced in Mac OS X 10.2. + AC_CACHE_CHECK([for CFPreferencesCopyAppValue], + [gt_cv_func_CFPreferencesCopyAppValue], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[CFPreferencesCopyAppValue(NULL, NULL)]])], + [gt_cv_func_CFPreferencesCopyAppValue=yes], + [gt_cv_func_CFPreferencesCopyAppValue=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], + [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) + fi + dnl Check for API introduced in Mac OS X 10.3. + AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[CFLocaleCopyCurrent();]])], + [gt_cv_func_CFLocaleCopyCurrent=yes], + [gt_cv_func_CFLocaleCopyCurrent=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], + [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + AC_SUBST([INTL_MACOSX_LIBS]) +]) + # GLIB_WITH_NLS #----------------- glib_DEFUN([GLIB_WITH_NLS], @@ -124,6 +169,8 @@ glib_DEFUN([GLIB_WITH_NLS], XGETTEXT=: INTLLIBS= + glib_gt_INTL_MACOSX + AC_CHECK_HEADER(libintl.h, [gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" @@ -207,7 +254,7 @@ glib_DEFUN([GLIB_WITH_NLS], fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then - INTLLIBS="-lintl $libintl_extra_libs" + INTLLIBS="-lintl $libintl_extra_libs $INTL_MACOSX_LIBS" fi if test "$gt_cv_have_gettext" = "yes"; then @@ -651,7 +698,7 @@ AC_DEFUN([AM_NLS], AC_SUBST([USE_NLS]) ]) -# Copyright (C) 2006-2014 Free Software Foundation, Inc. +# Copyright (C) 2006-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/android/Makefile b/android/Makefile index 7549411b..0ba4f58a 100644 --- a/android/Makefile +++ b/android/Makefile @@ -1,7 +1,7 @@ # XScreenSaver for Android export TERM=dumb -GRADLE = cd project ; ./gradlew +GRADLE = ./gradlew default:: debug all:: release @@ -41,6 +41,7 @@ export ANDROID_HACKS= \ anemone \ anemotaxis \ apollonian \ + atlantis \ attraction \ atunnel \ blaster \ @@ -50,14 +51,17 @@ export ANDROID_HACKS= \ bouncingcow \ boxed \ boxfit \ + bouboule \ braid \ bsod \ cage \ ccurve \ + celtic \ cloudlife \ companioncube \ compass \ coral \ + crackberg \ crystal \ cubestack \ cubestorm \ @@ -67,6 +71,7 @@ export ANDROID_HACKS= \ dangerball \ decayscreen \ deco \ + deluxe \ demon \ discrete \ discoball \ @@ -126,6 +131,7 @@ export ANDROID_HACKS= \ moebiusgears \ moire \ morph3d \ + munch \ nerverot \ noof \ penetrate \ @@ -133,6 +139,7 @@ export ANDROID_HACKS= \ petri \ piecewise \ pinion \ + polyominoes \ polytopes \ pong \ popsquares \ @@ -153,6 +160,7 @@ export ANDROID_HACKS= \ sierpinski \ sierpinski3d \ slidescreen \ + slip \ splodesic \ squiral \ stairs \ @@ -179,6 +187,7 @@ export ANDROID_HACKS= \ wormhole \ xflame \ xlyap \ + xrayswarm \ xspirograph \ @@ -188,23 +197,19 @@ ANDROID_TODO= \ antinspect \ antmaze \ antspotlight \ - atlantis \ barcode \ binaryring \ blitspin \ - bouboule \ bumps \ carousel \ - celtic \ circuit \ cityflow \ - crackberg \ cube21 \ cubenetic \ cubicgrid \ - deluxe \ dymaxionmap \ endgame \ + esper \ flipscreen3d \ fliptext \ fontglide \ @@ -226,19 +231,16 @@ ANDROID_TODO= \ moire2 \ molecule \ mountain \ - munch \ noseguy \ pedal \ phosphor \ photopile \ pipes \ - polyominoes \ projectiveplane \ pulsar \ qix \ queens \ skytentacles \ - slip \ speedmine \ spheremonics \ splitflap \ @@ -252,7 +254,6 @@ ANDROID_TODO= \ xanalogtv \ xjack \ xmatrix \ - xrayswarm \ zoom \ @@ -285,7 +286,7 @@ m6502.h:: fi; \ done -project/xscreensaver/res/drawable/%.png: +xscreensaver/res/drawable/%.png: @\ FILE1=`echo "$@" | sed 's!^.*/\([^/]*\)\.png$$!\1.jpg!'` ; \ FILE2="$@" ; \ @@ -303,19 +304,19 @@ project/xscreensaver/res/drawable/%.png: thumbs:: @for f in $(ANDROID_HACKS) $(ANDROID_TODO) ; do \ - $(MAKE) project/xscreensaver/res/drawable/$$f.png ; \ + $(MAKE) xscreensaver/res/drawable/$$f.png ; \ done clean_thumbs:: @\ for f in $(ANDROID_HACKS) $(ANDROID_TODO) ; do \ - rm -f project/xscreensaver/res/drawable/$$f.png ; \ + rm -f xscreensaver/res/drawable/$$f.png ; \ done distclean:: clean_thumbs clean -EXTRA_TARFILES = project/xscreensaver/res/drawable/thumbnail.png \ +EXTRA_TARFILES = xscreensaver/res/drawable/thumbnail.png \ echo_tarfiles: @FILES=`find . $(EXTRA_TARFILES) \( \( \ @@ -358,7 +359,7 @@ $(KEYSTORE): keytool -genkey -v -keystore $@ \ -alias xscreensaver -keyalg RSA -keysize 2048 -validity 10000 -APK_DIR = project/xscreensaver/build/outputs/apk/ +APK_DIR = xscreensaver/build/outputs/apk/ 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 fb7a4da9..0a2081f1 100644 --- a/android/README +++ b/android/README @@ -19,9 +19,9 @@ To set up your Android development environment: "build-tools/", etc.) That is, it should be "sdk/ndk/". set $ANDROID_HOME to where your SDK is installed, or - set "sdk.dir" in project/local.properties. + set "sdk.dir" in the file local.properties. On MacOS, the value you want is probably ~/Library/Android/sdk/ - Also set "ndk.dir" in project/local.properties. + Also set "ndk.dir" in local.properties. To build: @@ -30,7 +30,7 @@ To build: make Hopefully an "xscreensaver-debug.apk" file will appear in - android/project/xscreensaver/build/outputs/apk/. + android/xscreensaver/build/outputs/apk/. Load that onto your device and go to: Settings / Display / Daydream @@ -60,7 +60,7 @@ To build: To load it into the currently-running emulator or device: $ANDROID_HOME/platform-tools/adb install -r \ - project/xscreensaver/build/outputs/apk/xscreensaver-debug.apk + xscreensaver/build/outputs/apk/xscreensaver-debug.apk Extremely verbose log output, including stack traces: $ANDROID_HOME/platform-tools/adb logcat @@ -79,50 +79,50 @@ To build: Directory structure: Boilerplate for the Java version of "make": - project/*gradle* - project/*.properties - project/xscreensaver/*gradle* - project/xscreensaver/build.* - project/xscreensaver/*.properties + *gradle* + *.properties + xscreensaver/*gradle* + xscreensaver/build.* + xscreensaver/*.properties The other half of the Makefile: - project/xscreensaver/jni/*.mk + xscreensaver/jni/*.mk Source code: - project/xscreensaver/src/org/jwz/xscreensaver/*.java - project/xscreensaver/res/layout/*.xml + xscreensaver/src/org/jwz/xscreensaver/*.java + xscreensaver/res/layout/*.xml Other relevant source code is in ../jwxyz/ and ../hacks/. Icons: - project/xscreensaver/res/drawable-ldpi/ - project/xscreensaver/res/drawable-mdpi/ - project/xscreensaver/res/drawable/ + xscreensaver/res/drawable-ldpi/ + xscreensaver/res/drawable-mdpi/ + xscreensaver/res/drawable/ Files that we generate: gen/function-table.h - project/xscreensaver/AndroidManifest.xml - project/xscreensaver/res/drawable/*.png - project/xscreensaver/res/values/settings.xml - project/xscreensaver/res/values/strings.xml - project/xscreensaver/res/xml/*.xml - project/xscreensaver/src/org/jwz/xscreensaver/gen/*.java + xscreensaver/AndroidManifest.xml + xscreensaver/res/drawable/*.png + xscreensaver/res/values/settings.xml + xscreensaver/res/values/strings.xml + xscreensaver/res/xml/*.xml + xscreensaver/src/org/jwz/xscreensaver/gen/*.java Other files generated as a part of the build process: gen/ - project/.gradle/ - project/xscreensaver/build/ - project/xscreensaver/build/outputs/apk/ -- app appears here - project/xscreensaver/jni/ - project/xscreensaver/libs/ - project/xscreensaver/obj/ - project/xscreensaver/res/ - project/xscreensaver/res/drawable/ - project/xscreensaver/res/values/ - project/xscreensaver/res/xml/ - project/xscreensaver/src/org/jwz/xscreensaver/gen/ + .gradle/ + xscreensaver/build/ + xscreensaver/build/outputs/apk/ -- app appears here + xscreensaver/jni/ + xscreensaver/libs/ + xscreensaver/obj/ + xscreensaver/res/ + xscreensaver/res/drawable/ + xscreensaver/res/values/ + xscreensaver/res/xml/ + xscreensaver/src/org/jwz/xscreensaver/gen/ When adding a new hack, edit android/Makefile, then "make clean" and "make". @@ -150,8 +150,6 @@ TODO list, and known bugs: display the error message in a dialog. The catch works, but the dialog box does not. - anemone needs thick lines - anemotaxis needs thick lines antinspect crashes emulator, sometimes antmaze crashes emulator, sometimes antspotlight crashes emulator, sometimes @@ -161,29 +159,24 @@ TODO list, and known bugs: binaryring pixmaps blitspin images bouboule ? - braid thick lines bsod pixmaps, XCopyArea problems bumps XPutImage carousel blank - celtic thick lines circuit crashes emulator cityflow crashes emulator, sometimes - compass thick lines crackberg crashes emulator, sometimes cube21 crashes emulator, sometimes cubenetic crashes emulator, sometimes cubicgrid crashes emulator, sometimes - deluxe thick lines dnalogo codeword is blank dymaxionmap crashes emulator endgame crashes emulator engine text - epicycle thick lines + esper text flipflop images flipscreen3d images fliptext text fontglide text - fuzzyflakes thick lines gflux images glblur crashes emulator, sometimes gleidescope images @@ -228,11 +221,9 @@ TODO list, and known bugs: substrate background should be white surfaces crashes emulator tessellimage pixmaps - truchet thick lines twang background should be black unicrud pixmaps xanalogtv pixmaps xjack blank xmatrix pixmaps - xrayswarm thick lines zoom pixmaps diff --git a/android/android.iml b/android/android.iml new file mode 100644 index 00000000..7db6b232 --- /dev/null +++ b/android/android.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 00000000..613cb908 --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,24 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.1.0' + } + + // 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'; +} + +task clean(type: Delete) { + delete('./build') +} + +task distClean(type: Delete) { + delete('./.gradle') +} + +distClean.dependsOn clean diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 00000000..13372aef Binary files /dev/null and b/android/gradle/wrapper/gradle-wrapper.jar differ diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..729f41b7 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Sun Jun 12 14:20:28 PDT 2016 +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 diff --git a/android/gradlew b/android/gradlew new file mode 100755 index 00000000..9d82f789 --- /dev/null +++ b/android/gradlew @@ -0,0 +1,160 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat new file mode 100644 index 00000000..aec99730 --- /dev/null +++ b/android/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/android/local.properties b/android/local.properties new file mode 100644 index 00000000..238a21c0 --- /dev/null +++ b/android/local.properties @@ -0,0 +1,11 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must *NOT* be checked into Version Control Systems, +# as it contains information specific to your local configuration. + +# location of the SDK. This is only used by Ant +# For customization when using a Version Control System, please read the +# header note. +sdk.dir=/Users/jwz/Library/Android/sdk +ndk.dir=/Users/jwz/Library/Android/sdk/ndk diff --git a/android/project/build.gradle b/android/project/build.gradle deleted file mode 100644 index 613cb908..00000000 --- a/android/project/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. -buildscript { - repositories { - jcenter() - } - dependencies { - classpath 'com.android.tools.build:gradle:2.1.0' - } - - // 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'; -} - -task clean(type: Delete) { - delete('./build') -} - -task distClean(type: Delete) { - delete('./.gradle') -} - -distClean.dependsOn clean diff --git a/android/project/gradle/wrapper/gradle-wrapper.jar b/android/project/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 13372aef..00000000 Binary files a/android/project/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/android/project/gradle/wrapper/gradle-wrapper.properties b/android/project/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 729f41b7..00000000 --- a/android/project/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Sun Jun 12 14:20:28 PDT 2016 -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 diff --git a/android/project/gradlew b/android/project/gradlew deleted file mode 100755 index 9d82f789..00000000 --- a/android/project/gradlew +++ /dev/null @@ -1,160 +0,0 @@ -#!/usr/bin/env bash - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn ( ) { - echo "$*" -} - -die ( ) { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; -esac - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" - -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/android/project/gradlew.bat b/android/project/gradlew.bat deleted file mode 100644 index aec99730..00000000 --- a/android/project/gradlew.bat +++ /dev/null @@ -1,90 +0,0 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/android/project/local.properties b/android/project/local.properties deleted file mode 100644 index 238a21c0..00000000 --- a/android/project/local.properties +++ /dev/null @@ -1,11 +0,0 @@ -# This file is automatically generated by Android Tools. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must *NOT* be checked into Version Control Systems, -# as it contains information specific to your local configuration. - -# location of the SDK. This is only used by Ant -# For customization when using a Version Control System, please read the -# header note. -sdk.dir=/Users/jwz/Library/Android/sdk -ndk.dir=/Users/jwz/Library/Android/sdk/ndk diff --git a/android/project/project.iml b/android/project/project.iml deleted file mode 100644 index de3d86e0..00000000 --- a/android/project/project.iml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/android/project/settings.gradle b/android/project/settings.gradle deleted file mode 100644 index 5fc665bd..00000000 --- a/android/project/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -include ':xscreensaver' diff --git a/android/project/xscreensaver/.idea/compiler.xml b/android/project/xscreensaver/.idea/compiler.xml deleted file mode 100644 index 9a8b7e5c..00000000 --- a/android/project/xscreensaver/.idea/compiler.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - \ No newline at end of file diff --git a/android/project/xscreensaver/.idea/gradle.xml b/android/project/xscreensaver/.idea/gradle.xml deleted file mode 100644 index 19fd5f1b..00000000 --- a/android/project/xscreensaver/.idea/gradle.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/android/project/xscreensaver/.idea/misc.xml b/android/project/xscreensaver/.idea/misc.xml deleted file mode 100644 index cc15a254..00000000 --- a/android/project/xscreensaver/.idea/misc.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/android/project/xscreensaver/.idea/modules.xml b/android/project/xscreensaver/.idea/modules.xml deleted file mode 100644 index f3179276..00000000 --- a/android/project/xscreensaver/.idea/modules.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/android/project/xscreensaver/.idea/workspace.xml b/android/project/xscreensaver/.idea/workspace.xml deleted file mode 100644 index 516bf62b..00000000 --- a/android/project/xscreensaver/.idea/workspace.xml +++ /dev/null @@ -1,1863 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1475536195508 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/android/project/xscreensaver/assets/fonts/OCRAStd.otf b/android/project/xscreensaver/assets/fonts/OCRAStd.otf deleted file mode 120000 index 6a6cb468..00000000 --- a/android/project/xscreensaver/assets/fonts/OCRAStd.otf +++ /dev/null @@ -1 +0,0 @@ -../../../../../OSX/OCRAStd.otf \ No newline at end of file diff --git a/android/project/xscreensaver/assets/fonts/PxPlus_IBM_VGA8.ttf b/android/project/xscreensaver/assets/fonts/PxPlus_IBM_VGA8.ttf deleted file mode 120000 index 7be8e8e8..00000000 --- a/android/project/xscreensaver/assets/fonts/PxPlus_IBM_VGA8.ttf +++ /dev/null @@ -1 +0,0 @@ -../../../../../OSX/PxPlus_IBM_VGA8.ttf \ No newline at end of file diff --git a/android/project/xscreensaver/assets/fonts/YearlReg.ttf b/android/project/xscreensaver/assets/fonts/YearlReg.ttf deleted file mode 120000 index d67181b2..00000000 --- a/android/project/xscreensaver/assets/fonts/YearlReg.ttf +++ /dev/null @@ -1 +0,0 @@ -../../../../../OSX/YearlReg.ttf \ No newline at end of file diff --git a/android/project/xscreensaver/build.gradle b/android/project/xscreensaver/build.gradle deleted file mode 100644 index c0f9f100..00000000 --- a/android/project/xscreensaver/build.gradle +++ /dev/null @@ -1,119 +0,0 @@ -apply plugin: 'android' - -dependencies { - compile fileTree(include: '*.jar', dir: 'libs') -} - -android { - compileSdkVersion 21 - buildToolsVersion "21.1.2" - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_7 - targetCompatibility JavaVersion.VERSION_1_7 - } - sourceSets { - main { - manifest.srcFile 'AndroidManifest.xml' - java.srcDirs = ['src'] - resources.srcDirs = ['src'] - aidl.srcDirs = ['src'] - renderscript.srcDirs = ['src'] - res.srcDirs = ['res'] - assets.srcDirs = ['assets'] - // jniLibs.srcDirs = ['jni'] - jniLibs.srcDirs = ['libs'] - jni.srcDirs = [] // disable automatic ndk-build call - } - - // Move the tests to tests/java, tests/res, etc... - instrumentTest.setRoot('tests') - - // Move the build types to build-types/ - // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... - // This moves them out of them default location under src//... which would - // conflict with src/ being used by the main source set. - // Adding new build types or product flavors should be accompanied - // by a similar customization. - debug.setRoot('build-types/debug') - release.setRoot('build-types/release') - } - project.ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'arm64-v8a': 3, 'mips': 5, 'mips64': 6, 'x86': 8, 'x86_64': 9] - //versionCode digit for each supported ABI, with 64bit>32bit and x86>armeabi-* - - - // put ndk-build in build's path, or replace below with its full path - task ndkBuild(type: Exec) { - Properties properties = new Properties() - properties.load(project.rootProject.file('local.properties').newDataInputStream()) - def ndkDir = properties.getProperty('ndk.dir') - commandLine "$ndkDir/ndk-build", '-C', file('jni').absolutePath, - '-j' + Runtime.getRuntime().availableProcessors().toString() - } - - // generate files early in the process - task perlBuild(type: Exec) { - commandLine 'sh', '-c', - 'cd ../..; ../hacks/check-configs.pl --build-android $ANDROID_HACKS' - } - - task perlClean(type: Delete) { - delete('../../gen') - delete('res/values') - delete('res/xml') - delete('src/org/jwz/xscreensaver/gen') - delete('AndroidManifest.xml') - } - - task objlibClean(type: Delete) { - delete('./build') - delete('./libs') - delete('./obj') - } - - task downloadNeededDrawables(type: Exec) { - commandLine 'sh', '-c', - 'cd ../../ ; \ - for f in $ANDROID_HACKS; do \ - f=`echo "$f" | sed s/rd-bomb/rdbomb/` ; \ - make -s project/xscreensaver/res/drawable/$f.png ; \ - done' - } - preBuild.dependsOn downloadNeededDrawables - - preBuild.dependsOn perlBuild - - task config_h(type: Exec) { - commandLine 'sh', '-c', - 'if [ ! -s ../../../config.h ]; then \ - echo "" >&2 ; echo "" >&2 ; \ - echo "config.h does not exist. cd .. and run ./configure" >&2 ; \ - echo "" >&2 ; \ - exit 1 ; \ - fi' - } - preBuild.dependsOn config_h - - clean.dependsOn perlClean - clean.dependsOn objlibClean - - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" - } - - tasks.withType(JavaCompile) { - compileTask -> compileTask.dependsOn ndkBuild - } - - - defaultConfig { - minSdkVersion 15 - targetSdkVersion 21 - } - productFlavors { - } - buildTypes { - debug { - jniDebuggable true - } - } -} diff --git a/android/project/xscreensaver/build.xml b/android/project/xscreensaver/build.xml deleted file mode 100644 index abda7fe1..00000000 --- a/android/project/xscreensaver/build.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/android/project/xscreensaver/gradle/wrapper/gradle-wrapper.jar b/android/project/xscreensaver/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 13372aef..00000000 Binary files a/android/project/xscreensaver/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/android/project/xscreensaver/gradle/wrapper/gradle-wrapper.properties b/android/project/xscreensaver/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 04e285f3..00000000 --- a/android/project/xscreensaver/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Mon Dec 28 10:00:20 PST 2015 -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip diff --git a/android/project/xscreensaver/gradlew b/android/project/xscreensaver/gradlew deleted file mode 100644 index 9d82f789..00000000 --- a/android/project/xscreensaver/gradlew +++ /dev/null @@ -1,160 +0,0 @@ -#!/usr/bin/env bash - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn ( ) { - echo "$*" -} - -die ( ) { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; -esac - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" - -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/android/project/xscreensaver/gradlew.bat b/android/project/xscreensaver/gradlew.bat deleted file mode 100644 index aec99730..00000000 --- a/android/project/xscreensaver/gradlew.bat +++ /dev/null @@ -1,90 +0,0 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/android/project/xscreensaver/jni/Android.mk b/android/project/xscreensaver/jni/Android.mk deleted file mode 100644 index 9f545400..00000000 --- a/android/project/xscreensaver/jni/Android.mk +++ /dev/null @@ -1,167 +0,0 @@ -LOCAL_PATH := $(call my-dir)/../../../.. - -include $(CLEAR_VARS) - -LOCAL_MODULE := xscreensaver - -# The base framework files: -LOCAL_SRC_FILES := \ - android/screenhack-android.c \ - jwxyz/jwxyz-android.c \ - jwxyz/jwxyz-common.c \ - jwxyz/jwxyz-gl.c \ - jwxyz/jwxyz-timers.c \ - jwxyz/jwzgles.c \ - -# Utilities used by the hacks: -LOCAL_SRC_FILES += \ - hacks/analogtv.c \ - hacks/delaunay.c \ - hacks/fps.c \ - hacks/glx/dropshadow.c \ - hacks/glx/chessmodels.c \ - hacks/glx/fps-gl.c \ - hacks/glx/gltrackball.c \ - hacks/glx/glut_stroke.c \ - hacks/glx/glut_swidth.c \ - hacks/glx/grab-ximage.c \ - hacks/glx/marching.c \ - hacks/glx/normals.c \ - hacks/glx/rotator.c \ - hacks/glx/sphere.c \ - hacks/glx/texfont.c \ - hacks/glx/trackball.c \ - hacks/glx/tube.c \ - hacks/glx/xpm-ximage.c \ - hacks/xlockmore.c \ - hacks/xpm-pixmap.c \ - utils/async_netdb.c \ - utils/aligned_malloc.c \ - utils/colorbars.c \ - utils/colors.c \ - utils/erase.c \ - utils/grabclient.c \ - utils/hsv.c \ - utils/logo.c \ - utils/minixpm.c \ - utils/pow2.c \ - utils/resources.c \ - utils/spline.c \ - utils/textclient-mobile.c \ - utils/thread_util.c \ - utils/usleep.c \ - utils/utf8wc.c \ - utils/xft.c \ - utils/xshm.c \ - utils/yarandom.c \ - -# The source files of all of the currently active hacks: -LOCAL_SRC_FILES += $(shell \ - for f in $$ANDROID_HACKS ; do \ - if [ "$$f" = "companioncube" ]; then f="companion"; fi ; \ - if [ -f "../../../../hacks/$$f.c" ]; then \ - echo "hacks/$$f.c" ; \ - else \ - echo "hacks/glx/$$f.c" ; \ - fi ; \ - done ) - -# Some savers occupy more than one source file: -LOCAL_SRC_FILES += \ - hacks/apple2-main.c \ - hacks/asm6502.c \ - hacks/pacman_ai.c \ - hacks/pacman_level.c \ - hacks/glx/b_draw.c \ - hacks/glx/b_lockglue.c \ - hacks/glx/b_sphere.c \ - hacks/glx/buildlwo.c \ - hacks/glx/companion_quad.c \ - hacks/glx/companion_disc.c \ - hacks/glx/companion_heart.c \ - hacks/glx/cow_face.c \ - hacks/glx/cow_hide.c \ - hacks/glx/cow_hoofs.c \ - hacks/glx/cow_horns.c \ - hacks/glx/cow_tail.c \ - hacks/glx/cow_udder.c \ - hacks/glx/dolphin.c \ - hacks/glx/gllist.c \ - hacks/glx/glschool_alg.c \ - hacks/glx/glschool_gl.c \ - hacks/glx/involute.c \ - hacks/glx/lament_model.c \ - hacks/glx/pipeobjs.c \ - hacks/glx/robot.c \ - hacks/glx/robot-wireframe.c \ - hacks/glx/polyhedra-gl.c \ - hacks/glx/s1_1.c \ - hacks/glx/s1_2.c \ - hacks/glx/s1_3.c \ - hacks/glx/s1_4.c \ - hacks/glx/s1_5.c \ - hacks/glx/s1_6.c \ - hacks/glx/s1_b.c \ - hacks/glx/seccam.c \ - hacks/glx/shark.c \ - hacks/glx/sonar-sim.c \ - hacks/glx/sonar-icmp.c \ - hacks/glx/splitflap_obj.c \ - hacks/glx/sproingiewrap.c \ - hacks/glx/stonerview-move.c \ - hacks/glx/stonerview-osc.c \ - hacks/glx/stonerview-view.c \ - hacks/glx/swim.c \ - hacks/glx/tangram_shapes.c \ - hacks/glx/teapot.c \ - hacks/glx/toast.c \ - hacks/glx/toast2.c \ - hacks/glx/toaster.c \ - hacks/glx/toaster_base.c \ - hacks/glx/toaster_handle.c \ - hacks/glx/toaster_handle2.c \ - hacks/glx/toaster_jet.c \ - hacks/glx/toaster_knob.c \ - hacks/glx/toaster_slots.c \ - hacks/glx/toaster_wing.c \ - hacks/glx/tronbit_idle1.c \ - hacks/glx/tronbit_idle2.c \ - hacks/glx/tronbit_no.c \ - hacks/glx/tronbit_yes.c \ - hacks/glx/tunnel_draw.c \ - hacks/glx/whale.c \ - -LOCAL_LDLIBS := -lGLESv1_CM -ldl -llog -lEGL -latomic - -LOCAL_C_INCLUDES := \ - $(LOCAL_PATH) \ - $(LOCAL_PATH)/android \ - $(LOCAL_PATH)/utils \ - $(LOCAL_PATH)/jwxyz \ - $(LOCAL_PATH)/hacks \ - $(LOCAL_PATH)/hacks/glx \ - -# -Wnested-externs would also be here, but for Android unistd.h. -LOCAL_CFLAGS += \ - -std=c99 \ - -Wall \ - -Wstrict-prototypes \ - -Wmissing-prototypes \ - -DSTANDALONE=1 \ - -DHAVE_ANDROID=1 \ - -DUSE_GL=1 \ - -DHAVE_JWXYZ=1 \ - -DJWXYZ_GL=1 \ - -DHAVE_JWZGLES=1 \ - -DHAVE_XUTF8DRAWSTRING=1 \ - -DHAVE_GLBINDTEXTURE=1 \ - -DGL_VERSION_ES_CM_1_0 \ - -DHAVE_UNISTD_H=1 \ - -DHAVE_INTTYPES_H=1 \ - -DHAVE_UNAME=1 \ - -DHAVE_UTIL_H=1 \ - -DGETTIMEOFDAY_TWO_ARGS=1 \ - -DHAVE_ICMP=1 \ - -DHAVE_PTHREAD=1 \ - -include $(BUILD_SHARED_LIBRARY) diff --git a/android/project/xscreensaver/jni/Application.mk b/android/project/xscreensaver/jni/Application.mk deleted file mode 100644 index a7aa11b6..00000000 --- a/android/project/xscreensaver/jni/Application.mk +++ /dev/null @@ -1,6 +0,0 @@ -# Get this value from android/Makefile -APP_ABI := $(shell echo $$APP_ABI) -APP_STL := stlport_static -APP_PLATFORM := android-14 -# ^^ this can be increased - diff --git a/android/project/xscreensaver/local.properties b/android/project/xscreensaver/local.properties deleted file mode 100644 index d530e0de..00000000 --- a/android/project/xscreensaver/local.properties +++ /dev/null @@ -1,11 +0,0 @@ -## This file is automatically generated by Android Studio. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must *NOT* be checked into Version Control Systems, -# as it contains information specific to your local configuration. -# -# Location of the SDK. This is only used by Gradle. -# For customization when using a Version Control System, please read the -# header note. -#Mon Oct 03 16:09:56 PDT 2016 -sdk.dir=/Users/jwz/Library/Android/sdk diff --git a/android/project/xscreensaver/project.properties b/android/project/xscreensaver/project.properties deleted file mode 100644 index 1e1e7a3c..00000000 --- a/android/project/xscreensaver/project.properties +++ /dev/null @@ -1,15 +0,0 @@ -# This file is automatically generated by Android Tools. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must be checked in Version Control Systems. -# -# To customize properties used by the Ant build system edit -# "ant.properties", and override values to adapt the script to your -# project structure. -# -# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): -#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt - -android.library.reference.1= -# Project target. -target=android-19 diff --git a/android/project/xscreensaver/res/drawable-ldpi/icon.png b/android/project/xscreensaver/res/drawable-ldpi/icon.png deleted file mode 100644 index c4d1934d..00000000 Binary files a/android/project/xscreensaver/res/drawable-ldpi/icon.png and /dev/null differ diff --git a/android/project/xscreensaver/res/drawable-mdpi/icon.png b/android/project/xscreensaver/res/drawable-mdpi/icon.png deleted file mode 100644 index 1e14e4bb..00000000 Binary files a/android/project/xscreensaver/res/drawable-mdpi/icon.png and /dev/null differ diff --git a/android/project/xscreensaver/res/drawable/thumbnail.png b/android/project/xscreensaver/res/drawable/thumbnail.png deleted file mode 100644 index a86c16c7..00000000 Binary files a/android/project/xscreensaver/res/drawable/thumbnail.png and /dev/null differ diff --git a/android/project/xscreensaver/res/layout-land/activity_xscreensaver.xml b/android/project/xscreensaver/res/layout-land/activity_xscreensaver.xml deleted file mode 100644 index 24f33e0b..00000000 --- a/android/project/xscreensaver/res/layout-land/activity_xscreensaver.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - -