@@ -23,7 +23,11 @@ import { CoreContextTexture } from '../CoreContextTexture.js';
2323import { formatRgba , type IParsedColor } from './internal/ColorUtils.js' ;
2424
2525export class CanvasCoreTexture extends CoreContextTexture {
26- protected image : ImageBitmap | HTMLCanvasElement | undefined ;
26+ protected image :
27+ | ImageBitmap
28+ | HTMLCanvasElement
29+ | HTMLImageElement
30+ | undefined ;
2731 protected tintCache :
2832 | {
2933 key : string ;
@@ -68,7 +72,9 @@ export class CanvasCoreTexture extends CoreContextTexture {
6872 return this . image !== undefined ;
6973 }
7074
71- getImage ( color : IParsedColor ) : ImageBitmap | HTMLCanvasElement {
75+ getImage (
76+ color : IParsedColor ,
77+ ) : ImageBitmap | HTMLCanvasElement | HTMLImageElement {
7278 const image = this . image ;
7379 assertTruthy ( image , 'Attempt to get unloaded image texture' ) ;
7480
@@ -94,7 +100,7 @@ export class CanvasCoreTexture extends CoreContextTexture {
94100 }
95101
96102 protected tintTexture (
97- source : ImageBitmap | HTMLCanvasElement ,
103+ source : ImageBitmap | HTMLCanvasElement | HTMLImageElement ,
98104 color : string ,
99105 ) {
100106 const { width, height } = source ;
@@ -138,6 +144,10 @@ export class CanvasCoreTexture extends CoreContextTexture {
138144 this . image = data ;
139145 return { width : data . width , height : data . height } ;
140146 }
147+ if ( data instanceof HTMLImageElement ) {
148+ this . image = data ;
149+ return { width : data . width , height : data . height } ;
150+ }
141151 return { width : 0 , height : 0 } ;
142152 }
143153}
0 commit comments