Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. I should have asked questions :(

I should have asked questions :(

Scheduled Pinned Locked Moved The Lounge
designhelpcomgraphicshardware
7 Posts 3 Posters 1 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    honey the codewitch
    wrote on last edited by
    #1

    SVG was kicking my ass. So great, I think - I'll incorporate TinyVG support - that's appropriate for embedded right? It has converters for SVG to TinyVG. I even notice the canonical SVG tiger head represented among its examples. So I'm thinking "this will work with basic SVG, no problem" I spent a bunch of time coding the processing for these TinyVG files because the reference implementation is in Zig, which is no good for me. Finally, I needed to test one, but I wanted to see the TinyVG text format (it mainly has a binary format, but has an equiv text representation which I was going to use to debug) I grab the canonical tiger head SVG and feed it to the converter tool. "Unsupported element 'defs'" - which is an element present in almost every SVG i've ever seen. "Unsupported transform matrix(...)" really? if you don't support transforms, you don't support SVG. All SVGs have transforms in them. "Unsupported transform translate(...)" again really? see above. So basically I've implemented support for a dead end technology. I'm upset that they not only released it on github, but provided a dedicated website, and specifications for it. Way to waste people's time. I should have checked first. I should have asked questions. I submitted an issue on github. I was terse.

    Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

    D R 2 Replies Last reply
    0
    • H honey the codewitch

      SVG was kicking my ass. So great, I think - I'll incorporate TinyVG support - that's appropriate for embedded right? It has converters for SVG to TinyVG. I even notice the canonical SVG tiger head represented among its examples. So I'm thinking "this will work with basic SVG, no problem" I spent a bunch of time coding the processing for these TinyVG files because the reference implementation is in Zig, which is no good for me. Finally, I needed to test one, but I wanted to see the TinyVG text format (it mainly has a binary format, but has an equiv text representation which I was going to use to debug) I grab the canonical tiger head SVG and feed it to the converter tool. "Unsupported element 'defs'" - which is an element present in almost every SVG i've ever seen. "Unsupported transform matrix(...)" really? if you don't support transforms, you don't support SVG. All SVGs have transforms in them. "Unsupported transform translate(...)" again really? see above. So basically I've implemented support for a dead end technology. I'm upset that they not only released it on github, but provided a dedicated website, and specifications for it. Way to waste people's time. I should have checked first. I should have asked questions. I submitted an issue on github. I was terse.

      Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

      D Offline
      D Offline
      Daniel Pfeffer
      wrote on last edited by
      #2

      So TinyVG is vapourware. :(

      Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

      H R 2 Replies Last reply
      0
      • D Daniel Pfeffer

        So TinyVG is vapourware. :(

        Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

        H Offline
        H Offline
        honey the codewitch
        wrote on last edited by
        #3

        It seems to be.

        Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

        1 Reply Last reply
        0
        • H honey the codewitch

          SVG was kicking my ass. So great, I think - I'll incorporate TinyVG support - that's appropriate for embedded right? It has converters for SVG to TinyVG. I even notice the canonical SVG tiger head represented among its examples. So I'm thinking "this will work with basic SVG, no problem" I spent a bunch of time coding the processing for these TinyVG files because the reference implementation is in Zig, which is no good for me. Finally, I needed to test one, but I wanted to see the TinyVG text format (it mainly has a binary format, but has an equiv text representation which I was going to use to debug) I grab the canonical tiger head SVG and feed it to the converter tool. "Unsupported element 'defs'" - which is an element present in almost every SVG i've ever seen. "Unsupported transform matrix(...)" really? if you don't support transforms, you don't support SVG. All SVGs have transforms in them. "Unsupported transform translate(...)" again really? see above. So basically I've implemented support for a dead end technology. I'm upset that they not only released it on github, but provided a dedicated website, and specifications for it. Way to waste people's time. I should have checked first. I should have asked questions. I submitted an issue on github. I was terse.

          Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

          R Offline
          R Offline
          Ryan Peden
          wrote on last edited by
          #4

          In their benchmarks repo it looks like they use svgo to clean/simplify the SVG files before feeding them to the converter. They've got svgo set up to pre-apply transforms, among many other optimizations. Would something like that work for you? I'm not sure what the goal of your project is or if you'd need to do the svg-to-tinyVG conversion on-device. But if you can zip your SVGs through an optimizer before doing the TinyVG conversion, you'll probably have more success.

          H 1 Reply Last reply
          0
          • R Ryan Peden

            In their benchmarks repo it looks like they use svgo to clean/simplify the SVG files before feeding them to the converter. They've got svgo set up to pre-apply transforms, among many other optimizations. Would something like that work for you? I'm not sure what the goal of your project is or if you'd need to do the svg-to-tinyVG conversion on-device. But if you can zip your SVGs through an optimizer before doing the TinyVG conversion, you'll probably have more success.

            H Offline
            H Offline
            honey the codewitch
            wrote on last edited by
            #5

            Yeah, I talked to the author and he mentioned svgo. The issue is I don't want my users to have to go through a multi-step process to be able to use SVGs. The converter needs to be better. It should be doing what svgo does. Anyway, I might improve it for him if I can get SVG working again in my new bits.

            Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

            R 1 Reply Last reply
            0
            • D Daniel Pfeffer

              So TinyVG is vapourware. :(

              Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

              R Offline
              R Offline
              Ryan Peden
              wrote on last edited by
              #6

              I don't think it is vaporware, since it exists and it works. But it doesn't try to support every feature of SVG, and my guess is that the conversion tooling focuses on features that translate directly from SVG to TinyVG, and transforms aren't one of them. I think that's fair given TinyVG's design goals. It aims to render vector graphics exactly as they're described in either binary or text format. But SVG transforms essentially say things like "draw this shape/path at coordinates x y - but then move it, rotate it, and skew it". And TinyVG is like "dude, if you know you want all things done, go right ahead and do them and just give me the final shapes & paths I need to render." Transforms make sense in SVGs since they support animation. But in TinyVG, which doesn't support animation, that transform would only ever be applied once. So perhaps it's fair that TinyVG's tooling expects transforms to be pre-applied. They use svgo to simplify the SVGs before converting them for the benchmarks and examples on the website, but they don't make this very clear.

              1 Reply Last reply
              0
              • H honey the codewitch

                Yeah, I talked to the author and he mentioned svgo. The issue is I don't want my users to have to go through a multi-step process to be able to use SVGs. The converter needs to be better. It should be doing what svgo does. Anyway, I might improve it for him if I can get SVG working again in my new bits.

                Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                R Offline
                R Offline
                Ryan Peden
                wrote on last edited by
                #7

                Sounds like a fun project. I hope it all works out the way you want it to!

                1 Reply Last reply
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Categories
                • Recent
                • Tags
                • Popular
                • World
                • Users
                • Groups