@@ -1963,14 +1963,24 @@ class WebGLBackend extends Backend {
1963
1963
1964
1964
}
1965
1965
1966
- if ( descriptor . depthTexture !== null ) {
1966
+ if ( renderTarget . isXRRenderTarget && renderTarget . autoAllocateDepthBuffer === true ) {
1967
1967
1968
- const textureData = this . get ( descriptor . depthTexture ) ;
1969
- const depthStyle = stencilBuffer ? gl . DEPTH_STENCIL_ATTACHMENT : gl . DEPTH_ATTACHMENT ;
1970
- textureData . renderTarget = descriptor . renderTarget ;
1971
- textureData . cacheKey = cacheKey ; // required for copyTextureToTexture()
1968
+ const renderbuffer = gl . createRenderbuffer ( ) ;
1969
+ this . textureUtils . setupRenderBufferStorage ( renderbuffer , descriptor , 0 ) ;
1970
+ renderTargetContextData . xrDepthRenderbuffer = renderbuffer ;
1971
+
1972
+ } else {
1972
1973
1973
- gl . framebufferTexture2D ( gl . FRAMEBUFFER , depthStyle , gl . TEXTURE_2D , textureData . textureGPU , 0 ) ;
1974
+ if ( descriptor . depthTexture !== null ) {
1975
+
1976
+ const textureData = this . get ( descriptor . depthTexture ) ;
1977
+ const depthStyle = stencilBuffer ? gl . DEPTH_STENCIL_ATTACHMENT : gl . DEPTH_ATTACHMENT ;
1978
+ textureData . renderTarget = descriptor . renderTarget ;
1979
+ textureData . cacheKey = cacheKey ; // required for copyTextureToTexture()
1980
+
1981
+ gl . framebufferTexture2D ( gl . FRAMEBUFFER , depthStyle , gl . TEXTURE_2D , textureData . textureGPU , 0 ) ;
1982
+
1983
+ }
1974
1984
1975
1985
}
1976
1986
@@ -1989,11 +1999,17 @@ class WebGLBackend extends Backend {
1989
1999
1990
2000
// rebind depth
1991
2001
1992
- if ( descriptor . depthTexture !== null ) {
2002
+ const depthStyle = stencilBuffer ? gl . DEPTH_STENCIL_ATTACHMENT : gl . DEPTH_ATTACHMENT ;
1993
2003
1994
- const textureData = this . get ( descriptor . depthTexture ) ;
1995
- const depthStyle = stencilBuffer ? gl . DEPTH_STENCIL_ATTACHMENT : gl . DEPTH_ATTACHMENT ;
2004
+ if ( renderTarget . autoAllocateDepthBuffer === true ) {
2005
+
2006
+ const renderbuffer = renderTargetContextData . xrDepthRenderbuffer ;
2007
+ gl . bindRenderbuffer ( gl . RENDERBUFFER , renderbuffer ) ;
2008
+ gl . framebufferRenderbuffer ( gl . FRAMEBUFFER , depthStyle , gl . RENDERBUFFER , renderbuffer ) ;
1996
2009
2010
+ } else {
2011
+
2012
+ const textureData = this . get ( descriptor . depthTexture ) ;
1997
2013
gl . framebufferTexture2D ( gl . FRAMEBUFFER , depthStyle , gl . TEXTURE_2D , textureData . textureGPU , 0 ) ;
1998
2014
1999
2015
}
@@ -2046,7 +2062,7 @@ class WebGLBackend extends Backend {
2046
2062
if ( depthRenderbuffer === undefined ) {
2047
2063
2048
2064
depthRenderbuffer = gl . createRenderbuffer ( ) ;
2049
- this . textureUtils . setupRenderBufferStorage ( depthRenderbuffer , descriptor ) ;
2065
+ this . textureUtils . setupRenderBufferStorage ( depthRenderbuffer , descriptor , samples ) ;
2050
2066
2051
2067
renderTargetContextData . depthRenderbuffer = depthRenderbuffer ;
2052
2068
0 commit comments