1 # UNO-based Graphics Backend
3 UNO-based graphics backend, lesser impedance to modern graphics APIs
6 ## The canvas Framework
8 The `canvas` framework is the successor of the system GUI and graphics
9 backend VCL. Basic functionality is available, supplying just as much
10 features as necessary to provide a VCL-equivalent feature set (except
11 proper BiDi/CTL support).
13 The `canvas` framework consists of the following two modules, `canvas` and
14 `cppcanvas`. Additionally, a new generic graphics tooling is used (but
15 not exclusively by the canvas, Armin's drawinglayer module also make
16 use of it), which resides in `basegfx`.
18 The UNO API used by the canvas is primarily under
19 `css::rendering`, with `css::rendering::XCanvas`
20 being the central interface.
22 ## The slideshow Engine
24 The `slideshow` engine has replaced the former Impress-embedded
25 presentation framework with a fully independent UNO component, and it
26 is based on the canvas. Some features used there are only available
27 from `canvas`, like double-buffering, and hardware-accelerated
28 alpha-blending (currently not on all platforms).
32 Cairo `canvas` is one of backends of canvas component. `canvas` is mostly
33 used for slideshow rendering and also for emf+ rendering. we hoped it
34 will even be used by drawing layer, but it didn't happen (yet?) for
35 API look at `offapi/com/sun/star/rendering/`, the implementation is in
36 `canvas` and `cppcanvas` modules.
38 Cairo `canvas` backend uses Cairo library for rendering. Main advantage
39 is support of alpha transparency and in some cases accelerated
42 The backend itself is quite old and stable, not many changes in that
43 area lately, mostly changes for emf+ rendering, communication with
48 Look at Cairo `canvas` and situation when it is used
52 There still might be more cases when we
53 can save some roundtrips when exchanging data with vcl.