Path: utzoo!attcan!uunet!husc6!bbn!bbn.com!franco From: franco@bbn.com (Frank A. Lonigro) Newsgroups: comp.sys.mac.programmer Subject: Offscreen bitmaps problem solved... Keywords: Thanks again to netland! Message-ID: <33428@bbn.COM> Date: 13 Dec 88 00:16:38 GMT Sender: news@bbn.COM Lines: 67 Thanks again to all that responded, I have solved my offscreen bitmap problem. The reason I couldn't get it to work was because I was using "NewWindow()" to create an offscreen grafport. For some strange reason using NewWindow broke something. Anyway, the solution was to use OpenPort to create and initialize the offscreen window. Here is some code fragments to initialize an offscreen bitmap with co-ordinates (0, 0, 512, 512), much bigger than the standard Mac Plus screen. #define drawLeft 0 #define drawRight 512 #define drawTop 0 #define drawBottom 512 BitMap offScreen_bitMap; GrafPort offScreen_grafPort; GrafPtr offScreenPtr; SetUpOffscreen() { QDPtr baseAddr; short bitsRowBytes; long bufferSize; GrafPtr oldPort; GetPort (&oldPort); offScreenPtr = &offScreen_grafPort; OpenPort (offScreenPtr); SetPort (offScreenPtr); bitsRowBytes = (((drawRight - drawLeft - 1) / 16) + 1) * 2; bufferSize = (drawBottom - drawTop) * bitsRowBytes; baseAddr = (QDPtr)NewPtr(bufferSize); offScreen_bitMap.baseAddr = baseAddr; offScreen_bitMap.rowBytes = bitsRowBytes; SetRect(&(offScreen_bitMap.bounds),drawLeft,drawTop,drawRight,drawBottom); SetPortBits (&offScreen_bitMap); EraseRect (&(offScreen_bitMap.bounds)); SetPort (oldPort); } /* * * * * * * * * * * */ Once you have set up your offscreen bitmap, remember that to copybits to it you must do something like: CopyBits (&src->portBits, &offScreenPtr->portbits, &src->rect, &dest->rect, srcCopy, nil); or something close to that. And remember to SetPort(offScreenPtr) when ever you need to draw something off screen, such as using PlotIcon or DrawPicture and then SetPort back to your visable screen or window when you want the final display to be visable. Hope this helps out those of you who asked me to post my findings. Thanks, -franco franco@bbn.com franco%bbn.com@relay.cs.net ...!harvard!bbn!franco