diff --git a/packages/core/src/textures/resources/BaseImageResource.js b/packages/core/src/textures/resources/BaseImageResource.js index c5470ec..fdf64ce 100644 --- a/packages/core/src/textures/resources/BaseImageResource.js +++ b/packages/core/src/textures/resources/BaseImageResource.js @@ -60,7 +60,7 @@ gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, baseTexture.premultiplyAlpha); - if (glTexture.width === width && glTexture.height === height) + if (baseTexture.target === gl.TEXTURE_2D && glTexture.width === width && glTexture.height === height) { gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, baseTexture.format, baseTexture.type, source); } @@ -69,7 +69,7 @@ glTexture.width = width; glTexture.height = height; - gl.texImage2D(gl.TEXTURE_2D, 0, baseTexture.format, baseTexture.format, baseTexture.type, source); + gl.texImage2D(baseTexture.target, 0, baseTexture.format, baseTexture.format, baseTexture.type, source); } return true; diff --git a/packages/core/src/textures/resources/BaseImageResource.js b/packages/core/src/textures/resources/BaseImageResource.js index c5470ec..fdf64ce 100644 --- a/packages/core/src/textures/resources/BaseImageResource.js +++ b/packages/core/src/textures/resources/BaseImageResource.js @@ -60,7 +60,7 @@ gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, baseTexture.premultiplyAlpha); - if (glTexture.width === width && glTexture.height === height) + if (baseTexture.target === gl.TEXTURE_2D && glTexture.width === width && glTexture.height === height) { gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, baseTexture.format, baseTexture.type, source); } @@ -69,7 +69,7 @@ glTexture.width = width; glTexture.height = height; - gl.texImage2D(gl.TEXTURE_2D, 0, baseTexture.format, baseTexture.format, baseTexture.type, source); + gl.texImage2D(baseTexture.target, 0, baseTexture.format, baseTexture.format, baseTexture.type, source); } return true; diff --git a/packages/core/src/textures/resources/CubeResource.js b/packages/core/src/textures/resources/CubeResource.js index 1d49b13..45b34f4 100644 --- a/packages/core/src/textures/resources/CubeResource.js +++ b/packages/core/src/textures/resources/CubeResource.js @@ -17,12 +17,24 @@ { constructor(source, options) { + options = options || {}; + super(source, options); if (this.length !== CubeResource.SIDES) { throw new Error(`Invalid length. Got ${this.length}, expected 6`); } + + for (let i = 0; i < CubeResource.SIDES; i++) + { + this.items[i].target = TARGETS.TEXTURE_CUBE_MAP_POSITIVE_X + i; + } + + if (options.autoLoad !== false) + { + this.load(); + } } /**