@galacean/engine-shaderlab 2.0.0-alpha.2 → 2.0.0-alpha.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -305,40 +305,42 @@
305
305
  Keyword[Keyword["LeftBrace"] = 71] = "LeftBrace";
306
306
  Keyword[Keyword["RightBrace"] = 72] = "RightBrace";
307
307
  Keyword[Keyword["Equal"] = 73] = "Equal";
308
+ Keyword[Keyword["BitwiseOr"] = 74] = "BitwiseOr";
308
309
  // Source Parser Tokens
309
- Keyword[Keyword["GSRenderQueueType"] = 74] = "GSRenderQueueType";
310
- Keyword[Keyword["GSBlendState"] = 75] = "GSBlendState";
311
- Keyword[Keyword["GSDepthState"] = 76] = "GSDepthState";
312
- Keyword[Keyword["GSStencilState"] = 77] = "GSStencilState";
313
- Keyword[Keyword["GSRasterState"] = 78] = "GSRasterState";
314
- Keyword[Keyword["GSEditorProperties"] = 79] = "GSEditorProperties";
315
- Keyword[Keyword["GSEditorMacros"] = 80] = "GSEditorMacros";
316
- Keyword[Keyword["GSEditor"] = 81] = "GSEditor";
317
- Keyword[Keyword["GSTags"] = 82] = "GSTags";
318
- Keyword[Keyword["GSVertexShader"] = 83] = "GSVertexShader";
319
- Keyword[Keyword["GSFragmentShader"] = 84] = "GSFragmentShader";
320
- Keyword[Keyword["GSSubShader"] = 85] = "GSSubShader";
321
- Keyword[Keyword["GSPass"] = 86] = "GSPass";
322
- Keyword[Keyword["GSBlendFactor"] = 87] = "GSBlendFactor";
323
- Keyword[Keyword["GSBlendOperation"] = 88] = "GSBlendOperation";
324
- Keyword[Keyword["GSBool"] = 89] = "GSBool";
325
- Keyword[Keyword["GSNumber"] = 90] = "GSNumber";
326
- Keyword[Keyword["GSColor"] = 91] = "GSColor";
327
- Keyword[Keyword["GSCompareFunction"] = 92] = "GSCompareFunction";
328
- Keyword[Keyword["GSStencilOperation"] = 93] = "GSStencilOperation";
329
- Keyword[Keyword["GSCullMode"] = 94] = "GSCullMode";
330
- Keyword[Keyword["GSUsePass"] = 95] = "GSUsePass";
310
+ Keyword[Keyword["GSRenderQueueType"] = 75] = "GSRenderQueueType";
311
+ Keyword[Keyword["GSBlendState"] = 76] = "GSBlendState";
312
+ Keyword[Keyword["GSDepthState"] = 77] = "GSDepthState";
313
+ Keyword[Keyword["GSStencilState"] = 78] = "GSStencilState";
314
+ Keyword[Keyword["GSRasterState"] = 79] = "GSRasterState";
315
+ Keyword[Keyword["GSEditorProperties"] = 80] = "GSEditorProperties";
316
+ Keyword[Keyword["GSEditorMacros"] = 81] = "GSEditorMacros";
317
+ Keyword[Keyword["GSEditor"] = 82] = "GSEditor";
318
+ Keyword[Keyword["GSTags"] = 83] = "GSTags";
319
+ Keyword[Keyword["GSVertexShader"] = 84] = "GSVertexShader";
320
+ Keyword[Keyword["GSFragmentShader"] = 85] = "GSFragmentShader";
321
+ Keyword[Keyword["GSSubShader"] = 86] = "GSSubShader";
322
+ Keyword[Keyword["GSPass"] = 87] = "GSPass";
323
+ Keyword[Keyword["GSBlendFactor"] = 88] = "GSBlendFactor";
324
+ Keyword[Keyword["GSBlendOperation"] = 89] = "GSBlendOperation";
325
+ Keyword[Keyword["GSBool"] = 90] = "GSBool";
326
+ Keyword[Keyword["GSNumber"] = 91] = "GSNumber";
327
+ Keyword[Keyword["GSColor"] = 92] = "GSColor";
328
+ Keyword[Keyword["GSCompareFunction"] = 93] = "GSCompareFunction";
329
+ Keyword[Keyword["GSStencilOperation"] = 94] = "GSStencilOperation";
330
+ Keyword[Keyword["GSCullMode"] = 95] = "GSCullMode";
331
+ Keyword[Keyword["GSColorWriteMask"] = 96] = "GSColorWriteMask";
332
+ Keyword[Keyword["GSUsePass"] = 97] = "GSUsePass";
331
333
  // Macros
332
- Keyword[Keyword["MACRO_IF"] = 96] = "MACRO_IF";
333
- Keyword[Keyword["MACRO_IFDEF"] = 97] = "MACRO_IFDEF";
334
- Keyword[Keyword["MACRO_IFNDEF"] = 98] = "MACRO_IFNDEF";
335
- Keyword[Keyword["MACRO_ELSE"] = 99] = "MACRO_ELSE";
336
- Keyword[Keyword["MACRO_ELIF"] = 100] = "MACRO_ELIF";
337
- Keyword[Keyword["MACRO_ENDIF"] = 101] = "MACRO_ENDIF";
338
- Keyword[Keyword["MACRO_UNDEF"] = 102] = "MACRO_UNDEF";
339
- Keyword[Keyword["MACRO_DEFINE_EXPRESSION"] = 103] = "MACRO_DEFINE_EXPRESSION";
340
- Keyword[Keyword["MACRO_CONDITIONAL_EXPRESSION"] = 104] = "MACRO_CONDITIONAL_EXPRESSION";
341
- Keyword[Keyword["MACRO_CALL"] = 105] = "MACRO_CALL";
334
+ Keyword[Keyword["MACRO_IF"] = 98] = "MACRO_IF";
335
+ Keyword[Keyword["MACRO_IFDEF"] = 99] = "MACRO_IFDEF";
336
+ Keyword[Keyword["MACRO_IFNDEF"] = 100] = "MACRO_IFNDEF";
337
+ Keyword[Keyword["MACRO_ELSE"] = 101] = "MACRO_ELSE";
338
+ Keyword[Keyword["MACRO_ELIF"] = 102] = "MACRO_ELIF";
339
+ Keyword[Keyword["MACRO_ENDIF"] = 103] = "MACRO_ENDIF";
340
+ Keyword[Keyword["MACRO_UNDEF"] = 104] = "MACRO_UNDEF";
341
+ Keyword[Keyword["MACRO_DEFINE_EXPRESSION"] = 105] = "MACRO_DEFINE_EXPRESSION";
342
+ Keyword[Keyword["MACRO_CONDITIONAL_EXPRESSION"] = 106] = "MACRO_CONDITIONAL_EXPRESSION";
343
+ Keyword[Keyword["MACRO_CALL"] = 107] = "MACRO_CALL";
342
344
  return Keyword;
343
345
  }({});
344
346
 
@@ -8304,7 +8306,8 @@
8304
8306
  charCode === 59 || // ;
8305
8307
  charCode === 46 || // . CullMode.Back
8306
8308
  charCode === 91 || // [ Enabled[0],
8307
- charCode === 40 // ( Color(1.0, 1.0, 1.0, 1.0);
8309
+ charCode === 40 || // ( Color(1.0, 1.0, 1.0, 1.0);
8310
+ charCode === 124 // | ColorWriteMask.Red | ColorWriteMask.Green
8308
8311
  ;
8309
8312
  };
8310
8313
  SourceLexer._scanDigits = function _scanDigits(source, startIndex) {
@@ -8343,6 +8346,7 @@
8343
8346
  CompareFunction: Keyword.GSCompareFunction,
8344
8347
  StencilOperation: Keyword.GSStencilOperation,
8345
8348
  CullMode: Keyword.GSCullMode,
8349
+ ColorWriteMask: Keyword.GSColorWriteMask,
8346
8350
  UsePass: Keyword.GSUsePass,
8347
8351
  true: Keyword.True,
8348
8352
  false: Keyword.False
@@ -8350,7 +8354,8 @@
8350
8354
  SourceLexer._symbolLexemeTable = {
8351
8355
  "{": Keyword.LeftBrace,
8352
8356
  "}": Keyword.RightBrace,
8353
- "=": Keyword.Equal
8357
+ "=": Keyword.Equal,
8358
+ "|": Keyword.BitwiseOr
8354
8359
  };
8355
8360
 
8356
8361
  /**
@@ -8507,6 +8512,18 @@
8507
8512
  var error = this._lexer.createCompileError(message, location);
8508
8513
  this.errors.push(error);
8509
8514
  };
8515
+ ShaderSourceParser._scanEnumConstValue = function _scanEnumConstValue(enumName) {
8516
+ var _this__renderStateConstMap_enumName;
8517
+ var lexer = this._lexer;
8518
+ lexer.advance(1);
8519
+ var constValueToken = lexer.scanToken();
8520
+ var value = (_this__renderStateConstMap_enumName = this._renderStateConstMap[enumName]) == null ? void 0 : _this__renderStateConstMap_enumName[constValueToken.lexeme];
8521
+ if (value == undefined) {
8522
+ this._createCompileError("Invalid engine constant: " + enumName + "." + constValueToken.lexeme, constValueToken.location);
8523
+ lexer.scanToCharacter(";");
8524
+ }
8525
+ return value;
8526
+ };
8510
8527
  ShaderSourceParser._parseRenderStateProperty = function _parseRenderStateProperty(stateLexeme, out) {
8511
8528
  var lexer = this._lexer;
8512
8529
  var propertyToken = lexer.scanToken();
@@ -8550,14 +8567,34 @@
8550
8567
  } else if (valueTokenType === Keyword.GSColor) {
8551
8568
  propertyValue = lexer.scanColor();
8552
8569
  } else if (lexer.getCurChar() === ".") {
8553
- var _this__renderStateConstMap_valueToken_lexeme;
8554
- lexer.advance(1);
8555
- var constValueToken = lexer.scanToken();
8556
- propertyValue = (_this__renderStateConstMap_valueToken_lexeme = this._renderStateConstMap[valueToken.lexeme]) == null ? void 0 : _this__renderStateConstMap_valueToken_lexeme[constValueToken.lexeme];
8557
- if (propertyValue == undefined) {
8558
- this._createCompileError("Invalid engine constant: " + valueToken.lexeme + "." + constValueToken.lexeme, constValueToken.location);
8559
- lexer.scanToCharacter(";");
8560
- return;
8570
+ propertyValue = this._scanEnumConstValue(valueToken.lexeme);
8571
+ if (propertyValue == undefined) return;
8572
+ // Support bitwise OR only for bitmask enums (e.g. ColorWriteMask)
8573
+ lexer.skipCommentsAndSpace();
8574
+ if (lexer.getCurChar() === "|") {
8575
+ if (valueToken.lexeme !== "ColorWriteMask") {
8576
+ this._createCompileError("Bitwise OR '|' is not supported for '" + valueToken.lexeme + "', only bitmask enums like 'ColorWriteMask' support this", valueToken.location);
8577
+ lexer.scanToCharacter(";");
8578
+ return;
8579
+ }
8580
+ while(lexer.getCurChar() === "|"){
8581
+ lexer.advance(1);
8582
+ var nextEnumToken = lexer.scanToken();
8583
+ if (nextEnumToken == undefined || lexer.getCurChar() !== ".") {
8584
+ this._createCompileError("Invalid syntax after '|', expect 'EnumType.Value'", nextEnumToken == null ? void 0 : nextEnumToken.location);
8585
+ lexer.scanToCharacter(";");
8586
+ return;
8587
+ }
8588
+ if (nextEnumToken.lexeme !== valueToken.lexeme) {
8589
+ this._createCompileError("Cannot mix enum types in bitwise OR: expected '" + valueToken.lexeme + "' but got '" + nextEnumToken.lexeme + "'", nextEnumToken.location);
8590
+ lexer.scanToCharacter(";");
8591
+ return;
8592
+ }
8593
+ var nextValue = this._scanEnumConstValue(nextEnumToken.lexeme);
8594
+ if (nextValue == undefined) return;
8595
+ propertyValue = propertyValue | nextValue;
8596
+ lexer.skipCommentsAndSpace();
8597
+ }
8561
8598
  }
8562
8599
  } else {
8563
8600
  propertyValue = valueToken.lexeme;
@@ -8751,6 +8788,7 @@
8751
8788
  case Keyword.GSCompareFunction:
8752
8789
  case Keyword.GSStencilOperation:
8753
8790
  case Keyword.GSCullMode:
8791
+ case Keyword.GSColorWriteMask:
8754
8792
  this._addPendingContents(start, token.lexeme.length, outGlobalContents);
8755
8793
  this._parseVariableDeclaration();
8756
8794
  start = this._lexer.getShaderPosition(0);
@@ -8775,7 +8813,8 @@
8775
8813
  StencilOperation: engine.StencilOperation,
8776
8814
  BlendOperation: engine.BlendOperation,
8777
8815
  BlendFactor: engine.BlendFactor,
8778
- CullMode: engine.CullMode
8816
+ CullMode: engine.CullMode,
8817
+ ColorWriteMask: engine.ColorWriteMask
8779
8818
  };
8780
8819
  ShaderSourceParser._symbolTableStack = new SymbolTableStack();
8781
8820
  ShaderSourceParser._lexer = new SourceLexer();
@@ -8848,7 +8887,7 @@
8848
8887
  ShaderLab._shaderRangePool = ShaderLabUtils.createObjectPool(ShaderRange);
8849
8888
 
8850
8889
  //@ts-ignore
8851
- var version = "2.0.0-alpha.2";
8890
+ var version = "2.0.0-alpha.21";
8852
8891
  var mode = "Release";
8853
8892
  mode = "Verbose";
8854
8893
  console.log("Galacean Engine ShaderLab Version: " + version + " | Mode: " + mode);