caolan is currently certified at Master level.

Name: Caolan McNamara
Member since: 2000-02-07 09:11:47
Last Login: 2014-01-20 15:20:01

FOAF RDF Share This

Homepage: http://www.skynet.ie/~caolan

Notes:

I sometimes write stuff

Projects

Articles Posted by caolan

Recent blog entries by caolan

Syndication: RSS 2.0

gtk3 vclplug, some more gesture support

Now gtk3 long-press support to go with swipe

With the demo that a long-press in presentation mode will bring up the context menu for switching between using the pointer for draw-on-slide vs normal slide navigation.

Syndicated 2015-03-26 14:53:00 (Updated 2015-03-26 14:53:33) from Caolán McNamara

gtk3 vclplug, basic gesture support

gtk3's gesture support is the functionality I'm actually interested in, so now that presentations work in full-screen mode, I've added basic GtkGestureSwipe support to LibreOffice (for gtk3 >= 3.14) and hooked it up the slideshow, so now swiping towards the left advances to the next slide, to the right for the the previous slide.

Syndicated 2015-03-26 09:35:00 (Updated 2015-03-26 09:35:24) from Caolán McNamara

gtk3 vclplug, full-screen presentation canvas mode

Newly added simple support to the gtk3 vclplug for "canvas" support which is the thing we draw onto for presentations. Which means the gtk3 vclplug now supports full screen presentations. Which required a whole massive pile of reorganization of the existing canvas backends to move them from their own per-platform concept in canvas to the per-desktop concept in vcl.

So now rather than having only one cairo canvas backend based on the xlib apis which is for "Linux" we have a cairo canvas for each vcl plug. The old school xlib one is moved from inside its #ifdef LINUX in canvas to the shared base of the gtk2, kde, etc backends in vcl, and there is now a new one for gtk3

Presumably there are lots of performance gains to be made to the new canvas backend seeing as I'm just invalidating the whole slide window when the canvas declares that it's flush time but slides appear to appear instantaneously for me and fly ins and move around a patch effects are smooth even in -O0 debug mode so I'll hold back on any optimizations efforts for now.

Syndicated 2015-03-23 13:08:00 (Updated 2015-03-23 13:08:33) from Caolán McNamara

12 Mar 2015 (updated 18 Mar 2015 at 16:13 UTC) »

gtk3 vclplug,

I've been hacking the gtk3 vclplug for LibreOffice recently, here's the before image after scrolling up and down a few times. UI font not rendered the same as the rest of the desktop, bit droppings everywhere, text missing from style listbox, mouse-wheel non-functional

 Here's today's effort. Correct UI font, scrolling just works, mouse-wheel functional, no bit droppings.



After making it possible to render with cairo to our basebmp surface initially for the purposes of rendering text, I tweaked things so that instead of re-rendering everything in the affected area on a "draw" signal we do our initial render into the underlying basebmp surface on resize events and then trust that our internally triggered paints will keep that basebmp up to date and gtk_widget_queue_draw_area those areas as they are modified in basebmp and just blit that basebmp to the gtk3 cairo surface on the resulting gtk_widget_queue_draw_area- triggered "draw". This is pretty much what we do for the MacOSX backend.

The basebmp is now cairo-compatible so the actual LibreOffice->Gtk3 draw becomes a trivial direct paint to the requested area in the gtk surface from our basebmp surface

With our cairo-compatible basebmp surface the gtk3 native rendering stuff for drawing the buttons and menus etc can then render directly into that basebmp at the desired locations removing a pile of temporary surfaces, conversion code and bounds-checking hackery.

Further under the hood however the headless svp plug that the gtk3 inherits from had a pair of major ultra-frustrating bugs which meant that while it looked good in theory, in practice it still was epically failing wrt bit dropping in practice. Now solved are the two underlying clipping-related bugs. One where an optimization effort would trigger creating an overly clipped region, and another where attempts to copy from the surface were clipped out by the clip region.

Still got some glitches in the impress sidebar and of course the above theming engine is still missing a pile of stuff and slide-show/canvas mode needs implementing, but I'm heartened. Its not complete, but its now less traffic accident and more building site.

Syndicated 2015-03-12 16:54:00 (Updated 2015-03-18 15:41:37) from Caolán McNamara

gtk3 vclplug, text rendering via cairo

The LibreOffice gtk3 vclplug is currently basically rendering everything via the "svp" plugin code which renders to basebmp surfaces and then blits the result of all this onto the cairo surface belonging to the toplevel gtk3 widget

So the text is rendered with the svp freetype based text rendering and looks like this...






With some hacking I've unkinked a few places and allowed the basebmp backend to take the same stride and same same rgbx format as cairo, so we can now create a 24bit cairo surface from basebmp backing data which allows us to avoid conversions on basebmp->cairo and allows us to render onto a basebmp with cairo drawing routines, especially the text drawing ones. So with my in-gerrit-build-queue modifications it renders the same as the rest of the gtk3 desktop.

Syndicated 2015-03-02 15:16:00 (Updated 2015-03-02 15:16:43) from Caolán McNamara

239 older entries...

 

caolan certified others as follows:

  • caolan certified hp as Master
  • caolan certified raph as Master
  • caolan certified alan as Master
  • caolan certified lewing as Master
  • caolan certified miguel as Master
  • caolan certified jmason as Journeyer
  • caolan certified jwz as Journeyer
  • caolan certified joey as Journeyer
  • caolan certified jab as Journeyer
  • caolan certified sterwill as Journeyer
  • caolan certified cuenca as Journeyer
  • caolan certified shaver as Master
  • caolan certified MJ as Journeyer
  • caolan certified slogan as Journeyer
  • caolan certified alecm as Master
  • caolan certified aoliva as Master
  • caolan certified btenison as Journeyer
  • caolan certified hpa as Master
  • caolan certified Marcus as Master
  • caolan certified valen as Apprentice
  • caolan certified samth as Journeyer
  • caolan certified erAck as Journeyer
  • caolan certified Malkuse as Apprentice
  • caolan certified martinicus as Journeyer
  • caolan certified sander as Journeyer
  • caolan certified cinamod as Master
  • caolan certified hub as Journeyer
  • caolan certified wlach as Master

Others have certified caolan as follows:

  • bombadil certified caolan as Journeyer
  • mjs certified caolan as Journeyer
  • alan certified caolan as Journeyer
  • jmason certified caolan as Journeyer
  • duncan certified caolan as Master
  • jab certified caolan as Journeyer
  • mblevin certified caolan as Journeyer
  • Jody certified caolan as Master
  • andrei certified caolan as Journeyer
  • bernhard certified caolan as Journeyer
  • btenison certified caolan as Master
  • billf certified caolan as Journeyer
  • camber certified caolan as Journeyer
  • jrennie certified caolan as Journeyer
  • nils certified caolan as Journeyer
  • claudio certified caolan as Journeyer
  • cenobyte certified caolan as Journeyer
  • valen certified caolan as Journeyer
  • cuenca certified caolan as Journeyer
  • samth certified caolan as Journeyer
  • ole certified caolan as Journeyer
  • jules certified caolan as Journeyer
  • thomasq certified caolan as Master
  • tja certified caolan as Journeyer
  • nixnut certified caolan as Journeyer
  • manu certified caolan as Journeyer
  • yakk certified caolan as Master
  • pixelbeat certified caolan as Journeyer
  • jelly certified caolan as Master
  • inri certified caolan as Journeyer
  • nny certified caolan as Journeyer
  • chalst certified caolan as Master new
  • erAck certified caolan as Master
  • sander certified caolan as Journeyer
  • martinicus certified caolan as Master
  • juhtolv certified caolan as Master
  • cinamod certified caolan as Master
  • hub certified caolan as Master
  • ariya certified caolan as Master
  • AlanHorkan certified caolan as Master
  • wlach certified caolan as Master
  • lerdsuwa certified caolan as Master
  • kclayton certified caolan as Master
  • adl certified caolan as Master
  • janneke certified caolan as Journeyer
  • yosch certified caolan as Master

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!