cocos2d-iphone - CCMask 和线程

标签 cocos2d-iphone nsthread kobold2d

我正在使用Gilles Lesire's CCMask class在我的 Kobold2d 2.0.3(cocos2d-iphone v2.0 和 OpenGL ES 2.0)游戏中,但调用“createMaskForObject:withMask:”时出现以下错误:

-[CCRenderTexture initWithWidth:height:pixelFormat:depthStencilFormat:]:cocos2d:警告。 CCRenderTexture 在其自己的线程上运行。确保该线程正在使用 OpenGL 上下文!

我不太明白如何使用线程/opengl,但我希望有人知道如何解决这个问题。

最佳答案

我在 cocos2d 2.0 中也看到了这一点。我认为没有什么可以解决的。如果您查看 CCRenderTexture.m 的第 81 行,您将看到:

if( [director runningThread] != [NSThread currentThread] )

如果这是错误的,则会发出警告。

但是,如果您在游戏/应用程序运行之前创建纹理,则 CVDisplayLink 的后台线程看起来尚未创建。 [director runningThread](CVDisplayLink 的线程)返回 nil。所以“if”语句永远是假的。

关于cocos2d-iphone - CCMask 和线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12085408/

相关文章:

ios - 如何在 [nsthread detachNewThreadSelector] 中使用 block

iphone - glReadPixels 和 GL_ALPHA

c++ - 点击不起作用

objective-c - NSThread 在失去焦点时停止

ios - +(id) 场景在 replaceScene 之后没有被调用

xcode - XCode找不到AppKit

ios - 运行 CCGrid3DAction 时视网膜图像质量差

cocos2d-iphone - Cocos2d 只调度一次

objective-c - NSEvent charactersIgnoringModifiers随机抛出 "TSMProcessRawKeyCode failed"异常

ios - 在模拟等待时关闭键盘