On Thu, Mar 09, 2017 at 09:47:38PM +0100, Maciej Suminski wrote: > Hi Chris, > > Are you sure this is really needed? GAL is also used in other dialogs, > such as footprint browser or pad properties editor, and they do not seem > to take a lot of time to load. What is the initialization time we are > speaking about?
The load time is acceptable in other dialogs because they're used less. When you're putting together a schematic and quickly slapping together symbols, even a fraction of a second feels like a lot. It's currently at ~0.5s on Linux and ~1s on Windows and still just feels *laggy* when I try to use it in a real project. It's not horrible, it's just one of those things that slowly drive you insane. :P > > Anyway, if you are determined to optimize it, it is only a win for > everyone. I do not think we have ever tried keeping a GAL instance > without showing it, but IMHO it should be possible. OpenGL GAL/Linux > combination might be whining if you start rendering when the window is > not visible, but you may simply call DRAW_PANEL_GAL::StopDrawing() and > DRAW_PANEL_GAL::StartDrawing() as necessary. > > Regarding rendering to memory, it actually happens behind the scenes. > For Cairo the memory is easily accesible (CAIRO_GAL::wxOutput, > CAIRO_GAL::bitmapBuffer). OpenGL renders most of the objects (grid is an > exception) to a framebuffer. Admitted, this is GPU memory, but it might > be read using glReadPixels(). > > Regards, > Orson > > On 03/09/2017 08:27 PM, Chris Pavlina wrote: > > I'm trying to speed up my new component selector, since the previous one > > loaded and searched so quickly. I don't want a serious efficiency > > regression in one of the most used dialogs in eeschema. > > > > Since optimizing the column sizing cache and data sorting, the slowest > > part is now loading FOOTPRINT_PREVIEW_PANEL, which has to initialize a > > GAL. > > > > Tom/Orson/anyone else who knows GAL - can you think of a reasonable way > > to either speed up the initialization or retain an initialized copy > > between dialog invocations? I'm thinking about just keeping the dialog > > in memory all the time and hiding it when not in use instead of > > destroying and reinstantiating it - will this cause any problems with > > GAL no longer having something to draw to? (Bear in mind I'm unfamiliar > > with both GAL and how wxWidgets handles graphics here.) > > > > If it provides any relevant information, I'm currently forcing Cairo > > mode in the component selector, to avoid having to deal with graphics > > support in a simple dialog (since drawing efficiency is not required). > > > > _______________________________________________ > Mailing list: https://launchpad.net/~kicad-developers > Post to : kicad-developers@lists.launchpad.net > Unsubscribe : https://launchpad.net/~kicad-developers > More help : https://help.launchpad.net/ListHelp _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : kicad-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp