运行 Cocos2d,我偶尔会看到 (0,0) 处出现随机纹理,按比例放大。像这样:
它是模糊的,因为它被放大了。它根本不应该在那里。通常它伴随着“swapBuffers”错误:
com.apple.main-thread Crashed
0 libGPUSupportMercury.dylib gpus_ReturnNotPermittedKillClient
1 libGPUSupportMercury.dylib gpusSubmitDataBuffers
2 IMGSGX543GLDriver SubmitPackets
3 GLEngine gliPresentViewES
4 OpenGLES -[EAGLContext presentRenderbuffer:] + 64
5 MyApp CCGLView.m line 275
-[CCGLView swapBuffers]
6 MyApp CCDirectorIOS.m line 174
-[CCDirectorIOS drawScene]
7 MyApp CCDirectorIOS.m line 532
-[CCDirectorDisplayLink mainLoop:]
8 QuartzCore CA::Display::DisplayLinkItem::dispatch() + 98
9 QuartzCore CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 344
10 IOMobileFramebuffer IOMobileFramebufferVsyncNotifyFunc + 104
11 IOKit IODispatchCalloutFromCFMessage + 248
我没有使用任何自定义着色器或任何东西。只是由 CCSprite spriteWithTexture 创建的常规 CCSprite。有时纹理只会出现在屏幕上并卡在那里。
我知道这很难调试,因为我无法指出导致这种情况的任何代码部分,因为它是随机发生的。但我希望有人以前见过这个奇怪的纹理问题,并且可能能够就一些要检查的事情提供一些建议。