- From: Ly, An <An.Ly@CAI.COM>
- Date: Fri, 29 Oct 1999 10:25:39 -0400
- To: www-amaya-dev@w3.org
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