Man am I lucky today
-
Today I found a vector graphics library in C that can potentially run on little devices (at least after I'm done with it) GitHub - sammycage/plutovg: Tiny 2D vector graphics library in C[^] 1. It supports text and it uses the same "STB" truetype engine as my library does in order to do so. What a happy coincidence! I've made some mods to my fork, but it's not a problem. 2. Someone else wrote an SVG engine that works on top of it, meaning I think it's feature complete enough for that that I can too. 3. It appears on first blush that it creates contours and edges upon document creation rather than upon render, which is a boon for performance compared to what I had been forced to do before. 4. It uses tables to do a lot of trigonometry required. So now not only do I have my anti-aliased, alpha blended vector graphics additions to GFX, I can finally hopefully sidestep my crashing issue (The waterbed post from the other day) because my strong suspicion is the crash was coming from the SVG end of things. Since I'm replacing that entire mess with this, that will hopefully tie that in a bow as well. Once finished GFX will be the premier embedded graphics library for doing vector graphics. At that point I'll feel it's a worthy alternative to LVGL depending on the project needs. Man, what a find.
Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix
-
Today I found a vector graphics library in C that can potentially run on little devices (at least after I'm done with it) GitHub - sammycage/plutovg: Tiny 2D vector graphics library in C[^] 1. It supports text and it uses the same "STB" truetype engine as my library does in order to do so. What a happy coincidence! I've made some mods to my fork, but it's not a problem. 2. Someone else wrote an SVG engine that works on top of it, meaning I think it's feature complete enough for that that I can too. 3. It appears on first blush that it creates contours and edges upon document creation rather than upon render, which is a boon for performance compared to what I had been forced to do before. 4. It uses tables to do a lot of trigonometry required. So now not only do I have my anti-aliased, alpha blended vector graphics additions to GFX, I can finally hopefully sidestep my crashing issue (The waterbed post from the other day) because my strong suspicion is the crash was coming from the SVG end of things. Since I'm replacing that entire mess with this, that will hopefully tie that in a bow as well. Once finished GFX will be the premier embedded graphics library for doing vector graphics. At that point I'll feel it's a worthy alternative to LVGL depending on the project needs. Man, what a find.
Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix
I just use an 8-point font to save code space. :)
-
Today I found a vector graphics library in C that can potentially run on little devices (at least after I'm done with it) GitHub - sammycage/plutovg: Tiny 2D vector graphics library in C[^] 1. It supports text and it uses the same "STB" truetype engine as my library does in order to do so. What a happy coincidence! I've made some mods to my fork, but it's not a problem. 2. Someone else wrote an SVG engine that works on top of it, meaning I think it's feature complete enough for that that I can too. 3. It appears on first blush that it creates contours and edges upon document creation rather than upon render, which is a boon for performance compared to what I had been forced to do before. 4. It uses tables to do a lot of trigonometry required. So now not only do I have my anti-aliased, alpha blended vector graphics additions to GFX, I can finally hopefully sidestep my crashing issue (The waterbed post from the other day) because my strong suspicion is the crash was coming from the SVG end of things. Since I'm replacing that entire mess with this, that will hopefully tie that in a bow as well. Once finished GFX will be the premier embedded graphics library for doing vector graphics. At that point I'll feel it's a worthy alternative to LVGL depending on the project needs. Man, what a find.
Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix
-
I take it it's open source ?
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
Yeah - MIT license, like my lib.
Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix
-
Today I found a vector graphics library in C that can potentially run on little devices (at least after I'm done with it) GitHub - sammycage/plutovg: Tiny 2D vector graphics library in C[^] 1. It supports text and it uses the same "STB" truetype engine as my library does in order to do so. What a happy coincidence! I've made some mods to my fork, but it's not a problem. 2. Someone else wrote an SVG engine that works on top of it, meaning I think it's feature complete enough for that that I can too. 3. It appears on first blush that it creates contours and edges upon document creation rather than upon render, which is a boon for performance compared to what I had been forced to do before. 4. It uses tables to do a lot of trigonometry required. So now not only do I have my anti-aliased, alpha blended vector graphics additions to GFX, I can finally hopefully sidestep my crashing issue (The waterbed post from the other day) because my strong suspicion is the crash was coming from the SVG end of things. Since I'm replacing that entire mess with this, that will hopefully tie that in a bow as well. Once finished GFX will be the premier embedded graphics library for doing vector graphics. At that point I'll feel it's a worthy alternative to LVGL depending on the project needs. Man, what a find.
Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix
That open source project appears to be unattributed and based off FreeType[^], make sure to add that to your tertiary licence chain after you refactor it to be unrecognizable. After you get it working on your MCU it should be easy to compare to the improvements over the LVGL offering[^]. Looks like FreeType on LVGL requires 24KB of stack.
-
That open source project appears to be unattributed and based off FreeType[^], make sure to add that to your tertiary licence chain after you refactor it to be unrecognizable. After you get it working on your MCU it should be easy to compare to the improvements over the LVGL offering[^]. Looks like FreeType on LVGL requires 24KB of stack.
It uses some code from Freetype, and my license documentation will reflect that. I'm actually pouring over all the code to convert it to C++ and do things like integrate it such that it uses my bitmap class instead of its own - that sort of thing, so I'm pretty familiar with where the codebase comes from. And I've worked with FreeType before and am familiar with it, which is why I made TinyTTF - and contributed that to LVGL as it runs in more places. That said, the freetype bits used in pluto isn't very heavy - just typedefs and rasterization algorithms.
Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix