@@ -3675,7 +3675,7 @@ index b17e7080..e2b545b7 100644
3675
3675
if (map === undefined) return false;
3676
3676
}
3677
3677
diff --git a/src-testing/src/renderers/common/ClippingContext.ts b/src-testing/src/renderers/common/ClippingContext.ts
3678
- index 1488999a..2de7e35d 100644
3678
+ index f7ac6960..5b8b4893 100644
3679
3679
--- a/src-testing/src/renderers/common/ClippingContext.ts
3680
3680
+++ b/src-testing/src/renderers/common/ClippingContext.ts
3681
3681
@@ -1,11 +1,33 @@
@@ -4880,7 +4880,7 @@ index 0486f793..5c8d620c 100644
4880
4880
}
4881
4881
4882
4882
diff --git a/src-testing/src/renderers/common/RenderObject.ts b/src-testing/src/renderers/common/RenderObject.ts
4883
- index bceef2c6..2acb1ac3 100644
4883
+ index 4d179411..4e41a679 100644
4884
4884
--- a/src-testing/src/renderers/common/RenderObject.ts
4885
4885
+++ b/src-testing/src/renderers/common/RenderObject.ts
4886
4886
@@ -1,8 +1,27 @@
@@ -5000,7 +5000,7 @@ index bceef2c6..2acb1ac3 100644
5000
5000
5001
5001
return true;
5002
5002
}
5003
- @@ -119 ,7 +180 ,7 @@ export default class RenderObject {
5003
+ @@ -123 ,7 +184 ,7 @@ export default class RenderObject {
5004
5004
}
5005
5005
5006
5006
getChainArray() {
@@ -5009,7 +5009,7 @@ index bceef2c6..2acb1ac3 100644
5009
5009
}
5010
5010
5011
5011
getAttributes() {
5012
- @@ -128 ,8 +189 ,8 @@ export default class RenderObject {
5012
+ @@ -132 ,8 +193 ,8 @@ export default class RenderObject {
5013
5013
const nodeAttributes = this.getNodeBuilderState().nodeAttributes;
5014
5014
const geometry = this.geometry;
5015
5015
@@ -5020,7 +5020,7 @@ index bceef2c6..2acb1ac3 100644
5020
5020
5021
5021
for (const nodeAttribute of nodeAttributes) {
5022
5022
const attribute =
5023
- @@ -342 ,6 +403 ,6 @@ export default class RenderObject {
5023
+ @@ -346 ,6 +407 ,6 @@ export default class RenderObject {
5024
5024
dispose() {
5025
5025
this.material.removeEventListener('dispose', this.onMaterialDispose);
5026
5026
@@ -7503,7 +7503,7 @@ index 3b16e861..99874f36 100644
7503
7503
const monitor = renderObject.getMonitor();
7504
7504
7505
7505
diff --git a/src-testing/src/renderers/webgl-fallback/WebGLBackend.ts b/src-testing/src/renderers/webgl-fallback/WebGLBackend.ts
7506
- index b9713fd2..e52f74d8 100644
7506
+ index 7db9864a..bb852529 100644
7507
7507
--- a/src-testing/src/renderers/webgl-fallback/WebGLBackend.ts
7508
7508
+++ b/src-testing/src/renderers/webgl-fallback/WebGLBackend.ts
7509
7509
@@ -13,6 +13,7 @@ import { WebGLBufferRenderer } from './WebGLBufferRenderer.js';
@@ -7524,7 +7524,7 @@ index b9713fd2..e52f74d8 100644
7524
7524
}
7525
7525
7526
7526
diff --git a/src-testing/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.ts b/src-testing/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.ts
7527
- index b1e72064..40f26bf1 100644
7527
+ index 2ac9e7c4..beef6e0e 100644
7528
7528
--- a/src-testing/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.ts
7529
7529
+++ b/src-testing/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.ts
7530
7530
@@ -1,4 +1,4 @@
@@ -7594,7 +7594,7 @@ index b1e72064..40f26bf1 100644
7594
7594
super(object, renderer, new GLSLNodeParser());
7595
7595
7596
7596
this.uniformGroups = {};
7597
- @@ -82 ,7 +122 ,7 @@ class GLSLNodeBuilder extends NodeBuilder {
7597
+ @@ -83 ,7 +123 ,7 @@ class GLSLNodeBuilder extends NodeBuilder {
7598
7598
return texture.isVideoTexture === true && texture.colorSpace !== NoColorSpace;
7599
7599
}
7600
7600
@@ -7603,7 +7603,7 @@ index b1e72064..40f26bf1 100644
7603
7603
return glslMethods[method] || method;
7604
7604
}
7605
7605
7606
- @@ -90 ,7 +130 ,7 @@ class GLSLNodeBuilder extends NodeBuilder {
7606
+ @@ -91 ,7 +131 ,7 @@ class GLSLNodeBuilder extends NodeBuilder {
7607
7607
return '';
7608
7608
}
7609
7609
@@ -7612,7 +7612,7 @@ index b1e72064..40f26bf1 100644
7612
7612
const layout = shaderNode.layout;
7613
7613
const flowData = this.flowShaderNode(shaderNode);
7614
7614
7615
- @@ -116 ,7 +156 ,7 @@ ${flowData.code}
7615
+ @@ -117 ,7 +157 ,7 @@ ${flowData.code}
7616
7616
return code;
7617
7617
}
7618
7618
@@ -7621,7 +7621,7 @@ index b1e72064..40f26bf1 100644
7621
7621
const attribute = storageBufferNode.value;
7622
7622
7623
7623
if (attribute.pbo === undefined) {
7624
- @@ -180 ,7 +220 ,7 @@ ${flowData.code}
7624
+ @@ -181 ,7 +221 ,7 @@ ${flowData.code}
7625
7625
}
7626
7626
}
7627
7627
@@ -7630,7 +7630,7 @@ index b1e72064..40f26bf1 100644
7630
7630
if (node.isNodeUniform && node.node.isTextureNode !== true && node.node.isBufferNode !== true) {
7631
7631
return shaderStage.charAt(0) + '_' + node.name;
7632
7632
}
7633
- @@ -188 ,7 +228 ,7 @@ ${flowData.code}
7633
+ @@ -189 ,7 +229 ,7 @@ ${flowData.code}
7634
7634
return super.getPropertyName(node, shaderStage);
7635
7635
}
7636
7636
@@ -7639,7 +7639,7 @@ index b1e72064..40f26bf1 100644
7639
7639
const { node, indexNode } = storageArrayElementNode;
7640
7640
const attribute = node.value;
7641
7641
7642
- @@ -260 ,7 +300 ,13 @@ ${flowData.code}
7642
+ @@ -261 ,7 +301 ,13 @@ ${flowData.code}
7643
7643
return propertyName;
7644
7644
}
7645
7645
@@ -7654,7 +7654,7 @@ index b1e72064..40f26bf1 100644
7654
7654
if (depthSnippet) {
7655
7655
return `texelFetch( ${textureProperty}, ivec3( ${uvIndexSnippet}, ${depthSnippet} ), ${levelSnippet} )`;
7656
7656
} else {
7657
- @@ -268 ,7 +314 ,7 @@ ${flowData.code}
7657
+ @@ -269 ,7 +315 ,7 @@ ${flowData.code}
7658
7658
}
7659
7659
}
7660
7660
@@ -7663,7 +7663,7 @@ index b1e72064..40f26bf1 100644
7663
7663
if (texture.isDepthTexture) {
7664
7664
return `texture( ${textureProperty}, ${uvSnippet} ).x`;
7665
7665
} else {
7666
- @@ -278 ,24 +324 ,39 @@ ${flowData.code}
7666
+ @@ -279 ,24 +325 ,39 @@ ${flowData.code}
7667
7667
}
7668
7668
}
7669
7669
@@ -7711,7 +7711,7 @@ index b1e72064..40f26bf1 100644
7711
7711
shaderStage = this.shaderStage,
7712
7712
) {
7713
7713
if (shaderStage === 'fragment') {
7714
- @@ -304 ,11 +365 ,12 @@ ${flowData.code}
7714
+ @@ -305 ,11 +366 ,12 @@ ${flowData.code}
7715
7715
console.error(
7716
7716
`WebGPURenderer: THREE.DepthTexture.compareFunction() does not support ${shaderStage} shader.`,
7717
7717
);
@@ -7726,7 +7726,7 @@ index b1e72064..40f26bf1 100644
7726
7726
7727
7727
const vars = this.vars[shaderStage];
7728
7728
7729
- @@ -321 ,7 +383 ,7 @@ ${flowData.code}
7729
+ @@ -322 ,7 +384 ,7 @@ ${flowData.code}
7730
7730
return snippets.join('\n\t');
7731
7731
}
7732
7732
@@ -7735,7 +7735,7 @@ index b1e72064..40f26bf1 100644
7735
7735
const uniforms = this.uniforms[shaderStage];
7736
7736
7737
7737
const bindingSnippets = [];
7738
- @@ -403 ,7 +465 ,7 @@ ${flowData.code}
7738
+ @@ -404 ,7 +466 ,7 @@ ${flowData.code}
7739
7739
return output;
7740
7740
}
7741
7741
@@ -7744,7 +7744,7 @@ index b1e72064..40f26bf1 100644
7744
7744
let nodeType = super.getTypeFromAttribute(attribute);
7745
7745
7746
7746
if (/^[iu]/.test(nodeType) && attribute.gpuType !== IntType) {
7747
- @@ -421 ,7 +483 ,7 @@ ${flowData.code}
7747
+ @@ -422 ,7 +484 ,7 @@ ${flowData.code}
7748
7748
return nodeType;
7749
7749
}
7750
7750
@@ -7753,7 +7753,7 @@ index b1e72064..40f26bf1 100644
7753
7753
let snippet = '';
7754
7754
7755
7755
if (shaderStage === 'vertex' || shaderStage === 'compute') {
7756
- @@ -437 ,8 +499 ,8 @@ ${flowData.code}
7756
+ @@ -438 ,8 +500 ,8 @@ ${flowData.code}
7757
7757
return snippet;
7758
7758
}
7759
7759
@@ -7764,7 +7764,7 @@ index b1e72064..40f26bf1 100644
7764
7764
const members = struct.getMemberTypes();
7765
7765
7766
7766
for (let i = 0; i < members.length; i++) {
7767
- @@ -449 ,7 +511 ,7 @@ ${flowData.code}
7767
+ @@ -450 ,7 +512 ,7 @@ ${flowData.code}
7768
7768
return snippets.join('\n');
7769
7769
}
7770
7770
@@ -7773,7 +7773,7 @@ index b1e72064..40f26bf1 100644
7773
7773
const snippets = [];
7774
7774
const structs = this.structs[shaderStage];
7775
7775
7776
- @@ -470 ,7 +532 ,7 @@ ${flowData.code}
7776
+ @@ -471 ,7 +533 ,7 @@ ${flowData.code}
7777
7777
return snippets.join('\n\n');
7778
7778
}
7779
7779
@@ -7782,7 +7782,7 @@ index b1e72064..40f26bf1 100644
7782
7782
let snippet = '';
7783
7783
7784
7784
const varyings = this.varyings;
7785
- @@ -535 ,7 +597 ,7 @@ ${flowData.code}
7785
+ @@ -540 ,7 +602 ,7 @@ ${flowData.code}
7786
7786
return 'gl_FragDepth';
7787
7787
}
7788
7788
@@ -7791,7 +7791,7 @@ index b1e72064..40f26bf1 100644
7791
7791
const map = this.extensions[shaderStage] || (this.extensions[shaderStage] = new Map());
7792
7792
7793
7793
if (map.has(name) === false) {
7794
- @@ -546 ,7 +608 ,7 @@ ${flowData.code}
7794
+ @@ -551 ,7 +613 ,7 @@ ${flowData.code}
7795
7795
}
7796
7796
}
7797
7797
@@ -7800,17 +7800,17 @@ index b1e72064..40f26bf1 100644
7800
7800
const snippets = [];
7801
7801
7802
7802
if (shaderStage === 'vertex') {
7803
- @@ -569 ,7 +631 ,7 @@ ${flowData.code}
7804
- return snippets.join('\n') ;
7803
+ @@ -578 ,7 +640 ,7 @@ ${flowData.code}
7804
+ return 'gl_ClipDistance' ;
7805
7805
}
7806
7806
7807
7807
- isAvailable(name) {
7808
7808
+ isAvailable(name: string) {
7809
7809
let result = supports[name];
7810
7810
7811
7811
if (result === undefined) {
7812
- @@ -594 ,11 +656 ,11 @@ ${flowData.code}
7813
- return true ;
7812
+ @@ -621 ,11 +683 ,11 @@ ${flowData.code}
7813
+ this.builtins['vertex'].push(`out float gl_ClipDistance[ ${planeCount} ]`) ;
7814
7814
}
7815
7815
7816
7816
- registerTransform(varyingName, attributeNode) {
@@ -7823,7 +7823,7 @@ index b1e72064..40f26bf1 100644
7823
7823
const transforms = this.transforms;
7824
7824
7825
7825
let snippet = '';
7826
- @@ -614 ,14 +676 ,14 @@ ${flowData.code}
7826
+ @@ -641 ,14 +703 ,14 @@ ${flowData.code}
7827
7827
return snippet;
7828
7828
}
7829
7829
@@ -7840,7 +7840,7 @@ index b1e72064..40f26bf1 100644
7840
7840
return `#version 300 es
7841
7841
7842
7842
${this.getSignature()}
7843
- @@ -661 ,7 +723 ,7 @@ void main() {
7843
+ @@ -688 ,7 +750 ,7 @@ void main() {
7844
7844
`;
7845
7845
}
7846
7846
@@ -7849,7 +7849,7 @@ index b1e72064..40f26bf1 100644
7849
7849
return `#version 300 es
7850
7850
7851
7851
${this.getSignature()}
7852
- @@ -693 ,19 +755 ,20 @@ void main() {
7852
+ @@ -720 ,19 +782 ,20 @@ void main() {
7853
7853
}
7854
7854
7855
7855
buildCode() {
@@ -7874,7 +7874,7 @@ index b1e72064..40f26bf1 100644
7874
7874
const slotName = node.name;
7875
7875
7876
7876
if (slotName) {
7877
- @@ -731 ,28 +794 ,33 @@ void main() {
7877
+ @@ -758 ,28 +821 ,33 @@ void main() {
7878
7878
}
7879
7879
}
7880
7880
@@ -7935,7 +7935,7 @@ index 36f987a9..8c774ec4 100644
7935
7935
}
7936
7936
7937
7937
diff --git a/src-testing/src/renderers/webgpu/nodes/WGSLNodeBuilder.ts b/src-testing/src/renderers/webgpu/nodes/WGSLNodeBuilder.ts
7938
- index 2b4d0266..f967399c 100644
7938
+ index 615f446e..fa8d418a 100644
7939
7939
--- a/src-testing/src/renderers/webgpu/nodes/WGSLNodeBuilder.ts
7940
7940
+++ b/src-testing/src/renderers/webgpu/nodes/WGSLNodeBuilder.ts
7941
7941
@@ -10,7 +10,7 @@ import {
@@ -8100,7 +8100,7 @@ index 2b4d0266..f967399c 100644
8100
8100
const layout = shaderNode.layout;
8101
8101
const flowData = this.flowShaderNode(shaderNode);
8102
8102
8103
- @@ -689 ,8 +713 ,8 @@ ${flowData.code}
8103
+ @@ -698 ,8 +722 ,8 @@ ${flowData.code}
8104
8104
return snippets.join('\n');
8105
8105
}
8106
8106
@@ -8111,7 +8111,7 @@ index 2b4d0266..f967399c 100644
8111
8111
8112
8112
if (shaderStage === 'compute') {
8113
8113
this.getBuiltin('global_invocation_id', 'id', 'vec3<u32>', 'attribute');
8114
- @@ -776 ,8 +800 ,8 @@ ${flowData.code}
8114
+ @@ -785 ,8 +809 ,8 @@ ${flowData.code}
8115
8115
return `\n${snippets.join('\n')}\n`;
8116
8116
}
8117
8117
@@ -8122,7 +8122,7 @@ index 2b4d0266..f967399c 100644
8122
8122
8123
8123
if (shaderStage === 'vertex') {
8124
8124
this.getBuiltin('position', 'Vertex', 'vec4<f32>', 'vertex');
8125
- @@ -813 ,7 +837 ,7 @@ ${flowData.code}
8125
+ @@ -822 ,7 +846 ,7 @@ ${flowData.code}
8126
8126
return shaderStage === 'vertex' ? this._getWGSLStruct('VaryingsStruct', '\t' + code) : code;
8127
8127
}
8128
8128
0 commit comments