internal static async Task Render(CompositionEngine compositionEngine, SharpDX.Direct2D1.RenderTarget renderTarget, FrameworkElement rootElement, Line line) { var rect = line.GetBoundingRect(rootElement).ToSharpDX(); //var fill = line.Fill.ToSharpDX(renderTarget, rect); var stroke = await line.Stroke.ToSharpDX(renderTarget, rect); if (stroke == null || line.StrokeThickness <= 0) { return; } //var layer = new Layer(renderTarget); //var layerParameters = new LayerParameters(); //layerParameters.ContentBounds = rect; //renderTarget.PushLayer(ref layerParameters, layer); renderTarget.DrawLine( new DrawingPointF( rect.Left + (float)line.X1, rect.Top + (float)line.Y1), new DrawingPointF( rect.Left + (float)line.X2, rect.Top + (float)line.Y2), stroke, (float)line.StrokeThickness, line.GetStrokeStyle(compositionEngine.D2DFactory)); //renderTarget.PopLayer(); }
internal static async Task Render(CompositionEngine compositionEngine, SharpDX.Direct2D1.RenderTarget renderTarget, FrameworkElement rootElement, Line line) { var rect = line.GetBoundingRect(rootElement).ToSharpDX(); var stroke = await line.Stroke.ToSharpDX(renderTarget, rect); if (stroke == null || line.StrokeThickness <= 0) { return; } var layer = line.CreateAndPushLayerIfNecessary(renderTarget, rootElement); renderTarget.DrawLine( new Vector2( rect.Left + (float)line.X1, rect.Top + (float)line.Y1), new Vector2( rect.Left + (float)line.X2, rect.Top + (float)line.Y2), stroke, (float)line.StrokeThickness, line.GetStrokeStyle(compositionEngine.D2DFactory)); if (layer != null) { renderTarget.PopLayer(); layer.Dispose(); } }
public void Draw(SharpDX.Direct2D1.RenderTarget d2dRenderTarget) { //if (DrawnParticles == null) // return; GameForm.solidColorBrush.Color = Colors.AliceBlue; for (int i = 0; i < Particles.Count; i++) { Particles[i].Draw(d2dRenderTarget); } var x = Lines.ToArray(); GameForm.solidColorBrush.Color = Colors.Yellow; for (int i = 0; i < x.Count() - 1; i++) d2dRenderTarget.DrawLine(x[i], x[i + 1], GameForm.solidColorBrush); }