Mozilla2:GraphicsPlan: Difference between revisions

no edit summary
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
569

edits