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 _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice