Skip to content

fruitsamples/Snapshot

Repository files navigation

Read Me About...Snapshot
date 08/2000

This application demonstrates how to quickly and	efficiently capture the main device's desktop into	a window.  The program basically reads the image stored in the the main device's pixmap then copies		it to a custom pixmap.  The custom pixmap is defined at the same depth of the main device and contains an identical copy of that device's color-table.  This is done to provide the fastest performance possible when copying from an offscreen	to onscreen pixmap.  By making sure the pixel values	map to the exact same colors in both colortables,	copybits will do a direct transfer of bits without	wasting time remapping the colors.  Also the ctSeed	field for each colortable should be the same.  Finally,	since the main device's bounding rect is different	than that of the offscreen's, the copying performance	for the device to the offscreen is slightly affected	because of the scaling required.  However, the copying	performance for the offscreen to the window is the best possible since the bounding rects for each are	identical.

Building the Code
This project was built and tested on CodeWarrior 2.1 using CarbonLib 1.1a3.  Since this is a Carbon app, the "Carbon Support" folder of the CarbonSDK should be in the same folder as the CodeWarrior IDE.  If this is not the case, the CarbonLib library will have to be re-added to the project.  In addition, the CarbonLib extension needs to be in the extension folder.  The CarbonSDK (which contains the library and the extension) can be found on Apple's website:  http://developer.apple.com/sdk/

Restrictions
Nearly every sample requires more memory than the 384KB CodeWarrior sets as the default heap size.  If for some reason the memory has been reset to the default (either through converting the project or whatever) the memory should be reset to 1000 - 2000KB (depending on the application).  This can be achieved by going to the projects settings (Edit Menu->C-PPC Settings... under CodeWarrior 2.1) and selecting the "PPC Target" under the "Target" tab.

Other Code Notes
This sample used to be a "non-Carbon" sample, but has been carbonized for demonstration purposes.  The "old" code has been left in (commented out) in order to compare and contrast the Carbon versus non-Carbon APIs.

Known Bugs
No known bugs.

Possible Future Enhancements
None at present.

Other Sources of Reference
Additional sample code can be found at:
http://developer.apple.com/samplecode/
in addition, the Carbon API can be found at:
http://developer.apple.com/techpubs/carbon/carbon.html

Version History
See source for version history.

Author
JM - Apple Developer Technical Support - dts@apple.com

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published