Thanks Mike, Others can correct me if I'm wrong, but we do indeed call Layout on the webwidget (which will do the recursive layout of all frames, from the main_frame() down through its children) before actually painting from within RenderWidget::DoDeferredPaint().
And about the list of individual paint rects as opposed to the union rect, I think our multi-process architecture wouldn't like that too much... Sending a series of individual IPCs for each bitmap rect would most probably be overkill... An alternative could be to send a bitmap the size of the union rect, but only paint the individual rects in it, and extract them individually on the other side of the IPC... But I wonder if it would be worth the added complexity and risk... Unless I missed something (which is most probably the case :-)... Any other opinions on this? Thanks again! BYE MAD On Wed, Apr 29, 2009 at 4:30 PM, Mike Pinkerton <pinker...@chromium.org>wrote: > On Wed, Apr 29, 2009 at 3:39 PM, Marc-Andre Decoste <m...@chromium.org> > wrote: > > So I thought some people on this list might have some more hints to help > me > > pinpoint the culprit quicker... > > Until then, I keep digging... > > I'm pretty sure you've seen these, but from my discussions with Hyatt > on the Mac side, I'm pasting the things he told me to watch for: > > "Your repaint code really should not just be doing a union. That's > going to hurt your performance on DHTML and stuff. > Both Windows (HWNDs) and Mac (NSViews) will build up a region when you > do invalidates. When you draw you can then grab individual decomposed > rects from the overall region or use the unioned bounding box. > Look at WebHTMLView and how it has a drawRect and drawSingleRect methods." > > Though from talking to Darin a bit (our Darin), he was against > decomposing the rects since there was no obvious win given the async > nature of our repainting. I still think there's something here, but I > don't know enough about our layout and how we differ (purposely) from > WebKit to argue one way or the other. > > "Make sure that your paint method is actually doing the recursive > layout of all frames before actually painting so that (a) your layout > info is up to date and (b) any additional rects added by the layouts > can become part of that current paint. You'll probably want to study > the Windows WebView for this." > > Again, I'm ignorant of what we do here, though I'm pretty sure we > already do this. > > Hope that helps. > > -- > Mike Pinkerton > Mac Weenie > pinker...@google.com > --~--~---------~--~----~------------~-------~--~----~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~----------~----~----~----~------~----~------~--~---