Skip to content

Commit 3993fbc

Browse files
committed
Don’t create cached renderstates for CCLabelTTF.
1 parent 5264fbe commit 3993fbc

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

cocos2d/CCLabelTTF.m

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,16 @@ - (void) setTextureDirty
329329
_isTextureDirty = YES;
330330
}
331331

332+
-(CCRenderState *)renderState
333+
{
334+
if(_renderState == nil){
335+
// Create an uncached renderstate so the texture can be released before the renderstate cache is flushed.
336+
_renderState = [[CCRenderState alloc] initWithBlendMode:_blendMode shader:_shader shaderUniforms:self.shaderUniforms];
337+
}
338+
339+
return _renderState;
340+
}
341+
332342

333343
#pragma mark -
334344
#pragma mark Render Font Mac & iOS 6

cocos2d/CCRenderTexture.m

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,8 @@ @implementation CCRenderTextureSprite
4949
-(CCRenderState *)renderState
5050
{
5151
if(_renderState == nil){
52-
if(_shaderUniforms.count > 1){
53-
_renderState = [[CCRenderState alloc] initWithBlendMode:_blendMode shader:_shader shaderUniforms:_shaderUniforms];
54-
} else {
55-
// Creating a regular, cached render state here would be mildly bad.
56-
// The state would prevent the render texture from being released until the cache is flushed.
57-
NSDictionary *uniforms = @{CCShaderUniformMainTexture:(_texture ?: [CCTexture none])};
58-
_renderState = [[CCRenderState alloc] initWithBlendMode:_blendMode shader:_shader shaderUniforms:uniforms];
59-
}
52+
// Create an uncached renderstate so the texture can be released before the renderstate cache is flushed.
53+
_renderState = [[CCRenderState alloc] initWithBlendMode:_blendMode shader:_shader shaderUniforms:self.shaderUniforms];
6054
}
6155

6256
return _renderState;

0 commit comments

Comments
 (0)