This commit is contained in:
Akko
2025-08-04 18:57:35 +02:00
parent 8cf6e78a79
commit 9495868c2e
5030 changed files with 518594 additions and 17609 deletions

5
node_modules/pixi.js/lib/unsafe-eval/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,5 @@
export * from './shader/generateShaderSyncPolyfill';
export * from './ubo/generateUboSyncPolyfill';
export * from './ubo/uboSyncFunctions';
export * from './uniforms/generateUniformsSyncPolyfill';
export * from './uniforms/uniformSyncFunctions';

1
node_modules/pixi.js/lib/unsafe-eval/init.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export {};

43
node_modules/pixi.js/lib/unsafe-eval/init.js generated vendored Normal file
View File

@@ -0,0 +1,43 @@
'use strict';
var GlUboSystem = require('../rendering/renderers/gl/GlUboSystem.js');
var GlShaderSystem = require('../rendering/renderers/gl/shader/GlShaderSystem.js');
var GlUniformGroupSystem = require('../rendering/renderers/gl/shader/GlUniformGroupSystem.js');
var GpuUboSystem = require('../rendering/renderers/gpu/GpuUboSystem.js');
var UboSystem = require('../rendering/renderers/shared/shader/UboSystem.js');
var AbstractRenderer = require('../rendering/renderers/shared/system/AbstractRenderer.js');
var generateShaderSyncPolyfill = require('./shader/generateShaderSyncPolyfill.js');
var generateUboSyncPolyfill = require('./ubo/generateUboSyncPolyfill.js');
var generateUniformsSyncPolyfill = require('./uniforms/generateUniformsSyncPolyfill.js');
"use strict";
function selfInstall() {
Object.assign(AbstractRenderer.AbstractRenderer.prototype, {
// override unsafeEval check, as we don't need to use it
_unsafeEvalCheck() {
}
});
Object.assign(UboSystem.UboSystem.prototype, {
// override unsafeEval check, as we don't need to use it
_systemCheck() {
}
});
Object.assign(GlUniformGroupSystem.GlUniformGroupSystem.prototype, {
// use polyfill which avoids eval method
_generateUniformsSync: generateUniformsSyncPolyfill.generateUniformsSyncPolyfill
});
Object.assign(GlUboSystem.GlUboSystem.prototype, {
// use polyfill which avoids eval method
_generateUboSync: generateUboSyncPolyfill.generateUboSyncPolyfillSTD40
});
Object.assign(GpuUboSystem.GpuUboSystem.prototype, {
// use polyfill which avoids eval method
_generateUboSync: generateUboSyncPolyfill.generateUboSyncPolyfillWGSL
});
Object.assign(GlShaderSystem.GlShaderSystem.prototype, {
// use polyfill which avoids eval method
_generateShaderSync: generateShaderSyncPolyfill.generateShaderSyncPolyfill
});
}
selfInstall();
//# sourceMappingURL=init.js.map

1
node_modules/pixi.js/lib/unsafe-eval/init.js.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"init.js","sources":["../../src/unsafe-eval/init.ts"],"sourcesContent":["import { GlUboSystem } from '../rendering/renderers/gl/GlUboSystem';\nimport { GlShaderSystem } from '../rendering/renderers/gl/shader/GlShaderSystem';\nimport { GlUniformGroupSystem } from '../rendering/renderers/gl/shader/GlUniformGroupSystem';\nimport { GpuUboSystem } from '../rendering/renderers/gpu/GpuUboSystem';\nimport { UboSystem } from '../rendering/renderers/shared/shader/UboSystem';\nimport { AbstractRenderer } from '../rendering/renderers/shared/system/AbstractRenderer';\nimport { generateShaderSyncPolyfill } from './shader/generateShaderSyncPolyfill';\nimport {\n generateUboSyncPolyfillSTD40,\n generateUboSyncPolyfillWGSL\n} from './ubo/generateUboSyncPolyfill';\nimport { generateUniformsSyncPolyfill } from './uniforms/generateUniformsSyncPolyfill';\n\nfunction selfInstall()\n{\n Object.assign(AbstractRenderer.prototype, {\n // override unsafeEval check, as we don't need to use it\n _unsafeEvalCheck()\n {\n // Do nothing, don't throw error\n },\n });\n\n Object.assign(UboSystem.prototype, {\n // override unsafeEval check, as we don't need to use it\n _systemCheck()\n {\n // Do nothing, don't throw error\n },\n });\n\n Object.assign(GlUniformGroupSystem.prototype, {\n // use polyfill which avoids eval method\n _generateUniformsSync: generateUniformsSyncPolyfill,\n });\n\n Object.assign(GlUboSystem.prototype, {\n // use polyfill which avoids eval method\n _generateUboSync: generateUboSyncPolyfillSTD40,\n });\n\n Object.assign(GpuUboSystem.prototype, {\n // use polyfill which avoids eval method\n _generateUboSync: generateUboSyncPolyfillWGSL,\n });\n\n Object.assign(GlShaderSystem.prototype, {\n // use polyfill which avoids eval method\n _generateShaderSync: generateShaderSyncPolyfill,\n });\n}\n\nselfInstall();\n"],"names":["AbstractRenderer","UboSystem","GlUniformGroupSystem","generateUniformsSyncPolyfill","GlUboSystem","generateUboSyncPolyfillSTD40","GpuUboSystem","generateUboSyncPolyfillWGSL","GlShaderSystem","generateShaderSyncPolyfill"],"mappings":";;;;;;;;;;;;;AAaA,SAAS,WACT,GAAA;AACI,EAAO,MAAA,CAAA,MAAA,CAAOA,kCAAiB,SAAW,EAAA;AAAA;AAAA,IAEtC,gBACA,GAAA;AAAA,KAEA;AAAA,GACH,CAAA,CAAA;AAED,EAAO,MAAA,CAAA,MAAA,CAAOC,oBAAU,SAAW,EAAA;AAAA;AAAA,IAE/B,YACA,GAAA;AAAA,KAEA;AAAA,GACH,CAAA,CAAA;AAED,EAAO,MAAA,CAAA,MAAA,CAAOC,0CAAqB,SAAW,EAAA;AAAA;AAAA,IAE1C,qBAAuB,EAAAC,yDAAA;AAAA,GAC1B,CAAA,CAAA;AAED,EAAO,MAAA,CAAA,MAAA,CAAOC,wBAAY,SAAW,EAAA;AAAA;AAAA,IAEjC,gBAAkB,EAAAC,oDAAA;AAAA,GACrB,CAAA,CAAA;AAED,EAAO,MAAA,CAAA,MAAA,CAAOC,0BAAa,SAAW,EAAA;AAAA;AAAA,IAElC,gBAAkB,EAAAC,mDAAA;AAAA,GACrB,CAAA,CAAA;AAED,EAAO,MAAA,CAAA,MAAA,CAAOC,8BAAe,SAAW,EAAA;AAAA;AAAA,IAEpC,mBAAqB,EAAAC,qDAAA;AAAA,GACxB,CAAA,CAAA;AACL,CAAA;AAEA,WAAY,EAAA;;"}

41
node_modules/pixi.js/lib/unsafe-eval/init.mjs generated vendored Normal file
View File

@@ -0,0 +1,41 @@
import { GlUboSystem } from '../rendering/renderers/gl/GlUboSystem.mjs';
import { GlShaderSystem } from '../rendering/renderers/gl/shader/GlShaderSystem.mjs';
import { GlUniformGroupSystem } from '../rendering/renderers/gl/shader/GlUniformGroupSystem.mjs';
import { GpuUboSystem } from '../rendering/renderers/gpu/GpuUboSystem.mjs';
import { UboSystem } from '../rendering/renderers/shared/shader/UboSystem.mjs';
import { AbstractRenderer } from '../rendering/renderers/shared/system/AbstractRenderer.mjs';
import { generateShaderSyncPolyfill } from './shader/generateShaderSyncPolyfill.mjs';
import { generateUboSyncPolyfillSTD40, generateUboSyncPolyfillWGSL } from './ubo/generateUboSyncPolyfill.mjs';
import { generateUniformsSyncPolyfill } from './uniforms/generateUniformsSyncPolyfill.mjs';
"use strict";
function selfInstall() {
Object.assign(AbstractRenderer.prototype, {
// override unsafeEval check, as we don't need to use it
_unsafeEvalCheck() {
}
});
Object.assign(UboSystem.prototype, {
// override unsafeEval check, as we don't need to use it
_systemCheck() {
}
});
Object.assign(GlUniformGroupSystem.prototype, {
// use polyfill which avoids eval method
_generateUniformsSync: generateUniformsSyncPolyfill
});
Object.assign(GlUboSystem.prototype, {
// use polyfill which avoids eval method
_generateUboSync: generateUboSyncPolyfillSTD40
});
Object.assign(GpuUboSystem.prototype, {
// use polyfill which avoids eval method
_generateUboSync: generateUboSyncPolyfillWGSL
});
Object.assign(GlShaderSystem.prototype, {
// use polyfill which avoids eval method
_generateShaderSync: generateShaderSyncPolyfill
});
}
selfInstall();
//# sourceMappingURL=init.mjs.map

1
node_modules/pixi.js/lib/unsafe-eval/init.mjs.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"init.mjs","sources":["../../src/unsafe-eval/init.ts"],"sourcesContent":["import { GlUboSystem } from '../rendering/renderers/gl/GlUboSystem';\nimport { GlShaderSystem } from '../rendering/renderers/gl/shader/GlShaderSystem';\nimport { GlUniformGroupSystem } from '../rendering/renderers/gl/shader/GlUniformGroupSystem';\nimport { GpuUboSystem } from '../rendering/renderers/gpu/GpuUboSystem';\nimport { UboSystem } from '../rendering/renderers/shared/shader/UboSystem';\nimport { AbstractRenderer } from '../rendering/renderers/shared/system/AbstractRenderer';\nimport { generateShaderSyncPolyfill } from './shader/generateShaderSyncPolyfill';\nimport {\n generateUboSyncPolyfillSTD40,\n generateUboSyncPolyfillWGSL\n} from './ubo/generateUboSyncPolyfill';\nimport { generateUniformsSyncPolyfill } from './uniforms/generateUniformsSyncPolyfill';\n\nfunction selfInstall()\n{\n Object.assign(AbstractRenderer.prototype, {\n // override unsafeEval check, as we don't need to use it\n _unsafeEvalCheck()\n {\n // Do nothing, don't throw error\n },\n });\n\n Object.assign(UboSystem.prototype, {\n // override unsafeEval check, as we don't need to use it\n _systemCheck()\n {\n // Do nothing, don't throw error\n },\n });\n\n Object.assign(GlUniformGroupSystem.prototype, {\n // use polyfill which avoids eval method\n _generateUniformsSync: generateUniformsSyncPolyfill,\n });\n\n Object.assign(GlUboSystem.prototype, {\n // use polyfill which avoids eval method\n _generateUboSync: generateUboSyncPolyfillSTD40,\n });\n\n Object.assign(GpuUboSystem.prototype, {\n // use polyfill which avoids eval method\n _generateUboSync: generateUboSyncPolyfillWGSL,\n });\n\n Object.assign(GlShaderSystem.prototype, {\n // use polyfill which avoids eval method\n _generateShaderSync: generateShaderSyncPolyfill,\n });\n}\n\nselfInstall();\n"],"names":[],"mappings":";;;;;;;;;;;AAaA,SAAS,WACT,GAAA;AACI,EAAO,MAAA,CAAA,MAAA,CAAO,iBAAiB,SAAW,EAAA;AAAA;AAAA,IAEtC,gBACA,GAAA;AAAA,KAEA;AAAA,GACH,CAAA,CAAA;AAED,EAAO,MAAA,CAAA,MAAA,CAAO,UAAU,SAAW,EAAA;AAAA;AAAA,IAE/B,YACA,GAAA;AAAA,KAEA;AAAA,GACH,CAAA,CAAA;AAED,EAAO,MAAA,CAAA,MAAA,CAAO,qBAAqB,SAAW,EAAA;AAAA;AAAA,IAE1C,qBAAuB,EAAA,4BAAA;AAAA,GAC1B,CAAA,CAAA;AAED,EAAO,MAAA,CAAA,MAAA,CAAO,YAAY,SAAW,EAAA;AAAA;AAAA,IAEjC,gBAAkB,EAAA,4BAAA;AAAA,GACrB,CAAA,CAAA;AAED,EAAO,MAAA,CAAA,MAAA,CAAO,aAAa,SAAW,EAAA;AAAA;AAAA,IAElC,gBAAkB,EAAA,2BAAA;AAAA,GACrB,CAAA,CAAA;AAED,EAAO,MAAA,CAAA,MAAA,CAAO,eAAe,SAAW,EAAA;AAAA;AAAA,IAEpC,mBAAqB,EAAA,0BAAA;AAAA,GACxB,CAAA,CAAA;AACL,CAAA;AAEA,WAAY,EAAA"}

View File

@@ -0,0 +1,2 @@
import type { ShaderSyncFunction } from '../../rendering/renderers/gl/shader/GlShaderSystem';
export declare function generateShaderSyncPolyfill(): ShaderSyncFunction;

View File

@@ -0,0 +1,53 @@
'use strict';
var BufferResource = require('../../rendering/renderers/shared/buffer/BufferResource.js');
var UniformGroup = require('../../rendering/renderers/shared/shader/UniformGroup.js');
var TextureSource = require('../../rendering/renderers/shared/texture/sources/TextureSource.js');
var TextureStyle = require('../../rendering/renderers/shared/texture/TextureStyle.js');
"use strict";
function generateShaderSyncPolyfill() {
return syncShader;
}
function syncShader(renderer, shader, syncData) {
const gl = renderer.gl;
const shaderSystem = renderer.shader;
const programData = shaderSystem._getProgramData(shader.glProgram);
for (const i in shader.groups) {
const bindGroup = shader.groups[i];
for (const j in bindGroup.resources) {
const resource = bindGroup.resources[j];
if (resource instanceof UniformGroup.UniformGroup) {
if (resource.ubo) {
shaderSystem.bindUniformBlock(
resource,
shader._uniformBindMap[i][j],
syncData.blockIndex++
);
} else {
shaderSystem.updateUniformGroup(resource);
}
} else if (resource instanceof BufferResource.BufferResource) {
shaderSystem.bindUniformBlock(
resource,
shader._uniformBindMap[i][j],
syncData.blockIndex++
);
} else if (resource instanceof TextureSource.TextureSource) {
renderer.texture.bind(resource, syncData.textureCount);
const uniformName = shader._uniformBindMap[i][j];
const uniformData = programData.uniformData[uniformName];
if (uniformData) {
if (uniformData.value !== syncData.textureCount) {
gl.uniform1i(uniformData.location, syncData.textureCount);
}
syncData.textureCount++;
}
} else if (resource instanceof TextureStyle.TextureStyle) {
}
}
}
}
exports.generateShaderSyncPolyfill = generateShaderSyncPolyfill;
//# sourceMappingURL=generateShaderSyncPolyfill.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"generateShaderSyncPolyfill.js","sources":["../../../src/unsafe-eval/shader/generateShaderSyncPolyfill.ts"],"sourcesContent":["import { BufferResource } from '../../rendering/renderers/shared/buffer/BufferResource';\nimport { UniformGroup } from '../../rendering/renderers/shared/shader/UniformGroup';\nimport { TextureSource } from '../../rendering/renderers/shared/texture/sources/TextureSource';\nimport { TextureStyle } from '../../rendering/renderers/shared/texture/TextureStyle';\n\nimport type { ShaderSyncData, ShaderSyncFunction } from '../../rendering/renderers/gl/shader/GlShaderSystem';\nimport type { WebGLRenderer } from '../../rendering/renderers/gl/WebGLRenderer';\nimport type { Shader } from '../../rendering/renderers/shared/shader/Shader';\n\nexport function generateShaderSyncPolyfill(): ShaderSyncFunction\n{\n return syncShader;\n}\n\nfunction syncShader(renderer: WebGLRenderer, shader: Shader, syncData: ShaderSyncData): void\n{\n const gl = renderer.gl;\n const shaderSystem = renderer.shader;\n const programData = shaderSystem._getProgramData(shader.glProgram);\n\n // loop through the groups and sync everything...\n for (const i in shader.groups)\n {\n const bindGroup = shader.groups[i];\n\n for (const j in bindGroup.resources)\n {\n const resource = bindGroup.resources[j];\n\n if (resource instanceof UniformGroup)\n {\n if (resource.ubo)\n {\n shaderSystem.bindUniformBlock(\n resource,\n shader._uniformBindMap[i as unknown as number][j as unknown as number],\n syncData.blockIndex++\n );\n }\n else\n {\n shaderSystem.updateUniformGroup(resource);\n }\n }\n else if (resource instanceof BufferResource)\n {\n shaderSystem.bindUniformBlock(\n resource,\n shader._uniformBindMap[i as unknown as number][j as unknown as number],\n syncData.blockIndex++\n );\n }\n else if (resource instanceof TextureSource)\n {\n // TODO really we should not be binding the sampler here too\n renderer.texture.bind(resource, syncData.textureCount);\n\n const uniformName = shader._uniformBindMap[i as unknown as number][j as unknown as number];\n\n const uniformData = programData.uniformData[uniformName];\n\n if (uniformData)\n {\n if (uniformData.value !== syncData.textureCount)\n {\n gl.uniform1i(uniformData.location, syncData.textureCount);\n }\n\n syncData.textureCount++;\n }\n }\n else if (resource instanceof TextureStyle)\n {\n // TODO not doing anything here works is assuming that textures are bound with the style they own.\n // this.renderer.texture.bindSampler(resource, syncData.textureCount);\n }\n }\n }\n}\n"],"names":["UniformGroup","BufferResource","TextureSource","TextureStyle"],"mappings":";;;;;;;;AASO,SAAS,0BAChB,GAAA;AACI,EAAO,OAAA,UAAA,CAAA;AACX,CAAA;AAEA,SAAS,UAAA,CAAW,QAAyB,EAAA,MAAA,EAAgB,QAC7D,EAAA;AACI,EAAA,MAAM,KAAK,QAAS,CAAA,EAAA,CAAA;AACpB,EAAA,MAAM,eAAe,QAAS,CAAA,MAAA,CAAA;AAC9B,EAAA,MAAM,WAAc,GAAA,YAAA,CAAa,eAAgB,CAAA,MAAA,CAAO,SAAS,CAAA,CAAA;AAGjE,EAAW,KAAA,MAAA,CAAA,IAAK,OAAO,MACvB,EAAA;AACI,IAAM,MAAA,SAAA,GAAY,MAAO,CAAA,MAAA,CAAO,CAAC,CAAA,CAAA;AAEjC,IAAW,KAAA,MAAA,CAAA,IAAK,UAAU,SAC1B,EAAA;AACI,MAAM,MAAA,QAAA,GAAW,SAAU,CAAA,SAAA,CAAU,CAAC,CAAA,CAAA;AAEtC,MAAA,IAAI,oBAAoBA,yBACxB,EAAA;AACI,QAAA,IAAI,SAAS,GACb,EAAA;AACI,UAAa,YAAA,CAAA,gBAAA;AAAA,YACT,QAAA;AAAA,YACA,MAAO,CAAA,eAAA,CAAgB,CAAsB,CAAA,CAAE,CAAsB,CAAA;AAAA,YACrE,QAAS,CAAA,UAAA,EAAA;AAAA,WACb,CAAA;AAAA,SAGJ,MAAA;AACI,UAAA,YAAA,CAAa,mBAAmB,QAAQ,CAAA,CAAA;AAAA,SAC5C;AAAA,OACJ,MAAA,IACS,oBAAoBC,6BAC7B,EAAA;AACI,QAAa,YAAA,CAAA,gBAAA;AAAA,UACT,QAAA;AAAA,UACA,MAAO,CAAA,eAAA,CAAgB,CAAsB,CAAA,CAAE,CAAsB,CAAA;AAAA,UACrE,QAAS,CAAA,UAAA,EAAA;AAAA,SACb,CAAA;AAAA,OACJ,MAAA,IACS,oBAAoBC,2BAC7B,EAAA;AAEI,QAAA,QAAA,CAAS,OAAQ,CAAA,IAAA,CAAK,QAAU,EAAA,QAAA,CAAS,YAAY,CAAA,CAAA;AAErD,QAAA,MAAM,WAAc,GAAA,MAAA,CAAO,eAAgB,CAAA,CAAsB,EAAE,CAAsB,CAAA,CAAA;AAEzF,QAAM,MAAA,WAAA,GAAc,WAAY,CAAA,WAAA,CAAY,WAAW,CAAA,CAAA;AAEvD,QAAA,IAAI,WACJ,EAAA;AACI,UAAI,IAAA,WAAA,CAAY,KAAU,KAAA,QAAA,CAAS,YACnC,EAAA;AACI,YAAA,EAAA,CAAG,SAAU,CAAA,WAAA,CAAY,QAAU,EAAA,QAAA,CAAS,YAAY,CAAA,CAAA;AAAA,WAC5D;AAEA,UAAS,QAAA,CAAA,YAAA,EAAA,CAAA;AAAA,SACb;AAAA,OACJ,MAAA,IACS,oBAAoBC,yBAC7B,EAAA;AAAA,OAGA;AAAA,KACJ;AAAA,GACJ;AACJ;;;;"}

View File

@@ -0,0 +1,51 @@
import { BufferResource } from '../../rendering/renderers/shared/buffer/BufferResource.mjs';
import { UniformGroup } from '../../rendering/renderers/shared/shader/UniformGroup.mjs';
import { TextureSource } from '../../rendering/renderers/shared/texture/sources/TextureSource.mjs';
import { TextureStyle } from '../../rendering/renderers/shared/texture/TextureStyle.mjs';
"use strict";
function generateShaderSyncPolyfill() {
return syncShader;
}
function syncShader(renderer, shader, syncData) {
const gl = renderer.gl;
const shaderSystem = renderer.shader;
const programData = shaderSystem._getProgramData(shader.glProgram);
for (const i in shader.groups) {
const bindGroup = shader.groups[i];
for (const j in bindGroup.resources) {
const resource = bindGroup.resources[j];
if (resource instanceof UniformGroup) {
if (resource.ubo) {
shaderSystem.bindUniformBlock(
resource,
shader._uniformBindMap[i][j],
syncData.blockIndex++
);
} else {
shaderSystem.updateUniformGroup(resource);
}
} else if (resource instanceof BufferResource) {
shaderSystem.bindUniformBlock(
resource,
shader._uniformBindMap[i][j],
syncData.blockIndex++
);
} else if (resource instanceof TextureSource) {
renderer.texture.bind(resource, syncData.textureCount);
const uniformName = shader._uniformBindMap[i][j];
const uniformData = programData.uniformData[uniformName];
if (uniformData) {
if (uniformData.value !== syncData.textureCount) {
gl.uniform1i(uniformData.location, syncData.textureCount);
}
syncData.textureCount++;
}
} else if (resource instanceof TextureStyle) {
}
}
}
}
export { generateShaderSyncPolyfill };
//# sourceMappingURL=generateShaderSyncPolyfill.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"generateShaderSyncPolyfill.mjs","sources":["../../../src/unsafe-eval/shader/generateShaderSyncPolyfill.ts"],"sourcesContent":["import { BufferResource } from '../../rendering/renderers/shared/buffer/BufferResource';\nimport { UniformGroup } from '../../rendering/renderers/shared/shader/UniformGroup';\nimport { TextureSource } from '../../rendering/renderers/shared/texture/sources/TextureSource';\nimport { TextureStyle } from '../../rendering/renderers/shared/texture/TextureStyle';\n\nimport type { ShaderSyncData, ShaderSyncFunction } from '../../rendering/renderers/gl/shader/GlShaderSystem';\nimport type { WebGLRenderer } from '../../rendering/renderers/gl/WebGLRenderer';\nimport type { Shader } from '../../rendering/renderers/shared/shader/Shader';\n\nexport function generateShaderSyncPolyfill(): ShaderSyncFunction\n{\n return syncShader;\n}\n\nfunction syncShader(renderer: WebGLRenderer, shader: Shader, syncData: ShaderSyncData): void\n{\n const gl = renderer.gl;\n const shaderSystem = renderer.shader;\n const programData = shaderSystem._getProgramData(shader.glProgram);\n\n // loop through the groups and sync everything...\n for (const i in shader.groups)\n {\n const bindGroup = shader.groups[i];\n\n for (const j in bindGroup.resources)\n {\n const resource = bindGroup.resources[j];\n\n if (resource instanceof UniformGroup)\n {\n if (resource.ubo)\n {\n shaderSystem.bindUniformBlock(\n resource,\n shader._uniformBindMap[i as unknown as number][j as unknown as number],\n syncData.blockIndex++\n );\n }\n else\n {\n shaderSystem.updateUniformGroup(resource);\n }\n }\n else if (resource instanceof BufferResource)\n {\n shaderSystem.bindUniformBlock(\n resource,\n shader._uniformBindMap[i as unknown as number][j as unknown as number],\n syncData.blockIndex++\n );\n }\n else if (resource instanceof TextureSource)\n {\n // TODO really we should not be binding the sampler here too\n renderer.texture.bind(resource, syncData.textureCount);\n\n const uniformName = shader._uniformBindMap[i as unknown as number][j as unknown as number];\n\n const uniformData = programData.uniformData[uniformName];\n\n if (uniformData)\n {\n if (uniformData.value !== syncData.textureCount)\n {\n gl.uniform1i(uniformData.location, syncData.textureCount);\n }\n\n syncData.textureCount++;\n }\n }\n else if (resource instanceof TextureStyle)\n {\n // TODO not doing anything here works is assuming that textures are bound with the style they own.\n // this.renderer.texture.bindSampler(resource, syncData.textureCount);\n }\n }\n }\n}\n"],"names":[],"mappings":";;;;;;AASO,SAAS,0BAChB,GAAA;AACI,EAAO,OAAA,UAAA,CAAA;AACX,CAAA;AAEA,SAAS,UAAA,CAAW,QAAyB,EAAA,MAAA,EAAgB,QAC7D,EAAA;AACI,EAAA,MAAM,KAAK,QAAS,CAAA,EAAA,CAAA;AACpB,EAAA,MAAM,eAAe,QAAS,CAAA,MAAA,CAAA;AAC9B,EAAA,MAAM,WAAc,GAAA,YAAA,CAAa,eAAgB,CAAA,MAAA,CAAO,SAAS,CAAA,CAAA;AAGjE,EAAW,KAAA,MAAA,CAAA,IAAK,OAAO,MACvB,EAAA;AACI,IAAM,MAAA,SAAA,GAAY,MAAO,CAAA,MAAA,CAAO,CAAC,CAAA,CAAA;AAEjC,IAAW,KAAA,MAAA,CAAA,IAAK,UAAU,SAC1B,EAAA;AACI,MAAM,MAAA,QAAA,GAAW,SAAU,CAAA,SAAA,CAAU,CAAC,CAAA,CAAA;AAEtC,MAAA,IAAI,oBAAoB,YACxB,EAAA;AACI,QAAA,IAAI,SAAS,GACb,EAAA;AACI,UAAa,YAAA,CAAA,gBAAA;AAAA,YACT,QAAA;AAAA,YACA,MAAO,CAAA,eAAA,CAAgB,CAAsB,CAAA,CAAE,CAAsB,CAAA;AAAA,YACrE,QAAS,CAAA,UAAA,EAAA;AAAA,WACb,CAAA;AAAA,SAGJ,MAAA;AACI,UAAA,YAAA,CAAa,mBAAmB,QAAQ,CAAA,CAAA;AAAA,SAC5C;AAAA,OACJ,MAAA,IACS,oBAAoB,cAC7B,EAAA;AACI,QAAa,YAAA,CAAA,gBAAA;AAAA,UACT,QAAA;AAAA,UACA,MAAO,CAAA,eAAA,CAAgB,CAAsB,CAAA,CAAE,CAAsB,CAAA;AAAA,UACrE,QAAS,CAAA,UAAA,EAAA;AAAA,SACb,CAAA;AAAA,OACJ,MAAA,IACS,oBAAoB,aAC7B,EAAA;AAEI,QAAA,QAAA,CAAS,OAAQ,CAAA,IAAA,CAAK,QAAU,EAAA,QAAA,CAAS,YAAY,CAAA,CAAA;AAErD,QAAA,MAAM,WAAc,GAAA,MAAA,CAAO,eAAgB,CAAA,CAAsB,EAAE,CAAsB,CAAA,CAAA;AAEzF,QAAM,MAAA,WAAA,GAAc,WAAY,CAAA,WAAA,CAAY,WAAW,CAAA,CAAA;AAEvD,QAAA,IAAI,WACJ,EAAA;AACI,UAAI,IAAA,WAAA,CAAY,KAAU,KAAA,QAAA,CAAS,YACnC,EAAA;AACI,YAAA,EAAA,CAAG,SAAU,CAAA,WAAA,CAAY,QAAU,EAAA,QAAA,CAAS,YAAY,CAAA,CAAA;AAAA,WAC5D;AAEA,UAAS,QAAA,CAAA,YAAA,EAAA,CAAA;AAAA,SACb;AAAA,OACJ,MAAA,IACS,oBAAoB,YAC7B,EAAA;AAAA,OAGA;AAAA,KACJ;AAAA,GACJ;AACJ;;;;"}

View File

@@ -0,0 +1,3 @@
import type { UboElement, UniformsSyncCallback } from '../../rendering/renderers/shared/shader/types';
export declare function generateUboSyncPolyfillSTD40(uboElements: UboElement[]): UniformsSyncCallback;
export declare function generateUboSyncPolyfillWGSL(uboElements: UboElement[]): UniformsSyncCallback;

View File

@@ -0,0 +1,83 @@
'use strict';
var createUboElementsSTD40 = require('../../rendering/renderers/gl/shader/utils/createUboElementsSTD40.js');
var createUboElementsWGSL = require('../../rendering/renderers/gpu/shader/utils/createUboElementsWGSL.js');
var uniformParsers = require('../../rendering/renderers/shared/shader/utils/uniformParsers.js');
var uboSyncFunctions = require('./uboSyncFunctions.js');
"use strict";
function generateUboSyncPolyfillSTD40(uboElements) {
return generateUboSyncPolyfill(
uboElements,
uboSyncFunctions.uboSingleFunctionsSTD40,
(uboElement) => {
const rowSize = Math.max(createUboElementsSTD40.WGSL_TO_STD40_SIZE[uboElement.data.type] / 16, 1);
const elementSize = uboElement.data.value.length / uboElement.data.size;
const remainder = (4 - elementSize % 4) % 4;
return (_name, data, offset, _uv, v) => {
let t = 0;
for (let i = 0; i < uboElement.data.size * rowSize; i++) {
for (let j = 0; j < elementSize; j++) {
data[offset++] = v[t++];
}
offset += remainder;
}
};
}
);
}
function generateUboSyncPolyfillWGSL(uboElements) {
return generateUboSyncPolyfill(
uboElements,
uboSyncFunctions.uboSingleFunctionsWGSL,
(uboElement) => {
const { size, align } = createUboElementsWGSL.WGSL_ALIGN_SIZE_DATA[uboElement.data.type];
const remainder = (size - align) / 4;
return (_name, data, offset, _uv, v) => {
let t = 0;
for (let i = 0; i < uboElement.data.size * (size / 4); i++) {
for (let j = 0; j < size / 4; j++) {
data[offset++] = v[t++];
}
offset += remainder;
}
};
}
);
}
function generateUboSyncPolyfill(uboElements, uboFunctions, arrayUploadFunction) {
const functionMap = {};
for (const i in uboElements) {
const uboElement = uboElements[i];
const uniform = uboElement.data;
let parsed = false;
functionMap[uniform.name] = {
offset: uboElement.offset / 4,
func: null
};
for (let j = 0; j < uniformParsers.uniformParsers.length; j++) {
const parser = uniformParsers.uniformParsers[j];
if (uniform.type === parser.type && parser.test(uniform)) {
functionMap[uniform.name].func = uboSyncFunctions.uboParserFunctions[j];
parsed = true;
break;
}
}
if (!parsed) {
if (uniform.size === 1) {
functionMap[uniform.name].func = uboFunctions[uniform.type];
} else {
functionMap[uniform.name].func = arrayUploadFunction(uboElement);
}
}
}
return (uniforms, data, offset) => {
for (const i in functionMap) {
functionMap[i].func(i, data, offset + functionMap[i].offset, uniforms, uniforms[i]);
}
};
}
exports.generateUboSyncPolyfillSTD40 = generateUboSyncPolyfillSTD40;
exports.generateUboSyncPolyfillWGSL = generateUboSyncPolyfillWGSL;
//# sourceMappingURL=generateUboSyncPolyfill.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,80 @@
import { WGSL_TO_STD40_SIZE } from '../../rendering/renderers/gl/shader/utils/createUboElementsSTD40.mjs';
import { WGSL_ALIGN_SIZE_DATA } from '../../rendering/renderers/gpu/shader/utils/createUboElementsWGSL.mjs';
import { uniformParsers } from '../../rendering/renderers/shared/shader/utils/uniformParsers.mjs';
import { uboSingleFunctionsSTD40, uboSingleFunctionsWGSL, uboParserFunctions } from './uboSyncFunctions.mjs';
"use strict";
function generateUboSyncPolyfillSTD40(uboElements) {
return generateUboSyncPolyfill(
uboElements,
uboSingleFunctionsSTD40,
(uboElement) => {
const rowSize = Math.max(WGSL_TO_STD40_SIZE[uboElement.data.type] / 16, 1);
const elementSize = uboElement.data.value.length / uboElement.data.size;
const remainder = (4 - elementSize % 4) % 4;
return (_name, data, offset, _uv, v) => {
let t = 0;
for (let i = 0; i < uboElement.data.size * rowSize; i++) {
for (let j = 0; j < elementSize; j++) {
data[offset++] = v[t++];
}
offset += remainder;
}
};
}
);
}
function generateUboSyncPolyfillWGSL(uboElements) {
return generateUboSyncPolyfill(
uboElements,
uboSingleFunctionsWGSL,
(uboElement) => {
const { size, align } = WGSL_ALIGN_SIZE_DATA[uboElement.data.type];
const remainder = (size - align) / 4;
return (_name, data, offset, _uv, v) => {
let t = 0;
for (let i = 0; i < uboElement.data.size * (size / 4); i++) {
for (let j = 0; j < size / 4; j++) {
data[offset++] = v[t++];
}
offset += remainder;
}
};
}
);
}
function generateUboSyncPolyfill(uboElements, uboFunctions, arrayUploadFunction) {
const functionMap = {};
for (const i in uboElements) {
const uboElement = uboElements[i];
const uniform = uboElement.data;
let parsed = false;
functionMap[uniform.name] = {
offset: uboElement.offset / 4,
func: null
};
for (let j = 0; j < uniformParsers.length; j++) {
const parser = uniformParsers[j];
if (uniform.type === parser.type && parser.test(uniform)) {
functionMap[uniform.name].func = uboParserFunctions[j];
parsed = true;
break;
}
}
if (!parsed) {
if (uniform.size === 1) {
functionMap[uniform.name].func = uboFunctions[uniform.type];
} else {
functionMap[uniform.name].func = arrayUploadFunction(uboElement);
}
}
}
return (uniforms, data, offset) => {
for (const i in functionMap) {
functionMap[i].func(i, data, offset + functionMap[i].offset, uniforms, uniforms[i]);
}
};
}
export { generateUboSyncPolyfillSTD40, generateUboSyncPolyfillWGSL };
//# sourceMappingURL=generateUboSyncPolyfill.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,9 @@
/**
* This file is auto generated by scripts/utils/autoGenerateUnsafeEvalFunctions.ts
* Do not edit manually - or you will be sad.
*/
import type { UNIFORM_TYPES } from '../../rendering/renderers/shared/shader/types';
export type UboUploadFunction = (name: string, data: Float32Array, offset: number, uv: any, v: any) => void;
export declare const uboParserFunctions: UboUploadFunction[];
export declare const uboSingleFunctionsWGSL: Record<UNIFORM_TYPES | string, UboUploadFunction>;
export declare const uboSingleFunctionsSTD40: Record<UNIFORM_TYPES | string, UboUploadFunction>;

View File

@@ -0,0 +1,197 @@
'use strict';
"use strict";
const uboParserFunctions = [
(name, data, offset, uv, _v) => {
const matrix = uv[name].toArray(true);
data[offset] = matrix[0];
data[offset + 1] = matrix[1];
data[offset + 2] = matrix[2];
data[offset + 4] = matrix[3];
data[offset + 5] = matrix[4];
data[offset + 6] = matrix[5];
data[offset + 8] = matrix[6];
data[offset + 9] = matrix[7];
data[offset + 10] = matrix[8];
},
(name, data, offset, uv, v) => {
v = uv[name];
data[offset] = v.x;
data[offset + 1] = v.y;
data[offset + 2] = v.width;
data[offset + 3] = v.height;
},
(name, data, offset, uv, v) => {
v = uv[name];
data[offset] = v.x;
data[offset + 1] = v.y;
},
(name, data, offset, uv, v) => {
v = uv[name];
data[offset] = v.red;
data[offset + 1] = v.green;
data[offset + 2] = v.blue;
data[offset + 3] = v.alpha;
},
(name, data, offset, uv, v) => {
v = uv[name];
data[offset] = v.red;
data[offset + 1] = v.green;
data[offset + 2] = v.blue;
}
];
const uboSingleFunctionsWGSL = {
f32: (_name, data, offset, _uv, v) => {
data[offset] = v;
},
i32: (_name, data, offset, _uv, v) => {
data[offset] = v;
},
"vec2<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
},
"vec3<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
data[offset + 2] = v[2];
},
"vec4<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
data[offset + 2] = v[2];
data[offset + 3] = v[3];
},
"mat2x2<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
data[offset + 2] = v[2];
data[offset + 3] = v[3];
},
"mat3x3<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
data[offset + 2] = v[2];
data[offset + 4] = v[3];
data[offset + 5] = v[4];
data[offset + 6] = v[5];
data[offset + 8] = v[6];
data[offset + 9] = v[7];
data[offset + 10] = v[8];
},
"mat4x4<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 16; i++) {
data[offset + i] = v[i];
}
},
"mat3x2<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 6; i++) {
data[offset + (i / 3 | 0) * 4 + i % 3] = v[i];
}
},
"mat4x2<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 8; i++) {
data[offset + (i / 4 | 0) * 4 + i % 4] = v[i];
}
},
"mat2x3<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 6; i++) {
data[offset + (i / 2 | 0) * 4 + i % 2] = v[i];
}
},
"mat4x3<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 12; i++) {
data[offset + (i / 4 | 0) * 4 + i % 4] = v[i];
}
},
"mat2x4<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 8; i++) {
data[offset + (i / 2 | 0) * 4 + i % 2] = v[i];
}
},
"mat3x4<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 12; i++) {
data[offset + (i / 3 | 0) * 4 + i % 3] = v[i];
}
}
};
const uboSingleFunctionsSTD40 = {
f32: (_name, data, offset, _uv, v) => {
data[offset] = v;
},
i32: (_name, data, offset, _uv, v) => {
data[offset] = v;
},
"vec2<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
},
"vec3<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
data[offset + 2] = v[2];
},
"vec4<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
data[offset + 2] = v[2];
data[offset + 3] = v[3];
},
"mat2x2<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
data[offset + 4] = v[2];
data[offset + 5] = v[3];
},
"mat3x3<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
data[offset + 2] = v[2];
data[offset + 4] = v[3];
data[offset + 5] = v[4];
data[offset + 6] = v[5];
data[offset + 8] = v[6];
data[offset + 9] = v[7];
data[offset + 10] = v[8];
},
"mat4x4<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 16; i++) {
data[offset + i] = v[i];
}
},
"mat3x2<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 6; i++) {
data[offset + (i / 3 | 0) * 4 + i % 3] = v[i];
}
},
"mat4x2<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 8; i++) {
data[offset + (i / 4 | 0) * 4 + i % 4] = v[i];
}
},
"mat2x3<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 6; i++) {
data[offset + (i / 2 | 0) * 4 + i % 2] = v[i];
}
},
"mat4x3<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 12; i++) {
data[offset + (i / 4 | 0) * 4 + i % 4] = v[i];
}
},
"mat2x4<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 8; i++) {
data[offset + (i / 2 | 0) * 4 + i % 2] = v[i];
}
},
"mat3x4<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 12; i++) {
data[offset + (i / 3 | 0) * 4 + i % 3] = v[i];
}
}
};
exports.uboParserFunctions = uboParserFunctions;
exports.uboSingleFunctionsSTD40 = uboSingleFunctionsSTD40;
exports.uboSingleFunctionsWGSL = uboSingleFunctionsWGSL;
//# sourceMappingURL=uboSyncFunctions.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,193 @@
"use strict";
const uboParserFunctions = [
(name, data, offset, uv, _v) => {
const matrix = uv[name].toArray(true);
data[offset] = matrix[0];
data[offset + 1] = matrix[1];
data[offset + 2] = matrix[2];
data[offset + 4] = matrix[3];
data[offset + 5] = matrix[4];
data[offset + 6] = matrix[5];
data[offset + 8] = matrix[6];
data[offset + 9] = matrix[7];
data[offset + 10] = matrix[8];
},
(name, data, offset, uv, v) => {
v = uv[name];
data[offset] = v.x;
data[offset + 1] = v.y;
data[offset + 2] = v.width;
data[offset + 3] = v.height;
},
(name, data, offset, uv, v) => {
v = uv[name];
data[offset] = v.x;
data[offset + 1] = v.y;
},
(name, data, offset, uv, v) => {
v = uv[name];
data[offset] = v.red;
data[offset + 1] = v.green;
data[offset + 2] = v.blue;
data[offset + 3] = v.alpha;
},
(name, data, offset, uv, v) => {
v = uv[name];
data[offset] = v.red;
data[offset + 1] = v.green;
data[offset + 2] = v.blue;
}
];
const uboSingleFunctionsWGSL = {
f32: (_name, data, offset, _uv, v) => {
data[offset] = v;
},
i32: (_name, data, offset, _uv, v) => {
data[offset] = v;
},
"vec2<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
},
"vec3<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
data[offset + 2] = v[2];
},
"vec4<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
data[offset + 2] = v[2];
data[offset + 3] = v[3];
},
"mat2x2<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
data[offset + 2] = v[2];
data[offset + 3] = v[3];
},
"mat3x3<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
data[offset + 2] = v[2];
data[offset + 4] = v[3];
data[offset + 5] = v[4];
data[offset + 6] = v[5];
data[offset + 8] = v[6];
data[offset + 9] = v[7];
data[offset + 10] = v[8];
},
"mat4x4<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 16; i++) {
data[offset + i] = v[i];
}
},
"mat3x2<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 6; i++) {
data[offset + (i / 3 | 0) * 4 + i % 3] = v[i];
}
},
"mat4x2<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 8; i++) {
data[offset + (i / 4 | 0) * 4 + i % 4] = v[i];
}
},
"mat2x3<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 6; i++) {
data[offset + (i / 2 | 0) * 4 + i % 2] = v[i];
}
},
"mat4x3<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 12; i++) {
data[offset + (i / 4 | 0) * 4 + i % 4] = v[i];
}
},
"mat2x4<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 8; i++) {
data[offset + (i / 2 | 0) * 4 + i % 2] = v[i];
}
},
"mat3x4<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 12; i++) {
data[offset + (i / 3 | 0) * 4 + i % 3] = v[i];
}
}
};
const uboSingleFunctionsSTD40 = {
f32: (_name, data, offset, _uv, v) => {
data[offset] = v;
},
i32: (_name, data, offset, _uv, v) => {
data[offset] = v;
},
"vec2<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
},
"vec3<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
data[offset + 2] = v[2];
},
"vec4<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
data[offset + 2] = v[2];
data[offset + 3] = v[3];
},
"mat2x2<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
data[offset + 4] = v[2];
data[offset + 5] = v[3];
},
"mat3x3<f32>": (_name, data, offset, _uv, v) => {
data[offset] = v[0];
data[offset + 1] = v[1];
data[offset + 2] = v[2];
data[offset + 4] = v[3];
data[offset + 5] = v[4];
data[offset + 6] = v[5];
data[offset + 8] = v[6];
data[offset + 9] = v[7];
data[offset + 10] = v[8];
},
"mat4x4<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 16; i++) {
data[offset + i] = v[i];
}
},
"mat3x2<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 6; i++) {
data[offset + (i / 3 | 0) * 4 + i % 3] = v[i];
}
},
"mat4x2<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 8; i++) {
data[offset + (i / 4 | 0) * 4 + i % 4] = v[i];
}
},
"mat2x3<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 6; i++) {
data[offset + (i / 2 | 0) * 4 + i % 2] = v[i];
}
},
"mat4x3<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 12; i++) {
data[offset + (i / 4 | 0) * 4 + i % 4] = v[i];
}
},
"mat2x4<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 8; i++) {
data[offset + (i / 2 | 0) * 4 + i % 2] = v[i];
}
},
"mat3x4<f32>": (_name, data, offset, _uv, v) => {
for (let i = 0; i < 12; i++) {
data[offset + (i / 3 | 0) * 4 + i % 3] = v[i];
}
}
};
export { uboParserFunctions, uboSingleFunctionsSTD40, uboSingleFunctionsWGSL };
//# sourceMappingURL=uboSyncFunctions.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,4 @@
import type { GlUniformData } from '../../rendering/renderers/gl/shader/GlProgram';
import type { UniformsSyncCallback } from '../../rendering/renderers/shared/shader/types';
import type { UniformGroup } from '../../rendering/renderers/shared/shader/UniformGroup';
export declare function generateUniformsSyncPolyfill(group: UniformGroup, uniformData: Record<string, GlUniformData>): UniformsSyncCallback;

View File

@@ -0,0 +1,39 @@
'use strict';
var uniformParsers = require('../../rendering/renderers/shared/shader/utils/uniformParsers.js');
var uniformSyncFunctions = require('./uniformSyncFunctions.js');
"use strict";
function generateUniformsSyncPolyfill(group, uniformData) {
const functionMap = {};
for (const i in group.uniformStructures) {
if (!uniformData[i])
continue;
const uniform = group.uniformStructures[i];
let parsed = false;
for (let j = 0; j < uniformParsers.uniformParsers.length; j++) {
const parser = uniformParsers.uniformParsers[j];
if (uniform.type === parser.type && parser.test(uniform)) {
functionMap[i] = uniformSyncFunctions.uniformParserFunctions[j];
parsed = true;
break;
}
}
if (!parsed) {
const templateType = uniform.size === 1 ? uniformSyncFunctions.uniformSingleParserFunctions : uniformSyncFunctions.uniformArrayParserFunctions;
functionMap[i] = templateType[uniform.type];
}
}
return (ud, uv, renderer) => {
const gl = renderer.gl;
for (const i in functionMap) {
const v = uv[i];
const cu = ud[i];
const cv = ud[i].value;
functionMap[i](i, cu, cv, v, ud, uv, gl);
}
};
}
exports.generateUniformsSyncPolyfill = generateUniformsSyncPolyfill;
//# sourceMappingURL=generateUniformsSyncPolyfill.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"generateUniformsSyncPolyfill.js","sources":["../../../src/unsafe-eval/uniforms/generateUniformsSyncPolyfill.ts"],"sourcesContent":["import { uniformParsers } from '../../rendering/renderers/shared/shader/utils/uniformParsers';\nimport { uniformArrayParserFunctions, uniformParserFunctions, uniformSingleParserFunctions } from './uniformSyncFunctions';\n\nimport type { GlUniformData } from '../../rendering/renderers/gl/shader/GlProgram';\nimport type { WebGLRenderer } from '../../rendering/renderers/gl/WebGLRenderer';\nimport type { UniformsSyncCallback } from '../../rendering/renderers/shared/shader/types';\nimport type { UniformGroup } from '../../rendering/renderers/shared/shader/UniformGroup';\nimport type { UniformUploadFunction } from './uniformSyncFunctions';\n\nexport function generateUniformsSyncPolyfill(\n group: UniformGroup,\n uniformData: Record<string, GlUniformData>\n): UniformsSyncCallback\n{\n // loop through all the uniforms..\n const functionMap: Record<string, UniformUploadFunction> = {};\n\n for (const i in group.uniformStructures)\n {\n if (!uniformData[i]) continue;\n\n const uniform = group.uniformStructures[i];\n\n let parsed = false;\n\n for (let j = 0; j < uniformParsers.length; j++)\n {\n const parser = uniformParsers[j];\n\n if (uniform.type === parser.type && parser.test(uniform))\n {\n functionMap[i] = uniformParserFunctions[j];\n\n parsed = true;\n\n break;\n }\n }\n\n // if not parsed...\n\n if (!parsed)\n {\n const templateType = uniform.size === 1 ? uniformSingleParserFunctions : uniformArrayParserFunctions;\n\n functionMap[i] = templateType[uniform.type];\n }\n }\n\n return (\n ud: Record<string, any>,\n uv: Record<string, any>,\n renderer: WebGLRenderer) =>\n {\n const gl = renderer.gl;\n\n for (const i in functionMap)\n {\n const v = uv[i];\n const cu = ud[i];\n const cv = ud[i].value;\n\n functionMap[i](i, cu, cv, v, ud, uv, gl);\n }\n };\n}\n"],"names":["uniformParsers","uniformParserFunctions","uniformSingleParserFunctions","uniformArrayParserFunctions"],"mappings":";;;;;;AASgB,SAAA,4BAAA,CACZ,OACA,WAEJ,EAAA;AAEI,EAAA,MAAM,cAAqD,EAAC,CAAA;AAE5D,EAAW,KAAA,MAAA,CAAA,IAAK,MAAM,iBACtB,EAAA;AACI,IAAI,IAAA,CAAC,YAAY,CAAC,CAAA;AAAG,MAAA,SAAA;AAErB,IAAM,MAAA,OAAA,GAAU,KAAM,CAAA,iBAAA,CAAkB,CAAC,CAAA,CAAA;AAEzC,IAAA,IAAI,MAAS,GAAA,KAAA,CAAA;AAEb,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAAA,6BAAA,CAAe,QAAQ,CAC3C,EAAA,EAAA;AACI,MAAM,MAAA,MAAA,GAASA,8BAAe,CAAC,CAAA,CAAA;AAE/B,MAAA,IAAI,QAAQ,IAAS,KAAA,MAAA,CAAO,QAAQ,MAAO,CAAA,IAAA,CAAK,OAAO,CACvD,EAAA;AACI,QAAY,WAAA,CAAA,CAAC,CAAI,GAAAC,2CAAA,CAAuB,CAAC,CAAA,CAAA;AAEzC,QAAS,MAAA,GAAA,IAAA,CAAA;AAET,QAAA,MAAA;AAAA,OACJ;AAAA,KACJ;AAIA,IAAA,IAAI,CAAC,MACL,EAAA;AACI,MAAA,MAAM,YAAe,GAAA,OAAA,CAAQ,IAAS,KAAA,CAAA,GAAIC,iDAA+B,GAAAC,gDAAA,CAAA;AAEzE,MAAA,WAAA,CAAY,CAAC,CAAA,GAAI,YAAa,CAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,KAC9C;AAAA,GACJ;AAEA,EAAO,OAAA,CACH,EACA,EAAA,EAAA,EACA,QACJ,KAAA;AACI,IAAA,MAAM,KAAK,QAAS,CAAA,EAAA,CAAA;AAEpB,IAAA,KAAA,MAAW,KAAK,WAChB,EAAA;AACI,MAAM,MAAA,CAAA,GAAI,GAAG,CAAC,CAAA,CAAA;AACd,MAAM,MAAA,EAAA,GAAK,GAAG,CAAC,CAAA,CAAA;AACf,MAAM,MAAA,EAAA,GAAK,EAAG,CAAA,CAAC,CAAE,CAAA,KAAA,CAAA;AAEjB,MAAY,WAAA,CAAA,CAAC,EAAE,CAAG,EAAA,EAAA,EAAI,IAAI,CAAG,EAAA,EAAA,EAAI,IAAI,EAAE,CAAA,CAAA;AAAA,KAC3C;AAAA,GACJ,CAAA;AACJ;;;;"}

View File

@@ -0,0 +1,37 @@
import { uniformParsers } from '../../rendering/renderers/shared/shader/utils/uniformParsers.mjs';
import { uniformParserFunctions, uniformSingleParserFunctions, uniformArrayParserFunctions } from './uniformSyncFunctions.mjs';
"use strict";
function generateUniformsSyncPolyfill(group, uniformData) {
const functionMap = {};
for (const i in group.uniformStructures) {
if (!uniformData[i])
continue;
const uniform = group.uniformStructures[i];
let parsed = false;
for (let j = 0; j < uniformParsers.length; j++) {
const parser = uniformParsers[j];
if (uniform.type === parser.type && parser.test(uniform)) {
functionMap[i] = uniformParserFunctions[j];
parsed = true;
break;
}
}
if (!parsed) {
const templateType = uniform.size === 1 ? uniformSingleParserFunctions : uniformArrayParserFunctions;
functionMap[i] = templateType[uniform.type];
}
}
return (ud, uv, renderer) => {
const gl = renderer.gl;
for (const i in functionMap) {
const v = uv[i];
const cu = ud[i];
const cv = ud[i].value;
functionMap[i](i, cu, cv, v, ud, uv, gl);
}
};
}
export { generateUniformsSyncPolyfill };
//# sourceMappingURL=generateUniformsSyncPolyfill.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"generateUniformsSyncPolyfill.mjs","sources":["../../../src/unsafe-eval/uniforms/generateUniformsSyncPolyfill.ts"],"sourcesContent":["import { uniformParsers } from '../../rendering/renderers/shared/shader/utils/uniformParsers';\nimport { uniformArrayParserFunctions, uniformParserFunctions, uniformSingleParserFunctions } from './uniformSyncFunctions';\n\nimport type { GlUniformData } from '../../rendering/renderers/gl/shader/GlProgram';\nimport type { WebGLRenderer } from '../../rendering/renderers/gl/WebGLRenderer';\nimport type { UniformsSyncCallback } from '../../rendering/renderers/shared/shader/types';\nimport type { UniformGroup } from '../../rendering/renderers/shared/shader/UniformGroup';\nimport type { UniformUploadFunction } from './uniformSyncFunctions';\n\nexport function generateUniformsSyncPolyfill(\n group: UniformGroup,\n uniformData: Record<string, GlUniformData>\n): UniformsSyncCallback\n{\n // loop through all the uniforms..\n const functionMap: Record<string, UniformUploadFunction> = {};\n\n for (const i in group.uniformStructures)\n {\n if (!uniformData[i]) continue;\n\n const uniform = group.uniformStructures[i];\n\n let parsed = false;\n\n for (let j = 0; j < uniformParsers.length; j++)\n {\n const parser = uniformParsers[j];\n\n if (uniform.type === parser.type && parser.test(uniform))\n {\n functionMap[i] = uniformParserFunctions[j];\n\n parsed = true;\n\n break;\n }\n }\n\n // if not parsed...\n\n if (!parsed)\n {\n const templateType = uniform.size === 1 ? uniformSingleParserFunctions : uniformArrayParserFunctions;\n\n functionMap[i] = templateType[uniform.type];\n }\n }\n\n return (\n ud: Record<string, any>,\n uv: Record<string, any>,\n renderer: WebGLRenderer) =>\n {\n const gl = renderer.gl;\n\n for (const i in functionMap)\n {\n const v = uv[i];\n const cu = ud[i];\n const cv = ud[i].value;\n\n functionMap[i](i, cu, cv, v, ud, uv, gl);\n }\n };\n}\n"],"names":[],"mappings":";;;;AASgB,SAAA,4BAAA,CACZ,OACA,WAEJ,EAAA;AAEI,EAAA,MAAM,cAAqD,EAAC,CAAA;AAE5D,EAAW,KAAA,MAAA,CAAA,IAAK,MAAM,iBACtB,EAAA;AACI,IAAI,IAAA,CAAC,YAAY,CAAC,CAAA;AAAG,MAAA,SAAA;AAErB,IAAM,MAAA,OAAA,GAAU,KAAM,CAAA,iBAAA,CAAkB,CAAC,CAAA,CAAA;AAEzC,IAAA,IAAI,MAAS,GAAA,KAAA,CAAA;AAEb,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,cAAA,CAAe,QAAQ,CAC3C,EAAA,EAAA;AACI,MAAM,MAAA,MAAA,GAAS,eAAe,CAAC,CAAA,CAAA;AAE/B,MAAA,IAAI,QAAQ,IAAS,KAAA,MAAA,CAAO,QAAQ,MAAO,CAAA,IAAA,CAAK,OAAO,CACvD,EAAA;AACI,QAAY,WAAA,CAAA,CAAC,CAAI,GAAA,sBAAA,CAAuB,CAAC,CAAA,CAAA;AAEzC,QAAS,MAAA,GAAA,IAAA,CAAA;AAET,QAAA,MAAA;AAAA,OACJ;AAAA,KACJ;AAIA,IAAA,IAAI,CAAC,MACL,EAAA;AACI,MAAA,MAAM,YAAe,GAAA,OAAA,CAAQ,IAAS,KAAA,CAAA,GAAI,4BAA+B,GAAA,2BAAA,CAAA;AAEzE,MAAA,WAAA,CAAY,CAAC,CAAA,GAAI,YAAa,CAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,KAC9C;AAAA,GACJ;AAEA,EAAO,OAAA,CACH,EACA,EAAA,EAAA,EACA,QACJ,KAAA;AACI,IAAA,MAAM,KAAK,QAAS,CAAA,EAAA,CAAA;AAEpB,IAAA,KAAA,MAAW,KAAK,WAChB,EAAA;AACI,MAAM,MAAA,CAAA,GAAI,GAAG,CAAC,CAAA,CAAA;AACd,MAAM,MAAA,EAAA,GAAK,GAAG,CAAC,CAAA,CAAA;AACf,MAAM,MAAA,EAAA,GAAK,EAAG,CAAA,CAAC,CAAE,CAAA,KAAA,CAAA;AAEjB,MAAY,WAAA,CAAA,CAAC,EAAE,CAAG,EAAA,EAAA,EAAI,IAAI,CAAG,EAAA,EAAA,EAAI,IAAI,EAAE,CAAA,CAAA;AAAA,KAC3C;AAAA,GACJ,CAAA;AACJ;;;;"}

View File

@@ -0,0 +1,9 @@
/**
* This file is auto generated by scripts/utils/autoGenerateUnsafeEvalFunctions.ts
* Do not edit manually - or you will be sad.
*/
import type { UNIFORM_TYPES } from '../../rendering/renderers/shared/shader/types';
export type UniformUploadFunction = (name: string, cu: any, cv: any, v: any, ud: any, uv: any, gl: any) => void;
export declare const uniformSingleParserFunctions: Record<UNIFORM_TYPES | string, UniformUploadFunction>;
export declare const uniformArrayParserFunctions: Record<UNIFORM_TYPES | string, UniformUploadFunction>;
export declare const uniformParserFunctions: UniformUploadFunction[];

View File

@@ -0,0 +1,244 @@
'use strict';
"use strict";
const uniformSingleParserFunctions = {
f32(name, cu, cv, v, ud, _uv, gl) {
if (cv !== v) {
cu.value = v;
gl.uniform1f(ud[name].location, v);
}
},
"vec2<f32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1]) {
cv[0] = v[0];
cv[1] = v[1];
gl.uniform2f(ud[name].location, v[0], v[1]);
}
},
"vec3<f32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
gl.uniform3f(ud[name].location, v[0], v[1], v[2]);
}
},
"vec4<f32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
cv[3] = v[3];
gl.uniform4f(ud[name].location, v[0], v[1], v[2], v[3]);
}
},
i32(name, cu, cv, v, ud, _uv, gl) {
if (cv !== v) {
cu.value = v;
gl.uniform1i(ud[name].location, v);
}
},
"vec2<i32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1]) {
cv[0] = v[0];
cv[1] = v[1];
gl.uniform2i(ud[name].location, v[0], v[1]);
}
},
"vec3<i32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
gl.uniform3i(ud[name].location, v[0], v[1], v[2]);
}
},
"vec4<i32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
cv[3] = v[3];
gl.uniform4i(ud[name].location, v[0], v[1], v[2], v[3]);
}
},
u32(name, cu, cv, v, ud, _uv, gl) {
if (cv !== v) {
cu.value = v;
gl.uniform1ui(ud[name].location, v);
}
},
"vec2<u32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1]) {
cv[0] = v[0];
cv[1] = v[1];
gl.uniform2ui(ud[name].location, v[0], v[1]);
}
},
"vec3<u32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
gl.uniform3ui(ud[name].location, v[0], v[1], v[2]);
}
},
"vec4<u32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
cv[3] = v[3];
gl.uniform4ui(ud[name].location, v[0], v[1], v[2], v[3]);
}
},
bool(name, cu, cv, v, ud, _uv, gl) {
if (cv !== v) {
cu.value = v;
gl.uniform1i(ud[name].location, v);
}
},
"vec2<bool>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1]) {
cv[0] = v[0];
cv[1] = v[1];
gl.uniform2i(ud[name].location, v[0], v[1]);
}
},
"vec3<bool>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
gl.uniform3i(ud[name].location, v[0], v[1], v[2]);
}
},
"vec4<bool>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
cv[3] = v[3];
gl.uniform4i(ud[name].location, v[0], v[1], v[2], v[3]);
}
},
"mat2x2<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniformMatrix2fv(ud[name].location, false, v);
},
"mat3x3<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniformMatrix3fv(ud[name].location, false, v);
},
"mat4x4<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniformMatrix4fv(ud[name].location, false, v);
}
};
const uniformArrayParserFunctions = {
f32(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform1fv(ud[name].location, v);
},
"vec2<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform2fv(ud[name].location, v);
},
"vec3<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform3fv(ud[name].location, v);
},
"vec4<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform4fv(ud[name].location, v);
},
"mat2x2<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniformMatrix2fv(ud[name].location, false, v);
},
"mat3x3<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniformMatrix3fv(ud[name].location, false, v);
},
"mat4x4<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniformMatrix4fv(ud[name].location, false, v);
},
i32(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform1iv(ud[name].location, v);
},
"vec2<i32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform2iv(ud[name].location, v);
},
"vec3<i32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform3iv(ud[name].location, v);
},
"vec4<i32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform4iv(ud[name].location, v);
},
u32(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform1iv(ud[name].location, v);
},
"vec2<u32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform2iv(ud[name].location, v);
},
"vec3<u32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform3iv(ud[name].location, v);
},
"vec4<u32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform4iv(ud[name].location, v);
},
bool(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform1iv(ud[name].location, v);
},
"vec2<bool>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform2iv(ud[name].location, v);
},
"vec3<bool>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform3iv(ud[name].location, v);
},
"vec4<bool>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform4iv(ud[name].location, v);
}
};
const uniformParserFunctions = [
(name, _cu, _cv, _v, ud, uv, gl) => {
gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true));
},
(name, _cu, cv, v, ud, uv, gl) => {
cv = ud[name].value;
v = uv[name];
if (cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height) {
cv[0] = v.x;
cv[1] = v.y;
cv[2] = v.width;
cv[3] = v.height;
gl.uniform4f(ud[name].location, v.x, v.y, v.width, v.height);
}
},
(name, _cu, cv, v, ud, uv, gl) => {
cv = ud[name].value;
v = uv[name];
if (cv[0] !== v.x || cv[1] !== v.y) {
cv[0] = v.x;
cv[1] = v.y;
gl.uniform2f(ud[name].location, v.x, v.y);
}
},
(name, _cu, cv, v, ud, uv, gl) => {
cv = ud[name].value;
v = uv[name];
if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha) {
cv[0] = v.red;
cv[1] = v.green;
cv[2] = v.blue;
cv[3] = v.alpha;
gl.uniform4f(ud[name].location, v.red, v.green, v.blue, v.alpha);
}
},
(name, _cu, cv, v, ud, uv, gl) => {
cv = ud[name].value;
v = uv[name];
if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue) {
cv[0] = v.red;
cv[1] = v.green;
cv[2] = v.blue;
gl.uniform3f(ud[name].location, v.red, v.green, v.blue);
}
}
];
exports.uniformArrayParserFunctions = uniformArrayParserFunctions;
exports.uniformParserFunctions = uniformParserFunctions;
exports.uniformSingleParserFunctions = uniformSingleParserFunctions;
//# sourceMappingURL=uniformSyncFunctions.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,240 @@
"use strict";
const uniformSingleParserFunctions = {
f32(name, cu, cv, v, ud, _uv, gl) {
if (cv !== v) {
cu.value = v;
gl.uniform1f(ud[name].location, v);
}
},
"vec2<f32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1]) {
cv[0] = v[0];
cv[1] = v[1];
gl.uniform2f(ud[name].location, v[0], v[1]);
}
},
"vec3<f32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
gl.uniform3f(ud[name].location, v[0], v[1], v[2]);
}
},
"vec4<f32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
cv[3] = v[3];
gl.uniform4f(ud[name].location, v[0], v[1], v[2], v[3]);
}
},
i32(name, cu, cv, v, ud, _uv, gl) {
if (cv !== v) {
cu.value = v;
gl.uniform1i(ud[name].location, v);
}
},
"vec2<i32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1]) {
cv[0] = v[0];
cv[1] = v[1];
gl.uniform2i(ud[name].location, v[0], v[1]);
}
},
"vec3<i32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
gl.uniform3i(ud[name].location, v[0], v[1], v[2]);
}
},
"vec4<i32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
cv[3] = v[3];
gl.uniform4i(ud[name].location, v[0], v[1], v[2], v[3]);
}
},
u32(name, cu, cv, v, ud, _uv, gl) {
if (cv !== v) {
cu.value = v;
gl.uniform1ui(ud[name].location, v);
}
},
"vec2<u32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1]) {
cv[0] = v[0];
cv[1] = v[1];
gl.uniform2ui(ud[name].location, v[0], v[1]);
}
},
"vec3<u32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
gl.uniform3ui(ud[name].location, v[0], v[1], v[2]);
}
},
"vec4<u32>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
cv[3] = v[3];
gl.uniform4ui(ud[name].location, v[0], v[1], v[2], v[3]);
}
},
bool(name, cu, cv, v, ud, _uv, gl) {
if (cv !== v) {
cu.value = v;
gl.uniform1i(ud[name].location, v);
}
},
"vec2<bool>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1]) {
cv[0] = v[0];
cv[1] = v[1];
gl.uniform2i(ud[name].location, v[0], v[1]);
}
},
"vec3<bool>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
gl.uniform3i(ud[name].location, v[0], v[1], v[2]);
}
},
"vec4<bool>"(name, _cu, cv, v, ud, _uv, gl) {
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
cv[3] = v[3];
gl.uniform4i(ud[name].location, v[0], v[1], v[2], v[3]);
}
},
"mat2x2<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniformMatrix2fv(ud[name].location, false, v);
},
"mat3x3<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniformMatrix3fv(ud[name].location, false, v);
},
"mat4x4<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniformMatrix4fv(ud[name].location, false, v);
}
};
const uniformArrayParserFunctions = {
f32(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform1fv(ud[name].location, v);
},
"vec2<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform2fv(ud[name].location, v);
},
"vec3<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform3fv(ud[name].location, v);
},
"vec4<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform4fv(ud[name].location, v);
},
"mat2x2<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniformMatrix2fv(ud[name].location, false, v);
},
"mat3x3<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniformMatrix3fv(ud[name].location, false, v);
},
"mat4x4<f32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniformMatrix4fv(ud[name].location, false, v);
},
i32(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform1iv(ud[name].location, v);
},
"vec2<i32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform2iv(ud[name].location, v);
},
"vec3<i32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform3iv(ud[name].location, v);
},
"vec4<i32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform4iv(ud[name].location, v);
},
u32(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform1iv(ud[name].location, v);
},
"vec2<u32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform2iv(ud[name].location, v);
},
"vec3<u32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform3iv(ud[name].location, v);
},
"vec4<u32>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform4iv(ud[name].location, v);
},
bool(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform1iv(ud[name].location, v);
},
"vec2<bool>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform2iv(ud[name].location, v);
},
"vec3<bool>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform3iv(ud[name].location, v);
},
"vec4<bool>"(name, _cu, _cv, v, ud, _uv, gl) {
gl.uniform4iv(ud[name].location, v);
}
};
const uniformParserFunctions = [
(name, _cu, _cv, _v, ud, uv, gl) => {
gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true));
},
(name, _cu, cv, v, ud, uv, gl) => {
cv = ud[name].value;
v = uv[name];
if (cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height) {
cv[0] = v.x;
cv[1] = v.y;
cv[2] = v.width;
cv[3] = v.height;
gl.uniform4f(ud[name].location, v.x, v.y, v.width, v.height);
}
},
(name, _cu, cv, v, ud, uv, gl) => {
cv = ud[name].value;
v = uv[name];
if (cv[0] !== v.x || cv[1] !== v.y) {
cv[0] = v.x;
cv[1] = v.y;
gl.uniform2f(ud[name].location, v.x, v.y);
}
},
(name, _cu, cv, v, ud, uv, gl) => {
cv = ud[name].value;
v = uv[name];
if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha) {
cv[0] = v.red;
cv[1] = v.green;
cv[2] = v.blue;
cv[3] = v.alpha;
gl.uniform4f(ud[name].location, v.red, v.green, v.blue, v.alpha);
}
},
(name, _cu, cv, v, ud, uv, gl) => {
cv = ud[name].value;
v = uv[name];
if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue) {
cv[0] = v.red;
cv[1] = v.green;
cv[2] = v.blue;
gl.uniform3f(ud[name].location, v.red, v.green, v.blue);
}
}
];
export { uniformArrayParserFunctions, uniformParserFunctions, uniformSingleParserFunctions };
//# sourceMappingURL=uniformSyncFunctions.mjs.map

File diff suppressed because one or more lines are too long