Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!cwjcc!ukma!rutgers!apple!well!ewhac
From: ewhac@well.UUCP (Leo 'Bols Ewhac' Schwab)
Newsgroups: comp.sys.amiga
Subject: Re: Double Buffering and the Menu Strip
Summary: ScrollVPort()'s perfectly valid.
Message-ID: <7186@well.UUCP>
Date: 24 Sep 88 08:10:46 GMT
References: <4148@louie.udel.EDU> <8597@watdragon.waterloo.edu>
Reply-To: ewhac@well.UUCP (Leo 'Bols Ewhac' Schwab)
Organization: The CIA:  International Meddling at Bargain Rates.
Lines: 40
Quote: "Noalias must go.  This is not negotiable."  -- Dr. Dennis M. Ritchie

In article <8597@watdragon.waterloo.edu> bmacintyre@watsol.waterloo.edu (Blair MacIntyre) writes:
>In article <4148@louie.udel.EDU> iphwk%MTSUNIX1.BITNET@cunyvm.cuny.edu (Bill Kinnersley) writes:
>>and here is how I double buffer:
>>        ScrollVPort(vp);
>         ^^^^^^^^^^^
>
>I don't think this is an intelligent way of doing this.  What you should be
>doing is ( this is from memory, I'm at work doncha' know )
>
>	Makescreen(s);
>	RethinkDisplay();
> 
	Eeuuuaaahhh!!  Ick!  RethinkDisplay() is very slow, as it invokes
MrgCop(), which assembles a brand new copper list for the display.  The time
required to do this is non-trivial.  Therefore, if you're doing anything
remotely speed-sensitive, you should avoid RethinkDisplay().

	ScrollVPort() does work with Intuition screens.  As an example,
check out the source code to Ing, the window bouncer.

	To answer the original question, you're probably best off dealing
with the menus via the MENUVERIFY IDCMP class.  When Intuition asks you to
MENUVERIFY, you pull forward the screen you want, confirm the MENUVERIFY
event, and wait for the menu event to happen.  You cannot (easily) have
Intuition menus over a *running* double-buffered display; you must halt
double-buffering and bring the "menu'd" screen to the front to permit the
user to interact with them.

>>Is there something else I should be toggling (in the Layer_Info perhaps?)
>>to keep the menu system informed which bitmap is the current one?
>
	You might possibly be able to spoof the system by fiddling with the
BitMap pointers in the layer structures, but this could easily lead to hairy
bananas.  You're better off pulling the menu'd screen to the front.

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
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