On Fri, Mar 6, 2009 at 1:38 PM, Jonathan Dann <j.p.d...@gmail.com> wrote: > Hi All, > > In my application I want to create an image of a document window as a > preview prior to displaying the window to the user. To obtain the CGImage of > a displayed window is simple enough using the CGWindow API as shown below: > > - (CGImageRef)CGImage; > { > return CGWindowListCreateImage(CGRectNull, > kCGWindowListOptionIncludingWindow, [self windowNumber], > kCGWindowImageDefault); > } > > The problem comes when trying to display the window initially at a far-off > position so I can create the image and the move the window onto the screen. > > Setting the origin of the window to a point with large +ve or -ve ordinates > causes the window to appear at the edge of the main screen, partly shown. > > Has anybody any experience with either a) rendering an entire window into a > bitmap instead of to the screen, or b) moving the window offscreen > completely? If b) is possible, would the above code work for such a window?
If you create the window with the "defer" flag set to NO, then the NSWindow object will get a window server window even when it's not actually ordered onto the screen. I *believe* that you will then be able to capture it without ever displaying it so that it's visible to the user, simply by not sending it an orderFront: or any similar message. As an alternative, use -dataWithPDFInsideRect: to generate an image. This technique tends to be rather slow, though. Mike _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com