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

Re: gEDA-user: KJWaves - new release (a r)



On Wed, 2008-01-09 at 18:23 +0000, a r wrote:
> On Jan 9, 2008 5:49 PM, Peter Clifton <pcjc2@xxxxxxxxx> wrote:
> > - responsive UI (retained-mode canvas etc),
> >
> > Did seem a little odd to me. We have a canvas (ok, we don't call it
> > that, but it is).
> 
> OK, I have assumed that gschem is rendering everything in a "paint"
> event because of perceived slow redraw.

It kindof was.. it blitted from a back-buffer. (Which it still does).
Many redraws would update the backbuffer and the main screen at once,
line by line (causing a re-compositing each time). The fix made for
1.3.0 and beyond was to ONLY update the backbuffer, and invalidates the
main screen buffer. The screen update is deferred until the app hits
idle, and blits the whole schematic in one go.

> > And by definition, the rendering model of a canvas is
> > retained. You put objects on it, they stay. (As opposed to a painting
> > API where we draw things continuously, and have to repaint when windows
> > cover regions and then become exposed again.
> 
> Well, yes. If there is a scene there is a canvas. There is still
> plenty of possible opimisations that can be applied to it, though.
> Spatial index with grouping (and caching), layers and "distance"
> metric for filtering out small objects, to name a few. Sure, nobody is
> going to put millions of transistors on a single schematic page but
> gschem should be able to efficiently draw schematics with several
> hundreds of instances on a single page (eg. extracted netlists).

A spatial index is something which probably needs / wants implementing
for the cairo port (which uses a completely expose driven drawing model,
no direct drawing into the backbuffer). So far, I haven't got round to
it.

-- 
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-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user