нарисовать строку в буфере CGContext и выбрать данные текстуры, но данные никогда не менялись, почему? - PullRequest
2 голосов
/ 27 марта 2012

В cocos2d я не могу использовать какой-то метод, например UIGraphicsGetCurrentContext, поэтому я делаю это следующим образом:

memset(textData, 0, sW*sH*4);

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(textData, sW, sH, 8, sW*4, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGColorSpaceRelease( colorSpace );

CGContextSetRGBFillColor(context, 1, 1, 1, 1);
CGContextTranslateCTM(context, 0.0f, sH);
CGContextScaleCTM(context, 1.0f, -1.0f);

UIGraphicsPushContext(context);

NSString* sstr = [NSString stringWithCString:(const char*)str encoding:NSUnicodeStringEncoding];//its right
UIFont* font = [UIFont fontWithName:@"arial" size:12];

[sstr drawInRect:CGRectMake(x, sH-y,100,100) withFont:font lineBreakMode:UILineBreakModeWordWrap alignment:UITextAlignmentCenter];

UIGraphicsPopContext();

CGContextRelease(context);

Когда я отлаживаю и точка останова на UIGraphicsPopContext, содержимое textData всегда ноль в памяти, кто-нибудь, помогите мне.context и textData не ноль.

...