Skip to content

Commit 837404b

Browse files
committed
Changing the “copyUniforms” initializer of CCRenderState to an autoreleasing class method. This will save some headaches in 3.3. This method was never in a public release.
1 parent f31852a commit 837404b

File tree

4 files changed

+12
-6
lines changed

4 files changed

+12
-6
lines changed

cocos2d/CCNode.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1719,7 +1719,7 @@ -(CCRenderState *)renderState
17191719
_shaderUniforms = nil;
17201720
} else {
17211721
// Since the node has unique uniforms, it cannot be batched or use the fast path.
1722-
_renderState = [[CCRenderState alloc] initWithBlendMode:_blendMode shader:_shader shaderUniforms:_shaderUniforms copyUniforms:NO];
1722+
_renderState = [CCRenderState renderStateWithBlendMode:_blendMode shader:_shader shaderUniforms:_shaderUniforms copyUniforms:NO];
17231723
}
17241724
}
17251725

cocos2d/CCRenderTexture.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ -(CCRenderState *)renderState
6363
BOOL copyUniforms = self.hasDefaultShaderUniforms;
6464

6565
// Create an uncached renderstate so the texture can be released before the renderstate cache is flushed.
66-
_renderState = [[CCRenderState alloc] initWithBlendMode:_blendMode shader:_shader shaderUniforms:self.shaderUniforms copyUniforms:copyUniforms];
66+
_renderState = [CCRenderState renderStateWithBlendMode:_blendMode shader:_shader shaderUniforms:self.shaderUniforms copyUniforms:copyUniforms];
6767
}
6868

6969
return _renderState;

cocos2d/CCRenderer.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,12 +173,13 @@ extern const NSString *CCBlendEquationAlpha;
173173
/// Create a cached blending mode for a given blending mode, shader and main texture.
174174
+(instancetype)renderStateWithBlendMode:(CCBlendMode *)blendMode shader:(CCShader *)shader mainTexture:(CCTexture *)mainTexture;
175175

176-
/// Create an uncached blending mode for a given blending mode, shader and set of uncopied uniform values.
177-
-(instancetype)initWithBlendMode:(CCBlendMode *)blendMode shader:(CCShader *)shader shaderUniforms:(NSDictionary *)shaderUniforms __deprecated;
178-
179176
/// Create an uncached blending mode for a given blending mode, shader and set of uniform values.
180177
/// Allowing the uniform dictionary to be copied allows the render state to be immutable and used more optimally.
181-
-(instancetype)initWithBlendMode:(CCBlendMode *)blendMode shader:(CCShader *)shader shaderUniforms:(NSDictionary *)shaderUniforms copyUniforms:(BOOL)copyUniforms;
178+
+(instancetype)renderStateWithBlendMode:(CCBlendMode *)blendMode shader:(CCShader *)shader shaderUniforms:(NSDictionary *)shaderUniforms copyUniforms:(BOOL)copyUniforms;
179+
180+
/// Initialize an uncached blending mode for a given blending mode, shader and set of uncopied uniform values.
181+
/// Use [CCRenderState renderStateWithBlendMode:blendMode shader:shader shaderUniforms:shaderUniforms copyUniforms:NO] instead.
182+
-(instancetype)initWithBlendMode:(CCBlendMode *)blendMode shader:(CCShader *)shader shaderUniforms:(NSDictionary *)shaderUniforms __deprecated;
182183

183184
@end
184185

cocos2d/CCRenderer.m

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,11 @@ +(instancetype)renderStateWithBlendMode:(CCBlendMode *)blendMode shader:(CCShade
302302
return [CCRENDERSTATE_CACHE objectForKey:renderState];
303303
}
304304

305+
+(instancetype)renderStateWithBlendMode:(CCBlendMode *)blendMode shader:(CCShader *)shader shaderUniforms:(NSDictionary *)shaderUniforms copyUniforms:(BOOL)copyUniforms
306+
{
307+
return [[self alloc] initWithBlendMode:blendMode shader:shader shaderUniforms:shaderUniforms copyUniforms:copyUniforms];
308+
}
309+
305310
-(id)copyWithZone:(NSZone *)zone
306311
{
307312
if(_immutable){

0 commit comments

Comments
 (0)