TweetFollow Us on Twitter

LaserWriter CopyBits Support

Volume Number: 13 (1997)
Issue Number: 12
Column Tag: Develop

LaserWriter 8.5.1 Additional CopyBits Support: Transparent and Clipped Images

by David Gelphman, RBI Software Systems Inc. and Ingrid Kelly, Apple Computer Inc.

Overview

QuickDraw provides several APIs for copying bitmaps from one graphics port into another, the most flexible of which is CopyBits(). Most developers use CopyBits() because it can move offscreen images into an onscreen window, change colors in the pixmap, and resize images. This is a useful API, however, unfortunately, LaserWriter 8.4.x and earlier PostScript printer drivers from Apple have not supported all of the capabilities of the CopyBits() call to draw images. This TechNote describes where Apple has enhanced its handling of the CopyBits() call in LaserWriter 8.5.1 so that developers and users may take advantage of the improvements.

CopyBits()

The prototype for CopyBits() is:

void CopyBits(const BitMap *srcBits, const BitMap *dstBits, 
const Rect *srcRect, const Rect *dstRect, short mode, RgnHandle 
maskRgn);

In the mode parameter, many developers have tried to use the transparent transfer mode to achieve transparency; the LaserWriter driver, however, never supported this mode but instead treated it as a srcCopy mode. The LaserWriter driver also has not supported clips in the maskRgn parameter. This has all changed with the LaserWriter 8.5.1 release.

Transparent Mode

One transfer mode previously unsupported by the LaserWriter driver is the transparent transfer mode. This mode allows drawing of images other than 1-bit deep so that any sample in the source which is the transparent color (defined as the QuickDraw background color) will not be painted to the destination. The advantage of this mode is that it lets a deep (<> 1-bit) image have holes in it by coloring the holes in the image with the transparent color. Whereas previously the LaserWriter driver would paint these images as if the transfer mode were srcCopy, LaserWriter 8.5.1's new imaging code now handles the transparent mode.

maskRgn Clipping

Another previously unsupported feature of CopyBits() was the ability to pass in a mask (via the maskRgn field) to clip out portions of the destination image. Previous LaserWriter drivers completely ignored the maskRgn passed to CopyBits(). The new imaging code in LaserWriter 8.5.1 now supports the supplied maskRgn.

Note: While the LaserWriter 8.5.1 driver now handles a supplied maskRgn to a CopyBits call, we do not do any special handling of the clip provided in the grafPort. GrafPort clipping is still handled by clipping only to the bounding rectangle of the port's clipRgn, both for CopyBits calls as well as line art and text drawing. Apple considered more generalized support for the port clipRgn but has rejected it to date mainly due to compatibility concerns.

Limitations

There are some known limitations with the added CopyBits() support that you should be aware of. They are:

  • Extremely complex clipping regions may occasionally fail on Level 1 or Level 2 devices in low printer memory conditions. The result is that the output will not preserve the clip, and the image will print as if the maskRgn parameter is ignored.

    Specifically, for PostScript Level 1 printers, there is a hard coded limit to how complex a clip can be, regardless of the printer's installed memory. If the clip is more complex than this limit, the LaserWriter driver ignores the maskRgn parameter. For Level 2 printers, the limits are completely memory-based and generally much more flexible. However, once again, in low-memory conditions, the clip may still fail. On PostScript Level 3 printers, all clips should always print correctly regardless of the complexity of the clip since the driver uses the PostScript Level 3 masked image to support this feature.

  • Since the LaserWriter driver implements the transparent mode via clipping, complex transparent regions may occasionally fail on Level 1 or Level 2 devices in low-memory conditions as described above. The result is that the output does not preserve the transparency, and the pixels image with the background color instead.
  • For 2, 4, and 8-bit images with a color look-up table (CLUT), the LaserWriter 8.5.1 driver only supports one index which maps to the background color. Although the CLUT may contain many index values which have the background color and are therefore, in principle, transparent when displayed onscreen, the driver searches the look-up table for the first index which corresponds to the background color. Index samples with that index value are printed as transparent. Other index values which correspond to the background color are not treated as transparent but are printed as the background color.
  • In order to maintain compatibility with many applications, the LaserWriter 8.5.1 driver will ignore a maskRgn which is an empty region under some circumstances (e.g. some rotated text and graphics). Some applications have used the fact that previous drivers always ignored the maskRgn parameter to clip out certain data when printing to QuickDraw printers. Relying on this 'feature' is not recommended, and the fact that there are some edge cases where a zero clip is ignored for compatibility reasons may be a temporary 'feature' of the driver. To avoid accidentally encountering these cases, when you really want a zero clip, either do not draw the image (preferred) or use grafPort clipping to clip it.

Summary

New imaging code in the LaserWriter has opened up some new functionality for the QuickDraw CopyBits() call. We encourage you to try LaserWriter 8.5.1 with your application and any PostScript device.

Further References

Acknowledgements

Thanks to John Blanchard, Tim Carroll and Paul Danbold.


David Gelphman seems to specialize in backwards reading programming languages. From programming in FORTH at the Stanford Linear Accelerator Center, he moved into PostScript at Adobe Systems and then to Telescript at General Magic. He does do most other things in a more or less forward direction, although he has been known to fall off a horse backwards. David, together with his colleague Richard Blanchard, co-designed Apple's LaserWriter 8 PostScript printer driver while working at Adobe Systems. After a stint at General Magic, David now works at RBI Software Systems (http://www.rbi.com) as a contractor to Apple and Adobe on their PostScript printer drivers. He does other contracting work as well, primarily in the area of PostScript printing.

Ingrid Kelly always dreamed of working for Apple Computer while she was growing up in Silicon Valley. What she did not realize back then was that all of her experience printing out school papers on an ImageWriter would turn into a job supporting printing and printer drivers for Apple's Developer Technical Support (DTS) group. After a few years in DTS, Ingrid has now learned to appreciate the black magic involved in printing.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

VirtualBox 5.1.30 - x86 virtualization s...
VirtualBox is a family of powerful x86 virtualization products for enterprise as well as home use. Not only is VirtualBox an extremely feature rich, high performance product for enterprise customers... Read more
ScreenFlow 7.1.1 - Create screen recordi...
ScreenFlow is powerful, easy-to-use screencasting software for the Mac. With ScreenFlow you can record the contents of your entire monitor while also capturing your video camera, microphone and your... Read more
Adobe Flash Player 27.0.0.170 - Plug-in...
Adobe Flash Player is a cross-platform, browser-based application runtime that provides uncompromised viewing of expressive applications, content, and videos across browsers and operating systems.... Read more
Xcode 9.0.1 - Integrated development env...
Xcode includes everything developers need to create great applications for Mac, iPhone, iPad, and Apple Watch. Xcode provides developers a unified workflow for user interface design, coding, testing... Read more
TotalFinder 1.10.2 - Adds tabs, hotkeys,...
TotalFinder is a universally acclaimed navigational companion for your Mac. Enhance your Mac's Finder with features so smart and convenient, you won't believe you ever lived without them. Features... Read more
Backblaze 5.1.0.134 - Online backup serv...
Backblaze is an online backup service designed from the ground-up for the Mac. With unlimited storage available for $5 per month, as well as a free 15-day trial, peace of mind is within reach with... Read more
Postbox 5.0.20 - Powerful and flexible e...
Postbox is a new email application that helps you organize your work life and get stuff done. It has all the elegance and simplicity of Apple Mail, but with more power and flexibility to manage even... Read more
Corel Painter 18.1.0.651 - Digital art s...
Corel Painter lets you advance your digital art style with painted textures, subtle glazing brushwork, interactive gradients, and realistic Natural-Media. Easily transition from traditional to... Read more
QuarkXPress 13.1.0.0 - Desktop publishin...
QuarkXPress 2017 is the new version that raises the bar for design and productivity. With non-destructive graphics and image editing directly within your layout, you no longer have to choose between... Read more
Backblaze 5.1.0.134 - Online backup serv...
Backblaze is an online backup service designed from the ground-up for the Mac. With unlimited storage available for $5 per month, as well as a free 15-day trial, peace of mind is within reach with... Read more

Home Street guide - how to make friends...
From the creators of Food Street comes Home Street, a new simulation game that tasks you with building a social network and designing a beautiful home. It's a bit like The Sims, but you won't have to worry about the daily chores involved (feeding,... | Read more »
Color Ballz guide - how to bounce to the...
Color Ballz is an addictive new arcade title from Ketchapp Studios. It takes old school mechanics from games like Brickles and puts a fun twist on it. Your job? To catch balls with a paddle and send them back into a chute to be carried back to... | Read more »
Q&A: A-33 Studio explains why Combat...
When it comes to mobile FPS, it’s often tricky to get the fundamentals right on a platform lacking a physical controller, large display and hefty RAM. With Combat Squad: Project Wednesday, A-33 Studio bravely took on the challenge of making a... | Read more »
Taichi Panda 3: Dragon Hunter guide - ti...
Taichi Panda 3: Dragon Hunter launched this week to players all over the world. It's a beautiful mobile MMORPG that blends elements of Eastern and Western fantasy. It reminds us of a mix between World of Warcraft and Jade Empire. MMO's can have a... | Read more »
The best new games we played this week -...
Phew. It has been a week, but now it's time to relax, put your feet up, and enjoy some brand new mobile games. It was a bit of slow week, but there's still plenty of new titles to add to your collection. Here are four of our favorites. [Read... | Read more »
Yoink - Improved Drag and Drop (Product...
Yoink - Improved Drag and Drop 1.0 Device: iOS Universal Category: Productivity Price: $2.99, Version: 1.0 (iTunes) Description: Yoink for iPad and iPhone lets you easily and quickly store items you drag, copy or share, for later use... | Read more »
Cottage Garden (Games)
Cottage Garden 1.11 Device: iOS Universal Category: Games Price: $4.99, Version: 1.11 (iTunes) Description: | Read more »
Into the Dead 2 guide - how to survive t...
Into the Dead 2 is an endless gunner, of sorts, with a lot of grit and satisfying gunplay behind it. The game looks amazing, and tells an effective story to boot. Plus, it has some quality voice acting behind it to really bring the story to life... | Read more »
Smash Up - The Card Game (Games)
Smash Up - The Card Game 1.0.7 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0.7 (iTunes) Description: ***“It’s a goofy theme with fun art and high replayability, but beneath that veneer of casual play is a great... | Read more »
Dive in to Combat Squad if you’re lookin...
Earlier this year, A-33 Studio made the leap from developing Counter Strike Online to launching its very own FPS for the mobile. Combat Squad: Project Wednesday pits your team of mercs against the world in multiplayer death matches, so if you’re on... | Read more »

Price Scanner via MacPrices.net

Sale! 10″ Apple WiFi iPad Pros for up to $100...
B&H Photo has 10.5″ WiFi iPad Pros in stock today and on sale for $50-$100 off MSRP. Each iPad includes free shipping, and B&H charges sales tax in NY & NJ only: – 10.5″ 64GB iPad Pro: $... Read more
Apple iMacs on sale for up to $130 off MSRP w...
B&H Photo has 21-inch and 27-inch iMacs in stock and on sale for up to $130 off MSRP including free shipping. B&H charges sales tax in NY & NJ only: – 27″ 3.8GHz iMac (MNED2LL/A): $2179 $... Read more
2017 3.5GHz 6-Core Mac Pro on sale for $2799,...
B&H Photo has the 2017 3.5GHz 6-Core Mac Pro (MD878LL/A) on sale today for $2799 including free shipping plus NY & NJ sales tax only . Their price is $200 off MSRP. Read more
12″ 1.2GHz Space Gray MacBook on sale for $11...
Amazon has the 2017 12″ 1.2GHz Space Gray Retina MacBook on sale for $100 off MSRP. Shipping is free: 12″ 1.2GHz Space Gray MacBook: $1199.99 $100 off MSRP Read more
Bare Bones Software Releases macOS High Sierr...
Bare Bones Software has announced the release and immediate availability of BBEdit 12.0, a significant upgrade to its professional strength text and code editor. BBEdit 12 introduces a new foundation... Read more
Yale Announces Availability of Apple HomeKit-...
Yale Locks & Hardware has announced that Apple HomeKit support for its Assure Lock family is available this month. The new Yale iM1 Network Module, which provides support for the Apple Home app... Read more
Clearance 2016 13″ MacBook Pros, refurbished,...
Apple has Certified Refurbished 2016 13″ MacBook Pros available starting at $1189. An Apple one-year warranty is included with each model, and shipping is free: – 13″ 2.9GHz/512GB Touch Bar Gray... Read more
12-inch 64GB iPad Pro on sale for $749, save...
Adorama has 12″ 64GB iPad Pros on sale today for $749 including free shipping plus NY & NJ sales tax only. Their price is $50 off MSRP. Read more
13″ 3.1GHz/256GB Silver MacBook Pro on sale f...
Amazon has the Silver 13″ 3.1GHz/256GB MacBook Pro (MPXX2LL/A) on sale for $1699 including free shipping. Their price is $100 off MSRP. Read more
12″ MacBook available for $1099 with Apple re...
Apple has Certified Refurbished 2017 12″ Retina MacBooks available for $200-$240 off the cost of new models. Apple will include a standard one-year warranty with each MacBook, and shipping is free.... Read more

Jobs Board

*Apple* Retail - Multiple Positions - Apple,...
Job Description:SalesSpecialist - Retail Customer Service and SalesTransform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Retail - Multiple Positions - Farmin...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Retail - Multiple Positions - Apple...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Retail - Multiple Positions - Apple...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.