kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #24198
Re: Bitmap fonts
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
Follow ups
References