|
|
@@ -286,7 +286,7 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
*/
|
|
|
generateWrapFunction( texture ) {
|
|
|
|
|
|
- const functionName = `tsl_coord_${ wrapNames[ texture.wrapS ] }S_${ wrapNames[ texture.wrapT ] }_${ texture.isData3DTexture ? '3d' : '2d' }T`;
|
|
|
+ const functionName = `tsl_coord_${ wrapNames[ texture.wrapS ] }S_${ wrapNames[ texture.wrapT ] }_${ texture.is3DTexture || texture.isData3DTexture ? '3d' : '2d' }T`;
|
|
|
|
|
|
let nodeCode = wgslCodeCache[ functionName ];
|
|
|
|
|
|
@@ -295,7 +295,7 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
const includes = [];
|
|
|
|
|
|
// For 3D textures, use vec3f; for texture arrays, keep vec2f since array index is separate
|
|
|
- const coordType = texture.isData3DTexture ? 'vec3f' : 'vec2f';
|
|
|
+ const coordType = texture.is3DTexture || texture.isData3DTexture ? 'vec3f' : 'vec2f';
|
|
|
let code = `fn ${ functionName }( coord : ${ coordType } ) -> ${ coordType } {\n\n\treturn ${ coordType }(\n`;
|
|
|
|
|
|
const addWrapSnippet = ( wrap, axis ) => {
|
|
|
@@ -334,7 +334,7 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
|
|
|
addWrapSnippet( texture.wrapT, 'y' );
|
|
|
|
|
|
- if ( texture.isData3DTexture ) {
|
|
|
+ if ( texture.is3DTexture || texture.isData3DTexture ) {
|
|
|
|
|
|
code += ',\n';
|
|
|
addWrapSnippet( texture.wrapR, 'z' );
|
|
|
@@ -392,7 +392,7 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
const { primarySamples } = this.renderer.backend.utils.getTextureSampleData( texture );
|
|
|
const isMultisampled = primarySamples > 1;
|
|
|
|
|
|
- if ( texture.isData3DTexture ) {
|
|
|
+ if ( texture.is3DTexture || texture.isData3DTexture ) {
|
|
|
|
|
|
dimensionType = 'vec3<u32>';
|
|
|
|
|
|
@@ -418,7 +418,7 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
|
|
|
textureData.dimensionsSnippet[ levelSnippet ] = textureDimensionNode;
|
|
|
|
|
|
- if ( texture.isArrayTexture || texture.isDataArrayTexture || texture.isData3DTexture ) {
|
|
|
+ if ( texture.isArrayTexture || texture.isDataArrayTexture || texture.is3DTexture || texture.isData3DTexture ) {
|
|
|
|
|
|
textureData.arrayLayerCount = new VarNode(
|
|
|
new ExpressionNode(
|
|
|
@@ -488,7 +488,7 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
const wrapFunction = this.generateWrapFunction( texture );
|
|
|
const textureDimension = this.generateTextureDimension( texture, textureProperty, levelSnippet );
|
|
|
|
|
|
- const vecType = texture.isData3DTexture ? 'vec3' : 'vec2';
|
|
|
+ const vecType = texture.is3DTexture || texture.isData3DTexture ? 'vec3' : 'vec2';
|
|
|
|
|
|
if ( offsetSnippet ) {
|
|
|
|