@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.
- package/dist/browser.js +79 -42
- package/dist/browser.js.map +1 -1
- package/dist/browser.min.js +1 -1
- package/dist/browser.min.js.map +1 -1
- package/dist/browser.verbose.js +83 -44
- package/dist/browser.verbose.js.map +1 -1
- package/dist/browser.verbose.min.js +1 -1
- package/dist/browser.verbose.min.js.map +1 -1
- package/dist/main.js +79 -42
- package/dist/main.js.map +1 -1
- package/dist/main.verbose.js +83 -44
- package/dist/main.verbose.js.map +1 -1
- package/dist/module.js +80 -43
- package/dist/module.js.map +1 -1
- package/dist/module.verbose.js +84 -45
- package/dist/module.verbose.js.map +1 -1
- package/package.json +4 -4
- package/types/common/enums/Keyword.d.ts +34 -32
package/dist/module.verbose.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ClearableObjectPool, Logger, ShaderPass, ShaderLib, ReturnableObjectPool, Color, RenderStateElementKey, RenderQueueType, CompareFunction, StencilOperation, BlendOperation, BlendFactor, CullMode, ShaderLanguage } from '@galacean/engine';
|
|
1
|
+
import { ClearableObjectPool, Logger, ShaderPass, ShaderLib, ReturnableObjectPool, Color, RenderStateElementKey, RenderQueueType, CompareFunction, StencilOperation, BlendOperation, BlendFactor, CullMode, ColorWriteMask, ShaderLanguage } from '@galacean/engine';
|
|
2
2
|
|
|
3
3
|
function _array_like_to_array(arr, len) {
|
|
4
4
|
if (len == null || len > arr.length) len = arr.length;
|
|
@@ -301,40 +301,42 @@ var Keyword = /*#__PURE__*/ function(Keyword) {
|
|
|
301
301
|
Keyword[Keyword["LeftBrace"] = 71] = "LeftBrace";
|
|
302
302
|
Keyword[Keyword["RightBrace"] = 72] = "RightBrace";
|
|
303
303
|
Keyword[Keyword["Equal"] = 73] = "Equal";
|
|
304
|
+
Keyword[Keyword["BitwiseOr"] = 74] = "BitwiseOr";
|
|
304
305
|
// Source Parser Tokens
|
|
305
|
-
Keyword[Keyword["GSRenderQueueType"] =
|
|
306
|
-
Keyword[Keyword["GSBlendState"] =
|
|
307
|
-
Keyword[Keyword["GSDepthState"] =
|
|
308
|
-
Keyword[Keyword["GSStencilState"] =
|
|
309
|
-
Keyword[Keyword["GSRasterState"] =
|
|
310
|
-
Keyword[Keyword["GSEditorProperties"] =
|
|
311
|
-
Keyword[Keyword["GSEditorMacros"] =
|
|
312
|
-
Keyword[Keyword["GSEditor"] =
|
|
313
|
-
Keyword[Keyword["GSTags"] =
|
|
314
|
-
Keyword[Keyword["GSVertexShader"] =
|
|
315
|
-
Keyword[Keyword["GSFragmentShader"] =
|
|
316
|
-
Keyword[Keyword["GSSubShader"] =
|
|
317
|
-
Keyword[Keyword["GSPass"] =
|
|
318
|
-
Keyword[Keyword["GSBlendFactor"] =
|
|
319
|
-
Keyword[Keyword["GSBlendOperation"] =
|
|
320
|
-
Keyword[Keyword["GSBool"] =
|
|
321
|
-
Keyword[Keyword["GSNumber"] =
|
|
322
|
-
Keyword[Keyword["GSColor"] =
|
|
323
|
-
Keyword[Keyword["GSCompareFunction"] =
|
|
324
|
-
Keyword[Keyword["GSStencilOperation"] =
|
|
325
|
-
Keyword[Keyword["GSCullMode"] =
|
|
326
|
-
Keyword[Keyword["
|
|
306
|
+
Keyword[Keyword["GSRenderQueueType"] = 75] = "GSRenderQueueType";
|
|
307
|
+
Keyword[Keyword["GSBlendState"] = 76] = "GSBlendState";
|
|
308
|
+
Keyword[Keyword["GSDepthState"] = 77] = "GSDepthState";
|
|
309
|
+
Keyword[Keyword["GSStencilState"] = 78] = "GSStencilState";
|
|
310
|
+
Keyword[Keyword["GSRasterState"] = 79] = "GSRasterState";
|
|
311
|
+
Keyword[Keyword["GSEditorProperties"] = 80] = "GSEditorProperties";
|
|
312
|
+
Keyword[Keyword["GSEditorMacros"] = 81] = "GSEditorMacros";
|
|
313
|
+
Keyword[Keyword["GSEditor"] = 82] = "GSEditor";
|
|
314
|
+
Keyword[Keyword["GSTags"] = 83] = "GSTags";
|
|
315
|
+
Keyword[Keyword["GSVertexShader"] = 84] = "GSVertexShader";
|
|
316
|
+
Keyword[Keyword["GSFragmentShader"] = 85] = "GSFragmentShader";
|
|
317
|
+
Keyword[Keyword["GSSubShader"] = 86] = "GSSubShader";
|
|
318
|
+
Keyword[Keyword["GSPass"] = 87] = "GSPass";
|
|
319
|
+
Keyword[Keyword["GSBlendFactor"] = 88] = "GSBlendFactor";
|
|
320
|
+
Keyword[Keyword["GSBlendOperation"] = 89] = "GSBlendOperation";
|
|
321
|
+
Keyword[Keyword["GSBool"] = 90] = "GSBool";
|
|
322
|
+
Keyword[Keyword["GSNumber"] = 91] = "GSNumber";
|
|
323
|
+
Keyword[Keyword["GSColor"] = 92] = "GSColor";
|
|
324
|
+
Keyword[Keyword["GSCompareFunction"] = 93] = "GSCompareFunction";
|
|
325
|
+
Keyword[Keyword["GSStencilOperation"] = 94] = "GSStencilOperation";
|
|
326
|
+
Keyword[Keyword["GSCullMode"] = 95] = "GSCullMode";
|
|
327
|
+
Keyword[Keyword["GSColorWriteMask"] = 96] = "GSColorWriteMask";
|
|
328
|
+
Keyword[Keyword["GSUsePass"] = 97] = "GSUsePass";
|
|
327
329
|
// Macros
|
|
328
|
-
Keyword[Keyword["MACRO_IF"] =
|
|
329
|
-
Keyword[Keyword["MACRO_IFDEF"] =
|
|
330
|
-
Keyword[Keyword["MACRO_IFNDEF"] =
|
|
331
|
-
Keyword[Keyword["MACRO_ELSE"] =
|
|
332
|
-
Keyword[Keyword["MACRO_ELIF"] =
|
|
333
|
-
Keyword[Keyword["MACRO_ENDIF"] =
|
|
334
|
-
Keyword[Keyword["MACRO_UNDEF"] =
|
|
335
|
-
Keyword[Keyword["MACRO_DEFINE_EXPRESSION"] =
|
|
336
|
-
Keyword[Keyword["MACRO_CONDITIONAL_EXPRESSION"] =
|
|
337
|
-
Keyword[Keyword["MACRO_CALL"] =
|
|
330
|
+
Keyword[Keyword["MACRO_IF"] = 98] = "MACRO_IF";
|
|
331
|
+
Keyword[Keyword["MACRO_IFDEF"] = 99] = "MACRO_IFDEF";
|
|
332
|
+
Keyword[Keyword["MACRO_IFNDEF"] = 100] = "MACRO_IFNDEF";
|
|
333
|
+
Keyword[Keyword["MACRO_ELSE"] = 101] = "MACRO_ELSE";
|
|
334
|
+
Keyword[Keyword["MACRO_ELIF"] = 102] = "MACRO_ELIF";
|
|
335
|
+
Keyword[Keyword["MACRO_ENDIF"] = 103] = "MACRO_ENDIF";
|
|
336
|
+
Keyword[Keyword["MACRO_UNDEF"] = 104] = "MACRO_UNDEF";
|
|
337
|
+
Keyword[Keyword["MACRO_DEFINE_EXPRESSION"] = 105] = "MACRO_DEFINE_EXPRESSION";
|
|
338
|
+
Keyword[Keyword["MACRO_CONDITIONAL_EXPRESSION"] = 106] = "MACRO_CONDITIONAL_EXPRESSION";
|
|
339
|
+
Keyword[Keyword["MACRO_CALL"] = 107] = "MACRO_CALL";
|
|
338
340
|
return Keyword;
|
|
339
341
|
}({});
|
|
340
342
|
|
|
@@ -8300,7 +8302,8 @@ var SourceLexer = /*#__PURE__*/ function(BaseLexer1) {
|
|
|
8300
8302
|
charCode === 59 || // ;
|
|
8301
8303
|
charCode === 46 || // . CullMode.Back
|
|
8302
8304
|
charCode === 91 || // [ Enabled[0],
|
|
8303
|
-
charCode === 40 // ( Color(1.0, 1.0, 1.0, 1.0);
|
|
8305
|
+
charCode === 40 || // ( Color(1.0, 1.0, 1.0, 1.0);
|
|
8306
|
+
charCode === 124 // | ColorWriteMask.Red | ColorWriteMask.Green
|
|
8304
8307
|
;
|
|
8305
8308
|
};
|
|
8306
8309
|
SourceLexer._scanDigits = function _scanDigits(source, startIndex) {
|
|
@@ -8339,6 +8342,7 @@ SourceLexer._keywordLexemeTable = {
|
|
|
8339
8342
|
CompareFunction: Keyword.GSCompareFunction,
|
|
8340
8343
|
StencilOperation: Keyword.GSStencilOperation,
|
|
8341
8344
|
CullMode: Keyword.GSCullMode,
|
|
8345
|
+
ColorWriteMask: Keyword.GSColorWriteMask,
|
|
8342
8346
|
UsePass: Keyword.GSUsePass,
|
|
8343
8347
|
true: Keyword.True,
|
|
8344
8348
|
false: Keyword.False
|
|
@@ -8346,7 +8350,8 @@ SourceLexer._keywordLexemeTable = {
|
|
|
8346
8350
|
SourceLexer._symbolLexemeTable = {
|
|
8347
8351
|
"{": Keyword.LeftBrace,
|
|
8348
8352
|
"}": Keyword.RightBrace,
|
|
8349
|
-
"=": Keyword.Equal
|
|
8353
|
+
"=": Keyword.Equal,
|
|
8354
|
+
"|": Keyword.BitwiseOr
|
|
8350
8355
|
};
|
|
8351
8356
|
|
|
8352
8357
|
/**
|
|
@@ -8503,6 +8508,18 @@ SourceLexer._symbolLexemeTable = {
|
|
|
8503
8508
|
var error = this._lexer.createCompileError(message, location);
|
|
8504
8509
|
this.errors.push(error);
|
|
8505
8510
|
};
|
|
8511
|
+
ShaderSourceParser._scanEnumConstValue = function _scanEnumConstValue(enumName) {
|
|
8512
|
+
var _this__renderStateConstMap_enumName;
|
|
8513
|
+
var lexer = this._lexer;
|
|
8514
|
+
lexer.advance(1);
|
|
8515
|
+
var constValueToken = lexer.scanToken();
|
|
8516
|
+
var value = (_this__renderStateConstMap_enumName = this._renderStateConstMap[enumName]) == null ? void 0 : _this__renderStateConstMap_enumName[constValueToken.lexeme];
|
|
8517
|
+
if (value == undefined) {
|
|
8518
|
+
this._createCompileError("Invalid engine constant: " + enumName + "." + constValueToken.lexeme, constValueToken.location);
|
|
8519
|
+
lexer.scanToCharacter(";");
|
|
8520
|
+
}
|
|
8521
|
+
return value;
|
|
8522
|
+
};
|
|
8506
8523
|
ShaderSourceParser._parseRenderStateProperty = function _parseRenderStateProperty(stateLexeme, out) {
|
|
8507
8524
|
var lexer = this._lexer;
|
|
8508
8525
|
var propertyToken = lexer.scanToken();
|
|
@@ -8546,14 +8563,34 @@ SourceLexer._symbolLexemeTable = {
|
|
|
8546
8563
|
} else if (valueTokenType === Keyword.GSColor) {
|
|
8547
8564
|
propertyValue = lexer.scanColor();
|
|
8548
8565
|
} else if (lexer.getCurChar() === ".") {
|
|
8549
|
-
|
|
8550
|
-
|
|
8551
|
-
|
|
8552
|
-
|
|
8553
|
-
if (
|
|
8554
|
-
|
|
8555
|
-
|
|
8556
|
-
|
|
8566
|
+
propertyValue = this._scanEnumConstValue(valueToken.lexeme);
|
|
8567
|
+
if (propertyValue == undefined) return;
|
|
8568
|
+
// Support bitwise OR only for bitmask enums (e.g. ColorWriteMask)
|
|
8569
|
+
lexer.skipCommentsAndSpace();
|
|
8570
|
+
if (lexer.getCurChar() === "|") {
|
|
8571
|
+
if (valueToken.lexeme !== "ColorWriteMask") {
|
|
8572
|
+
this._createCompileError("Bitwise OR '|' is not supported for '" + valueToken.lexeme + "', only bitmask enums like 'ColorWriteMask' support this", valueToken.location);
|
|
8573
|
+
lexer.scanToCharacter(";");
|
|
8574
|
+
return;
|
|
8575
|
+
}
|
|
8576
|
+
while(lexer.getCurChar() === "|"){
|
|
8577
|
+
lexer.advance(1);
|
|
8578
|
+
var nextEnumToken = lexer.scanToken();
|
|
8579
|
+
if (nextEnumToken == undefined || lexer.getCurChar() !== ".") {
|
|
8580
|
+
this._createCompileError("Invalid syntax after '|', expect 'EnumType.Value'", nextEnumToken == null ? void 0 : nextEnumToken.location);
|
|
8581
|
+
lexer.scanToCharacter(";");
|
|
8582
|
+
return;
|
|
8583
|
+
}
|
|
8584
|
+
if (nextEnumToken.lexeme !== valueToken.lexeme) {
|
|
8585
|
+
this._createCompileError("Cannot mix enum types in bitwise OR: expected '" + valueToken.lexeme + "' but got '" + nextEnumToken.lexeme + "'", nextEnumToken.location);
|
|
8586
|
+
lexer.scanToCharacter(";");
|
|
8587
|
+
return;
|
|
8588
|
+
}
|
|
8589
|
+
var nextValue = this._scanEnumConstValue(nextEnumToken.lexeme);
|
|
8590
|
+
if (nextValue == undefined) return;
|
|
8591
|
+
propertyValue = propertyValue | nextValue;
|
|
8592
|
+
lexer.skipCommentsAndSpace();
|
|
8593
|
+
}
|
|
8557
8594
|
}
|
|
8558
8595
|
} else {
|
|
8559
8596
|
propertyValue = valueToken.lexeme;
|
|
@@ -8747,6 +8784,7 @@ SourceLexer._symbolLexemeTable = {
|
|
|
8747
8784
|
case Keyword.GSCompareFunction:
|
|
8748
8785
|
case Keyword.GSStencilOperation:
|
|
8749
8786
|
case Keyword.GSCullMode:
|
|
8787
|
+
case Keyword.GSColorWriteMask:
|
|
8750
8788
|
this._addPendingContents(start, token.lexeme.length, outGlobalContents);
|
|
8751
8789
|
this._parseVariableDeclaration();
|
|
8752
8790
|
start = this._lexer.getShaderPosition(0);
|
|
@@ -8771,7 +8809,8 @@ ShaderSourceParser._renderStateConstMap = {
|
|
|
8771
8809
|
StencilOperation: StencilOperation,
|
|
8772
8810
|
BlendOperation: BlendOperation,
|
|
8773
8811
|
BlendFactor: BlendFactor,
|
|
8774
|
-
CullMode: CullMode
|
|
8812
|
+
CullMode: CullMode,
|
|
8813
|
+
ColorWriteMask: ColorWriteMask
|
|
8775
8814
|
};
|
|
8776
8815
|
ShaderSourceParser._symbolTableStack = new SymbolTableStack();
|
|
8777
8816
|
ShaderSourceParser._lexer = new SourceLexer();
|
|
@@ -8844,7 +8883,7 @@ ShaderLab._shaderPositionPool = ShaderLabUtils.createObjectPool(ShaderPosition);
|
|
|
8844
8883
|
ShaderLab._shaderRangePool = ShaderLabUtils.createObjectPool(ShaderRange);
|
|
8845
8884
|
|
|
8846
8885
|
//@ts-ignore
|
|
8847
|
-
var version = "2.0.0-alpha.
|
|
8886
|
+
var version = "2.0.0-alpha.21";
|
|
8848
8887
|
var mode = "Release";
|
|
8849
8888
|
mode = "Verbose";
|
|
8850
8889
|
console.log("Galacean Engine ShaderLab Version: " + version + " | Mode: " + mode);
|