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
Context
- [GSOC] Tiled Rendering, ahunt, Weekly Report 01 / WK22 · Andrzej Hunt
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.