Acknowledged

Provide polyfill where needed in Toybox.Graphics.Dc API

Basically, there should be no "[view]" sections below any of Dc methods in the docs.

The context is as follows:

I really don't understand the thought process behind adding a DC method that is supported on just some devices.

What does Garmin expect to happen when someone arrives at a need to use, say, setFill(bitmap) and it's not supported on some (seemingly random) models?

It's not like my need to tile an area with a bitmap will suddenly go away because setFill is not available on VA5. Nor will I want to dumb down the design for some models. Some people might consider that OK, but imnsho that's an amateurish hackery.

The only thing that will happen, realistically, is that I will be re-implementing setFill() for devices that don't have it, i.e. I will be making a homebrew polyfill.

To put differently, these new and shiny API methods are effectively useless, unless someone just happens to be targeting specific models supported by them.

It's never the " Let's look what supports setFill and that will be our target model list ! "

It's always the " We want to do X, let's see if the API supports it for the devices we target ".

  • The supported devices list is not arbitrary—in order for a device to support setFill(), it must have required hardware (in this case, a GPU), which only certain devices have. To be fair to you, this is not well-documented. The best surrogate for this is in the device configs you download with SDK Manager. In the compiler.json file for each device, specifically, if enhancedGraphicsSupport is true, the device will support setFill().

    We do our best to support things to the extent that is possible, and some devices have more capabilities than others. In cases like this, it's best to use has checks if you don't know whether your targets will support the feature:

    if(dc has :setFill) {
        // implement your setFill-enabled code here
    }

  • Mark-up ate a word. This:

    > Basically, there should be no "[view]" sections below any of Dc methods in the docs.

    should say

    ... there should be no "view devices" sections ...

  • This is a request, not a bug report.

    Nor is it a rant. The part you perceive as a "rant" is there to try and make Garmin look at the API from the other side. How it feels in actual use.

    > Nothing you wrote here is new to anyone

    It doesn't meant that the issue shouldn't be addressed.

  • This is not a bug report. This is a rant. Maybe you should switch the content with the other post that you wrote in the discussion forum. That wording is a better fit to here as a bug report, and this rant is a better fit for the discussion forum.

    Nothing you wrote here is new to anyone, every developed does their decision.