← Back to team overview

kicad-developers team mailing list archive

Graphics Abstraction Layer (was Re: wxDC & wxGraphicsContext Test)

 

> > > Ideas yes, but I'm sceptical about the integration into wxWidgets.
> > Another question is, if it's really better than a Cairo or Open GL
> > implementation.
> > Well we'd have to define "better". Don't know yet. Please be sure 
> > and look at both parts, not just the API (of which we don't ask much), 
> > the second part was the graphics stack, i.e. what is it built on.
> 
> "Better" means currently for me mainly the drawing speed and the quality of the needed method for KiCad. I've ported my benchmark to QT - and can say in general that the coding style, the documentation, features are indeed superiour to wxWidgets. Also you can mix OpenGL + 2D drawing.

Have you tried to set GTKCAIRO_BACKEND=gl in your enviroment with Cairo/wxGC ? 
It should switch on on Linux the gl backend instead the xlib one.

Interesting could be are also:
GTKCAIRO_GL_DOUBLEBUFFER=(0,1)

> OK, I've started already and I'll implement the new graphics backend(s) for KiCad. I'll use a "Graphics Abstraction Layer" that we can use multiple graphics libraries, like OpenGL directly or Cairo (wxGC). I've studied Computer Graphics at our university, thus I think it's an interesting project for me.
> • Draw graphics primitives (world space):
> ∘ Line
> ∘ Polyline
> ∘ Rectangle (filled / unfilled)
> ∘ Circle (filled / unfilled)
> ∘ Convex / concave polygon (filled / unfilled)
> ∘ Arc
> ∘ Stroked Text
> • Draw the cross-hair cursor
> • Draw the grid
> • Handle zoom
> • Handle screen <-> world transformation
> • Independent vector/matrix operations
> • Resizing
> • Be compatible to: Windows, Linux, (MAC)

You forgot something also Paths.

--
Marco






Follow ups

References