Well i found out what was causing the blank textures, as to it happening I'm not sure if it should..
A bit of background story, i have a large app with a lot of spine assets on each page, i noticed memory use each page kept going up and up despite me doing things correctly. It turned out the texture cache was just getting to big. So i added the following line to clear the cache at key points.
Director::getInstance()->getTextureCache()->removeUnusedTextures();
Previously this would de-allocate any textures that where unused even things like old background images (non spine) etc...
What is happening now is the textures are being removed despite spine currently using them. So appears to me to indicate the textures used in spine are not incrementing the reference count now.
I took your advice and being lazy and a programer i knocked up a quick tool to check all my png's where pre-multiplied alpha or not and batch convert them all to pre-multiplied. Saved me a lot of time 🙂. Now everything looks and works perfect apart from above.
Update: think i found reason... spine-cococs2dx.h needs to be updated as follows...
void _spAtlasPage_createTexture (spAtlasPage* self, const char* path) {
Texture2D* texture = Director::getInstance()->getTextureCache()->addImage(path);
texture->retain();
self->rendererObject = texture;
self->width = texture->getPixelsWide();
self->height = texture->getPixelsHigh();
}
void _spAtlasPage_disposeTexture (spAtlasPage* self) {
((Texture2D*)self->rendererObject)->release();
}