Refactor from System.Drawing.Common to Skiasharp.
Description
This PR attempts to refactor from System.Drawing.Common to Skiasharp. Doing this successfully means, that we'll be finally able to bump the .NET version for the project and not make the project Windows only by doing so. Fixes #875
Caveats
This is not finished yet
Notes
TODO:
- [x] Opening this, because I need help with the GUI part (CC @VladiStep ), as I'm unable to do meaningful changes there due to me using Linux.
- [ ] Someone should test this with QOI games (I don't have any on me).
- [x] Ensure that basic graphic functionality didn't get lost (i.e. viewing embedded texture pages, texture page entries, rooms etc.) once the GUI part has been refactored
- [x] Make sure that all the graphic related scripts (importAllTilesets, importAllSprites, newTextureRepacker etc.) still work as they should
- [ ] Check if these behave properly on different display scales
Download the artifacts for this pull request here:
GUI:
- GUI-windows-latest-isBundled-false-isSingleFile-true
- GUI-windows-latest-isBundled-false-isSingleFile-false
CLI:
Opening this, because I need help with the GUI part (CC @VladiStep ), as I'm unable to do meaningful changes there due to me using Linux.
Can't you just use wine? I usually do my work on utmt with wine and it works just fine except for a few offs
That works for the GUI, but I don't want to make the core library require the use of wine. Wine only runs on certain machines, while if we can get it to run natively, it will run anywhere where the dotnet runtime is able to run. Which is to say, a lot more machines.
If you meant dev'ing using WINE - that's more painful, because i can't actually build the GUI. And running the whole build environment via wine is a huge PITA.
Oh ok.
Opening this PR up for review. I did a very basic test via WINE and it worked as expected there. But I would like to have someone on windows still test:
- QOI games
- the graphic exporter/importer scripts
So I tested this a few days ago and found that (for sure) SkiaSharp doesn't losslessly process PNG images, so unfortunately this probably won't be able to merge. (And it'll probably be superseded by #1870 and the PRs that follow it.)
However, this is still really good reference for what CSX scripts we'll need to update after #1870 is merged, which I'm going to start working on.
I will close this PR as its superseded as mentioned above. For script reference, this PR existing is enough reference.