🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.amiga.tech
Article #9634

Re: double buffering via interrupts

#9634
From: Leo 'Bols Ewhac' Schwab
Date: Tue, 30 Aug 1988 09:36
43 lines
2594 bytes
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
Technical Details
Message-ID: <6971@well.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!bloom-beacon!apple!well!ewhac
References: <6015@gryphon.CTS.COM>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!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