|
@@ -244,8 +244,10 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
|
|
|
function deallocateRenderTarget( renderTarget ) {
|
|
|
|
|
|
+ const texture = renderTarget.texture;
|
|
|
+
|
|
|
const renderTargetProperties = properties.get( renderTarget );
|
|
|
- const textureProperties = properties.get( renderTarget.texture );
|
|
|
+ const textureProperties = properties.get( texture );
|
|
|
|
|
|
if ( ! renderTarget ) return;
|
|
|
|
|
@@ -280,7 +282,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
|
|
|
}
|
|
|
|
|
|
- properties.remove( renderTarget.texture );
|
|
|
+ properties.remove( texture );
|
|
|
properties.remove( renderTarget );
|
|
|
|
|
|
}
|
|
@@ -832,9 +834,11 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
// Setup storage for target texture and bind it to correct framebuffer
|
|
|
function setupFrameBufferTexture( framebuffer, renderTarget, attachment, textureTarget ) {
|
|
|
|
|
|
- const glFormat = utils.convert( renderTarget.texture.format );
|
|
|
- const glType = utils.convert( renderTarget.texture.type );
|
|
|
- const glInternalFormat = getInternalFormat( renderTarget.texture.internalFormat, glFormat, glType );
|
|
|
+ const texture = renderTarget.texture;
|
|
|
+
|
|
|
+ const glFormat = utils.convert( texture.format );
|
|
|
+ const glType = utils.convert( texture.type );
|
|
|
+ const glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType );
|
|
|
|
|
|
if ( textureTarget === _gl.TEXTURE_3D || textureTarget === _gl.TEXTURE_2D_ARRAY ) {
|
|
|
|
|
@@ -847,7 +851,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
}
|
|
|
|
|
|
_gl.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );
|
|
|
- _gl.framebufferTexture2D( _gl.FRAMEBUFFER, attachment, textureTarget, properties.get( renderTarget.texture ).__webglTexture, 0 );
|
|
|
+ _gl.framebufferTexture2D( _gl.FRAMEBUFFER, attachment, textureTarget, properties.get( texture ).__webglTexture, 0 );
|
|
|
_gl.bindFramebuffer( _gl.FRAMEBUFFER, null );
|
|
|
|
|
|
}
|
|
@@ -910,9 +914,11 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
|
|
|
} else {
|
|
|
|
|
|
- const glFormat = utils.convert( renderTarget.texture.format );
|
|
|
- const glType = utils.convert( renderTarget.texture.type );
|
|
|
- const glInternalFormat = getInternalFormat( renderTarget.texture.internalFormat, glFormat, glType );
|
|
|
+ const texture = renderTarget.texture;
|
|
|
+
|
|
|
+ const glFormat = utils.convert( texture.format );
|
|
|
+ const glType = utils.convert( texture.type );
|
|
|
+ const glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType );
|
|
|
|
|
|
if ( isMultisample ) {
|
|
|
|
|
@@ -1171,6 +1177,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
function updateRenderTargetMipmap( renderTarget ) {
|
|
|
|
|
|
const texture = renderTarget.texture;
|
|
|
+
|
|
|
const supportsMips = isPowerOfTwo( renderTarget ) || isWebGL2;
|
|
|
|
|
|
if ( textureNeedsGenerateMipmaps( texture, supportsMips ) ) {
|