fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
3 lines (2 loc) • 1.22 kB
JavaScript
import{defineProperty as t}from"../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{BaseFilter as a}from"./BaseFilter.min.mjs";import{classRegistry as r}from"../ClassRegistry.min.mjs";import{fragmentSource as m}from"./shaders/gamma.min.mjs";const e="Gamma",s={gamma:[1,1,1]};class o extends a{getFragmentSource(){return m}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(t),this.gamma=t.gamma||this.constructor.defaults.gamma.concat()}applyTo2d(t){let{imageData:{data:a}}=t;const r=this.gamma,m=1/r[0],e=1/r[1],s=1/r[2];this.rgbValues||(this.rgbValues={r:new Uint8Array(256),g:new Uint8Array(256),b:new Uint8Array(256)});const o=this.rgbValues;for(let t=0;t<256;t++)o.r[t]=255*Math.pow(t/255,m),o.g[t]=255*Math.pow(t/255,e),o.b[t]=255*Math.pow(t/255,s);for(let t=0;t<a.length;t+=4)a[t]=o.r[a[t]],a[t+1]=o.g[a[t+1]],a[t+2]=o.b[a[t+2]]}sendUniformData(t,a){t.uniform3fv(a.uGamma,this.gamma)}isNeutralState(){const{gamma:t}=this;return 1===t[0]&&1===t[1]&&1===t[2]}toObject(){return{type:e,gamma:this.gamma.concat()}}}t(o,"type",e),t(o,"defaults",s),t(o,"uniformLocations",["uGamma"]),r.setClass(o);export{o as Gamma,s as gammaDefaultValues};
//# sourceMappingURL=Gamma.min.mjs.map