CCMask и нити


Я использую Жиль класс CCMask Lesire по в моем Kobold2d 2.0.3 (Cocos2d отличается-в iPhone версия V2.0 и OpenGL Эс 2.0) игры, но называть "createMaskForObject:withMask:" я получаю следующую ошибку:

-[CCRenderTexture initWithWidth: height: pixelFormat: depthStencilFormat:]: cocos2d: WARNING. CCRenderTexture работает в собственном потоке. Убедитесь, что в этом потоке используется контекст OpenGL!

Я действительно не понимаю, как работать с threads/opengl, но я надеялся кто-то должен знать, как это исправить.

1 2

1 ответ:

Я вижу это также и для cocos2d 2.0. Я не думаю, что есть что-то, чтобы исправить. Если вы посмотрите на строку 81 CCRenderTexture.m вы увидите:

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

Если это ложь, то выдается предупреждение.

Но, если вы создаете текстуры до запуска игры / приложения, фоновый поток для CVDisplayLink не выглядит так, как будто он еще не создан. [director runningThread] (поток для CVDisplayLink) возвращает nil. Так что утверждение "если" всегда будет ложным.