[GSOC] Tiled Rendering, ahunt, Weekly Report 01 / WK22
andrzej at ahunt.org
Sun May 25 11:35:02 PDT 2014
The last 2-3 weeks I've been working on the following:
* Pushing the tiled rendering api out via LibLO:
** Initially by painting to an X11 "context" (I.e. the 5+ handles that
*** Was quite horrible, and not at all cross platform. Also results in a
background window being
shown as we have to use one of the X11 backends for this (and
they all show a full
window for the SalFrame which every document creates...).
** Ported to using bitmap buffer rendering (i.e. using the svp backend),
and simply returning
a pointer to the basebmp BitmapDevice internal buffer.
** Further modified to allow feeding in an arbitrary buffer (going via
svp SvpSalVirtualDevice -> basebmp BitmapDevice) -- this is a
little finicky as the buffer
is liable to be ignored if the VirtualDevice's size is changed at
any point -- but seems to
work fine for now.
** Also added support for setting top-to-bottom rendering direction (svp
assumes that the
buffers should be painted bottom-to-top, gtk the opposite -- we can
now set this freely,
saving us direct buffer manipulation).
* Moved bitcount->colourspace mapping into a central place for svp,
of the defaults. (Previously there was a hardcoded assumption that
BGR (or ABGR) was used
for 24 (or 32 bit) colours. In our case we need RGB(A) for use in gtk
(and similarly for qt AFAICS).)
** We just use 32 bit for now as that already has RGBA/ARGB/ABGR/BGRA
implementation, we could
quite easily allow the RGB/BGR choice for 24 bit too AFAICS (and
allow arbitrary choie via the
libLO API if appropriate).
** The alpha channel doesn't actually work -- for now I have to manually
overwrite it in the tiled
rendering app to make the document visible -- still need to dig
into this in more detail.
* Miscellaneous reading around calc wrt. where tiled rendering should
* Miscellaneous digging around vcl.
Current work is happening on feature/gtkbmptiledviewer, the app is under
(The feature/gtktiledviewer branch is the X11 rendering early version of
(Unfortunately I'm still in the middle of uni. projects for another 1.5
weeks so not fully free yet...)
More information about the LibreOffice