Maybe its time that Xojo should ditch the UseGDIPlus property ?
This really only confuses the hell out of the user.
GDI+ been there for long long time and all modern windows systems have it.
Further more then Xojo could then link against the non flat API’s without doing dynamic load to the DLL with the flat API.
As is then Microsoft clearly states that they will not support applications that use the flat API’s. ---->> Xojo Apps using GDI+
Unfortunately there are some bugs relating to UseGDIPlus with printing, so I’m not sure it’s feasible until they’re resolved.
Its much harder to resolve while not using the correct GDI+ class API.
What I am getting at here is Xojo is slacking behind for no reason just because GDI+ didn’t always exists long time ago. And you can mix GDI and GDI+ in any way you want anyhow (in the Win32 API’s)
Yeah but what about performance? When GDI+ is enabled, aren’t graphics methods slower?
GDI+ is not either GDI+ or GDI, most applications use both and mix them together in some form anyhow. Ignoring GDI+ is like saying on Apple that your just going to stay with QuickDraw calls forever and ignore Quartz.
Even the new alpha channel on Images in Xojo is not enabled unless you “enable” the GDI Plus property, since microsoft does not make any new graphics API’s in old GDI. But goes back to the top of this thread why do we need to enable it ?
If you take close look at lets say .NET applications then you will quickly see its mixing GDI and GDI+. You got there Graphics.DrawString (which uses GDI+), and you got TextRenderer.DrawText (which uses GDI), and they co-exists, there is time and place to use both of them, though its getting fewer times and places for the TextRenderer by the day since Windows is all going device independent, just like OS X did (just at slower pace).
Just to sum it up then I think the application wide UseGDIPlus property should go away, so you have all features in your toolbox. Transition should rather be done on Graphics level UseOldStyleRenderer, same way as it was done for QuickDraw vs Quartz back then. As is then having it application wide is just deciding if you link against GDI+ or not which is getting pretty mute point nowadays that all windows systems have it.
Well, my best suggestion is to file a feature request in Feedback if there isn’t one already.
I think that the UseGDIPlus property is fine but I really don’t see any harm in having the default as true. It would add convenience, especially for beginners. I agree that the bugs should get fixed before removing this but it would be really easy to have the default as true.
Maybe include that in your feature request.
The harm is that their doing dynamic link to it thus using API that Microsoft does not want you to use and is far harder to maintain.
Quote from MSDN:
“Microsoft Product Support Services will not provide support for code that calls the flat API directly”
(The flat API is the dynamic loaded GDI+ in this case)
And why would you want your application to be legacy application ? Xojo does not support way old Windows systems anyhow.
Tell that to the people who insist on using Carbon.
When something is optional, why remove that choice from the user ?
It’s ever-so-slightly more to maintain. It could be a waist of time for the user to even consider. With there being bugs, it sounds like a good idea to keep it (for now at least).
Apologies for the misspelling.