我正在使用层的 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 绘图调用的事情。