From c7ebb971ff48c764aa5db4daa78d1c92dbe3e9b6 Mon Sep 17 00:00:00 2001 From: Hari Karam Singh Date: Wed, 31 Jul 2013 10:01:10 +0100 Subject: [PATCH 1/2] Fixes headers --- .../UserInterfaceState.xcuserstate | Bin 0 -> 20155 bytes .../xcschemes/CeedGL Mac Framework.xcscheme | 59 ++++++++++++ .../xcschemes/CeedGL.ios.xcscheme | 59 ++++++++++++ .../xcschemes/CeedGL.mac.xcscheme | 59 ++++++++++++ .../xcschemes/CeedGLDemo.ios.xcscheme | 86 ++++++++++++++++++ .../xcschemes/CeedGLDemo.mac.xcscheme | 86 ++++++++++++++++++ .../xcschemes/xcschememanagement.plist | 62 +++++++++++++ Sources/CeedGL.h | 22 ++--- Sources/GLBuffer.h | 4 +- Sources/GLBuffer.m | 1 + Sources/GLDrawCommand.h | 2 +- Sources/GLDrawCommand.m | 1 + Sources/GLFramebuffer.h | 2 +- Sources/GLFramebuffer.m | 1 + Sources/GLObject.h | 2 +- Sources/GLObject.m | 2 +- Sources/GLProgram.h | 2 +- Sources/GLProgram.m | 1 + Sources/GLRenderbuffer.h | 3 +- Sources/GLRenderbuffer.m | 1 + Sources/GLShader.h | 2 +- Sources/GLShader.m | 1 + Sources/GLTexture.h | 3 +- Sources/GLTexture.m | 2 +- Sources/GLValue.h | 2 +- Sources/GLValue.m | 1 + 26 files changed, 443 insertions(+), 23 deletions(-) create mode 100644 CeedGL.xcodeproj/project.xcworkspace/xcuserdata/Club15CC.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/CeedGL Mac Framework.xcscheme create mode 100644 CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/CeedGL.ios.xcscheme create mode 100644 CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/CeedGL.mac.xcscheme create mode 100644 CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/CeedGLDemo.ios.xcscheme create mode 100644 CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/CeedGLDemo.mac.xcscheme create mode 100644 CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/CeedGL.xcodeproj/project.xcworkspace/xcuserdata/Club15CC.xcuserdatad/UserInterfaceState.xcuserstate b/CeedGL.xcodeproj/project.xcworkspace/xcuserdata/Club15CC.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..8c600c22a14acb9dc45eb943e9b89e7501c85f59 GIT binary patch literal 20155 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 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/CeedGL.ios.xcscheme b/CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/CeedGL.ios.xcscheme new file mode 100644 index 0000000..95d08d0 --- /dev/null +++ b/CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/CeedGL.ios.xcscheme @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/CeedGL.mac.xcscheme b/CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/CeedGL.mac.xcscheme new file mode 100644 index 0000000..a8cf997 --- /dev/null +++ b/CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/CeedGL.mac.xcscheme @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/CeedGLDemo.ios.xcscheme b/CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/CeedGLDemo.ios.xcscheme new file mode 100644 index 0000000..2b4e1b8 --- /dev/null +++ b/CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/CeedGLDemo.ios.xcscheme @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/CeedGLDemo.mac.xcscheme b/CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/CeedGLDemo.mac.xcscheme new file mode 100644 index 0000000..47d57a5 --- /dev/null +++ b/CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/CeedGLDemo.mac.xcscheme @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/xcschememanagement.plist b/CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..01f5da4 --- /dev/null +++ b/CeedGL.xcodeproj/xcuserdata/Club15CC.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,62 @@ + + + + + SchemeUserState + + CeedGL Mac Framework.xcscheme + + orderHint + 0 + + CeedGL.ios.xcscheme + + orderHint + 2 + + CeedGL.mac.xcscheme + + orderHint + 1 + + CeedGLDemo.ios.xcscheme + + orderHint + 4 + + CeedGLDemo.mac.xcscheme + + orderHint + 3 + + + SuppressBuildableAutocreation + + 050DB7DC148909E300812267 + + primary + + + 050DB80614890EE300812267 + + primary + + + 050DB82D1489145800812267 + + primary + + + 052BD756127ECB10005A3AE9 + + primary + + + 05BE5870128553040054FD91 + + primary + + + + + diff --git a/Sources/CeedGL.h b/Sources/CeedGL.h index 84e67f2..fae2c67 100644 --- a/Sources/CeedGL.h +++ b/Sources/CeedGL.h @@ -1,12 +1,12 @@ -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import \ No newline at end of file +#import "GLPlatform.h" +#import "GLDebug.h" +#import "GLValue.h" +#import "GLBuffer.h" +#import "GLBufferDataSource.h" +#import "GLTexture.h" +#import "GLFramebuffer.h" +#import "GLRenderbuffer.h" +#import "GLShader.h" +#import "GLProgram.h" +#import "GLDrawCommand.h" \ No newline at end of file diff --git a/Sources/GLBuffer.h b/Sources/GLBuffer.h index d417b43..314b86b 100644 --- a/Sources/GLBuffer.h +++ b/Sources/GLBuffer.h @@ -7,8 +7,8 @@ // #import -#import -#import +#import "GLObject.h" +#import "GLBufferDataSource.h" @interface GLBuffer : GLObject { GLenum mUsage; diff --git a/Sources/GLBuffer.m b/Sources/GLBuffer.m index e15a72e..526868d 100644 --- a/Sources/GLBuffer.m +++ b/Sources/GLBuffer.m @@ -7,6 +7,7 @@ // #import "GLBuffer.h" +#import "GLDebug.h" @implementation GLBuffer diff --git a/Sources/GLDrawCommand.h b/Sources/GLDrawCommand.h index 8d48b48..a2636b6 100644 --- a/Sources/GLDrawCommand.h +++ b/Sources/GLDrawCommand.h @@ -7,7 +7,7 @@ // #import -#import +#import "GLPlatform.h" @class GLBuffer, GLProgram, GLTexture, GLValue; diff --git a/Sources/GLDrawCommand.m b/Sources/GLDrawCommand.m index 22bb882..4fe3f38 100644 --- a/Sources/GLDrawCommand.m +++ b/Sources/GLDrawCommand.m @@ -11,6 +11,7 @@ #import "GLValue.h" #import "GLBuffer.h" #import "GLTexture.h" +#import "GLDebug.h" @implementation GLDrawCommand diff --git a/Sources/GLFramebuffer.h b/Sources/GLFramebuffer.h index e2ae2f0..6d7e96b 100644 --- a/Sources/GLFramebuffer.h +++ b/Sources/GLFramebuffer.h @@ -7,7 +7,7 @@ // #import -#import +#import "GLObject.h" @class GLTexture, GLRenderbuffer; diff --git a/Sources/GLFramebuffer.m b/Sources/GLFramebuffer.m index 4605d0e..e2f8719 100644 --- a/Sources/GLFramebuffer.m +++ b/Sources/GLFramebuffer.m @@ -9,6 +9,7 @@ #import "GLFramebuffer.h" #import "GLRenderbuffer.h" #import "GLTexture.h" +#import "GLDebug.h" @implementation GLFramebuffer diff --git a/Sources/GLObject.h b/Sources/GLObject.h index 9dd86ab..605f979 100644 --- a/Sources/GLObject.h +++ b/Sources/GLObject.h @@ -7,7 +7,7 @@ // #import -#import +#import "GLPlatform.h" // Handle based OpenGL object diff --git a/Sources/GLObject.m b/Sources/GLObject.m index 6047263..ea75248 100644 --- a/Sources/GLObject.m +++ b/Sources/GLObject.m @@ -7,7 +7,7 @@ // #import "GLObject.h" - +#import "GLDebug.h" @implementation GLObject @synthesize handle = mHandle; diff --git a/Sources/GLProgram.h b/Sources/GLProgram.h index 31145c4..e0cb180 100644 --- a/Sources/GLProgram.h +++ b/Sources/GLProgram.h @@ -7,7 +7,7 @@ // #import -#import +#import "GLObject.h" @class GLShader; diff --git a/Sources/GLProgram.m b/Sources/GLProgram.m index 966cbe9..d18e586 100644 --- a/Sources/GLProgram.m +++ b/Sources/GLProgram.m @@ -8,6 +8,7 @@ #import "GLProgram.h" #import "GLShader.h" +#import "GLDebug.h" @implementation GLProgram diff --git a/Sources/GLRenderbuffer.h b/Sources/GLRenderbuffer.h index daafde6..918d32b 100644 --- a/Sources/GLRenderbuffer.h +++ b/Sources/GLRenderbuffer.h @@ -7,7 +7,8 @@ // #import -#import +#import "GLObject.h" +#import @interface GLRenderbuffer : GLObject { diff --git a/Sources/GLRenderbuffer.m b/Sources/GLRenderbuffer.m index e47730d..06b1f68 100644 --- a/Sources/GLRenderbuffer.m +++ b/Sources/GLRenderbuffer.m @@ -7,6 +7,7 @@ // #import "GLRenderbuffer.h" +#import "GLDebug.h" @implementation GLRenderbuffer diff --git a/Sources/GLShader.h b/Sources/GLShader.h index 7793ce9..9bbaea6 100644 --- a/Sources/GLShader.h +++ b/Sources/GLShader.h @@ -7,7 +7,7 @@ // #import -#import +#import "GLObject.h" #define GL_STRINGIFY(A) [NSString stringWithCString:#A encoding:NSUTF8StringEncoding] diff --git a/Sources/GLShader.m b/Sources/GLShader.m index 0d37927..d029294 100644 --- a/Sources/GLShader.m +++ b/Sources/GLShader.m @@ -7,6 +7,7 @@ // #import "GLShader.h" +#import "GLDebug.h" @implementation GLShader diff --git a/Sources/GLTexture.h b/Sources/GLTexture.h index 1302e4f..23dc1b7 100644 --- a/Sources/GLTexture.h +++ b/Sources/GLTexture.h @@ -7,7 +7,8 @@ // #import -#import +#import "GLObject.h" +#import @interface GLTexture : GLObject { GLsizei mWidth, mHeight; diff --git a/Sources/GLTexture.m b/Sources/GLTexture.m index 7c34ca3..2cdd626 100644 --- a/Sources/GLTexture.m +++ b/Sources/GLTexture.m @@ -7,7 +7,7 @@ // #import "GLTexture.h" - +#import "GLDebug.h" @implementation GLTexture diff --git a/Sources/GLValue.h b/Sources/GLValue.h index d916de6..e673701 100644 --- a/Sources/GLValue.h +++ b/Sources/GLValue.h @@ -7,7 +7,7 @@ // #import -#import +#import "GLPlatform.h" @interface GLValue : NSObject { GLsizei mSize; // 1, 2, 3, or 4; diff --git a/Sources/GLValue.m b/Sources/GLValue.m index e3ebe18..2daa426 100644 --- a/Sources/GLValue.m +++ b/Sources/GLValue.m @@ -7,6 +7,7 @@ // #import "GLValue.h" +#import "GLDebug.h" #define mINT_ARRAY ((GLint*)mValues) From 6bdb56bed80d8baaba47dad2bb496535db6cbef9 Mon Sep 17 00:00:00 2001 From: Hari Karam Singh Date: Thu, 1 Aug 2013 17:25:28 +0100 Subject: [PATCH 2/2] Adds change checking for Uniforms and Attributes to prevent redundant calls --- Sources/GLDrawCommand.h | 2 ++ Sources/GLDrawCommand.m | 28 +++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/Sources/GLDrawCommand.h b/Sources/GLDrawCommand.h index a2636b6..3e05b32 100644 --- a/Sources/GLDrawCommand.h +++ b/Sources/GLDrawCommand.h @@ -21,6 +21,8 @@ NSMutableDictionary *mTextures; NSMutableDictionary *mUniforms; NSMutableDictionary *mAttributes; + NSMutableDictionary *mUniformsDirtyState; + NSMutableDictionary *mAttributesDirtyState; } @property (readwrite, nonatomic) GLint firstElement, elementCount; diff --git a/Sources/GLDrawCommand.m b/Sources/GLDrawCommand.m index 4fe3f38..b436719 100644 --- a/Sources/GLDrawCommand.m +++ b/Sources/GLDrawCommand.m @@ -30,6 +30,8 @@ - (id)init { mTextures = [NSMutableDictionary new]; mAttributes = [NSMutableDictionary new]; mUniforms = [NSMutableDictionary new]; + mUniformsDirtyState = [NSMutableDictionary new]; + mAttributesDirtyState = [NSMutableDictionary new]; } return self; @@ -76,6 +78,9 @@ - (void)removeTextureForUnit:(GLenum)unit - (void)setUniform:(GLValue*)value forName:(NSString*)name { [mUniforms setObject:value forKey:name]; + + // Indicate that the uniform needs updating in the program + [mUniformsDirtyState setObject:@YES forKey:name]; } - (GLValue*)uniformForName:(NSString*)name { @@ -84,6 +89,7 @@ - (GLValue*)uniformForName:(NSString*)name - (void)removeUniformForName:(NSString*)name { [mUniforms removeObjectForKey:name]; + [mUniformsDirtyState removeObjectForKey:name]; } #pragma mark Attributes @@ -92,6 +98,9 @@ - (void)setAttribute:(GLValue*)value forName:(NSString*)name id binder = [NSDictionary dictionaryWithObjectsAndKeys:value, @"value", @"GLValue",@"kind", nil]; [mAttributes setObject:binder forKey:name]; + + // Indicate that the attribute needs updating in the program + [mAttributesDirtyState setObject:@YES forKey:name]; } - (void)setAttributeBuffer:(GLBuffer*)buffer size:(GLint)size type:(GLenum)type normalized:(GLboolean)norm stride:(GLsizei)stride offset:(GLsizeiptr)off forName:(NSString*)name { @@ -105,6 +114,7 @@ - (void)setAttributeBuffer:(GLBuffer*)buffer size:(GLint)size type:(GLenum)type nil]; [mAttributes setObject:binder forKey:name]; + [mAttributesDirtyState setObject:@YES forKey:name]; } - (id)attributeForName:(NSString*)name { @@ -116,6 +126,7 @@ - (id)attributeForName:(NSString*)name - (void)removeAttributeForName:(NSString*)name { [mAttributes removeObjectForKey:name]; + [mAttributesDirtyState removeObjectForKey:name]; } @@ -132,6 +143,11 @@ - (void)draw [mUniforms enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { *stop = NO; + // If not dirty then skip + if (![[mUniformsDirtyState objectForKey:key] boolValue]) { + return; + } + if([prog hasUniformNamed:key]) { //GLLog(@"Setting value %@ to uniform %@", obj, key); @@ -140,7 +156,8 @@ - (void)draw else { GLLogWarning(@"Trying to set non existent uniform (%@), ignoring...", key); } - + + [mUniformsDirtyState setObject:@NO forKey:key]; }]; @@ -148,6 +165,12 @@ - (void)draw [mAttributes enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { *stop = NO; + + // If not dirty then skip + if (![[mAttributesDirtyState objectForKey:key] boolValue]) { + return; + } + if([prog hasAttributeNamed:key]) { GLint loc = [prog attributeLocationForName:key]; @@ -177,6 +200,9 @@ - (void)draw else { //GLLog(@"Trying to set non existent attribute (%@), ignoring...", key); } + + // Indicate that it's clean/updated + [mAttributesDirtyState setObject:@NO forKey:key]; }]; [mTextures enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {