RE: can someone explain a little rendering detail?

Hi all,

The local changes I put in RedrawFrameTop/RedrawFrameBottom that appear to
solve this problem are implemented as...

(1) If a box is drawn, its bounding rectangle is added to a list of dirty
rectangles. The current clip region is also OR'ed with the region covered by
this bounding rectangle to make a new clip region for the DC.

(2) When a box is checked for intersection, it is now also checked with the
list of dirty rectangles from (1) above. If it intersects any of the dirty
rectangles, it will be redrawn EVEN if it did not intersect the frame's clip
rectangle. This allows smaller inner boxes to be redrawn if their container
is redrawn, even if the smaller inner box does not intersect the frame's
clip rectangle.

At first I thought a quicker way to solve this was to not just check for
intersection between the box and the frame's clip rectangle, but also
compare the enclosing box of the box with the frame's clip rectangle.
However, I couldn't think of a way to effectively differentiate between a
"real" enclosing box (say Submit_Input encloses Value_Box) and the default
enclosing box (Body encloses Submit_Input). So in this latter case, if you
intersected Body with the frame's clip rectangle, it would always
intersect...or so I think...making us redraw the Submit_Input box even if we
don't have to.

So anyway, what I wanted to know was if I was just wasting my time
implementing the code to do (1) and (2). Maybe I've got some wrong
assumptions about how boxes can be defined in the P file? :-)

For a fuller description of what I thought the problem was, see my previous
e-mail. Anyone interested in looking at the modifications, let me know. :-)

Thanks, 
-An

-----Original Message-----
From: Ly, An [mailto:An.Ly@CAI.COM]
Sent: Wednesday, October 27, 1999 11:14 AM
To: www-amaya-dev@w3.org
Subject: can someone explain a little rendering detail?

<SNIP>
how does the rendering system ensure that, if there's 2 boxes (small box
inside a bigger box), and the bigger box intersects the clipping area but
the smaller box doesn't, that the smaller box will still be rendered?  Since
only the bigger box intersects the clipping area, it is redrawn but then if
it clears the area that it covers, the smaller box inside of it will be
drawn over. Since the smaller box doesn't intersect the clipping area, it is
never redrawn.
<SNIP>

Received on Friday, 29 October 1999 10:26:13 UTC