Ok, now it is using grain_extract mode.
Apr 23 2019
Apr 21 2019
Finally, a working implementation of the filter. Now, I do think it needs a way to manipulate the contrast as it's too little.
Never mind about earlier plan, now I got a real plan. Waveletdecompose.cpp does give me a way to create Guassian High Pass filter. The answer was in plain sight all along.
Apr 16 2019
Fixed the crash. Did the color = thing with no avail. MixOp doesn't seem to work though removal of MixOp code below shows evidence of invert transformation.
The thing is that Color to Alpha result doesn't match the expected result, and it doesn't actually offer a quick way to generate alpha based on luminosity of images. And if you want to apply effect on different luminosity, then you need to use clone layer, group layer, desaturate, and color to alpha at once. With this patch (when I get to fixing the error as I know how to fix it or I think I know how to fix it), it would offer a much easier way to edit images based on luminosity, and enable a workaround to the absence of luminosity to alpha blend mode I been wanting to see. All you would need to create a filter layer with this filter, and set to normal instead of going all the trouble of cloning a layer twice, grouping the clone, do the desaturate filter mask, and color to alpha mask just to do something like this.
Apr 15 2019
Hmm, this doesn't tell me anything useful.
New category removed. Almost all problem has been addressed. I removed mix color code to find where's the crash, and I have installed drmingw, but I see no info on where's the crash is coming from nor I understand how to use drmingw. Files have been renamed to the new convention.
I was thinking there should be a new category if ever the new high pass filters (Like Redrobes Highpass) would be created, but I can put // before details, and move this to Other instead. The reason why I added a new category is that there isn't any good category for the filter. Other fits the best though.
Apr 13 2019
Forgot to apply copyright name change.
Having trouble with mixOp right now.
Apr 11 2019
Fixed the copyright as requested.
Mar 12 2019
Mar 9 2019
Note - The Modulo Shift Continuous image example is used with this recent patch as I noticed that the original behavior is wrong - https://phabricator.kde.org/D19640
Mar 7 2019
Can I just mentioned that there's already a PDF I have prepared for many modes? - https://phabricator.kde.org/file/download/lx5wnwf7khb4dl6bwuh6/PHID-FILE-sx5ssxp5ytwtychrawgs/Explanation_3.pdf
Feb 22 2019
Decided to remove those blend mode, see first post as to reasons why. It cannot be saved.
Feb 21 2019
I see it going very bright on 16f, but smoother on lightened area and darker on 8i. Easy Dodge/Burn are more consistent in their behavior. I think that they are correct.
Feb 9 2019
This needs to be closed.
Feb 6 2019
There's nothing left to do.
Feb 3 2019
Any updates pertaining to this patch?
Jan 15 2019
Saw an oversight on hard overlay, see this picture - https://i.imgur.com/Of56NnR.png
Saw an oversight when testing with a blending mode test kra file, and fixed Easy Dodge.
Name changed as requested.
Jan 11 2019
Oct 8 2018
The confusion came because this was part of the extended modes, and I asked if this should also be in it own patch, so I uploaded this one. Now I decided to abandon this as it wasn't necessary to upload this one.
Oct 7 2018
Applied changes accordingly to Sven Langkamp instruction. It solved the blocky outline issue! Now, symmetric difference pixel selection behaves similar to the other selection modes.
Oct 3 2018
I found something that may hint to the solution to the selection
Oct 2 2018
Erased one line in pixelselection cpp file. Didn't noticed that on the last update. Now it looks good.
All the comments have been addressed, and thanks to one of the comment, one of the bug I just found during testing have been solved. Also, I had to make up a keyboard modifier for this patch as otherwise, you'd always be stuck on symmetric difference selection mode unless you use a keyboard shortcut. I chose cntrl+alt as a temporary keyboard shortcut.
Sep 23 2018
Only fixed Modulo Shift.
Also, I made some error to Modulo Shift modes. So, fixed in that differential link.
Sep 20 2018
Okay, I added more to that differential, and going to say that I'm done here as there's nothing left except documentation for the new ones I added.
Figured out modulo continuous, and made super light the middle of hardlight and pinlight. Also renamed some blending modes. Now, I will say that I'm done here with those modes 100%. Documenting those soon.
In this patch, I have fixed the ant selection issue to the point where it's apparent that there has been a selection made with symmetric difference selection. I will have to look at Dmitry patch again to see if it fixes the absence of anti-aliased line, but I did observe a error somewhere during a compilation even though it works (could be false error as it works while the ant selection ant is still wrong with the patch from what I seen). When I do a circle with symmetric selection issue, and overlay it with another circle, I get two overlapping circle with visible selection lines on the middle which is the expected behavior. Not expected was that the lines gets pixelated.
Here's the final revision of the patch - https://phabricator.kde.org/D15584
Sep 18 2018
I have enabled the button to work. It actually does something.
Sep 13 2018
Updated for current master.
Same bug still remains.
Sep 5 2018
I have fixed the button issue. One blocker bug remains. It doesn't work for pixel selection, but it works very well for vector selection. I have no idea if Dmitry changes to Krita has to do anything with that or if it my fault that I somehow broke it. Dmitry has been notified shortly after this post.
Sep 4 2018
Updated to current master.
Aug 31 2018
I believe I may have bad news. This requires coding beyond Krita. QTGui:QPainterPath and QtGui:Qrect are the source of the issue.
Aug 29 2018
Now, the button activates exclude selection tool thanks to boud. After I get the ants working, naming convention will be addressed by myself.
Only thing fixed is what Boud mentioned. I'm still having trouble fixing the issue that the button only activates subtract selection, but not exclude. A lot of lines were changed in search for an answer to that.
Here's a paste to fix the current reptorian-blending modes branch - https://phabricator.kde.org/P257
Changed keyboard shortcut for maximizing productivity only. With keyboard shortcut, and global mask selection, you can preview how selections works altogether.
I have added a note to the commits here. Please see note to see current issue to be resolved before fixing the other bug. It's particularly a hard to fix issue.
Aug 28 2018
Updated for current master. Now that I was able to test the result of the code, it turns out that the patch works partly. This patch forces every selection to be exclude selection, so that's something I don't where to start to look into. Krita no longer crashes.
Added the GUI, however, there is still a major issue of crashing.
I have added more lines related to GUI to attempt to resolve the crash. However, a new problem occured. 4 lines of this error happens:
Aug 27 2018
Actually, never mind, it turns out that I may just need to only do the GUI part to fix the crash issue, and see what to do from there. Hopefully, it won't crash by then.
Aug 26 2018
Here's the crash trace. Alternative crash log is provided too in case the other isn't useful. Segmentation fault.
Aug 24 2018
There are two different branch, the branch I'm referring to is reptorian/blend-modes branch. But, yes this can be closed as there is a new differential group.
Jul 15 2018
Hi, actually, I think I'm going to leave changes here. The file above is add a new blending mode which is a hybrid of Frect, and Helow. It most related blend mode is grain merge and interpolate, but hybrid of frect and helow shows more consistency on shading and highlight all-around. It's a slight better version of grain merge, but sometimes it is worse than interpolate, but it has the advantage of actually working on integer when compared with interpolate. I also fixed Helow issue.
Jul 13 2018
Update: The updated patch has been pushed into the branch by Dmitry.
Jul 10 2018
I'm attaching this because I can't get git diff for some reason, and as I have no answer as how to fix that, I'm leaving this .h file here. Here's the fixed version, and there aren't any bugs in here. You get what you expect. I tested with several images, and there does not seem to be any issues.
Jul 9 2018
Any reviews yet on those blend modes?
Jun 30 2018
Could you give us a ping when you've posted that fix? I'll check the patch again then.
It turns out I was getting dst, and src mixed up all along. Sorry about that. I think I can continue with the solution. dst is the below layer, and src is the top layer. That doesn't affect many of the blending modes I made. They work as expected.
Jun 25 2018
The solution probably exists within KoColorSpaceMaths.h and the use of elipson which is basically the closest to 0, and eliminating the unitvalue in src is the way most, if not all ZX Spectrum related bugs in color dodge, parallel, and these modes I made would be solved.
I did found a solution to the issue of ZX Spectrum by forcing the src and dst to go under unitValue and over zeroValue with the usage of halfvalue, and putting halfvalue over src and dst. HalfValue opacity is set to 1%. This one is based off the quadratic patch before this one, and not this patch. Blending mode is glow in the picture.
Jun 24 2018
Forgot to upload previous file. Here's the actual fix for ZX spectrum. Comment about unable to avoid using if unit then unit, and can't avoid that to avoid div/0 applies here.
Even further fixes to ZX Spectrum bugs. Now, if I can use minimal channel value after zero, that'd be great to avoid division by 0 and being able to avoid color bleeds.
I fixed some of the ZX spectrum bug issues. You can apply a slight color adjustment (one value less) on the top part curve on the source layer to eliminate the bug still in Helow. It's not that prominent as color dodge or parallel blending mode, but it can be fixed. Gleat and Heat can't really be saved from those ZX spectrum bug as the bug is very prominent in those. Even with dst ==unit ; return 0, the bug will just show up there.
Jun 22 2018
The changes I have made to this differentials is to add 4 new quadratic blending modes.
Jun 20 2018
I think I'll just leave this here :
Jun 13 2018
I believe I may have found a formula that may lead to an answer for 16-bit, and 32-bit images with respect to Heat and Freeze Blend Mode.
Jun 12 2018
- The changes are based on the dkazakov's patch with a slight change. I removed the additional line of glow as it leads to 0,1,1 result on areas where they are not supposed to show up on. I also applied the break bracket on Glow, and Heat to make the code faster. Everything works as expected.
Jun 11 2018
-I have attempted to solve the issue of code formatting by using a helper blending mode, and the formatting goes on the line of inv(x) where x is the base equation used for blending mode calculation. So, thus, it fit the code requirement. There is no other approach that doesn't have the issue of not fitting the code and avoids long long int error.
Jun 10 2018
- I have fixed the Reflect Blend Mode, and Glow+Reflect are now acceptable as they follow the form the code reviewer request. Reflect Blend mode no longer have an ugly black splash.
- I cannot avoid the usage of unitValue<T>() as it's the only way the code will compile. I need to know what to do here.
Jun 9 2018
Jun 6 2018
Decided to add information about the new blending modes into the diff