Tuesday 20 June 2006
The Future Is Now
I've recently done some work to modify Gecko's paint invalidation architecture to work with SVG foreignobject. I've also brought SVG foreignobject up to date with SVG changes and fixed some related bugs. The result is that the foreignobject demo I did at XTech last year is now fully functional on trunk cairo builds! In fact, it's more functional than last year since, thanks to Blake Kaplan's hard work, the caret is now painted correctly in transformed content.
There are still many bugs related to transformed content. Among them:
At least now we are at the point where we can test and fix some of these issues.
Download a trunk nightly (warning: these can be very unstable!) built with cairo (Windows should be), and try this testcase.
Obligatory screenshot:
There are still many bugs related to transformed content. Among them:
- Popups (e.g. SELECT comboboxes) --- actually it's not 100% clear how these should work
- Some theme problems
- Scrolling
- Some painting problems on Windows (apparently)
- incredibly SLOW performance; some for reasons we understand and can fix, some for reasons that are fundamental (rotating images is slower than just drawing them normally), and probably some for reasons we don't understand yet
- Seams between rotated rectangular areas (e.g. visible in the Google logo in the screenshot below). These are fundamental with cairo's coverage-based antialiasing strategy, and we may have to move to FSAA to get rid of them.
At least now we are at the point where we can test and fix some of these issues.
Download a trunk nightly (warning: these can be very unstable!) built with cairo (Windows should be), and try this testcase.
Obligatory screenshot:
Comments
There are indeed quite some painting bugs in windows at least, but nothing too serious as far as I can see.
Ted, that is really cool, that rotating Google Maps demo.