Isn't atomic commits preferred? This is beyond my knowledge for so many changes, especially during this big-change stage. If there is any contribute from me, it's just the idea. Others are all your efforts. Please commit it at the proper time by your schedule. Many thanks!
I thought it would be in 2 commits. Thanks for your detailed description and codes. Here is the updates. Known issues with legacy GDI: 1. SurfaceGDI::LineDraw and SurfaceGDI::PolyLine for DrawTabArrow don't work well with alpha drawing. Maybe also others. 2. SurfaceGDI::AlphaRectangle is not efficiency enough for "many" tasks.
Update scite_5599_Make-whitespace.fore-accept-rgba.patch, as SetWhitespaceFore calling shouldn't be removed currently.
I totally agree with you that some rendering technologies are really out dated, and new ones should be in priority. It all depends on the minimum OS version that will be supported. Take this ticket as a notice or description on this. Maybe someone who really needs it or has interests will read this and take action ... PS: Nowadays mingw-w64-headers seems support GDI+.
Implement Surface GDIPlus for Windows
OK, to make it simple: no whitespace.fore.alpha, just make whitespace.fore accept also rgba besides rgb.
Final effect: 1. 2 alpha can be set separately: whitespace.fore.alpha=<alpha> and whitespace.fore=#rrggbbaa. 2. whitespace.fore.alpha controls all colours including that inherited from grammar settings; whitespace.fore controls the colour specified manually. 3. whitespace.fore.alpha > whitespace.fore, if both exist.
Here is an update for the multiple options files to work well. OptionalSetColour(wEditor, SA::Element::WhiteSpace, props, "whitespace.fore"); added, but SetWhitespaceFore not removed. The more I read, the more I learnt. ❤👍🌹