textmode.synth.js 1.0.0-beta.4 → 1.0.0-beta.5
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/textmode.synth.esm.js +264 -261
- package/dist/textmode.synth.umd.js +18 -17
- package/dist/types/compiler/GLSLGenerator.d.ts +2 -0
- package/dist/types/compiler/GLSLGenerator.d.ts.map +1 -1
- package/dist/types/compiler/types.d.ts +2 -0
- package/dist/types/compiler/types.d.ts.map +1 -1
- package/dist/types/core/ISynthSource.d.ts +7 -6
- package/dist/types/core/ISynthSource.d.ts.map +1 -1
- package/dist/types/core/SynthSource.d.ts +1 -9
- package/dist/types/core/SynthSource.d.ts.map +1 -1
- package/dist/types/lifecycle/synthRender.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
(function(g,
|
|
1
|
+
(function(g,L){typeof exports=="object"&&typeof module<"u"?L(exports):typeof define=="function"&&define.amd?define(["exports"],L):L((g=typeof globalThis<"u"?globalThis:g||self).TextmodeSynth={})})(this,function(g){"use strict";const L={src:{returnType:"vec4",args:[{type:"vec2",name:"_st"}]},coord:{returnType:"vec2",args:[{type:"vec2",name:"_st"}]},color:{returnType:"vec4",args:[{type:"vec4",name:"_c0"}]},combine:{returnType:"vec4",args:[{type:"vec4",name:"_c0"},{type:"vec4",name:"_c1"}]},combineCoord:{returnType:"vec2",args:[{type:"vec2",name:"_st"},{type:"vec4",name:"_c0"}]}},A=new class{_transforms=new Map;_processedCache=new Map;register(e){this._transforms.has(e.name)&&console.warn(`[TransformRegistry] Overwriting existing transform: ${e.name}`),this._transforms.set(e.name,e),this._processedCache.delete(e.name)}registerMany(e){for(const t of e)this.register(t)}get(e){return this._transforms.get(e)}getProcessed(e){let t=this._processedCache.get(e);if(!t){const r=this._transforms.get(e);r&&(t=(function(a){const n=L[a.type],o=[...n.args,...a.inputs.map(c=>({type:c.type,name:c.name}))].map(c=>`${c.type} ${c.name}`).join(", "),s=`
|
|
2
2
|
${n.returnType} ${a.name}(${o}) {
|
|
3
3
|
${a.glsl}
|
|
4
|
-
}`;return{...a,glslFunction:s}})(r),this._processedCache.set(e,t))}return t}has(e){return this._transforms.has(e)}getByType(e){return Array.from(this._transforms.values()).filter(t=>t.type===e)}getNames(){return Array.from(this._transforms.keys())}getAll(){return Array.from(this._transforms.values())}getSourceTransforms(){return this.getByType("src")}remove(e){return this._processedCache.delete(e),this._transforms.delete(e)}clear(){this._transforms.clear(),this._processedCache.clear()}get size(){return this._transforms.size}},Y=new Set(["src"]),R=new class{_generatedFunctions={};_synthSourceClass=null;setSynthSourceClass(e){this._synthSourceClass=e}injectMethods(e){const t=
|
|
4
|
+
}`;return{...a,glslFunction:s}})(r),this._processedCache.set(e,t))}return t}has(e){return this._transforms.has(e)}getByType(e){return Array.from(this._transforms.values()).filter(t=>t.type===e)}getNames(){return Array.from(this._transforms.keys())}getAll(){return Array.from(this._transforms.values())}getSourceTransforms(){return this.getByType("src")}remove(e){return this._processedCache.delete(e),this._transforms.delete(e)}clear(){this._transforms.clear(),this._processedCache.clear()}get size(){return this._transforms.size}},Y=new Set(["src"]),R=new class{_generatedFunctions={};_synthSourceClass=null;setSynthSourceClass(e){this._synthSourceClass=e}injectMethods(e){const t=A.getAll();for(const r of t)this._injectMethod(e,r)}_injectMethod(e,t){const{name:r,inputs:a,type:n}=t;e[r]=n==="combine"||n==="combineCoord"?function(o,...s){const c=a.map((l,f)=>s[f]??l.default);return this.addCombineTransform(r,o,c)}:function(...o){const s=a.map((c,l)=>o[l]??c.default);return this.addTransform(r,s)}}generateStandaloneFunctions(){if(!this._synthSourceClass)throw new Error("[TransformFactory] SynthSource class not set. Call setSynthSourceClass first.");const e={},t=A.getAll(),r=this._synthSourceClass;for(const a of t)if(Y.has(a.type)){const{name:n,inputs:o}=a;e[n]=(...s)=>{const c=new r,l=o.map((f,h)=>s[h]??f.default);return c.addTransform(n,l)}}return this._generatedFunctions=e,e}getGeneratedFunctions(){return this._generatedFunctions}addTransform(e,t){if(A.register(e),t&&this._injectMethod(t,e),Y.has(e.type)&&this._synthSourceClass){const r=this._synthSourceClass,{name:a,inputs:n}=e;this._generatedFunctions[a]=(...o)=>{const s=new r,c=n.map((l,f)=>o[f]??l.default);return s.addTransform(a,c)}}}},G=[{name:"osc",type:"src",inputs:[{name:"frequency",type:"float",default:60},{name:"sync",type:"float",default:.1},{name:"offset",type:"float",default:0}],glsl:`
|
|
5
5
|
vec2 st = _st;
|
|
6
6
|
float r = sin((st.x - offset/frequency + time*sync) * frequency) * 0.5 + 0.5;
|
|
7
7
|
float g = sin((st.x + time*sync) * frequency) * 0.5 + 0.5;
|
|
@@ -215,7 +215,7 @@ ${a.glsl}
|
|
|
215
215
|
return fract(st);
|
|
216
216
|
`,description:"Modulate Y repeat with another source"},{name:"modulateHue",type:"combineCoord",inputs:[{name:"amount",type:"float",default:1}],glsl:`
|
|
217
217
|
return _st + (vec2(_c0.g - _c0.r, _c0.b - _c0.g) * amount * 1.0 / resolution);
|
|
218
|
-
`,description:"Modulate coordinates based on hue differences"}];class
|
|
218
|
+
`,description:"Modulate coordinates based on hue differences"}];class T{_transforms;constructor(t){this._transforms=t}static empty(){return new T([])}static from(t){return new T([...t])}get transforms(){return this._transforms}push(t){this._transforms.push(t)}get length(){return this._transforms.length}get isEmpty(){return this._transforms.length===0}append(t){return new T([...this._transforms,t])}get(t){return this._transforms[t]}[Symbol.iterator](){return this._transforms[Symbol.iterator]()}}class S{_chain;_charMapping;_nestedSources;_externalLayerRefs;_colorSource;_cellColorSource;_charSource;constructor(t){this._chain=t?.chain??T.empty(),this._charMapping=t?.charMapping,this._colorSource=t?.colorSource,this._cellColorSource=t?.cellColorSource,this._charSource=t?.charSource,this._nestedSources=t?.nestedSources??new Map,this._externalLayerRefs=t?.externalLayerRefs??new Map}addTransform(t,r){const a={name:t,userArgs:r};return this._chain.push(a),this}addCombineTransform(t,r,a){const n=this._chain.length;return this._nestedSources.set(n,r),this.addTransform(t,a)}addExternalLayerRef(t){const r=this._chain.length;return this._externalLayerRefs.set(r,t),this.addTransform("src",[])}charMap(t){const r=Array.from(t),a=[];for(const n of r)a.push(n.codePointAt(0)??32);return this._charMapping={chars:t,indices:a},this}charColor(t){return this._colorSource=t,this}char(t){return this._charSource=t,this}cellColor(t){return this._cellColorSource=t,this}paint(t){return this._colorSource=t,this._cellColorSource=t,this}clone(){const t=new Map;for(const[a,n]of this._nestedSources)t.set(a,n.clone());const r=new Map;for(const[a,n]of this._externalLayerRefs)r.set(a,{...n});return new S({chain:T.from(this._chain.transforms),charMapping:this._charMapping,colorSource:this._colorSource?.clone(),cellColorSource:this._cellColorSource?.clone(),charSource:this._charSource?.clone(),nestedSources:t,externalLayerRefs:r})}get transforms(){return this._chain.transforms}get charMapping(){return this._charMapping}get colorSource(){return this._colorSource}get cellColorSource(){return this._cellColorSource}get charSource(){return this._charSource}get nestedSources(){return this._nestedSources}get externalLayerRefs(){return this._externalLayerRefs}}const j={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>e*(2-e),easeInOutQuad:e=>e<.5?2*e*e:(4-2*e)*e-1,easeInCubic:e=>e*e*e,easeOutCubic:e=>--e*e*e+1,easeInOutCubic:e=>e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1,easeInQuart:e=>e*e*e*e,easeOutQuart:e=>1- --e*e*e*e,easeInOutQuart:e=>e<.5?8*e*e*e*e:1-8*--e*e*e*e,easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>1+--e*e*e*e*e,easeInOutQuint:e=>e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e,sin:e=>(1+Math.sin(Math.PI*e-Math.PI/2))/2};function U(e,t){return(e%t+t)%t}"fast"in Array.prototype||(Array.prototype.fast=function(e=1){return this._speed=e,this},Array.prototype.smooth=function(e=1){return this._smooth=e,this},Array.prototype.ease=function(e="linear"){return typeof e=="function"?(this._smooth=1,this._ease=e):j[e]&&(this._smooth=1,this._ease=j[e]),this},Array.prototype.offset=function(e=.5){return this._offset=e%1,this},Array.prototype.fit=function(e=0,t=1){const r=Math.min(...this),a=Math.max(...this),n=this.map(o=>(function(s,c,l,f,h){return(s-c)*(h-f)/(l-c)+f})(o,r,a,e,t));return n._speed=this._speed,n._smooth=this._smooth,n._ease=this._ease,n._offset=this._offset,n}),A.registerMany(G),R.setSynthSourceClass(S),R.injectMethods(S.prototype);const P=R.generateStandaloneFunctions(),w="textmode.synth.js";class K{_usesFeedback=!1;_usesCharFeedback=!1;_usesCellColorFeedback=!1;trackUsage(t){switch(t){case"char":this._usesCharFeedback=!0;break;case"cellColor":this._usesCellColorFeedback=!0;break;default:this._usesFeedback=!0}}reset(){this._usesFeedback=!1,this._usesCharFeedback=!1,this._usesCellColorFeedback=!1}getUsage(){return{usesCharColorFeedback:this._usesFeedback,usesCharFeedback:this._usesCharFeedback,usesCellColorFeedback:this._usesCellColorFeedback}}get usesAnyFeedback(){return this._usesFeedback||this._usesCharFeedback||this._usesCellColorFeedback}get usesCharColorFeedback(){return this._usesFeedback}get usesCharFeedback(){return this._usesCharFeedback}get usesCellColorFeedback(){return this._usesCellColorFeedback}}class Q{_externalLayers=new Map;_counter=0;_layerIdToPrefix=new Map;getPrefix(t){let r=this._layerIdToPrefix.get(t);return r||(r="extLayer"+this._counter++,this._layerIdToPrefix.set(t,r)),r}trackUsage(t,r){const a=this.getPrefix(t.layerId);let n=this._externalLayers.get(t.layerId);switch(n||(n={layerId:t.layerId,uniformPrefix:a,usesChar:!1,usesCharColor:!1,usesCellColor:!1},this._externalLayers.set(t.layerId,n)),r){case"char":n.usesChar=!0;break;case"cellColor":n.usesCellColor=!0;break;default:n.usesCharColor=!0}}hasLayer(t){return this._externalLayers.has(t)}getLayerInfo(t){return this._externalLayers.get(t)}getExternalLayers(){return new Map(this._externalLayers)}get hasExternalLayers(){return this._externalLayers.size>0}get count(){return this._externalLayers.size}reset(){this._externalLayers.clear(),this._counter=0,this._layerIdToPrefix.clear()}}const H={char:"prevCharBuffer",charColor:"prevCharColorBuffer",cellColor:"prevCellColorBuffer",main:"prevCharColorBuffer"};class W{getContextAwareGlslFunction(t,r,a,n,o){return r!=="src"?t.glslFunction:n&&o?this._generateExternalSrcFunction(n,a,o):this._generateSelfFeedbackSrcFunction(a)}getFunctionName(t,r,a,n){return t.name!=="src"?t.name:a&&n?`src_ext_${n(a.layerId)}_${r}`:`src_${r}`}generateTransformCode(t,r,a,n,o,s,c,l,f,h,y,v,C){const _=this.getFunctionName(r,h,v,C),p=(...d)=>[...d,...f].join(", ");let i=o,u=s,m=c,b=l;switch(r.type){case"src":{const d=`c${a}`;t.push(` vec4 ${d} = ${_}(${p(n)});`),i=d;break}case"coord":{const d=`st${a}`;t.push(` vec2 ${d} = ${_}(${p(n)});`),t.push(` ${n} = ${d};`);break}case"color":{const d=`c${a}`;t.push(` vec4 ${d} = ${_}(${p(o)});`),i=d;break}case"combine":{const d=`c${a}`;t.push(` vec4 ${d} = ${_}(${p(o,y??"vec4(0.0)")});`),i=d;break}case"combineCoord":{const d=`st${a}`;t.push(` vec2 ${d} = ${_}(${p(n,y??"vec4(0.0)")});`),t.push(` ${n} = ${d};`);break}}return{colorVar:i,charVar:u,flagsVar:m,rotationVar:b}}_generateExternalSrcFunction(t,r,a){const n=a(t.layerId);return`
|
|
219
219
|
vec4 ${`src_ext_${n}_${r}`}(vec2 _st) {
|
|
220
220
|
return texture(${{char:`${n}_char`,charColor:`${n}_primary`,cellColor:`${n}_cell`,main:`${n}_primary`}[r]}, fract(_st));
|
|
221
221
|
}
|
|
@@ -223,21 +223,21 @@ vec4 ${`src_ext_${n}_${r}`}(vec2 _st) {
|
|
|
223
223
|
vec4 ${`src_${t}`}(vec2 _st) {
|
|
224
224
|
return texture(${H[t]}, fract(_st));
|
|
225
225
|
}
|
|
226
|
-
`}}class J{_uniforms=new Map;_dynamicUpdaters=new Map;processArgument(t,r,a){if((function(n){return Array.isArray(n)&&n.length>0&&typeof n[0]=="number"})(t)){const n=`${a}_${r.name}`,o={name:n,type:r.type,value:r.default??0,isDynamic:!0},s=c=>(function(l,
|
|
226
|
+
`}}class J{_uniforms=new Map;_dynamicUpdaters=new Map;processArgument(t,r,a){if((function(n){return Array.isArray(n)&&n.length>0&&typeof n[0]=="number"})(t)){const n=`${a}_${r.name}`,o={name:n,type:r.type,value:r.default??0,isDynamic:!0},s=c=>(function(l,f){const h=l._speed??1,y=l._smooth??0;let v=f.time*h*(f.bpm/60)+(l._offset??0);if(y!==0){const C=l._ease??j.linear,_=v-y/2,p=l[Math.floor(U(_,l.length))],i=l[Math.floor(U(_+1,l.length))];return C(Math.min(U(_,1)/y,1))*(i-p)+p}return l[Math.floor(U(v,l.length))]})(t,c);return this._uniforms.set(n,o),this._dynamicUpdaters.set(n,s),{glslValue:n,uniform:o,updater:s}}if(typeof t=="function"){const n=`${a}_${r.name}`,o={name:n,type:r.type,value:r.default??0,isDynamic:!0};return this._uniforms.set(n,o),this._dynamicUpdaters.set(n,t),{glslValue:n,uniform:o,updater:t}}if(typeof t=="number")return{glslValue:x(t)};if(Array.isArray(t)&&typeof t[0]=="number"){const n=t;if(n.length===2)return{glslValue:`vec2(${x(n[0])}, ${x(n[1])})`};if(n.length===3)return{glslValue:`vec3(${x(n[0])}, ${x(n[1])}, ${x(n[2])})`};if(n.length===4)return{glslValue:`vec4(${x(n[0])}, ${x(n[1])}, ${x(n[2])}, ${x(n[3])})`}}return this.processDefault(r)}processDefault(t){const r=t.default;return typeof r=="number"?{glslValue:x(r)}:Array.isArray(r)?{glslValue:`vec${r.length}(${r.map(x).join(", ")})`}:{glslValue:"0.0"}}getUniforms(){return new Map(this._uniforms)}getDynamicUpdaters(){return new Map(this._dynamicUpdaters)}clear(){this._uniforms.clear(),this._dynamicUpdaters.clear()}}function x(e){const t=e.toString();return t.includes(".")?t:t+".0"}function X(e){return new Z().compile(e)}class Z{_uniformManager=new J;_feedbackTracker=new K;_externalLayerManager=new Q;_codeGenerator=new W;_glslFunctions=new Set;_mainCode=[];_varCounter=0;_currentTarget="main";_usesCharSource=!1;compile(t){this._reset();const r=this._compileChain(t,"main","vec4(1.0, 1.0, 1.0, 1.0)","v_uv","main");let a=r.charVar;t.charSource&&(a=this._compileCharSource(t));let n=r.colorVar;t.colorSource&&(n=this._compileChain(t.colorSource,"charColor","vec4(1.0, 1.0, 1.0, 1.0)","v_uv","charColor").colorVar);let o="vec4(0.0, 0.0, 0.0, 0.0)";t.cellColorSource&&(o=this._compileChain(t.cellColorSource,"cellColor","vec4(0.0, 0.0, 0.0, 0.0)","v_uv","cellColor").colorVar);const s=(function(f,h,y){return f?`
|
|
227
227
|
// Character output from generator
|
|
228
228
|
vec4 charOutput = ${h};`:`
|
|
229
229
|
// Derive character from color luminance
|
|
230
230
|
float lum = _luminance(${y}.rgb);
|
|
231
231
|
int charIdx = int(lum * 255.0);
|
|
232
|
-
vec4 charOutput = vec4(float(charIdx % 256) / 255.0, float(charIdx / 256) / 255.0, 0.0, 0.0);`})(!!a,a??"vec4(0.0)",r.colorVar),c=this._feedbackTracker.getUsage();return{fragmentSource:(function(
|
|
233
|
-
`);let
|
|
234
|
-
uniform int u_charMapSize
|
|
232
|
+
vec4 charOutput = vec4(float(charIdx % 256) / 255.0, float(charIdx / 256) / 255.0, 0.0, 0.0);`})(!!a,a??"vec4(0.0)",r.colorVar),c=this._feedbackTracker.getUsage();return{fragmentSource:(function(f){const{uniforms:h,glslFunctions:y,mainCode:v,charOutputCode:C,primaryColorVar:_,cellColorVar:p,charMapping:i,usesFeedback:u,usesCharFeedback:m,usesCellColorFeedback:b,usesCharSource:d,externalLayers:M}=f,B=Array.from(h.values()).map(F=>`uniform ${F.type} ${F.name};`).join(`
|
|
233
|
+
`);let z="",$="";i&&(z=`uniform int u_charMap[${i.indices.length}];
|
|
234
|
+
uniform int u_charMapSize;`,$=`
|
|
235
235
|
// Apply character mapping
|
|
236
236
|
int rawCharIdx = int(charOutput.r * 255.0 + charOutput.g * 255.0 * 256.0);
|
|
237
237
|
int mappedCharIdx = u_charMap[int(mod(float(rawCharIdx), float(u_charMapSize)))];
|
|
238
238
|
charOutput.r = float(mappedCharIdx % 256) / 255.0;
|
|
239
|
-
charOutput.g = float(mappedCharIdx / 256) / 255.0;`);const
|
|
240
|
-
`),
|
|
239
|
+
charOutput.g = float(mappedCharIdx / 256) / 255.0;`);const k=[];u&&k.push("uniform sampler2D prevCharColorBuffer;"),m&&k.push("uniform sampler2D prevCharBuffer;"),b&&k.push("uniform sampler2D prevCellColorBuffer;");const oe=k.join(`
|
|
240
|
+
`),se=d?"uniform float u_charSourceCount;":"",V=[];if(M)for(const[,F]of M)F.usesChar&&V.push(`uniform sampler2D ${F.uniformPrefix}_char;`),F.usesCharColor&&V.push(`uniform sampler2D ${F.uniformPrefix}_primary;`),F.usesCellColor&&V.push(`uniform sampler2D ${F.uniformPrefix}_cell;`);return`#version 300 es
|
|
241
241
|
precision highp float;
|
|
242
242
|
|
|
243
243
|
// Varyings
|
|
@@ -251,14 +251,15 @@ layout(location = 2) out vec4 o_secondaryColor;
|
|
|
251
251
|
// Standard uniforms
|
|
252
252
|
uniform float time;
|
|
253
253
|
uniform vec2 resolution;
|
|
254
|
-
${
|
|
255
|
-
${
|
|
256
|
-
${
|
|
254
|
+
${oe}
|
|
255
|
+
${V.length>0?`// External layer samplers
|
|
256
|
+
${V.join(`
|
|
257
257
|
`)}`:""}
|
|
258
|
-
${
|
|
258
|
+
${z}
|
|
259
|
+
${se}
|
|
259
260
|
|
|
260
261
|
// Dynamic uniforms
|
|
261
|
-
${
|
|
262
|
+
${B}
|
|
262
263
|
|
|
263
264
|
|
|
264
265
|
// Utility functions
|
|
@@ -368,11 +369,11 @@ ${v.join(`
|
|
|
368
369
|
`)}
|
|
369
370
|
|
|
370
371
|
${C}
|
|
371
|
-
${
|
|
372
|
+
${$}
|
|
372
373
|
|
|
373
374
|
// Output to MRT
|
|
374
375
|
o_character = charOutput;
|
|
375
376
|
o_primaryColor = ${_};
|
|
376
|
-
o_secondaryColor = ${
|
|
377
|
+
o_secondaryColor = ${p};
|
|
377
378
|
}
|
|
378
|
-
`})({uniforms:this._uniformManager.getUniforms(),glslFunctions:this._glslFunctions,mainCode:this._mainCode,charOutputCode:s,primaryColorVar:n,cellColorVar:o,charMapping:t.charMapping,usesFeedback:c.usesCharColorFeedback,usesCharFeedback:c.usesCharFeedback,usesCellColorFeedback:c.usesCellColorFeedback,externalLayers:this._externalLayerManager.getExternalLayers()}),uniforms:this._uniformManager.getUniforms(),dynamicUpdaters:this._uniformManager.getDynamicUpdaters(),charMapping:t.charMapping,usesCharColorFeedback:c.usesCharColorFeedback,usesCharFeedback:c.usesCharFeedback,usesCellColorFeedback:c.usesCellColorFeedback,externalLayers:this._externalLayerManager.getExternalLayers()}}_reset(){this._varCounter=0,this._uniformManager.clear(),this._feedbackTracker.reset(),this._externalLayerManager.reset(),this._glslFunctions.clear(),this._mainCode.length=0,this._currentTarget="main"}_compileCharSource(t){const r=this._compileChain(t.charSource,"charSrc","vec4(1.0, 1.0, 1.0, 1.0)","v_uv","char"),a="charFromSource_"+this._varCounter++,n=t.charCount??256;return this._mainCode.push(" // Convert charSource color to character index"),this._mainCode.push(` float charLum_${a} = _luminance(${r.colorVar}.rgb);`),this._mainCode.push(` int charIdx_${a} = int(charLum_${a} * ${n.toFixed(1)});`),this._mainCode.push(` vec4 ${a} = vec4(float(charIdx_${a} % 256) / 255.0, float(charIdx_${a} / 256) / 255.0, 0.0, 0.0);`),a}_compileChain(t,r,a,n="v_uv",o="main"){const s=this._currentTarget;this._currentTarget=o;const c=`${r}_st`;let l,u,h,y=`${r}_c`;this._mainCode.push(` vec2 ${c} = ${n};`),this._mainCode.push(` vec4 ${y} = ${a};`);const v=t.transforms,C=v.map(i=>this._getProcessedTransform(i.name)),_=this._identifyCoordTransforms(C),f=i=>{const p=v[i],d=C[i];if(!d)return void console.warn(`[SynthCompiler] Unknown transform: ${p.name}`);const b=t.externalLayerRefs.get(i);p.name==="src"&&this._trackSrcUsage(b);const m=this._codeGenerator.getContextAwareGlslFunction(d,p.name,this._currentTarget,b,V=>this._externalLayerManager.getPrefix(V));this._glslFunctions.add(m);const M=this._processArguments(p.userArgs,d.inputs,`${r}_${i}_${p.name}`),A=t.nestedSources.get(i);let z;A&&(d.type==="combine"||d.type==="combineCoord")&&(z=this._compileChain(A,`${r}_nested_${i}`,a,c,o).colorVar);const S=this._codeGenerator.generateTransformCode(this._mainCode,d,this._varCounter++,c,y,l,u,h,M,this._currentTarget,z,b,V=>this._externalLayerManager.getPrefix(V));y=S.colorVar,S.charVar&&(l=S.charVar),S.flagsVar&&(u=S.flagsVar),S.rotationVar&&(h=S.rotationVar)};for(let i=_.length-1;i>=0;i--)f(_[i]);for(let i=0;i<v.length;i++){const p=C[i];(!p||p.type!=="coord"&&p.type!=="combineCoord")&&f(i)}return this._currentTarget=s,{coordVar:c,colorVar:y,charVar:l,flagsVar:u,rotationVar:h}}_identifyCoordTransforms(t){const r=[];for(let a=0;a<t.length;a++){const n=t[a];n&&(n.type!=="coord"&&n.type!=="combineCoord"||r.push(a))}return r}_trackSrcUsage(t){t?this._externalLayerManager.trackUsage(t,this._currentTarget):this._feedbackTracker.trackUsage(this._currentTarget)}_getProcessedTransform(t){return L.getProcessed(t)}_processArguments(t,r,a){const n=[];for(let o=0;o<r.length;o++){const s=r[o],c=t[o]??s.default,l=this._uniformManager.processArgument(c,s,a);n.push(l.glslValue)}return n}}class ee{_resolvedIndices;_lastFontCharacterCount=0;_lastChars="";resolve(t,r){const a=r.characters.length;if(this._resolvedIndices&&this._lastFontCharacterCount===a&&this._lastChars===t)return this._resolvedIndices;const n=Array.from(t),o=new Int32Array(n.length),s=r.characterMap,c=r.characters;for(let l=0;l<n.length;l++){const u=n[l],h=s.get(u);if(h!==void 0)o[l]=c.indexOf(h);else{const y=s.get(" ");o[l]=y!==void 0?c.indexOf(y):0}}return this._resolvedIndices=o,this._lastFontCharacterCount=a,this._lastChars=t,o}invalidate(){this._resolvedIndices=void 0,this._lastFontCharacterCount=0,this._lastChars=""}}function E(e={}){return{source:e.source??new w,compiled:e.compiled,shader:e.shader,characterResolver:e.characterResolver??new ee,needsCompile:e.needsCompile??!1,pingPongBuffers:e.pingPongBuffers,pingPongIndex:e.pingPongIndex??0,externalLayerMap:e.externalLayerMap,bpm:e.bpm}}let D=60;function te(e){e.bpm=function(t){return(function(r){D=r})(t),t}}function T(e){const t=new Map;for(const[,r]of e.externalLayerRefs)t.set(r.layerId,r.layer);for(const[,r]of e.nestedSources){const a=T(r);for(const[n,o]of a)t.set(n,o)}if(e.charSource){const r=T(e.charSource);for(const[a,n]of r)t.set(a,n)}if(e.colorSource){const r=T(e.colorSource);for(const[a,n]of r)t.set(a,n)}if(e.cellColorSource){const r=T(e.cellColorSource);for(const[a,n]of r)t.set(a,n)}return t}let O=null;function q(e,t,r){const a=r??O;if(a)try{a(e,t)}catch{}}function ne(e,t,r,a={}){let n;try{n=e()}catch(o){return q(o,t,a.onError),r}return(function(o){return o==null?!1:typeof o=="number"?Number.isFinite(o):Array.isArray(o)?o.length>0&&o.every(s=>typeof s=="number"&&Number.isFinite(s)):!1})(n)?n:(q(new Error(`[textmode.synth.js] Invalid dynamic parameter value for "${t}": ${N(n)}`),t,a.onError),r)}function N(e){if(e===void 0)return"undefined";if(e===null)return"null";if(typeof e=="number"){if(Number.isNaN(e))return"NaN";if(!Number.isFinite(e))return e>0?"Infinity":"-Infinity"}if(Array.isArray(e)){const t=e.findIndex(r=>typeof r!="number"||!Number.isFinite(r));if(t>=0)return`array with invalid element at index ${t}: ${N(e[t])}`}return String(e)}function re(e){const t=e.getPluginState($);t&&(t.shader?.dispose&&t.shader.dispose(),t.pingPongBuffers&&(t.pingPongBuffers[0].dispose?.(),t.pingPongBuffers[1].dispose?.()))}const ae={name:$,version:"1.0.0",install(e,t){te(e),(function(r){r.extendLayer("synth",function(a){const n=this.grid!==void 0&&this.drawFramebuffer!==void 0;let o=this.getPluginState($);o?(o.source=a,o.needsCompile=!0,o.characterResolver.invalidate(),n&&(o.compiled=X(a))):o=E({source:a,compiled:n?X(a):void 0,needsCompile:!0}),this.setPluginState($,o)})})(t),(function(r){r.extendLayer("bpm",function(a){let n=this.getPluginState($);n?n.bpm=a:n=E({bpm:a}),this.setPluginState($,n)})})(t),(function(r){r.extendLayer("clearSynth",function(){const a=this.getPluginState($);a&&(a.shader?.dispose&&a.shader.dispose(),a.pingPongBuffers&&(a.pingPongBuffers[0].dispose?.(),a.pingPongBuffers[1].dispose?.()),this.setPluginState($,void 0))})})(t),t.registerLayerPreRenderHook(r=>(async function(a,n){const o=a.getPluginState($);if(!o)return;const s=a.grid,c=a.drawFramebuffer;if(!s||!c||(o.compiled||(o.compiled=X(o.source),o.externalLayerMap=T(o.source),o.needsCompile=!0),o.needsCompile&&o.compiled&&(o.shader?.dispose&&o.shader.dispose(),o.externalLayerMap=T(o.source),o.shader=await n.createFilterShader(o.compiled.fragmentSource),o.needsCompile=!1),!o.shader||!o.compiled))return;const l=o.compiled.usesCharColorFeedback,u=o.compiled.usesCharFeedback,h=o.compiled.usesCellColorFeedback,y=l||u||h;y&&!o.pingPongBuffers&&(o.pingPongBuffers=[n.createFramebuffer({width:s.cols,height:s.rows,attachments:3}),n.createFramebuffer({width:s.cols,height:s.rows,attachments:3})],o.pingPongIndex=0);const v={time:n.secs,frameCount:n.frameCount,width:s.width,height:s.height,cols:s.cols,rows:s.rows,bpm:o.bpm??D},C=new Map;for(const[f,i]of o.compiled.dynamicUpdaters){const p=o.compiled.uniforms.get(f),d=ne(()=>i(v),f,p?.value??0,{onError:o.onDynamicError});C.set(f,d)}const _=f=>{n.setUniform("time",n.secs),n.setUniform("resolution",[v.cols,v.rows]);for(const[p,d]of C)n.setUniform(p,d);for(const[p,d]of o.compiled.uniforms)d.isDynamic||typeof d.value=="function"||n.setUniform(p,d.value);if(o.compiled.charMapping){const p=o.characterResolver.resolve(o.compiled.charMapping.chars,a.font);n.setUniform("u_charMap",p),n.setUniform("u_charMapSize",p.length)}f&&(l&&n.setUniform("prevCharColorBuffer",f.textures[1]),u&&n.setUniform("prevCharBuffer",f.textures[0]),h&&n.setUniform("prevCellColorBuffer",f.textures[2]));const i=o.compiled.externalLayers;if(i&&i.size>0&&o.externalLayerMap)for(const[p,d]of i){const b=o.externalLayerMap.get(p);if(!b){console.warn(`[textmode.synth.js] External layer not found: ${p}`);continue}const m=b.getPluginState($);let M;m?.pingPongBuffers?M=m.pingPongBuffers[m.pingPongIndex].textures:b.drawFramebuffer&&(M=b.drawFramebuffer.textures),M&&(d.usesChar&&n.setUniform(`${d.uniformPrefix}_char`,M[0]),d.usesCharColor&&n.setUniform(`${d.uniformPrefix}_primary`,M[1]),d.usesCellColor&&n.setUniform(`${d.uniformPrefix}_cell`,M[2]))}};if(y&&o.pingPongBuffers){const f=o.pingPongBuffers[o.pingPongIndex],i=o.pingPongBuffers[1-o.pingPongIndex];i.begin(),n.clear(),n.shader(o.shader),_(f),n.rect(s.cols,s.rows),i.end(),c.begin(),n.clear(),n.shader(o.shader),_(f),n.rect(s.cols,s.rows),c.end(),o.pingPongIndex=1-o.pingPongIndex}else c.begin(),n.clear(),n.shader(o.shader),_(null),n.rect(s.cols,s.rows),c.end()})(r,e)),t.registerLayerDisposedHook(re)},uninstall(e,t){const r=[t.layerManager.base,...t.layerManager.all];for(const a of r){const n=a.getPluginState($);n&&(n.shader?.dispose&&n.shader.dispose(),n.pingPongBuffers&&(n.pingPongBuffers[0].dispose?.(),n.pingPongBuffers[1].dispose?.()))}delete e.bpm,t.removeLayerExtension("synth"),t.removeLayerExtension("bpm"),t.removeLayerExtension("clearSynth")}};g.SynthPlugin=ae,g.SynthSource=w,g.cellColor=e=>{const t=new w;return t._colorSource=e,t},g.char=(e,t)=>{const r=new w;return r._charSource=e,r._charCount=t,r},g.charColor=e=>{const t=new w;return t._colorSource=e,t},g.gradient=function(e){return k.gradient(e)},g.noise=function(e,t){return k.noise(e,t)},g.osc=function(e,t,r){return k.osc(e,t,r)},g.paint=e=>{const t=new w;return t._colorSource=e,t._cellColorSource=e,t},g.setGlobalErrorCallback=function(e){O=e},g.shape=function(e,t,r){return k.shape(e,t,r)},g.solid=function(e,t,r,a){return k.solid(e,t,r,a)},g.src=e=>{const t=k.src;if(!e)return t();const r=new w,a=e.id??`layer_${Date.now()}_${Math.random().toString(36).slice(2,9)}`;return r.addExternalLayerRef({layerId:a,layer:e}),r},g.voronoi=function(e,t,r){return k.voronoi(e,t,r)},Object.defineProperty(g,Symbol.toStringTag,{value:"Module"})});
|
|
379
|
+
`})({uniforms:this._uniformManager.getUniforms(),glslFunctions:this._glslFunctions,mainCode:this._mainCode,charOutputCode:s,primaryColorVar:n,cellColorVar:o,charMapping:t.charMapping,usesFeedback:c.usesCharColorFeedback,usesCharFeedback:c.usesCharFeedback,usesCellColorFeedback:c.usesCellColorFeedback,usesCharSource:this._usesCharSource,externalLayers:this._externalLayerManager.getExternalLayers()}),uniforms:this._uniformManager.getUniforms(),dynamicUpdaters:this._uniformManager.getDynamicUpdaters(),charMapping:t.charMapping,usesCharColorFeedback:c.usesCharColorFeedback,usesCharFeedback:c.usesCharFeedback,usesCellColorFeedback:c.usesCellColorFeedback,usesCharSource:this._usesCharSource,externalLayers:this._externalLayerManager.getExternalLayers()}}_reset(){this._varCounter=0,this._uniformManager.clear(),this._feedbackTracker.reset(),this._externalLayerManager.reset(),this._glslFunctions.clear(),this._mainCode.length=0,this._currentTarget="main",this._usesCharSource=!1}_compileCharSource(t){this._usesCharSource=!0;const r=this._compileChain(t.charSource,"charSrc","vec4(1.0, 1.0, 1.0, 1.0)","v_uv","char"),a="charFromSource_"+this._varCounter++;return this._mainCode.push(" // Convert charSource color to character index"),this._mainCode.push(` float charLum_${a} = _luminance(${r.colorVar}.rgb);`),this._mainCode.push(` int charIdx_${a} = int(charLum_${a} * u_charSourceCount);`),this._mainCode.push(` vec4 ${a} = vec4(float(charIdx_${a} % 256) / 255.0, float(charIdx_${a} / 256) / 255.0, 0.0, 0.0);`),a}_compileChain(t,r,a,n="v_uv",o="main"){const s=this._currentTarget;this._currentTarget=o;const c=`${r}_st`;let l,f,h,y=`${r}_c`;this._mainCode.push(` vec2 ${c} = ${n};`),this._mainCode.push(` vec4 ${y} = ${a};`);const v=t.transforms,C=v.map(i=>this._getProcessedTransform(i.name)),_=this._identifyCoordTransforms(C),p=i=>{const u=v[i],m=C[i];if(!m)return void console.warn(`[SynthCompiler] Unknown transform: ${u.name}`);const b=t.externalLayerRefs.get(i);u.name==="src"&&this._trackSrcUsage(b);const d=this._codeGenerator.getContextAwareGlslFunction(m,u.name,this._currentTarget,b,k=>this._externalLayerManager.getPrefix(k));this._glslFunctions.add(d);const M=this._processArguments(u.userArgs,m.inputs,`${r}_${i}_${u.name}`),B=t.nestedSources.get(i);let z;B&&(m.type==="combine"||m.type==="combineCoord")&&(z=this._compileChain(B,`${r}_nested_${i}`,a,c,o).colorVar);const $=this._codeGenerator.generateTransformCode(this._mainCode,m,this._varCounter++,c,y,l,f,h,M,this._currentTarget,z,b,k=>this._externalLayerManager.getPrefix(k));y=$.colorVar,$.charVar&&(l=$.charVar),$.flagsVar&&(f=$.flagsVar),$.rotationVar&&(h=$.rotationVar)};for(let i=_.length-1;i>=0;i--)p(_[i]);for(let i=0;i<v.length;i++){const u=C[i];(!u||u.type!=="coord"&&u.type!=="combineCoord")&&p(i)}return this._currentTarget=s,{coordVar:c,colorVar:y,charVar:l,flagsVar:f,rotationVar:h}}_identifyCoordTransforms(t){const r=[];for(let a=0;a<t.length;a++){const n=t[a];n&&(n.type!=="coord"&&n.type!=="combineCoord"||r.push(a))}return r}_trackSrcUsage(t){t?this._externalLayerManager.trackUsage(t,this._currentTarget):this._feedbackTracker.trackUsage(this._currentTarget)}_getProcessedTransform(t){return A.getProcessed(t)}_processArguments(t,r,a){const n=[];for(let o=0;o<r.length;o++){const s=r[o],c=t[o]??s.default,l=this._uniformManager.processArgument(c,s,a);n.push(l.glslValue)}return n}}class ee{_resolvedIndices;_lastFontCharacterCount=0;_lastChars="";resolve(t,r){const a=r.characters.length;if(this._resolvedIndices&&this._lastFontCharacterCount===a&&this._lastChars===t)return this._resolvedIndices;const n=Array.from(t),o=new Int32Array(n.length),s=r.characterMap,c=r.characters;for(let l=0;l<n.length;l++){const f=n[l],h=s.get(f);if(h!==void 0)o[l]=c.indexOf(h);else{const y=s.get(" ");o[l]=y!==void 0?c.indexOf(y):0}}return this._resolvedIndices=o,this._lastFontCharacterCount=a,this._lastChars=t,o}invalidate(){this._resolvedIndices=void 0,this._lastFontCharacterCount=0,this._lastChars=""}}function E(e={}){return{source:e.source??new S,compiled:e.compiled,shader:e.shader,characterResolver:e.characterResolver??new ee,needsCompile:e.needsCompile??!1,pingPongBuffers:e.pingPongBuffers,pingPongIndex:e.pingPongIndex??0,externalLayerMap:e.externalLayerMap,bpm:e.bpm}}let D=60;function te(e){e.bpm=function(t){return(function(r){D=r})(t),t}}function I(e){const t=new Map;for(const[,r]of e.externalLayerRefs)t.set(r.layerId,r.layer);for(const[,r]of e.nestedSources){const a=I(r);for(const[n,o]of a)t.set(n,o)}if(e.charSource){const r=I(e.charSource);for(const[a,n]of r)t.set(a,n)}if(e.colorSource){const r=I(e.colorSource);for(const[a,n]of r)t.set(a,n)}if(e.cellColorSource){const r=I(e.cellColorSource);for(const[a,n]of r)t.set(a,n)}return t}let O=null;function q(e,t,r){const a=r??O;if(a)try{a(e,t)}catch{}}function ne(e,t,r,a={}){let n;try{n=e()}catch(o){return q(o,t,a.onError),r}return(function(o){return o==null?!1:typeof o=="number"?Number.isFinite(o):Array.isArray(o)?o.length>0&&o.every(s=>typeof s=="number"&&Number.isFinite(s)):!1})(n)?n:(q(new Error(`[textmode.synth.js] Invalid dynamic parameter value for "${t}": ${N(n)}`),t,a.onError),r)}function N(e){if(e===void 0)return"undefined";if(e===null)return"null";if(typeof e=="number"){if(Number.isNaN(e))return"NaN";if(!Number.isFinite(e))return e>0?"Infinity":"-Infinity"}if(Array.isArray(e)){const t=e.findIndex(r=>typeof r!="number"||!Number.isFinite(r));if(t>=0)return`array with invalid element at index ${t}: ${N(e[t])}`}return String(e)}function re(e){const t=e.getPluginState(w);t&&(t.shader?.dispose&&t.shader.dispose(),t.pingPongBuffers&&(t.pingPongBuffers[0].dispose?.(),t.pingPongBuffers[1].dispose?.()))}const ae={name:w,version:"1.0.0",install(e,t){te(e),(function(r){r.extendLayer("synth",function(a){const n=this.grid!==void 0&&this.drawFramebuffer!==void 0;let o=this.getPluginState(w);o?(o.source=a,o.needsCompile=!0,o.characterResolver.invalidate(),n&&(o.compiled=X(a))):o=E({source:a,compiled:n?X(a):void 0,needsCompile:!0}),this.setPluginState(w,o)})})(t),(function(r){r.extendLayer("bpm",function(a){let n=this.getPluginState(w);n?n.bpm=a:n=E({bpm:a}),this.setPluginState(w,n)})})(t),(function(r){r.extendLayer("clearSynth",function(){const a=this.getPluginState(w);a&&(a.shader?.dispose&&a.shader.dispose(),a.pingPongBuffers&&(a.pingPongBuffers[0].dispose?.(),a.pingPongBuffers[1].dispose?.()),this.setPluginState(w,void 0))})})(t),t.registerLayerPreRenderHook(r=>(async function(a,n){const o=a.getPluginState(w);if(!o)return;const s=a.grid,c=a.drawFramebuffer;if(!s||!c||(o.compiled||(o.compiled=X(o.source),o.externalLayerMap=I(o.source),o.needsCompile=!0),o.needsCompile&&o.compiled&&(o.shader?.dispose&&o.shader.dispose(),o.externalLayerMap=I(o.source),o.shader=await n.createFilterShader(o.compiled.fragmentSource),o.needsCompile=!1),!o.shader||!o.compiled))return;const l=o.compiled.usesCharColorFeedback,f=o.compiled.usesCharFeedback,h=o.compiled.usesCellColorFeedback,y=l||f||h;y&&!o.pingPongBuffers&&(o.pingPongBuffers=[n.createFramebuffer({width:s.cols,height:s.rows,attachments:3}),n.createFramebuffer({width:s.cols,height:s.rows,attachments:3})],o.pingPongIndex=0);const v={time:n.secs,frameCount:n.frameCount,width:s.width,height:s.height,cols:s.cols,rows:s.rows,bpm:o.bpm??D},C=new Map;for(const[p,i]of o.compiled.dynamicUpdaters){const u=o.compiled.uniforms.get(p),m=ne(()=>i(v),p,u?.value??0,{onError:o.onDynamicError});C.set(p,m)}const _=p=>{n.setUniform("time",n.secs),n.setUniform("resolution",[v.cols,v.rows]);for(const[u,m]of C)n.setUniform(u,m);for(const[u,m]of o.compiled.uniforms)m.isDynamic||typeof m.value=="function"||n.setUniform(u,m.value);if(o.compiled.charMapping){const u=o.characterResolver.resolve(o.compiled.charMapping.chars,a.font);n.setUniform("u_charMap",u),n.setUniform("u_charMapSize",u.length)}if(o.compiled.usesCharSource){const u=o.compiled.charMapping?o.compiled.charMapping.chars.length:a.font.characters.length;n.setUniform("u_charSourceCount",u)}p&&(l&&n.setUniform("prevCharColorBuffer",p.textures[1]),f&&n.setUniform("prevCharBuffer",p.textures[0]),h&&n.setUniform("prevCellColorBuffer",p.textures[2]));const i=o.compiled.externalLayers;if(i&&i.size>0&&o.externalLayerMap)for(const[u,m]of i){const b=o.externalLayerMap.get(u);if(!b){console.warn(`[textmode.synth.js] External layer not found: ${u}`);continue}const d=b.getPluginState(w);let M;d?.pingPongBuffers?M=d.pingPongBuffers[d.pingPongIndex].textures:b.drawFramebuffer&&(M=b.drawFramebuffer.textures),M&&(m.usesChar&&n.setUniform(`${m.uniformPrefix}_char`,M[0]),m.usesCharColor&&n.setUniform(`${m.uniformPrefix}_primary`,M[1]),m.usesCellColor&&n.setUniform(`${m.uniformPrefix}_cell`,M[2]))}};if(y&&o.pingPongBuffers){const p=o.pingPongBuffers[o.pingPongIndex],i=o.pingPongBuffers[1-o.pingPongIndex];i.begin(),n.clear(),n.shader(o.shader),_(p),n.rect(s.cols,s.rows),i.end(),c.begin(),n.clear(),n.shader(o.shader),_(p),n.rect(s.cols,s.rows),c.end(),o.pingPongIndex=1-o.pingPongIndex}else c.begin(),n.clear(),n.shader(o.shader),_(null),n.rect(s.cols,s.rows),c.end()})(r,e)),t.registerLayerDisposedHook(re)},uninstall(e,t){const r=[t.layerManager.base,...t.layerManager.all];for(const a of r){const n=a.getPluginState(w);n&&(n.shader?.dispose&&n.shader.dispose(),n.pingPongBuffers&&(n.pingPongBuffers[0].dispose?.(),n.pingPongBuffers[1].dispose?.()))}delete e.bpm,t.removeLayerExtension("synth"),t.removeLayerExtension("bpm"),t.removeLayerExtension("clearSynth")}};g.SynthPlugin=ae,g.SynthSource=S,g.cellColor=e=>{const t=new S;return t._colorSource=e,t},g.char=(e,t)=>{const r=new S;return r._charSource=e,r._charCount=t,r},g.charColor=e=>{const t=new S;return t._colorSource=e,t},g.gradient=function(e){return P.gradient(e)},g.noise=function(e,t){return P.noise(e,t)},g.osc=function(e,t,r){return P.osc(e,t,r)},g.paint=e=>{const t=new S;return t._colorSource=e,t._cellColorSource=e,t},g.setGlobalErrorCallback=function(e){O=e},g.shape=function(e,t,r){return P.shape(e,t,r)},g.solid=function(e,t,r,a){return P.solid(e,t,r,a)},g.src=e=>{const t=P.src;if(!e)return t();const r=new S,a=e.id??`layer_${Date.now()}_${Math.random().toString(36).slice(2,9)}`;return r.addExternalLayerRef({layerId:a,layer:e}),r},g.voronoi=function(e,t,r){return P.voronoi(e,t,r)},Object.defineProperty(g,Symbol.toStringTag,{value:"Module"})});
|
|
@@ -30,6 +30,8 @@ export interface ShaderGenerationOptions {
|
|
|
30
30
|
usesCharFeedback?: boolean;
|
|
31
31
|
/** Whether cell color feedback (src) is used */
|
|
32
32
|
usesCellColorFeedback?: boolean;
|
|
33
|
+
/** Whether char() function is used */
|
|
34
|
+
usesCharSource?: boolean;
|
|
33
35
|
/** External layer references used in this shader */
|
|
34
36
|
externalLayers?: Map<string, ExternalLayerInfo>;
|
|
35
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GLSLGenerator.d.ts","sourceRoot":"","sources":["../../../src/compiler/GLSLGenerator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,2BAA2B;IAC3B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpC,gCAAgC;IAChC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4BAA4B;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gDAAgD;IAChD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,oDAAoD;IACpD,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAChD;AAuGD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"GLSLGenerator.d.ts","sourceRoot":"","sources":["../../../src/compiler/GLSLGenerator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,2BAA2B;IAC3B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpC,gCAAgC;IAChC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4BAA4B;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gDAAgD;IAChD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,sCAAsC;IACtC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oDAAoD;IACpD,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAChD;AAuGD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CA8G/E;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAC1C,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACd,MAAM,CAaR"}
|
|
@@ -45,6 +45,8 @@ export interface CompiledSynthShader {
|
|
|
45
45
|
usesCharFeedback: boolean;
|
|
46
46
|
/** Whether this shader uses cell color feedback (src) - reads from prevCellColorBuffer */
|
|
47
47
|
usesCellColorFeedback: boolean;
|
|
48
|
+
/** Whether this shader uses char() function for character indices */
|
|
49
|
+
usesCharSource: boolean;
|
|
48
50
|
/** External layer references used in this shader, keyed by layer ID */
|
|
49
51
|
externalLayers: Map<string, ExternalLayerInfo>;
|
|
50
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/compiler/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAElF;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IACjC,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,aAAa,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,aAAa,EAAE,OAAO,CAAC;IACvB,gDAAgD;IAChD,aAAa,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpC,qDAAqD;IACrD,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACvE,4CAA4C;IAC5C,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,+FAA+F;IAC/F,qBAAqB,EAAE,OAAO,CAAC;IAC/B,oFAAoF;IACpF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,0FAA0F;IAC1F,qBAAqB,EAAE,OAAO,CAAC;IAC/B,uEAAuE;IACvE,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACtB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,yBAAyB;IACzB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpC,+BAA+B;IAC/B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;CACvE"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/compiler/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAElF;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IACjC,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,aAAa,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,aAAa,EAAE,OAAO,CAAC;IACvB,gDAAgD;IAChD,aAAa,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpC,qDAAqD;IACrD,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACvE,4CAA4C;IAC5C,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,+FAA+F;IAC/F,qBAAqB,EAAE,OAAO,CAAC;IAC/B,oFAAoF;IACpF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,0FAA0F;IAC1F,qBAAqB,EAAE,OAAO,CAAC;IAC/B,qEAAqE;IACrE,cAAc,EAAE,OAAO,CAAC;IACxB,uEAAuE;IACvE,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACtB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,yBAAyB;IACzB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpC,+BAA+B;IAC/B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;CACvE"}
|
|
@@ -63,21 +63,22 @@ export interface ISynthSource {
|
|
|
63
63
|
cellColor(source: ISynthSource): this;
|
|
64
64
|
/**
|
|
65
65
|
* Set the character indices using a character source chain.
|
|
66
|
+
* The number of characters is determined by `charMap()` if defined,
|
|
67
|
+
* otherwise falls back to the total characters in the layer's font.
|
|
66
68
|
*
|
|
67
69
|
* @param source A synth source producing character indices
|
|
68
|
-
* @param charCount Number of different characters to use from the character mapping
|
|
69
70
|
* @returns The SynthSource for chaining
|
|
70
71
|
*
|
|
71
72
|
* @example
|
|
72
73
|
* ```ts
|
|
73
|
-
* // Use noise to select characters
|
|
74
|
-
* char(noise(10)
|
|
74
|
+
* // Use noise to select characters from charMap
|
|
75
|
+
* char(noise(10)).charMap('@#%*+=-:. ')
|
|
75
76
|
*
|
|
76
|
-
* // Use oscillator
|
|
77
|
-
* char(osc(5)
|
|
77
|
+
* // Use oscillator with default font characters
|
|
78
|
+
* char(osc(5))
|
|
78
79
|
* ```
|
|
79
80
|
*/
|
|
80
|
-
char(source: ISynthSource
|
|
81
|
+
char(source: ISynthSource): this;
|
|
81
82
|
/**
|
|
82
83
|
* Set both character foreground and cell background color using the same source chain.
|
|
83
84
|
* This is a convenience method that combines `.charColor()` and `.cellColor()` in one call.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ISynthSource.d.ts","sourceRoot":"","sources":["../../../src/core/ISynthSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC5B;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAEtC;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAEtC
|
|
1
|
+
{"version":3,"file":"ISynthSource.d.ts","sourceRoot":"","sources":["../../../src/core/ISynthSource.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,6 @@ interface SynthSourceCreateOptions {
|
|
|
12
12
|
colorSource?: SynthSource;
|
|
13
13
|
cellColorSource?: SynthSource;
|
|
14
14
|
charSource?: SynthSource;
|
|
15
|
-
charCount?: number;
|
|
16
15
|
nestedSources?: Map<number, SynthSource>;
|
|
17
16
|
externalLayerRefs?: Map<number, ExternalLayerReference>;
|
|
18
17
|
}
|
|
@@ -51,8 +50,6 @@ export declare class SynthSource {
|
|
|
51
50
|
private _cellColorSource?;
|
|
52
51
|
/** Reference to the character source chain (if any) - used by char() function */
|
|
53
52
|
private _charSource?;
|
|
54
|
-
/** Number of unique characters when using char() function */
|
|
55
|
-
private _charCount?;
|
|
56
53
|
/**
|
|
57
54
|
* Create a new SynthSource.
|
|
58
55
|
* @param options Optional initialization options
|
|
@@ -78,7 +75,7 @@ export declare class SynthSource {
|
|
|
78
75
|
addExternalLayerRef(ref: ExternalLayerReference): this;
|
|
79
76
|
charMap(chars: string): this;
|
|
80
77
|
charColor(source: SynthSource): this;
|
|
81
|
-
char(source: SynthSource
|
|
78
|
+
char(source: SynthSource): this;
|
|
82
79
|
cellColor(source: SynthSource): this;
|
|
83
80
|
paint(source: SynthSource): this;
|
|
84
81
|
clone(): SynthSource;
|
|
@@ -107,11 +104,6 @@ export declare class SynthSource {
|
|
|
107
104
|
* @ignore
|
|
108
105
|
*/
|
|
109
106
|
get charSource(): SynthSource | undefined;
|
|
110
|
-
/**
|
|
111
|
-
* Get the character count if defined (from char() function).
|
|
112
|
-
* @ignore
|
|
113
|
-
*/
|
|
114
|
-
get charCount(): number | undefined;
|
|
115
107
|
/**
|
|
116
108
|
* Get all nested sources for combine operations.
|
|
117
109
|
* @ignore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SynthSource.d.ts","sourceRoot":"","sources":["../../../src/core/SynthSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAInD,MAAM,WAAW,WAAY,SAAQ,YAAY;
|
|
1
|
+
{"version":3,"file":"SynthSource.d.ts","sourceRoot":"","sources":["../../../src/core/SynthSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAInD,MAAM,WAAW,WAAY,SAAQ,YAAY;CAAI;AAErD;;GAEG;AACH,UAAU,wBAAwB;IACjC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzC,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CACxD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,WAAW;IACvB,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IAEpC,8CAA8C;IAC9C,OAAO,CAAC,YAAY,CAAC,CAAmB;IAExC,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAE1D,yFAAyF;IACzF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsC;IAEzE,mDAAmD;IACnD,OAAO,CAAC,YAAY,CAAC,CAAc;IAEnC,wDAAwD;IACxD,OAAO,CAAC,gBAAgB,CAAC,CAAc;IAEvC,iFAAiF;IACjF,OAAO,CAAC,WAAW,CAAC,CAAc;IAElC;;;;OAIG;gBACS,OAAO,CAAC,EAAE,wBAAwB;IAU9C;;;;OAIG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,EAAE,GAAG,IAAI;IASxE;;;OAGG;IACI,mBAAmB,CACzB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,mBAAmB,EAAE,GAC7B,IAAI;IAMP;;;;OAIG;IACI,mBAAmB,CAAC,GAAG,EAAE,sBAAsB,GAAG,IAAI;IAMtD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAa5B,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAKpC,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAK/B,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAKpC,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAMhC,KAAK,IAAI,WAAW;IAwB3B;;;OAGG;IACH,IAAW,UAAU,IAAI,SAAS,eAAe,EAAE,CAElD;IAED;;;OAGG;IACH,IAAW,WAAW,IAAI,gBAAgB,GAAG,SAAS,CAErD;IAED;;;OAGG;IACH,IAAW,WAAW,IAAI,WAAW,GAAG,SAAS,CAEhD;IAED;;;OAGG;IACH,IAAW,eAAe,IAAI,WAAW,GAAG,SAAS,CAEpD;IAED;;;OAGG;IACH,IAAW,UAAU,IAAI,WAAW,GAAG,SAAS,CAE/C;IAID;;;OAGG;IACH,IAAW,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAEnD;IAED;;;OAGG;IACH,IAAW,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAElE;CACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synthRender.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/synthRender.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"synthRender.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/synthRender.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,iBA+LxE"}
|