Mercurial > sdl-ios-xcode
changeset 5132:5690ebc772c7
Fixed spacing
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 01 Feb 2011 08:53:22 -0800 |
parents | f2c2f0ecba5f |
children | ec13e48ee0d9 |
files | src/video/uikit/SDL_uikitopenglview.m |
diffstat | 1 files changed, 96 insertions(+), 100 deletions(-) [+] |
line wrap: on
line diff
--- a/src/video/uikit/SDL_uikitopenglview.m Sun Jan 30 13:42:05 2011 -0800 +++ b/src/video/uikit/SDL_uikitopenglview.m Tue Feb 01 08:53:22 2011 -0800 @@ -37,128 +37,124 @@ @synthesize context; + (Class)layerClass { - return [CAEAGLLayer class]; + return [CAEAGLLayer class]; } - (id)initWithFrame:(CGRect)frame \ - retainBacking:(BOOL)retained \ - rBits:(int)rBits \ - gBits:(int)gBits \ - bBits:(int)bBits \ - aBits:(int)aBits \ - depthBits:(int)depthBits \ + retainBacking:(BOOL)retained \ + rBits:(int)rBits \ + gBits:(int)gBits \ + bBits:(int)bBits \ + aBits:(int)aBits \ + depthBits:(int)depthBits \ { - - NSString *colorFormat=nil; - GLuint depthBufferFormat; - BOOL useDepthBuffer; - - if (rBits == 8 && gBits == 8 && bBits == 8) { - /* if user specifically requests rbg888 or some color format higher than 16bpp */ - colorFormat = kEAGLColorFormatRGBA8; - } - else { - /* default case (faster) */ - colorFormat = kEAGLColorFormatRGB565; - } - - if (depthBits == 24) { - useDepthBuffer = YES; - depthBufferFormat = GL_DEPTH_COMPONENT24_OES; - } - else if (depthBits == 0) { - useDepthBuffer = NO; - } - else { - /* default case when depth buffer is not disabled */ - /* - strange, even when we use this, we seem to get a 24 bit depth buffer on iPhone. - perhaps that's the only depth format iPhone actually supports - */ - useDepthBuffer = YES; - depthBufferFormat = GL_DEPTH_COMPONENT16_OES; - } - - if ((self = [super initWithFrame:frame])) { - // Get the layer - CAEAGLLayer *eaglLayer = (CAEAGLLayer *)self.layer; - - eaglLayer.opaque = YES; - eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithBool: retained], kEAGLDrawablePropertyRetainedBacking, colorFormat, kEAGLDrawablePropertyColorFormat, nil]; - - context = [[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES1]; - - if (!context || ![EAGLContext setCurrentContext:context]) { - [self release]; - return nil; - } - - /* create the buffers */ - glGenFramebuffersOES(1, &viewFramebuffer); - glGenRenderbuffersOES(1, &viewRenderbuffer); - - glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFramebuffer); - glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer); - [context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:(CAEAGLLayer*)self.layer]; - glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, viewRenderbuffer); - - glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth); - glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight); - - if (useDepthBuffer) { - glGenRenderbuffersOES(1, &depthRenderbuffer); - glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderbuffer); - glRenderbufferStorageOES(GL_RENDERBUFFER_OES, depthBufferFormat, backingWidth, backingHeight); - glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthRenderbuffer); - } - - if(glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES) != GL_FRAMEBUFFER_COMPLETE_OES) { - return NO; - } - /* end create buffers */ - } - return self; + NSString *colorFormat=nil; + GLuint depthBufferFormat; + BOOL useDepthBuffer; + + if (rBits == 8 && gBits == 8 && bBits == 8) { + /* if user specifically requests rbg888 or some color format higher than 16bpp */ + colorFormat = kEAGLColorFormatRGBA8; + } + else { + /* default case (faster) */ + colorFormat = kEAGLColorFormatRGB565; + } + + if (depthBits == 24) { + useDepthBuffer = YES; + depthBufferFormat = GL_DEPTH_COMPONENT24_OES; + } + else if (depthBits == 0) { + useDepthBuffer = NO; + } + else { + /* default case when depth buffer is not disabled */ + /* + strange, even when we use this, we seem to get a 24 bit depth buffer on iPhone. + perhaps that's the only depth format iPhone actually supports + */ + useDepthBuffer = YES; + depthBufferFormat = GL_DEPTH_COMPONENT16_OES; + } + + if ((self = [super initWithFrame:frame])) { + // Get the layer + CAEAGLLayer *eaglLayer = (CAEAGLLayer *)self.layer; + + eaglLayer.opaque = YES; + eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithBool: retained], kEAGLDrawablePropertyRetainedBacking, colorFormat, kEAGLDrawablePropertyColorFormat, nil]; + + context = [[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES1]; + + if (!context || ![EAGLContext setCurrentContext:context]) { + [self release]; + return nil; + } + + /* create the buffers */ + glGenFramebuffersOES(1, &viewFramebuffer); + glGenRenderbuffersOES(1, &viewRenderbuffer); + + glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFramebuffer); + glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer); + [context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:(CAEAGLLayer*)self.layer]; + glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, viewRenderbuffer); + + glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth); + glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight); + + if (useDepthBuffer) { + glGenRenderbuffersOES(1, &depthRenderbuffer); + glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderbuffer); + glRenderbufferStorageOES(GL_RENDERBUFFER_OES, depthBufferFormat, backingWidth, backingHeight); + glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthRenderbuffer); + } + + if(glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES) != GL_FRAMEBUFFER_COMPLETE_OES) { + return NO; + } + /* end create buffers */ + } + return self; } - (void)setCurrentContext { - [EAGLContext setCurrentContext:context]; + [EAGLContext setCurrentContext:context]; } - (void)swapBuffers { - glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer); - [context presentRenderbuffer:GL_RENDERBUFFER_OES]; + glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer); + [context presentRenderbuffer:GL_RENDERBUFFER_OES]; } - (void)layoutSubviews { - [EAGLContext setCurrentContext:context]; + [EAGLContext setCurrentContext:context]; } - (void)destroyFramebuffer { - - glDeleteFramebuffersOES(1, &viewFramebuffer); - viewFramebuffer = 0; - glDeleteRenderbuffersOES(1, &viewRenderbuffer); - viewRenderbuffer = 0; - - if (depthRenderbuffer) { - glDeleteRenderbuffersOES(1, &depthRenderbuffer); - depthRenderbuffer = 0; - } + glDeleteFramebuffersOES(1, &viewFramebuffer); + viewFramebuffer = 0; + glDeleteRenderbuffersOES(1, &viewRenderbuffer); + viewRenderbuffer = 0; + + if (depthRenderbuffer) { + glDeleteRenderbuffersOES(1, &depthRenderbuffer); + depthRenderbuffer = 0; + } } - (void)dealloc { - - [self destroyFramebuffer]; - if ([EAGLContext currentContext] == context) { - [EAGLContext setCurrentContext:nil]; - } - [context release]; - [super dealloc]; - + [self destroyFramebuffer]; + if ([EAGLContext currentContext] == context) { + [EAGLContext setCurrentContext:nil]; + } + [context release]; + [super dealloc]; } @end