PRectangle rcSquiggle = rc;
rcSquiggle.left = int(rc.left + 0.5);
rcSquiggle.right = int(rc.right + 0.5);
int width = Platform::Minimum(4000, rcSquiggle.right - rcSquiggle.left);
RGBAImage image(width, 3, 1.0, 0);
enum { alphaFull = 0xff, alphaSide = 0x1f, alphaSide2=0x3f };
for (int x = 0; x < width; x++) {
switch (x%4) {
case 0:
image.SetPixel(x, 2, fore, alphaFull);
image.SetPixel(x, 1, fore, alphaSide2);
break;
case 1:
image.SetPixel(x, 1, fore, alphaFull);
image.SetPixel(x, 0, fore, alphaSide);
image.SetPixel(x, 2, fore, alphaSide);
break;
case 2:
image.SetPixel(x, 0, fore, alphaFull);
image.SetPixel(x, 1, fore, alphaSide2);
break;
default: // 3
image.SetPixel(x, 1, fore, alphaFull);
image.SetPixel(x, 2, fore, alphaSide);
image.SetPixel(x, 0, fore, alphaSide);
}
}
surface->DrawRGBAImage(rcSquiggle, image.GetWidth(), image.GetHeight(), image.Pixels());