← Back to team overview

kicad-developers team mailing list archive

Re: Plotting/fabricating in nanometers

 

Hi Dick,

> Supporting wxDC in the GAL is a curious expenditure of time.  Did you see
> the discussion
> about class PAINTER ?

I've written that, because I thought it's nice to have something that's faster than cairo and still works when there is no good OpenGL support. Also perhaps it makes the transition to the GAL easier - because KiCad uses currently wxDC. Sure it required a bit of time. 

> class PAINTER is a *compile time* implementation abstraction.
> 
> So I don't see putting wxDC behind the GAL useful when when goes to
> implement the wxDC
> version of a PAINTER.
> 
> The goal of PAINTER is to minimize propagation of any graphics API, GAL or
> otherwise.
> 
> Propagation is that what you spread around, like planting seeds all over
> the place. 

Perhaps I've missed something about the PAINTER class. I'll look in the archive.

Well, I've implemented the GAL, that you're able to change the graphics backend at runtime. A typical use case would be to use the OpenGL variant for your screen and the cairo variant for exporting PDF files.
Subjectively I'd say that the most of the time is not spend by the function calls; but rather directly by the graphics backend and it's rasterizer (I have to measure the execution time). 
To prevent too much of these function calls I've implemented the group function - with it you can draw a batch of graphic objects - I've not yet made a benchmark - but I'm sure that we gain some speed with it.

Another goal was to make it to use as easy as possible; basically you call the GAL with your objects in world coordinates - the GAL does the rest, the transformation to the screen, cursor, grid drawing etc.

--

Compilation time optimation makes sense, if we get really a significant speed up; but I'm sure we're less flexible. 

Bye,
Torsten

-- 
NEU: FreePhone 3-fach-Flat mit kostenlosem Smartphone!                                  
Jetzt informieren: http://mobile.1und1.de/?ac=OM.PW.PW003K20328T7073a


References