After having sucessfully converted the Impress slideshow to the new UNO XCanvas rendering framework for OOo2.0, the next step in moving the whole office suite to canvas-based rendering is the port of Draw and Impress This talk will show-case a working prototype of Impress, already rendering the main edit view via XCanvas, displaying nicely anti-aliased graphics and using the hardware-accelerated canvas sprite primitives while manipulating shapes. Furthermore, and overview is given about the underlying architectural rework of the Impress drawing layer, which is now based on true MVC. Additionally, the engine then offers an extensible display list of shape primitives, which facilitates transparent switching of the rendering subsystem. The session concludes with an outlook on the port of Calc and Writer, and the obstacles that have to be overcome beforehand.
Citation preview
1. Moving OOo to XCanvas, Step 2 Draw and Impress
Thorsten Behrens
StarOffice/OpenOffice.org
Sun Microsystems
2. Outline
The What and the Where of the DrawingLayer
What are the problems?
How does the architecture look now?
Migration plan
XCanvas: recap
How was XCanvas integrated?
Demo
3. DrawingLayer: Where and What For?
Part of module svx
Used from all apps, to view & control Draw shapes
Top Layer Mid Layer Writer Calc Impress Base IDE Math Wizards
XML BASIC Utilities i18n Framework VCL GUI UNO CUI GUI UNO CUI UNO
FWK System Integration ODF Common GUI Drawing Layer Help 4.
Problems With Current DrawingLayer
Model and view basically in one object
deep inheritance and usage of concrete instances, with app
framework, control layer, and VCL
(almost) no points of customization:
impossible to exchange render backend
extremely hard to add new shape types
rendering is a crosscutting concern
5. DrawingLayer Rework
Split up into two CWS:
Overlay/Interaction/BaseGfx stuff: aw024. Will hit HEAD
soon
DrawingLayer primitives: aw033
Needs the changes from aw024 merged in, and then at least year
additional effort