@luma.gl/shadertools 9.3.0-alpha.2 → 9.3.0-alpha.4
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 +3 -1
- package/dist/dist.min.js +5 -5
- package/dist/index.cjs +4 -1
- package/dist/index.cjs.map +2 -2
- package/dist/lib/utils/assert.d.ts.map +1 -1
- package/dist/lib/utils/assert.js +3 -1
- package/dist/lib/utils/assert.js.map +1 -1
- package/package.json +2 -2
- package/src/lib/utils/assert.ts +3 -1
package/dist/dist.dev.js
CHANGED
|
@@ -94,7 +94,9 @@ var __exports__ = (() => {
|
|
|
94
94
|
// src/lib/utils/assert.ts
|
|
95
95
|
function assert(condition, message) {
|
|
96
96
|
if (!condition) {
|
|
97
|
-
|
|
97
|
+
const error = new Error(message || "shadertools: assertion failed.");
|
|
98
|
+
Error.captureStackTrace?.(error, assert);
|
|
99
|
+
throw error;
|
|
98
100
|
}
|
|
99
101
|
}
|
|
100
102
|
|
package/dist/dist.min.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
5
|
else if (typeof exports === 'object') exports['luma'] = factory();
|
|
6
6
|
else root['luma'] = factory();})(globalThis, function () {
|
|
7
|
-
"use strict";var __exports__=(()=>{var pt=Object.create;var O=Object.defineProperty;var _t=Object.getOwnPropertyDescriptor;var mt=Object.getOwnPropertyNames;var gt=Object.getPrototypeOf,dt=Object.prototype.hasOwnProperty;var ht=(e,t,o)=>t in e?O(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var vt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),bt=(e,t)=>{for(var o in t)O(e,o,{get:t[o],enumerable:!0})},z=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of mt(t))!dt.call(e,n)&&n!==o&&O(e,n,{get:()=>t[n],enumerable:!(i=_t(t,n))||i.enumerable});return e},q=(e,t,o)=>(z(e,t,"default"),o&&z(o,t,"default")),de=(e,t,o)=>(o=e!=null?pt(gt(e)):{},z(t||!e||!e.__esModule?O(o,"default",{value:e,enumerable:!0}):o,e)),At=e=>z(O({},"__esModule",{value:!0}),e);var he=(e,t,o)=>(ht(e,typeof t!="symbol"?t+"":t,o),o);var te=vt((fo,ve)=>{ve.exports=globalThis.luma});var H={};bt(H,{ShaderAssembler:()=>w,_getDependencyGraph:()=>D,_resolveModules:()=>Ne,assembleGLSLShaderPair:()=>K,capitalize:()=>E,checkShaderModuleDeprecations:()=>F,combineInjects:()=>Ce,convertToVec4:()=>le,dirlight:()=>pe,fp32:()=>Qe,fp64:()=>ot,fp64LowPart:()=>B,fp64arithmetic:()=>ce,fp64ify:()=>R,fp64ifyMatrix4:()=>U,fromHalfFloat:()=>Ye,generateShaderForModule:()=>ze,getPassthroughFS:()=>ke,getQualifierDetails:()=>Ue,getShaderInfo:()=>$,getShaderModuleDependencies:()=>y,getShaderModuleSource:()=>X,getShaderModuleUniforms:()=>Re,gouraudMaterial:()=>_e,initializeShaderModule:()=>W,initializeShaderModules:()=>v,lighting:()=>g,pbrMaterial:()=>ut,phongMaterial:()=>me,picking:()=>it,preprocess:()=>Y,random:()=>Ze,toHalfFloat:()=>Xe,typeToChannelCount:()=>Ge,typeToChannelSuffix:()=>He});q(H,de(te(),1));function
|
|
7
|
+
"use strict";var __exports__=(()=>{var pt=Object.create;var O=Object.defineProperty;var _t=Object.getOwnPropertyDescriptor;var mt=Object.getOwnPropertyNames;var gt=Object.getPrototypeOf,dt=Object.prototype.hasOwnProperty;var ht=(e,t,o)=>t in e?O(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var vt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),bt=(e,t)=>{for(var o in t)O(e,o,{get:t[o],enumerable:!0})},z=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of mt(t))!dt.call(e,n)&&n!==o&&O(e,n,{get:()=>t[n],enumerable:!(i=_t(t,n))||i.enumerable});return e},q=(e,t,o)=>(z(e,t,"default"),o&&z(o,t,"default")),de=(e,t,o)=>(o=e!=null?pt(gt(e)):{},z(t||!e||!e.__esModule?O(o,"default",{value:e,enumerable:!0}):o,e)),At=e=>z(O({},"__esModule",{value:!0}),e);var he=(e,t,o)=>(ht(e,typeof t!="symbol"?t+"":t,o),o);var te=vt((fo,ve)=>{ve.exports=globalThis.luma});var H={};bt(H,{ShaderAssembler:()=>w,_getDependencyGraph:()=>D,_resolveModules:()=>Ne,assembleGLSLShaderPair:()=>K,capitalize:()=>E,checkShaderModuleDeprecations:()=>F,combineInjects:()=>Ce,convertToVec4:()=>le,dirlight:()=>pe,fp32:()=>Qe,fp64:()=>ot,fp64LowPart:()=>B,fp64arithmetic:()=>ce,fp64ify:()=>R,fp64ifyMatrix4:()=>U,fromHalfFloat:()=>Ye,generateShaderForModule:()=>ze,getPassthroughFS:()=>ke,getQualifierDetails:()=>Ue,getShaderInfo:()=>$,getShaderModuleDependencies:()=>y,getShaderModuleSource:()=>X,getShaderModuleUniforms:()=>Re,gouraudMaterial:()=>_e,initializeShaderModule:()=>W,initializeShaderModules:()=>v,lighting:()=>g,pbrMaterial:()=>ut,phongMaterial:()=>me,picking:()=>it,preprocess:()=>Y,random:()=>Ze,toHalfFloat:()=>Xe,typeToChannelCount:()=>Ge,typeToChannelSuffix:()=>He});q(H,de(te(),1));function b(e,t){if(!e){let o=new Error(t||"shadertools: assertion failed.");throw Error.captureStackTrace?.(o,b),o}}var oe={number:{type:"number",validate(e,t){return Number.isFinite(e)&&typeof t=="object"&&(t.max===void 0||e<=t.max)&&(t.min===void 0||e>=t.min)}},array:{type:"array",validate(e,t){return Array.isArray(e)||ArrayBuffer.isView(e)}}};function Ae(e){let t={};for(let[o,i]of Object.entries(e))t[o]=St(i);return t}function Se(e,t,o){let i={};for(let[n,r]of Object.entries(t))e&&n in e&&!r.private?(r.validate&&b(r.validate(e[n],r),`${o}: invalid ${n}`),i[n]=e[n]):i[n]=r.value;return i}function St(e){let t=be(e);if(t!=="object")return{value:e,...oe[t],type:t};if(typeof e=="object")return e?e.type!==void 0?{...e,...oe[e.type],type:e.type}:e.value===void 0?{type:"object",value:e}:(t=be(e.value),{...e,...oe[t],type:t}):{type:"object",value:null};throw new Error("props")}function be(e){return Array.isArray(e)||ArrayBuffer.isView(e)?"array":typeof e}var Ie=`#ifdef MODULE_LOGDEPTH
|
|
8
8
|
logdepth_adjustPosition(gl_Position);
|
|
9
9
|
#endif
|
|
10
10
|
`,Le=`#ifdef MODULE_MATERIAL
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
#endif
|
|
30
30
|
`;var It={vertex:Ie,fragment:Le},Ee=/void\s+main\s*\([^)]*\)\s*\{\n?/,xe=/}\n?[^{}]*$/,ie=[],M="__LUMA_INJECT_DECLARATIONS__";function Pe(e){let t={vertex:{},fragment:{}};for(let o in e){let i=e[o],n=Lt(o);typeof i=="string"&&(i={order:0,injection:i}),t[n][o]=i}return t}function Lt(e){let t=e.slice(0,2);switch(t){case"vs":return"vertex";case"fs":return"fragment";default:throw new Error(t)}}function T(e,t,o,i=!1){let n=t==="vertex";for(let r in o){let a=o[r];a.sort((l,f)=>l.order-f.order),ie.length=a.length;for(let l=0,f=a.length;l<f;++l)ie[l]=a[l].injection;let s=`${ie.join(`
|
|
31
31
|
`)}
|
|
32
|
-
`;switch(r){case"vs:#decl":n&&(e=e.replace(M,s));break;case"vs:#main-start":n&&(e=e.replace(Ee,l=>l+s));break;case"vs:#main-end":n&&(e=e.replace(xe,l=>s+l));break;case"fs:#decl":n||(e=e.replace(M,s));break;case"fs:#main-start":n||(e=e.replace(Ee,l=>l+s));break;case"fs:#main-end":n||(e=e.replace(xe,l=>s+l));break;default:e=e.replace(r,l=>l+s)}}return e=e.replace(M,""),i&&(e=e.replace(/\}\s*$/,r=>r+It[t])),e}function Ce(e){let t={};return
|
|
32
|
+
`;switch(r){case"vs:#decl":n&&(e=e.replace(M,s));break;case"vs:#main-start":n&&(e=e.replace(Ee,l=>l+s));break;case"vs:#main-end":n&&(e=e.replace(xe,l=>s+l));break;case"fs:#decl":n||(e=e.replace(M,s));break;case"fs:#main-start":n||(e=e.replace(Ee,l=>l+s));break;case"fs:#main-end":n||(e=e.replace(xe,l=>s+l));break;default:e=e.replace(r,l=>l+s)}}return e=e.replace(M,""),i&&(e=e.replace(/\}\s*$/,r=>r+It[t])),e}function Ce(e){let t={};return b(Array.isArray(e)&&e.length>1),e.forEach(o=>{for(let i in o)t[i]=t[i]?`${t[i]}
|
|
33
33
|
${o[i]}`:o[i]}),t}function v(e){e.map(t=>W(t))}function W(e){if(e.instance)return;v(e.dependencies||[]);let{propTypes:t={},deprecations:o=[],inject:i={}}=e,n={normalizedInjections:Pe(i),parsedDeprecations:Et(o)};t&&(n.propValidators=Ae(t)),e.instance=n;let r={};t&&(r=Object.entries(t).reduce((a,[s,l])=>{let f=l?.value;return f&&(a[s]=f),a},{})),e.defaultUniforms={...e.defaultUniforms,...r}}function Re(e,t,o){W(e);let i=o||{...e.defaultUniforms};return t&&e.getUniforms?e.getUniforms(t,i):Se(t,e.instance?.propValidators,e.name)}function F(e,t,o){e.deprecations?.forEach(i=>{i.regex?.test(t)&&(i.deprecated?o.deprecated(i.old,i.new)():o.removed(i.old,i.new)())})}function Et(e){return e.forEach(t=>{switch(t.type){case"function":t.regex=new RegExp(`\\b${t.old}\\(`);break;default:t.regex=new RegExp(`${t.type} ${t.old};`)}}),e}function y(e){v(e);let t={},o={};D({modules:e,level:0,moduleMap:t,moduleDepth:o});let i=Object.keys(o).sort((n,r)=>o[r]-o[n]).map(n=>t[n]);return v(i),i}function D(e){let{modules:t,level:o,moduleMap:i,moduleDepth:n}=e;if(o>=5)throw new Error("Possible loop in shader dependency graph");for(let r of t)i[r.name]=r,(n[r.name]===void 0||n[r.name]<o)&&(n[r.name]=o);for(let r of t)r.dependencies&&D({modules:r.dependencies,level:o+1,moduleMap:i,moduleDepth:n})}function xt(e){v(e);let t={},o={};return D({modules:e,level:0,moduleMap:t,moduleDepth:o}),e=Object.keys(o).sort((i,n)=>o[n]-o[i]).map(i=>t[i]),v(e),e}function Ne(e){return xt(e)}function Oe(e){switch(e?.gpu.toLowerCase()){case"apple":return`#define APPLE_GPU
|
|
34
34
|
// Apple optimizes away the calculation necessary for emulated fp64
|
|
35
35
|
#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
|
|
@@ -62,7 +62,7 @@ ${o[i]}`:o[i]}),t}function v(e){e.map(t=>W(t))}function W(e){if(e.instance)retur
|
|
|
62
62
|
|
|
63
63
|
${M}
|
|
64
64
|
`,Ot=`precision highp float;
|
|
65
|
-
`;function we(e){let t=y(e.modules||[]);return{source:Mt(e.platformInfo,{...e,source:e.source,stage:"vertex",modules:t}),getUniforms:Be(t)}}function K(e){let{vs:t,fs:o}=e,i=y(e.modules||[]);return{vs:ye(e.platformInfo,{...e,source:t,stage:"vertex",modules:i}),fs:ye(e.platformInfo,{...e,source:o,stage:"fragment",modules:i}),getUniforms:Be(i)}}function Mt(e,t){let{source:o,stage:i,modules:n,hookFunctions:r=[],inject:a={},log:s}=t;
|
|
65
|
+
`;function we(e){let t=y(e.modules||[]);return{source:Mt(e.platformInfo,{...e,source:e.source,stage:"vertex",modules:t}),getUniforms:Be(t)}}function K(e){let{vs:t,fs:o}=e,i=y(e.modules||[]);return{vs:ye(e.platformInfo,{...e,source:t,stage:"vertex",modules:i}),fs:ye(e.platformInfo,{...e,source:o,stage:"fragment",modules:i}),getUniforms:Be(i)}}function Mt(e,t){let{source:o,stage:i,modules:n,hookFunctions:r=[],inject:a={},log:s}=t;b(typeof o=="string","shader source must be a string");let l=o,f="",G=ae(r),A={},N={},I={};for(let u in a){let d=typeof a[u]=="string"?{injection:a[u],order:0}:a[u],c=/^(v|f)s:(#)?([\w-]+)$/.exec(u);if(c){let _=c[2],h=c[3];_?h==="decl"?N[u]=[d]:I[u]=[d]:A[u]=[d]}else I[u]=[d]}let ge=n;for(let u of ge){s&&F(u,l,s);let d=X(u,"wgsl");f+=d;let c=u.injections?.[i]||{};for(let _ in c){let h=/^(v|f)s:#([\w-]+)$/.exec(_);if(h){let S=h[2]==="decl"?N:I;S[_]=S[_]||[],S[_].push(c[_])}else A[_]=A[_]||[],A[_].push(c[_])}}return f+=De,f=T(f,i,N),f+=ne(G[i],A),f+=l,f=T(f,i,I),f}function ye(e,t){let{source:o,stage:i,language:n="glsl",modules:r,defines:a={},hookFunctions:s=[],inject:l={},prologue:f=!0,log:G}=t;b(typeof o=="string","shader source must be a string");let A=n==="glsl"?$(o).version:-1,N=e.shaderLanguageVersion,I=A===100?"#version 100":"#version 300 es",u=o.split(`
|
|
66
66
|
`).slice(1).join(`
|
|
67
67
|
`),d={};r.forEach(p=>{Object.assign(d,p.defines)}),Object.assign(d,a);let c="";switch(n){case"wgsl":break;case"glsl":c=f?`${I}
|
|
68
68
|
|
|
@@ -77,8 +77,8 @@ ${i==="fragment"?Ot:""}
|
|
|
77
77
|
${Tt(d)}
|
|
78
78
|
|
|
79
79
|
`:`${I}
|
|
80
|
-
`;break}let _=ae(s),h={},V={},
|
|
81
|
-
`)}return t}function X(e,t){let o;switch(t){case"vertex":o=e.vs||"";break;case"fragment":o=e.fs||"";break;case"wgsl":o=e.source||"";break;default:
|
|
80
|
+
`;break}let _=ae(s),h={},V={},S={};for(let p in l){let P=typeof l[p]=="string"?{injection:l[p],order:0}:l[p],L=/^(v|f)s:(#)?([\w-]+)$/.exec(p);if(L){let m=L[2],j=L[3];m?j==="decl"?V[p]=[P]:S[p]=[P]:h[p]=[P]}else S[p]=[P]}for(let p of r){G&&F(p,u,G);let P=X(p,i);c+=P;let L=p.instance?.normalizedInjections[i]||{};for(let m in L){let j=/^(v|f)s:#([\w-]+)$/.exec(m);if(j){let ee=j[2]==="decl"?V:S;ee[m]=ee[m]||[],ee[m].push(L[m])}else h[m]=h[m]||[],h[m].push(L[m])}}return c+="// ----- MAIN SHADER SOURCE -------------------------",c+=De,c=T(c,i,V),c+=ne(_[i],h),c+=u,c=T(c,i,S),n==="glsl"&&A!==N&&(c=Te(c,i)),c.trim()}function Be(e){return function(o){let i={};for(let n of e){let r=n.getUniforms?.(o,i);Object.assign(i,r)}return i}}function Tt(e={}){let t="";for(let o in e){let i=e[o];(i||Number.isFinite(i))&&(t+=`#define ${o.toUpperCase()} ${e[o]}
|
|
81
|
+
`)}return t}function X(e,t){let o;switch(t){case"vertex":o=e.vs||"";break;case"fragment":o=e.fs||"";break;case"wgsl":o=e.source||"";break;default:b(!1)}if(!e.name)throw new Error("Shader module must have a name");let i=e.name.toUpperCase().replace(/[^0-9a-z]/gi,"_"),n=`// ----- MODULE ${e.name} ---------------
|
|
82
82
|
|
|
83
83
|
`;return t!=="wgsl"&&(n+=`#define MODULE_${i}
|
|
84
84
|
`),n+=`${o}
|
package/dist/index.cjs
CHANGED
|
@@ -65,8 +65,11 @@ module.exports = __toCommonJS(dist_exports);
|
|
|
65
65
|
|
|
66
66
|
// dist/lib/utils/assert.js
|
|
67
67
|
function assert(condition, message) {
|
|
68
|
+
var _a;
|
|
68
69
|
if (!condition) {
|
|
69
|
-
|
|
70
|
+
const error = new Error(message || "shadertools: assertion failed.");
|
|
71
|
+
(_a = Error.captureStackTrace) == null ? void 0 : _a.call(Error, error, assert);
|
|
72
|
+
throw error;
|
|
70
73
|
}
|
|
71
74
|
}
|
|
72
75
|
|