RenderContextBase
Define a classe base para IRenderContext2D implementos, permitindo desenhar, blitting e criação de canetas e pincéis no RenderSurfaceBase
Implementa: IRenderContext2D, IDisposable
Propriedades
public abstract RenderOperationLayers Layers { get; }
value = renderContextBase.Layers
Obtém uma coleção de RenderOperationLayer layers, que permitem que operações de renderização sejam postadas em uma fila em camadas para execução posterior em ordem (e correta ordem Z).
public abstract Size ViewportSize { get; }
value = renderContextBase.ViewportSize
Obtém o tamanho da janela actual para esta operação de renderização
Métodos
public abstract IPathDrawingContext BeginLine(IPen2D pen, double startX, double startY)
result = renderContextBase.BeginLine(pen, startX, startY)
Inicia um segmento de linha poli, devolvendo o método IPathDrawingContext. Esta é a maneira mais rápida de desenhar linhas e simplesmente um proxy para Ponto}).
- pen
- A caneta para o segmento de linha
- startX
- A coordenada inicial do X (coord de pixel)
- startY
- A coordenada inicial Y (pixel coord)
Retorna: A IPathDrawingContext para continuar a linha
public abstract IPathDrawingContext BeginPolygon(IBrush2D brush, double startX, double startY, double gradientRotationAngle)
result = renderContextBase.BeginPolygon(brush, startX, startY, gradientRotationAngle)
Inicia um segmento de polígono preenchido, devolvendo o método IPathDrawingContext. Esta é a maneira mais rápida de desenhar polígono e simplesmente um proxy para o Double).
- brush
- O pincel para o preenchimento do polígono
- startX
- A coordenada inicial do X (coord de pixel)
- startY
- A coordenada inicial Y (pixel coord)
- gradientRotationAngle
- O ângulo pelo qual o pincel é rodado
Retorna: O IPathDrawingContextpara continuar o polígono
protected IEnumerable<Point> ClipArea(IEnumerable<Tuple<Point, Point>> lines)
result = renderContextBase.ClipArea(lines)
Usado internamente para cortar a área de StackedMountainSeries para a viewport
- lines
- Coleta de linhas, que representam limites de um segmento de polígono
protected IEnumerable<Point> ClipArea(IEnumerable<Point> points, int xExtension, int yExtension)
result = renderContextBase.ClipArea(points, xExtension, yExtension)
Usado internamente para cortar um polígono ou segmento de linha na janela
internal static bool ClipLine(Point pt1, Point pt2, Size viewportSize)
result = RenderContextBase.ClipLine(pt1, pt2, viewportSize)
Retorna: falso se a linha estiver fora da área visível
protected double ClipZeroLineForArea(double zeroLine, bool isVerticalChart)
result = renderContextBase.ClipZeroLineForArea(zeroLine, isVerticalChart)
Usado internamente: Corta a linha zero (e.g. in mountain fills) para a viewport
public abstract IBrush2D CreateBrush(Color color, double opacity, bool? alphaBlend)
result = renderContextBase.CreateBrush(color, opacity, alphaBlend)
Cria um IBrush2D válido para o passe de renderização atual. Use isto para desenhar retângulos, polígonos e áreas sombreadas
- color
- A cor do pincel, suporta transparência
- opacity
- A opacidade da escova
- alphaBlend
- Se for verdadeiro, use o alfablending ao sombrear. Se for nulo, detecte automaticamente da cor
Retorna: A instância IBrush2D
public abstract IBrush2D CreateBrush(Brush brush, double opacity, TextureMappingMode textureMappingMode)
result = renderContextBase.CreateBrush(brush, opacity, textureMappingMode)
Cria um IBrush2D a partir do Pincel WPF válido para o passe de renderização atual. Use isto para desenhar retângulos, polígonos e áreas sombreadas
- brush
- O Pincel WPF para usar como fonte, e.g. isto pode ser um , ou pode ser um . Note que cores sólidas suportam transparência e são mais rápidas do que escovas gradiente
- opacity
- A opacidade da escova
- textureMappingMode
Retorna: A instância IBrush2D
public abstract IPen2D CreatePen(Color color, bool antiAliasing, float strokeThickness, double opacity, double[] strokeDashArray, PenLineCap strokeEndLineCap)
result = renderContextBase.CreatePen(color, antiAliasing, strokeThickness, opacity, strokeDashArray, strokeEndLineCap)
Cria um IPen2D válido para o passe de renderização atual. Use isto para desenhar contornos, quads e linhas
- color
- A cor da caneta, suporta a transparência
- antiAliasing
- Se for verdadeiro, utilize antialiasing
- strokeThickness
- A braçada, padrão=1.0
- opacity
- A opecidade da caneta
- strokeDashArray
- strokeEndLineCap
Retorna: A instância IPen2D
public abstract ISprite2D CreateSprite(FrameworkElement fe)
result = renderContextBase.CreateSprite(fe)
Cria uma imagem a partir de FrameworkElement, renderizando para bitmap. Isto pode ser usado no método Ponto) para desenhar para o ecrã repetidamente
- fe
public abstract void Dispose()
renderContextBase.Dispose()
Executa tarefas definidas por aplicativos associadas à liberação, liberação ou redefinição de recursos não gerenciados.
public abstract void DisposeResourceAfterDraw(IDisposable disposable)
renderContextBase.DisposeResourceAfterDraw(disposable)
Chame este método, passando em instância IDisposable para eliminar após a passagem de renderização completa. Chamado internamente por Ultrachart para deposição preguiçosa de escovas e texturas Direct2D e Direct3D
- disposable
public abstract void DrawEllipse(IPen2D strokePen, IBrush2D fillBrush, Point center, double width, double height)
renderContextBase.DrawEllipse(strokePen, fillBrush, center, width, height)
Desenha uma Elipse na IRenderSurface2D usando o contorno especificado IPen2D e preenchendo IBrush2D
- strokePen
- A caneta de injecção
- fillBrush
- O pincel de preenchimento
- center
- O centro da elipse em pixels
- width
- A largura da elipse em pixels
- height
- A altura da elipse em pixels
public abstract void DrawEllipses(IPen2D strokePen, IBrush2D fillBrush, IEnumerable<Point> centres, double width, double height)
renderContextBase.DrawEllipses(strokePen, fillBrush, centres, width, height)
Desenha 0..N Elipses nos pontos passados com a mesma largura, altura, caneta e pincel
- strokePen
- fillBrush
- centres
- Os pontos para desenhar elipses em
- width
- A largura comum para todas as elipses
- height
- A altura comum para todas as elipses
public virtual void DrawLine(IPen2D pen, Point pt1, Point pt2)
renderContextBase.DrawLine(pen, pt1, pt2)
Desenha uma única linha na IRenderSurface2D usando o IPen2D especificado. Nota para uma implementação mais rápida em alguns rasterizadores, use DrawLines
- pen
- A caneta
- pt1
- O início da linha em pixels
- pt2
- O fim da linha em pixels
public virtual void DrawLines(IPen2D pen, IEnumerable<Point> points)
renderContextBase.DrawLines(pen, points)
Desenha uma linha multipontos na IRenderSurface2D usando o IPen2D indicado
- pen
- A caneta
- points
- Os pontos.
public abstract void DrawPixelsVertically(int x, int yStartBottom, int yEndTop, IList<int> pixelColorsArgb, double opacity, bool yAxisIsFlipped)
renderContextBase.DrawPixelsVertically(x, yStartBottom, yEndTop, pixelColorsArgb, opacity, yAxisIsFlipped)
Desenha a linha de procura vertical para a mapa de calor de baixo para cima, de yStart para yEnd
- x
- Tela X coordenar onde desenhar pixels
- yStartBottom
- Coordenação Y do ecrã da linha vertical de procura. Pode ser localizada em desnível da área visível, neste caso nem todos os pixels na lista são renderizados
- yEndTop
- Coordenação Y do topo da linha de digitalização vertical. Pode ser localizada em desnível da área visível, neste caso nem todos os pixels na lista são renderizados
- pixelColorsArgb
- As cores a aplicar na linha de varredura vertical
- opacity
- A opacidade da escala vertical, de 0,0 a 1,0
- yAxisIsFlipped
- se definido para true então o eixo y é virado.
public virtual void DrawQuad(IPen2D pen, Point pt1, Point pt2)
renderContextBase.DrawQuad(pen, pt1, pt2)
Desenha um Quad no IRenderSurface2D usando o IPen2D especificado
- pen
- A caneta
- pt1
- pt2
public abstract void DrawSprite(ISprite2D srcSprite, Rect srcRect, Point destPoint)
renderContextBase.DrawSprite(srcSprite, srcRect, destPoint)
Blits a imagem de origem na IRenderSurface2D
- srcSprite
- A imagem de origem a renderizar
- srcRect
- O retângulo de origem
- destPoint
- O ponto de destino, que será a coordenada superior esquerda da imagem após blitting
public abstract void DrawSprites(ISprite2D sprite2D, Rect srcRect, IEnumerable<Point> points)
renderContextBase.DrawSprites(sprite2D, srcRect, points)
Desenho em lote da imagem de origem na IRenderSurface2D
- sprite2D
- A imagem a renderizar
- srcRect
- O retângulo de origem
- points
- Os pontos para desenhar imagens em
public abstract void DrawSprites(ISprite2D sprite2D, IEnumerable<Rect> dstRects)
renderContextBase.DrawSprites(sprite2D, dstRects)
Desenho em lote da imagem de origem na IRenderSurface2D
- sprite2D
- A imagem a renderizar
- dstRects
- Os retângulos de destino para desenhar as imagens em
public void DrawText(string text, Rect dstBoundingRect, AlignmentX alignX, AlignmentY alignY, Color foreColor, float fontSize, string fontFamily, FontWeight fontWeight)
renderContextBase.DrawText(text, dstBoundingRect, alignX, alignY, foreColor, fontSize, fontFamily, fontWeight)
Desenha o texto se não for para fora
- dstBoundingRect
- alignY
- foreColor
- fontSize
- text
- fontFamily
- fontWeight
- alignX
public void DrawText(string text, Point basePoint, AlignmentX alignX, AlignmentY alignY, Color foreColor, float fontSize, string fontFamily, FontWeight fontWeight)
renderContextBase.DrawText(text, basePoint, alignX, alignY, foreColor, fontSize, fontFamily, fontWeight)
Desenha o texto em relação ao ponto base
public abstract void FillArea(IBrush2D brush, IEnumerable<Tuple<Point, Point>> lines, bool isVerticalChart, double gradientRotationAngle)
renderContextBase.FillArea(brush, lines, isVerticalChart, gradientRotationAngle)
Preenche uma área, limitada por dois segmentos de linha, e.g. como num gráfico de montanha empilhado, usando o IBrush2D especificado
- brush
- O pincel
- lines
- A lista de linhas que representam segmentos de polígono
- isVerticalChart
- Valor, indica se o gráfico é vertical
- gradientRotationAngle
- O ângulo pelo qual o pincel é rodado
public virtual void FillPolygon(IBrush2D brush, IEnumerable<Point> points)
renderContextBase.FillPolygon(brush, points)
Preenche um polígono no IRenderSurface2D usando a especificação IBrush2D
- brush
- O pincel
- points
- A lista de pontos que definem o polígono fechado, onde X, Y coordena no sentido horário
public abstract void FillRectangle(IBrush2D brush, Point pt1, Point pt2, double gradientRotationAngle)
renderContextBase.FillRectangle(brush, pt1, pt2, gradientRotationAngle)
Preenche um retângulo na IRenderSurface2D usando o IBrush2D especificado
- brush
- O pincel
- pt1
- pt2
- gradientRotationAngle
- O ângulo pelo qual o pincel é rodado
protected bool IsInBounds(Point pt)
result = renderContextBase.IsInBounds(pt)
Retorna true se o ponto estiver dentro da janela
public virtual void SetPrimitvesCachingEnabled(bool bEnabled)
renderContextBase.SetPrimitvesCachingEnabled(bEnabled)
permite/desativa primitves chaching optimization (apenas renderizador Direct3D )