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