Le 14/04/2016 11:33, Maciej Sumiński a écrit : > Hi, > > As recently Jean-Pierre has reported he had been running out of memory > with complex boards, I decided to take another step to reduce memory > footprint of OpenGL canvas. > > Currently, the most expensive thing to draw is stroked text, as there > are lots of labels on tracks and pads. To reduce the drawing cost (and > memory requirements), texts that are not targeted to Gerber files (i.e. > pad & track labels) might be displayed using bitmap fonts. This way, a > single letter cost is reduced from tens of triangles to just two. > > Another gain is we can select any font for this purpose and easily > change it. I picked one for testing, but I think we have to decide > together which one shall be used. Bitmap fonts are also antialiased (I > am sorry Lorenzo), so they might be a bit easier on eyes. > > As texts now do not occupy as much memory space as they used to, they > might be stored in the video card memory. Thanks to that, they might be > displayed on selected items as well (in the past selected items had > labels removed). This should also reduce per-frame traffic and make > rendering process smoother. > > I did my best to use the same character set as is available with the > original stroke font, but I wonder if it is really necessary. It seems > that net/pad names are limited to latin characters, so maybe we should > limit the character set. Thoughts? > > At the moment bitmap fonts are only available in OpenGL canvas, as I > believe they offer the greatest performance boost there. I am not sure > if Cairo can really benefit from such solution, but it might be tested > as well. > > Before I push the changes to the master repository, I will be grateful > for some testing [1] and feedback. There are also two screenshots [2, 3] > to demonstrate the difference. > > Regards, > Orson > > 1. https://github.com/orsonmmz/kicad-source-mirror/tree/bitmap_fonts > 2. https://orson.net.pl/pub/original_font.png > 3. https://orson.net.pl/pub/bitmap_font.png
Thanks, Orson. I just tested it (note: on msys2, W7 32 bits I had a GL_INVALID_FRAMEBUFFER_OPERATION undefined compil error) After testing a complex 16 layers board, the current version allocates up to 128 Mbytes, and the bitmaps font 256 Mbytes, unfortunately more ùemory. (using bool CACHED_CONTAINER::resizeContainer( unsigned int aNewSize ) to show allocations) No max allocation change if I disable/enable the display of net names in Pcbnew preferences. -- Jean-Pierre CHARRAS _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

