Path: utzoo!attcan!uunet!super!udel!rochester!cornell!mailrus!ncar!ames!oliveb!amiga!boing!dale From: dale@boing.UUCP (Dale Luck) Newsgroups: comp.sys.amiga.tech Subject: Re: Amiga Layers Library -- ANNOYING BUG Message-ID: <594@boing.UUCP> Date: 17 Jan 89 18:48:23 GMT References: <3704@crash.cts.com> Reply-To: dale@boing.UUCP (Dale Luck) Organization: Boing, Milpitas, Ca. Lines: 58 In article <3704@crash.cts.com> billk@pnet01.cts.com (Bill W. Kelly) writes: > >There's an annoying "bug" in the layers library that, to my knowledge, has >been in every release version of the Amiga's operating system. Not really a bug. It is the way the dedicer coallescs contiguous cliprects when a delete operation occurs. Move and Size call create/delete. The operation of creating cliprects for layer A, then B, then C. Then deleting B is not the same as creating cliprects for layer A then layer C. The operation is non associative. communitive? or nonreversable? > >I kept hoping someone at Commodore-Amiga would fix it but I suppose it's >possible that noone's noticed this. (Or that nobody cares?) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ I assume you mean :-) here. > >I will explain what to do to get this "bug" to appear. (BTW, don't worry-- >there's no danger of crashing; this is just a visual thing.) < description of problem omitted > > >What I want to know is: WHY???? I figure it must be something related to >the LayerInfo structure for the screen, since it applies to ALL >smart_refresh layers on the screen. Why does sizing a layer get rid of the >problem, while adding/deleting new layers does not??? Because the size of the layer changed, therefore the amount of space covered by more than 1 layer decreased allowing the routines to remove more unused cliprects. > >SUGGESTION: Whatever piece of code in SizeLayer() that fixes the problem >should be duplicated and stuck in MoveLayer(). :-) ha >If someone could tell me why this happens and how to fix it, I'd be happy to >write a little patch that SetFunction()'s MoveLayer(). (A temporary patch -- The proper solution to the problem is entirely more complex then what you propose. SetFunction MoveLayer won't help as you stated above since the same problem occurs when creating/deleting layers. >I would think this could be fixed in 1.4?!?!!) A new redicing algorithm is already in V1.4. You alpha testers out there should notice some difference. Unfortunately one of the side affects of the new routine is a transient need for more memory than any previous release of the layer library. > >Bill W. Kelly >{nosc ucsd hplabs!hp-sdd}!crash!pnet01!billk crash!pnet01!billk@nosc.mil > billk@pnet01.cts.com -- Dale Luck GfxBase/Boing, Inc. {uunet!cbmvax|pyramid}!amiga!boing!dale