Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* MobileDoom (iPhone) CoreSurface code */
- - (void)drawRect:(CGRect)rect{
- if (!initGraphics) {
- int i;
- CFMutableDictionaryRef dict;
- int w = 320;
- int h = 240;
- int pitch = w * 2, allocSize = 2 * w * h;
- char *pixelFormat = "565L";
- pthread_cond_init(&screenUpdateLock, NULL);
- pthread_mutex_init(&screenUpdateMutex, NULL);
- dict = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
- CFDictionarySetValue(dict, kCoreSurfaceBufferGlobal, kCFBooleanTrue);
- CFDictionarySetValue(dict, kCoreSurfaceBufferMemoryRegion, CFSTR("PurpleGFXMem"));
- CFDictionarySetValue(dict, kCoreSurfaceBufferPitch, CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, &pitch));
- CFDictionarySetValue(dict, kCoreSurfaceBufferWidth, CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, &w));
- CFDictionarySetValue(dict, kCoreSurfaceBufferHeight, CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, &h));
- CFDictionarySetValue(dict, kCoreSurfaceBufferPixelFormat, CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, pixelFormat));
- CFDictionarySetValue(dict, kCoreSurfaceBufferAllocSize, CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, &allocSize));
- screenSurface = CoreSurfaceBufferCreate(dict);
- CoreSurfaceBufferLock(screenSurface, 3);
- screenLayer = [[CALayer layer] retain];
- [screenLayer setFrame: self.bounds];
- [screenLayer setContents: screenSurface];
- [screenLayer setOpaque: YES];
- [[self layer] addSublayer: screenLayer];
- initGraphics = YES;
- CoreSurfaceBufferUnlock(screenSurface);
- }
- }
Add Comment
Please, Sign In to add comment