cables_dev/cables/src/core/cg/cg_canvas.js
class CgCanvas
{
constructor(options)
{
if (!options)
{
console.error("CgCanvas no options");
}
else
{
this._canvasEle = options.canvasEle;
}
if (!options.cg)console.error("CgCanvas options has no cg");
if (!options.canvasEle)console.error("CgCanvas options has no canvasEle");
this._cg = options.cg;
this.pixelDensity = 1;
this.canvasWidth = this.canvasEle.clientWidth;
this.canvasHeight = this.canvasEle.clientHeight;
this._oldWidthRp = -1;
this._oldHeightRp = -1;
this.setSize(this.canvasWidth, this.canvasHeight);
}
get canvasEle() { return this._canvasEle; }
setSize(w, h, ignorestyle)
{
if (this._oldWidthRp != w * this.pixelDensity || this._oldHeightRp != h * this.pixelDensity)
{
this._oldWidthRp = this.canvasEle.width = w * this.pixelDensity;
this._oldHeightRp = this.canvasEle.height = h * this.pixelDensity;
if (!ignorestyle)
{
this.canvasEle.style.width = w + "px";
this.canvasEle.style.height = h + "px";
}
this.updateSize();
this._cg.emitEvent("resize");
}
}
updateSize()
{
this.canvasEle.width = this.canvasWidth = this.canvasEle.clientWidth * this.pixelDensity;
this.canvasEle.height = this.canvasHeight = this.canvasEle.clientHeight * this.pixelDensity;
}
dispose()
{
this._canvasEle.remove();
this._canvasEle = null;
}
}
export { CgCanvas };