IRenderContext2D
Definiert die Schnittstelle zu einem 2D RenderContext, so dass Zeichnung, Blitting und Erstellen von Stiften und Bürsten auf dem RenderSurfaceBase @
Implementiert: IDisposable
Eigenschaften
public RenderOperationLayers Layers { get; }
value = iRenderContext2D.Layers
Erhaltet eine Sammlung von RenderOperationLayers, mit denen Rendering-Operationen in eine geschichtete Warteschlange für die spätere Ausführung in der Reihenfolge (und korrekte Z-Ordnung) gepostet werden können.
public Size ViewportSize { get; }
value = iRenderContext2D.ViewportSize
Bekommt die aktuelle Größe des Viewports.
Methoden
public IPathDrawingContext BeginLine(IPen2D pen, double startX, double startY)
result = iRenderContext2D.BeginLine(pen, startX, startY)
Beginnt ein Polyline-Segment und gibt die IPathDrawingContext zurück. Dies ist der schnellste Weg, um Linien zu zeichnen und einfach ein Proxy zu Point} -Methode.
- pen
- Der Stift für das Liniensegment
- startX
- Start-X-Koordinate (Pixel coord)
- startY
- Die Start-Y-Koordinate (Pixel coord)
Rückgabe: Die IPathDrawingContext, um die Linie fortzusetzen
public IPathDrawingContext BeginPolygon(IBrush2D brush, double startX, double startY, double gradientRotationAngle)
result = iRenderContext2D.BeginPolygon(brush, startX, startY, gradientRotationAngle)
Beginnt ein ausgefülltes Polygon-Segment und gibt die IPathDrawingContext zurück. Dies ist der schnellste Weg, um Polygon und einfach einen Proxy zu Double zu zeichnen.
- brush
- Die Bürste für die Polygonfüllung
- startX
- Start-X-Koordinate (Pixel coord)
- startY
- Die Start-Y-Koordinate (Pixel coord)
- gradientRotationAngle
- Der Winkel, um den die Bürste gedreht wird
Rückgabe: Das IPathDrawingContext, um das Polygon fortzusetzen
public IBrush2D CreateBrush(Color color, double opacity, bool? alphaBlend)
result = iRenderContext2D.CreateBrush(color, opacity, alphaBlend)
Erstellt einen IBrush2D, der für den aktuellen Renderpass gültig ist.
- color
- Die Farbe des Pinsels, unterstützt die Transparenz
- opacity
- Die Trübung des Pinsels
- alphaBlend
- Wenn zutreffend, Alphablending verwenden, wenn Schattierung, wenn null, automatisch erkennen
Rückgabe: Die IBrush2D Instanz
public IBrush2D CreateBrush(Brush brush, double opacity, TextureMappingMode textureMappingMode)
result = iRenderContext2D.CreateBrush(brush, opacity, textureMappingMode)
Erstellt einen IBrush2D aus WPF Brush, der für den aktuellen Renderpass gültig ist.
- brush
- Die WPF-Bürste, die als Quelle verwendet werden soll, e.g. Dies kann eine , oder es kann eine . Beachten Sie, dass Vollfarben Transparenz unterstützen und schneller sind als Gradientenbürsten
- opacity
- Die Trübung des Pinsels
- textureMappingMode
- Definiert ein TextureMappingMode, e.g @. Pinsel teilen eine Textur pro Viewport oder eine neue Textur pro Primitive gezeichnet
Rückgabe: Die IBrush2D Instanz
public IPen2D CreatePen(Color color, bool antiAliasing, float strokeThickness, double opacity, double[] strokeDashArray, PenLineCap strokeEndLineCap)
result = iRenderContext2D.CreatePen(color, antiAliasing, strokeThickness, opacity, strokeDashArray, strokeEndLineCap)
Erstellt eine IPen2D, die für den aktuellen Renderpass gültig ist.
- color
- Die Farbe des Stiftes, unterstützt die Transparenz
- antiAliasing
- Wenn zutreffend, verwenden Sie Antialiasing
- strokeThickness
- Die Strichdicke, Default = 1,0
- opacity
- Die Opecity des Pen
- strokeDashArray
- strokeEndLineCap
Rückgabe: Die IPen2D-Instanz
public ISprite2D CreateSprite(FrameworkElement fe)
result = iRenderContext2D.CreateSprite(fe)
Erstellt einen Sprite aus FrameworkElement durch Rendern in Bitmap. Dies kann in der Point-Methode verwendet werden, um wiederholt auf den Bildschirm zu ziehen
- fe
public Size DigitMaxSize(float fontSize, string fontFamily, FontWeight fontWeight)
result = iRenderContext2D.DigitMaxSize(fontSize, fontFamily, fontWeight)
maximale Zifferngröße in Pixeln
public void DisposeResourceAfterDraw(IDisposable disposable)
iRenderContext2D.DisposeResourceAfterDraw(disposable)
Rufen Sie diese Methode auf, indem Sie die IDisposable-Instanz nach Abschluss des Render-Passes übergeben, intern von Ultrachart aufgerufen, um Direct2D- und Direct3D-Pinsel und Texturen zu entsorgen.
- disposable
public void DrawEllipse(IPen2D strokePen, IBrush2D fillBrush, Point center, double width, double height)
iRenderContext2D.DrawEllipse(strokePen, fillBrush, center, width, height)
Zeichnet eine Ellipse auf IRenderSurface2D mit dem angegebenen Umriss IPen2D und füllen Sie IBrush2D
- strokePen
- Der Hubfederhalter
- fillBrush
- Die Füllbürste
- center
- Die Mitte der Ellipse in Pixeln
- width
- Die Breite der Ellipse in Pixeln
- height
- Die Höhe der Ellipse in Pixeln
public void DrawEllipses(IPen2D strokePen, IBrush2D fillBrush, IEnumerable<Point> centres, double width, double height)
iRenderContext2D.DrawEllipses(strokePen, fillBrush, centres, width, height)
Zeichnet 0..N Ellipsen an den Punkten mit der gleichen Breite, Höhe, Feder und Bürste
- strokePen
- fillBrush
- centres
- Die Punkte, um Ellipsen zu zeichnen
- width
- Die gemeinsame Breite für alle Ellipsen
- height
- Die gemeinsame Höhe für alle Ellipsen
public void DrawLine(IPen2D pen, Point pt1, Point pt2)
iRenderContext2D.DrawLine(pen, pt1, pt2)
Zeichnet eine einzelne Zeile auf dem IRenderSurface2D mit der angegebenen IPen2D. Hinweis für eine schnellere Implementierung in einigen Rasterizern, verwenden Sie DrawLines Passing in einem IEnumerable
- pen
- Die Feder
- pt1
- Der Anfang der Zeile in Pixeln
- pt2
- Das Ende der Zeile in Pixeln
public void DrawLines(IPen2D pen, IEnumerable<Point> points)
iRenderContext2D.DrawLines(pen, points)
Zeichnet eine Mehrpunktlinie auf IRenderSurface2D mit der angegebenen IPen2D
- pen
- Die Feder
- points
- Die Punkte
Rückgabe: Der letzte Punkt in der Polylinie gezeichnet
public void DrawPixelsVertically(int x, int yStartBottom, int yEndTop, IList<int> pixelColorsArgb, double opacity, bool yAxisIsFlipped)
iRenderContext2D.DrawPixelsVertically(x, yStartBottom, yEndTop, pixelColorsArgb, opacity, yAxisIsFlipped)
Zeichnet vertikale Scan-Linie für Heatmap von unten nach oben, von yStart bis yEnd @
- x
- Bildschirm X koordiniert, wo Pixel zu zeichnen
- yStartBottom
- Bildschirm-Y-Koordinate der vertikalen Abtastzeile unten: kann außerhalb des sichtbaren Bereichs liegen, in diesem Fall sind nicht alle Pixel in der Liste gerendert
- yEndTop
- Bildschirm-Y-Koordinate der vertikalen Scan-Linie oben. Kann außerhalb des sichtbaren Bereichs liegen, in diesem Fall sind nicht alle Pixel in der Liste gerendert
- pixelColorsArgb
- Die Liste der Pixelfarben, die Sie zeichnen möchten
- opacity
- Die Opacity der Linie von 0,0 bis 1,0
- yAxisIsFlipped
- Wenn auf true gesetzt, wird die y-Achse umgedreht.
public void DrawQuad(IPen2D pen, Point pt1, Point pt2)
iRenderContext2D.DrawQuad(pen, pt1, pt2)
Zeichnet ein Quad auf IRenderSurface2D mit der angegebenen IPen2D
- pen
- Der Stift
- pt1
- Links oben im Quad
- pt2
- Rechts unten im Quad
public void DrawSprite(ISprite2D srcSprite, Rect srcRect, Point destPoint)
iRenderContext2D.DrawSprite(srcSprite, srcRect, destPoint)
Blits das Quellbild auf die IRenderSurface2D
- srcSprite
- Die Quelle sprite zum Rendern
- srcRect
- Das Quellrechteck
- destPoint
- Der Zielpunkt, der die obere linke Koordinate des Sprite nach dem Blitting sein wird
public void DrawSprites(ISprite2D sprite2D, IEnumerable<Rect> dstRects)
iRenderContext2D.DrawSprites(sprite2D, dstRects)
Batch ziehen Sie den Quell-Sprite auf IRenderSurface2D @
- sprite2D
- Der Sprite zum Rendern
- dstRects
- Die Zielrechtecke, um Sprites anzuziehen
public void DrawSprites(ISprite2D sprite2D, Rect srcRect, IEnumerable<Point> points)
iRenderContext2D.DrawSprites(sprite2D, srcRect, points)
Batch ziehen Sie den Quell-Sprite auf IRenderSurface2D @
- sprite2D
- Der Sprite zum Rendern
- srcRect
- Das Quellrechteck
- points
- Die Punkte, um Sprites zu zeichnen
public void DrawText(string text, Rect dstBoundingRect, AlignmentX alignX, AlignmentY alignY, Color foreColor, float fontSize, string fontFamily, FontWeight fontWeight)
iRenderContext2D.DrawText(text, dstBoundingRect, alignX, alignY, foreColor, fontSize, fontFamily, fontWeight)
Zeichnet Text, wenn er nicht nach draußen geht
public void DrawText(string text, Point basePoint, AlignmentX alignX, AlignmentY alignY, Color foreColor, float fontSize, string fontFamily, FontWeight fontWeight)
iRenderContext2D.DrawText(text, basePoint, alignX, alignY, foreColor, fontSize, fontFamily, fontWeight)
Zeichnet Text relativ zum Basispunkt
public void FillArea(IBrush2D brush, IEnumerable<Tuple<Point, Point>> lines, bool isVerticalChart, double gradientRotationAngle)
iRenderContext2D.FillArea(brush, lines, isVerticalChart, gradientRotationAngle)
Füllt einen Bereich, der die Punkte und Höhen definiert, e.g. wie in einem Bergdiagramm, mit dem Spezifie IBrush2D
- brush
- Der Pinsel
- lines
- isVerticalChart
- Wert, gibt an, ob der Chart vertikal ist
- gradientRotationAngle
- Der Winkel, um den die Bürste gedreht wird
public void FillPolygon(IBrush2D brush, IEnumerable<Point> points)
iRenderContext2D.FillPolygon(brush, points)
Füllt ein Polygon auf dem IRenderSurface2D mit dem Spezifie IBrush2D
- brush
- Der Pinsel
- points
- Die Liste der Punkte, die das geschlossene Polygon definieren, wobei X,Y im Uhrzeigersinn koordiniert
public void FillRectangle(IBrush2D brush, Point pt1, Point pt2, double gradientRotationAngle)
iRenderContext2D.FillRectangle(brush, pt1, pt2, gradientRotationAngle)
Füllt ein Rechteck auf dem IRenderSurface2D mit dem angegebenen IBrush2D
- brush
- Der Pinsel
- pt2
- Der linke obere Punkt des Rechtecks
- pt1
- Der rechte untere Punkt des Rechtecks
- gradientRotationAngle
- Der Winkel, um den die Bürste gedreht wird, ist standardmäßig Null
public void SetPrimitvesCachingEnabled(bool bEnabled)
iRenderContext2D.SetPrimitvesCachingEnabled(bEnabled)
ermöglicht/deaktiviert primitves chaching Optimierung (nur Direct3D-Renderer)
public void TextDrawDimensions(string text, float fontSize, Color foreColor, float width, float height, string fontFamily, FontWeight fontWeight)
iRenderContext2D.TextDrawDimensions(text, fontSize, foreColor, width, height, fontFamily, fontWeight)
Berechnen Sie den Platz, der zum Zeichnen von Text benötigt wird