# 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.
tion value='distro/cib/libreoffice-6-3'>distro/cib/libreoffice-6-3
distro/cib/libreoffice-6-4
distro/collabora/cd-5.3
distro/collabora/cd-5.3-3.1
distro/collabora/cd-5.3-3.2
distro/collabora/cd-5.3-3.4
distro/collabora/co-2021
distro/collabora/co-22.05
distro/collabora/co-22.05-testflight
distro/collabora/co-23.05
distro/collabora/co-24.04
distro/collabora/co-24.04.10
distro/collabora/co-24.04.3
distro/collabora/co-24.04.4
distro/collabora/co-24.04.5
distro/collabora/co-24.04.6
distro/collabora/co-24.04.7
distro/collabora/co-24.04.8
distro/collabora/co-24.04.9
distro/collabora/cp-4.0
distro/collabora/cp-4.1
distro/collabora/cp-4.2
distro/collabora/cp-4.3
distro/collabora/cp-4.4
distro/collabora/cp-5.0
distro/collabora/cp-5.1
distro/collabora/cp-5.3
distro/collabora/cp-5.3-desktop
distro/collabora/cp-6.0
distro/collabora/cp-6.0-29
distro/collabora/cp-6.2
distro/collabora/cp-6.4
distro/collabora/dcm-6.2
distro/collabora/dcm-7.5
distro/collabora/dcm-7.6
distro/collabora/libreoffice-4.0.6.2
distro/collabora/libreoffice-7-5+backports
distro/collabora/libreoffice-7-6+backports
distro/collabora/lof-4.3
distro/collabora/lov-4.4
distro/collabora/lov-5.0
distro/collabora/lov-5.1
distro/collabora/lov-5.2
distro/collabora/lov-6.0.4
distro/collabora/lov-6.0.5
distro/collabora/lov-6.1
distro/collabora/lov-6.4
distro/collabora/viewer
distro/collabora/viewer2
distro/escriba/escriba-5.2
distro/escriba/escriba-5.2.1
distro/escriba/escriba-5.4
distro/lhm/libreoffice-4-1-6+backports
distro/lhm/libreoffice-5-2+backports
distro/lhm/libreoffice-6-1+backports
distro/lhm/libreoffice-6-4+backports
distro/lhm/libreoffice-7-0+backports
distro/lhm/libreoffice-7-1+backports
distro/lhm/libreoffice-7-2+backports
distro/lhm/libreoffice-7-3+backports
distro/lhm/libreoffice-7-4+backports
distro/lhm/libreoffice-7-5+backports
distro/lhm/libreoffice-7-6+backports
distro/mimo/mimo-4-1-4-2
distro/mimo/mimo-5-4-7-2
distro/mimo/mimo-6-0
distro/mimo/mimo-6-1
distro/mimo/mimo-6-2
distro/mimo/mimo-6-3
distro/mimo/mimo-6-4
distro/mimo/mimo-7-0
distro/mimo/mimo-7-1
distro/mimo/mimo-7-2
distro/mimo/mimo-7-3
distro/mimo/mimo-7-4
distro/mimo/mimo-7-5
distro/mimo/mimo-7-6
distro/nisz/libreoffice-6-4
distro/nisz/libreoffice-7-0
distro/nisz/libreoffice-7-1
distro/suse/suse-3.6
distro/suse/suse-3.6-appup
distro/suse/suse-3.6.3
distro/suse/suse-4.0
distro/suse/suse-4.0.3
distro/ubuntu/oneiric-3.4
distro/ubuntu/oneiric-3.4-all
distro/vector/vector-24.2
distro/vector/vector-24.2-release
distro/vector/vector-5.4
distro/vector/vector-7.0
distro/vector/vector-7.0-10.0
distro/vector/vector-7.5
distro/vector/vector-7.5.9
distro/vector/vector-7.5.9-release
distro/vector/vtext-6.5
feature/5-1-pick
feature/BorderlineFix
feature/OperationSmiley
feature/RotGrfFlyFrame
feature/RotateFlyFrame
feature/RotateFlyFrame2
feature/RotateFlyFrame3
feature/SOSAW080
feature/SfxShell_refcount
feature/SwFrameBorder
feature/accessibilitycheck
feature/accfixes2
feature/allo_contract34185
feature/allo_contract45533
feature/allo_contract45533b
feature/autostyle
feature/barcode
feature/base-preview
feature/benchmarks
feature/borderline3
feature/bplustree
feature/cairo
feature/calc-coordinates
feature/calc-data-table
feature/calc-parallel
feature/calctiledrendering
feature/calctiledrendering2
feature/calctiledrendering3
feature/calctiledrendering4
feature/calctiledrendering5
feature/calctiledrendering_alt
feature/calctiledrendering_attempt3
feature/calctiledrendering_attempt3_2
feature/calczoom
feature/chained-text-boxes
feature/change-tracking
feature/chart-style-experiment-markus
feature/chartdatatable
feature/cib_contract101
feature/cib_contract116
feature/cib_contract136
feature/cib_contract138
feature/cib_contract138b
feature/cib_contract138c
feature/cib_contract138d
feature/cib_contract138e
feature/cib_contract139
feature/cib_contract152
feature/cib_contract152b
feature/cib_contract3197
feature/cib_contract3753
feature/cib_contract3756
feature/cib_contract3756b
feature/cib_contract4236
feature/cib_contract4236b
feature/cib_contract49
feature/cib_contract49b
feature/cib_contract49c
feature/cib_contract49d
feature/cib_contract561
feature/cib_contract57
feature/cib_contract57b
feature/cib_contract57c
feature/cib_contract57d
feature/cib_contract57d+hotfix
feature/cib_contract57d_p1
feature/cib_contract57e
feature/cib_contract57l
feature/cib_contract6721b
feature/cib_contract6721c
feature/cib_contract7409
feature/cib_contract8161
feature/cib_contract891
feature/cib_contract891b
feature/cib_contract891c
feature/cib_contract935
feature/cib_contract935b
feature/clipboard
feature/cmis
feature/components
feature/controlstate
feature/coretext
feature/coverrest-featuretests
feature/cp-5.0-cairo-svp
feature/cpu_intrinsics_support
feature/custom-widgets
feature/dataprovider
feature/debugevent
feature/dematurize01
feature/dialog-screenshots
feature/docking_windows
feature/docx-commentsex
feature/drawinglayercore
feature/drawinglayercore2
feature/droid_calcimpress3
feature/droid_calimpress4
feature/drop-findcmap
feature/editviewoverlay
feature/eszka
feature/extended-tooltips
feature/external-data-ui
feature/fastparser
feature/firebird-sdbc
feature/firebird-sdbc2
feature/firebird-sdbc3
feature/fixstyles3
feature/fontsubtitutions
feature/foo
feature/gbuild_cli
feature/gccwrapper
feature/glyphy
feature/go2
feature/gpg4libre
feature/gpg4libre-5-4
feature/gpg4libre-6-0
feature/gpg4libre2
feature/graphicobject
feature/gsoc-basic-ide-completion-and-other-bits
feature/gsoc-calc-enhanced-db-range
feature/gsoc-svm-writer
feature/gsoc-uitest-2019
feature/gsoc14-colors
feature/gsoc14-draw-chained-text-boxes
feature/gsoc14-draw-text-background-color
feature/gsoc14-libcmis
feature/gsoc14-libcmis2
feature/gsoc14-personas
feature/gsoc14-personas2
feature/gsoc15-online-update
feature/gsoc15-open-remote-files-dialog
feature/gsoc17-revamp-customize-dialog
feature/gsoc19-chart-style
feature/gsoc2011_wizards
feature/gsoc24-lua
feature/gtk3_kde5
feature/gtk3nativedialogs
feature/gtktiledviewer
feature/ia2
feature/ia2.2
feature/ia2.3
feature/ia2.4
feature/ia2.5
feature/improvexlsximport
feature/instdirlinktargets
feature/item_refactor2
feature/jsdialogs
feature/jssidebar
feature/lfrb-vcl-opengl
feature/libffi
feature/lok-calc-rtl
feature/lok-clipboard
feature/lok_cellcursor
feature/lok_dialog
feature/lok_dialog-backport
feature/lok_dialog2
feature/lok_sofficemain
feature/lok_sofficemain2
feature/mac-opengl-fixes
feature/macOS-weld
feature/mailmerge-toolbar
feature/mar-updater
feature/mariadb
feature/misc-vba-rework
feature/mork
feature/nativealpha
feature/notebookbar
feature/notes-refactoring
feature/ooxml-analyze
feature/opengl-canvas-rework
feature/opengl-transitions-rework
feature/opengl-vcl-text
feature/orcus-continuous-integration
feature/orcus-odf
feature/orcus-odf-rebased
feature/orcus-odf-rebased2
feature/orcus-rebased
feature/owncloud-provider-for-android
feature/pdfium-master
feature/perfwork4
feature/perfwork5
feature/pivotcharts
feature/print_revamp
feature/priorities
feature/profilesafemode
feature/propose-master-cib
feature/pytable
feature/pyweb-wizard
feature/qt5-win+mac
feature/refactor-god-objects
feature/rendercontext
feature/resolve-comments
feature/scaling-geometry-provider
feature/screenshotannotation
feature/sgexperiment
feature/skia
feature/slidehack
feature/slidehack2
feature/slideshow_onlySprites
feature/slideshowprimitives
feature/sparklines
feature/spellig_popup_SID
feature/stub_writer
feature/svg-export
feature/svg-optimisations
feature/svg-optimisations-5-0
feature/sw-delete-undo-rework