sdfsdfs
This commit is contained in:
185
node_modules/pixi.js/lib/rendering/renderers/shared/shader/Shader.d.ts
generated
vendored
Normal file
185
node_modules/pixi.js/lib/rendering/renderers/shared/shader/Shader.d.ts
generated
vendored
Normal file
@@ -0,0 +1,185 @@
|
||||
import EventEmitter from 'eventemitter3';
|
||||
import { GlProgram } from '../../gl/shader/GlProgram';
|
||||
import { BindGroup } from '../../gpu/shader/BindGroup';
|
||||
import { GpuProgram } from '../../gpu/shader/GpuProgram';
|
||||
import type { GlProgramOptions } from '../../gl/shader/GlProgram';
|
||||
import type { GpuProgramOptions } from '../../gpu/shader/GpuProgram';
|
||||
/**
|
||||
* A record of {@link BindGroup}'s used by the shader.
|
||||
*
|
||||
* `Record<number, BindGroup>`
|
||||
* @memberof rendering
|
||||
*/
|
||||
export type ShaderGroups = Record<number, BindGroup>;
|
||||
interface ShaderBase {
|
||||
/** The WebGL program used by the WebGL renderer. */
|
||||
glProgram?: GlProgram;
|
||||
/** The WebGPU program used by the WebGPU renderer. */
|
||||
gpuProgram?: GpuProgram;
|
||||
/**
|
||||
* A number that uses two bits on whether the shader is compatible with the WebGL renderer and/or the WebGPU renderer.
|
||||
* 0b00 - not compatible with either
|
||||
* 0b01 - compatible with WebGL
|
||||
* 0b10 - compatible with WebGPU
|
||||
* This is automatically set based on if a {@link GlProgram} or {@link GpuProgram} is provided.
|
||||
*/
|
||||
compatibleRenderers?: number;
|
||||
}
|
||||
export interface GlShaderWith extends ShaderBase {
|
||||
/** The WebGL program used by the WebGL renderer. */
|
||||
glProgram: GlProgram;
|
||||
}
|
||||
export interface GpuShaderWith extends ShaderBase {
|
||||
/** The WebGPU program used by the WebGPU renderer. */
|
||||
gpuProgram: GpuProgram;
|
||||
}
|
||||
export interface ShaderWithGroupsDescriptor {
|
||||
/** A record of {@link BindGroup}'s used by the shader. */
|
||||
groups: ShaderGroups;
|
||||
/** an optional map of how to bind the groups. This is automatically generated by reading the WebGPU program */
|
||||
groupMap?: Record<string, Record<string, any>>;
|
||||
}
|
||||
interface ShaderWithResourcesDescriptor {
|
||||
/**
|
||||
* A key value of uniform resources used by the shader.
|
||||
* Under the hood pixi will look at the provided shaders and figure out where
|
||||
* the resources are mapped. Its up to you to make sure the resource key
|
||||
* matches the uniform name in the webGPU program. WebGL is a little more forgiving!
|
||||
*/
|
||||
resources?: Record<string, any>;
|
||||
}
|
||||
/**
|
||||
* A descriptor for a shader
|
||||
* @memberof rendering
|
||||
*/
|
||||
export type ShaderWith = GlShaderWith | GpuShaderWith;
|
||||
/**
|
||||
* A descriptor for a shader with groups.
|
||||
* @memberof rendering
|
||||
*/
|
||||
export type ShaderWithGroups = ShaderWithGroupsDescriptor & ShaderWith;
|
||||
export interface IShaderWithGroups extends ShaderWithGroupsDescriptor, ShaderBase {
|
||||
}
|
||||
/**
|
||||
* A descriptor for a shader with resources. This is an easier way to work with uniforms.
|
||||
* especially when you are not working with bind groups
|
||||
* @memberof rendering
|
||||
*/
|
||||
export type ShaderWithResources = ShaderWithResourcesDescriptor & ShaderWith;
|
||||
export interface IShaderWithResources extends ShaderWithResourcesDescriptor, ShaderBase {
|
||||
}
|
||||
export type ShaderDescriptor = ShaderWithGroups & ShaderWithResources;
|
||||
type GlShaderFromWith = {
|
||||
gpu?: GpuProgramOptions;
|
||||
gl: GlProgramOptions;
|
||||
};
|
||||
type GpuShaderFromWith = {
|
||||
gpu: GpuProgramOptions;
|
||||
gl?: GlProgramOptions;
|
||||
};
|
||||
export type ShaderFromGroups = (GlShaderFromWith | GpuShaderFromWith) & Omit<ShaderWithGroups, 'glProgram' | 'gpuProgram'>;
|
||||
export type ShaderFromResources = (GlShaderFromWith | GpuShaderFromWith) & Omit<ShaderWithResources, 'glProgram' | 'gpuProgram'>;
|
||||
/**
|
||||
* The Shader class is an integral part of the PixiJS graphics pipeline.
|
||||
* Central to rendering in PixiJS are two key elements: A [shader] and a [geometry].
|
||||
* The shader incorporates a {@link GlProgram} for WebGL or a {@link GpuProgram} for WebGPU,
|
||||
* instructing the respective technology on how to render the geometry.
|
||||
*
|
||||
* The primary goal of the Shader class is to offer a unified interface compatible with both WebGL and WebGPU.
|
||||
* When constructing a shader, you need to provide both a WebGL program and a WebGPU program due to the distinctions
|
||||
* between the two rendering engines. If only one is provided, the shader won't function with the omitted renderer.
|
||||
*
|
||||
* Both WebGL and WebGPU utilize the same resource object when passed into the shader.
|
||||
* Post-creation, the shader's interface remains consistent across both WebGL and WebGPU.
|
||||
* The sole distinction lies in whether a glProgram or a gpuProgram is employed.
|
||||
*
|
||||
* Modifying shader uniforms, which can encompass:
|
||||
* - TextureSampler {@link TextureStyle}
|
||||
* - TextureSource {@link TextureSource}
|
||||
* - UniformsGroups {@link UniformGroup}
|
||||
* @example
|
||||
*
|
||||
* const shader = new Shader({
|
||||
* glProgram: glProgram,
|
||||
* gpuProgram: gpuProgram,
|
||||
* resources: {
|
||||
* uTexture: texture.source,
|
||||
* uSampler: texture.sampler,
|
||||
* uColor: [1, 0, 0, 1],
|
||||
* },
|
||||
* });
|
||||
*
|
||||
* // update the uniforms
|
||||
* shader.resources.uColor[1] = 1;
|
||||
* shader.resources.uTexture = texture2.source;
|
||||
* @class
|
||||
* @memberof rendering
|
||||
*/
|
||||
export declare class Shader extends EventEmitter<{
|
||||
'destroy': Shader;
|
||||
}> {
|
||||
/** An instance of the GPU program used by the WebGPU renderer */
|
||||
gpuProgram: GpuProgram;
|
||||
/** An instance of the GL program used by the WebGL renderer */
|
||||
glProgram: GlProgram;
|
||||
/**
|
||||
* A number that uses two bits on whether the shader is compatible with the WebGL renderer and/or the WebGPU renderer.
|
||||
* 0b00 - not compatible with either
|
||||
* 0b01 - compatible with WebGL
|
||||
* 0b10 - compatible with WebGPU
|
||||
* This is automatically set based on if a {@link GlProgram} or {@link GpuProgram} is provided.
|
||||
*/
|
||||
readonly compatibleRenderers: number;
|
||||
/** */
|
||||
groups: Record<number, BindGroup>;
|
||||
/** A record of the resources used by the shader. */
|
||||
resources: Record<string, any>;
|
||||
/**
|
||||
* A record of the uniform groups and resources used by the shader.
|
||||
* This is used by WebGL renderer to sync uniform data.
|
||||
* @internal
|
||||
* @ignore
|
||||
*/
|
||||
_uniformBindMap: Record<number, Record<number, string>>;
|
||||
private readonly _ownedBindGroups;
|
||||
/**
|
||||
* Fired after rendering finishes.
|
||||
* @event rendering.Shader#destroy
|
||||
*/
|
||||
/**
|
||||
* There are two ways to create a shader.
|
||||
* one is to pass in resources which is a record of uniform groups and resources.
|
||||
* another is to pass in groups which is a record of {@link BindGroup}s.
|
||||
* this second method is really to make use of shared {@link BindGroup}s.
|
||||
* For most cases you will want to use resources as they are easier to work with.
|
||||
* USe Groups if you want to share {@link BindGroup}s between shaders.
|
||||
* you cannot mix and match - either use resources or groups.
|
||||
* @param {ShaderWithResourcesDescriptor} options - The options for the shader using ShaderWithResourcesDescriptor.
|
||||
*/
|
||||
constructor(options: ShaderWithResources);
|
||||
constructor(options: ShaderWithGroups);
|
||||
/**
|
||||
* Sometimes a resource group will be provided later (for example global uniforms)
|
||||
* In such cases, this method can be used to let the shader know about the group.
|
||||
* @param name - the name of the resource group
|
||||
* @param groupIndex - the index of the group (should match the webGPU shader group location)
|
||||
* @param bindIndex - the index of the bind point (should match the webGPU shader bind point)
|
||||
*/
|
||||
addResource(name: string, groupIndex: number, bindIndex: number): void;
|
||||
private _buildResourceAccessor;
|
||||
/**
|
||||
* Use to destroy the shader when its not longer needed.
|
||||
* It will destroy the resources and remove listeners.
|
||||
* @param destroyPrograms - if the programs should be destroyed as well.
|
||||
* Make sure its not being used by other shaders!
|
||||
*/
|
||||
destroy(destroyPrograms?: boolean): void;
|
||||
/**
|
||||
* A short hand function to create a shader based of a vertex and fragment shader.
|
||||
* @param options
|
||||
* @returns A shiny new PixiJS shader!
|
||||
*/
|
||||
static from(options: ShaderFromGroups): Shader;
|
||||
static from(options: ShaderFromResources): Shader;
|
||||
}
|
||||
export {};
|
184
node_modules/pixi.js/lib/rendering/renderers/shared/shader/Shader.js
generated
vendored
Normal file
184
node_modules/pixi.js/lib/rendering/renderers/shared/shader/Shader.js
generated
vendored
Normal file
@@ -0,0 +1,184 @@
|
||||
'use strict';
|
||||
|
||||
var EventEmitter = require('eventemitter3');
|
||||
var GlProgram = require('../../gl/shader/GlProgram.js');
|
||||
var BindGroup = require('../../gpu/shader/BindGroup.js');
|
||||
var GpuProgram = require('../../gpu/shader/GpuProgram.js');
|
||||
var types = require('../../types.js');
|
||||
var UniformGroup = require('./UniformGroup.js');
|
||||
|
||||
"use strict";
|
||||
class Shader extends EventEmitter {
|
||||
constructor(options) {
|
||||
super();
|
||||
/**
|
||||
* A record of the uniform groups and resources used by the shader.
|
||||
* This is used by WebGL renderer to sync uniform data.
|
||||
* @internal
|
||||
* @ignore
|
||||
*/
|
||||
this._uniformBindMap = /* @__PURE__ */ Object.create(null);
|
||||
this._ownedBindGroups = [];
|
||||
let {
|
||||
gpuProgram,
|
||||
glProgram,
|
||||
groups,
|
||||
resources,
|
||||
compatibleRenderers,
|
||||
groupMap
|
||||
} = options;
|
||||
this.gpuProgram = gpuProgram;
|
||||
this.glProgram = glProgram;
|
||||
if (compatibleRenderers === void 0) {
|
||||
compatibleRenderers = 0;
|
||||
if (gpuProgram)
|
||||
compatibleRenderers |= types.RendererType.WEBGPU;
|
||||
if (glProgram)
|
||||
compatibleRenderers |= types.RendererType.WEBGL;
|
||||
}
|
||||
this.compatibleRenderers = compatibleRenderers;
|
||||
const nameHash = {};
|
||||
if (!resources && !groups) {
|
||||
resources = {};
|
||||
}
|
||||
if (resources && groups) {
|
||||
throw new Error("[Shader] Cannot have both resources and groups");
|
||||
} else if (!gpuProgram && groups && !groupMap) {
|
||||
throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");
|
||||
} else if (!gpuProgram && groups && groupMap) {
|
||||
for (const i in groupMap) {
|
||||
for (const j in groupMap[i]) {
|
||||
const uniformName = groupMap[i][j];
|
||||
nameHash[uniformName] = {
|
||||
group: i,
|
||||
binding: j,
|
||||
name: uniformName
|
||||
};
|
||||
}
|
||||
}
|
||||
} else if (gpuProgram && groups && !groupMap) {
|
||||
const groupData = gpuProgram.structsAndGroups.groups;
|
||||
groupMap = {};
|
||||
groupData.forEach((data) => {
|
||||
groupMap[data.group] = groupMap[data.group] || {};
|
||||
groupMap[data.group][data.binding] = data.name;
|
||||
nameHash[data.name] = data;
|
||||
});
|
||||
} else if (resources) {
|
||||
groups = {};
|
||||
groupMap = {};
|
||||
if (gpuProgram) {
|
||||
const groupData = gpuProgram.structsAndGroups.groups;
|
||||
groupData.forEach((data) => {
|
||||
groupMap[data.group] = groupMap[data.group] || {};
|
||||
groupMap[data.group][data.binding] = data.name;
|
||||
nameHash[data.name] = data;
|
||||
});
|
||||
}
|
||||
let bindTick = 0;
|
||||
for (const i in resources) {
|
||||
if (nameHash[i])
|
||||
continue;
|
||||
if (!groups[99]) {
|
||||
groups[99] = new BindGroup.BindGroup();
|
||||
this._ownedBindGroups.push(groups[99]);
|
||||
}
|
||||
nameHash[i] = { group: 99, binding: bindTick, name: i };
|
||||
groupMap[99] = groupMap[99] || {};
|
||||
groupMap[99][bindTick] = i;
|
||||
bindTick++;
|
||||
}
|
||||
for (const i in resources) {
|
||||
const name = i;
|
||||
let value = resources[i];
|
||||
if (!value.source && !value._resourceType) {
|
||||
value = new UniformGroup.UniformGroup(value);
|
||||
}
|
||||
const data = nameHash[name];
|
||||
if (data) {
|
||||
if (!groups[data.group]) {
|
||||
groups[data.group] = new BindGroup.BindGroup();
|
||||
this._ownedBindGroups.push(groups[data.group]);
|
||||
}
|
||||
groups[data.group].setResource(value, data.binding);
|
||||
}
|
||||
}
|
||||
}
|
||||
this.groups = groups;
|
||||
this._uniformBindMap = groupMap;
|
||||
this.resources = this._buildResourceAccessor(groups, nameHash);
|
||||
}
|
||||
/**
|
||||
* Sometimes a resource group will be provided later (for example global uniforms)
|
||||
* In such cases, this method can be used to let the shader know about the group.
|
||||
* @param name - the name of the resource group
|
||||
* @param groupIndex - the index of the group (should match the webGPU shader group location)
|
||||
* @param bindIndex - the index of the bind point (should match the webGPU shader bind point)
|
||||
*/
|
||||
addResource(name, groupIndex, bindIndex) {
|
||||
var _a, _b;
|
||||
(_a = this._uniformBindMap)[groupIndex] || (_a[groupIndex] = {});
|
||||
(_b = this._uniformBindMap[groupIndex])[bindIndex] || (_b[bindIndex] = name);
|
||||
if (!this.groups[groupIndex]) {
|
||||
this.groups[groupIndex] = new BindGroup.BindGroup();
|
||||
this._ownedBindGroups.push(this.groups[groupIndex]);
|
||||
}
|
||||
}
|
||||
_buildResourceAccessor(groups, nameHash) {
|
||||
const uniformsOut = {};
|
||||
for (const i in nameHash) {
|
||||
const data = nameHash[i];
|
||||
Object.defineProperty(uniformsOut, data.name, {
|
||||
get() {
|
||||
return groups[data.group].getResource(data.binding);
|
||||
},
|
||||
set(value) {
|
||||
groups[data.group].setResource(value, data.binding);
|
||||
}
|
||||
});
|
||||
}
|
||||
return uniformsOut;
|
||||
}
|
||||
/**
|
||||
* Use to destroy the shader when its not longer needed.
|
||||
* It will destroy the resources and remove listeners.
|
||||
* @param destroyPrograms - if the programs should be destroyed as well.
|
||||
* Make sure its not being used by other shaders!
|
||||
*/
|
||||
destroy(destroyPrograms = false) {
|
||||
this.emit("destroy", this);
|
||||
if (destroyPrograms) {
|
||||
this.gpuProgram?.destroy();
|
||||
this.glProgram?.destroy();
|
||||
}
|
||||
this.gpuProgram = null;
|
||||
this.glProgram = null;
|
||||
this.removeAllListeners();
|
||||
this._uniformBindMap = null;
|
||||
this._ownedBindGroups.forEach((bindGroup) => {
|
||||
bindGroup.destroy();
|
||||
});
|
||||
this._ownedBindGroups = null;
|
||||
this.resources = null;
|
||||
this.groups = null;
|
||||
}
|
||||
static from(options) {
|
||||
const { gpu, gl, ...rest } = options;
|
||||
let gpuProgram;
|
||||
let glProgram;
|
||||
if (gpu) {
|
||||
gpuProgram = GpuProgram.GpuProgram.from(gpu);
|
||||
}
|
||||
if (gl) {
|
||||
glProgram = GlProgram.GlProgram.from(gl);
|
||||
}
|
||||
return new Shader({
|
||||
gpuProgram,
|
||||
glProgram,
|
||||
...rest
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
exports.Shader = Shader;
|
||||
//# sourceMappingURL=Shader.js.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/Shader.js.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/Shader.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
182
node_modules/pixi.js/lib/rendering/renderers/shared/shader/Shader.mjs
generated
vendored
Normal file
182
node_modules/pixi.js/lib/rendering/renderers/shared/shader/Shader.mjs
generated
vendored
Normal file
@@ -0,0 +1,182 @@
|
||||
import EventEmitter from 'eventemitter3';
|
||||
import { GlProgram } from '../../gl/shader/GlProgram.mjs';
|
||||
import { BindGroup } from '../../gpu/shader/BindGroup.mjs';
|
||||
import { GpuProgram } from '../../gpu/shader/GpuProgram.mjs';
|
||||
import { RendererType } from '../../types.mjs';
|
||||
import { UniformGroup } from './UniformGroup.mjs';
|
||||
|
||||
"use strict";
|
||||
class Shader extends EventEmitter {
|
||||
constructor(options) {
|
||||
super();
|
||||
/**
|
||||
* A record of the uniform groups and resources used by the shader.
|
||||
* This is used by WebGL renderer to sync uniform data.
|
||||
* @internal
|
||||
* @ignore
|
||||
*/
|
||||
this._uniformBindMap = /* @__PURE__ */ Object.create(null);
|
||||
this._ownedBindGroups = [];
|
||||
let {
|
||||
gpuProgram,
|
||||
glProgram,
|
||||
groups,
|
||||
resources,
|
||||
compatibleRenderers,
|
||||
groupMap
|
||||
} = options;
|
||||
this.gpuProgram = gpuProgram;
|
||||
this.glProgram = glProgram;
|
||||
if (compatibleRenderers === void 0) {
|
||||
compatibleRenderers = 0;
|
||||
if (gpuProgram)
|
||||
compatibleRenderers |= RendererType.WEBGPU;
|
||||
if (glProgram)
|
||||
compatibleRenderers |= RendererType.WEBGL;
|
||||
}
|
||||
this.compatibleRenderers = compatibleRenderers;
|
||||
const nameHash = {};
|
||||
if (!resources && !groups) {
|
||||
resources = {};
|
||||
}
|
||||
if (resources && groups) {
|
||||
throw new Error("[Shader] Cannot have both resources and groups");
|
||||
} else if (!gpuProgram && groups && !groupMap) {
|
||||
throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");
|
||||
} else if (!gpuProgram && groups && groupMap) {
|
||||
for (const i in groupMap) {
|
||||
for (const j in groupMap[i]) {
|
||||
const uniformName = groupMap[i][j];
|
||||
nameHash[uniformName] = {
|
||||
group: i,
|
||||
binding: j,
|
||||
name: uniformName
|
||||
};
|
||||
}
|
||||
}
|
||||
} else if (gpuProgram && groups && !groupMap) {
|
||||
const groupData = gpuProgram.structsAndGroups.groups;
|
||||
groupMap = {};
|
||||
groupData.forEach((data) => {
|
||||
groupMap[data.group] = groupMap[data.group] || {};
|
||||
groupMap[data.group][data.binding] = data.name;
|
||||
nameHash[data.name] = data;
|
||||
});
|
||||
} else if (resources) {
|
||||
groups = {};
|
||||
groupMap = {};
|
||||
if (gpuProgram) {
|
||||
const groupData = gpuProgram.structsAndGroups.groups;
|
||||
groupData.forEach((data) => {
|
||||
groupMap[data.group] = groupMap[data.group] || {};
|
||||
groupMap[data.group][data.binding] = data.name;
|
||||
nameHash[data.name] = data;
|
||||
});
|
||||
}
|
||||
let bindTick = 0;
|
||||
for (const i in resources) {
|
||||
if (nameHash[i])
|
||||
continue;
|
||||
if (!groups[99]) {
|
||||
groups[99] = new BindGroup();
|
||||
this._ownedBindGroups.push(groups[99]);
|
||||
}
|
||||
nameHash[i] = { group: 99, binding: bindTick, name: i };
|
||||
groupMap[99] = groupMap[99] || {};
|
||||
groupMap[99][bindTick] = i;
|
||||
bindTick++;
|
||||
}
|
||||
for (const i in resources) {
|
||||
const name = i;
|
||||
let value = resources[i];
|
||||
if (!value.source && !value._resourceType) {
|
||||
value = new UniformGroup(value);
|
||||
}
|
||||
const data = nameHash[name];
|
||||
if (data) {
|
||||
if (!groups[data.group]) {
|
||||
groups[data.group] = new BindGroup();
|
||||
this._ownedBindGroups.push(groups[data.group]);
|
||||
}
|
||||
groups[data.group].setResource(value, data.binding);
|
||||
}
|
||||
}
|
||||
}
|
||||
this.groups = groups;
|
||||
this._uniformBindMap = groupMap;
|
||||
this.resources = this._buildResourceAccessor(groups, nameHash);
|
||||
}
|
||||
/**
|
||||
* Sometimes a resource group will be provided later (for example global uniforms)
|
||||
* In such cases, this method can be used to let the shader know about the group.
|
||||
* @param name - the name of the resource group
|
||||
* @param groupIndex - the index of the group (should match the webGPU shader group location)
|
||||
* @param bindIndex - the index of the bind point (should match the webGPU shader bind point)
|
||||
*/
|
||||
addResource(name, groupIndex, bindIndex) {
|
||||
var _a, _b;
|
||||
(_a = this._uniformBindMap)[groupIndex] || (_a[groupIndex] = {});
|
||||
(_b = this._uniformBindMap[groupIndex])[bindIndex] || (_b[bindIndex] = name);
|
||||
if (!this.groups[groupIndex]) {
|
||||
this.groups[groupIndex] = new BindGroup();
|
||||
this._ownedBindGroups.push(this.groups[groupIndex]);
|
||||
}
|
||||
}
|
||||
_buildResourceAccessor(groups, nameHash) {
|
||||
const uniformsOut = {};
|
||||
for (const i in nameHash) {
|
||||
const data = nameHash[i];
|
||||
Object.defineProperty(uniformsOut, data.name, {
|
||||
get() {
|
||||
return groups[data.group].getResource(data.binding);
|
||||
},
|
||||
set(value) {
|
||||
groups[data.group].setResource(value, data.binding);
|
||||
}
|
||||
});
|
||||
}
|
||||
return uniformsOut;
|
||||
}
|
||||
/**
|
||||
* Use to destroy the shader when its not longer needed.
|
||||
* It will destroy the resources and remove listeners.
|
||||
* @param destroyPrograms - if the programs should be destroyed as well.
|
||||
* Make sure its not being used by other shaders!
|
||||
*/
|
||||
destroy(destroyPrograms = false) {
|
||||
this.emit("destroy", this);
|
||||
if (destroyPrograms) {
|
||||
this.gpuProgram?.destroy();
|
||||
this.glProgram?.destroy();
|
||||
}
|
||||
this.gpuProgram = null;
|
||||
this.glProgram = null;
|
||||
this.removeAllListeners();
|
||||
this._uniformBindMap = null;
|
||||
this._ownedBindGroups.forEach((bindGroup) => {
|
||||
bindGroup.destroy();
|
||||
});
|
||||
this._ownedBindGroups = null;
|
||||
this.resources = null;
|
||||
this.groups = null;
|
||||
}
|
||||
static from(options) {
|
||||
const { gpu, gl, ...rest } = options;
|
||||
let gpuProgram;
|
||||
let glProgram;
|
||||
if (gpu) {
|
||||
gpuProgram = GpuProgram.from(gpu);
|
||||
}
|
||||
if (gl) {
|
||||
glProgram = GlProgram.from(gl);
|
||||
}
|
||||
return new Shader({
|
||||
gpuProgram,
|
||||
glProgram,
|
||||
...rest
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export { Shader };
|
||||
//# sourceMappingURL=Shader.mjs.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/Shader.mjs.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/Shader.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
9
node_modules/pixi.js/lib/rendering/renderers/shared/shader/ShaderSystem.d.ts
generated
vendored
Normal file
9
node_modules/pixi.js/lib/rendering/renderers/shared/shader/ShaderSystem.d.ts
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
import type { System } from '../system/System';
|
||||
/**
|
||||
* System plugin to the renderer to manage the shaders.
|
||||
* @memberof rendering
|
||||
*/
|
||||
export interface ShaderSystem extends System {
|
||||
/** the maximum number of textures that can be bound to a shader */
|
||||
readonly maxTextures: number;
|
||||
}
|
4
node_modules/pixi.js/lib/rendering/renderers/shared/shader/ShaderSystem.js
generated
vendored
Normal file
4
node_modules/pixi.js/lib/rendering/renderers/shared/shader/ShaderSystem.js
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
'use strict';
|
||||
|
||||
"use strict";
|
||||
//# sourceMappingURL=ShaderSystem.js.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/ShaderSystem.js.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/ShaderSystem.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ShaderSystem.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
2
node_modules/pixi.js/lib/rendering/renderers/shared/shader/ShaderSystem.mjs
generated
vendored
Normal file
2
node_modules/pixi.js/lib/rendering/renderers/shared/shader/ShaderSystem.mjs
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
"use strict";
|
||||
//# sourceMappingURL=ShaderSystem.mjs.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/ShaderSystem.mjs.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/ShaderSystem.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ShaderSystem.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
33
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UboSystem.d.ts
generated
vendored
Normal file
33
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UboSystem.d.ts
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
import type { System } from '../system/System';
|
||||
import type { UboElement, UboLayout, UniformData, UniformsSyncCallback } from './types';
|
||||
import type { UniformGroup } from './UniformGroup';
|
||||
export interface UboAdaptor {
|
||||
createUboElements: (uniformData: UniformData[]) => UboLayout;
|
||||
generateUboSync: (uboElements: UboElement[]) => UniformsSyncCallback;
|
||||
}
|
||||
/**
|
||||
* System plugin to the renderer to manage uniform buffers.
|
||||
* @memberof rendering
|
||||
*/
|
||||
export declare class UboSystem implements System {
|
||||
/** Cache of uniform buffer layouts and sync functions, so we don't have to re-create them */
|
||||
private _syncFunctionHash;
|
||||
private readonly _adaptor;
|
||||
constructor(adaptor: UboAdaptor);
|
||||
/**
|
||||
* Overridable function by `pixi.js/unsafe-eval` to silence
|
||||
* throwing an error if platform doesn't support unsafe-evals.
|
||||
* @private
|
||||
*/
|
||||
private _systemCheck;
|
||||
ensureUniformGroup(uniformGroup: UniformGroup): void;
|
||||
getUniformGroupData(uniformGroup: UniformGroup): {
|
||||
layout: UboLayout;
|
||||
syncFunction: (uniforms: Record<string, any>, data: Float32Array, offset: number) => void;
|
||||
};
|
||||
private _initUniformGroup;
|
||||
private _generateUboSync;
|
||||
syncUniformGroup(uniformGroup: UniformGroup, data?: Float32Array, offset?: number): boolean;
|
||||
updateUniformGroup(uniformGroup: UniformGroup): boolean;
|
||||
destroy(): void;
|
||||
}
|
77
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UboSystem.js
generated
vendored
Normal file
77
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UboSystem.js
generated
vendored
Normal file
@@ -0,0 +1,77 @@
|
||||
'use strict';
|
||||
|
||||
var unsafeEvalSupported = require('../../../../utils/browser/unsafeEvalSupported.js');
|
||||
var Buffer = require('../buffer/Buffer.js');
|
||||
var _const = require('../buffer/const.js');
|
||||
|
||||
"use strict";
|
||||
class UboSystem {
|
||||
constructor(adaptor) {
|
||||
/** Cache of uniform buffer layouts and sync functions, so we don't have to re-create them */
|
||||
this._syncFunctionHash = /* @__PURE__ */ Object.create(null);
|
||||
this._adaptor = adaptor;
|
||||
this._systemCheck();
|
||||
}
|
||||
/**
|
||||
* Overridable function by `pixi.js/unsafe-eval` to silence
|
||||
* throwing an error if platform doesn't support unsafe-evals.
|
||||
* @private
|
||||
*/
|
||||
_systemCheck() {
|
||||
if (!unsafeEvalSupported.unsafeEvalSupported()) {
|
||||
throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.");
|
||||
}
|
||||
}
|
||||
ensureUniformGroup(uniformGroup) {
|
||||
const uniformData = this.getUniformGroupData(uniformGroup);
|
||||
uniformGroup.buffer || (uniformGroup.buffer = new Buffer.Buffer({
|
||||
data: new Float32Array(uniformData.layout.size / 4),
|
||||
usage: _const.BufferUsage.UNIFORM | _const.BufferUsage.COPY_DST
|
||||
}));
|
||||
}
|
||||
getUniformGroupData(uniformGroup) {
|
||||
return this._syncFunctionHash[uniformGroup._signature] || this._initUniformGroup(uniformGroup);
|
||||
}
|
||||
_initUniformGroup(uniformGroup) {
|
||||
const uniformGroupSignature = uniformGroup._signature;
|
||||
let uniformData = this._syncFunctionHash[uniformGroupSignature];
|
||||
if (!uniformData) {
|
||||
const elements = Object.keys(uniformGroup.uniformStructures).map((i) => uniformGroup.uniformStructures[i]);
|
||||
const layout = this._adaptor.createUboElements(elements);
|
||||
const syncFunction = this._generateUboSync(layout.uboElements);
|
||||
uniformData = this._syncFunctionHash[uniformGroupSignature] = {
|
||||
layout,
|
||||
syncFunction
|
||||
};
|
||||
}
|
||||
return this._syncFunctionHash[uniformGroupSignature];
|
||||
}
|
||||
_generateUboSync(uboElements) {
|
||||
return this._adaptor.generateUboSync(uboElements);
|
||||
}
|
||||
syncUniformGroup(uniformGroup, data, offset) {
|
||||
const uniformGroupData = this.getUniformGroupData(uniformGroup);
|
||||
uniformGroup.buffer || (uniformGroup.buffer = new Buffer.Buffer({
|
||||
data: new Float32Array(uniformGroupData.layout.size / 4),
|
||||
usage: _const.BufferUsage.UNIFORM | _const.BufferUsage.COPY_DST
|
||||
}));
|
||||
data || (data = uniformGroup.buffer.data);
|
||||
offset || (offset = 0);
|
||||
uniformGroupData.syncFunction(uniformGroup.uniforms, data, offset);
|
||||
return true;
|
||||
}
|
||||
updateUniformGroup(uniformGroup) {
|
||||
if (uniformGroup.isStatic && !uniformGroup._dirtyId)
|
||||
return false;
|
||||
uniformGroup._dirtyId = 0;
|
||||
const synced = this.syncUniformGroup(uniformGroup);
|
||||
uniformGroup.buffer.update();
|
||||
return synced;
|
||||
}
|
||||
destroy() {
|
||||
this._syncFunctionHash = null;
|
||||
}
|
||||
}
|
||||
|
||||
exports.UboSystem = UboSystem;
|
||||
//# sourceMappingURL=UboSystem.js.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UboSystem.js.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UboSystem.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
75
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UboSystem.mjs
generated
vendored
Normal file
75
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UboSystem.mjs
generated
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
import { unsafeEvalSupported } from '../../../../utils/browser/unsafeEvalSupported.mjs';
|
||||
import { Buffer } from '../buffer/Buffer.mjs';
|
||||
import { BufferUsage } from '../buffer/const.mjs';
|
||||
|
||||
"use strict";
|
||||
class UboSystem {
|
||||
constructor(adaptor) {
|
||||
/** Cache of uniform buffer layouts and sync functions, so we don't have to re-create them */
|
||||
this._syncFunctionHash = /* @__PURE__ */ Object.create(null);
|
||||
this._adaptor = adaptor;
|
||||
this._systemCheck();
|
||||
}
|
||||
/**
|
||||
* Overridable function by `pixi.js/unsafe-eval` to silence
|
||||
* throwing an error if platform doesn't support unsafe-evals.
|
||||
* @private
|
||||
*/
|
||||
_systemCheck() {
|
||||
if (!unsafeEvalSupported()) {
|
||||
throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.");
|
||||
}
|
||||
}
|
||||
ensureUniformGroup(uniformGroup) {
|
||||
const uniformData = this.getUniformGroupData(uniformGroup);
|
||||
uniformGroup.buffer || (uniformGroup.buffer = new Buffer({
|
||||
data: new Float32Array(uniformData.layout.size / 4),
|
||||
usage: BufferUsage.UNIFORM | BufferUsage.COPY_DST
|
||||
}));
|
||||
}
|
||||
getUniformGroupData(uniformGroup) {
|
||||
return this._syncFunctionHash[uniformGroup._signature] || this._initUniformGroup(uniformGroup);
|
||||
}
|
||||
_initUniformGroup(uniformGroup) {
|
||||
const uniformGroupSignature = uniformGroup._signature;
|
||||
let uniformData = this._syncFunctionHash[uniformGroupSignature];
|
||||
if (!uniformData) {
|
||||
const elements = Object.keys(uniformGroup.uniformStructures).map((i) => uniformGroup.uniformStructures[i]);
|
||||
const layout = this._adaptor.createUboElements(elements);
|
||||
const syncFunction = this._generateUboSync(layout.uboElements);
|
||||
uniformData = this._syncFunctionHash[uniformGroupSignature] = {
|
||||
layout,
|
||||
syncFunction
|
||||
};
|
||||
}
|
||||
return this._syncFunctionHash[uniformGroupSignature];
|
||||
}
|
||||
_generateUboSync(uboElements) {
|
||||
return this._adaptor.generateUboSync(uboElements);
|
||||
}
|
||||
syncUniformGroup(uniformGroup, data, offset) {
|
||||
const uniformGroupData = this.getUniformGroupData(uniformGroup);
|
||||
uniformGroup.buffer || (uniformGroup.buffer = new Buffer({
|
||||
data: new Float32Array(uniformGroupData.layout.size / 4),
|
||||
usage: BufferUsage.UNIFORM | BufferUsage.COPY_DST
|
||||
}));
|
||||
data || (data = uniformGroup.buffer.data);
|
||||
offset || (offset = 0);
|
||||
uniformGroupData.syncFunction(uniformGroup.uniforms, data, offset);
|
||||
return true;
|
||||
}
|
||||
updateUniformGroup(uniformGroup) {
|
||||
if (uniformGroup.isStatic && !uniformGroup._dirtyId)
|
||||
return false;
|
||||
uniformGroup._dirtyId = 0;
|
||||
const synced = this.syncUniformGroup(uniformGroup);
|
||||
uniformGroup.buffer.update();
|
||||
return synced;
|
||||
}
|
||||
destroy() {
|
||||
this._syncFunctionHash = null;
|
||||
}
|
||||
}
|
||||
|
||||
export { UboSystem };
|
||||
//# sourceMappingURL=UboSystem.mjs.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UboSystem.mjs.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UboSystem.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
128
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UniformGroup.d.ts
generated
vendored
Normal file
128
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UniformGroup.d.ts
generated
vendored
Normal file
@@ -0,0 +1,128 @@
|
||||
import { type UniformData } from './types';
|
||||
import type { BindResource } from '../../gpu/shader/BindResource';
|
||||
import type { Buffer } from '../buffer/Buffer';
|
||||
type FLOPS<T = UniformData> = T extends {
|
||||
value: infer V;
|
||||
} ? V : never;
|
||||
type ExtractUniformObject<T = Record<string, UniformData>> = {
|
||||
[K in keyof T]: FLOPS<T[K]>;
|
||||
};
|
||||
/**
|
||||
* Uniform group options
|
||||
* @memberof rendering
|
||||
*/
|
||||
export type UniformGroupOptions = {
|
||||
/**
|
||||
* if true the UniformGroup is handled as an Uniform buffer object.
|
||||
* This is the only way WebGPU can work with uniforms. WebGL2 can also use this.
|
||||
* So don't set to true if you want to use WebGPU :D
|
||||
*/
|
||||
ubo?: boolean;
|
||||
/** if true, then you are responsible for when the data is uploaded to the GPU by calling `update()` */
|
||||
isStatic?: boolean;
|
||||
};
|
||||
/**
|
||||
* Uniform group holds uniform map and some ID's for work
|
||||
*
|
||||
* `UniformGroup` has two modes:
|
||||
*
|
||||
* 1: Normal mode
|
||||
* Normal mode will upload the uniforms with individual function calls as required. This is the default mode
|
||||
* for WebGL rendering.
|
||||
*
|
||||
* 2: Uniform buffer mode
|
||||
* This mode will treat the uniforms as a uniform buffer. You can pass in either a buffer that you manually handle, or
|
||||
* or a generic object that PixiJS will automatically map to a buffer for you.
|
||||
* For maximum benefits, make Ubo UniformGroups static, and only update them each frame.
|
||||
* This is the only way uniforms can be used with WebGPU.
|
||||
*
|
||||
* Rules of UBOs:
|
||||
* - UBOs only work with WebGL2, so make sure you have a fallback!
|
||||
* - Only floats are supported (including vec[2,3,4], mat[2,3,4])
|
||||
* - Samplers cannot be used in ubo's (a GPU limitation)
|
||||
* - You must ensure that the object you pass in exactly matches in the shader ubo structure.
|
||||
* Otherwise, weirdness will ensue!
|
||||
* - The name of the ubo object added to the group must match exactly the name of the ubo in the shader.
|
||||
*
|
||||
* When declaring your uniform options, you ust parse in the value and the type of the uniform.
|
||||
* The types correspond to the WebGPU types {@link UNIFORM_TYPES}
|
||||
*
|
||||
Uniforms can be modified via the classes 'uniforms' property. It will contain all the uniforms declared in the constructor.
|
||||
*
|
||||
* ```glsl
|
||||
* // UBO in shader:
|
||||
* uniform myCoolData { // Declaring a UBO...
|
||||
* mat4 uCoolMatrix;
|
||||
* float uFloatyMcFloatFace;
|
||||
* };
|
||||
* ```
|
||||
*
|
||||
* ```js
|
||||
* // A new Uniform Buffer Object...
|
||||
* const myCoolData = new UniformGroup({
|
||||
* uCoolMatrix: {value:new Matrix(), type: 'mat4<f32>'},
|
||||
* uFloatyMcFloatFace: {value:23, type: 'f32'},
|
||||
* }}
|
||||
*
|
||||
* // modify the data
|
||||
* myCoolData.uniforms.uFloatyMcFloatFace = 42;
|
||||
* // Build a shader...
|
||||
* const shader = Shader.from(srcVert, srcFrag, {
|
||||
* myCoolData // Name matches the UBO name in the shader. Will be processed accordingly.
|
||||
* })
|
||||
*
|
||||
*
|
||||
* ```
|
||||
* @memberof rendering
|
||||
*/
|
||||
export declare class UniformGroup<UNIFORMS extends {
|
||||
[key: string]: UniformData;
|
||||
} = any> implements BindResource {
|
||||
/** The default options used by the uniform group. */
|
||||
static defaultOptions: UniformGroupOptions;
|
||||
/** used internally to know if a uniform group was used in the last render pass */
|
||||
_touched: number;
|
||||
/** a unique id for this uniform group used through the renderer */
|
||||
readonly uid: number;
|
||||
/** a resource type, used to identify how to handle it when its in a bind group / shader resource */
|
||||
_resourceType: string;
|
||||
/** the resource id used internally by the renderer to build bind group keys */
|
||||
_resourceId: number;
|
||||
/** the structures of the uniform group */
|
||||
uniformStructures: UNIFORMS;
|
||||
/** the uniforms as an easily accessible map of properties */
|
||||
uniforms: ExtractUniformObject<UNIFORMS>;
|
||||
/** true if it should be used as a uniform buffer object */
|
||||
ubo: boolean;
|
||||
/** an underlying buffer that will be uploaded to the GPU when using this UniformGroup */
|
||||
buffer?: Buffer;
|
||||
/**
|
||||
* if true, then you are responsible for when the data is uploaded to the GPU.
|
||||
* otherwise, the data is reuploaded each frame.
|
||||
*/
|
||||
isStatic: boolean;
|
||||
/** used ito identify if this is a uniform group */
|
||||
readonly isUniformGroup = true;
|
||||
/**
|
||||
* used to flag if this Uniform groups data is different from what it has stored in its buffer / on the GPU
|
||||
* @internal
|
||||
* @ignore
|
||||
*/
|
||||
_dirtyId: number;
|
||||
/**
|
||||
* a signature string generated for internal use
|
||||
* @internal
|
||||
* @ignore
|
||||
*/
|
||||
readonly _signature: number;
|
||||
readonly destroyed = false;
|
||||
/**
|
||||
* Create a new Uniform group
|
||||
* @param uniformStructures - The structures of the uniform group
|
||||
* @param options - The optional parameters of this uniform group
|
||||
*/
|
||||
constructor(uniformStructures: UNIFORMS, options?: UniformGroupOptions);
|
||||
/** Call this if you want the uniform groups data to be uploaded to the GPU only useful if `isStatic` is true. */
|
||||
update(): void;
|
||||
}
|
||||
export {};
|
70
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UniformGroup.js
generated
vendored
Normal file
70
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UniformGroup.js
generated
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
'use strict';
|
||||
|
||||
var uid = require('../../../../utils/data/uid.js');
|
||||
var createIdFromString = require('../utils/createIdFromString.js');
|
||||
var types = require('./types.js');
|
||||
var getDefaultUniformValue = require('./utils/getDefaultUniformValue.js');
|
||||
|
||||
"use strict";
|
||||
const _UniformGroup = class _UniformGroup {
|
||||
/**
|
||||
* Create a new Uniform group
|
||||
* @param uniformStructures - The structures of the uniform group
|
||||
* @param options - The optional parameters of this uniform group
|
||||
*/
|
||||
constructor(uniformStructures, options) {
|
||||
/** used internally to know if a uniform group was used in the last render pass */
|
||||
this._touched = 0;
|
||||
/** a unique id for this uniform group used through the renderer */
|
||||
this.uid = uid.uid("uniform");
|
||||
/** a resource type, used to identify how to handle it when its in a bind group / shader resource */
|
||||
this._resourceType = "uniformGroup";
|
||||
/** the resource id used internally by the renderer to build bind group keys */
|
||||
this._resourceId = uid.uid("resource");
|
||||
/** used ito identify if this is a uniform group */
|
||||
this.isUniformGroup = true;
|
||||
/**
|
||||
* used to flag if this Uniform groups data is different from what it has stored in its buffer / on the GPU
|
||||
* @internal
|
||||
* @ignore
|
||||
*/
|
||||
this._dirtyId = 0;
|
||||
// implementing the interface - UniformGroup are not destroyed
|
||||
this.destroyed = false;
|
||||
options = { ..._UniformGroup.defaultOptions, ...options };
|
||||
this.uniformStructures = uniformStructures;
|
||||
const uniforms = {};
|
||||
for (const i in uniformStructures) {
|
||||
const uniformData = uniformStructures[i];
|
||||
uniformData.name = i;
|
||||
uniformData.size = uniformData.size ?? 1;
|
||||
if (!types.UNIFORM_TYPES_MAP[uniformData.type]) {
|
||||
throw new Error(`Uniform type ${uniformData.type} is not supported. Supported uniform types are: ${types.UNIFORM_TYPES_VALUES.join(", ")}`);
|
||||
}
|
||||
uniformData.value ?? (uniformData.value = getDefaultUniformValue.getDefaultUniformValue(uniformData.type, uniformData.size));
|
||||
uniforms[i] = uniformData.value;
|
||||
}
|
||||
this.uniforms = uniforms;
|
||||
this._dirtyId = 1;
|
||||
this.ubo = options.ubo;
|
||||
this.isStatic = options.isStatic;
|
||||
this._signature = createIdFromString.createIdFromString(Object.keys(uniforms).map(
|
||||
(i) => `${i}-${uniformStructures[i].type}`
|
||||
).join("-"), "uniform-group");
|
||||
}
|
||||
/** Call this if you want the uniform groups data to be uploaded to the GPU only useful if `isStatic` is true. */
|
||||
update() {
|
||||
this._dirtyId++;
|
||||
}
|
||||
};
|
||||
/** The default options used by the uniform group. */
|
||||
_UniformGroup.defaultOptions = {
|
||||
/** if true the UniformGroup is handled as an Uniform buffer object. */
|
||||
ubo: false,
|
||||
/** if true, then you are responsible for when the data is uploaded to the GPU by calling `update()` */
|
||||
isStatic: false
|
||||
};
|
||||
let UniformGroup = _UniformGroup;
|
||||
|
||||
exports.UniformGroup = UniformGroup;
|
||||
//# sourceMappingURL=UniformGroup.js.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UniformGroup.js.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UniformGroup.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
68
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UniformGroup.mjs
generated
vendored
Normal file
68
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UniformGroup.mjs
generated
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
import { uid } from '../../../../utils/data/uid.mjs';
|
||||
import { createIdFromString } from '../utils/createIdFromString.mjs';
|
||||
import { UNIFORM_TYPES_MAP, UNIFORM_TYPES_VALUES } from './types.mjs';
|
||||
import { getDefaultUniformValue } from './utils/getDefaultUniformValue.mjs';
|
||||
|
||||
"use strict";
|
||||
const _UniformGroup = class _UniformGroup {
|
||||
/**
|
||||
* Create a new Uniform group
|
||||
* @param uniformStructures - The structures of the uniform group
|
||||
* @param options - The optional parameters of this uniform group
|
||||
*/
|
||||
constructor(uniformStructures, options) {
|
||||
/** used internally to know if a uniform group was used in the last render pass */
|
||||
this._touched = 0;
|
||||
/** a unique id for this uniform group used through the renderer */
|
||||
this.uid = uid("uniform");
|
||||
/** a resource type, used to identify how to handle it when its in a bind group / shader resource */
|
||||
this._resourceType = "uniformGroup";
|
||||
/** the resource id used internally by the renderer to build bind group keys */
|
||||
this._resourceId = uid("resource");
|
||||
/** used ito identify if this is a uniform group */
|
||||
this.isUniformGroup = true;
|
||||
/**
|
||||
* used to flag if this Uniform groups data is different from what it has stored in its buffer / on the GPU
|
||||
* @internal
|
||||
* @ignore
|
||||
*/
|
||||
this._dirtyId = 0;
|
||||
// implementing the interface - UniformGroup are not destroyed
|
||||
this.destroyed = false;
|
||||
options = { ..._UniformGroup.defaultOptions, ...options };
|
||||
this.uniformStructures = uniformStructures;
|
||||
const uniforms = {};
|
||||
for (const i in uniformStructures) {
|
||||
const uniformData = uniformStructures[i];
|
||||
uniformData.name = i;
|
||||
uniformData.size = uniformData.size ?? 1;
|
||||
if (!UNIFORM_TYPES_MAP[uniformData.type]) {
|
||||
throw new Error(`Uniform type ${uniformData.type} is not supported. Supported uniform types are: ${UNIFORM_TYPES_VALUES.join(", ")}`);
|
||||
}
|
||||
uniformData.value ?? (uniformData.value = getDefaultUniformValue(uniformData.type, uniformData.size));
|
||||
uniforms[i] = uniformData.value;
|
||||
}
|
||||
this.uniforms = uniforms;
|
||||
this._dirtyId = 1;
|
||||
this.ubo = options.ubo;
|
||||
this.isStatic = options.isStatic;
|
||||
this._signature = createIdFromString(Object.keys(uniforms).map(
|
||||
(i) => `${i}-${uniformStructures[i].type}`
|
||||
).join("-"), "uniform-group");
|
||||
}
|
||||
/** Call this if you want the uniform groups data to be uploaded to the GPU only useful if `isStatic` is true. */
|
||||
update() {
|
||||
this._dirtyId++;
|
||||
}
|
||||
};
|
||||
/** The default options used by the uniform group. */
|
||||
_UniformGroup.defaultOptions = {
|
||||
/** if true the UniformGroup is handled as an Uniform buffer object. */
|
||||
ubo: false,
|
||||
/** if true, then you are responsible for when the data is uploaded to the GPU by calling `update()` */
|
||||
isStatic: false
|
||||
};
|
||||
let UniformGroup = _UniformGroup;
|
||||
|
||||
export { UniformGroup };
|
||||
//# sourceMappingURL=UniformGroup.mjs.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UniformGroup.mjs.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/UniformGroup.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
5
node_modules/pixi.js/lib/rendering/renderers/shared/shader/const.d.ts
generated
vendored
Normal file
5
node_modules/pixi.js/lib/rendering/renderers/shared/shader/const.d.ts
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
export declare enum ShaderStage {
|
||||
VERTEX = 1,
|
||||
FRAGMENT = 2,
|
||||
COMPUTE = 4
|
||||
}
|
12
node_modules/pixi.js/lib/rendering/renderers/shared/shader/const.js
generated
vendored
Normal file
12
node_modules/pixi.js/lib/rendering/renderers/shared/shader/const.js
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
'use strict';
|
||||
|
||||
"use strict";
|
||||
var ShaderStage = /* @__PURE__ */ ((ShaderStage2) => {
|
||||
ShaderStage2[ShaderStage2["VERTEX"] = 1] = "VERTEX";
|
||||
ShaderStage2[ShaderStage2["FRAGMENT"] = 2] = "FRAGMENT";
|
||||
ShaderStage2[ShaderStage2["COMPUTE"] = 4] = "COMPUTE";
|
||||
return ShaderStage2;
|
||||
})(ShaderStage || {});
|
||||
|
||||
exports.ShaderStage = ShaderStage;
|
||||
//# sourceMappingURL=const.js.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/const.js.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/const.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"const.js","sources":["../../../../../src/rendering/renderers/shared/shader/const.ts"],"sourcesContent":["export enum ShaderStage\n {\n VERTEX = 1,\n FRAGMENT = 2,\n COMPUTE = 4\n}\n"],"names":["ShaderStage"],"mappings":";;;AAAY,IAAA,WAAA,qBAAAA,YAAL,KAAA;AAEH,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,YAAS,CAAT,CAAA,GAAA,QAAA,CAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,cAAW,CAAX,CAAA,GAAA,UAAA,CAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,aAAU,CAAV,CAAA,GAAA,SAAA,CAAA;AAJQ,EAAAA,OAAAA,YAAAA,CAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;;;;"}
|
10
node_modules/pixi.js/lib/rendering/renderers/shared/shader/const.mjs
generated
vendored
Normal file
10
node_modules/pixi.js/lib/rendering/renderers/shared/shader/const.mjs
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
var ShaderStage = /* @__PURE__ */ ((ShaderStage2) => {
|
||||
ShaderStage2[ShaderStage2["VERTEX"] = 1] = "VERTEX";
|
||||
ShaderStage2[ShaderStage2["FRAGMENT"] = 2] = "FRAGMENT";
|
||||
ShaderStage2[ShaderStage2["COMPUTE"] = 4] = "COMPUTE";
|
||||
return ShaderStage2;
|
||||
})(ShaderStage || {});
|
||||
|
||||
export { ShaderStage };
|
||||
//# sourceMappingURL=const.mjs.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/const.mjs.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/const.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"const.mjs","sources":["../../../../../src/rendering/renderers/shared/shader/const.ts"],"sourcesContent":["export enum ShaderStage\n {\n VERTEX = 1,\n FRAGMENT = 2,\n COMPUTE = 4\n}\n"],"names":["ShaderStage"],"mappings":";AAAY,IAAA,WAAA,qBAAAA,YAAL,KAAA;AAEH,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,YAAS,CAAT,CAAA,GAAA,QAAA,CAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,cAAW,CAAX,CAAA,GAAA,UAAA,CAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,aAAU,CAAV,CAAA,GAAA,SAAA,CAAA;AAJQ,EAAAA,OAAAA,YAAAA,CAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;;;;"}
|
27
node_modules/pixi.js/lib/rendering/renderers/shared/shader/types.d.ts
generated
vendored
Normal file
27
node_modules/pixi.js/lib/rendering/renderers/shared/shader/types.d.ts
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
export declare const UNIFORM_TYPES_VALUES: readonly ["f32", "i32", "vec2<f32>", "vec3<f32>", "vec4<f32>", "mat2x2<f32>", "mat3x3<f32>", "mat4x4<f32>", "mat3x2<f32>", "mat4x2<f32>", "mat2x3<f32>", "mat4x3<f32>", "mat2x4<f32>", "mat3x4<f32>"];
|
||||
/** useful for checking if a type is supported - a map of supported types with a true value. */
|
||||
export declare const UNIFORM_TYPES_MAP: Record<UNIFORM_TYPES, boolean>;
|
||||
export type UNIFORM_TYPES_SINGLE = typeof UNIFORM_TYPES_VALUES[number];
|
||||
type OPTIONAL_SPACE = ' ' | '';
|
||||
export type UNIFORM_TYPES_ARRAY = `array<${UNIFORM_TYPES_SINGLE},${OPTIONAL_SPACE}${number}>`;
|
||||
export type UNIFORM_TYPES = UNIFORM_TYPES_SINGLE | UNIFORM_TYPES_ARRAY;
|
||||
export interface UniformData {
|
||||
/** the value of the uniform, this could be any object - a parser will figure out how to write it to the buffer */
|
||||
value: unknown;
|
||||
type: UNIFORM_TYPES;
|
||||
/** the size of the variable (eg 2 for vec2, 3 for vec3, 4 for vec4) */
|
||||
size?: number;
|
||||
name?: string;
|
||||
}
|
||||
export interface UboElement {
|
||||
data: UniformData;
|
||||
offset: number;
|
||||
size: number;
|
||||
}
|
||||
export interface UboLayout {
|
||||
uboElements: UboElement[];
|
||||
/** float32 size // TODO change to bytes */
|
||||
size: number;
|
||||
}
|
||||
export type UniformsSyncCallback = (...args: any[]) => void;
|
||||
export {};
|
27
node_modules/pixi.js/lib/rendering/renderers/shared/shader/types.js
generated
vendored
Normal file
27
node_modules/pixi.js/lib/rendering/renderers/shared/shader/types.js
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
'use strict';
|
||||
|
||||
"use strict";
|
||||
const UNIFORM_TYPES_VALUES = [
|
||||
"f32",
|
||||
"i32",
|
||||
"vec2<f32>",
|
||||
"vec3<f32>",
|
||||
"vec4<f32>",
|
||||
"mat2x2<f32>",
|
||||
"mat3x3<f32>",
|
||||
"mat4x4<f32>",
|
||||
"mat3x2<f32>",
|
||||
"mat4x2<f32>",
|
||||
"mat2x3<f32>",
|
||||
"mat4x3<f32>",
|
||||
"mat2x4<f32>",
|
||||
"mat3x4<f32>"
|
||||
];
|
||||
const UNIFORM_TYPES_MAP = UNIFORM_TYPES_VALUES.reduce((acc, type) => {
|
||||
acc[type] = true;
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
exports.UNIFORM_TYPES_MAP = UNIFORM_TYPES_MAP;
|
||||
exports.UNIFORM_TYPES_VALUES = UNIFORM_TYPES_VALUES;
|
||||
//# sourceMappingURL=types.js.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/types.js.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/types.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"types.js","sources":["../../../../../src/rendering/renderers/shared/shader/types.ts"],"sourcesContent":["// TODO add more types as required\nexport const UNIFORM_TYPES_VALUES = [\n 'f32',\n 'i32',\n 'vec2<f32>',\n 'vec3<f32>',\n 'vec4<f32>',\n 'mat2x2<f32>',\n 'mat3x3<f32>',\n 'mat4x4<f32>',\n 'mat3x2<f32>',\n 'mat4x2<f32>',\n 'mat2x3<f32>',\n 'mat4x3<f32>',\n 'mat2x4<f32>',\n 'mat3x4<f32>'\n] as const;\n\n/** useful for checking if a type is supported - a map of supported types with a true value. */\nexport const UNIFORM_TYPES_MAP = UNIFORM_TYPES_VALUES.reduce((acc, type) =>\n{\n acc[type] = true;\n\n return acc;\n}, {} as Record<UNIFORM_TYPES, boolean>);\n\nexport type UNIFORM_TYPES_SINGLE = typeof UNIFORM_TYPES_VALUES[number];\n\ntype OPTIONAL_SPACE = ' ' | '';\n\nexport type UNIFORM_TYPES_ARRAY = `array<${UNIFORM_TYPES_SINGLE},${OPTIONAL_SPACE}${number}>`;\n\nexport type UNIFORM_TYPES = UNIFORM_TYPES_SINGLE | UNIFORM_TYPES_ARRAY;\n\nexport interface UniformData\n{\n /** the value of the uniform, this could be any object - a parser will figure out how to write it to the buffer */\n value: unknown;\n type: UNIFORM_TYPES;\n /** the size of the variable (eg 2 for vec2, 3 for vec3, 4 for vec4) */\n size?: number;\n name?: string;\n}\n\nexport interface UboElement\n{\n data: UniformData;\n offset: number;\n size: number;\n}\n\nexport interface UboLayout\n{\n uboElements: UboElement[];\n /** float32 size // TODO change to bytes */\n size: number;\n}\n\n/* eslint-disable quote-props */\nexport type UniformsSyncCallback = (...args: any[]) => void;\n"],"names":[],"mappings":";;;AACO,MAAM,oBAAuB,GAAA;AAAA,EAChC,KAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AACJ,EAAA;AAGO,MAAM,iBAAoB,GAAA,oBAAA,CAAqB,MAAO,CAAA,CAAC,KAAK,IACnE,KAAA;AACI,EAAA,GAAA,CAAI,IAAI,CAAI,GAAA,IAAA,CAAA;AAEZ,EAAO,OAAA,GAAA,CAAA;AACX,CAAA,EAAG,EAAoC;;;;;"}
|
24
node_modules/pixi.js/lib/rendering/renderers/shared/shader/types.mjs
generated
vendored
Normal file
24
node_modules/pixi.js/lib/rendering/renderers/shared/shader/types.mjs
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
const UNIFORM_TYPES_VALUES = [
|
||||
"f32",
|
||||
"i32",
|
||||
"vec2<f32>",
|
||||
"vec3<f32>",
|
||||
"vec4<f32>",
|
||||
"mat2x2<f32>",
|
||||
"mat3x3<f32>",
|
||||
"mat4x4<f32>",
|
||||
"mat3x2<f32>",
|
||||
"mat4x2<f32>",
|
||||
"mat2x3<f32>",
|
||||
"mat4x3<f32>",
|
||||
"mat2x4<f32>",
|
||||
"mat3x4<f32>"
|
||||
];
|
||||
const UNIFORM_TYPES_MAP = UNIFORM_TYPES_VALUES.reduce((acc, type) => {
|
||||
acc[type] = true;
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
export { UNIFORM_TYPES_MAP, UNIFORM_TYPES_VALUES };
|
||||
//# sourceMappingURL=types.mjs.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/types.mjs.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/types.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"types.mjs","sources":["../../../../../src/rendering/renderers/shared/shader/types.ts"],"sourcesContent":["// TODO add more types as required\nexport const UNIFORM_TYPES_VALUES = [\n 'f32',\n 'i32',\n 'vec2<f32>',\n 'vec3<f32>',\n 'vec4<f32>',\n 'mat2x2<f32>',\n 'mat3x3<f32>',\n 'mat4x4<f32>',\n 'mat3x2<f32>',\n 'mat4x2<f32>',\n 'mat2x3<f32>',\n 'mat4x3<f32>',\n 'mat2x4<f32>',\n 'mat3x4<f32>'\n] as const;\n\n/** useful for checking if a type is supported - a map of supported types with a true value. */\nexport const UNIFORM_TYPES_MAP = UNIFORM_TYPES_VALUES.reduce((acc, type) =>\n{\n acc[type] = true;\n\n return acc;\n}, {} as Record<UNIFORM_TYPES, boolean>);\n\nexport type UNIFORM_TYPES_SINGLE = typeof UNIFORM_TYPES_VALUES[number];\n\ntype OPTIONAL_SPACE = ' ' | '';\n\nexport type UNIFORM_TYPES_ARRAY = `array<${UNIFORM_TYPES_SINGLE},${OPTIONAL_SPACE}${number}>`;\n\nexport type UNIFORM_TYPES = UNIFORM_TYPES_SINGLE | UNIFORM_TYPES_ARRAY;\n\nexport interface UniformData\n{\n /** the value of the uniform, this could be any object - a parser will figure out how to write it to the buffer */\n value: unknown;\n type: UNIFORM_TYPES;\n /** the size of the variable (eg 2 for vec2, 3 for vec3, 4 for vec4) */\n size?: number;\n name?: string;\n}\n\nexport interface UboElement\n{\n data: UniformData;\n offset: number;\n size: number;\n}\n\nexport interface UboLayout\n{\n uboElements: UboElement[];\n /** float32 size // TODO change to bytes */\n size: number;\n}\n\n/* eslint-disable quote-props */\nexport type UniformsSyncCallback = (...args: any[]) => void;\n"],"names":[],"mappings":";AACO,MAAM,oBAAuB,GAAA;AAAA,EAChC,KAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AACJ,EAAA;AAGO,MAAM,iBAAoB,GAAA,oBAAA,CAAqB,MAAO,CAAA,CAAC,KAAK,IACnE,KAAA;AACI,EAAA,GAAA,CAAI,IAAI,CAAI,GAAA,IAAA,CAAA;AAEZ,EAAO,OAAA,GAAA,CAAA;AACX,CAAA,EAAG,EAAoC;;;;"}
|
2
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/createUboSyncFunction.d.ts
generated
vendored
Normal file
2
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/createUboSyncFunction.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import type { UboElement, UNIFORM_TYPES_SINGLE, UniformsSyncCallback } from '../types';
|
||||
export declare function createUboSyncFunction(uboElements: UboElement[], parserCode: 'uboWgsl' | 'uboStd40', arrayGenerationFunction: (uboElement: UboElement, offsetToAdd: number) => string, singleSettersMap: Record<UNIFORM_TYPES_SINGLE, string>): UniformsSyncCallback;
|
63
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/createUboSyncFunction.js
generated
vendored
Normal file
63
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/createUboSyncFunction.js
generated
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
'use strict';
|
||||
|
||||
var uniformParsers = require('./uniformParsers.js');
|
||||
|
||||
"use strict";
|
||||
function createUboSyncFunction(uboElements, parserCode, arrayGenerationFunction, singleSettersMap) {
|
||||
const funcFragments = [`
|
||||
var v = null;
|
||||
var v2 = null;
|
||||
var t = 0;
|
||||
var index = 0;
|
||||
var name = null;
|
||||
var arrayOffset = null;
|
||||
`];
|
||||
let prev = 0;
|
||||
for (let i = 0; i < uboElements.length; i++) {
|
||||
const uboElement = uboElements[i];
|
||||
const name = uboElement.data.name;
|
||||
let parsed = false;
|
||||
let offset = 0;
|
||||
for (let j = 0; j < uniformParsers.uniformParsers.length; j++) {
|
||||
const uniformParser = uniformParsers.uniformParsers[j];
|
||||
if (uniformParser.test(uboElement.data)) {
|
||||
offset = uboElement.offset / 4;
|
||||
funcFragments.push(
|
||||
`name = "${name}";`,
|
||||
`offset += ${offset - prev};`,
|
||||
uniformParsers.uniformParsers[j][parserCode] || uniformParsers.uniformParsers[j].ubo
|
||||
);
|
||||
parsed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!parsed) {
|
||||
if (uboElement.data.size > 1) {
|
||||
offset = uboElement.offset / 4;
|
||||
funcFragments.push(arrayGenerationFunction(uboElement, offset - prev));
|
||||
} else {
|
||||
const template = singleSettersMap[uboElement.data.type];
|
||||
offset = uboElement.offset / 4;
|
||||
funcFragments.push(
|
||||
/* wgsl */
|
||||
`
|
||||
v = uv.${name};
|
||||
offset += ${offset - prev};
|
||||
${template};
|
||||
`
|
||||
);
|
||||
}
|
||||
}
|
||||
prev = offset;
|
||||
}
|
||||
const fragmentSrc = funcFragments.join("\n");
|
||||
return new Function(
|
||||
"uv",
|
||||
"data",
|
||||
"offset",
|
||||
fragmentSrc
|
||||
);
|
||||
}
|
||||
|
||||
exports.createUboSyncFunction = createUboSyncFunction;
|
||||
//# sourceMappingURL=createUboSyncFunction.js.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/createUboSyncFunction.js.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/createUboSyncFunction.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"createUboSyncFunction.js","sources":["../../../../../../src/rendering/renderers/shared/shader/utils/createUboSyncFunction.ts"],"sourcesContent":["/* eslint-disable quote-props */\nimport { uniformParsers } from './uniformParsers';\n\nimport type { UboElement, UNIFORM_TYPES_SINGLE, UniformsSyncCallback } from '../types';\n\nexport function createUboSyncFunction(\n uboElements: UboElement[],\n parserCode: 'uboWgsl' | 'uboStd40',\n arrayGenerationFunction: (uboElement: UboElement, offsetToAdd: number) => string,\n singleSettersMap: Record<UNIFORM_TYPES_SINGLE, string>,\n): UniformsSyncCallback\n{\n const funcFragments = [`\n var v = null;\n var v2 = null;\n var t = 0;\n var index = 0;\n var name = null;\n var arrayOffset = null;\n `];\n\n let prev = 0;\n\n for (let i = 0; i < uboElements.length; i++)\n {\n const uboElement = uboElements[i];\n\n const name = uboElement.data.name;\n\n let parsed = false;\n let offset = 0;\n\n for (let j = 0; j < uniformParsers.length; j++)\n {\n const uniformParser = uniformParsers[j];\n\n if (uniformParser.test(uboElement.data))\n {\n offset = uboElement.offset / 4;\n\n funcFragments.push(\n `name = \"${name}\";`,\n `offset += ${offset - prev};`,\n uniformParsers[j][parserCode] || uniformParsers[j].ubo);\n parsed = true;\n\n break;\n }\n }\n\n if (!parsed)\n {\n if (uboElement.data.size > 1)\n {\n offset = uboElement.offset / 4;\n\n funcFragments.push(arrayGenerationFunction(uboElement, offset - prev));\n }\n else\n {\n const template = singleSettersMap[uboElement.data.type as UNIFORM_TYPES_SINGLE];\n\n offset = uboElement.offset / 4;\n\n funcFragments.push(/* wgsl */`\n v = uv.${name};\n offset += ${offset - prev};\n ${template};\n `);\n }\n }\n\n prev = offset;\n }\n\n const fragmentSrc = funcFragments.join('\\n');\n\n // eslint-disable-next-line no-new-func\n return new Function(\n 'uv',\n 'data',\n 'offset',\n fragmentSrc,\n ) as UniformsSyncCallback;\n}\n"],"names":["uniformParsers"],"mappings":";;;;;AAKO,SAAS,qBACZ,CAAA,WAAA,EACA,UACA,EAAA,uBAAA,EACA,gBAEJ,EAAA;AACI,EAAA,MAAM,gBAAgB,CAAC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOtB,CAAA,CAAA,CAAA;AAED,EAAA,IAAI,IAAO,GAAA,CAAA,CAAA;AAEX,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,WAAA,CAAY,QAAQ,CACxC,EAAA,EAAA;AACI,IAAM,MAAA,UAAA,GAAa,YAAY,CAAC,CAAA,CAAA;AAEhC,IAAM,MAAA,IAAA,GAAO,WAAW,IAAK,CAAA,IAAA,CAAA;AAE7B,IAAA,IAAI,MAAS,GAAA,KAAA,CAAA;AACb,IAAA,IAAI,MAAS,GAAA,CAAA,CAAA;AAEb,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAAA,6BAAA,CAAe,QAAQ,CAC3C,EAAA,EAAA;AACI,MAAM,MAAA,aAAA,GAAgBA,8BAAe,CAAC,CAAA,CAAA;AAEtC,MAAA,IAAI,aAAc,CAAA,IAAA,CAAK,UAAW,CAAA,IAAI,CACtC,EAAA;AACI,QAAA,MAAA,GAAS,WAAW,MAAS,GAAA,CAAA,CAAA;AAE7B,QAAc,aAAA,CAAA,IAAA;AAAA,UACV,WAAW,IAAI,CAAA,EAAA,CAAA;AAAA,UACf,CAAA,UAAA,EAAa,SAAS,IAAI,CAAA,CAAA,CAAA;AAAA,UAC1BA,8BAAe,CAAC,CAAA,CAAE,UAAU,CAAK,IAAAA,6BAAA,CAAe,CAAC,CAAE,CAAA,GAAA;AAAA,SAAG,CAAA;AAC1D,QAAS,MAAA,GAAA,IAAA,CAAA;AAET,QAAA,MAAA;AAAA,OACJ;AAAA,KACJ;AAEA,IAAA,IAAI,CAAC,MACL,EAAA;AACI,MAAI,IAAA,UAAA,CAAW,IAAK,CAAA,IAAA,GAAO,CAC3B,EAAA;AACI,QAAA,MAAA,GAAS,WAAW,MAAS,GAAA,CAAA,CAAA;AAE7B,QAAA,aAAA,CAAc,IAAK,CAAA,uBAAA,CAAwB,UAAY,EAAA,MAAA,GAAS,IAAI,CAAC,CAAA,CAAA;AAAA,OAGzE,MAAA;AACI,QAAA,MAAM,QAAW,GAAA,gBAAA,CAAiB,UAAW,CAAA,IAAA,CAAK,IAA4B,CAAA,CAAA;AAE9E,QAAA,MAAA,GAAS,WAAW,MAAS,GAAA,CAAA,CAAA;AAE7B,QAAc,aAAA,CAAA,IAAA;AAAA;AAAA,UAAe,CAAA;AAAA,2BAAA,EAChB,IAAI,CAAA;AAAA,8BAAA,EACD,SAAS,IAAI,CAAA;AAAA,oBAAA,EACvB,QAAQ,CAAA;AAAA,gBAAA,CAAA;AAAA,SACb,CAAA;AAAA,OACL;AAAA,KACJ;AAEA,IAAO,IAAA,GAAA,MAAA,CAAA;AAAA,GACX;AAEA,EAAM,MAAA,WAAA,GAAc,aAAc,CAAA,IAAA,CAAK,IAAI,CAAA,CAAA;AAG3C,EAAA,OAAO,IAAI,QAAA;AAAA,IACP,IAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,GACJ,CAAA;AACJ;;;;"}
|
61
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/createUboSyncFunction.mjs
generated
vendored
Normal file
61
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/createUboSyncFunction.mjs
generated
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
import { uniformParsers } from './uniformParsers.mjs';
|
||||
|
||||
"use strict";
|
||||
function createUboSyncFunction(uboElements, parserCode, arrayGenerationFunction, singleSettersMap) {
|
||||
const funcFragments = [`
|
||||
var v = null;
|
||||
var v2 = null;
|
||||
var t = 0;
|
||||
var index = 0;
|
||||
var name = null;
|
||||
var arrayOffset = null;
|
||||
`];
|
||||
let prev = 0;
|
||||
for (let i = 0; i < uboElements.length; i++) {
|
||||
const uboElement = uboElements[i];
|
||||
const name = uboElement.data.name;
|
||||
let parsed = false;
|
||||
let offset = 0;
|
||||
for (let j = 0; j < uniformParsers.length; j++) {
|
||||
const uniformParser = uniformParsers[j];
|
||||
if (uniformParser.test(uboElement.data)) {
|
||||
offset = uboElement.offset / 4;
|
||||
funcFragments.push(
|
||||
`name = "${name}";`,
|
||||
`offset += ${offset - prev};`,
|
||||
uniformParsers[j][parserCode] || uniformParsers[j].ubo
|
||||
);
|
||||
parsed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!parsed) {
|
||||
if (uboElement.data.size > 1) {
|
||||
offset = uboElement.offset / 4;
|
||||
funcFragments.push(arrayGenerationFunction(uboElement, offset - prev));
|
||||
} else {
|
||||
const template = singleSettersMap[uboElement.data.type];
|
||||
offset = uboElement.offset / 4;
|
||||
funcFragments.push(
|
||||
/* wgsl */
|
||||
`
|
||||
v = uv.${name};
|
||||
offset += ${offset - prev};
|
||||
${template};
|
||||
`
|
||||
);
|
||||
}
|
||||
}
|
||||
prev = offset;
|
||||
}
|
||||
const fragmentSrc = funcFragments.join("\n");
|
||||
return new Function(
|
||||
"uv",
|
||||
"data",
|
||||
"offset",
|
||||
fragmentSrc
|
||||
);
|
||||
}
|
||||
|
||||
export { createUboSyncFunction };
|
||||
//# sourceMappingURL=createUboSyncFunction.mjs.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/createUboSyncFunction.mjs.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/createUboSyncFunction.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"createUboSyncFunction.mjs","sources":["../../../../../../src/rendering/renderers/shared/shader/utils/createUboSyncFunction.ts"],"sourcesContent":["/* eslint-disable quote-props */\nimport { uniformParsers } from './uniformParsers';\n\nimport type { UboElement, UNIFORM_TYPES_SINGLE, UniformsSyncCallback } from '../types';\n\nexport function createUboSyncFunction(\n uboElements: UboElement[],\n parserCode: 'uboWgsl' | 'uboStd40',\n arrayGenerationFunction: (uboElement: UboElement, offsetToAdd: number) => string,\n singleSettersMap: Record<UNIFORM_TYPES_SINGLE, string>,\n): UniformsSyncCallback\n{\n const funcFragments = [`\n var v = null;\n var v2 = null;\n var t = 0;\n var index = 0;\n var name = null;\n var arrayOffset = null;\n `];\n\n let prev = 0;\n\n for (let i = 0; i < uboElements.length; i++)\n {\n const uboElement = uboElements[i];\n\n const name = uboElement.data.name;\n\n let parsed = false;\n let offset = 0;\n\n for (let j = 0; j < uniformParsers.length; j++)\n {\n const uniformParser = uniformParsers[j];\n\n if (uniformParser.test(uboElement.data))\n {\n offset = uboElement.offset / 4;\n\n funcFragments.push(\n `name = \"${name}\";`,\n `offset += ${offset - prev};`,\n uniformParsers[j][parserCode] || uniformParsers[j].ubo);\n parsed = true;\n\n break;\n }\n }\n\n if (!parsed)\n {\n if (uboElement.data.size > 1)\n {\n offset = uboElement.offset / 4;\n\n funcFragments.push(arrayGenerationFunction(uboElement, offset - prev));\n }\n else\n {\n const template = singleSettersMap[uboElement.data.type as UNIFORM_TYPES_SINGLE];\n\n offset = uboElement.offset / 4;\n\n funcFragments.push(/* wgsl */`\n v = uv.${name};\n offset += ${offset - prev};\n ${template};\n `);\n }\n }\n\n prev = offset;\n }\n\n const fragmentSrc = funcFragments.join('\\n');\n\n // eslint-disable-next-line no-new-func\n return new Function(\n 'uv',\n 'data',\n 'offset',\n fragmentSrc,\n ) as UniformsSyncCallback;\n}\n"],"names":[],"mappings":";;;AAKO,SAAS,qBACZ,CAAA,WAAA,EACA,UACA,EAAA,uBAAA,EACA,gBAEJ,EAAA;AACI,EAAA,MAAM,gBAAgB,CAAC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOtB,CAAA,CAAA,CAAA;AAED,EAAA,IAAI,IAAO,GAAA,CAAA,CAAA;AAEX,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,WAAA,CAAY,QAAQ,CACxC,EAAA,EAAA;AACI,IAAM,MAAA,UAAA,GAAa,YAAY,CAAC,CAAA,CAAA;AAEhC,IAAM,MAAA,IAAA,GAAO,WAAW,IAAK,CAAA,IAAA,CAAA;AAE7B,IAAA,IAAI,MAAS,GAAA,KAAA,CAAA;AACb,IAAA,IAAI,MAAS,GAAA,CAAA,CAAA;AAEb,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,cAAA,CAAe,QAAQ,CAC3C,EAAA,EAAA;AACI,MAAM,MAAA,aAAA,GAAgB,eAAe,CAAC,CAAA,CAAA;AAEtC,MAAA,IAAI,aAAc,CAAA,IAAA,CAAK,UAAW,CAAA,IAAI,CACtC,EAAA;AACI,QAAA,MAAA,GAAS,WAAW,MAAS,GAAA,CAAA,CAAA;AAE7B,QAAc,aAAA,CAAA,IAAA;AAAA,UACV,WAAW,IAAI,CAAA,EAAA,CAAA;AAAA,UACf,CAAA,UAAA,EAAa,SAAS,IAAI,CAAA,CAAA,CAAA;AAAA,UAC1B,eAAe,CAAC,CAAA,CAAE,UAAU,CAAK,IAAA,cAAA,CAAe,CAAC,CAAE,CAAA,GAAA;AAAA,SAAG,CAAA;AAC1D,QAAS,MAAA,GAAA,IAAA,CAAA;AAET,QAAA,MAAA;AAAA,OACJ;AAAA,KACJ;AAEA,IAAA,IAAI,CAAC,MACL,EAAA;AACI,MAAI,IAAA,UAAA,CAAW,IAAK,CAAA,IAAA,GAAO,CAC3B,EAAA;AACI,QAAA,MAAA,GAAS,WAAW,MAAS,GAAA,CAAA,CAAA;AAE7B,QAAA,aAAA,CAAc,IAAK,CAAA,uBAAA,CAAwB,UAAY,EAAA,MAAA,GAAS,IAAI,CAAC,CAAA,CAAA;AAAA,OAGzE,MAAA;AACI,QAAA,MAAM,QAAW,GAAA,gBAAA,CAAiB,UAAW,CAAA,IAAA,CAAK,IAA4B,CAAA,CAAA;AAE9E,QAAA,MAAA,GAAS,WAAW,MAAS,GAAA,CAAA,CAAA;AAE7B,QAAc,aAAA,CAAA,IAAA;AAAA;AAAA,UAAe,CAAA;AAAA,2BAAA,EAChB,IAAI,CAAA;AAAA,8BAAA,EACD,SAAS,IAAI,CAAA;AAAA,oBAAA,EACvB,QAAQ,CAAA;AAAA,gBAAA,CAAA;AAAA,SACb,CAAA;AAAA,OACL;AAAA,KACJ;AAEA,IAAO,IAAA,GAAA,MAAA,CAAA;AAAA,GACX;AAEA,EAAM,MAAA,WAAA,GAAc,aAAc,CAAA,IAAA,CAAK,IAAI,CAAA,CAAA;AAG3C,EAAA,OAAO,IAAI,QAAA;AAAA,IACP,IAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,GACJ,CAAA;AACJ;;;;"}
|
7
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/getDefaultUniformValue.d.ts
generated
vendored
Normal file
7
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/getDefaultUniformValue.d.ts
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
/**
|
||||
* @method defaultValue
|
||||
* @param {string} type - Type of value
|
||||
* @param {number} size
|
||||
* @private
|
||||
*/
|
||||
export declare function getDefaultUniformValue(type: string, size: number): number | Float32Array | Int32Array | Uint32Array | boolean | boolean[];
|
57
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/getDefaultUniformValue.js
generated
vendored
Normal file
57
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/getDefaultUniformValue.js
generated
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
'use strict';
|
||||
|
||||
"use strict";
|
||||
function getDefaultUniformValue(type, size) {
|
||||
switch (type) {
|
||||
case "f32":
|
||||
return 0;
|
||||
case "vec2<f32>":
|
||||
return new Float32Array(2 * size);
|
||||
case "vec3<f32>":
|
||||
return new Float32Array(3 * size);
|
||||
case "vec4<f32>":
|
||||
return new Float32Array(4 * size);
|
||||
case "mat2x2<f32>":
|
||||
return new Float32Array([
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]);
|
||||
case "mat3x3<f32>":
|
||||
return new Float32Array([
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]);
|
||||
case "mat4x4<f32>":
|
||||
return new Float32Array([
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
exports.getDefaultUniformValue = getDefaultUniformValue;
|
||||
//# sourceMappingURL=getDefaultUniformValue.js.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/getDefaultUniformValue.js.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/getDefaultUniformValue.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"getDefaultUniformValue.js","sources":["../../../../../../src/rendering/renderers/shared/shader/utils/getDefaultUniformValue.ts"],"sourcesContent":["/**\n * @method defaultValue\n * @param {string} type - Type of value\n * @param {number} size\n * @private\n */\nexport function getDefaultUniformValue(\n type: string,\n size: number\n): number | Float32Array | Int32Array | Uint32Array | boolean | boolean[]\n{\n switch (type)\n {\n case 'f32':\n return 0;\n\n case 'vec2<f32>':\n return new Float32Array(2 * size);\n\n case 'vec3<f32>':\n return new Float32Array(3 * size);\n\n case 'vec4<f32>':\n return new Float32Array(4 * size);\n case 'mat2x2<f32>':\n return new Float32Array([1, 0,\n 0, 1]);\n\n case 'mat3x3<f32>':\n return new Float32Array([1, 0, 0,\n 0, 1, 0,\n 0, 0, 1]);\n\n case 'mat4x4<f32>':\n return new Float32Array([1, 0, 0, 0,\n 0, 1, 0, 0,\n 0, 0, 1, 0,\n 0, 0, 0, 1]);\n }\n\n return null;\n}\n"],"names":[],"mappings":";;;AAMgB,SAAA,sBAAA,CACZ,MACA,IAEJ,EAAA;AACI,EAAA,QAAQ,IACR;AAAA,IACI,KAAK,KAAA;AACD,MAAO,OAAA,CAAA,CAAA;AAAA,IAEX,KAAK,WAAA;AACD,MAAO,OAAA,IAAI,YAAa,CAAA,CAAA,GAAI,IAAI,CAAA,CAAA;AAAA,IAEpC,KAAK,WAAA;AACD,MAAO,OAAA,IAAI,YAAa,CAAA,CAAA,GAAI,IAAI,CAAA,CAAA;AAAA,IAEpC,KAAK,WAAA;AACD,MAAO,OAAA,IAAI,YAAa,CAAA,CAAA,GAAI,IAAI,CAAA,CAAA;AAAA,IACpC,KAAK,aAAA;AACD,MAAA,OAAO,IAAI,YAAa,CAAA;AAAA,QAAC,CAAA;AAAA,QAAG,CAAA;AAAA,QACxB,CAAA;AAAA,QAAG,CAAA;AAAA,OAAE,CAAA,CAAA;AAAA,IAEb,KAAK,aAAA;AACD,MAAA,OAAO,IAAI,YAAa,CAAA;AAAA,QAAC,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC3B,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QACN,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,OAAE,CAAA,CAAA;AAAA,IAEhB,KAAK,aAAA;AACD,MAAA,OAAO,IAAI,YAAa,CAAA;AAAA,QAAC,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC9B,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QACT,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QACT,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,OAAE,CAAA,CAAA;AAAA,GACvB;AAEA,EAAO,OAAA,IAAA,CAAA;AACX;;;;"}
|
55
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/getDefaultUniformValue.mjs
generated
vendored
Normal file
55
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/getDefaultUniformValue.mjs
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
"use strict";
|
||||
function getDefaultUniformValue(type, size) {
|
||||
switch (type) {
|
||||
case "f32":
|
||||
return 0;
|
||||
case "vec2<f32>":
|
||||
return new Float32Array(2 * size);
|
||||
case "vec3<f32>":
|
||||
return new Float32Array(3 * size);
|
||||
case "vec4<f32>":
|
||||
return new Float32Array(4 * size);
|
||||
case "mat2x2<f32>":
|
||||
return new Float32Array([
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]);
|
||||
case "mat3x3<f32>":
|
||||
return new Float32Array([
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]);
|
||||
case "mat4x4<f32>":
|
||||
return new Float32Array([
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
export { getDefaultUniformValue };
|
||||
//# sourceMappingURL=getDefaultUniformValue.mjs.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/getDefaultUniformValue.mjs.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/getDefaultUniformValue.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"getDefaultUniformValue.mjs","sources":["../../../../../../src/rendering/renderers/shared/shader/utils/getDefaultUniformValue.ts"],"sourcesContent":["/**\n * @method defaultValue\n * @param {string} type - Type of value\n * @param {number} size\n * @private\n */\nexport function getDefaultUniformValue(\n type: string,\n size: number\n): number | Float32Array | Int32Array | Uint32Array | boolean | boolean[]\n{\n switch (type)\n {\n case 'f32':\n return 0;\n\n case 'vec2<f32>':\n return new Float32Array(2 * size);\n\n case 'vec3<f32>':\n return new Float32Array(3 * size);\n\n case 'vec4<f32>':\n return new Float32Array(4 * size);\n case 'mat2x2<f32>':\n return new Float32Array([1, 0,\n 0, 1]);\n\n case 'mat3x3<f32>':\n return new Float32Array([1, 0, 0,\n 0, 1, 0,\n 0, 0, 1]);\n\n case 'mat4x4<f32>':\n return new Float32Array([1, 0, 0, 0,\n 0, 1, 0, 0,\n 0, 0, 1, 0,\n 0, 0, 0, 1]);\n }\n\n return null;\n}\n"],"names":[],"mappings":";AAMgB,SAAA,sBAAA,CACZ,MACA,IAEJ,EAAA;AACI,EAAA,QAAQ,IACR;AAAA,IACI,KAAK,KAAA;AACD,MAAO,OAAA,CAAA,CAAA;AAAA,IAEX,KAAK,WAAA;AACD,MAAO,OAAA,IAAI,YAAa,CAAA,CAAA,GAAI,IAAI,CAAA,CAAA;AAAA,IAEpC,KAAK,WAAA;AACD,MAAO,OAAA,IAAI,YAAa,CAAA,CAAA,GAAI,IAAI,CAAA,CAAA;AAAA,IAEpC,KAAK,WAAA;AACD,MAAO,OAAA,IAAI,YAAa,CAAA,CAAA,GAAI,IAAI,CAAA,CAAA;AAAA,IACpC,KAAK,aAAA;AACD,MAAA,OAAO,IAAI,YAAa,CAAA;AAAA,QAAC,CAAA;AAAA,QAAG,CAAA;AAAA,QACxB,CAAA;AAAA,QAAG,CAAA;AAAA,OAAE,CAAA,CAAA;AAAA,IAEb,KAAK,aAAA;AACD,MAAA,OAAO,IAAI,YAAa,CAAA;AAAA,QAAC,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC3B,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QACN,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,OAAE,CAAA,CAAA;AAAA,IAEhB,KAAK,aAAA;AACD,MAAA,OAAO,IAAI,YAAa,CAAA;AAAA,QAAC,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC9B,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QACT,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QACT,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,OAAE,CAAA,CAAA;AAAA,GACvB;AAEA,EAAO,OAAA,IAAA,CAAA;AACX;;;;"}
|
3
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uboSyncFunctions.d.ts
generated
vendored
Normal file
3
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uboSyncFunctions.d.ts
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
import type { UNIFORM_TYPES_SINGLE } from '../types';
|
||||
export declare const uboSyncFunctionsSTD40: Record<UNIFORM_TYPES_SINGLE, string>;
|
||||
export declare const uboSyncFunctionsWGSL: Record<UNIFORM_TYPES_SINGLE, string>;
|
67
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uboSyncFunctions.js
generated
vendored
Normal file
67
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uboSyncFunctions.js
generated
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
'use strict';
|
||||
|
||||
"use strict";
|
||||
function loopMatrix(col, row) {
|
||||
const total = col * row;
|
||||
return `
|
||||
for (let i = 0; i < ${total}; i++) {
|
||||
data[offset + (((i / ${col})|0) * 4) + (i % ${col})] = v[i];
|
||||
}
|
||||
`;
|
||||
}
|
||||
const uboSyncFunctionsSTD40 = {
|
||||
f32: `
|
||||
data[offset] = v;`,
|
||||
i32: `
|
||||
data[offset] = v;`,
|
||||
"vec2<f32>": `
|
||||
data[offset] = v[0];
|
||||
data[offset + 1] = v[1];`,
|
||||
"vec3<f32>": `
|
||||
data[offset] = v[0];
|
||||
data[offset + 1] = v[1];
|
||||
data[offset + 2] = v[2];`,
|
||||
"vec4<f32>": `
|
||||
data[offset] = v[0];
|
||||
data[offset + 1] = v[1];
|
||||
data[offset + 2] = v[2];
|
||||
data[offset + 3] = v[3];`,
|
||||
"mat2x2<f32>": `
|
||||
data[offset] = v[0];
|
||||
data[offset + 1] = v[1];
|
||||
data[offset + 4] = v[2];
|
||||
data[offset + 5] = v[3];`,
|
||||
"mat3x3<f32>": `
|
||||
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>": `
|
||||
for (let i = 0; i < 16; i++) {
|
||||
data[offset + i] = v[i];
|
||||
}`,
|
||||
"mat3x2<f32>": loopMatrix(3, 2),
|
||||
"mat4x2<f32>": loopMatrix(4, 2),
|
||||
"mat2x3<f32>": loopMatrix(2, 3),
|
||||
"mat4x3<f32>": loopMatrix(4, 3),
|
||||
"mat2x4<f32>": loopMatrix(2, 4),
|
||||
"mat3x4<f32>": loopMatrix(3, 4)
|
||||
};
|
||||
const uboSyncFunctionsWGSL = {
|
||||
...uboSyncFunctionsSTD40,
|
||||
"mat2x2<f32>": `
|
||||
data[offset] = v[0];
|
||||
data[offset + 1] = v[1];
|
||||
data[offset + 2] = v[2];
|
||||
data[offset + 3] = v[3];
|
||||
`
|
||||
};
|
||||
|
||||
exports.uboSyncFunctionsSTD40 = uboSyncFunctionsSTD40;
|
||||
exports.uboSyncFunctionsWGSL = uboSyncFunctionsWGSL;
|
||||
//# sourceMappingURL=uboSyncFunctions.js.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uboSyncFunctions.js.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uboSyncFunctions.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"uboSyncFunctions.js","sources":["../../../../../../src/rendering/renderers/shared/shader/utils/uboSyncFunctions.ts"],"sourcesContent":["import type { UNIFORM_TYPES_SINGLE } from '../types';\n\nfunction loopMatrix(col: number, row: number)\n{\n const total = col * row;\n\n return `\n for (let i = 0; i < ${total}; i++) {\n data[offset + (((i / ${col})|0) * 4) + (i % ${col})] = v[i];\n }\n `;\n}\n\nexport const uboSyncFunctionsSTD40: Record<UNIFORM_TYPES_SINGLE, string> = {\n f32: `\n data[offset] = v;`,\n i32: `\n data[offset] = v;`,\n 'vec2<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];`,\n 'vec3<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];`,\n 'vec4<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 3] = v[3];`,\n 'mat2x2<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 4] = v[2];\n data[offset + 5] = v[3];`,\n 'mat3x3<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 4] = v[3];\n data[offset + 5] = v[4];\n data[offset + 6] = v[5];\n data[offset + 8] = v[6];\n data[offset + 9] = v[7];\n data[offset + 10] = v[8];`,\n 'mat4x4<f32>': `\n for (let i = 0; i < 16; i++) {\n data[offset + i] = v[i];\n }`,\n 'mat3x2<f32>': loopMatrix(3, 2),\n 'mat4x2<f32>': loopMatrix(4, 2),\n 'mat2x3<f32>': loopMatrix(2, 3),\n 'mat4x3<f32>': loopMatrix(4, 3),\n 'mat2x4<f32>': loopMatrix(2, 4),\n 'mat3x4<f32>': loopMatrix(3, 4),\n};\n\nexport const uboSyncFunctionsWGSL: Record<UNIFORM_TYPES_SINGLE, string> = {\n ...uboSyncFunctionsSTD40,\n 'mat2x2<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 3] = v[3];\n `,\n};\n"],"names":[],"mappings":";;;AAEA,SAAS,UAAA,CAAW,KAAa,GACjC,EAAA;AACI,EAAA,MAAM,QAAQ,GAAM,GAAA,GAAA,CAAA;AAEpB,EAAO,OAAA,CAAA;AAAA,4BAAA,EACmB,KAAK,CAAA;AAAA,iCACA,EAAA,GAAG,oBAAoB,GAAG,CAAA;AAAA;AAAA,IAAA,CAAA,CAAA;AAG7D,CAAA;AAEO,MAAM,qBAA8D,GAAA;AAAA,EACvE,GAAK,EAAA,CAAA;AAAA,yBAAA,CAAA;AAAA,EAEL,GAAK,EAAA,CAAA;AAAA,yBAAA,CAAA;AAAA,EAEL,WAAa,EAAA,CAAA;AAAA;AAAA,gCAAA,CAAA;AAAA,EAGb,WAAa,EAAA,CAAA;AAAA;AAAA;AAAA,gCAAA,CAAA;AAAA,EAIb,WAAa,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA,gCAAA,CAAA;AAAA,EAKb,aAAe,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA,gCAAA,CAAA;AAAA,EAKf,aAAe,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAAA,CAAA;AAAA,EAUf,aAAe,EAAA,CAAA;AAAA;AAAA;AAAA,SAAA,CAAA;AAAA,EAIf,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAClC,EAAA;AAEO,MAAM,oBAA6D,GAAA;AAAA,EACtE,GAAG,qBAAA;AAAA,EACH,aAAe,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAMnB;;;;;"}
|
64
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uboSyncFunctions.mjs
generated
vendored
Normal file
64
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uboSyncFunctions.mjs
generated
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
"use strict";
|
||||
function loopMatrix(col, row) {
|
||||
const total = col * row;
|
||||
return `
|
||||
for (let i = 0; i < ${total}; i++) {
|
||||
data[offset + (((i / ${col})|0) * 4) + (i % ${col})] = v[i];
|
||||
}
|
||||
`;
|
||||
}
|
||||
const uboSyncFunctionsSTD40 = {
|
||||
f32: `
|
||||
data[offset] = v;`,
|
||||
i32: `
|
||||
data[offset] = v;`,
|
||||
"vec2<f32>": `
|
||||
data[offset] = v[0];
|
||||
data[offset + 1] = v[1];`,
|
||||
"vec3<f32>": `
|
||||
data[offset] = v[0];
|
||||
data[offset + 1] = v[1];
|
||||
data[offset + 2] = v[2];`,
|
||||
"vec4<f32>": `
|
||||
data[offset] = v[0];
|
||||
data[offset + 1] = v[1];
|
||||
data[offset + 2] = v[2];
|
||||
data[offset + 3] = v[3];`,
|
||||
"mat2x2<f32>": `
|
||||
data[offset] = v[0];
|
||||
data[offset + 1] = v[1];
|
||||
data[offset + 4] = v[2];
|
||||
data[offset + 5] = v[3];`,
|
||||
"mat3x3<f32>": `
|
||||
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>": `
|
||||
for (let i = 0; i < 16; i++) {
|
||||
data[offset + i] = v[i];
|
||||
}`,
|
||||
"mat3x2<f32>": loopMatrix(3, 2),
|
||||
"mat4x2<f32>": loopMatrix(4, 2),
|
||||
"mat2x3<f32>": loopMatrix(2, 3),
|
||||
"mat4x3<f32>": loopMatrix(4, 3),
|
||||
"mat2x4<f32>": loopMatrix(2, 4),
|
||||
"mat3x4<f32>": loopMatrix(3, 4)
|
||||
};
|
||||
const uboSyncFunctionsWGSL = {
|
||||
...uboSyncFunctionsSTD40,
|
||||
"mat2x2<f32>": `
|
||||
data[offset] = v[0];
|
||||
data[offset + 1] = v[1];
|
||||
data[offset + 2] = v[2];
|
||||
data[offset + 3] = v[3];
|
||||
`
|
||||
};
|
||||
|
||||
export { uboSyncFunctionsSTD40, uboSyncFunctionsWGSL };
|
||||
//# sourceMappingURL=uboSyncFunctions.mjs.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uboSyncFunctions.mjs.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uboSyncFunctions.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"uboSyncFunctions.mjs","sources":["../../../../../../src/rendering/renderers/shared/shader/utils/uboSyncFunctions.ts"],"sourcesContent":["import type { UNIFORM_TYPES_SINGLE } from '../types';\n\nfunction loopMatrix(col: number, row: number)\n{\n const total = col * row;\n\n return `\n for (let i = 0; i < ${total}; i++) {\n data[offset + (((i / ${col})|0) * 4) + (i % ${col})] = v[i];\n }\n `;\n}\n\nexport const uboSyncFunctionsSTD40: Record<UNIFORM_TYPES_SINGLE, string> = {\n f32: `\n data[offset] = v;`,\n i32: `\n data[offset] = v;`,\n 'vec2<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];`,\n 'vec3<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];`,\n 'vec4<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 3] = v[3];`,\n 'mat2x2<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 4] = v[2];\n data[offset + 5] = v[3];`,\n 'mat3x3<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 4] = v[3];\n data[offset + 5] = v[4];\n data[offset + 6] = v[5];\n data[offset + 8] = v[6];\n data[offset + 9] = v[7];\n data[offset + 10] = v[8];`,\n 'mat4x4<f32>': `\n for (let i = 0; i < 16; i++) {\n data[offset + i] = v[i];\n }`,\n 'mat3x2<f32>': loopMatrix(3, 2),\n 'mat4x2<f32>': loopMatrix(4, 2),\n 'mat2x3<f32>': loopMatrix(2, 3),\n 'mat4x3<f32>': loopMatrix(4, 3),\n 'mat2x4<f32>': loopMatrix(2, 4),\n 'mat3x4<f32>': loopMatrix(3, 4),\n};\n\nexport const uboSyncFunctionsWGSL: Record<UNIFORM_TYPES_SINGLE, string> = {\n ...uboSyncFunctionsSTD40,\n 'mat2x2<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 3] = v[3];\n `,\n};\n"],"names":[],"mappings":";AAEA,SAAS,UAAA,CAAW,KAAa,GACjC,EAAA;AACI,EAAA,MAAM,QAAQ,GAAM,GAAA,GAAA,CAAA;AAEpB,EAAO,OAAA,CAAA;AAAA,4BAAA,EACmB,KAAK,CAAA;AAAA,iCACA,EAAA,GAAG,oBAAoB,GAAG,CAAA;AAAA;AAAA,IAAA,CAAA,CAAA;AAG7D,CAAA;AAEO,MAAM,qBAA8D,GAAA;AAAA,EACvE,GAAK,EAAA,CAAA;AAAA,yBAAA,CAAA;AAAA,EAEL,GAAK,EAAA,CAAA;AAAA,yBAAA,CAAA;AAAA,EAEL,WAAa,EAAA,CAAA;AAAA;AAAA,gCAAA,CAAA;AAAA,EAGb,WAAa,EAAA,CAAA;AAAA;AAAA;AAAA,gCAAA,CAAA;AAAA,EAIb,WAAa,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA,gCAAA,CAAA;AAAA,EAKb,aAAe,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA,gCAAA,CAAA;AAAA,EAKf,aAAe,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAAA,CAAA;AAAA,EAUf,aAAe,EAAA,CAAA;AAAA;AAAA;AAAA,SAAA,CAAA;AAAA,EAIf,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAClC,EAAA;AAEO,MAAM,oBAA6D,GAAA;AAAA,EACtE,GAAG,qBAAA;AAAA,EACH,aAAe,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAMnB;;;;"}
|
10
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uniformParsers.d.ts
generated
vendored
Normal file
10
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uniformParsers.d.ts
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
import type { UNIFORM_TYPES, UniformData } from '../types';
|
||||
export interface UniformParserDefinition {
|
||||
type: UNIFORM_TYPES;
|
||||
test(data: UniformData): boolean;
|
||||
ubo?: string;
|
||||
uboWgsl?: string;
|
||||
uboStd40?: string;
|
||||
uniform?: string;
|
||||
}
|
||||
export declare const uniformParsers: UniformParserDefinition[];
|
117
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uniformParsers.js
generated
vendored
Normal file
117
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uniformParsers.js
generated
vendored
Normal file
@@ -0,0 +1,117 @@
|
||||
'use strict';
|
||||
|
||||
"use strict";
|
||||
const uniformParsers = [
|
||||
// uploading pixi matrix object to mat3
|
||||
{
|
||||
type: "mat3x3<f32>",
|
||||
test: (data) => {
|
||||
const value = data.value;
|
||||
return value.a !== void 0;
|
||||
},
|
||||
ubo: `
|
||||
var 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];
|
||||
`,
|
||||
uniform: `
|
||||
gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true));
|
||||
`
|
||||
},
|
||||
// uploading a pixi rectangle as a vec4
|
||||
{
|
||||
type: "vec4<f32>",
|
||||
test: (data) => data.type === "vec4<f32>" && data.size === 1 && data.value.width !== void 0,
|
||||
ubo: `
|
||||
v = uv[name];
|
||||
data[offset] = v.x;
|
||||
data[offset + 1] = v.y;
|
||||
data[offset + 2] = v.width;
|
||||
data[offset + 3] = v.height;
|
||||
`,
|
||||
uniform: `
|
||||
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);
|
||||
}
|
||||
`
|
||||
},
|
||||
// uploading a pixi point as a vec2
|
||||
{
|
||||
type: "vec2<f32>",
|
||||
test: (data) => data.type === "vec2<f32>" && data.size === 1 && data.value.x !== void 0,
|
||||
ubo: `
|
||||
v = uv[name];
|
||||
data[offset] = v.x;
|
||||
data[offset + 1] = v.y;
|
||||
`,
|
||||
uniform: `
|
||||
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);
|
||||
}
|
||||
`
|
||||
},
|
||||
// uploading a pixi color as a vec4
|
||||
{
|
||||
type: "vec4<f32>",
|
||||
test: (data) => data.type === "vec4<f32>" && data.size === 1 && data.value.red !== void 0,
|
||||
ubo: `
|
||||
v = uv[name];
|
||||
data[offset] = v.red;
|
||||
data[offset + 1] = v.green;
|
||||
data[offset + 2] = v.blue;
|
||||
data[offset + 3] = v.alpha;
|
||||
`,
|
||||
uniform: `
|
||||
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);
|
||||
}
|
||||
`
|
||||
},
|
||||
// uploading a pixi color as a vec3
|
||||
{
|
||||
type: "vec3<f32>",
|
||||
test: (data) => data.type === "vec3<f32>" && data.size === 1 && data.value.red !== void 0,
|
||||
ubo: `
|
||||
v = uv[name];
|
||||
data[offset] = v.red;
|
||||
data[offset + 1] = v.green;
|
||||
data[offset + 2] = v.blue;
|
||||
`,
|
||||
uniform: `
|
||||
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.uniformParsers = uniformParsers;
|
||||
//# sourceMappingURL=uniformParsers.js.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uniformParsers.js.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uniformParsers.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
115
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uniformParsers.mjs
generated
vendored
Normal file
115
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uniformParsers.mjs
generated
vendored
Normal file
@@ -0,0 +1,115 @@
|
||||
"use strict";
|
||||
const uniformParsers = [
|
||||
// uploading pixi matrix object to mat3
|
||||
{
|
||||
type: "mat3x3<f32>",
|
||||
test: (data) => {
|
||||
const value = data.value;
|
||||
return value.a !== void 0;
|
||||
},
|
||||
ubo: `
|
||||
var 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];
|
||||
`,
|
||||
uniform: `
|
||||
gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true));
|
||||
`
|
||||
},
|
||||
// uploading a pixi rectangle as a vec4
|
||||
{
|
||||
type: "vec4<f32>",
|
||||
test: (data) => data.type === "vec4<f32>" && data.size === 1 && data.value.width !== void 0,
|
||||
ubo: `
|
||||
v = uv[name];
|
||||
data[offset] = v.x;
|
||||
data[offset + 1] = v.y;
|
||||
data[offset + 2] = v.width;
|
||||
data[offset + 3] = v.height;
|
||||
`,
|
||||
uniform: `
|
||||
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);
|
||||
}
|
||||
`
|
||||
},
|
||||
// uploading a pixi point as a vec2
|
||||
{
|
||||
type: "vec2<f32>",
|
||||
test: (data) => data.type === "vec2<f32>" && data.size === 1 && data.value.x !== void 0,
|
||||
ubo: `
|
||||
v = uv[name];
|
||||
data[offset] = v.x;
|
||||
data[offset + 1] = v.y;
|
||||
`,
|
||||
uniform: `
|
||||
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);
|
||||
}
|
||||
`
|
||||
},
|
||||
// uploading a pixi color as a vec4
|
||||
{
|
||||
type: "vec4<f32>",
|
||||
test: (data) => data.type === "vec4<f32>" && data.size === 1 && data.value.red !== void 0,
|
||||
ubo: `
|
||||
v = uv[name];
|
||||
data[offset] = v.red;
|
||||
data[offset + 1] = v.green;
|
||||
data[offset + 2] = v.blue;
|
||||
data[offset + 3] = v.alpha;
|
||||
`,
|
||||
uniform: `
|
||||
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);
|
||||
}
|
||||
`
|
||||
},
|
||||
// uploading a pixi color as a vec3
|
||||
{
|
||||
type: "vec3<f32>",
|
||||
test: (data) => data.type === "vec3<f32>" && data.size === 1 && data.value.red !== void 0,
|
||||
ubo: `
|
||||
v = uv[name];
|
||||
data[offset] = v.red;
|
||||
data[offset + 1] = v.green;
|
||||
data[offset + 2] = v.blue;
|
||||
`,
|
||||
uniform: `
|
||||
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 { uniformParsers };
|
||||
//# sourceMappingURL=uniformParsers.mjs.map
|
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uniformParsers.mjs.map
generated
vendored
Normal file
1
node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uniformParsers.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user