"there's no guarantee that a platform can meaningfully attempt to construct a hardware cursor without an image"
Incorrect. It is guaranteed by the existence of Cursor::hide. Just make hidden the default state and blank or undefined the default image.
In fact hidden needs to be the default state because the cursor defaults to a bad choice of location (top left, not centred). We can't fix that nicely unless cursor construction defaults to hidden (and thus no default image is required).
The fallback is what I need to do after this. Hence this branch would conflict with it and would have to come first if at all.
"there's no guarantee that a platform can meaningfully attempt to construct a hardware cursor without an image"
Incorrect. It is guaranteed by the existence of Cursor::hide. Just make hidden the default state and blank or undefined the default image.
In fact hidden needs to be the default state because the cursor defaults to a bad choice of location (top left, not centred). We can't fix that nicely unless cursor construction defaults to hidden (and thus no default image is required).
The fallback is what I need to do after this. Hence this branch would conflict with it and would have to come first if at all.