Date: prev next · Thread: first prev next last
2015 Archives by date, by thread · List index


I was able to change the existing LOKDocView widget to start using
GtkDrawingArea instead of previously GtkTable approach. This leaves us
with enough flexibility to just paint only the visible tiles. The
management of tiles is also moved to a separate class, TileBuffer. The
TileBuffer caches the tiles and renders only when tiles gets
invalidated in the visible area or a new visible area is exposed on
the screen.

I am also in the process of modernizing the LOKDocVIew widget to using
latest GObject practices. The widget doesn't seem to be exploiting the
GObject to the fullest, for example, using GType/GObject macros and
its private mechanism. This would help us in creating language
bindings via gobject-introspection[3], which would also help other
languages to use this widget, say python. It would be great seeing
someone using this widget from python or any other language and
interacting with LibreOffice.

The current state of the widget[1] doesn't seem to produce any
regressions. We have had a list of tests that I manually tested on the
widget, and its performing well now with added performance boosters
such as TileBuffer. Though, I do uncovered a bug[2] which is not a
regression, and can also be reproduced on the master. This seems to be
some glitch on the LO core side, though, and not due to the widget.

Our next step would be to polish the LOKDocView widget as GObject
class, and move towards including the openGL support for rendering
tiles. We can directly use GtkGLArea, which would automatically
provide the openGL support in the widget, instead of current
GtkDrawingArea, but I guess, separating the tiled opengl rendering
part from the LOKDocView widget would leave the scope of using this
TileBuffer in other parts of LO too, which would also gradually lead
to its improvement. Further GtkGLArea is quite new (since GNOME
release 3.16), so it might not be good to use this for now.



[1] http://cgit.freedesktop.org/libreoffice/core/log/?h=feature/gsoc-tiled-rendering
[2] https://bugs.documentfoundation.org/show_bug.cgi?id=91887
[3] https://wiki.gnome.org/Projects/GObjectIntrospection

-- 
Regards,
Pranav Kant
http://pranavk.me

Context


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.