as all the nice system services that were CGWindowListCreateImage, lockFocus are now deprecated, and drastic restictions are imposed to CALayer/renderInContext:, i just cant figure out how to design a single generic obj C method to capture the content of an NSView , whatever this view is ( subclassed or not, layer backed of not ). As simple as that.
this was the method, which now no longer works :
//=============================================================================
+(NSImage*) viewImageShot:(NSView*)view :(BOOL)bFlip
//=============================================================================
// capture an NSImage of the given view content
// pass window.contentView to capture the whole window,cropping the title bar
{
CGFloat wantedLayer = view.wantsLayer;
BOOL wasHidden= view.hidden;
view.hidden= NO;
view.wantsLayer= YES;
NSImage *requiredImage = [[NSImage alloc] initWithSize:view.bounds.size];
[requiredImage lockFocus];
CGContextRef context= [[NSGraphicsContext currentContext] CGContext];
if(bFlip) FlipContext(context, view.bounds.size.height);
[view.layer renderInContext:context];
[requiredImage unlockFocus];
view.wantsLayer = wantedLayer;
view.hidden = wasHidden;
return requiredImage;
}
Is there here some hope to get some help or direction to acheive this goal ?
thanks to those whow will answer.
Topic:
UI Frameworks
SubTopic:
AppKit