Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!bloom-beacon!apple!well!ewhac From: ewhac@well.UUCP (Leo 'Bols Ewhac' Schwab) Newsgroups: comp.sys.amiga.tech Subject: Re: double buffering via interrupts Message-ID: <6971@well.UUCP> Date: 30 Aug 88 09:36:03 GMT References: <6015@gryphon.CTS.COM> Reply-To: ewhac@well.UUCP (Leo 'Bols Ewhac' Schwab) Organization: (-: ACME Flamethrowers. Mark Ethan Smith, CEO. :-) Lines: 43 Quote: "I am not interested in trying to compensate for your amazing lack of observation." -- Orac In article <6015@gryphon.CTS.COM> collins@pnet02.cts.com (Steven Collins) writes: >I am trying to set up a double buffered screen that uses a >vertical interrupt handler to do the flip. It works fine until >I try to depth arrange or slide the screen down [ ... ] Depth arranging or dragging screens while double buffering is problematic at best, because of the overhead in using screens. If you want inexpensive double buffering, you really should be using ViewPorts and Views directly. >This server switches the bitmaps like this: > Scrn->ViewPort.RasInfo->BitMap= (one of the bitmap pointers) > MakeScreen(Scrn) > MrgCop(view) > LoadView(view) > OOOP! ACK!! PFBBTPHBFPHBFHTBTTT!!! When you call MrgCop(), you are effectively invoking an assembler for the copper, which assembles a new list of instructions for the copper to control the display with. This is a *very* expensive operation, and really has no business being inside an interrupt server. The most you can do is to use LoadView() in your server. If I were you, I wouldn't be doing this in an interrupt server at all; at worst, I'd signal a task from the interrupt to do it. However, I'd look for other methods to flip buffers around. ScrollVPort() is useful for this, if you must run on an Intuition screen. An example of this can be found in one of my *real* old hacks called "Ing." Unfortunately, all current methods of page-flipping within Intuition's constraints are terribly expensive computationally, so you may wish to explore Views and ViewPorts. >Should I go back to my C64? > Nah. You'll get used to the new stuff. _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ Leo L. Schwab -- The Guy in The Cape INET: well!ewhac@ucbvax.Berkeley.EDU \_ -_ Recumbent Bikes: UUCP: pacbell > !{well,unicom}!ewhac O----^o The Only Way To Fly. hplabs / (pronounced "AE-wack") "Work FOR? I don't work FOR anybody! I'm just having fun." -- The Doctor