IRenderContext2D
Определяет интерфейс для 2D RenderContext, позволяющий рисовать, копировать и создавать перья и кисти на RenderSurfaceBase.
Реализует: IDisposable
Свойства
public RenderOperationLayers Layers { get; }
value = iRenderContext2D.Layers
Получает коллекцию RenderOperationLayers, которая позволяет размещать операции рендеринга в многоуровневой очереди для последующего выполнения в порядке (и правильного Z-заказа).
public Size ViewportSize { get; }
value = iRenderContext2D.ViewportSize
Получает текущий размер обзорного порта.
Методы
public IPathDrawingContext BeginLine(IPen2D pen, double startX, double startY)
result = iRenderContext2D.BeginLine(pen, startX, startY)
Начинается сегмент Polyline, возвращая IPathDrawingContext. Это самый быстрый способ нарисовать линии и просто метод прокси для точки.
- pen
- Ручка для сегмента линии
- startX
- Координат старта X (пиксельный коорд)
- startY
- Координат начала Y (пиксельный координ)
Возвращает: IPathDrawingContext чтобы продолжить линию
public IPathDrawingContext BeginPolygon(IBrush2D brush, double startX, double startY, double gradientRotationAngle)
result = iRenderContext2D.BeginPolygon(brush, startX, startY, gradientRotationAngle)
Начинает заполненный сегмент Polygon, возвращая IPathDrawingContext. Это самый быстрый способ нарисовать многоугольник и просто прокси-метод.
- brush
- Кисть для полигонного заполнения
- startX
- Координат старта X (пиксельный коорд)
- startY
- Координат начала Y (пиксельный координ)
- gradientRotationAngle
- Угол, под которым вращается кисть
Возвращает: IPathDrawingContext для продолжения многоугольника
public IBrush2D CreateBrush(Color color, double opacity, bool? alphaBlend)
result = iRenderContext2D.CreateBrush(color, opacity, alphaBlend)
Создает IBrush2D, действительный для текущего пропуска рендеринга. Используйте это для рисования прямоугольников, полигонов и затененных областей
- color
- Цвет кисти, поддерживает прозрачность
- opacity
- Непрозрачность кисти
- alphaBlend
- Если это правда, используйте альфаблендирование при затенении. Если нет, то автоматически
Возвращает: Пример IBrush2D
public IBrush2D CreateBrush(Brush brush, double opacity, TextureMappingMode textureMappingMode)
result = iRenderContext2D.CreateBrush(brush, opacity, textureMappingMode)
Создает IBrush2D от WPF Brush, действительный для текущего пропуска рендеринга. Используйте это для рисования прямоугольников, полигонов и затененных областей
- brush
- WPF Brush для использования в качестве источника, e.g. это может быть , или это может быть . Обратите внимание, что твердые цвета поддерживают прозрачность и быстрее, чем градиентные кисти.
- opacity
- Непрозрачность кисти
- textureMappingMode
- Определяет TextureMappingMode, e.g. кисти имеют общую текстуру для просмотра или новую текстуру для примитивного рисования
Возвращает: Пример 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)
Создает IPen2D, действительный для текущего пропуска рендеринга. Используйте это, чтобы нарисовать контуры, квадраты и линии
- color
- Цвет ручки поддерживает прозрачность
- antiAliasing
- Если это правда, используйте противорвотные средства
- strokeThickness
- Толщина удара, по умолчанию = 1,0
- opacity
- Непрозрачность пера
- strokeDashArray
- strokeEndLineCap
Возвращает: Пример IPen2D
public ISprite2D CreateSprite(FrameworkElement fe)
result = iRenderContext2D.CreateSprite(fe)
Создает Sprite от FrameworkElement путем рендеринга на растровую карту. Это может быть использовано в методе Point для многократного вывода на экран.
- fe
public Size DigitMaxSize(float fontSize, string fontFamily, FontWeight fontWeight)
result = iRenderContext2D.DigitMaxSize(fontSize, fontFamily, fontWeight)
Максимальный размер в пикселях
public void DisposeResourceAfterDraw(IDisposable disposable)
iRenderContext2D.DisposeResourceAfterDraw(disposable)
Назовите этот метод, проходя в одноразовом экземпляре, чтобы распоряжаться после завершения прохождения рендеринга. Называется внутри Ultrachart для ленивого удаления кистей и текстур Direct2D и Direct3D
- disposable
public void DrawEllipse(IPen2D strokePen, IBrush2D fillBrush, Point center, double width, double height)
iRenderContext2D.DrawEllipse(strokePen, fillBrush, center, width, height)
Рисует Эллипс на IRenderSurface2D, используя указанный контур IPen2D и заполняет IBrush2D
- strokePen
- Штриховая ручка
- fillBrush
- Заливная кисть
- center
- Центр эллипса в пикселях
- width
- Ширина эллипса в пикселях
- height
- Высота эллипса в пикселях
public void DrawEllipses(IPen2D strokePen, IBrush2D fillBrush, IEnumerable<Point> centres, double width, double height)
iRenderContext2D.DrawEllipses(strokePen, fillBrush, centres, width, height)
Рисует 0..N Эллипсы в точках, пройденных с одинаковой шириной, высотой, пером и кистью
- strokePen
- fillBrush
- centres
- Точки для рисования эллипсов на
- width
- Общая ширина для всех эллипсов
- height
- Общая высота для всех эллипсов
public void DrawLine(IPen2D pen, Point pt1, Point pt2)
iRenderContext2D.DrawLine(pen, pt1, pt2)
Нарисуйте одну строку на IRenderSurface2D, используя указанный IPen2D. Примечание для более быстрой реализации в некоторых растеризаторах используйте DrawLines проходя в IEnumerable
- pen
- Ручка
- pt1
- Начало строки в пикселях
- pt2
- Конец строки в пикселях
public void DrawLines(IPen2D pen, IEnumerable<Point> points)
iRenderContext2D.DrawLines(pen, points)
Нарисуйте многоточечную линию на IRenderSurface2D, используя указанный IPen2D
- pen
- Ручка
- points
- Точки
Возвращает: Последний пункт нарисованной полилинии
public void DrawPixelsVertically(int x, int yStartBottom, int yEndTop, IList<int> pixelColorsArgb, double opacity, bool yAxisIsFlipped)
iRenderContext2D.DrawPixelsVertically(x, yStartBottom, yEndTop, pixelColorsArgb, opacity, yAxisIsFlipped)
Линия вертикального сканирования для тепловой карты снизу вверх, от yStart до yEnd
- x
- Экран X координирует, где рисовать пиксели
- yStartBottom
- Экран Y координаты дна вертикальной линии сканирования. Может располагаться вне видимой области, в этом случае отображаются не все пиксели в списке
- yEndTop
- Экран Y координаты вершины вертикальной линии сканирования. Может располагаться вне видимой области, в этом случае отображаются не все пиксели в списке
- pixelColorsArgb
- Список пиксельных цветов для рисования
- opacity
- Непрозрачность линии от 0,0 до 1,0
- yAxisIsFlipped
- Если же ось вывернута, то ось перевернута.
public void DrawQuad(IPen2D pen, Point pt1, Point pt2)
iRenderContext2D.DrawQuad(pen, pt1, pt2)
Нарисуйте Quad на IRenderSurface2D, используя указанный IPen2D
- pen
- Ручка
- pt1
- Левая верхняя точка в квадрате
- pt2
- Нижняя правая точка в квадрате
public void DrawSprite(ISprite2D srcSprite, Rect srcRect, Point destPoint)
iRenderContext2D.DrawSprite(srcSprite, srcRect, destPoint)
Отображает исходное изображение на IRenderSurface2D
- srcSprite
- Источник спрайт для рендеринга
- srcRect
- Прямоугольник источника
- destPoint
- Пункт назначения, который будет верхне-левой координатой спрайта после заблевания
public void DrawSprites(ISprite2D sprite2D, IEnumerable<Rect> dstRects)
iRenderContext2D.DrawSprites(sprite2D, dstRects)
Пакетный рисунок исходного спрайта на IRenderSurface2D
- sprite2D
- Спрайт, чтобы сделать
- dstRects
- Прямоугольники назначения для рисования спрайтов в
public void DrawSprites(ISprite2D sprite2D, Rect srcRect, IEnumerable<Point> points)
iRenderContext2D.DrawSprites(sprite2D, srcRect, points)
Пакетный рисунок исходного спрайта на IRenderSurface2D
- sprite2D
- Спрайт, чтобы сделать
- srcRect
- Прямоугольник источника
- points
- Точки для рисования спрайтов в
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)
Нарисуйте текст, если он не выходит наружу
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)
Рисуем текст относительно базовой точки
public void FillArea(IBrush2D brush, IEnumerable<Tuple<Point, Point>> lines, bool isVerticalChart, double gradientRotationAngle)
iRenderContext2D.FillArea(brush, lines, isVerticalChart, gradientRotationAngle)
Заполняет область, определенную Точками и Высотами, e.g, как в горной диаграмме, используя спецификацию IBrush2D
- brush
- кисть
- lines
- isVerticalChart
- Значение указывает, является ли диаграмма вертикальной.
- gradientRotationAngle
- Угол, под которым вращается кисть
public void FillPolygon(IBrush2D brush, IEnumerable<Point> points)
iRenderContext2D.FillPolygon(brush, points)
Заполняет многоугольник на IRenderSurface2D с помощью спецификации IBrush2D
- brush
- кисть
- points
- Список точек, определяющих замкнутый многоугольник, где X,Y координаты в направлении по часовой стрелке
public void FillRectangle(IBrush2D brush, Point pt1, Point pt2, double gradientRotationAngle)
iRenderContext2D.FillRectangle(brush, pt1, pt2, gradientRotationAngle)
Заполняет прямоугольник на IRenderSurface2D с помощью указанного IBrush2D
- brush
- кисть
- pt2
- Верхняя левая точка прямоугольника
- pt1
- нижняя правая точка прямоугольника
- gradientRotationAngle
- Угол, под которым вращается щетка, по умолчанию равен нулю
public void SetPrimitvesCachingEnabled(bool bEnabled)
iRenderContext2D.SetPrimitvesCachingEnabled(bEnabled)
Оптимизация включения / отключения примитов (только рендер 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)
Вычислить пространство, необходимое для рисования текста