private void BlendInFilterPixel(int[] accumulatedColor, int back_r, int back_g, int back_b, int back_a, IImage SourceRenderingBuffer, int maxx, int maxy, int x_lr, int y_lr, int weight) { byte[] fg_ptr; unchecked { if ((uint)x_lr <= (uint)maxx && (uint)y_lr <= (uint)maxy) { int bufferIndex; fg_ptr = SourceRenderingBuffer.GetPixelPointerXY(x_lr, y_lr, out bufferIndex); accumulatedColor[0] += weight * fg_ptr[bufferIndex + ImageBuffer.OrderR]; accumulatedColor[1] += weight * fg_ptr[bufferIndex + ImageBuffer.OrderG]; accumulatedColor[2] += weight * fg_ptr[bufferIndex + ImageBuffer.OrderB]; accumulatedColor[3] += weight * fg_ptr[bufferIndex + ImageBuffer.OrderA]; } else { accumulatedColor[0] += back_r * weight; accumulatedColor[1] += back_g * weight; accumulatedColor[2] += back_b * weight; accumulatedColor[3] += back_a * weight; } } }