我在init的层内使用SDWebImage下载图像。
这样的事情:
NSURL *thumbnailURL = playerFacebookID.stringValue;
[[SDWebImageManager sharedManager] downloadWithURL:thumbnailURL
delegate:self
options:0
success:^(UIImage *image) {
CCTexture2D *texture = [[CCTexture2D alloc] initWithCGImage:[[image resizeAndCropToSize:CGSizeMake(kThumbnailSizeInPixels, kThumbnailSizeInPixels)] CGImage] resolutionType:kCCResolutioniPhone];
localPlayerThumbnail.texture = texture;
[texture release];
}
failure:nil];
图像加载正常并且有效,但是在块开始后我得到Open GL错误一段时间,这样的东西:
OpenGL error 0x0506 in -[CCSprite draw] 544
OpenGL error 0x0506 in -[CCSprite draw] 544
OpenGL error 0x0506 in -[CCTextureAtlas drawNumberOfQuads:fromIndex:] 556
OpenGL error 0x0506 in -[CCTextureAtlas drawNumberOfQuads:fromIndex:] 556
OpenGL error 0x0506 in -[CCSprite draw] 544
现在奇怪的是即使我删除了块内的代码,基本上从SDWebImageManager返回块什么都不做,它仍然会给出错误消息。所以它与纹理或任何调整大小函数的加载无关。
目前我唯一能想到的是,SDWebImageManager不知何故正在改变Open GL上下文,或做一些正在中断Cocos2d绘制调用的事情。