• not sure I catch you on polygons "irregular" in one dimension .. ?

    Yes, not explained well! Espruino's polygon drawing works in a pretty basic way: https://github.com/espruino/Espruino/blo­b/master/libs/graphics/graphics.c#L385

    Basically: For every Y value, a start and end X coordinate is calculated. Espruino then fills in using those coordinates.

    It means that if there are separate areas that needed to be filled on a row of pixels, they'll just be filled between.

    As a result:

     XXX        XXX          XXXXX
     X XX      X  X          XX  XXXXXXXXXXXXXX
     X  XX     X  XX          X          XXXX
     XX  XX   X    X          X       XXXX
      X    XXXX    XX         X     XX
      X     XX      X         X      XXX
      X             X         X        XXXX
      X              X        X           XXX
      X              X        X       XXXXXXXX
      X              XX      XX  XXXXX
                                 Renders fine
          Doesn't render

    I guess maybe at some point someone might like to improve the algorithm so it can handle that first case ;) There are slightly more complex ways of rendering polygons that would work better.

    could it mean implementing the tweeing fcns in E.compiledC & passing two Uint8Arrays as fcn args ?

    Yes - that's probably the most sensible option - maybe 4 arguments: destination,source1,source2,data_length+­tween_amount<<16

    If you need a hand with that let me know and I can do some code.


Avatar for Gordon @Gordon started