Skip to content

Commit f52a391

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 dae7af8 commit f52a391

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
@@ -1765,7 +1765,7 @@ -(CCRenderState *)renderState
17651765
_shaderUniforms = nil;
17661766
} else {
17671767
// Since the node has unique uniforms, it cannot be batched or use the fast path.
1768-
_renderState = [[CCRenderState alloc] initWithBlendMode:_blendMode shader:_shader shaderUniforms:_shaderUniforms copyUniforms:NO];
1768+
_renderState = [CCRenderState renderStateWithBlendMode:_blendMode shader:_shader shaderUniforms:_shaderUniforms copyUniforms:NO];
17691769
}
17701770
}
17711771

cocos2d/CCRenderTexture.m

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

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

6060
return _renderState;

cocos2d/CCRenderer.h

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

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

182183
@end
183184

cocos2d/CCRenderer.m

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

321+
+(instancetype)renderStateWithBlendMode:(CCBlendMode *)blendMode shader:(CCShader *)shader shaderUniforms:(NSDictionary *)shaderUniforms copyUniforms:(BOOL)copyUniforms
322+
{
323+
return [[self alloc] initWithBlendMode:blendMode shader:shader shaderUniforms:shaderUniforms copyUniforms:copyUniforms];
324+
}
325+
321326
-(id)copyWithZone:(NSZone *)zone
322327
{
323328
if(_immutable){

0 commit comments

Comments
 (0)