Dear All,
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
SystemGraphicsData contains
on Linux).
*** 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
vcl VirtualDevice->
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,
implemented overriding
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
happen.
* Miscellaneous digging around vcl.
Current work is happening on feature/gtkbmptiledviewer, the app is under
instdir/program/gtktiledviewer.
(The feature/gtktiledviewer branch is the X11 rendering early version of
things.)
(Unfortunately I'm still in the middle of uni. projects for another 1.5
weeks so not fully free yet...)
Cheers,
Andrzej
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice