gEDA-dev: Gschem and Cairo graphics library

Stuart Brorson sdb at cloud9.net
Sun Jul 30 08:53:08 EDT 2006


Sorry for the top post.

I also apologize in advance for pouring cold water on your project.  I
took a look at the screenshots and the Cairo stuff does look slightly
whizzier than the GTK stuff.  I also hate to discourage a developer
who just took on a project and did it.  That's the spirit we like
around here!

However, you've just introduced another external dependency into the
build, which isn't necessarily welcome, IMO.  Indeed, one of our bigger
problems with gEDA/gaf is that users frequently can't build the
package due to missing dependencies.   This is not only a problem for
the install CD, but apparently also happens for folks building from
source, and from users trying to install RPMs by hand.

Developers say "just use [yum, apt-get, etc]" to get the dependencies,
but our target audience is not only other software developers who know
these tools, but also ordinary users -- students, hobbiests,
technicians, working engineers, and so on.  They are very often almost
completely clueless w.r.t. administering a unix system, and are
quickly put off by our software when they can't build it (and don't
know how to handle the dependency issue).  From reading the
complaints on this list as well as on the web, I've concluded that we
lose a good number of potential users before they ever even draw a
schematic since they can't install gEDA.  And the biggest reason they
can't install is the dependency problem.

Therefore, I am against any patch which pulls in yet another library,
particularly one which implements just a little graphical improvement,
i.e. some eye candy.

Of course, I don't make the decision about what patches are accepted
and which are not.  Ales is the guy who decides.  The above is just my
opinion, but I do think it very unwise to introduce another dependency
into gEDA for just a little eye candy.  Thank you in any event for
having the moxie to do this project!

Stuart



On Sun, 30 Jul 2006, Tomaz Solc wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hi everyone
>
> I've been experimenting with the Cairo graphics library.
>
> Cairo is a free 2D graphics library that provides drawing operations
> similar to PostScript. It can draw beautifully anti-aliased output to
> the screen or to a PostScript or SVG file. It is already integrated into
> GTK+ 2.8 and in the future it will also support hardware acceleration
> (See http://cairographics.org)
>
> I've made a proof-of-concept patch that uses Cairo instead of plain GDK
> to draw solid line objects to the screen. Since solid line seems to be
> the most-used object in Gschem (it is used to draw text for example) I
> think this is a pretty good demonstration of Cairo's capabilities. You
> can find the patch and screenshots at the following address:
>
> http://www.tablix.org/~avian/gschem-cairo
>
> Some notes about the patch:
>
> o Antialiasing helps to make schematics and labels readable at smaller
> zoom factors (see screenshots). It also creates some new problems: when
> antialiased objects are deleted from the screen (for example: a green
> line is overwritten by a black line), a dim outline remains.
>
> o On my computer (Athlon XP 2500+) GSchem becomes too slow to be useful
> with this patch. Possible optimizations: Don't create a new Cairo
> context when drawing each line (trivial, doesn't help much). Use
> optimized Cairo text renderer instead of custom font made with line
> segments (complicated).
>
> o Less code duplication: with Cairo it would be possible to use a single
> drawing function for PostScript and screen output. It is fairly simple
> to convert code that uses GDK to Cairo.
>
> o Currently, all screen coordinates are stored as integers. I had to
> modify libgeda to get coordinates as floating point numbers. If Cairo
> would be used throughout GSchem, I believe some non-trivial
> modifications to libgeda would have to be made.
>
> o Breaks compatibility with older GTK versions.
>
> Best regards
> Tomaz Solc
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.3 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFEzJUlsAlAlRhL9q8RAlVWAKCswdJHritEJusIPbHH0RWJlMh42QCfXqEd
> ApKzFDT3JOVBYaFQq4con+4=
> =8FmM
> -----END PGP SIGNATURE-----
>
>
> _______________________________________________
> geda-dev mailing list
> geda-dev at moria.seul.org
> http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev
>


More information about the geda-dev mailing list