From http://www.jwz.org/xscreensaver/xscreensaver-5.27.tar.gz
[xscreensaver] / OSX / XScreenSaverView.h
index 7365b9d82080e0566111c4ccdfb95f502215aaf8..5ca2fb8b49137106df4f0d84cc247b0159b94381 100644 (file)
@@ -1,13 +1,13 @@
-/* xscreensaver, Copyright (c) 2006-2012 Jamie Zawinski <jwz@jwz.org>
-*
-* Permission to use, copy, modify, distribute, and sell this software and its
-* documentation for any purpose is hereby granted without fee, provided that
-* the above copyright notice appear in all copies and that both that
-* copyright notice and this permission notice appear in supporting
-* documentation.  No representations are made about the suitability of this
-* software for any purpose.  It is provided "as is" without express or 
-* implied warranty.
-*/
+/* xscreensaver, Copyright (c) 2006-2013 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation.  No representations are made about the suitability of this
+ * software for any purpose.  It is provided "as is" without express or 
+ * implied warranty.
+ */
 
 /* This is a subclass of Apple's ScreenSaverView that knows how to run
    xscreensaver programs without X11 via the dark magic of the "jwxyz"
 #endif // USE_IPHONE
 
 
+#define USE_BACKBUFFER  // must be in sync with jwxyz.m
+
+// If USE_BACKBUFFER is enabled, one of these must also be enabled.
+// #define BACKBUFFER_CGCONTEXT   // Not supported by iOS.
+#define BACKBUFFER_CALAYER
+
 @interface XScreenSaverView : ScreenSaverView
 # ifdef USE_IPHONE
                              <UIAlertViewDelegate>
   CGPoint tap_point;
   BOOL screenLocked;
 
+  CGSize initial_bounds;
+       
   GLfloat rotation_ratio;      // ratio thru rotation anim, or -1
   NSSize rot_from, rot_to;     // start size rect, end size rect
   GLfloat angle_from, angle_to;        // start angle, end angle
   double rot_start_time;
+  BOOL ignore_rotation_p;
 
   NSSize rot_current_size;
   GLfloat rot_current_angle;
 
-  CGContextRef backbuffer;
-  NSSize backbuffer_size;
-
   NSTimer *crash_timer;
 
+  NSDictionary *function_tables;
+
 # endif // USE_IPHONE
 
+# ifdef USE_BACKBUFFER
+  CGContextRef backbuffer;
+  CGSize backbuffer_size;
+  CGColorSpaceRef colorspace;
+
+#  ifdef BACKBUFFER_CGCONTEXT
+  CGContextRef window_ctx;
+#  endif
+
+# endif // USE_BACKBUFFER
 }
 
 - (id)initWithFrame:(NSRect)frame saverName:(NSString*)n isPreview:(BOOL)p;
 - (void) prepareContext;
 - (void) resizeContext;
 - (NSUserDefaultsController *) userDefaultsController;
++ (NSString *) decompressXML:(NSData *)xml;
 
 #ifdef USE_IPHONE
 - (void)didRotate:(NSNotification *)notification;
 - (void)setScreenLocked:(BOOL)locked;
-- (void)createBackbuffer;
 #endif // USE_IPHONE
 
+#ifdef USE_BACKBUFFER
+- (void)initLayer;
+- (void)createBackbuffer;
+#endif // USE_BACKBUFFER
+
 @end