xref: /trunk/main/canvas/overview.txt (revision cdf0e10c)
1*cdf0e10cSrcweirThe new OOo Canvas Framework
2*cdf0e10cSrcweir============================
3*cdf0e10cSrcweir
4*cdf0e10cSrcweirThe new OpenOffice.org canvas framework is the successor of the system
5*cdf0e10cSrcweirGUI and graphics backend VCL. Basic functionality is available,
6*cdf0e10cSrcweirsupplying just as much features as necessary to provide a
7*cdf0e10cSrcweirVCL-equivalent feature set (except proper BiDi/CTL support).
8*cdf0e10cSrcweir
9*cdf0e10cSrcweirFor migration purposes, the new canvas and VCL will be shipped with
10*cdf0e10cSrcweirOpenOffice.org for quite some time, allowing a step-by-step adaptation
11*cdf0e10cSrcweirof the applications. Therefore, the canvas and VCL must somehow
12*cdf0e10cSrcweirinteroperate, since new code, using the canvas, typically is embedded
13*cdf0e10cSrcweirin a VCL-based environment (for example, the OOo windows are still
14*cdf0e10cSrcweirprovided by VCL. To render into such a window via the canvas, a canvas
15*cdf0e10cSrcweirmust be constructable from a VCL window). Thus, essentially two new
16*cdf0e10cSrcweirmethods are provided at VCL's window, namely Window::GetCanvas() and
17*cdf0e10cSrcweirWindow::GetFullScreenCanvas(). Apart from that small link, canvas and
18*cdf0e10cSrcweirVCL are completely separated.
19*cdf0e10cSrcweir
20*cdf0e10cSrcweirThe canvas framework currently consists of the following two new
21*cdf0e10cSrcweirCVS modules, /gsl/canvas and /gsl/cppcanvas. Additionally, a new
22*cdf0e10cSrcweirgeneric graphics tooling is used (but not exclusively by the canvas,
23*cdf0e10cSrcweirArmin's recent drawing layer fixups also make use of it), which
24*cdf0e10cSrcweirresides in /graphics/basegfx. From these modules, six libraries are
25*cdf0e10cSrcweircurrently delivered, namely vclcanvas.uno.dll, javacanvas.jar,
26*cdf0e10cSrcweirdirectxcanvas.uno.dll, canvastools680mi.dll, cppcanvas680mi.dll, and
27*cdf0e10cSrcweirbasegfx680mi.dll.
28*cdf0e10cSrcweir
29*cdf0e10cSrcweir
30*cdf0e10cSrcweirThe new OOo slideshow engine
31*cdf0e10cSrcweir============================
32*cdf0e10cSrcweir
33*cdf0e10cSrcweirThe new OpenOffice.org slideshow engine will replace the current
34*cdf0e10cSrcweirImpress-embedded presentation framework with a fully independent UNO
35*cdf0e10cSrcweircomponent, and it will be based on the new canvas. In its current
36*cdf0e10cSrcweirstate, it is able to provide a basic set of functionality, enabling
37*cdf0e10cSrcweirthe playback of simple presentations. It furthermore provides features
38*cdf0e10cSrcweirlike double-buffering, hardware-accelerated alpha-blending (currently
39*cdf0e10cSrcweirnot on all platforms) and anti-aliased rendering of all primitives.
40*cdf0e10cSrcweir
41*cdf0e10cSrcweirIn a second step, this new slideshow engine will then be integrated
42*cdf0e10cSrcweirwith Impress model enhancements and extended PowerPoint import/export
43*cdf0e10cSrcweirfilters, to implement nearly all of PowerPoint's set of effects.
44*cdf0e10cSrcweir
45*cdf0e10cSrcweirThe new slideshow engine is currently not accessible from the office
46*cdf0e10cSrcweirUI, but included in the installations sets. Thus, other developers can
47*cdf0e10cSrcweirstart to use the new functionality, and base their own implementations
48*cdf0e10cSrcweiron top of that. For the records, the respective UNO implementation of
49*cdf0e10cSrcweirthe slideshow resides in the slideshow.uno.dll library.
50*cdf0e10cSrcweir
51