# CRender

这里将介绍CRender类,例如实例化、实例属性以及原型方法。

#

/**
 * @description CRender类
 * @param {HTMLCanvasElement} canvas Canvas Element
 * @param {boolean} offScreenRendering 是否启用离屏渲染 (实验性功能)
 * @return {CRender} CRender 实例
 *
 * 启用离屏渲染的性能提升可能会很有限
 */
class CRender {
  constructor(canvas: HTMLCanvasElement, offScreenRendering: boolean = false) {
    // ...
  }
}

# 实例化

import CRender from '@jiaminghi/c-render'

const canvas = document.getElementById('canvas')

const render = new CRender(canvas)

# 实例属性

这里是CRender实例属性的介绍。

# dpr

/**
 * @description Device Pixel Ratio
 */
readonly dpr: number = 1

# offScreenRendering

/**
 * @description 当前是否启用离屏渲染
 */
readonly offScreenRendering: boolean = false

# canvas

/**
 * @description CRender实例绑定的Canvas
 */
readonly canvas!: HTMLCanvasElement

# ctx

/**
 * @description 当前用于渲染的Canvas Context
 */
public ctx!: CanvasCtx

# area

/**
 * @description Canvas 宽高
 */
readonly area: [number, number] = [0, 0]

# graphs

/**
 * @description 已经添加的图形
 */
readonly graphs: Graph[] = []

# 原型方法

这里是CRender原型方法的介绍。

# add

/**
 * @description 向CRender实例中添加图形
 * @param {Graph | Graph[]} graph 要添加的图形
 * @param {boolean} wait 是否等待后续操作 暂不渲染
 *
 * 如果需要添加大量的图形 应尽量一次完成添加 避免多次重复渲染
 */
add(graph: Graph | Graph[], wait: boolean = false): void {
  // ...
}

# delGraph

/**
 * @description 删除CRender实例中添加的图形
 * @param {Graph | Graph[]} graph 要删除的图形
 * @param {boolean} wait 是否等待后续操作 暂不渲染
 *
 * 如果需要删除大量的图形 应尽量一次完成添加 避免多次重复渲染
 */
delGraph(graph: Graph | Graph[], wait: boolean = false): void {
  // ...
}

# delAllGraph

/**
 * @description 删除所有图形
 */
delAllGraph(): void {
  // ...
}

# launchAnimation

/**
 * @description 如果graphs中存在动画队列不为空且不处于暂停动画状态的图形
 * 将进行动画渲染
 */
launchAnimation(): void | Promise<void> {
  // ...
}

# animateAble

/**
 * @description 是否存在动画队列不为空且不处于暂停动画状态的图形
 */
animateAble(): boolean {
  // ...
}

# clearArea

/**
 * @description 清空Canvas画布
 */
clearArea(): void {
  // ...
}