|
|
@@ -1741,11 +1741,12 @@ ${ flowData.code }
|
|
|
* @param {string} type - The variable's type.
|
|
|
* @param {string} name - The variable's name.
|
|
|
* @param {?number} [count=null] - The array length.
|
|
|
+ * @param {string} [qualifier=''] - The variable's qualifier.
|
|
|
* @return {string} The WGSL snippet that defines a variable.
|
|
|
*/
|
|
|
- getVar( type, name, count = null ) {
|
|
|
+ getVar( type, name, count = null, qualifier = '' ) {
|
|
|
|
|
|
- let snippet = `var ${ name } : `;
|
|
|
+ let snippet = `var${ qualifier } ${ name } : `;
|
|
|
|
|
|
if ( count !== null ) {
|
|
|
|
|
|
@@ -1767,7 +1768,15 @@ ${ flowData.code }
|
|
|
* @param {string} shaderStage - The shader stage.
|
|
|
* @return {string} The WGSL snippet that defines the variables.
|
|
|
*/
|
|
|
- getVars( shaderStage ) {
|
|
|
+ getVars( shaderStage, global = false ) {
|
|
|
+
|
|
|
+ let qualifier = '';
|
|
|
+
|
|
|
+ if ( global ) {
|
|
|
+
|
|
|
+ qualifier = '<private>';
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
const snippets = [];
|
|
|
const vars = this.vars[ shaderStage ];
|
|
|
@@ -1776,13 +1785,13 @@ ${ flowData.code }
|
|
|
|
|
|
for ( const variable of vars ) {
|
|
|
|
|
|
- snippets.push( `\t${ this.getVar( variable.type, variable.name, variable.count ) };` );
|
|
|
+ snippets.push( `${ this.getVar( variable.type, variable.name, variable.count, qualifier ) };` );
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
- return `\n${ snippets.join( '\n' ) }\n`;
|
|
|
+ return global ? snippets.join( '\n' ) : `\n\t${ snippets.join( '\n\t' ) }\n`;
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -2077,7 +2086,7 @@ ${ flowData.code }
|
|
|
stageData.attributes = this.getAttributes( shaderStage );
|
|
|
stageData.varyings = this.getVaryings( shaderStage );
|
|
|
stageData.structs = this.getStructs( shaderStage );
|
|
|
- stageData.vars = this.getVars( shaderStage );
|
|
|
+ stageData.vars = this.getVars( shaderStage, true );
|
|
|
stageData.codes = this.getCodes( shaderStage );
|
|
|
stageData.directives = this.getDirectives( shaderStage );
|
|
|
stageData.scopedArrays = this.getScopedArrays( shaderStage );
|
|
|
@@ -2352,15 +2361,15 @@ ${shaderData.uniforms}
|
|
|
${shaderData.varyings}
|
|
|
var<private> varyings : VaryingsStruct;
|
|
|
|
|
|
+// vars
|
|
|
+${shaderData.vars}
|
|
|
+
|
|
|
// codes
|
|
|
${shaderData.codes}
|
|
|
|
|
|
@vertex
|
|
|
fn main( ${shaderData.attributes} ) -> VaryingsStruct {
|
|
|
|
|
|
- // vars
|
|
|
- ${shaderData.vars}
|
|
|
-
|
|
|
// flow
|
|
|
${shaderData.flow}
|
|
|
|
|
|
@@ -2390,15 +2399,15 @@ ${shaderData.structs}
|
|
|
// uniforms
|
|
|
${shaderData.uniforms}
|
|
|
|
|
|
+// vars
|
|
|
+${shaderData.vars}
|
|
|
+
|
|
|
// codes
|
|
|
${shaderData.codes}
|
|
|
|
|
|
@fragment
|
|
|
fn main( ${shaderData.varyings} ) -> ${shaderData.returnType} {
|
|
|
|
|
|
- // vars
|
|
|
- ${shaderData.vars}
|
|
|
-
|
|
|
// flow
|
|
|
${shaderData.flow}
|
|
|
|
|
|
@@ -2435,6 +2444,9 @@ ${ shaderData.structs }
|
|
|
// uniforms
|
|
|
${ shaderData.uniforms }
|
|
|
|
|
|
+// vars
|
|
|
+${ shaderData.vars }
|
|
|
+
|
|
|
// codes
|
|
|
${ shaderData.codes }
|
|
|
|
|
|
@@ -2446,9 +2458,6 @@ fn main( ${ shaderData.attributes } ) {
|
|
|
+ globalId.y * ( ${ workgroupSizeX } * numWorkgroups.x )
|
|
|
+ globalId.z * ( ${ workgroupSizeX } * numWorkgroups.x ) * ( ${ workgroupSizeY } * numWorkgroups.y );
|
|
|
|
|
|
- // vars
|
|
|
- ${ shaderData.vars }
|
|
|
-
|
|
|
// flow
|
|
|
${ shaderData.flow }
|
|
|
|