UNPKG

@pixi/core

Version:
167 lines (148 loc) 5.81 kB
const uniformParsers = [ { test: (data) => data.type === "float" && data.size === 1 && !data.isArray, code: (name) => ` if(uv["${name}"] !== ud["${name}"].value) { ud["${name}"].value = uv["${name}"] gl.uniform1f(ud["${name}"].location, uv["${name}"]) } ` }, { test: (data, uniform) => (data.type === "sampler2D" || data.type === "samplerCube" || data.type === "sampler2DArray") && data.size === 1 && !data.isArray && (uniform == null || uniform.castToBaseTexture !== void 0), code: (name) => `t = syncData.textureCount++; renderer.texture.bind(uv["${name}"], t); if(ud["${name}"].value !== t) { ud["${name}"].value = t; gl.uniform1i(ud["${name}"].location, t); ; // eslint-disable-line max-len }` }, { test: (data, uniform) => data.type === "mat3" && data.size === 1 && !data.isArray && uniform.a !== void 0, code: (name) => ` gl.uniformMatrix3fv(ud["${name}"].location, false, uv["${name}"].toArray(true)); `, codeUbo: (name) => ` var ${name}_matrix = uv.${name}.toArray(true); data[offset] = ${name}_matrix[0]; data[offset+1] = ${name}_matrix[1]; data[offset+2] = ${name}_matrix[2]; data[offset + 4] = ${name}_matrix[3]; data[offset + 5] = ${name}_matrix[4]; data[offset + 6] = ${name}_matrix[5]; data[offset + 8] = ${name}_matrix[6]; data[offset + 9] = ${name}_matrix[7]; data[offset + 10] = ${name}_matrix[8]; ` }, { test: (data, uniform) => data.type === "vec2" && data.size === 1 && !data.isArray && uniform.x !== void 0, code: (name) => ` 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); }`, codeUbo: (name) => ` v = uv.${name}; data[offset] = v.x; data[offset+1] = v.y; ` }, { test: (data) => data.type === "vec2" && data.size === 1 && !data.isArray, code: (name) => ` cv = ud["${name}"].value; v = uv["${name}"]; if(cv[0] !== v[0] || cv[1] !== v[1]) { cv[0] = v[0]; cv[1] = v[1]; gl.uniform2f(ud["${name}"].location, v[0], v[1]); } ` }, { test: (data, uniform) => data.type === "vec4" && data.size === 1 && !data.isArray && uniform.width !== void 0, code: (name) => ` 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) }`, codeUbo: (name) => ` v = uv.${name}; data[offset] = v.x; data[offset+1] = v.y; data[offset+2] = v.width; data[offset+3] = v.height; ` }, { test: (data, uniform) => data.type === "vec4" && data.size === 1 && !data.isArray && uniform.red !== void 0, code: (name) => ` 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) }`, codeUbo: (name) => ` v = uv.${name}; data[offset] = v.red; data[offset+1] = v.green; data[offset+2] = v.blue; data[offset+3] = v.alpha; ` }, { test: (data, uniform) => data.type === "vec3" && data.size === 1 && !data.isArray && uniform.red !== void 0, code: (name) => ` cv = ud["${name}"].value; v = uv["${name}"]; if(cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.a) { cv[0] = v.red; cv[1] = v.green; cv[2] = v.blue; gl.uniform3f(ud["${name}"].location, v.red, v.green, v.blue) }`, codeUbo: (name) => ` v = uv.${name}; data[offset] = v.red; data[offset+1] = v.green; data[offset+2] = v.blue; ` }, { test: (data) => data.type === "vec4" && data.size === 1 && !data.isArray, code: (name) => ` cv = ud["${name}"].value; v = uv["${name}"]; if(cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) { cv[0] = v[0]; cv[1] = v[1]; cv[2] = v[2]; cv[3] = v[3]; gl.uniform4f(ud["${name}"].location, v[0], v[1], v[2], v[3]) }` } ]; export { uniformParsers }; //# sourceMappingURL=uniformParsers.mjs.map