Closed vincentparrett closed 3 years ago
As I'm interpreting the source you've completely removed support for PNG and replaced it with SVG support. Is this correct?
While I think it's great that you've added SVG support I think it's a pity that you've removed PNG support to do so. As far as I can see it would have been relatively easy to support both via their common ancestor TGraphic
and the TPicture
file format registry.
Having spent the last few months working on high dpi support in FinalBuilder (replacing a lot of images and still working on it) I want to avoid scaling issues in the future. Of course that assumes the delphi IDE will eventually support high dpi properly ;)
One of the things I liked about this change today, is removing vcl dependency from the command line application. Not a huge deal but any vcl dependency will block the application from running in a docker container due to how it statically links to all sorts of api's not present in windows server core.
I get that SVG solves some scaling issues in the GUI but surely avoiding VCL dependencies in the command line application is more of an architectural issue than a choice between SVG and PNG. I mean why would the command line even care what image format the GUI uses?
Anyway, it's your party. I just know this requirement to use SVG will bother me when I start using it.
I'll have another look at it today, see if we can support both. The issue before was the repository classes were returning the png's as a TPngImage - which then linked in a bunch of vcl stuff. I will change this to a stream wrapper and deal with loading into png in the IDE code instead.
OK, icons can now be svg or png. I abstracted the icons behind an interface in the repo classes, which works out better anyway.
With the idea that the delphi IDE will eventually get HighDPI support, I'm planning to switch package icons from png's to SVG.
This shouldn't have any major impact as there are not many packages yet anyway and I'll fix up the icons for the existing ones.
Just putting this up here in case anyone else is creating packages.