At the moment under Linux etc the svp surface format is already
basebmp::BGR[X|A] by default which matches cairo's RGB24/ARGB32 formats
and OpenGL's GL_BGRA format.
libreofficekit however is currently using basebmp:RGBA on all
platforms, which matches OpenGL's GL_RGBA and GdkPixbuf's layout, but
not cairo's layout.
Our android infrastructure splats these buffers into GL_RGBA opengl
textures and lacks support for GL_BGRA.
Here's some screen shots of the goodness that using cairo on the svp
surfaces enables
http://caolanm.blogspot.ie/2015/11/better-polygon-rendering-in-gtk3.htm
l
So...
What my patch sequence currently proposes is to require cairo on all
svp-using platform and to use cairo-compatible surface formats
universally for svp internally and do as little conversion to other
formats as possible.
To get around the android issue that we have to use GL_RGBA eventually,
the changes patch our bundled-cairo on that platform to have GL_RGBA
compatible RGB24/ARGB32 instead of the default GL_BGRA compatible ones.
In other words use cairo everywhere svp is used but change cairo itself
to suit our android implementation.
For online which takes the svp surface data and turns it into pngs to
send to the client then https://gerrit.libreoffice.org/#/c/20092/1 shou
ld convert that cairo-format data into png format correctly. This is
untested, I know it builds though :-)
Alternatively of course we could
use basebmp::BGR[X|A] internally and convert the results of paintTile
to basebmp:RGBA and leave what libreofficekit exposes unchanged.
or continue to allow different internal formats for svp and just not
use cairo on them and retain the suckiness for those for android and
online.
C.
Context
- svp pixel fomats and cairo · Caolán McNamara
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.