我之前问过像素推送,现在已经设法让噪音出现在屏幕上。这是我的初始化方式:
CGDataProviderRef provider;
bitmap = malloc(320*480*4);
provider = CGDataProviderCreateWithData(NULL, bitmap, 320*480*4, NULL);
CGColorSpaceRef colorSpaceRef;
colorSpaceRef = CGColorSpaceCreateDeviceRGB();
ir = CGImageCreate(
320,
480,
8,
32,
4 * 320,
colorSpaceRef,
kCGImageAlphaNoneSkipLast,
provider,
NULL,
NO,
kCGRenderingIntentDefault
);
这是我渲染每一帧的方式:
for (int i=0; i<320*480*4; i++) {
bitmap[i] = rand()%256;
}
CGRect rect = CGRectMake(0, 0, 320, 480);
CGContextDrawImage(context, rect, ir);
问题是这非常慢,大约 5fps。我认为我发布缓冲区的路径一定是错误的。是否可以在不使用 3D 芯片的情况下以 30fps 的速度更新全屏像素图形?