Skip to content

Commit bf64129

Browse files
authored
Fix binding __webglFramebuffer when mipmaps are used
Closes mrdoob#30745
1 parent fc4ef55 commit bf64129

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

Diff for: src/renderers/webgl/WebGLTextures.js

+22-2
Original file line numberDiff line numberDiff line change
@@ -1629,7 +1629,17 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
16291629

16301630
if ( isCube ) throw new Error( 'target.depthTexture not supported in Cube render targets' );
16311631

1632-
setupDepthTexture( renderTargetProperties.__webglFramebuffer, renderTarget );
1632+
const mipmaps = renderTarget.texture.mipmaps;
1633+
1634+
if (mipmaps && mipmaps.length > 0) {
1635+
1636+
setupDepthTexture( renderTargetProperties.__webglFramebuffer[0], renderTarget );
1637+
1638+
} else {
1639+
1640+
setupDepthTexture( renderTargetProperties.__webglFramebuffer, renderTarget );
1641+
1642+
}
16331643

16341644
} else {
16351645

@@ -1660,7 +1670,17 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
16601670

16611671
} else {
16621672

1663-
state.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );
1673+
const mipmaps = renderTarget.texture.mipmaps;
1674+
1675+
if (mipmaps && mipmaps.length > 0) {
1676+
1677+
state.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer[0] );
1678+
1679+
} else {
1680+
1681+
state.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );
1682+
1683+
}
16641684

16651685
if ( renderTargetProperties.__webglDepthbuffer === undefined ) {
16661686

0 commit comments

Comments
 (0)