public void fillRoundRect(int x, int y, int w, int h, float radx, float rady, System.Drawing.Brush gdibrush) { var param = BrushParamFromGDIBrush(gdibrush); lock (_drawReqLock) { BrushParams.Add(param); } AddDrawRequest((target) => { var brush = param.GetBrush(target); if (brush != null) { dxFillRoundRect(target, x, y, w, h, radx, rady, brush); brush.Dispose(); } }); }
public void fillPolygon(System.Drawing.PointF[] points, System.Drawing.Brush gdibrush, int offsetX = 0, int offsetY = 0) { var param = BrushParamFromGDIBrush(gdibrush); lock (_drawReqLock) { BrushParams.Add(param); } AddDrawRequest((target) => { var brush = param.GetBrush(target); if (brush != null) { dxFillPolygon(target, points, brush, offsetX, offsetY); brush.Dispose(); } }); }
private void AddDrawRequest(Action <RenderTarget> action) { lock (_drawReqLock) { if (DrawRequestFlushed) { DrawRequestFlushed = false; DrawRequests.Clear(); foreach (var parms in BrushParams) { parms.Dispose(); } BrushParams.Clear(); } DrawRequests.Add(action); } }