First week of GSoC passed reading, and reading a lot of code and
documentation especially Mozilla's gfx code and about openGL, and
finding out if we can somehow use their tiled rendering/opengl part in
LO.
After all of this, I came across few interesting things like Moz2D[1],
its stateless API against cairo's stateful API, and the best part is
that it is standalone. Mozilla has been using this and trying to
migrate whole of their code from Thebes to Moz2D. Its stateless API
also got some attention in C++ SG13[2] meeting to use Moz2D as
standard 2D graphics API in c++. Other than that, I feel that other
Mozilla's graphics code is inextricably interleaved with other Mozilla
code, and it might not be possible to directly use this in LO. It also
involves a lot of other things like layers[3], composting[4], and
off-main-thread compositing (OMTC)[5], which we might not need at all.
We are currently using paintTile() method to get the bitmap/textures
from LO core in gtktiledviewer, and we want to upload this texture to
GPU. We can do it either directly, that is, feed to openGL directly,
or we can use some Mozilla gfx code for this, as it has extreme
debugging/testing already, which needs a little bit of more research.
I am already in touch with gfx team at Mozilla and would be
researching about it in parallel while I do the following task for the
next week. At this point, it seems that it might be better to use the
Mozilla code as a reference only to implement opengl/tiled rendering
in LO, and not reuse it directly.
Next week:
* Use partial rendering in gtktiledviewer; don't render invisible
tiles. gtktiledviewer also uses naive gtkTable to compose images. I
would be replacing it with a cairo canvas and then use it to paint
only visible tiles in it. Note that, we are not yet using openGL in
this step.
[1] https://wiki.mozilla.org/Platform/GFX/Moz2D
[2] https://groups.google.com/forum/#!topic/mozilla.dev.platform/elOCPAV62eU
[3] https://wiki.mozilla.org/Gecko:Layers
[4] https://wiki.mozilla.org/Gecko:Overview#Compositing
[5] https://wiki.mozilla.org/Platform/GFX/OffMainThreadCompositing
--
Regards,
Pranav Kant
http://pranavk.me
Context
- [GSoC 15] Tiled rendering - Weekly report #1 · Pranav Kant
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.