sgl
diff src/wsys_ios.m @ 39:e1a27aa24956
fixed broken build
author | John Tsiombikas <nuclear@mutantstargoat.com> |
---|---|
date | Wed, 27 Jun 2012 05:54:57 +0300 |
parents | b3374e30361c |
children | f7de32814f34 |
line diff
1.1 --- a/src/wsys_ios.m Wed Jun 27 05:16:25 2012 +0300 1.2 +++ b/src/wsys_ios.m Wed Jun 27 05:54:57 2012 +0300 1.3 @@ -1,3 +1,10 @@ 1.4 +/* SimplyGL window system module for iOS */ 1.5 +/* mac-framework: -framework UIKit */ 1.6 + 1.7 +#include "config.h" 1.8 + 1.9 +#ifdef USE_WSYS_MODULE_IOS 1.10 + 1.11 #include <assert.h> 1.12 #import <UIKit/UIKit.h> 1.13 #import <QuartzCore/QuartzCore.h> 1.14 @@ -34,6 +41,55 @@ 1.15 1.16 1.17 1.18 +static int init(void); 1.19 +static void shutdown(void); 1.20 + 1.21 +/* video mode switching */ 1.22 +static int set_vidmode(int xsz, int ysz); 1.23 +static int get_vidmode(int *xsz, int *ysz); 1.24 + 1.25 +/* create/destroy windows */ 1.26 +static int create_window(int xsz, int ysz, unsigned int flags); 1.27 +static void close_window(int wid); 1.28 + 1.29 +/* window management */ 1.30 +static int set_active(int wid); 1.31 +static int set_title(const char *str); 1.32 +static void redisplay(void); 1.33 +static void swap_buffers(void); 1.34 + 1.35 +static int get_modifiers(void); 1.36 + 1.37 +/* event handling and friends */ 1.38 +static void set_event(int idx, int enable); 1.39 +static int process_events(void); 1.40 + 1.41 + 1.42 +static struct wsys_module ws = { 1.43 + "ios", 0, 1.44 + init, 1.45 + shutdown, 1.46 + set_vidmode, 1.47 + get_vidmode, 1.48 + create_window, 1.49 + close_window, 1.50 + set_active, 1.51 + set_title, 1.52 + redisplay, 1.53 + swap_buffers, 1.54 + get_modifiers, 1.55 + set_event, 1.56 + process_events, 1.57 + 0 1.58 +}; 1.59 + 1.60 + 1.61 +void sgl_register_ios(void) 1.62 +{ 1.63 + sgl_register_module(&ws); 1.64 +} 1.65 + 1.66 + 1.67 @implementation SGLView 1.68 1.69 @synthesize active; 1.70 @@ -44,14 +100,14 @@ 1.71 return [CAEAGLLayer class]; 1.72 } 1.73 1.74 -//The EAGL view is stored in the nib file. When it's unarchived it's sent -initWithCoder: 1.75 +/*The EAGL view is stored in the nib file. When it's unarchived it's sent -initWithCoder: */ 1.76 -(id)initWithCoder: (NSCoder*)coder 1.77 { 1.78 if((self = [super initWithCoder: coder])) { 1.79 - // Get the layer 1.80 + /* Get the layer */ 1.81 CAEAGLLayer *layer = (CAEAGLLayer*)self.layer; 1.82 1.83 - //self.contentScaleFactor = 2.0; 1.84 + /*self.contentScaleFactor = 2.0; */ 1.85 1.86 layer.opaque = TRUE; 1.87 layer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys: 1.88 @@ -66,7 +122,7 @@ 1.89 return nil; 1.90 } 1.91 1.92 - // initialize fbos etc... 1.93 + /* initialize fbos etc... */ 1.94 glGenFramebuffers(1, &fbo); 1.95 glBindFramebuffer(GL_FRAMEBUFFER, fbo); 1.96 1.97 @@ -85,17 +141,17 @@ 1.98 disp_link = nil; 1.99 anim_timer = nil; 1.100 1.101 - // A system version of 3.1 or greater is required to use CADisplayLink. The NSTimer 1.102 - // class is used as fallback when it isn't available. 1.103 + /* A system version of 3.1 or greater is required to use CADisplayLink. The NSTimer */ 1.104 + /* class is used as fallback when it isn't available. */ 1.105 NSString *req_ver = @"3.1"; 1.106 NSString *cur_ver = [[UIDevice currentDevice] systemVersion]; 1.107 if([cur_ver compare: req_ver options: NSNumericSearch] != NSOrderedAscending) { 1.108 use_disp_link = TRUE; 1.109 } 1.110 1.111 - //self.multipleTouchEnabled = 1; 1.112 + /*self.multipleTouchEnabled = 1; */ 1.113 1.114 - // TODO call user init ? 1.115 + /* TODO call user init ? */ 1.116 } 1.117 1.118 return self; 1.119 @@ -103,14 +159,14 @@ 1.120 1.121 -(void)drawView: (id)sender 1.122 { 1.123 - // TODO call display 1.124 + /* TODO call display */ 1.125 } 1.126 1.127 -(void)layoutSubviews 1.128 { 1.129 - // TODO call reshape 1.130 - // XXX originally call to renderer resizeFromLayer 1.131 - // XXX originally call to [self drawView: nil] 1.132 + /* TODO call reshape */ 1.133 + /* XXX originally call to renderer resizeFromLayer */ 1.134 + /* XXX originally call to [self drawView: nil] */ 1.135 } 1.136 1.137 -(void)setAnimationFrameInterval: (NSInteger)interval 1.138 @@ -139,9 +195,10 @@ 1.139 { 1.140 if(!active) { 1.141 if(use_disp_link) { 1.142 - // CADisplayLink is API new to iPhone SDK 3.1. Compiling against earlier versions will result in a warning, but can be dismissed 1.143 - // if the system version runtime check for CADisplayLink exists in -initWithCoder:. The runtime check ensures this code will 1.144 - // not be called in system versions earlier than 3.1. 1.145 + /* CADisplayLink is API new to iPhone SDK 3.1. Compiling against earlier versions will result in a warning, but can be dismissed 1.146 + * if the system version runtime check for CADisplayLink exists in -initWithCoder:. The runtime check ensures this code will 1.147 + * not be called in system versions earlier than 3.1. 1.148 + */ 1.149 1.150 disp_link = [NSClassFromString(@"CADisplayLink") displayLinkWithTarget: self 1.151 selector: @selector(drawView:)]; 1.152 @@ -174,7 +231,7 @@ 1.153 1.154 -(void)dealloc 1.155 { 1.156 - // XXX originally [renderer release]; 1.157 + /* XXX originally [renderer release]; */ 1.158 [super dealloc]; 1.159 } 1.160 @end 1.161 @@ -212,3 +269,106 @@ 1.162 [super dealloc]; 1.163 } 1.164 @end 1.165 + 1.166 + 1.167 + 1.168 +static int init(void) 1.169 +{ 1.170 + return -1; 1.171 +} 1.172 + 1.173 +static void shutdown(void) 1.174 +{ 1.175 +} 1.176 + 1.177 +/* video mode switching */ 1.178 +static int set_vidmode(int xsz, int ysz) 1.179 +{ 1.180 + return -1; 1.181 +} 1.182 + 1.183 +static int get_vidmode(int *xsz, int *ysz) 1.184 +{ 1.185 + return -1; 1.186 +} 1.187 + 1.188 +/* create/destroy windows */ 1.189 +static int create_window(int xsz, int ysz, unsigned int flags) 1.190 +{ 1.191 + return -1; 1.192 +} 1.193 + 1.194 +static void close_window(int wid) 1.195 +{ 1.196 +} 1.197 + 1.198 +/* window management */ 1.199 +static int set_active(int wid) 1.200 +{ 1.201 + return -1; 1.202 +} 1.203 + 1.204 +static int set_title(const char *str) 1.205 +{ 1.206 + return -1; 1.207 +} 1.208 + 1.209 +static void redisplay(void) 1.210 +{ 1.211 +} 1.212 + 1.213 +static void swap_buffers(void) 1.214 +{ 1.215 +} 1.216 + 1.217 +static int get_modifiers(void) 1.218 +{ 1.219 + return 0; 1.220 +} 1.221 + 1.222 +/* event handling and friends */ 1.223 +static void set_event(int idx, int enable) 1.224 +{ 1.225 +} 1.226 + 1.227 +static int process_events(void) 1.228 +{ 1.229 + return -1; 1.230 +} 1.231 + 1.232 + 1.233 + 1.234 + 1.235 + 1.236 +/* only compile the following if we're building in xcode and we 1.237 + * don't have generated modules.c file 1.238 + */ 1.239 +#ifdef XCODE_BUILD 1.240 +@interface sgl : NSObject 1.241 +/* XXX no need for init yet... */ 1.242 +@end 1.243 + 1.244 +@implementation sgl 1.245 + 1.246 +- (id)init 1.247 +{ 1.248 + self = [super init]; 1.249 + if(self) { 1.250 + /* XXX Initialization code here. */ 1.251 + } 1.252 + return self; 1.253 +} 1.254 + 1.255 +@end 1.256 + 1.257 +void sgl_modules_init(void) 1.258 +{ 1.259 + sgl_register_uikit(); 1.260 +} 1.261 + 1.262 +#endif /* XCODE_BUILD */ 1.263 + 1.264 + 1.265 +#else 1.266 +int sgl_wsys_ios_silence_the_fucking_empty_file_warnings; 1.267 +#endif /* USE_WSYS_MODULE_IOS */