I am trying to use a particle system loading the particles for a texture. Since it's just an exercise, it's fine to me to generate the texture "manually". So in this case I just allocate a buffer of data and fill it with red color (RGBA 32 bit format).
But the problem is that when the program starts running, I just see the black screen and there isn't what I am expecting to see (some red particles moving on).
I explain what I am trying to do in the comments:
if( (self=[super init])) { NSAutoreleasePool* pool=[[NSAutoreleasePool alloc]init]; uint32_t mask= 255+pow(255, 4); // This is a 32 bit red pixel NSUInteger size=256; // The texture is 256x256 void* buffer= malloc(size*size*4); // Here I hold the data, it will be all red for(NSUInteger i=0; i<size; i++) { for(NSUInteger j=0; j<size; j++) { memcpy(buffer+j+i*32, &mask, 4); } } NSData* data=[[[NSData alloc]initWithBytesNoCopy: buffer length: size*size*4 freeWhenDone: YES]autorelease]; // I wrap it into NSData to automatically release it later. CCTexture2D* texture=[[[CCTexture2D alloc]initWithData: data.bytes pixelFormat: kCCTexture2DPixelFormat_RGBA8888 pixelsWide: size pixelsHigh: size contentSize: CGSizeMake(size, size)]autorelease]; CCParticleSystemQuad* system=[[[CCParticleSystemQuad alloc]initWithTotalParticles: 100]autorelease]; system.texture= texture; // I set the texture in a way that it should be load to draw particles system.position= ccp(200, 200); system.startSize= 10; system.endSize= 5; system.duration= kCCParticleDurationInfinity; system.life= 1; [self addChild: system]; [pool drain]; } Using an image
I tried to modify the code in a way that I use an UIImage instead of the manually created texture:
if( (self=[super init])) { // Even with glClearColor() it doesn't work //glClearColor(1, 0, 1, 1); NSAutoreleasePool* pool=[[NSAutoreleasePool alloc]init]; NSBundle* bundle=[NSBundle mainBundle]; NSString* path=[bundle pathForResource: @"fire" ofType: @"png"]; UIImage* image=[UIImage imageWithContentsOfFile: path]; CCTexture2D* texture=[[[CCTexture2D alloc]initWithImage: image]autorelease]; CCParticleSystemQuad* system=[[[CCParticleSystemQuad alloc]initWithTotalParticles: 100]autorelease]; system.texture= texture; system.startSize= 10; system.endSize= 10; system.life= 1; system.duration= kCCParticleDurationInfinity; system.position= ccp(200, 200); // Even changing the start/end color it doesn't work //system.startColor= (ccColor4F){1.0,0.0,0.0,1.0}; //system.endColor= (ccColor4F){1.0,0.0,0.0,1.0}; system.emitterMode= kCCParticleModeGravity; system.gravity= ccp(200, 200); system.speed=1; [self addChild: system]; [pool drain]; } The image "fire.png" in the app bundle is:

I also set some other properties but it still doesn't work: black screen.