MacTech Network:   MacForge.net  |  Computer Memory  |  Register Domains  |  Printer Supplies  |  Cables  |  iPod Deals  |  Mac Deals  |  Mac Book Shelf


  MacTech Magazine

The journal of Macintosh technology

 
 
LUCY Gateway

Magazine In Print
  About MacTech  
  Home Page  
  Subscribe  
  Archives DVD  
  Submit News  
  Submit a Tip!  
  Get a copy of MacTech RISK FREE  
Google
Entire Web
mactech.com
Mac Community
More...
MacTech Central
  by Category  
  by Company  
  by Product  
MacTech News
  MacTech News  
  Previous News  
  MacTech RSS  
Article Archives
  Show Indices  
  by Volume  
  by Author  
  Source Code FTP  
Inside MacTech
  Writer's Kit  
  Editorial Staff  
  Editorial Calendar  
  Back Issues  
  Advertising  
Contact Us
  Customer Service  
  MacTech Store  
  Legal/Disclaimers  
  Webmaster Feedback  

SYSTEM 7.0 Q & A

MACINTOSH DEVELOPER TECHNICAL SUPPORT

Q When I use the name and vRefNum returned from FindFolder, I always get a fnfErr from OpenRFPerm. Why?

A FindFolder returns both a vRefNum and a DirID. They both must be used to identify the folder. Instead of using OpenRFPerm,which takes only a vRefNum, try HOpenResFile. Avoid using PBHSetVol! (See Technical Note #140 for more information.)

Q We want to use OpenCPicture for higher resolution, not for color per se. Can OpenCPicture in System 7.0 be used with non-Color as well as Color QuickDraw Macintosh computers?

A Yes, with System 7.0, OpenCPicture can be used to create extended PICT2 files from all Macintosh computers. Under System 6.0.7 or later, you must test for 32-Bit QuickDraw before using OpenCPicture. You can do this by calling Gestalt with the gestaltQuickDrawVersion selector. If it returns gestalt32BitQD or greater, then 32-Bit QuickDraw is installed.Q Can the Communications Toolbox be used in a DA? InitCM has to be called and the manual says it should be called only once.

A Yes, it is all right to call CTB Initialization routines from CODE resources. This includes a DRVR, cdev, or INIT.

Q Can I use my 8*24 GC card with System 7.0ßx? I was told the GC misbehaves with any and all nonlinear address mapping, such as System 7.0 and A/UX. Is this true? Can this be fixed with CODE/INIT patch? Is it scheduled to be fixed in the near future?

A The 8*24 GC card software version 1.0 is not intended to run in any environment involving virtual memory management. A VM-compatible version of the GC software will be made available when System 7.0 is final. Until then, the card can be used as a video buffer, and System 7.0 preliminary software might run with VM switched off.Q Under what System 7.0 and System 6.0 conditions is it legal to call the QDError function?

A Under System 7.0, QDError can be called from all Macintosh computers. (System 7.0 supports RGBForeColor, RGBBackColor, GetForeColor, and GetBackColor for all Macintosh computers as well.) On a non-Color QuickDraw Macintosh, QDError always returns a "no error." Under System 6.0, QDError cannot be used for non-Color QuickDraw Macintosh systems.

Q Why do some CopyBits transfer modes produce different results for System 7.0 than for System 6.0?

A Under System 6.0, the srcOr, srcXor, srcBic, notSrcCopy, notSrcOr, notSrcXor, and notSrcBic transfer modes do not produce the same effect for a 16- or 32-bit (direct) pixel map as for an 8-bit or shallower (indexed) pixel map. With Color QuickDraw these classic transfer modes on direct pixel maps aren't color based; they're pixel value based. Color QuickDraw performs logical operations corresponding to the transfer mode on the source and destination pixel values to get the resulting pixel value.For example, say that a multicolored source is being copied onto a black and white destination using the srcOr transfer mode, and both the source and destination are 8 bits per pixel. Except in unusual cases, the pixel value for black on an indexed pixel map has all its bits set, so an 8-bit black pixel has a pixel value of $FF. Similarly, the pixel value for white has all its bits clear, so an 8-bit white pixel has a pixel value of $00. CopyBits takes each pixel value of the source and performs a logical OR with the corresponding pixel value of the destination. Using OR to combine any value with 0 results in the original value, so any pixel value ORed with the pixel value for white results in the original pixel value. Using OR to combine any value with 1 results in 1, so any pixel value ORed with the pixel value for black results in the pixel value for black. The resulting image shows the original image in all areas where the destination image was white and shows black in all areas where the destination image was black.

Take the same example, but this time make the source and destination 32 bits per pixel. The direct- color pixel value for black is $00000000 and the direct-color pixel value for white is $00FFFFFF. CopyBits still performs a logical OR on the source and destination pixel values, but notice what happens in this case. Using OR to combine any source pixel value with the pixel value for white results in white, and using OR to combine any source pixel value with the pixel value for black results in the original color. The resulting image shows the original image in all areas where the destination image was black and shows white in all areas where the destination image was white--roughly the opposite of what you see on an indexed pixel map.

The newer transfer modes addOver, addPin, subOver, subPin, adMax, and adMin work consistently at all pixel depths, and often, though not always, correspond to the theoretical effect of the old transfer modes. For example, the adMin mode works similarly to the srcOr mode on both direct and indexed pixel maps. Also, 1-bit deep source pixel maps work consistently and predictably regardless of the pixel depth of the destination even with the old transfer modes.

Under System Software 7.0, the old transfer modes now perform by calculating with colors rather than pixel values. You'll find that transfer modes like srcOr and srcBic work much more consistently even on direct pixel maps.

Q Is the Macintosh printing architecture different for System 7.0?

A No changes were made to the printing architecture for System 7.0. Printer drivers were revised for System 7.0 to support TrueType, to be completely 32-bit clean, and to fix bugs, but the printing architecture remains the same for System 7.0.Q BitMapToRegion does not work as described in Technical Note #275 for a PixMap with baseAddr = (NuBus address). Which calls support PixMap 32-bit base addressing with pmVersion = 4?

A As of System 7.0ß1, BitMapToRgn cannot handle a bitmap whose base address is in the NuBus TM address space or any bitmap that requires 32-bit addressing. The problem will be fixed for System 7.0's final release. As far as we know, BitMapToRgn is the only call that doesn't yet support 32-bit addressed bitmaps.

Q Can the LaserWriter 7.x driver be used with System 6.0?

A Yes! LaserWriter 7.x is compatible with both System 7.0 and System 6.0. It's still prerelease software, however. Do not ship the preliminary LaserWriter 7.x driver with your application. You'll be able to ship the final LaserWriter 7 driver with your product as soon as System 7.0 is final. To use the new LaserWriter driver with an AppleShare print spooler, you need a special LaserPrep, available on developer CDs and on AppleLink.

Kudos to our readers who care enough to ask us terrific and well-thought-out questions. The answers to these puzzles have been supplied courtesy of our teams of technical gurus; our thanks to all. Special thanks to Pete "Luke Skywalker" Alexander, Jim "Im" Beninghaus, Rich Collyer, Guillermo Ortiz, Forrest Tanaka, and Scott "Zz" Zimmerman for the material in this Q & A column. *

Have more questions? Need more answers? Take a look at the new developer technical library on AppleLink (updated weekly) or the Q & A stack on the disc that comes withdevelop . *



Click here to find out more about our best subscription bundle deal ever!
2 years of the magazine, and the all new MacTech DVD ... at 70% off!



Click on the cover to
see this month's issue!

TRIAL SUBSCRIPTION
Get a RISK-FREE subscription to the only technical Mac magazine!
 
 


MacTech Magazine. www.mactech.com
Toll Free 877-MACTECH, Outside US/Canada: 805-494-9797

Register Low Cost (ok dirt cheap!) Domain Names in the MacTech Domain Store. As low as $1.99!
Save on brand compatible and name brank ink jet and laser supplies.
Save on long distance * Upgrade your Computer
Movies with No Late Fees!

See local info about Westlake Village
SJ * BRJ * BJ * OJ * NITS
Staff Site Links



All contents are Copyright 1984-2007 by Xplain Corporation. All rights reserved.

MacTech is a registered trademark of Xplain Corporation. Xplain, Video Depot, Movie Depot, Palm OS Depot, Explain It, MacDev, MacDev-1, THINK Reference, NetProfessional, NetProLive, JavaTech, WebTech, BeTech, LinuxTech, Apple Expo, MacTech Central and the MacTutorMan are trademarks or service marks of Xplain Corporation. Sprocket is a registered trademark of eSprocket Corporation. Other trademarks and copyrights appearing in this printing or software remain the property of their respective holders.