private static void DrawDashedWithOffset(GraphicsTarget g, SymPath path, Pen pen, DashInfo dashes, float offsetRight, float miterLimit, RenderOptions renderOpts) { float[] distances; distances = ComputeDashDistances(path, LocationKind.DashAndGapLengths, dashes.dashLength, dashes.firstDashLength, dashes.lastDashLength, dashes.gapLength, dashes.minGaps, 0, dashes.secondaryEndGaps, dashes.secondaryEndLength, dashes.secondaryMiddleGaps, dashes.secondaryMiddleLength, 1.0F, false); if (distances.Length == 0 || (dashes.gapLength < renderOpts.minResolution && (dashes.secondaryMiddleGaps == 0 || dashes.secondaryMiddleLength < renderOpts.minResolution) && (dashes.secondaryEndGaps == 0 || dashes.secondaryEndLength < renderOpts.minResolution))) { // No dashes, or the dashes are too small to be visible. Draw solid. if (offsetRight != 0) { SymPath offsetPath = path.OffsetRight(offsetRight, miterLimit); offsetPath.Draw(g, pen); } else path.Draw(g, pen); } else { path.DrawDashedOffsetBizzarro(g, pen, distances, 0, offsetRight, miterLimit); } }