@luma.gl/shadertools 9.1.0-alpha.14 → 9.1.0-alpha.15
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/dist.dev.js +97 -76
- package/dist/dist.min.js +49 -33
- package/dist/index.cjs +95 -74
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +39 -39
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -21
- package/dist/lib/shader-module/shader-pass.d.ts +13 -6
- package/dist/lib/shader-module/shader-pass.d.ts.map +1 -1
- package/dist/passes/postprocessing/fxaa/fxaa.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/brightnesscontrast.d.ts +40 -0
- package/dist/passes/postprocessing/image-adjust-filters/brightnesscontrast.d.ts.map +1 -0
- package/dist/{modules → passes}/postprocessing/image-adjust-filters/brightnesscontrast.js +22 -3
- package/dist/passes/postprocessing/image-adjust-filters/denoise.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/huesaturation.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/noise.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/sepia.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/vibrance.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-adjust-filters/vignette.d.ts.map +1 -0
- package/dist/{modules → passes}/postprocessing/image-blur-filters/tiltshift.d.ts +3 -3
- package/dist/passes/postprocessing/image-blur-filters/tiltshift.d.ts.map +1 -0
- package/dist/{modules → passes}/postprocessing/image-blur-filters/tiltshift.js +4 -4
- package/dist/{modules → passes}/postprocessing/image-blur-filters/triangleblur.d.ts +2 -2
- package/dist/passes/postprocessing/image-blur-filters/triangleblur.d.ts.map +1 -0
- package/dist/{modules → passes}/postprocessing/image-blur-filters/triangleblur.js +1 -1
- package/dist/passes/postprocessing/image-blur-filters/zoomblur.d.ts.map +1 -0
- package/dist/{modules → passes}/postprocessing/image-blur-filters/zoomblur.js +1 -1
- package/dist/passes/postprocessing/image-fun-filters/colorhalftone.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-fun-filters/dotscreen.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-fun-filters/edgework.d.ts.map +1 -0
- package/dist/{modules → passes}/postprocessing/image-fun-filters/edgework.js +1 -1
- package/dist/passes/postprocessing/image-fun-filters/hexagonalpixelate.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-fun-filters/ink.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-fun-filters/magnify.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-warp-filters/bulgepinch.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-warp-filters/swirl.d.ts.map +1 -0
- package/dist/passes/postprocessing/image-warp-filters/warp.d.ts.map +1 -0
- package/package.json +3 -3
- package/src/index.ts +40 -40
- package/src/lib/shader-module/shader-pass.ts +17 -5
- package/src/{modules → passes}/postprocessing/image-adjust-filters/brightnesscontrast.ts +24 -3
- package/src/{modules → passes}/postprocessing/image-blur-filters/tiltshift.ts +4 -4
- package/src/{modules → passes}/postprocessing/image-blur-filters/triangleblur.ts +1 -1
- package/src/{modules → passes}/postprocessing/image-blur-filters/zoomblur.ts +1 -1
- package/src/{modules → passes}/postprocessing/image-fun-filters/edgework.ts +1 -1
- package/dist/modules/postprocessing/fxaa/fxaa.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-adjust-filters/brightnesscontrast.d.ts +0 -39
- package/dist/modules/postprocessing/image-adjust-filters/brightnesscontrast.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-adjust-filters/denoise.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-adjust-filters/huesaturation.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-adjust-filters/noise.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-adjust-filters/sepia.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-adjust-filters/vibrance.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-adjust-filters/vignette.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-blur-filters/tiltshift.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-blur-filters/triangleblur.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-blur-filters/zoomblur.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-fun-filters/colorhalftone.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-fun-filters/dotscreen.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-fun-filters/edgework.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-fun-filters/hexagonalpixelate.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-fun-filters/ink.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-fun-filters/magnify.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-warp-filters/bulgepinch.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-warp-filters/swirl.d.ts.map +0 -1
- package/dist/modules/postprocessing/image-warp-filters/warp.d.ts.map +0 -1
- /package/dist/{modules → passes}/postprocessing/fxaa/fxaa.d.ts +0 -0
- /package/dist/{modules → passes}/postprocessing/fxaa/fxaa.js +0 -0
- /package/dist/{modules → passes}/postprocessing/image-adjust-filters/denoise.d.ts +0 -0
- /package/dist/{modules → passes}/postprocessing/image-adjust-filters/denoise.js +0 -0
- /package/dist/{modules → passes}/postprocessing/image-adjust-filters/huesaturation.d.ts +0 -0
- /package/dist/{modules → passes}/postprocessing/image-adjust-filters/huesaturation.js +0 -0
- /package/dist/{modules → passes}/postprocessing/image-adjust-filters/noise.d.ts +0 -0
- /package/dist/{modules → passes}/postprocessing/image-adjust-filters/noise.js +0 -0
- /package/dist/{modules → passes}/postprocessing/image-adjust-filters/sepia.d.ts +0 -0
- /package/dist/{modules → passes}/postprocessing/image-adjust-filters/sepia.js +0 -0
- /package/dist/{modules → passes}/postprocessing/image-adjust-filters/vibrance.d.ts +0 -0
- /package/dist/{modules → passes}/postprocessing/image-adjust-filters/vibrance.js +0 -0
- /package/dist/{modules → passes}/postprocessing/image-adjust-filters/vignette.d.ts +0 -0
- /package/dist/{modules → passes}/postprocessing/image-adjust-filters/vignette.js +0 -0
- /package/dist/{modules → passes}/postprocessing/image-blur-filters/zoomblur.d.ts +0 -0
- /package/dist/{modules → passes}/postprocessing/image-fun-filters/colorhalftone.d.ts +0 -0
- /package/dist/{modules → passes}/postprocessing/image-fun-filters/colorhalftone.js +0 -0
- /package/dist/{modules → passes}/postprocessing/image-fun-filters/dotscreen.d.ts +0 -0
- /package/dist/{modules → passes}/postprocessing/image-fun-filters/dotscreen.js +0 -0
- /package/dist/{modules → passes}/postprocessing/image-fun-filters/edgework.d.ts +0 -0
- /package/dist/{modules → passes}/postprocessing/image-fun-filters/hexagonalpixelate.d.ts +0 -0
- /package/dist/{modules → passes}/postprocessing/image-fun-filters/hexagonalpixelate.js +0 -0
- /package/dist/{modules → passes}/postprocessing/image-fun-filters/ink.d.ts +0 -0
- /package/dist/{modules → passes}/postprocessing/image-fun-filters/ink.js +0 -0
- /package/dist/{modules → passes}/postprocessing/image-fun-filters/magnify.d.ts +0 -0
- /package/dist/{modules → passes}/postprocessing/image-fun-filters/magnify.js +0 -0
- /package/dist/{modules → passes}/postprocessing/image-warp-filters/bulgepinch.d.ts +0 -0
- /package/dist/{modules → passes}/postprocessing/image-warp-filters/bulgepinch.js +0 -0
- /package/dist/{modules → passes}/postprocessing/image-warp-filters/swirl.d.ts +0 -0
- /package/dist/{modules → passes}/postprocessing/image-warp-filters/swirl.js +0 -0
- /package/dist/{modules → passes}/postprocessing/image-warp-filters/warp.d.ts +0 -0
- /package/dist/{modules → passes}/postprocessing/image-warp-filters/warp.js +0 -0
- /package/src/{modules → passes}/postprocessing/fxaa/fxaa.ts +0 -0
- /package/src/{modules → passes}/postprocessing/image-adjust-filters/denoise.ts +0 -0
- /package/src/{modules → passes}/postprocessing/image-adjust-filters/huesaturation.ts +0 -0
- /package/src/{modules → passes}/postprocessing/image-adjust-filters/noise.ts +0 -0
- /package/src/{modules → passes}/postprocessing/image-adjust-filters/sepia.ts +0 -0
- /package/src/{modules → passes}/postprocessing/image-adjust-filters/vibrance.ts +0 -0
- /package/src/{modules → passes}/postprocessing/image-adjust-filters/vignette.ts +0 -0
- /package/src/{modules → passes}/postprocessing/image-fun-filters/colorhalftone.ts +0 -0
- /package/src/{modules → passes}/postprocessing/image-fun-filters/dotscreen.ts +0 -0
- /package/src/{modules → passes}/postprocessing/image-fun-filters/hexagonalpixelate.ts +0 -0
- /package/src/{modules → passes}/postprocessing/image-fun-filters/ink.ts +0 -0
- /package/src/{modules → passes}/postprocessing/image-fun-filters/magnify.ts +0 -0
- /package/src/{modules → passes}/postprocessing/image-warp-filters/bulgepinch.ts +0 -0
- /package/src/{modules → passes}/postprocessing/image-warp-filters/swirl.ts +0 -0
- /package/src/{modules → passes}/postprocessing/image-warp-filters/warp.ts +0 -0
package/dist/dist.dev.js
CHANGED
|
@@ -260,7 +260,7 @@ var __exports__ = (() => {
|
|
|
260
260
|
throw new Error(type);
|
|
261
261
|
}
|
|
262
262
|
}
|
|
263
|
-
function injectShader(
|
|
263
|
+
function injectShader(source2, stage, inject, injectStandardStubs = false) {
|
|
264
264
|
const isVertex = stage === "vertex";
|
|
265
265
|
for (const key in inject) {
|
|
266
266
|
const fragmentData = inject[key];
|
|
@@ -274,43 +274,43 @@ var __exports__ = (() => {
|
|
|
274
274
|
switch (key) {
|
|
275
275
|
case "vs:#decl":
|
|
276
276
|
if (isVertex) {
|
|
277
|
-
|
|
277
|
+
source2 = source2.replace(DECLARATION_INJECT_MARKER, fragmentString);
|
|
278
278
|
}
|
|
279
279
|
break;
|
|
280
280
|
case "vs:#main-start":
|
|
281
281
|
if (isVertex) {
|
|
282
|
-
|
|
282
|
+
source2 = source2.replace(REGEX_START_OF_MAIN, (match) => match + fragmentString);
|
|
283
283
|
}
|
|
284
284
|
break;
|
|
285
285
|
case "vs:#main-end":
|
|
286
286
|
if (isVertex) {
|
|
287
|
-
|
|
287
|
+
source2 = source2.replace(REGEX_END_OF_MAIN, (match) => fragmentString + match);
|
|
288
288
|
}
|
|
289
289
|
break;
|
|
290
290
|
case "fs:#decl":
|
|
291
291
|
if (!isVertex) {
|
|
292
|
-
|
|
292
|
+
source2 = source2.replace(DECLARATION_INJECT_MARKER, fragmentString);
|
|
293
293
|
}
|
|
294
294
|
break;
|
|
295
295
|
case "fs:#main-start":
|
|
296
296
|
if (!isVertex) {
|
|
297
|
-
|
|
297
|
+
source2 = source2.replace(REGEX_START_OF_MAIN, (match) => match + fragmentString);
|
|
298
298
|
}
|
|
299
299
|
break;
|
|
300
300
|
case "fs:#main-end":
|
|
301
301
|
if (!isVertex) {
|
|
302
|
-
|
|
302
|
+
source2 = source2.replace(REGEX_END_OF_MAIN, (match) => fragmentString + match);
|
|
303
303
|
}
|
|
304
304
|
break;
|
|
305
305
|
default:
|
|
306
|
-
|
|
306
|
+
source2 = source2.replace(key, (match) => match + fragmentString);
|
|
307
307
|
}
|
|
308
308
|
}
|
|
309
|
-
|
|
309
|
+
source2 = source2.replace(DECLARATION_INJECT_MARKER, "");
|
|
310
310
|
if (injectStandardStubs) {
|
|
311
|
-
|
|
311
|
+
source2 = source2.replace(/\}\s*$/, (match) => match + MODULE_INJECTORS[stage]);
|
|
312
312
|
}
|
|
313
|
-
return
|
|
313
|
+
return source2;
|
|
314
314
|
}
|
|
315
315
|
function combineInjects(injects) {
|
|
316
316
|
const result = {};
|
|
@@ -476,18 +476,18 @@ ${inject[key]}` : inject[key];
|
|
|
476
476
|
}
|
|
477
477
|
|
|
478
478
|
// src/lib/shader-transpiler/transpile-glsl-shader.ts
|
|
479
|
-
function transpileGLSLShader(
|
|
480
|
-
const sourceGLSLVersion = Number(
|
|
479
|
+
function transpileGLSLShader(source2, stage) {
|
|
480
|
+
const sourceGLSLVersion = Number(source2.match(/^#version[ \t]+(\d+)/m)?.[1] || 100);
|
|
481
481
|
if (sourceGLSLVersion !== 300) {
|
|
482
482
|
throw new Error("luma.gl v9 only supports GLSL 3.00 shader sources");
|
|
483
483
|
}
|
|
484
484
|
switch (stage) {
|
|
485
485
|
case "vertex":
|
|
486
|
-
|
|
487
|
-
return
|
|
486
|
+
source2 = convertShader(source2, ES300_VERTEX_REPLACEMENTS);
|
|
487
|
+
return source2;
|
|
488
488
|
case "fragment":
|
|
489
|
-
|
|
490
|
-
return
|
|
489
|
+
source2 = convertShader(source2, ES300_FRAGMENT_REPLACEMENTS);
|
|
490
|
+
return source2;
|
|
491
491
|
default:
|
|
492
492
|
throw new Error(stage);
|
|
493
493
|
}
|
|
@@ -511,11 +511,11 @@ ${inject[key]}` : inject[key];
|
|
|
511
511
|
// `varying` keyword replaced with `in`
|
|
512
512
|
[makeVariableTextRegExp("varying"), "in $1"]
|
|
513
513
|
];
|
|
514
|
-
function convertShader(
|
|
514
|
+
function convertShader(source2, replacements) {
|
|
515
515
|
for (const [pattern, replacement] of replacements) {
|
|
516
|
-
|
|
516
|
+
source2 = source2.replace(pattern, replacement);
|
|
517
517
|
}
|
|
518
|
-
return
|
|
518
|
+
return source2;
|
|
519
519
|
}
|
|
520
520
|
function makeVariableTextRegExp(qualifier) {
|
|
521
521
|
return new RegExp(`\\b${qualifier}[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)`, "g");
|
|
@@ -577,11 +577,11 @@ ${inject[key]}` : inject[key];
|
|
|
577
577
|
}
|
|
578
578
|
|
|
579
579
|
// src/lib/glsl-utils/get-shader-info.ts
|
|
580
|
-
function getShaderInfo(
|
|
580
|
+
function getShaderInfo(source2, defaultName) {
|
|
581
581
|
return {
|
|
582
|
-
name: getShaderName(
|
|
582
|
+
name: getShaderName(source2, defaultName),
|
|
583
583
|
language: "glsl",
|
|
584
|
-
version: getShaderVersion(
|
|
584
|
+
version: getShaderVersion(source2)
|
|
585
585
|
};
|
|
586
586
|
}
|
|
587
587
|
function getShaderName(shader, defaultName = "unnamed") {
|
|
@@ -589,9 +589,9 @@ ${inject[key]}` : inject[key];
|
|
|
589
589
|
const match = SHADER_NAME_REGEXP.exec(shader);
|
|
590
590
|
return match ? match[1] : defaultName;
|
|
591
591
|
}
|
|
592
|
-
function getShaderVersion(
|
|
592
|
+
function getShaderVersion(source2) {
|
|
593
593
|
let version = 100;
|
|
594
|
-
const words =
|
|
594
|
+
const words = source2.match(/[^\s]+/g);
|
|
595
595
|
if (words && words.length >= 2 && words[0] === "#version") {
|
|
596
596
|
const parsedVersion = parseInt(words[1], 10);
|
|
597
597
|
if (Number.isFinite(parsedVersion)) {
|
|
@@ -649,7 +649,7 @@ ${DECLARATION_INJECT_MARKER}
|
|
|
649
649
|
function assembleShaderWGSL(platformInfo, options) {
|
|
650
650
|
const {
|
|
651
651
|
// id,
|
|
652
|
-
source,
|
|
652
|
+
source: source2,
|
|
653
653
|
stage,
|
|
654
654
|
modules,
|
|
655
655
|
// defines = {},
|
|
@@ -657,8 +657,8 @@ ${DECLARATION_INJECT_MARKER}
|
|
|
657
657
|
inject = {},
|
|
658
658
|
log: log2
|
|
659
659
|
} = options;
|
|
660
|
-
assert(typeof
|
|
661
|
-
const coreSource =
|
|
660
|
+
assert(typeof source2 === "string", "shader source must be a string");
|
|
661
|
+
const coreSource = source2;
|
|
662
662
|
let assembledSource = "";
|
|
663
663
|
const hookFunctionMap = normalizeShaderHooks(hookFunctions);
|
|
664
664
|
const hookInjections = {};
|
|
@@ -714,7 +714,7 @@ ${DECLARATION_INJECT_MARKER}
|
|
|
714
714
|
function assembleShaderGLSL(platformInfo, options) {
|
|
715
715
|
const {
|
|
716
716
|
id,
|
|
717
|
-
source,
|
|
717
|
+
source: source2,
|
|
718
718
|
stage,
|
|
719
719
|
language = "glsl",
|
|
720
720
|
modules,
|
|
@@ -724,11 +724,11 @@ ${DECLARATION_INJECT_MARKER}
|
|
|
724
724
|
prologue = true,
|
|
725
725
|
log: log2
|
|
726
726
|
} = options;
|
|
727
|
-
assert(typeof
|
|
728
|
-
const sourceVersion = language === "glsl" ? getShaderInfo(
|
|
727
|
+
assert(typeof source2 === "string", "shader source must be a string");
|
|
728
|
+
const sourceVersion = language === "glsl" ? getShaderInfo(source2).version : -1;
|
|
729
729
|
const targetVersion = platformInfo.shaderLanguageVersion;
|
|
730
730
|
const sourceVersionDirective = sourceVersion === 100 ? "#version 100" : "#version 300 es";
|
|
731
|
-
const sourceLines =
|
|
731
|
+
const sourceLines = source2.split("\n");
|
|
732
732
|
const coreSource = sourceLines.slice(1).join("\n");
|
|
733
733
|
const allDefines = {};
|
|
734
734
|
modules.forEach((module) => {
|
|
@@ -743,7 +743,7 @@ ${DECLARATION_INJECT_MARKER}
|
|
|
743
743
|
assembledSource = prologue ? `${sourceVersionDirective}
|
|
744
744
|
|
|
745
745
|
// ----- PROLOGUE -------------------------
|
|
746
|
-
${getShaderNameDefine({ id, source, stage })}
|
|
746
|
+
${getShaderNameDefine({ id, source: source2, stage })}
|
|
747
747
|
${`#define SHADER_TYPE_${stage.toUpperCase()}`}
|
|
748
748
|
|
|
749
749
|
${getPlatformShaderDefines(platformInfo)}
|
|
@@ -822,8 +822,8 @@ ${getApplicationDefines(allDefines)}
|
|
|
822
822
|
};
|
|
823
823
|
}
|
|
824
824
|
function getShaderNameDefine(options) {
|
|
825
|
-
const { id, source, stage } = options;
|
|
826
|
-
const injectShaderName = id &&
|
|
825
|
+
const { id, source: source2, stage } = options;
|
|
826
|
+
const injectShaderName = id && source2.indexOf("SHADER_NAME") === -1;
|
|
827
827
|
return injectShaderName ? `
|
|
828
828
|
#define SHADER_NAME ${id}_${stage}` : "";
|
|
829
829
|
}
|
|
@@ -857,23 +857,23 @@ ${getApplicationDefines(allDefines)}
|
|
|
857
857
|
throw new Error("Shader module must have a name");
|
|
858
858
|
}
|
|
859
859
|
const moduleName = module.name.toUpperCase().replace(/[^0-9a-z]/gi, "_");
|
|
860
|
-
let
|
|
860
|
+
let source2 = `// ----- MODULE ${module.name} ---------------
|
|
861
861
|
|
|
862
862
|
`;
|
|
863
863
|
if (stage !== "wgsl") {
|
|
864
|
-
|
|
864
|
+
source2 += `#define MODULE_${moduleName}
|
|
865
865
|
`;
|
|
866
866
|
}
|
|
867
|
-
|
|
867
|
+
source2 += `${moduleSource}
|
|
868
868
|
`;
|
|
869
|
-
return
|
|
869
|
+
return source2;
|
|
870
870
|
}
|
|
871
871
|
|
|
872
872
|
// src/lib/preprocessor/preprocessor.ts
|
|
873
873
|
var IFDEF_REGEXP = /^\s*\#\s*ifdef\s*([a-zA-Z_]+)\s*$/;
|
|
874
874
|
var ENDIF_REGEXP = /^\s*\#\s*endif\s*$/;
|
|
875
|
-
function preprocess(
|
|
876
|
-
const lines =
|
|
875
|
+
function preprocess(source2, options) {
|
|
876
|
+
const lines = source2.split("\n");
|
|
877
877
|
const output = [];
|
|
878
878
|
let conditional = true;
|
|
879
879
|
let currentDefine = null;
|
|
@@ -943,14 +943,14 @@ ${getApplicationDefines(allDefines)}
|
|
|
943
943
|
assembleWGSLShader(props) {
|
|
944
944
|
const modules = this._getModuleList(props.modules);
|
|
945
945
|
const hookFunctions = this._hookFunctions;
|
|
946
|
-
const { source, getUniforms: getUniforms9 } = assembleWGSLShader({
|
|
946
|
+
const { source: source2, getUniforms: getUniforms9 } = assembleWGSLShader({
|
|
947
947
|
...props,
|
|
948
948
|
// @ts-expect-error
|
|
949
949
|
source: props.source,
|
|
950
950
|
modules,
|
|
951
951
|
hookFunctions
|
|
952
952
|
});
|
|
953
|
-
const preprocessedSource = props.platformInfo.shaderLanguage === "wgsl" ? preprocess(
|
|
953
|
+
const preprocessedSource = props.platformInfo.shaderLanguage === "wgsl" ? preprocess(source2) : source2;
|
|
954
954
|
return { source: preprocessedSource, getUniforms: getUniforms9, modules };
|
|
955
955
|
}
|
|
956
956
|
/**
|
|
@@ -2510,12 +2510,12 @@ void main() {
|
|
|
2510
2510
|
}
|
|
2511
2511
|
};
|
|
2512
2512
|
var WgslScanner = class {
|
|
2513
|
-
constructor(
|
|
2513
|
+
constructor(source2) {
|
|
2514
2514
|
this._tokens = [];
|
|
2515
2515
|
this._start = 0;
|
|
2516
2516
|
this._current = 0;
|
|
2517
2517
|
this._line = 1;
|
|
2518
|
-
this._source =
|
|
2518
|
+
this._source = source2 !== null && source2 !== void 0 ? source2 : "";
|
|
2519
2519
|
}
|
|
2520
2520
|
/// Scan all tokens from the source.
|
|
2521
2521
|
scanTokens() {
|
|
@@ -4626,11 +4626,11 @@ void main() {
|
|
|
4626
4626
|
});
|
|
4627
4627
|
|
|
4628
4628
|
// src/lib/wgsl/get-shader-layout-wgsl.ts
|
|
4629
|
-
function getShaderLayoutFromWGSL(
|
|
4629
|
+
function getShaderLayoutFromWGSL(source2) {
|
|
4630
4630
|
const shaderLayout = { attributes: [], bindings: [] };
|
|
4631
4631
|
let parsedWGSL;
|
|
4632
4632
|
try {
|
|
4633
|
-
parsedWGSL = parseWGSL(
|
|
4633
|
+
parsedWGSL = parseWGSL(source2);
|
|
4634
4634
|
} catch (error) {
|
|
4635
4635
|
import_core.log.error(error.message)();
|
|
4636
4636
|
return shaderLayout;
|
|
@@ -4670,9 +4670,9 @@ void main() {
|
|
|
4670
4670
|
function getType(type) {
|
|
4671
4671
|
return type.format ? `${type.name}<${type.format.name}>` : type.name;
|
|
4672
4672
|
}
|
|
4673
|
-
function parseWGSL(
|
|
4673
|
+
function parseWGSL(source2) {
|
|
4674
4674
|
try {
|
|
4675
|
-
return new WgslReflect(
|
|
4675
|
+
return new WgslReflect(source2);
|
|
4676
4676
|
} catch (error) {
|
|
4677
4677
|
if (error instanceof Error) {
|
|
4678
4678
|
throw error;
|
|
@@ -8041,11 +8041,31 @@ vec4 pbr_filterColor(vec4 colorUnused)
|
|
|
8041
8041
|
}
|
|
8042
8042
|
};
|
|
8043
8043
|
|
|
8044
|
-
// src/
|
|
8044
|
+
// src/passes/postprocessing/image-adjust-filters/brightnesscontrast.ts
|
|
8045
|
+
var source = (
|
|
8046
|
+
/* wgsl */
|
|
8047
|
+
`struct brightnessContrastUniforms {
|
|
8048
|
+
float brightness;
|
|
8049
|
+
float contrast;
|
|
8050
|
+
};
|
|
8051
|
+
|
|
8052
|
+
// Binding 0:1 is reserved for shader passes
|
|
8053
|
+
@binding(1) @group(0) var<uniform> brightnessContrast : brightnessContrastUniforms;
|
|
8054
|
+
|
|
8055
|
+
fn brightnessContrast_filterColor(color: vec4<f32>, texSize: vec2<f32>, texCoords: vec2<f32>) -> vec4<f32> {
|
|
8056
|
+
color.rgb += brightnessContrast.brightness;
|
|
8057
|
+
if (brightnessContrast.contrast > 0.0) {
|
|
8058
|
+
color.rgb = (color.rgb - 0.5) / (1.0 - brightnessContrast.contrast) + 0.5;
|
|
8059
|
+
} else {
|
|
8060
|
+
color.rgb = (color.rgb - 0.5) * (1.0 + brightnessContrast.contrast) + 0.5;
|
|
8061
|
+
}
|
|
8062
|
+
return color;
|
|
8063
|
+
}
|
|
8064
|
+
`
|
|
8065
|
+
);
|
|
8045
8066
|
var fs4 = (
|
|
8046
8067
|
/* glsl */
|
|
8047
|
-
`
|
|
8048
|
-
uniform brightnessContrastUniforms {
|
|
8068
|
+
`uniform brightnessContrastUniforms {
|
|
8049
8069
|
float brightness;
|
|
8050
8070
|
float contrast;
|
|
8051
8071
|
} brightnessContrast;
|
|
@@ -8077,11 +8097,12 @@ vec4 brightnessContrast_filterColor(vec4 color, vec2 texSize, vec2 texCoords) {
|
|
|
8077
8097
|
brightness: { format: "f32", value: 0, min: -1, max: 1 },
|
|
8078
8098
|
contrast: { format: "f32", value: 0, min: -1, max: 1 }
|
|
8079
8099
|
},
|
|
8080
|
-
|
|
8081
|
-
|
|
8100
|
+
passes: [{ filter: true }],
|
|
8101
|
+
source,
|
|
8102
|
+
fs: fs4
|
|
8082
8103
|
};
|
|
8083
8104
|
|
|
8084
|
-
// src/
|
|
8105
|
+
// src/passes/postprocessing/image-adjust-filters/denoise.ts
|
|
8085
8106
|
var fs5 = (
|
|
8086
8107
|
/* glsl */
|
|
8087
8108
|
`uniform denoiseUniforms {
|
|
@@ -8123,7 +8144,7 @@ vec4 denoise_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
|
|
|
8123
8144
|
passes: [{ sampler: true }, { sampler: true }]
|
|
8124
8145
|
};
|
|
8125
8146
|
|
|
8126
|
-
// src/
|
|
8147
|
+
// src/passes/postprocessing/image-adjust-filters/huesaturation.ts
|
|
8127
8148
|
var fs6 = (
|
|
8128
8149
|
/* glsl */
|
|
8129
8150
|
`uniform hueSaturationUniforms {
|
|
@@ -8175,7 +8196,7 @@ vec4 hueSaturation_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
|
|
|
8175
8196
|
passes: [{ filter: true }]
|
|
8176
8197
|
};
|
|
8177
8198
|
|
|
8178
|
-
// src/
|
|
8199
|
+
// src/passes/postprocessing/image-adjust-filters/noise.ts
|
|
8179
8200
|
var fs7 = (
|
|
8180
8201
|
/* glsl */
|
|
8181
8202
|
`uniform noiseUniforms {
|
|
@@ -8213,7 +8234,7 @@ vec4 noise_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
|
|
|
8213
8234
|
passes: [{ filter: true }]
|
|
8214
8235
|
};
|
|
8215
8236
|
|
|
8216
|
-
// src/
|
|
8237
|
+
// src/passes/postprocessing/image-adjust-filters/sepia.ts
|
|
8217
8238
|
var fs8 = (
|
|
8218
8239
|
/* glsl */
|
|
8219
8240
|
`uniform sepiaUniforms {
|
|
@@ -8252,7 +8273,7 @@ vec4 sepia_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
|
|
|
8252
8273
|
passes: [{ filter: true }]
|
|
8253
8274
|
};
|
|
8254
8275
|
|
|
8255
|
-
// src/
|
|
8276
|
+
// src/passes/postprocessing/image-adjust-filters/vibrance.ts
|
|
8256
8277
|
var fs9 = (
|
|
8257
8278
|
/* glsl */
|
|
8258
8279
|
`uniform vibranceUniforms {
|
|
@@ -8283,7 +8304,7 @@ vec4 vibrance_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
|
|
|
8283
8304
|
passes: [{ filter: true }]
|
|
8284
8305
|
};
|
|
8285
8306
|
|
|
8286
|
-
// src/
|
|
8307
|
+
// src/passes/postprocessing/image-adjust-filters/vignette.ts
|
|
8287
8308
|
var fs10 = (
|
|
8288
8309
|
/* glsl */
|
|
8289
8310
|
`uniform vignetteUniforms {
|
|
@@ -8318,7 +8339,7 @@ vec4 vignette_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
|
|
|
8318
8339
|
fs: fs10
|
|
8319
8340
|
};
|
|
8320
8341
|
|
|
8321
|
-
// src/
|
|
8342
|
+
// src/passes/postprocessing/image-blur-filters/tiltshift.ts
|
|
8322
8343
|
var fs11 = (
|
|
8323
8344
|
/* glsl */
|
|
8324
8345
|
`uniform tiltShiftUniforms {
|
|
@@ -8383,16 +8404,16 @@ vec4 tiltShift_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
|
|
|
8383
8404
|
gradientRadius: { value: 200, min: 0, max: 400 },
|
|
8384
8405
|
start: { value: [0, 0] },
|
|
8385
8406
|
end: { value: [1, 1] },
|
|
8386
|
-
invert: { value:
|
|
8407
|
+
invert: { value: 0, private: true }
|
|
8387
8408
|
},
|
|
8388
8409
|
passes: [
|
|
8389
|
-
{ sampler: true, uniforms: { invert:
|
|
8390
|
-
{ sampler: true, uniforms: { invert:
|
|
8410
|
+
{ sampler: true, uniforms: { invert: 0 } },
|
|
8411
|
+
{ sampler: true, uniforms: { invert: 1 } }
|
|
8391
8412
|
],
|
|
8392
8413
|
fs: fs11
|
|
8393
8414
|
};
|
|
8394
8415
|
|
|
8395
|
-
// src/
|
|
8416
|
+
// src/passes/postprocessing/image-blur-filters/triangleblur.ts
|
|
8396
8417
|
var fs12 = (
|
|
8397
8418
|
/* glsl */
|
|
8398
8419
|
`uniform triangleBlurUniforms {
|
|
@@ -8450,7 +8471,7 @@ vec4 triangleBlur_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
|
|
|
8450
8471
|
]
|
|
8451
8472
|
};
|
|
8452
8473
|
|
|
8453
|
-
// src/
|
|
8474
|
+
// src/passes/postprocessing/image-blur-filters/zoomblur.ts
|
|
8454
8475
|
var fs13 = `
|
|
8455
8476
|
uniform zoomBlurUniforms {
|
|
8456
8477
|
vec2 center;
|
|
@@ -8502,7 +8523,7 @@ vec4 zoomBlur_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
|
|
|
8502
8523
|
passes: [{ sampler: true }]
|
|
8503
8524
|
};
|
|
8504
8525
|
|
|
8505
|
-
// src/
|
|
8526
|
+
// src/passes/postprocessing/image-fun-filters/colorhalftone.ts
|
|
8506
8527
|
var fs14 = (
|
|
8507
8528
|
/* glsl */
|
|
8508
8529
|
`uniform colorHalftoneUniforms {
|
|
@@ -8559,7 +8580,7 @@ vec4 colorHalftone_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
|
|
|
8559
8580
|
passes: [{ filter: true }]
|
|
8560
8581
|
};
|
|
8561
8582
|
|
|
8562
|
-
// src/
|
|
8583
|
+
// src/passes/postprocessing/image-fun-filters/dotscreen.ts
|
|
8563
8584
|
var fs15 = (
|
|
8564
8585
|
/* glsl */
|
|
8565
8586
|
`uniform dotScreenUniforms {
|
|
@@ -8604,7 +8625,7 @@ vec4 dotScreen_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
|
|
|
8604
8625
|
passes: [{ filter: true }]
|
|
8605
8626
|
};
|
|
8606
8627
|
|
|
8607
|
-
// src/
|
|
8628
|
+
// src/passes/postprocessing/image-fun-filters/edgework.ts
|
|
8608
8629
|
var fs16 = (
|
|
8609
8630
|
/* glsl */
|
|
8610
8631
|
`uniform edgeWorkUniforms {
|
|
@@ -8687,7 +8708,7 @@ vec4 edgeWork_sampleColor2(sampler2D source, vec2 texSize, vec2 texCoord) {
|
|
|
8687
8708
|
]
|
|
8688
8709
|
};
|
|
8689
8710
|
|
|
8690
|
-
// src/
|
|
8711
|
+
// src/passes/postprocessing/image-fun-filters/hexagonalpixelate.ts
|
|
8691
8712
|
var fs17 = (
|
|
8692
8713
|
/* glsl */
|
|
8693
8714
|
`uniform hexagonalPixelateUniforms {
|
|
@@ -8750,7 +8771,7 @@ vec4 hexagonalPixelate_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord
|
|
|
8750
8771
|
passes: [{ sampler: true }]
|
|
8751
8772
|
};
|
|
8752
8773
|
|
|
8753
|
-
// src/
|
|
8774
|
+
// src/passes/postprocessing/image-fun-filters/ink.ts
|
|
8754
8775
|
var fs18 = (
|
|
8755
8776
|
/* glsl */
|
|
8756
8777
|
`uniform inkUniforms {
|
|
@@ -8796,7 +8817,7 @@ vec4 ink_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
|
|
|
8796
8817
|
passes: [{ sampler: true }]
|
|
8797
8818
|
};
|
|
8798
8819
|
|
|
8799
|
-
// src/
|
|
8820
|
+
// src/passes/postprocessing/image-fun-filters/magnify.ts
|
|
8800
8821
|
var fs19 = (
|
|
8801
8822
|
/* glsl */
|
|
8802
8823
|
`uniform magnifyUniforms {
|
|
@@ -8842,7 +8863,7 @@ vec4 magnify_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
|
|
|
8842
8863
|
passes: [{ sampler: true }]
|
|
8843
8864
|
};
|
|
8844
8865
|
|
|
8845
|
-
// src/
|
|
8866
|
+
// src/passes/postprocessing/image-warp-filters/warp.ts
|
|
8846
8867
|
var fs20 = (
|
|
8847
8868
|
/* glsl */
|
|
8848
8869
|
`vec4 warp_sampleColor(sampler2D source, vec2 texSize, vec2 coord) {
|
|
@@ -8863,7 +8884,7 @@ vec4 magnify_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
|
|
|
8863
8884
|
fs: fs20
|
|
8864
8885
|
};
|
|
8865
8886
|
|
|
8866
|
-
// src/
|
|
8887
|
+
// src/passes/postprocessing/image-warp-filters/bulgepinch.ts
|
|
8867
8888
|
var fs21 = (
|
|
8868
8889
|
/* glsl */
|
|
8869
8890
|
`uniform bulgePinchUniforms {
|
|
@@ -8914,7 +8935,7 @@ vec4 bulgePinch_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
|
|
|
8914
8935
|
passes: [{ sampler: true }]
|
|
8915
8936
|
};
|
|
8916
8937
|
|
|
8917
|
-
// src/
|
|
8938
|
+
// src/passes/postprocessing/image-warp-filters/swirl.ts
|
|
8918
8939
|
var fs22 = (
|
|
8919
8940
|
/* glsl */
|
|
8920
8941
|
`uniform swirlUniforms {
|
|
@@ -8967,7 +8988,7 @@ vec4 swirl_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
|
|
|
8967
8988
|
passes: [{ sampler: true }]
|
|
8968
8989
|
};
|
|
8969
8990
|
|
|
8970
|
-
// src/
|
|
8991
|
+
// src/passes/postprocessing/fxaa/fxaa.ts
|
|
8971
8992
|
var fs23 = `
|
|
8972
8993
|
#define FXAA_QUALITY_PRESET 29
|
|
8973
8994
|
|