After switching my project from a more complicated bug to two bugs in processing-js that I think I can manage, I first started working on the larger bug for the release for this Thursday.
The bug is here.
The issue: If you apply the filter() with the ‘blur’ property on any of the shapes, the whole canvas begins to shift up and to the left.
After a lot of code reading and debugging using Firebug’s javascript breakpoints (very cool and powerful stuff!) , I isolated the bug to this section of code:
for (y = 0; y < aImgHeight; y++) { for (x = 0; x < aImgWidth; x++) { cb = cg = cr = ca = sum = 0; read = x - sharedBlurRadius; if (read<0) { bk0 = -read; read = 0; } else { if (read >= aImgWidth) { break; } bk0=0; } for (i = bk0; i < sharedBlurKernelSize; i++) { if (read >= aImgWidth) { break; } offset = (read + yi) *4; m = sharedBlurKernal[i]; ca += m * pix[offset + 3]; cr += m * pix[offset]; cg += m * pix[offset + 1]; cb += m * pix[offset + 2]; sum += m; read++; } ri = yi + x; a2[ri] = ca / sum; r2[ri] = cr / sum; g2[ri] = cg / sum; b2[ri] = cb / sum; } yi += aImgWidth; } yi = 0; ym = -sharedBlurRadius; ymi = ym*aImgWidth; for (y = 0; y < aImgHeight; y++) { for (x = 0; x < aImgWidth; x++) { cb = cg = cr = ca = sum = 0; if (ym<0) { bk0 = ri = -ym; read = x; } else { if (ym >= aImgHeight) { break; } bk0 = 0; ri = ym; read = x + ymi; } for (i = bk0; i < sharedBlurKernelSize; i++) { if (ri >= aImgHeight) { break; } m = sharedBlurKernal[i]; ca += m * a2[read]; cr += m * r2[read]; cg += m * g2[read]; cb += m * b2[read]; sum += m; ri++; read += aImgWidth; } offset = (x + yi) *4; pix[offset] = cr / sum; pix[offset + 1] = cg / sum; pix[offset + 2] = cb / sum; pix[offset + 3] = ca / sum; } yi += aImgWidth; ymi += aImgWidth; ym++; }
However, I wasn’t able to get much done with this. I found some useful references to guide me, like: http://processingjs.org/learning/topic/blur
But it’s been taking long to understand the variables, the logic of the code and what might be causing the canvas to shift. I was expecting to find some code which might be using the translate() function, which might hint where I could start. No such luck yet 😛
So for this release, I switched to working on the other bug that is assigned to me, and I will get back to this bugger later.
Trackbacks