Re: Error with libart
"Drew Folta" <[email protected]> Thu, 16 Jan 2003 19:27:30 -0800 (PST)
| Newsgroups | gmane.comp.gnome.lib.libart.general |
|---|---|
| Message-ID | <[email protected]> |
Drew Folta said: > > From: Ayose <setepo setepo rinu org> >> *** attempt to put segment in horiz list twice >> *** attempt to put segment in horiz list twice >> *** attempt to put segment in horiz list twice > > I just ran into this. It was spitting the above message out when I was > trying to draw a stroked circle, with radius less than zero :) (Drawing > a filled circle worked OK; that is, it drew nothing and didn't > complain.) It never crashed for me (v2.3.10, rpm by RedHat). Oy, I was wrong about this. Turns out the problem is not when drawing circles with radius less than zero, but when drawing circles with a very broad line stroke. To be exact... r = circle radius w = width of line stroke if w >= 4r, kaboom Here's a self-contained example app... http://www.folta.net/drew/dots.c With a radius of 1.0, and line width of 3.9, it's OK. Same thing with width of 4.0 and it dies. Radius 12.0, line width 48.0, dies. OK, I guess that all makes some sense, once I think about what those numbers are asking libart to draw. Basically the inner circle of the stroke is being drawn past the circle itself. Soo... the fix is really in the domain of the user code: be careful of what you ask for :) Drew