mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-07 13:24:12 +00:00
0471905a26
Previously our region code was just a simple y,x sorted list of non-intersecting rectangles. This can cause us to have simple regions represented in a complex unoptimizable way. Switching to pixman regions gives us a canonical region implementation. There are some cases when this can cause performance regressions. For example, with the old region code we end up with this region: http://people.mozilla.org/~jmuizelaar/region-pre.html which is represented like this: http://people.mozilla.org/~jmuizelaar/region-post.html with the new code. We call SimplifyOutward(4) on this. With old regions we can't simplify it so we end up taking the bounds and get 1 rect. With the new regions we have only 3 rects to start and so we do nothing. The difference between 3 rects and 1 rect cause D2D to do a PushLayer() instead of a ClipRect() and that seems to be the causes for the regression. --HG-- extra : rebase_source : 65e0d29d67b51a3780448eaecfde33dbcb6b99b1 |
||
---|---|---|
.. | ||
android | ||
gonk | ||
mac | ||
os2 | ||
tests | ||
unix | ||
win | ||
ExternalHelperAppChild.cpp | ||
ExternalHelperAppChild.h | ||
ExternalHelperAppParent.cpp | ||
ExternalHelperAppParent.h | ||
Makefile.in | ||
moz.build | ||
nsCExternalHandlerService.idl | ||
nsContentHandlerApp.cpp | ||
nsContentHandlerApp.h | ||
nsDBusHandlerApp.cpp | ||
nsDBusHandlerApp.h | ||
nsExternalHelperAppService.cpp | ||
nsExternalHelperAppService.h | ||
nsExternalProtocolHandler.cpp | ||
nsExternalProtocolHandler.h | ||
nsHandlerService.js | ||
nsHandlerService.manifest | ||
nsIContentDispatchChooser.idl | ||
nsIExternalHelperAppService.idl | ||
nsIExternalProtocolService.idl | ||
nsIExternalSharingAppService.idl | ||
nsIExternalURLHandlerService.idl | ||
nsIHandlerService.idl | ||
nsIHelperAppLauncherDialog.idl | ||
nsLocalHandlerApp.cpp | ||
nsLocalHandlerApp.h | ||
nsMIMEInfoImpl.cpp | ||
nsMIMEInfoImpl.h | ||
nsWebHandlerApp.js | ||
nsWebHandlerApp.manifest | ||
PExternalHelperApp.ipdl |