Roadmap Scratchpad:cairo

From MozillaWiki
Revision as of 01:52, 6 December 2005 by Shaver (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This page describes the work items required to convert our rendering to use the cairo graphics library, as wrapped by thebes.

There are two categories of items here: those required before the default rendering is switched to cairo/thebes (marked with "TO"), and those required before we can ship a beta build for wider consumption (marked with "19B").

Major dependencies:

The graphics plan currently has a pair of large and poorly-understood dependencies related to Mac development.

Quartz back end for cairo

We will need an engineer to complete (likely: build completely) a cairo back end for the Mac platform, using Quartz and ATSUI. We do not have a credible estimate of the time required for this to reach basic functionality or ship-ready completeness.

Cocoa widgets

Though it is possible to make cairo-based graphics work with a Carbon Mac widget layer, Cocoa widgets have already been identified as a needed item for Gecko 1.9, and we would greatly prefer to avoid writing Carbon widget code only to discard it before a beta anyway.

  • Font API (textrun): 1-2w (19B)
  • Font selection:
    • Win: 2-3w (TO)
    • Lin: 1-2w (TO)
  • XFT back-end (Lin): 1w (19B)
  • Thebes debug/polish: 1w (TO); 2w (19B)
  • gfx removal and full thebification: 5w (19B)
  • nsIDeviceContext -> widget: 1wk (TO)
  • nsIPrint* -> widget: 2wk (TO)
  • cairo maintenance/improvement:
    • Win: 1w (19B)
    • Common: 1w (TO); 1w (19B)
  • minimal SVG thebification: 1wk (TO); 2w (19B)
  • Printing:
    • Win (GDI): 4wk (19B)
    • Common: 2-4wk (TO)
  • Plugins:
    • Win: 1wk (19B)
    • Lin: 1wk (19B)
    • Common: 4wk (19B)
  • imagelib API conversion: 2wk (19B)
  • glitzification:
    • Win: 1wk (19B)
    • Lin: 1wk (19B)
    • Common: 2wk (19B)
  • Text performance:
    • Win: 1wk (19B)
    • Lin: 2wk (19B)
    • Common: 1wk (19B)
  • Image perf:
    • Win: 1wk (TO)
    • Lin: 1wk (TO)
    • Common: 1wk (TO)
  • DirectX back end for cairo: 2wk (19B)
  • removal of old gfx/full thebification: 5wk (19B)