1 |
- {"ast":null,"code":"import { Logger } from \"../../Misc/logger.js\";\nimport { Texture } from \"../../Materials/Textures/texture.js\";\nimport \"../../Engines/Extensions/engine.dynamicTexture.js\";\n/**\n * A class extending Texture allowing drawing on a texture\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/dynamicTexture\n */\nexport class DynamicTexture extends Texture {\n /** @internal */\n constructor(name, canvasOrSize, sceneOrOptions, generateMipMaps = false, samplingMode = 3, format = 5, invertY) {\n const isScene = !sceneOrOptions || sceneOrOptions._isScene;\n const scene = isScene ? sceneOrOptions : sceneOrOptions === null || sceneOrOptions === void 0 ? void 0 : sceneOrOptions.scene;\n const noMipmap = isScene ? !generateMipMaps : sceneOrOptions;\n super(null, scene, noMipmap, invertY, samplingMode, undefined, undefined, undefined, undefined, format);\n this.name = name;\n this.wrapU = Texture.CLAMP_ADDRESSMODE;\n this.wrapV = Texture.CLAMP_ADDRESSMODE;\n this._generateMipMaps = generateMipMaps;\n const engine = this._getEngine();\n if (!engine) {\n return;\n }\n if (canvasOrSize.getContext) {\n this._canvas = canvasOrSize;\n this._ownCanvas = false;\n this._texture = engine.createDynamicTexture(this._canvas.width, this._canvas.height, generateMipMaps, samplingMode);\n } else {\n this._canvas = engine.createCanvas(1, 1);\n this._ownCanvas = true;\n const optionsAsSize = canvasOrSize;\n if (optionsAsSize.width || optionsAsSize.width === 0) {\n this._texture = engine.createDynamicTexture(optionsAsSize.width, optionsAsSize.height, generateMipMaps, samplingMode);\n } else {\n this._texture = engine.createDynamicTexture(canvasOrSize, canvasOrSize, generateMipMaps, samplingMode);\n }\n }\n const textureSize = this.getSize();\n if (this._canvas.width !== textureSize.width) {\n this._canvas.width = textureSize.width;\n }\n if (this._canvas.height !== textureSize.height) {\n this._canvas.height = textureSize.height;\n }\n this._context = this._canvas.getContext(\"2d\");\n }\n /**\n * Get the current class name of the texture useful for serialization or dynamic coding.\n * @returns \"DynamicTexture\"\n */\n getClassName() {\n return \"DynamicTexture\";\n }\n /**\n * Gets the current state of canRescale\n */\n get canRescale() {\n return true;\n }\n _recreate(textureSize) {\n this._canvas.width = textureSize.width;\n this._canvas.height = textureSize.height;\n this.releaseInternalTexture();\n this._texture = this._getEngine().createDynamicTexture(textureSize.width, textureSize.height, this._generateMipMaps, this.samplingMode);\n }\n /**\n * Scales the texture\n * @param ratio the scale factor to apply to both width and height\n */\n scale(ratio) {\n const textureSize = this.getSize();\n textureSize.width *= ratio;\n textureSize.height *= ratio;\n this._recreate(textureSize);\n }\n /**\n * Resizes the texture\n * @param width the new width\n * @param height the new height\n */\n scaleTo(width, height) {\n const textureSize = this.getSize();\n textureSize.width = width;\n textureSize.height = height;\n this._recreate(textureSize);\n }\n /**\n * Gets the context of the canvas used by the texture\n * @returns the canvas context of the dynamic texture\n */\n getContext() {\n return this._context;\n }\n /**\n * Clears the texture\n * @param clearColor Defines the clear color to use\n */\n clear(clearColor) {\n const size = this.getSize();\n if (clearColor) {\n this._context.fillStyle = clearColor;\n }\n this._context.clearRect(0, 0, size.width, size.height);\n }\n /**\n * Updates the texture\n * @param invertY defines the direction for the Y axis (default is true - y increases downwards)\n * @param premulAlpha defines if alpha is stored as premultiplied (default is false)\n * @param allowGPUOptimization true to allow some specific GPU optimizations (subject to engine feature \"allowGPUOptimizationsForGUI\" being true)\n */\n update(invertY, premulAlpha = false, allowGPUOptimization = false) {\n this._getEngine().updateDynamicTexture(this._texture, this._canvas, invertY === undefined ? true : invertY, premulAlpha, this._format || undefined, undefined, allowGPUOptimization);\n }\n /**\n * Draws text onto the texture\n * @param text defines the text to be drawn\n * @param x defines the placement of the text from the left\n * @param y defines the placement of the text from the top when invertY is true and from the bottom when false\n * @param font defines the font to be used with font-style, font-size, font-name\n * @param color defines the color used for the text\n * @param fillColor defines the color for the canvas, use null to not overwrite canvas (this bleands with the background to replace, use the clear function)\n * @param invertY defines the direction for the Y axis (default is true - y increases downwards)\n * @param update defines whether texture is immediately update (default is true)\n */\n drawText(text, x, y, font, color, fillColor, invertY, update = true) {\n const size = this.getSize();\n if (fillColor) {\n this._context.fillStyle = fillColor;\n this._context.fillRect(0, 0, size.width, size.height);\n }\n this._context.font = font;\n if (x === null || x === undefined) {\n const textSize = this._context.measureText(text);\n x = (size.width - textSize.width) / 2;\n }\n if (y === null || y === undefined) {\n const fontSize = parseInt(font.replace(/\\D/g, \"\"));\n y = size.height / 2 + fontSize / 3.65;\n }\n this._context.fillStyle = color || \"\";\n this._context.fillText(text, x, y);\n if (update) {\n this.update(invertY);\n }\n }\n /**\n * Disposes the dynamic texture.\n */\n dispose() {\n super.dispose();\n if (this._ownCanvas) {\n var _this$_canvas, _this$_canvas$remove;\n (_this$_canvas = this._canvas) === null || _this$_canvas === void 0 || (_this$_canvas$remove = _this$_canvas.remove) === null || _this$_canvas$remove === void 0 || _this$_canvas$remove.call(_this$_canvas);\n }\n this._canvas = null;\n this._context = null;\n }\n /**\n * Clones the texture\n * @returns the clone of the texture.\n */\n clone() {\n const scene = this.getScene();\n if (!scene) {\n return this;\n }\n const textureSize = this.getSize();\n const newTexture = new DynamicTexture(this.name, textureSize, scene, this._generateMipMaps);\n // Base texture\n newTexture.hasAlpha = this.hasAlpha;\n newTexture.level = this.level;\n // Dynamic Texture\n newTexture.wrapU = this.wrapU;\n newTexture.wrapV = this.wrapV;\n return newTexture;\n }\n /**\n * Serializes the dynamic texture. The scene should be ready before the dynamic texture is serialized\n * @returns a serialized dynamic texture object\n */\n serialize() {\n const scene = this.getScene();\n if (scene && !scene.isReady()) {\n Logger.Warn(\"The scene must be ready before serializing the dynamic texture\");\n }\n const serializationObject = super.serialize();\n if (DynamicTexture._IsCanvasElement(this._canvas)) {\n serializationObject.base64String = this._canvas.toDataURL();\n }\n serializationObject.invertY = this._invertY;\n serializationObject.samplingMode = this.samplingMode;\n return serializationObject;\n }\n static _IsCanvasElement(canvas) {\n return canvas.toDataURL !== undefined;\n }\n /** @internal */\n _rebuild() {\n this.update();\n }\n}","map":{"version":3,"names":["Logger","Texture","DynamicTexture","constructor","name","canvasOrSize","sceneOrOptions","generateMipMaps","samplingMode","format","invertY","isScene","_isScene","scene","noMipmap","undefined","wrapU","CLAMP_ADDRESSMODE","wrapV","_generateMipMaps","engine","_getEngine","getContext","_canvas","_ownCanvas","_texture","createDynamicTexture","width","height","createCanvas","optionsAsSize","textureSize","getSize","_context","getClassName","canRescale","_recreate","releaseInternalTexture","scale","ratio","scaleTo","clear","clearColor","size","fillStyle","clearRect","update","premulAlpha","allowGPUOptimization","updateDynamicTexture","_format","drawText","text","x","y","font","color","fillColor","fillRect","textSize","measureText","fontSize","parseInt","replace","fillText","dispose","_this$_canvas","_this$_canvas$remove","remove","call","clone","getScene","newTexture","hasAlpha","level","serialize","isReady","Warn","serializationObject","_IsCanvasElement","base64String","toDataURL","_invertY","canvas","_rebuild"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/Textures/dynamicTexture.js"],"sourcesContent":["import { Logger } from \"../../Misc/logger.js\";\nimport { Texture } from \"../../Materials/Textures/texture.js\";\n\nimport \"../../Engines/Extensions/engine.dynamicTexture.js\";\n/**\n * A class extending Texture allowing drawing on a texture\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/dynamicTexture\n */\nexport class DynamicTexture extends Texture {\n /** @internal */\n constructor(name, canvasOrSize, sceneOrOptions, generateMipMaps = false, samplingMode = 3, format = 5, invertY) {\n const isScene = !sceneOrOptions || sceneOrOptions._isScene;\n const scene = isScene ? sceneOrOptions : sceneOrOptions?.scene;\n const noMipmap = isScene ? !generateMipMaps : sceneOrOptions;\n super(null, scene, noMipmap, invertY, samplingMode, undefined, undefined, undefined, undefined, format);\n this.name = name;\n this.wrapU = Texture.CLAMP_ADDRESSMODE;\n this.wrapV = Texture.CLAMP_ADDRESSMODE;\n this._generateMipMaps = generateMipMaps;\n const engine = this._getEngine();\n if (!engine) {\n return;\n }\n if (canvasOrSize.getContext) {\n this._canvas = canvasOrSize;\n this._ownCanvas = false;\n this._texture = engine.createDynamicTexture(this._canvas.width, this._canvas.height, generateMipMaps, samplingMode);\n }\n else {\n this._canvas = engine.createCanvas(1, 1);\n this._ownCanvas = true;\n const optionsAsSize = canvasOrSize;\n if (optionsAsSize.width || optionsAsSize.width === 0) {\n this._texture = engine.createDynamicTexture(optionsAsSize.width, optionsAsSize.height, generateMipMaps, samplingMode);\n }\n else {\n this._texture = engine.createDynamicTexture(canvasOrSize, canvasOrSize, generateMipMaps, samplingMode);\n }\n }\n const textureSize = this.getSize();\n if (this._canvas.width !== textureSize.width) {\n this._canvas.width = textureSize.width;\n }\n if (this._canvas.height !== textureSize.height) {\n this._canvas.height = textureSize.height;\n }\n this._context = this._canvas.getContext(\"2d\");\n }\n /**\n * Get the current class name of the texture useful for serialization or dynamic coding.\n * @returns \"DynamicTexture\"\n */\n getClassName() {\n return \"DynamicTexture\";\n }\n /**\n * Gets the current state of canRescale\n */\n get canRescale() {\n return true;\n }\n _recreate(textureSize) {\n this._canvas.width = textureSize.width;\n this._canvas.height = textureSize.height;\n this.releaseInternalTexture();\n this._texture = this._getEngine().createDynamicTexture(textureSize.width, textureSize.height, this._generateMipMaps, this.samplingMode);\n }\n /**\n * Scales the texture\n * @param ratio the scale factor to apply to both width and height\n */\n scale(ratio) {\n const textureSize = this.getSize();\n textureSize.width *= ratio;\n textureSize.height *= ratio;\n this._recreate(textureSize);\n }\n /**\n * Resizes the texture\n * @param width the new width\n * @param height the new height\n */\n scaleTo(width, height) {\n const textureSize = this.getSize();\n textureSize.width = width;\n textureSize.height = height;\n this._recreate(textureSize);\n }\n /**\n * Gets the context of the canvas used by the texture\n * @returns the canvas context of the dynamic texture\n */\n getContext() {\n return this._context;\n }\n /**\n * Clears the texture\n * @param clearColor Defines the clear color to use\n */\n clear(clearColor) {\n const size = this.getSize();\n if (clearColor) {\n this._context.fillStyle = clearColor;\n }\n this._context.clearRect(0, 0, size.width, size.height);\n }\n /**\n * Updates the texture\n * @param invertY defines the direction for the Y axis (default is true - y increases downwards)\n * @param premulAlpha defines if alpha is stored as premultiplied (default is false)\n * @param allowGPUOptimization true to allow some specific GPU optimizations (subject to engine feature \"allowGPUOptimizationsForGUI\" being true)\n */\n update(invertY, premulAlpha = false, allowGPUOptimization = false) {\n this._getEngine().updateDynamicTexture(this._texture, this._canvas, invertY === undefined ? true : invertY, premulAlpha, this._format || undefined, undefined, allowGPUOptimization);\n }\n /**\n * Draws text onto the texture\n * @param text defines the text to be drawn\n * @param x defines the placement of the text from the left\n * @param y defines the placement of the text from the top when invertY is true and from the bottom when false\n * @param font defines the font to be used with font-style, font-size, font-name\n * @param color defines the color used for the text\n * @param fillColor defines the color for the canvas, use null to not overwrite canvas (this bleands with the background to replace, use the clear function)\n * @param invertY defines the direction for the Y axis (default is true - y increases downwards)\n * @param update defines whether texture is immediately update (default is true)\n */\n drawText(text, x, y, font, color, fillColor, invertY, update = true) {\n const size = this.getSize();\n if (fillColor) {\n this._context.fillStyle = fillColor;\n this._context.fillRect(0, 0, size.width, size.height);\n }\n this._context.font = font;\n if (x === null || x === undefined) {\n const textSize = this._context.measureText(text);\n x = (size.width - textSize.width) / 2;\n }\n if (y === null || y === undefined) {\n const fontSize = parseInt(font.replace(/\\D/g, \"\"));\n y = size.height / 2 + fontSize / 3.65;\n }\n this._context.fillStyle = color || \"\";\n this._context.fillText(text, x, y);\n if (update) {\n this.update(invertY);\n }\n }\n /**\n * Disposes the dynamic texture.\n */\n dispose() {\n super.dispose();\n if (this._ownCanvas) {\n this._canvas?.remove?.();\n }\n this._canvas = null;\n this._context = null;\n }\n /**\n * Clones the texture\n * @returns the clone of the texture.\n */\n clone() {\n const scene = this.getScene();\n if (!scene) {\n return this;\n }\n const textureSize = this.getSize();\n const newTexture = new DynamicTexture(this.name, textureSize, scene, this._generateMipMaps);\n // Base texture\n newTexture.hasAlpha = this.hasAlpha;\n newTexture.level = this.level;\n // Dynamic Texture\n newTexture.wrapU = this.wrapU;\n newTexture.wrapV = this.wrapV;\n return newTexture;\n }\n /**\n * Serializes the dynamic texture. The scene should be ready before the dynamic texture is serialized\n * @returns a serialized dynamic texture object\n */\n serialize() {\n const scene = this.getScene();\n if (scene && !scene.isReady()) {\n Logger.Warn(\"The scene must be ready before serializing the dynamic texture\");\n }\n const serializationObject = super.serialize();\n if (DynamicTexture._IsCanvasElement(this._canvas)) {\n serializationObject.base64String = this._canvas.toDataURL();\n }\n serializationObject.invertY = this._invertY;\n serializationObject.samplingMode = this.samplingMode;\n return serializationObject;\n }\n static _IsCanvasElement(canvas) {\n return canvas.toDataURL !== undefined;\n }\n /** @internal */\n _rebuild() {\n this.update();\n }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|