File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -11,11 +11,13 @@ class RenderBundle {
1111 *
1212 * @param {BundleGroup } bundleGroup - The bundle group.
1313 * @param {Camera } camera - The camera the bundle group is rendered with.
14+ * @param {RenderContext } renderContext - The render context the bundle is rendered with.
1415 */
15- constructor ( bundleGroup , camera ) {
16+ constructor ( bundleGroup , camera , renderContext ) {
1617
1718 this . bundleGroup = bundleGroup ;
1819 this . camera = camera ;
20+ this . renderContext = renderContext ;
1921
2022 }
2123
Original file line number Diff line number Diff line change @@ -29,26 +29,29 @@ class RenderBundles {
2929 *
3030 * @param {BundleGroup } bundleGroup - The bundle group.
3131 * @param {Camera } camera - The camera the bundle group is rendered with.
32+ * @param {RenderContext } renderContext - The render context the bundle is rendered with.
3233 * @return {RenderBundle } The render bundle.
3334 */
34- get ( bundleGroup , camera ) {
35+ get ( bundleGroup , camera , renderContext ) {
3536
3637 const bundles = this . bundles ;
3738
3839 _chainKeys [ 0 ] = bundleGroup ;
3940 _chainKeys [ 1 ] = camera ;
41+ _chainKeys [ 2 ] = renderContext ;
4042
4143 let bundle = bundles . get ( _chainKeys ) ;
4244
4345 if ( bundle === undefined ) {
4446
45- bundle = new RenderBundle ( bundleGroup , camera ) ;
47+ bundle = new RenderBundle ( bundleGroup , camera , renderContext ) ;
4648 bundles . set ( _chainKeys , bundle ) ;
4749
4850 }
4951
5052 _chainKeys [ 0 ] = null ;
5153 _chainKeys [ 1 ] = null ;
54+ _chainKeys [ 2 ] = null ;
5255
5356 return bundle ;
5457
Original file line number Diff line number Diff line change @@ -1213,17 +1213,11 @@ class Renderer {
12131213
12141214 //
12151215
1216- const renderBundle = this . _bundles . get ( bundleGroup , camera ) ;
1216+ const renderBundle = this . _bundles . get ( bundleGroup , camera , renderContext ) ;
12171217 const renderBundleData = this . backend . get ( renderBundle ) ;
12181218
1219- if ( renderBundleData . renderContexts === undefined ) renderBundleData . renderContexts = new Set ( ) ;
1220-
1221- //
1222-
12231219 const needsUpdate = bundleGroup . version !== renderBundleData . version ;
1224- const renderBundleNeedsUpdate = renderBundleData . renderContexts . has ( renderContext ) === false || needsUpdate ;
1225-
1226- renderBundleData . renderContexts . add ( renderContext ) ;
1220+ const renderBundleNeedsUpdate = needsUpdate || renderBundleData . bundleGPU === undefined ;
12271221
12281222 if ( renderBundleNeedsUpdate ) {
12291223
You can’t perform that action at this time.
0 commit comments