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