Y20250705-1000
Previously, cursors were initialized with a single ImageData, which caused issues on systems with varying zoom levels, for example, cursors were not scaled at all on Linux, or were blurrily auto-scaled on Windows. This commit introduces a new constructor for the Cursor class that accepts an ImageDataProvider object instead of ImageData. This allows the code instantiating the cursor to pass an imageDataProvider capable of providing appropriately scaled image data based on the current zoom level.