If you're specifically trying to mimic the screenshot-capabilties in Mac OS X itself, you can use the `screencapture` command line utility, coupled with an NSTask object in Cocoa. This is what I use in one of my apps, and what Papaya does. -- Steven Degutis http://www.thoughtfultree.com/ http://www.degutis.org/
On Fri, Sep 4, 2009 at 12:25 PM, Development <developm...@fornextsoft.com>wrote: > I am attempting to capture part of the user screen, for instance a window. > I'm using the OpenGL screen capture example code to build on so the > following is my capture code. When I attempt to capture I get a garbled > screen so I know I'm not passing the right value somewhere but I don't know > where. Forgive me I'm very new to opengl. > > -(void)readScreenRect:(NSRect)rect > { > long w =rect.size.width; > long h =rect.size.height; > > [self readPartialScreenToBuffer:w bufferHeight: h > origin:NSMakePoint(0, 0) bufferBaseAddress: mData]; > } > // Use this routine if you want to read only a portion of the screen pixels > - (void) readPartialScreenToBuffer: (size_t) width bufferHeight:(size_t) > height origin:(NSPoint)origin bufferBaseAddress: (void *) baseAddress > { > // select front buffer as our source for pixel data > glReadBuffer(GL_FRONT); > > //Read OpenGL context pixels directly. > > // For extra safety, save & restore OpenGL states that are changed > glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT); > > glPixelStorei(GL_PACK_ALIGNMENT, 4); /* Force 4-byte alignment */ > glPixelStorei(GL_PACK_ROW_LENGTH, 0); > glPixelStorei(GL_PACK_SKIP_ROWS, 0); > glPixelStorei(GL_PACK_SKIP_PIXELS, 0); > > //Read a block of pixels from the frame buffer > glReadPixels(origin.x, > origin.y, > width, > height, > GL_BGRA, > GL_UNSIGNED_INT_8_8_8_8_REV, > baseAddress); > > glPopClientAttrib(); > > //Check for OpenGL errors > GLenum theError = GL_NO_ERROR; > theError = glGetError(); > > } > _______________________________________________ > > 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/steven.degutis%40gmail.com > > This email sent to steven.degu...@gmail.com > _______________________________________________ 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