Activity for YX Hao

  • YX Hao YX Hao posted a comment on ticket #1398

    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!

  • YX Hao YX Hao posted a comment on ticket #1398

    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.

  • YX Hao YX Hao posted a comment on ticket #1398

    Update scite_5599_Make-whitespace.fore-accept-rgba.patch, as SetWhitespaceFore calling shouldn't be removed currently.

  • YX Hao YX Hao posted a comment on ticket #1401

    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+.

  • YX Hao YX Hao created ticket #1401

    Implement Surface GDIPlus for Windows

  • YX Hao YX Hao posted a comment on ticket #1398

    OK, to make it simple: no whitespace.fore.alpha, just make whitespace.fore accept also rgba besides rgb.

  • YX Hao YX Hao posted a comment on ticket #1398

    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.

  • YX Hao YX Hao posted a comment on ticket #1398

    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. ❤👍🌹

  • YX Hao YX Hao posted a comment on ticket #1398

    An email ping of attachment updated.

  • YX Hao YX Hao modified a comment on ticket #1398

    a bunch of existing APIs that can be unified Seems all on your list 👍 people that want visible whitespace will want it to be fully opaque to be most visible Here we just give users an option, making it more customizable. Of course, with serveral lines of code, rather than heavy code. Use or not, or use which one, all depend on themselves. To me, making visible whitespace the 2nd attractive and code always the 1st attractive is really appreciated. const ColourAlpha whiteSpaceFore = vsDraw.ElementColour(SC_ELEMENT_WHITE_SPACE).value_or(textFore);...

  • YX Hao YX Hao modified a comment on ticket #1398

    a bunch of existing APIs that can be unified Seems all on your list 👍 people that want visible whitespace will want it to be fully opaque to be most visible Here we just give users an option, making it more customizable. Of course, with serveral lines of code, rather than heavy code. Use or not, or use which one, all depend on themselves. To me, making visible whitespace the 2nd attractive and code always the 1st attractive is really appreciated. const ColourAlpha whiteSpaceFore = vsDraw.ElementColour(SC_ELEMENT_WHITE_SPACE).value_or(textFore);...

  • YX Hao YX Hao posted a comment on ticket #1398

    a bunch of existing APIs that can be unified Seems all on your list 👍 people that want visible whitespace will want it to be fully opaque to be most visible Here we just give users an option, making it more customizable. Of course, with serveral lines of code, rather than heavy code. Use or not, or use which one, all depend on themselves. To me, making visible whitespace the 2nd attractive and code always the 1st attractive is really appreciated. const ColourAlpha whiteSpaceFore = vsDraw.ElementColour(SC_ELEMENT_WHITE_SPACE).value_or(textFore);...

  • YX Hao YX Hao posted a comment on ticket #1398

    Using SCI_SETELEMENTCOLOUR to set/store alpha only seems possible, but makes people confused ... Still haven't got an easier/better solution. Just update the current as attached. PS: hg transplant doesn't place the alpha setting right for SciTE, so the patch also updated.

  • YX Hao YX Hao posted a comment on ticket #1398

    if ((phasesDraw == PhasesDraw::one) && drawWhitespaceBackground) was changed to two tests You are right. Not necessary anymore, would be amended. SCI_SETELEMENTCOLOUR I noticed it. And it seems many existing 'SetColour' APIs, like SetWhitespaceFore, SetWhitespaceBack, SetSelFore and etc., can be replaced by reconstructing (This is beyond this topic). Thanks for your good example on how to use it, that explains my wonders clear. But I got issues if don't add new API to store the alpha and then get...

  • YX Hao YX Hao committed [02e7f5]

    Implemented whitespace.size so that visible spaces can be made more visible.

  • YX Hao YX Hao posted a comment on ticket #1398

    I have amended and regenerated the 3 patches using the new ColourAlpha based drawing APIs. Locally tested. One known problem is: to legacy GDI, it would be CPU consuming when there are many blanks. Test files are in: test-wsfa\technology-0\.

  • YX Hao YX Hao posted a comment on ticket #1398

    Hi Neil, I'm back on this ticket to upload an update for the patches and test files bundle. Based on the discussion https://github.com/zufuliu/notepad2/pull/298#issuecomment-801542554, I generated a new patch using simple alpha blending rather than AlphaRectangle or SimpleAlphaRectangle, in case of there are dense blanks (test file: 256000-blanks.zip). That will cause lagging if use GDI rendering (technology=0). I also amended the Implement whitespace.fore.alpha to be compact, and then added patch...

  • YX Hao YX Hao posted a comment on ticket #1364

    False positive, it's namespace!

  • YX Hao YX Hao posted a comment on ticket #1364

    No indentation? I'm not sure if it's intentional. Maybe you have changed them already. Just in case.

  • YX Hao YX Hao posted a comment on ticket #1398

    Good news to me is I am already v5.0.0 based 😂. Hoping it won't conflict with others ...

  • YX Hao YX Hao posted a comment on ticket #1398

    There is a large set of platform layer patches pending from [feature-requests:#1364]. Applying this change will interfere in their incorporation so won't happen until after they have been processed. If you are interested, the 5.patch file contains most changes to Surface which can be found by searching for "--- a/include/Platform.h". Okey, I'll have a try to see if I can help in anything. However, the high contrast themes are far too ugly to use unless needed because of sight problems. That's tr...

  • YX Hao YX Hao posted a comment on ticket #1398

    Many thanks for your examples! I have compiled SciTE successfully and solved it to get the same alpha blended result. And choose clearer new variable names. See 'wsfa-markall-draw0.png', 'wsfa-markall-draw1.png', and 'Add-SCI_SETWHITESPACEFOREALPHA-and-SCI_GETWHITESPACEFOREALPHA.patch' in the zip file. For screenshots, SciTE instance: the left is official one with strong color; the right is patched one with weak color File opend: 1 is with phases.draw=0; 2 is with phases.draw=1 highlighted all tabs...

  • YX Hao YX Hao modified a comment on ticket #1398

    showing significantly different results with single phase drawing and multi-phase drawing I think you mean, for example: https://sourceforge.net/p/scintilla/code/ci/8585/tree/src/EditView.cxx#l1923 to l1931 ColourDesired textBack = TextBackground(model, vsDraw, ll, background, inSelection, inHotspot, styleMain, i); if (ts.representation) { if (ll->chars[i] == '\t') { // Tab display if (phasesDraw == phasesOne) { if (drawWhitespaceBackground && vsDraw.WhiteSpaceVisible(inIndentation)) textBack = vsDraw.whitespaceColours.back;...

  • YX Hao YX Hao posted a comment on ticket #1398

    showing significantly different results with single phase drawing and multi-phase drawing I think you mean, for example: https://sourceforge.net/p/scintilla/code/ci/default/tree/src/EditView.cxx#l1923 to l1931 ColourDesired textBack = TextBackground(model, vsDraw, ll, background, inSelection, inHotspot, styleMain, i); if (ts.representation) { if (ll->chars[i] == '\t') { // Tab display if (phasesDraw == phasesOne) { if (drawWhitespaceBackground && vsDraw.WhiteSpaceVisible(inIndentation)) textBack...

  • YX Hao YX Hao posted a comment on ticket #1398

    Thanks for your comments. single phase drawing and multi-phase drawing (in SciTE: phases.draw) I'll study more about it. It would be better to use translucent drawing which will become available for lines in a 5.0.x release. Good idea for a more general new translucent drawing function. I assumed "the least changes". AlphaRectangle or the SimpleAlphaRectangle I tried, but the arrow head is oblique line. I will do more research on that ... SC_ALPHA_NOALPHA is also something to avoid Do you mean use...

  • YX Hao YX Hao posted a comment on ticket #1398

    Glad to contribute :) PS: patch file failed to be uploaded, trying zip file ...

  • YX Hao YX Hao posted a comment on ticket #1398

    SCI_SETWHITESPACEFORE / SCI_SETWHITESPACEBACK, yes, related, defined in Scintilla.h saying generated from Scintilla.iface, the SetWhitespace*. I tried your example. It's appearance-sensitive. SciTE gives plenty customization switches, that awesome! There are other editors derived from scintilla. They focus on others features , but lack this feature. So I'm wondering, as a library, if there is a way that scintilla can implement, then all others will benefit from won't repeat it. I choose show white...

  • YX Hao YX Hao created ticket #1398

    Add SetWhitespaceAlpha

1