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 ответ:
Я вижу это также и для cocos2d 2.0. Я не думаю, что есть что-то, чтобы исправить. Если вы посмотрите на строку 81 CCRenderTexture.m вы увидите:
if( [director runningThread] != [NSThread currentThread] )
Если это ложь, то выдается предупреждение.
Но, если вы создаете текстуры до запуска игры / приложения, фоновый поток для CVDisplayLink не выглядит так, как будто он еще не создан. [director runningThread] (поток для CVDisplayLink) возвращает nil. Так что утверждение "если" всегда будет ложным.