To anyone who's tested the cairo code in git HEAD, or after I added
support for transparency, I've fixed a dumb mistake which significantly
reduced its performance.

Basically, I divided by 256, rather than 255 for computing cairo colours
from gEDA's internal colours, meaning every object was very slightly
translucent. This causes it to hit slower paths in the video card
drivers than solid filled objects.

With this change (and another important modification), the mesh grid can
be drawn in cairo without any performance impact. (In fact, there might
be some gain due to grouping of operations when sent to the X11 server).

It "might" have been possible to do better using gdk_draw_segments
rather than lots of calls to gdk_draw_line, but I didn't try that.

The current code manages about 80fps on my box viewing a grid at default
title-box zoom level. (NB: This is with text rendering disabled)

(Before, the benchmark with cairo drawn grid was about 6fps!)

Best wishes,

-- 
Peter Clifton

Electrical Engineering Division,
Engineering Department,
University of Cambridge,
9, JJ Thomson Avenue,
Cambridge
CB3 0FA

Tel: +44 (0)7729 980173 - (No signal in the lab!)



_______________________________________________
geda-dev mailing list
[email protected]
http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev

Reply via email to