レイヤーの 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 ドローコールを中断している何かを行っているということです。