Re: guppi coor system



On Fri, May 26, 2000 at 09:54:15AM -0500, linas@linas.org wrote:
> I'd like to hear Jon weigh in, and I guess I am very sorry that his
> first exposure here is to such a contentious and volatile discussion.
> Jon, my apologies for coming on like a tornado.

Don't worry, I don't have a problem with tornados.

Sorry for remaining silent throughout this thread; there has been some
chaos at my day job (a major hail storm led to huge blackouts late
last week, and we've faced intermittent losses of power and
connectivity ever since) that has preoccupied me.

What you and Rob have described are how a proper drawing model for X
should be implemented.  However, this is beyond the scope of what I
need/want to do in Guppi.  I don't see any need for supporting things
like allowing arbitrary affine transforms of Guppi plots to be drawn
in windows.  And for performance reasons, I have to do some of my
rasterizations "by hand", which means that I've lost the ability to
write one generic piece of code that renders plots either to the
screen or to PostScript.  I use gnome-print for less
performance-critical parts and for rasterizing nice scaled,
anti-aliased fonts.

I'm sure that it would be possible to write a kick-ass, pipelined
drawing system that would do things right (i.e. as you describe them,
as opposed to the way X does them) that would offer all of the
performance needed --- but that is well beyond the scope of what I
want to do here.  I always have to struggle not to get bogged down in
interesting side-projects. :-)

In fact, it would be nice if someone wrote a "complex drawing" canvas
item that would do exactly this.  For moderately complex images (like
a scatterplot with 1000 points), making each dot an individual canvas
item imposes way too much overhead and kills performance.  To get
speed out of the canvas, you need "compound" canvas items that collect
all of the drawing into one.  (So in Guppi, all 1000 points of the
scatterplot are really just a single canvas item.)  Using an
anti-aliased item gets rid of a lot of X Protocol overhead, and also
lets you bypass X's broken drawing primitives.

> Actually, I just looked at gdk. I looks like a thin wrapper over X11.
> So thin that it makes me wonder why they bothered.... Win95
> portability?? 

I think the original motivation was just to hide some of the ugliness
of the Xlib API.

-JT

-- 
GNU/Linux: Free your mind and your OS will follow.





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