2012-06-25 25 views
0

我使用的像素顏色挑選摸出我點擊了其中的OpenGL對象,只要我打開GLKViewDrawableMultisample4X在視圖它出色的作品IOS GLKit:圖靈GLKViewDrawableMultisample4X停止對象採摘

,採摘停止工作?

我試着打開和關閉,當我觸摸屏幕,但只能工作一次。

採摘代碼:

GLKView *glkView = (GLKView*)[self view]; 
    UIImage *snapshot = [glkView snapshot]; 
    GLKVector4 colour = [snapshot pickPixelAtX:xPos Y:yPos]; 

@implementation UIImage (NDBExtensions) 

- (GLKVector4)pickPixelAtX:(NSUInteger)x Y:(NSUInteger)y { 

    CGImageRef cgImage = [self CGImage]; 
    size_t width = CGImageGetWidth(cgImage); 
    size_t height = CGImageGetHeight(cgImage); 

    if ((x < width) && (y < height)) 
    { 
     CGDataProviderRef provider = CGImageGetDataProvider(cgImage); 
     CFDataRef bitmapData = CGDataProviderCopyData(provider); 
     const UInt8* data = CFDataGetBytePtr(bitmapData); 
     size_t offset = ((width * y) + x) * 4; 

     UInt8 b = data[offset+0]; 
     UInt8 g = data[offset+1]; 
     UInt8 r = data[offset+2]; 
     UInt8 a = data[offset+3]; 

     CFRelease(bitmapData); 

     return GLKVector4Make(r, g, b, a); 

    } 
    return GLKVector4Make(0,0,0,0); 
} 

回答