{"push_id":539333499,"size":117,"distinct_size":40,"ref":"refs/heads/develop","head":"6d1dad8217cd2282a48256ce00b52b643ff0f625","before":"8e93f8e4c3c9badecdd0d9d3bc36d0ef486fd63f","commits":[{"sha":"484462cf82152c16491f240b78a6beb84788c7c9","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"CCEffects - Refactor effects into CCEffect and CCEffectImpl\n\nThis is something we've thought about for a while as a way to enable different\nimplementations as optimizations but I'm doing it now in preparation for adding\nMetal support.\n\nWith this change, the functions, uniforms, varyings, and render passes all move\ninto CCEffectImpl subclass (or really an effect specific subclass of CCEffectImpl)\nwhile the public initializers, convenience constructors, and properties all stay in\nthe CCEffect subclass.\n\nFor now, initializing an effect instance immediately creates the corresponding\neffect implementation instance and the implementation does not change for the\nlifetime of the effect.  This need not always be the case though and it is possible\nto switch the implementation dynamically based on effect property values.\n\nFor example, the bloom effect currently has a conditional in its shader based on the\nluminance threshold value. If the threshold is 0.0 or 1.0 though, we could select\na different implementation where the condition is replaced with the hardcoded\npass or fail path as an optimization.","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/484462cf82152c16491f240b78a6beb84788c7c9"},{"sha":"bd5ec7afc661ddf98730d05ea43c86ce9f3182f9","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"CCEffects - Rework the distance field and lighting effects to CCEffectImpl","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/bd5ec7afc661ddf98730d05ea43c86ce9f3182f9"},{"sha":"df0ea7482136fca50f705e43e92d8236d5b4cb6b","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"CCEffectsTest - Re-enable the distance field tests","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/df0ea7482136fca50f705e43e92d8236d5b4cb6b"},{"sha":"4505b08ccb962d89510d753fc2fd3d060a95943a","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"CCEffects - Simplify the CCEffectImpl initialization flow\n\nPrior to these changes, an effect subclass called one of several initializers on CCEffectImpl of the\nform:\n\ninitWithArg:arg\ninitWithArg:arg blarg:blarg\ninitWithArg:arg blarg:blarg flarg:flarg\n\nWhich all chained to the designated initializer (in this example, initWithArg: blarg: flarg:). The designated\ninitializer then did the following:\n\nif (!arg) [self buildArg];\nif (!blarg) [selfBuildBlarg];\nif (!flarg) [selfBuildFlarg];\n\nAnd subclasses could opt to override these builder methods. Instead of this sub-class calling\nthe super-class and the super-class calling back to the sub-class arrangement, remove all but\nthe designated super-class initializer and require sub-classes to use it. Also remove the overridable\nbuilder methods from the super-class so the sub-class must supply all required initializer arguments\ninstead of not supplying them and instead creating them in the overridden builder methods.\n\nThis makes the super-class initializer call more verbose but it makes the overall flow more\nstraightforward. It also addresses potential initialization order problems with overridden builder\nmethods being called on the sub-class before the sub-class's initializer body could execute.\n\nThere is one remaining issue with the render pass blocks capturing self before self is assigned\nby the call to the super-class initializer but I will fix that next.","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/4505b08ccb962d89510d753fc2fd3d060a95943a"},{"sha":"51111c6961f106f4c26267d6ef774d0e935eac3a","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"CCEffects - Move the uniform translation table to CCEffectRenderPass\n\nThis is so the render pass blocks get the translation table from the render pass instead of\nhaving to capture self when they are created.","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/51111c6961f106f4c26267d6ef774d0e935eac3a"},{"sha":"029032c11919a40be0dcf5efea3cfc5793a8ab5a","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"CCEffects - Stop capturing self in the render pass blocks\n\nBecause the blocks are constructed prior to calling (self = [super init]) we shouldn't\ncapture self in them. Instead, capture the owning interface class weakly.","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/029032c11919a40be0dcf5efea3cfc5793a8ab5a"},{"sha":"e8c5002d91c72fa3f6014c1def141ab2b8af98eb","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"Merge branch 'metal/effects1-RenderPassRefactor' into metal/effects2-EffectImpl","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/e8c5002d91c72fa3f6014c1def141ab2b8af98eb"},{"sha":"7916c5128355e68077c2152c6bda2e880ba67557","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"Merge branch 'metal/effects2-EffectImpl' into metal/effects3-InitializerCleanup\n\nConflicts:\n\tcocos2d/CCEffectLighting.m","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/7916c5128355e68077c2152c6bda2e880ba67557"},{"sha":"359c404dbf3e92795bbbb0e47ae1d7d68728214a","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"CCEffects - Fix initialization of conditioned ivars","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/359c404dbf3e92795bbbb0e47ae1d7d68728214a"},{"sha":"7e729febc642f7c2acb8a5a445e2c8d82d36a552","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"Merge branch 'metalPrep/Step1-RenderPassRefactor' into metalPrep/Step2-EffectImpl","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/7e729febc642f7c2acb8a5a445e2c8d82d36a552"},{"sha":"123d75a586806d6f8be8f2a3eff3511784bc3879","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"CCEffectLighting - Build fix after latest merge from upstream\n\npassInputs.node becomes passInputs.sprite.","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/123d75a586806d6f8be8f2a3eff3511784bc3879"},{"sha":"bb33697ebe1fb69bb60d5b79ba9bfa31b4d8a8ed","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"Merge branch 'metalPrep/Step2-EffectImpl' into metalPrep/Step3-InitializerCleanup\n\nConflicts:\n\tcocos2d/CCEffectLighting.m","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/bb33697ebe1fb69bb60d5b79ba9bfa31b4d8a8ed"},{"sha":"d229ce908c8123a9b17ae09d0e6b4cdf9de14579","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"Merge branch 'metalPrep/Step1-RenderPassRefactor' into metalPrep/Step2-EffectImpl\n\nConflicts:\n\tcocos2d-ui-tests/tests/CCEffectsTest.m\n\tcocos2d/CCEffect.m\n\tcocos2d/CCEffectBloom.m\n\tcocos2d/CCEffectLighting.m\n\tcocos2d/CCEffectStack.m\n\tcocos2d/CCEffect_Private.h","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/d229ce908c8123a9b17ae09d0e6b4cdf9de14579"},{"sha":"1587a735c4409533e71b68e95196971d4dc8b311","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"Merge branch 'metalPrep/Step2-EffectImpl' into metalPrep/Step3-InitializerCleanup\n\nConflicts:\n\tcocos2d/CCEffectBloom.m\n\tcocos2d/CCEffectBlur.m\n\tcocos2d/CCEffectDropShadow.m\n\tcocos2d/CCEffectLighting.m\n\tcocos2d/CCEffectStack.m","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/1587a735c4409533e71b68e95196971d4dc8b311"},{"sha":"46a49578ca688c60f9ccde14d067201af745b74e","author":{"email":"920a7cf6ad9402c4ea4fcf68738dda4b00104f6a@gmail.com","name":"Martin Walsh"},"message":"Mac spritesheet fix #1096\n\nI used phone/phonehd as they look right and are closest to actual\nresolutions used.\nQuickly fixed #1053","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/46a49578ca688c60f9ccde14d067201af745b74e"},{"sha":"837a5626a6d67b90d60c3a16e8d4c724e6671c89","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"CCEffects - Fix bugs in blur, bloom, and drop shadow\n\nWhen I refactored CCEffect into CCEffect and CCEffectImpl, I broke these effects.\nUpdates to their properties were not being properly propagated from the interface\nto the implementation because these effects will create a new implementation\nbased on changes to the blur radius.\n\nThis also moves some duplicated setup code into a shared function in CCEffectUtils.","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/837a5626a6d67b90d60c3a16e8d4c724e6671c89"},{"sha":"01c79390819f028ac9365fdabb46162822086405","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"Merge branch 'develop' into metalPrep/Step2-EffectImpl","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/01c79390819f028ac9365fdabb46162822086405"},{"sha":"3e5cf51019eccbf2c3a4713aded60d564c321b62","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"Merge branch 'metalPrep/Step2-EffectImpl' into metalPrep/Step3-InitializerCleanup","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/3e5cf51019eccbf2c3a4713aded60d564c321b62"},{"sha":"696cefb5e23d8342be055b1dc75f0de5080e655c","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"CCEffectLighting - Limit shininess range to [0..1]\n\nInternally, map this to [1..100] for use by the fragment shader.","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/696cefb5e23d8342be055b1dc75f0de5080e655c"},{"sha":"419484428b40ae5b4fce4ded8ffc76589e422323","author":{"email":"1e490c840c01a771ee18e864e47689488778bbbb@apportable.com","name":"Thayer J Andrews"},"message":"CCEffectLighting - Fix specular contribution of directional lights","distinct":false,"url":"https://api.github.com/repos/rkachowski/cocos2d-swift/commits/419484428b40ae5b4fce4ded8ffc76589e422323"}]}