[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gEDA-dev: Gschem and Cairo graphics library



Tomaz,

I really like your little experiment.  The output does look noticeably 
better.  Furthermore, I think that ciaro might be able to simplify the 
current printing and image backends by consolidating code into a library 
that gets maintained by somebody else (GTK).  Lastly, I think that this 
would force us to address some of the weird drawing glitches and other 
problems that result from the use of XOR style drawing and undrawing.

Thanks for spending your time on this,
David Carr

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@moria.seul.org
> http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev
>   



_______________________________________________
geda-dev mailing list
geda-dev@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev