@galacean/engine-core 1.3.0-alpha.1 → 1.3.0-alpha.3
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/main.js +198 -59
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +198 -59
- package/dist/module.js +199 -60
- package/dist/module.js.map +1 -1
- package/package.json +3 -3
- package/types/Camera.d.ts +7 -4
- package/types/enums/ReplacementFailureStrategy.d.ts +9 -0
- package/types/index.d.ts +1 -0
- package/types/input/pointer/PointerEvent.d.ts +4 -0
- package/types/input/pointer/PointerEventType.d.ts +7 -0
- package/types/lighting/Light.d.ts +4 -2
- package/types/shader/ShaderPass.d.ts +10 -0
- package/types/shader/index.d.ts +1 -0
- package/types/shaderlib/ShaderFactory.d.ts +2 -1
- package/types/ui/Image.d.ts +38 -0
- package/types/ui/RedBlackTree.d.ts +2 -0
- package/types/ui/UICanvas.d.ts +55 -0
- package/types/ui/UIRenderer.d.ts +14 -0
- package/types/ui/UITransform.d.ts +20 -0
- package/types/ui/enums/BlockingObjects.d.ts +6 -0
- package/types/ui/enums/CanvasRenderMode.d.ts +8 -0
- package/types/ui/enums/ResolutionAdaptationStrategy.d.ts +10 -0
- package/types/ui/index.d.ts +6 -0
- package/types/Deprecated.d.ts +0 -101
- package/types/RenderPipeline/Chunk.d.ts +0 -1
- package/types/RenderPipeline/batcher/MeshBuffer.d.ts +0 -1
- package/types/RenderPipeline/enums/RenderBufferStoreAction.d.ts +0 -13
- package/types/postProcess/PostProcessEffect.d.ts +0 -13
- package/types/postProcess/PostProcessPass.d.ts +0 -55
- package/types/texture/enums/PixelFormat.d.ts +0 -73
package/dist/miniprogram.js
CHANGED
|
@@ -2995,6 +2995,51 @@ exports.RenderStateDataKey = void 0;
|
|
|
2995
2995
|
StencilOperation[StencilOperation[/** Decrements the current stencil buffer value. Wraps stencil buffer value to the maximum representable unsigned value when decrementing a stencil buffer value of 0. */ "DecrementWrap"] = 7] = "DecrementWrap";
|
|
2996
2996
|
})(exports.StencilOperation || (exports.StencilOperation = {}));
|
|
2997
2997
|
|
|
2998
|
+
exports.ShaderPlatformTarget = void 0;
|
|
2999
|
+
(function(ShaderPlatformTarget) {
|
|
3000
|
+
ShaderPlatformTarget[ShaderPlatformTarget["GLES100"] = 0] = "GLES100";
|
|
3001
|
+
ShaderPlatformTarget[ShaderPlatformTarget["GLES300"] = 1] = "GLES300";
|
|
3002
|
+
})(exports.ShaderPlatformTarget || (exports.ShaderPlatformTarget = {}));
|
|
3003
|
+
|
|
3004
|
+
function _array_like_to_array(arr, len) {
|
|
3005
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
3006
|
+
|
|
3007
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
3008
|
+
|
|
3009
|
+
return arr2;
|
|
3010
|
+
}
|
|
3011
|
+
|
|
3012
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
3013
|
+
if (!o) return;
|
|
3014
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
3015
|
+
|
|
3016
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
3017
|
+
|
|
3018
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
3019
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
3020
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
3021
|
+
}
|
|
3022
|
+
|
|
3023
|
+
function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
|
|
3024
|
+
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
3025
|
+
|
|
3026
|
+
if (it) return (it = it.call(o)).next.bind(it);
|
|
3027
|
+
// Fallback for engines without symbol support
|
|
3028
|
+
if (Array.isArray(o) || (it = _unsupported_iterable_to_array(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
3029
|
+
if (it) o = it;
|
|
3030
|
+
|
|
3031
|
+
var i = 0;
|
|
3032
|
+
|
|
3033
|
+
return function() {
|
|
3034
|
+
if (i >= o.length) return { done: true };
|
|
3035
|
+
|
|
3036
|
+
return { done: false, value: o[i++] };
|
|
3037
|
+
};
|
|
3038
|
+
}
|
|
3039
|
+
|
|
3040
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
3041
|
+
}
|
|
3042
|
+
|
|
2998
3043
|
/**
|
|
2999
3044
|
* Shader macro。
|
|
3000
3045
|
*/ var ShaderMacro = /*#__PURE__*/ function() {
|
|
@@ -3024,14 +3069,14 @@ exports.RenderStateDataKey = void 0;
|
|
|
3024
3069
|
maskMap.length++;
|
|
3025
3070
|
maskMap[index] = new Array(32);
|
|
3026
3071
|
}
|
|
3027
|
-
maskMap[index][bit] =
|
|
3072
|
+
maskMap[index][bit] = macro;
|
|
3028
3073
|
ShaderMacro._macroCounter++;
|
|
3029
3074
|
}
|
|
3030
3075
|
return macro;
|
|
3031
3076
|
};
|
|
3032
3077
|
/**
|
|
3033
3078
|
* @internal
|
|
3034
|
-
*/ ShaderMacro.
|
|
3079
|
+
*/ ShaderMacro._getMacrosElements = function _getMacrosElements(macros, out) {
|
|
3035
3080
|
var maskMap = ShaderMacro._macroMaskMap;
|
|
3036
3081
|
var mask = macros._mask;
|
|
3037
3082
|
out.length = 0;
|
|
@@ -3214,15 +3259,6 @@ exports.RenderStateDataKey = void 0;
|
|
|
3214
3259
|
return ShaderMacroCollection;
|
|
3215
3260
|
}();
|
|
3216
3261
|
|
|
3217
|
-
/**
|
|
3218
|
-
* Pipeline stage.
|
|
3219
|
-
*/ exports.PipelineStage = void 0;
|
|
3220
|
-
(function(PipelineStage) {
|
|
3221
|
-
PipelineStage[/** DepthOnly stage. */ "DepthOnly"] = "DepthOnly";
|
|
3222
|
-
PipelineStage[/** Shadow caster stage. */ "ShadowCaster"] = "ShadowCaster";
|
|
3223
|
-
PipelineStage[/** Forward shading stage. */ "Forward"] = "Forward";
|
|
3224
|
-
})(exports.PipelineStage || (exports.PipelineStage = {}));
|
|
3225
|
-
|
|
3226
3262
|
function _extends() {
|
|
3227
3263
|
_extends = Object.assign || function assign(target) {
|
|
3228
3264
|
for (var i = 1; i < arguments.length; i++) {
|
|
@@ -3236,9 +3272,18 @@ function _extends() {
|
|
|
3236
3272
|
return _extends.apply(this, arguments);
|
|
3237
3273
|
}
|
|
3238
3274
|
|
|
3275
|
+
/**
|
|
3276
|
+
* Pipeline stage.
|
|
3277
|
+
*/ exports.PipelineStage = void 0;
|
|
3278
|
+
(function(PipelineStage) {
|
|
3279
|
+
PipelineStage[/** DepthOnly stage. */ "DepthOnly"] = "DepthOnly";
|
|
3280
|
+
PipelineStage[/** Shadow caster stage. */ "ShadowCaster"] = "ShadowCaster";
|
|
3281
|
+
PipelineStage[/** Forward shading stage. */ "Forward"] = "Forward";
|
|
3282
|
+
})(exports.PipelineStage || (exports.PipelineStage = {}));
|
|
3283
|
+
|
|
3239
3284
|
var camera_declare = "#define GLSLIFY 1\nuniform vec3 camera_Position;uniform vec3 camera_Forward;uniform vec4 camera_ProjectionParams;"; // eslint-disable-line
|
|
3240
3285
|
|
|
3241
|
-
var common = "#define GLSLIFY 1\n#define PI 3.14159265359\n#define RECIPROCAL_PI 0.31830988618\n#define EPSILON 1e-6\n#define LOG2 1.442695\n#define saturate( a ) clamp( a, 0.0, 1.0 )\nfloat pow2(float x){return x*x;}vec4 RGBMToLinear(vec4 value,float maxRange){return vec4(value.rgb*value.a*maxRange,1.0);}vec4 gammaToLinear(vec4 srgbIn){return vec4(pow(srgbIn.rgb,vec3(2.2)),srgbIn.a);}vec4 linearToGamma(vec4 linearIn){return vec4(pow(linearIn.rgb,vec3(1.0/2.2)),linearIn.a);}uniform vec4 camera_DepthBufferParams;float remapDepthBufferLinear01(float z){return 1.0/(camera_DepthBufferParams.x*z+camera_DepthBufferParams.y);}\n#ifdef GRAPHICS_API_WEBGL2\n#define INVERSE_MAT(mat) inverse(mat)\n#else\nmat2 inverseMat(mat2 m){return mat2(m[1][1],-m[0][1],-m[1][0],m[0][0])/(m[0][0]*m[1][1]-m[0][1]*m[1][0]);}mat3 inverseMat(mat3 m){float a00=m[0][0],a01=m[0][1],a02=m[0][2];float a10=m[1][0],a11=m[1][1],a12=m[1][2];float a20=m[2][0],a21=m[2][1],a22=m[2][2];float b01=a22*a11-a12*a21;float b11=-a22*a10+a12*a20;float b21=a21*a10-a11*a20;float det=a00*b01+a01*b11+a02*b21;return mat3(b01,(-a22*a01+a02*a21),(a12*a01-a02*a11),b11,(a22*a00-a02*a20),(-a12*a00+a02*a10),b21,(-a21*a00+a01*a20),(a11*a00-a01*a10))/det;}mat4 inverseMat(mat4 m){float a00=m[0][0],a01=m[0][1],a02=m[0][2],a03=m[0][3],a10=m[1][0],a11=m[1][1],a12=m[1][2],a13=m[1][3],a20=m[2][0],a21=m[2][1],a22=m[2][2],a23=m[2][3],a30=m[3][0],a31=m[3][1],a32=m[3][2],a33=m[3][3],b00=a00*a11-a01*a10,b01=a00*a12-a02*a10,b02=a00*a13-a03*a10,b03=a01*a12-a02*a11,b04=a01*a13-a03*a11,b05=a02*a13-a03*a12,b06=a20*a31-a21*a30,b07=a20*a32-a22*a30,b08=a20*a33-a23*a30,b09=a21*a32-a22*a31,b10=a21*a33-a23*a31,b11=a22*a33-a23*a32,det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;return mat4(a11*b11-a12*b10+a13*b09,a02*b10-a01*b11-a03*b09,a31*b05-a32*b04+a33*b03,a22*b04-a21*b05-a23*b03,a12*b08-a10*b11-a13*b07,a00*b11-a02*b08+a03*b07,a32*b02-a30*b05-a33*b01,a20*b05-a22*b02+a23*b01,a10*b10-a11*b08+a13*b06,a01*b08-a00*b10-a03*b06,a30*b04-a31*b02+a33*b00,a21*b02-a20*b04-a23*b00,a11*b07-a10*b09-a12*b06,a00*b09-a01*b07+a02*b06,a31*b01-a30*b03-a32*b00,a20*b03-a21*b01+a22*b00)/det;}\n#define INVERSE_MAT(mat) inverseMat(mat)\n#endif\n"; // eslint-disable-line
|
|
3286
|
+
var common = "#define GLSLIFY 1\n#define PI 3.14159265359\n#define RECIPROCAL_PI 0.31830988618\n#define EPSILON 1e-6\n#define LOG2 1.442695\n#define saturate( a ) clamp( a, 0.0, 1.0 )\nfloat pow2(float x){return x*x;}vec4 RGBMToLinear(vec4 value,float maxRange){return vec4(value.rgb*value.a*maxRange,1.0);}vec4 gammaToLinear(vec4 srgbIn){return vec4(pow(srgbIn.rgb,vec3(2.2)),srgbIn.a);}vec4 linearToGamma(vec4 linearIn){linearIn=max(linearIn,0.0);return vec4(pow(linearIn.rgb,vec3(1.0/2.2)),linearIn.a);}uniform vec4 camera_DepthBufferParams;float remapDepthBufferLinear01(float z){return 1.0/(camera_DepthBufferParams.x*z+camera_DepthBufferParams.y);}\n#ifdef GRAPHICS_API_WEBGL2\n#define INVERSE_MAT(mat) inverse(mat)\n#else\nmat2 inverseMat(mat2 m){return mat2(m[1][1],-m[0][1],-m[1][0],m[0][0])/(m[0][0]*m[1][1]-m[0][1]*m[1][0]);}mat3 inverseMat(mat3 m){float a00=m[0][0],a01=m[0][1],a02=m[0][2];float a10=m[1][0],a11=m[1][1],a12=m[1][2];float a20=m[2][0],a21=m[2][1],a22=m[2][2];float b01=a22*a11-a12*a21;float b11=-a22*a10+a12*a20;float b21=a21*a10-a11*a20;float det=a00*b01+a01*b11+a02*b21;return mat3(b01,(-a22*a01+a02*a21),(a12*a01-a02*a11),b11,(a22*a00-a02*a20),(-a12*a00+a02*a10),b21,(-a21*a00+a01*a20),(a11*a00-a01*a10))/det;}mat4 inverseMat(mat4 m){float a00=m[0][0],a01=m[0][1],a02=m[0][2],a03=m[0][3],a10=m[1][0],a11=m[1][1],a12=m[1][2],a13=m[1][3],a20=m[2][0],a21=m[2][1],a22=m[2][2],a23=m[2][3],a30=m[3][0],a31=m[3][1],a32=m[3][2],a33=m[3][3],b00=a00*a11-a01*a10,b01=a00*a12-a02*a10,b02=a00*a13-a03*a10,b03=a01*a12-a02*a11,b04=a01*a13-a03*a11,b05=a02*a13-a03*a12,b06=a20*a31-a21*a30,b07=a20*a32-a22*a30,b08=a20*a33-a23*a30,b09=a21*a32-a22*a31,b10=a21*a33-a23*a31,b11=a22*a33-a23*a32,det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;return mat4(a11*b11-a12*b10+a13*b09,a02*b10-a01*b11-a03*b09,a31*b05-a32*b04+a33*b03,a22*b04-a21*b05-a23*b03,a12*b08-a10*b11-a13*b07,a00*b11-a02*b08+a03*b07,a32*b02-a30*b05-a33*b01,a20*b05-a22*b02+a23*b01,a10*b10-a11*b08+a13*b06,a01*b08-a00*b10-a03*b06,a30*b04-a31*b02+a33*b00,a21*b02-a20*b04-a23*b00,a11*b07-a10*b09-a12*b06,a00*b09-a01*b07+a02*b06,a31*b01-a30*b03-a32*b00,a20*b03-a21*b01+a22*b00)/det;}\n#define INVERSE_MAT(mat) inverseMat(mat)\n#endif\n"; // eslint-disable-line
|
|
3242
3287
|
|
|
3243
3288
|
var common_vert = "#define GLSLIFY 1\nattribute vec3 POSITION;\n#ifdef RENDERER_HAS_UV\nattribute vec2 TEXCOORD_0;\n#endif\n#ifdef RENDERER_HAS_UV1\nattribute vec2 TEXCOORD_1;\n#endif\n#ifdef RENDERER_HAS_SKIN\nattribute vec4 JOINTS_0;attribute vec4 WEIGHTS_0;\n#ifdef RENDERER_USE_JOINT_TEXTURE\nuniform sampler2D renderer_JointSampler;uniform float renderer_JointCount;mat4 getJointMatrix(sampler2D smp,float index){float base=index/renderer_JointCount;float hf=0.5/renderer_JointCount;float v=base+hf;vec4 m0=texture2D(smp,vec2(0.125,v));vec4 m1=texture2D(smp,vec2(0.375,v));vec4 m2=texture2D(smp,vec2(0.625,v));vec4 m3=texture2D(smp,vec2(0.875,v));return mat4(m0,m1,m2,m3);}\n#else\nuniform mat4 renderer_JointMatrix[RENDERER_JOINTS_NUM];\n#endif\n#endif\n#ifdef RENDERER_ENABLE_VERTEXCOLOR\nattribute vec4 COLOR_0;\n#endif\n#include <transform_declare>\n#include <camera_declare>\nuniform vec4 material_TilingOffset;\n#ifndef MATERIAL_OMIT_NORMAL\n#ifdef RENDERER_HAS_NORMAL\nattribute vec3 NORMAL;\n#endif\n#ifdef RENDERER_HAS_TANGENT\nattribute vec4 TANGENT;\n#endif\n#endif\n"; // eslint-disable-line
|
|
3244
3289
|
|
|
@@ -3451,7 +3496,7 @@ var ShaderFactory = /*#__PURE__*/ function() {
|
|
|
3451
3496
|
function ShaderFactory() {}
|
|
3452
3497
|
ShaderFactory.parseCustomMacros = function parseCustomMacros(macros) {
|
|
3453
3498
|
return macros.map(function(m) {
|
|
3454
|
-
return "#define " + m + "\n";
|
|
3499
|
+
return "#define " + (m.value ? m.name + " " + m.value : m.name) + "\n";
|
|
3455
3500
|
}).join("");
|
|
3456
3501
|
};
|
|
3457
3502
|
ShaderFactory.registerInclude = function registerInclude(includeName, includeSource) {
|
|
@@ -4236,29 +4281,50 @@ var ShaderFactory = /*#__PURE__*/ function() {
|
|
|
4236
4281
|
ShaderProgram._counter = 0;
|
|
4237
4282
|
})();
|
|
4238
4283
|
|
|
4284
|
+
/**
|
|
4285
|
+
* @internal
|
|
4286
|
+
* Shader pass type
|
|
4287
|
+
*/ var ShaderType;
|
|
4288
|
+
(function(ShaderType) {
|
|
4289
|
+
ShaderType[ShaderType[/** init by glsl */ "Canonical"] = 0] = "Canonical";
|
|
4290
|
+
ShaderType[ShaderType[/** init by shader-lab */ "ShaderLab"] = 1] = "ShaderLab";
|
|
4291
|
+
})(ShaderType || (ShaderType = {}));
|
|
4292
|
+
|
|
4239
4293
|
/**
|
|
4240
4294
|
* Shader pass containing vertex and fragment source.
|
|
4241
4295
|
*/ var ShaderPass = /*#__PURE__*/ function(ShaderPart1) {
|
|
4242
4296
|
_inherits(ShaderPass, ShaderPart1);
|
|
4243
|
-
function ShaderPass(nameOrVertexSource,
|
|
4297
|
+
function ShaderPass(nameOrVertexSource, vertexSourceOrFragmentSourceOrCode, fragmentSourceOrTagsOrVertexEntry, fragmentEntryOrTags, tags) {
|
|
4244
4298
|
var _this;
|
|
4245
4299
|
_this = ShaderPart1.call(this) || this;
|
|
4246
4300
|
/** @internal */ _this._shaderPassId = 0;
|
|
4247
4301
|
/** @internal */ _this._renderStateDataMap = {};
|
|
4248
4302
|
/** @internal */ _this._shaderProgramPools = [];
|
|
4303
|
+
/** @internal */ _this._path = "";
|
|
4304
|
+
_this._platformMacros = [];
|
|
4249
4305
|
_this._shaderPassId = ShaderPass._shaderPassCounter++;
|
|
4250
|
-
|
|
4306
|
+
_this._type = ShaderType.Canonical;
|
|
4307
|
+
if (typeof fragmentEntryOrTags === "string") {
|
|
4251
4308
|
_this._name = nameOrVertexSource;
|
|
4252
|
-
_this.
|
|
4253
|
-
_this.
|
|
4254
|
-
|
|
4309
|
+
_this._shaderLabSource = vertexSourceOrFragmentSourceOrCode;
|
|
4310
|
+
_this._vertexEntry = fragmentSourceOrTagsOrVertexEntry;
|
|
4311
|
+
_this._fragmentEntry = fragmentEntryOrTags;
|
|
4312
|
+
tags = _extends({
|
|
4313
|
+
pipelineStage: exports.PipelineStage.Forward
|
|
4314
|
+
}, tags);
|
|
4315
|
+
_this._type = ShaderType.ShaderLab;
|
|
4316
|
+
} else if (typeof fragmentSourceOrTagsOrVertexEntry === "string") {
|
|
4317
|
+
_this._name = nameOrVertexSource;
|
|
4318
|
+
_this._vertexSource = vertexSourceOrFragmentSourceOrCode;
|
|
4319
|
+
_this._fragmentSource = fragmentSourceOrTagsOrVertexEntry;
|
|
4320
|
+
tags = fragmentEntryOrTags != null ? fragmentEntryOrTags : {
|
|
4255
4321
|
pipelineStage: exports.PipelineStage.Forward
|
|
4256
4322
|
};
|
|
4257
4323
|
} else {
|
|
4258
4324
|
_this._name = "Default";
|
|
4259
4325
|
_this._vertexSource = nameOrVertexSource;
|
|
4260
|
-
_this._fragmentSource =
|
|
4261
|
-
tags =
|
|
4326
|
+
_this._fragmentSource = vertexSourceOrFragmentSourceOrCode;
|
|
4327
|
+
tags = fragmentSourceOrTagsOrVertexEntry != null ? fragmentSourceOrTagsOrVertexEntry : {
|
|
4262
4328
|
pipelineStage: exports.PipelineStage.Forward
|
|
4263
4329
|
};
|
|
4264
4330
|
}
|
|
@@ -4276,9 +4342,52 @@ var ShaderFactory = /*#__PURE__*/ function() {
|
|
|
4276
4342
|
if (shaderProgram) {
|
|
4277
4343
|
return shaderProgram;
|
|
4278
4344
|
}
|
|
4345
|
+
if (this._type === ShaderType.Canonical) {
|
|
4346
|
+
shaderProgram = this._getCanonicalShaderProgram(engine, macroCollection);
|
|
4347
|
+
} else {
|
|
4348
|
+
shaderProgram = this._compileShaderProgram(engine, macroCollection, this._vertexEntry, this._fragmentEntry);
|
|
4349
|
+
}
|
|
4350
|
+
shaderProgramPool.cache(shaderProgram);
|
|
4351
|
+
return shaderProgram;
|
|
4352
|
+
};
|
|
4353
|
+
/**
|
|
4354
|
+
* @internal
|
|
4355
|
+
*/ _proto._destroy = function _destroy() {
|
|
4356
|
+
var shaderProgramPools = this._shaderProgramPools;
|
|
4357
|
+
for(var i = 0, n = shaderProgramPools.length; i < n; i++){
|
|
4358
|
+
shaderProgramPools[i]._destroy();
|
|
4359
|
+
}
|
|
4360
|
+
shaderProgramPools.length = 0;
|
|
4361
|
+
};
|
|
4362
|
+
/**
|
|
4363
|
+
* Shader Lab compilation
|
|
4364
|
+
*/ _proto._compileShaderProgram = function _compileShaderProgram(engine, macroCollection, vertexEntry, fragmentEntry) {
|
|
4365
|
+
var _this = this, path = _this._path, platformMacros = _this._platformMacros;
|
|
4279
4366
|
var isWebGL2 = engine._hardwareRenderer.isWebGL2;
|
|
4280
|
-
var
|
|
4281
|
-
ShaderMacro.
|
|
4367
|
+
var macros = new Array();
|
|
4368
|
+
ShaderMacro._getMacrosElements(macroCollection, macros);
|
|
4369
|
+
platformMacros.length = 0;
|
|
4370
|
+
if (engine._hardwareRenderer.canIUse(exports.GLCapabilityType.shaderTextureLod)) {
|
|
4371
|
+
platformMacros.push("HAS_TEX_LOD");
|
|
4372
|
+
}
|
|
4373
|
+
if (engine._hardwareRenderer.canIUse(exports.GLCapabilityType.standardDerivatives)) {
|
|
4374
|
+
platformMacros.push("HAS_DERIVATIVES");
|
|
4375
|
+
}
|
|
4376
|
+
if (isWebGL2) {
|
|
4377
|
+
platformMacros.push("GRAPHICS_API_WEBGL2");
|
|
4378
|
+
} else {
|
|
4379
|
+
platformMacros.push("GRAPHICS_API_WEBGL1");
|
|
4380
|
+
}
|
|
4381
|
+
var start = engineMiniprogramAdapter.performance.now();
|
|
4382
|
+
var _Shader__shaderLab__parseShaderPass = Shader._shaderLab._parseShaderPass(this._shaderLabSource, vertexEntry, fragmentEntry, macros, isWebGL2 ? exports.ShaderPlatformTarget.GLES300 : exports.ShaderPlatformTarget.GLES100, platformMacros, new engineMiniprogramAdapter.URL(path, ShaderPass._shaderRootPath).href), vertex = _Shader__shaderLab__parseShaderPass.vertex, fragment = _Shader__shaderLab__parseShaderPass.fragment;
|
|
4383
|
+
Logger.info("[ShaderLab compilation] cost time: " + (engineMiniprogramAdapter.performance.now() - start) + "ms");
|
|
4384
|
+
return new ShaderProgram(engine, vertex, fragment);
|
|
4385
|
+
};
|
|
4386
|
+
// TODO: remove it after migrate all shader to `ShaderLab`.
|
|
4387
|
+
_proto._getCanonicalShaderProgram = function _getCanonicalShaderProgram(engine, macroCollection) {
|
|
4388
|
+
var isWebGL2 = engine._hardwareRenderer.isWebGL2;
|
|
4389
|
+
var macroNameList = new Array();
|
|
4390
|
+
ShaderMacro._getMacrosElements(macroCollection, macroNameList);
|
|
4282
4391
|
var macroNameStr = ShaderFactory.parseCustomMacros(macroNameList);
|
|
4283
4392
|
var versionStr = isWebGL2 ? "#version 300 es" : "#version 100";
|
|
4284
4393
|
var graphicAPI = isWebGL2 ? "#define GRAPHICS_API_WEBGL2" : "#define GRAPHICS_API_WEBGL1";
|
|
@@ -4295,24 +4404,17 @@ var ShaderFactory = /*#__PURE__*/ function() {
|
|
|
4295
4404
|
vertexSource = ShaderFactory.convertTo300(vertexSource);
|
|
4296
4405
|
fragmentSource = ShaderFactory.convertTo300(fragmentSource, true);
|
|
4297
4406
|
}
|
|
4298
|
-
shaderProgram = new ShaderProgram(engine, vertexSource, fragmentSource);
|
|
4299
|
-
shaderProgramPool.cache(shaderProgram);
|
|
4407
|
+
var shaderProgram = new ShaderProgram(engine, vertexSource, fragmentSource);
|
|
4300
4408
|
return shaderProgram;
|
|
4301
4409
|
};
|
|
4302
|
-
/**
|
|
4303
|
-
* @internal
|
|
4304
|
-
*/ _proto._destroy = function _destroy() {
|
|
4305
|
-
var shaderProgramPools = this._shaderProgramPools;
|
|
4306
|
-
for(var i = 0, n = shaderProgramPools.length; i < n; i++){
|
|
4307
|
-
shaderProgramPools[i]._destroy();
|
|
4308
|
-
}
|
|
4309
|
-
shaderProgramPools.length = 0;
|
|
4310
|
-
};
|
|
4311
4410
|
return ShaderPass;
|
|
4312
4411
|
}(ShaderPart);
|
|
4313
4412
|
(function() {
|
|
4314
4413
|
ShaderPass._shaderPassCounter = 0;
|
|
4315
4414
|
})();
|
|
4415
|
+
(function() {
|
|
4416
|
+
/** @internal */ ShaderPass._shaderRootPath = "shaders://root/";
|
|
4417
|
+
})();
|
|
4316
4418
|
|
|
4317
4419
|
/**
|
|
4318
4420
|
* Sub shader.
|
|
@@ -4949,6 +5051,18 @@ __decorate([
|
|
|
4949
5051
|
}
|
|
4950
5052
|
var _proto = Shader.prototype;
|
|
4951
5053
|
/**
|
|
5054
|
+
* @internal
|
|
5055
|
+
* path should follow the specifications of [URL.origin](https://developer.mozilla.org/en-US/docs/Web/API/URL/origin), like: `shaders://root/`
|
|
5056
|
+
*/ _proto._registerPath = function _registerPath(path) {
|
|
5057
|
+
for(var _iterator = _create_for_of_iterator_helper_loose(this._subShaders), _step; !(_step = _iterator()).done;){
|
|
5058
|
+
var subShader = _step.value;
|
|
5059
|
+
for(var _iterator1 = _create_for_of_iterator_helper_loose(subShader.passes), _step1; !(_step1 = _iterator1()).done;){
|
|
5060
|
+
var shaderPass = _step1.value;
|
|
5061
|
+
shaderPass._path = path;
|
|
5062
|
+
}
|
|
5063
|
+
}
|
|
5064
|
+
};
|
|
5065
|
+
/**
|
|
4952
5066
|
* Compile shader variant by macro name list.
|
|
4953
5067
|
*
|
|
4954
5068
|
* @remarks
|
|
@@ -5011,45 +5125,44 @@ __decorate([
|
|
|
5011
5125
|
if (!Shader._shaderLab) {
|
|
5012
5126
|
throw "ShaderLab has not been set up yet.";
|
|
5013
5127
|
}
|
|
5014
|
-
var
|
|
5015
|
-
if (shaderMap[
|
|
5016
|
-
console.error('Shader named "' +
|
|
5128
|
+
var shaderContent = Shader._shaderLab._parseShaderContent(nameOrShaderSource);
|
|
5129
|
+
if (shaderMap[shaderContent.name]) {
|
|
5130
|
+
console.error('Shader named "' + shaderContent.name + '" already exists.');
|
|
5017
5131
|
return;
|
|
5018
5132
|
}
|
|
5019
|
-
var subShaderList =
|
|
5020
|
-
var passList =
|
|
5021
|
-
if (
|
|
5133
|
+
var subShaderList = shaderContent.subShaders.map(function(subShaderContent) {
|
|
5134
|
+
var passList = subShaderContent.passes.map(function(passInfo) {
|
|
5135
|
+
if (passInfo.isUsePass) {
|
|
5022
5136
|
var _Shader_find_subShaders_find, _Shader_find;
|
|
5023
5137
|
// Use pass reference
|
|
5024
|
-
var paths = passInfo.split("/");
|
|
5138
|
+
var paths = passInfo.name.split("/");
|
|
5025
5139
|
return (_Shader_find = Shader.find(paths[0])) == null ? void 0 : (_Shader_find_subShaders_find = _Shader_find.subShaders.find(function(subShader) {
|
|
5026
5140
|
return subShader.name === paths[1];
|
|
5027
5141
|
})) == null ? void 0 : _Shader_find_subShaders_find.passes.find(function(pass) {
|
|
5028
5142
|
return pass.name === paths[2];
|
|
5029
5143
|
});
|
|
5030
5144
|
}
|
|
5031
|
-
var
|
|
5145
|
+
var shaderPassContent = new ShaderPass(passInfo.name, passInfo.contents, passInfo.vertexEntry, passInfo.fragmentEntry, passInfo.tags);
|
|
5032
5146
|
var renderStates = passInfo.renderStates;
|
|
5033
5147
|
var renderState = new RenderState();
|
|
5034
|
-
|
|
5148
|
+
shaderPassContent._renderState = renderState;
|
|
5035
5149
|
// Parse const render state
|
|
5036
|
-
var
|
|
5037
|
-
for(var k in
|
|
5038
|
-
Shader._applyConstRenderStates(renderState, parseInt(k),
|
|
5150
|
+
var constantMap = renderStates.constantMap, variableMap = renderStates.variableMap;
|
|
5151
|
+
for(var k in constantMap){
|
|
5152
|
+
Shader._applyConstRenderStates(renderState, parseInt(k), constantMap[k]);
|
|
5039
5153
|
}
|
|
5040
5154
|
// Parse variable render state
|
|
5041
|
-
var variableRenderStateInfo = renderStates[1];
|
|
5042
5155
|
var renderStateDataMap = {};
|
|
5043
|
-
for(var k1 in
|
|
5044
|
-
renderStateDataMap[k1] = ShaderProperty.getByName(
|
|
5156
|
+
for(var k1 in variableMap){
|
|
5157
|
+
renderStateDataMap[k1] = ShaderProperty.getByName(variableMap[k1]);
|
|
5045
5158
|
}
|
|
5046
|
-
|
|
5047
|
-
return
|
|
5159
|
+
shaderPassContent._renderStateDataMap = renderStateDataMap;
|
|
5160
|
+
return shaderPassContent;
|
|
5048
5161
|
});
|
|
5049
|
-
return new SubShader(
|
|
5162
|
+
return new SubShader(subShaderContent.name, passList, subShaderContent.tags);
|
|
5050
5163
|
});
|
|
5051
|
-
shader = new Shader(
|
|
5052
|
-
shaderMap[
|
|
5164
|
+
shader = new Shader(shaderContent.name, subShaderList);
|
|
5165
|
+
shaderMap[shaderContent.name] = shader;
|
|
5053
5166
|
return shader;
|
|
5054
5167
|
} else {
|
|
5055
5168
|
if (shaderMap[nameOrShaderSource]) {
|
|
@@ -8139,6 +8252,14 @@ var /**
|
|
|
8139
8252
|
MSAASamples[MSAASamples[/** Multi-sample anti-aliasing with 8 samples. */ "EightX"] = 8] = "EightX";
|
|
8140
8253
|
})(exports.MSAASamples || (exports.MSAASamples = {}));
|
|
8141
8254
|
|
|
8255
|
+
/**
|
|
8256
|
+
* The strategy to use when a shader replacement fails.
|
|
8257
|
+
*/ exports.ReplacementFailureStrategy = void 0;
|
|
8258
|
+
(function(ReplacementFailureStrategy) {
|
|
8259
|
+
ReplacementFailureStrategy[ReplacementFailureStrategy[/** Keep the original shader. */ "KeepOriginalShader"] = 0] = "KeepOriginalShader";
|
|
8260
|
+
ReplacementFailureStrategy[ReplacementFailureStrategy[/** Do not render. */ "DoNotRender"] = 1] = "DoNotRender";
|
|
8261
|
+
})(exports.ReplacementFailureStrategy || (exports.ReplacementFailureStrategy = {}));
|
|
8262
|
+
|
|
8142
8263
|
var _Camera;
|
|
8143
8264
|
var MathTemp = function MathTemp() {
|
|
8144
8265
|
};
|
|
@@ -8188,6 +8309,7 @@ exports.Camera = (_Camera = /*#__PURE__*/ function(Component1) {
|
|
|
8188
8309
|
/** @internal */ _this._virtualCamera = new VirtualCamera();
|
|
8189
8310
|
/** @internal */ _this._replacementShader = null;
|
|
8190
8311
|
/** @internal */ _this._replacementSubShaderTag = null;
|
|
8312
|
+
/** @internal */ _this._replacementFailureStrategy = null;
|
|
8191
8313
|
/** @internal */ _this._cameraIndex = -1;
|
|
8192
8314
|
_this._priority = 0;
|
|
8193
8315
|
_this._shaderData = new ShaderData(ShaderDataGroup.Camera);
|
|
@@ -8367,6 +8489,7 @@ exports.Camera = (_Camera = /*#__PURE__*/ function(Component1) {
|
|
|
8367
8489
|
context.virtualCamera = virtualCamera;
|
|
8368
8490
|
context.replacementShader = this._replacementShader;
|
|
8369
8491
|
context.replacementTag = this._replacementSubShaderTag;
|
|
8492
|
+
context.replacementFailureStrategy = this._replacementFailureStrategy;
|
|
8370
8493
|
// compute cull frustum.
|
|
8371
8494
|
if (this.enableFrustumCulling && this._frustumChangeFlag.flag) {
|
|
8372
8495
|
this._frustum.calculateFromMatrix(virtualCamera.viewProjectionMatrix);
|
|
@@ -8386,15 +8509,18 @@ exports.Camera = (_Camera = /*#__PURE__*/ function(Component1) {
|
|
|
8386
8509
|
this._renderPipeline.render(context, cubeFace, mipLevel, clearMask);
|
|
8387
8510
|
this._engine._renderCount++;
|
|
8388
8511
|
};
|
|
8389
|
-
_proto.setReplacementShader = function setReplacementShader(shader, replacementTag) {
|
|
8512
|
+
_proto.setReplacementShader = function setReplacementShader(shader, replacementTag, failureStrategy) {
|
|
8513
|
+
if (failureStrategy === void 0) failureStrategy = exports.ReplacementFailureStrategy.KeepOriginalShader;
|
|
8390
8514
|
this._replacementShader = shader;
|
|
8391
8515
|
this._replacementSubShaderTag = typeof replacementTag === "string" ? ShaderTagKey.getByName(replacementTag) : replacementTag;
|
|
8516
|
+
this._replacementFailureStrategy = failureStrategy;
|
|
8392
8517
|
};
|
|
8393
8518
|
/**
|
|
8394
8519
|
* Reset and clear the replacement shader.
|
|
8395
8520
|
*/ _proto.resetReplacementShader = function resetReplacementShader() {
|
|
8396
8521
|
this._replacementShader = null;
|
|
8397
8522
|
this._replacementSubShaderTag = null;
|
|
8523
|
+
this._replacementFailureStrategy = null;
|
|
8398
8524
|
};
|
|
8399
8525
|
/**
|
|
8400
8526
|
* @inheritdoc
|
|
@@ -8508,7 +8634,7 @@ exports.Camera = (_Camera = /*#__PURE__*/ function(Component1) {
|
|
|
8508
8634
|
this._checkMainCanvasAntialiasWaste();
|
|
8509
8635
|
};
|
|
8510
8636
|
_proto._checkMainCanvasAntialiasWaste = function _checkMainCanvasAntialiasWaste() {
|
|
8511
|
-
if (this.independentCanvasEnabled && miniprogram.Vector4.equals(this._viewport, PipelineUtils.defaultViewport)) {
|
|
8637
|
+
if (this._phasedActiveInScene && this.independentCanvasEnabled && miniprogram.Vector4.equals(this._viewport, PipelineUtils.defaultViewport)) {
|
|
8512
8638
|
Logger.warn("Camera use independent canvas and viewport cover the whole screen, it is recommended to disable antialias, depth and stencil to save memory when create engine.");
|
|
8513
8639
|
}
|
|
8514
8640
|
};
|
|
@@ -10202,6 +10328,7 @@ var /**
|
|
|
10202
10328
|
break;
|
|
10203
10329
|
}
|
|
10204
10330
|
}
|
|
10331
|
+
context.replacementFailureStrategy === exports.ReplacementFailureStrategy.KeepOriginalShader && this.pushRenderElementByType(renderElement, subRenderElement, materialSubShader.passes, renderStates);
|
|
10205
10332
|
} else {
|
|
10206
10333
|
this.pushRenderElementByType(renderElement, subRenderElement, replacementSubShaders[0].passes, renderStates);
|
|
10207
10334
|
}
|
|
@@ -23346,7 +23473,7 @@ ShaderPool.init();
|
|
|
23346
23473
|
*/ _proto._initialize = function _initialize(configuration) {
|
|
23347
23474
|
var _this = this;
|
|
23348
23475
|
var shaderLab = configuration.shaderLab, physics = configuration.physics;
|
|
23349
|
-
if (shaderLab) {
|
|
23476
|
+
if (shaderLab && !Shader._shaderLab) {
|
|
23350
23477
|
Shader._shaderLab = shaderLab;
|
|
23351
23478
|
}
|
|
23352
23479
|
var initializePromises = new Array();
|
|
@@ -24353,9 +24480,9 @@ ShaderPool.init();
|
|
|
24353
24480
|
/** Shadow bias.*/ _this.shadowBias = 1;
|
|
24354
24481
|
/** Shadow mapping normal-based bias. */ _this.shadowNormalBias = 1;
|
|
24355
24482
|
/** Near plane value to use for shadow frustums. */ _this.shadowNearPlane = 0.1;
|
|
24356
|
-
/** Shadow intensity, the larger the value, the clearer and darker the shadow. */ _this.shadowStrength = 1.0;
|
|
24357
24483
|
/** @internal */ _this._lightIndex = -1;
|
|
24358
24484
|
/** @internal */ _this._lightColor = new miniprogram.Color();
|
|
24485
|
+
_this._shadowStrength = 1.0;
|
|
24359
24486
|
_this._color = new miniprogram.Color(1, 1, 1, 1);
|
|
24360
24487
|
return _this;
|
|
24361
24488
|
}
|
|
@@ -24371,6 +24498,15 @@ ShaderPool.init();
|
|
|
24371
24498
|
return this._lightColor;
|
|
24372
24499
|
};
|
|
24373
24500
|
_create_class(Light, [
|
|
24501
|
+
{
|
|
24502
|
+
key: "shadowStrength",
|
|
24503
|
+
get: /** Shadow intensity, the larger the value, the clearer and darker the shadow, range [0,1]. */ function get() {
|
|
24504
|
+
return this._shadowStrength;
|
|
24505
|
+
},
|
|
24506
|
+
set: function set(value) {
|
|
24507
|
+
this._shadowStrength = miniprogram.MathUtil.clamp(value, 0, 1);
|
|
24508
|
+
}
|
|
24509
|
+
},
|
|
24374
24510
|
{
|
|
24375
24511
|
key: "color",
|
|
24376
24512
|
get: /**
|
|
@@ -25086,7 +25222,7 @@ var BloomEffect = /*#__PURE__*/ function() {
|
|
|
25086
25222
|
return this._scatter;
|
|
25087
25223
|
},
|
|
25088
25224
|
set: function set(value) {
|
|
25089
|
-
value =
|
|
25225
|
+
value = miniprogram.MathUtil.clamp(value, 0, 1);
|
|
25090
25226
|
if (value !== this._scatter) {
|
|
25091
25227
|
this._scatter = value;
|
|
25092
25228
|
var params = this._bloomMaterial.shaderData.getVector4(BloomEffect._bloomParams);
|
|
@@ -25285,6 +25421,9 @@ var TonemappingEffect = /*#__PURE__*/ function() {
|
|
|
25285
25421
|
*/ var _PostProcessManager = /*#__PURE__*/ function() {
|
|
25286
25422
|
function _PostProcessManager(scene) {
|
|
25287
25423
|
this.scene = scene;
|
|
25424
|
+
this./**
|
|
25425
|
+
* Whether the post process manager is active.
|
|
25426
|
+
*/ isActive = true;
|
|
25288
25427
|
var uberShader = Shader.find(_PostProcessManager.UBER_SHADER_NAME);
|
|
25289
25428
|
var uberMaterial = new Material(scene.engine, uberShader);
|
|
25290
25429
|
var depthState = uberMaterial.renderState.depthState;
|
|
@@ -25318,7 +25457,7 @@ var TonemappingEffect = /*#__PURE__*/ function() {
|
|
|
25318
25457
|
get: /**
|
|
25319
25458
|
* Whether has active post process effect.
|
|
25320
25459
|
*/ function get() {
|
|
25321
|
-
return this._bloomEffect.enabled || this._tonemappingEffect.enabled;
|
|
25460
|
+
return this.isActive && (this._bloomEffect.enabled || this._tonemappingEffect.enabled);
|
|
25322
25461
|
}
|
|
25323
25462
|
}
|
|
25324
25463
|
]);
|