protected unsafe override void RenderLine(ISurface src, ISurface dest, Rectangle roi) { bac_adjustment.Render(src, dest, roi); blur_effect.Render(src, dest, roi); invert_effect.Render(dest, dest, roi); desaturate_op.Apply(dest, dest, roi); for (int y = roi.Top; y <= roi.Bottom; ++y) { var srcPtr = src.GetPointAddress(roi.X, y); var dstPtr = dest.GetPointAddress(roi.X, y); for (int x = roi.Left; x <= roi.Right; ++x) { var srcGrey = desaturate_op.Apply(*srcPtr); var sketched = color_dodge_op.Apply(srcGrey, *dstPtr); * dstPtr = sketched; ++srcPtr; ++dstPtr; } } }
protected override void RenderLine(ISurface src, ISurface dest, Rectangle roi) { desat_op.Apply(src, dest, roi); level_op.Apply(dest, dest, roi); }