IRenderContext2D
Define a interface para um 2D RenderContext, permitindo desenhar, blitting e criação de canetas e pincéis no RenderSurfaceBase
Implementa: IDisposable
Propriedades
public RenderOperationLayers Layers { get; }
value = iRenderContext2D.Layers
Obtém uma coleção de RenderOperationLayers, 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 Size ViewportSize { get; }
value = iRenderContext2D.ViewportSize
Obtém o tamanho atual da viewport.
Métodos
public IPathDrawingContext BeginLine(IPen2D pen, double startX, double startY)
result = iRenderContext2D.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 IPathDrawingContext BeginPolygon(IBrush2D brush, double startX, double startY, double gradientRotationAngle)
result = iRenderContext2D.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
public IBrush2D CreateBrush(Color color, double opacity, bool? alphaBlend)
result = iRenderContext2D.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 a combinação alfa ao sombrear. Se for nulo, detetete automaticamente
Retorna: A instância IBrush2D
public IBrush2D CreateBrush(Brush brush, double opacity, TextureMappingMode textureMappingMode)
result = iRenderContext2D.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
- Define uma TextureMappingMode, e.g. pincéis partilham uma textura por viewport ou uma nova textura por desenho primitivo
Retorna: A instância IBrush2D
public IPen2D CreatePen(Color color, bool antiAliasing, float strokeThickness, double opacity, double[] strokeDashArray, PenLineCap strokeEndLineCap)
result = iRenderContext2D.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 ISprite2D CreateSprite(FrameworkElement fe)
result = iRenderContext2D.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 Size DigitMaxSize(float fontSize, string fontFamily, FontWeight fontWeight)
result = iRenderContext2D.DigitMaxSize(fontSize, fontFamily, fontWeight)
tamanho máximo do dígito em pixels
public void DisposeResourceAfterDraw(IDisposable disposable)
iRenderContext2D.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 void DrawEllipse(IPen2D strokePen, IBrush2D fillBrush, Point center, double width, double height)
iRenderContext2D.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 void DrawEllipses(IPen2D strokePen, IBrush2D fillBrush, IEnumerable<Point> centres, double width, double height)
iRenderContext2D.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 void DrawLine(IPen2D pen, Point pt1, Point pt2)
iRenderContext2D.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 passando em um IEnumerável
- pen
- A caneta
- pt1
- O início da linha em pixels
- pt2
- O fim da linha em pixels
public void DrawLines(IPen2D pen, IEnumerable<Point> points)
iRenderContext2D.DrawLines(pen, points)
Desenha uma linha multipontos na IRenderSurface2D usando o IPen2D indicado
- pen
- A caneta
- points
- Os pontos
Retorna: O último ponto da linha de polimento desenhada
public void DrawPixelsVertically(int x, int yStartBottom, int yEndTop, IList<int> pixelColorsArgb, double opacity, bool yAxisIsFlipped)
iRenderContext2D.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
- A lista de cores dos pixels a desenhar
- opacity
- A opacidade da linha de 0.0 a 1.0
- yAxisIsFlipped
- se definido para true então o eixo y é virado.
public void DrawQuad(IPen2D pen, Point pt1, Point pt2)
iRenderContext2D.DrawQuad(pen, pt1, pt2)
Desenha um Quad no IRenderSurface2D usando o IPen2D especificado
- pen
- A caneta
- pt1
- Ponto superior esquerdo no quad
- pt2
- Ponto inferior-direita no quad
public void DrawSprite(ISprite2D srcSprite, Rect srcRect, Point destPoint)
iRenderContext2D.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 void DrawSprites(ISprite2D sprite2D, IEnumerable<Rect> dstRects)
iRenderContext2D.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 DrawSprites(ISprite2D sprite2D, Rect srcRect, IEnumerable<Point> points)
iRenderContext2D.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 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)
Desenha o texto se não for para fora
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)
Desenha o texto em relação ao ponto base
public void FillArea(IBrush2D brush, IEnumerable<Tuple<Point, Point>> lines, bool isVerticalChart, double gradientRotationAngle)
iRenderContext2D.FillArea(brush, lines, isVerticalChart, gradientRotationAngle)
Preenche uma área definida como Pontos e Alturas, e.g. como num gráfico de montanha, usando a especificação IBrush2D
- brush
- O pincel
- lines
- isVerticalChart
- Valor, indica se o gráfico é vertical
- gradientRotationAngle
- O ângulo pelo qual o pincel é rodado
public void FillPolygon(IBrush2D brush, IEnumerable<Point> points)
iRenderContext2D.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 void FillRectangle(IBrush2D brush, Point pt1, Point pt2, double gradientRotationAngle)
iRenderContext2D.FillRectangle(brush, pt1, pt2, gradientRotationAngle)
Preenche um retângulo na IRenderSurface2D usando o IBrush2D especificado
- brush
- O pincel
- pt2
- O ponto superior esquerdo do retângulo
- pt1
- O ponto inferior direito do retângulo
- gradientRotationAngle
- O ângulo pelo qual o pincel é rodado, por omissão é zero
public void SetPrimitvesCachingEnabled(bool bEnabled)
iRenderContext2D.SetPrimitvesCachingEnabled(bEnabled)
permite/desativa primitves chaching optimization (apenas renderizador Direct3D )
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)
Calcular o espaço necessário para desenhar o texto