Mozilla2:GraphicsPlan: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
* <s>Move to cairo 1.111</s>
'''Author: Stuart Parmenter (Pavlov)'''
* Expose thebes
** <s>Update thebes to use new cairo</s>
** <s>Document thebes</s>
** Build thebes as part of the default build
** Put simple thebes accessor on nsIRenderingContext for doing native drawing with thebes


* Convert canvas from cairo to thebes
The following is the rough plan that we're trying to follow for building out the new graphics platform.  Please run changes/additions/etc by me before making them.
* <s>Convert gfx/src/cairo to gfx/src/thebes</s>
* Fix fonts
** Windows - Rewrite to use Uniscribe
** <s>Linux - Use Pango code and drop XFT in favor of cairo</s>
** Mac - Rewrite to use ATSUI
* Work out remaining problems with thebes gfx backend
** incorrect rendering
** aliasing problems
** <s>color problems</s>
** <s>double buffering</s>


* Make cairo fast enough to use
** Optimize all cairo native backends
*** Windows
*** Linux
*** Mac
** Optimize core cairo code paths
* Printing
** ugh.


''' The Plan(tm): '''
# '''Things to do first'''
#* <s>Move to cairo 1.111</s>
#* Expose thebes
#** <s>Update thebes to use new cairo</s>
#** <s>Document thebes</s>
#** Put simple thebes accessor on nsIRenderingContext for doing native drawing with thebes
# '''Next'''
#* Convert canvas from cairo to thebes
#* <s>Convert gfx/src/cairo to gfx/src/thebes</s>
#* Fix fonts
#** Windows - Rewrite to use Uniscribe
#** <s>Linux - Use Pango code and drop XFT in favor of cairo</s>
#** Mac - Rewrite to use ATSUI
#* Work out remaining problems with thebes gfx backend
#** incorrect rendering
#** aliasing problems
#** <s>color problems</s>
#** <s>double buffering</s>
# '''Zoom zoom'''
#* Make cairo fast enough to use
#** Optimize all cairo native backends
#*** Windows
#*** Linux
#*** Mac
#** Optimize core cairo code paths
# '''Reorg'''
#* Move useful old GFX APIs and implementations to Widget
#** <s>nsIScreen*</s>
#** parts of nsIDeviceContext
#** parts of nsIPrint*
# '''Now for the hard part...'''
#* Printing
#** ugh.
# '''Landing'''
#* Break the world
# '''Cleanup'''
#* Fix fallout
# '''Update the world'''
#* Convert layout and other places from the old gfx apis (nsIRenderingContext and friends) to the new Thebes APIs.
# '''Roll credits'''
#* Remove old graphics code!
#* Have party


'''Future stuff/Things we'd like'''
* Glitz
* Glitz
** Windows
** Windows
Line 37: Line 57:
** Mac
** Mac
*** Get working
*** Get working
 
* 3D
* Fix fallout
* downloadable fonts
 
* Convert layout and other places from the old gfx apis (nsIRenderingContext and friends) to the new Thebes APIs.
 
* Remove old graphics code!
** have party

Revision as of 21:16, 31 October 2005

Author: Stuart Parmenter (Pavlov)

The following is the rough plan that we're trying to follow for building out the new graphics platform. Please run changes/additions/etc by me before making them.


The Plan(tm):

  1. Things to do first
    • Move to cairo 1.111
    • Expose thebes
      • Update thebes to use new cairo
      • Document thebes
      • Put simple thebes accessor on nsIRenderingContext for doing native drawing with thebes
  2. Next
    • Convert canvas from cairo to thebes
    • Convert gfx/src/cairo to gfx/src/thebes
    • Fix fonts
      • Windows - Rewrite to use Uniscribe
      • Linux - Use Pango code and drop XFT in favor of cairo
      • Mac - Rewrite to use ATSUI
    • Work out remaining problems with thebes gfx backend
      • incorrect rendering
      • aliasing problems
      • color problems
      • double buffering
  3. Zoom zoom
    • Make cairo fast enough to use
      • Optimize all cairo native backends
        • Windows
        • Linux
        • Mac
      • Optimize core cairo code paths
  4. Reorg
    • Move useful old GFX APIs and implementations to Widget
      • nsIScreen*
      • parts of nsIDeviceContext
      • parts of nsIPrint*
  5. Now for the hard part...
    • Printing
      • ugh.
  6. Landing
    • Break the world
  7. Cleanup
    • Fix fallout
  8. Update the world
    • Convert layout and other places from the old gfx apis (nsIRenderingContext and friends) to the new Thebes APIs.
  9. Roll credits
    • Remove old graphics code!
    • Have party

Future stuff/Things we'd like

  • Glitz
    • Windows
      • Get working
    • Linux
      • Get working
      • Fix plugins
    • Mac
      • Get working
  • 3D
  • downloadable fonts