private void DoRender(RenderArgs args) { _isUseDummyMap = _canvas.DummyRenderModeSupport.IsDummyModel; if (_buffer == null || _preSize.Width != _canvas.Container.Width || _preSize.Height != _canvas.Container.Height) { if (_buffer != null) { _buffer.Dispose(); } _buffer = new Bitmap(_canvas.Container.Width, _canvas.Container.Height, PixelFormat.Format32bppArgb); _preSize = _canvas.Container.Size; _isUseDummyMap = false; } if (_isUseDummyMap) { RenderUseDummyMap(args, _buffer, _preEnvelope); } else { using (Graphics g = Graphics.FromImage(_buffer)) { g.Clear(Color.Transparent); Graphics og = args.Graphics; args.BeginRender(g); DirectRender(args); _preEnvelope = _canvas.CurrentEnvelope.Clone(); og.DrawImage(_buffer, 0, 0); } } }
private void Render(PaintEventArgs e) { if (_vectorMapRuntime == null || _vectorMapRuntime.Map == null) { e.Graphics.Clear(BackColor); return; } try { _renderArg.BeginRender(e.Graphics); e.Graphics.Clear(_vectorMapRuntime.Map.MapArguments.BackColor); _vectorMapRuntime.Render(_renderArg); // if (_currentMapTool != null) { _currentMapTool.Render(_renderArg); } } finally { _renderArg.EndRender(); //触发渲染完毕的事件通知(异步方式通知) if (_renderFinishedNotify != null) { this.DoBeginInvoke(_renderFinishedNotify); _renderFinishedNotify = null; } } }
public void Render(object sender, IDrawArgs drawArgs) { if (_mapRuntime == null) { return; } if (_canvas == null) { _canvas = sender as ICanvas; Init(); } else { if (_coordinateTranform == null) { _coordinateTranform = _canvas.CoordTransform; } } _renderArgs.BeginRender(drawArgs.Graphics as Graphics); try { if (_isEnableDummyRender) { DoRender(_renderArgs); } else { DirectRender(_renderArgs); } } finally { _renderArgs.EndRender(); } }