Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!bbn!rochester!cornell!uw-beaver!mit-eddie!ll-xn!ames!ucbcad!ucbvax!hoser.berkeley.edu!bryce From: bryce@hoser.berkeley.edu (Bryce Nesbitt) Newsgroups: comp.sys.amiga Subject: Re: Double Buffering Message-ID: <21733@ucbvax.BERKELEY.EDU> Date: Thu, 12-Nov-87 02:49:19 EST Article-I.D.: ucbvax.21733 Posted: Thu Nov 12 02:49:19 1987 Date-Received: Sat, 14-Nov-87 16:01:57 EST References: <7768@steinmetz.steinmetz.UUCP> <1038@sugar.UUCP> Sender: usenet@ucbvax.BERKELEY.EDU Lines: 57 Keywords: double buffering, vertical retrace, screens In article <1038@> peter@sugar.UUCP (Peter da Silva) writes: >In article <7768@>, guilford@sunbird.steinmetz (james d guilford) writes: > >> I looked up double buffering in the RKM. It suggested... > >Why don't you just set up two screens and use ScreenToFront and ScreenToBack >to flip them? Peter da Silva, multitasking terrorist. This is quick, easy and probably will be compatible in the future. But it is also a dirty, ugly kludge that gives users headaches. Try C= N or C= M on such a program. Try dragging the screen. YUCK! *At least* put some protection in if you go this route. Someone else probably has a better suggestion, but how about: key=LockIBase(0L); check IntuitionBase->FirstScreen; if the same as yours, contine. Else quit animating. UnLockIBase(key); In the second case, post a "start animating" requester in *your* screen. Or maybe one in each, come to think of it. Still a kludge. It could be that many of the "better" Dbuffering techniques may break Hedley's Highres Monitor. (That 1000*800 monochrome monitor shown at Comdex) This is pure speculation, however. This is another one that works: Set the ViewPort->RasInfo->BitMap plane pointers to the "other" data then MakeScreen(Screen), RethinkDisplay(). The problem with this is that it rebuilds the copperlists and that takes a while. (Reference: WaveBench-1 in interlace :-) I've seen ScrollVPort() used. This is fast but seems to have some display trashing problems and has crashed. Perhaphs a Forbid()? A unique solution was used by Matt Dillon. He had a two bitplane display for Wiredemo. He draws into one plane at a time, setting the color registers to make that plane invisible at the time. Flopping the color registers is fast. The problem here is that two bitplanes of data are fetched by the custom chips, I think (but am ot positive) that droping one bitplane will leave more cycles for the blitter. (issue: can the blitter take advantage of free "odd" cycles) Other than that, it works great in practice! |\ /| . Ack! (NAK, SOH, EOT) {o O} . bryce@hoser.berkeley.EDU -or- ucbvax!hoser!bryce (") U "We want to fashon puppets that pull their own strings." -Ann Marion