diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
commit | ed5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch) | |
tree | 7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /canvas/README.md | |
parent | Initial commit. (diff) | |
download | libreoffice-upstream.tar.xz libreoffice-upstream.zip |
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | canvas/README.md | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/canvas/README.md b/canvas/README.md new file mode 100644 index 000000000..459b588d6 --- /dev/null +++ b/canvas/README.md @@ -0,0 +1,53 @@ +# UNO-based Graphics Backend + +UNO-based graphics backend, lesser impedance to modern graphics APIs +than vcl. + +## The canvas Framework + +The `canvas` framework is the successor of the system GUI and graphics +backend VCL. Basic functionality is available, supplying just as much +features as necessary to provide a VCL-equivalent feature set (except +proper BiDi/CTL support). + +The `canvas` framework consists of the following two modules, `canvas` and +`cppcanvas`. Additionally, a new generic graphics tooling is used (but +not exclusively by the canvas, Armin's drawinglayer module also make +use of it), which resides in `basegfx`. + +The UNO API used by the canvas is primarily under +`css::rendering`, with `css::rendering::XCanvas` +being the central interface. + +## The slideshow Engine + +The `slideshow` engine has replaced the former Impress-embedded +presentation framework with a fully independent UNO component, and it +is based on the canvas. Some features used there are only available +from `canvas`, like double-buffering, and hardware-accelerated +alpha-blending (currently not on all platforms). + +## Cairo canvas + +Cairo `canvas` is one of backends of canvas component. `canvas` is mostly +used for slideshow rendering and also for emf+ rendering. we hoped it +will even be used by drawing layer, but it didn't happen (yet?) for +API look at `offapi/com/sun/star/rendering/`, the implementation is in +`canvas` and `cppcanvas` modules. + +Cairo `canvas` backend uses Cairo library for rendering. Main advantage +is support of alpha transparency and in some cases accelerated +rendering. + +The backend itself is quite old and stable, not many changes in that +area lately, mostly changes for emf+ rendering, communication with +vcl and bugfixes + +## Future Works + +Look at Cairo `canvas` and situation when it is used +(mostly slideshow). + +## TODO +There still might be more cases when we +can save some roundtrips when exchanging data with vcl. |