PATH:
home
/
thebhoeo
/
public_html
/
wp-content
/
themes
/
woodmart
/
js
/
scripts
/
shaders
function ShaderX(t){this.options=jQuery.extend({},{container:null,sizeContainer:null,autoPlay:!0,vertexShader:"",fragmentShader:"",width:0,height:0,mouseMove:!1,distImage:!1},t),this.container=this.options.container,this.pixelRatio=window.devicePixelRatio,this.uniforms={},this.time=0,this.progress=0,this.empty=!0,this.images={},this.texture1=null,this.texture2=null,this.resizing=!1,this.resizingTimeout=0,this.border=0,this.scale=1,this.drawn=!1,this.runned=!1,this.mouseX=0,this.mouseY=0,this.loadedTextures={},this.options.autoPlay&&this.init()}ShaderX.prototype={init:function(){var t=this;window.addEventListener("resize",function(){t.resize()}),this.options.autoPlay&&(this.runned=!0,this.render(),this.raf())},render:function(){this.container.classList.contains("wd-with-webgl")||(this.createCanvas(),this.container.append(this.canvas),this.container.classList.add("wd-with-webgl")),this.gl&&(this.progress>0&&this.progress<1||!this.drawn)&&(this.renderCanvas(),this.drawn=!0)},createCanvas:function(){if(this.canvas=document.createElement("CANVAS"),this.gl=this.canvas.getContext("webgl"),this.gl){this.canvas.width=this.options.width*this.pixelRatio,this.canvas.height=this.options.height*this.pixelRatio;var t=this.createShader(this.gl.VERTEX_SHADER,this.options.vertexShader),i=this.createShader(this.gl.FRAGMENT_SHADER,this.options.fragmentShader);this.program=this.createProgram(t,i);var e=this.gl.getAttribLocation(this.program,"a_position"),s=this.gl.createBuffer();this.gl.bindBuffer(this.gl.ARRAY_BUFFER,s);var r=this.options.width*this.pixelRatio,a=this.options.height*this.pixelRatio,h=[0,0,r,0,0,a,0,a,r,0,r,a];this.gl.bufferData(this.gl.ARRAY_BUFFER,new Float32Array(h),this.gl.STATIC_DRAW),this.gl.viewport(0,0,this.gl.canvas.width,this.gl.canvas.height),this.gl.clearColor(0,0,0,0),this.gl.clear(this.gl.COLOR_BUFFER_BIT),this.gl.useProgram(this.program);var o=[2/this.gl.canvas.width,0,0,0,-2/this.gl.canvas.height,0,-1,1,1];this.addUniform("3fv","u_matrix",o),this.addUniform("1f","u_flipY",1),this.addUniform("1f","u_time",0),this.addUniform("2f","u_pixels",[this.options.width*this.pixelRatio,this.options.height*this.pixelRatio]),this.addUniform("1f","u_progress",0),this.addUniform("2f","u_resolution",[this.gl.canvas.width,this.gl.canvas.height]),this.addUniform("2f","u_uvRate",[1,1]),this.addUniform("1f","u_scale",this.scale),this.options.mouseMove&&this.addUniform("2f","u_mouse",[.5,0]),this.gl.enableVertexAttribArray(e);var n=this.gl.FLOAT;this.gl.vertexAttribPointer(e,2,n,!1,0,0);var g=this.gl.getAttribLocation(this.program,"a_texCoord"),l=this.gl.createBuffer();if(this.gl.bindBuffer(this.gl.ARRAY_BUFFER,l),this.gl.bufferData(this.gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),this.gl.STATIC_DRAW),this.gl.enableVertexAttribArray(g),this.gl.vertexAttribPointer(g,2,this.gl.FLOAT,!1,0,0),this.texture1&&this.loadImageTexture(this.texture1,0),this.options.distImage){var u=new Image;this.requestCORSIfNotSameOrigin(u,this.options.distImage),u.src=this.options.distImage;var d=this;u.onload=function(){d.loadImageTexture(u,2)}}}else console.log("WebGL is not supported")},raf:function(){if(this.canvas){var t=this;!function i(){if(t.time+=.03,t.updateUniform("u_time",t.time),t.options.mouseMove){var e=t.getUniform("u_mouse"),s=e[0],r=e[1],a=s?s+.05*(t.mouseX-s):t.mouseX,h=r?r+.05*(t.mouseY-r):t.mouseY;t.updateUniform("u_mouse",[a,h])}t.progress<0&&(t.progress=0),t.progress>1&&(t.progress=1),t.updateUniform("u_progress",t.progress),t.updateUniform("u_scale",t.scale),t.render(),t.requestID=window.requestAnimationFrame(i)}()}},resize:function(){var t=this;clearTimeout(this.resizingTimeout),this.resizingTimeout=setTimeout(function(){if(t.canvas){var i=Math.floor(t.options.sizeContainer.offsetWidth*t.pixelRatio),e=Math.floor(t.options.sizeContainer.offsetHeight*t.pixelRatio);t.gl.canvas.width===i&&t.gl.canvas.height===e||(t.gl.canvas.width=i,t.gl.canvas.height=e),t.updateUniform("u_resolution",[i,e]),t.updateUniform("u_pixels",[i,e]),t.updateUniform("u_uvRate",[1,e/i]),t.gl.viewport(0,0,i,e),t.drawn=!1}},500)},run:function(){this.runned||(this.runned=!0,this.render(),this.raf())},stop:function(){this.runned&&(window.cancelAnimationFrame(this.requestID),this.destroyCanvas(),this.container.find("canvas").remove(),this.container.removeClass("wd-with-webgl"),this.runned=!1)},renderCanvas:function(){if(this.empty)return!1;this.gl.drawArrays(this.gl.TRIANGLES,0,6)},destroyCanvas:function(){this.gl&&(this.canvas=null,this.gl.getExtension("WEBGL_lose_context").loseContext(),this.gl=null)},createShader:function(t,i){var e=this.gl.createShader(t);if(this.gl.shaderSource(e,i),this.gl.compileShader(e),this.gl.getShaderParameter(e,this.gl.COMPILE_STATUS))return e;console.log(this.gl.getShaderInfoLog(e)),this.gl.deleteShader(e)},createProgram:function(t,i){var e=this.gl.createProgram();if(this.gl.attachShader(e,t),this.gl.attachShader(e,i),this.gl.linkProgram(e),this.gl.getProgramParameter(e,this.gl.LINK_STATUS))return e;console.log(this.gl.getProgramInfoLog(e)),this.gl.deleteProgram(e)},addUniform:function(t,i,e){var s=this.gl.getUniformLocation(this.program,i);this.uniforms[i]={location:s,type:t},!1!==e&&this.updateUniform(i,e)},updateUniform:function(t,i){if(this.gl){var e=this.uniforms[t];switch(e.type){case"1f":this.gl.uniform1f(e.location,i);break;case"2f":this.gl.uniform2f(e.location,i[0],i[1]);break;case"1i":this.gl.uniform1i(e.location,i);break;case"3fv":this.gl.uniformMatrix3fv(e.location,!1,i)}}},getUniform:function(t,i){if(this.gl){var e=this.uniforms[t];return this.gl.getUniform(this.program,e.location)}},getImageId:function(t){var i=t.split("/");return i[i.length-3]+"-"+i[i.length-2]+"-"+i[i.length-1]},loadImage:function(t,i,e,s){var r,a=this.getImageId(t);if(this.images[a]){if(r=this.images[a],s)return;return 0===i?this.texture1=r:1===i&&(this.texture2=r),this.loadImageTexture(r,i),this.empty=!1,this.drawn=!1,void(e&&e())}r=new Image,this.requestCORSIfNotSameOrigin(r,t),r.src=t;var h=this;r.onload=function(){h.images[a]=r,s||(0===i?h.texture1=r:h.texture2=r,h.loadImageTexture(r,i),h.empty=!1,h.drawn=!1,e&&e())}},requestCORSIfNotSameOrigin:function(t,i){new URL(i,window.location.href).origin!==window.location.origin&&(t.crossOrigin="")},loadImageTexture:function(t,i){var e;if(this.gl)if(this.loadedTextures[i]){e=this.loadedTextures[i];var s=this.gl.TEXTURE0+i;this.gl.activeTexture(s),this.gl.bindTexture(this.gl.TEXTURE_2D,e),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,t),this.addUniform("1i","u_image"+i,i),this.addUniform("2f","u_image"+i+"_size",[t.width,t.height])}else e=this.gl.createTexture(),s=this.gl.TEXTURE0+i,this.gl.activeTexture(s),this.gl.bindTexture(this.gl.TEXTURE_2D,e),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,t),this.addUniform("1i","u_image"+i,i),this.addUniform("2f","u_image"+i+"_size",[t.width,t.height]),this.updateUniform("u_flipY",-1)},replaceImage:function(t){var i=this;this.getImageId(t),this.texture2&&(i.loadImageTexture(this.texture2,0),i.loadImageTexture(this.texture2,1)),this.loadImage(t,1,function(){var t,e=1/78,s=0;i.progress=0,function r(){s+=e,i.progress=function(t){return t*(2-t)}(s),i.progress>=1?window.cancelAnimationFrame(t):t=window.requestAnimationFrame(r)}()})}};
[-] shaders.min.js
[edit]
[-] shaders.js
[edit]
[+]
..
[-] shaderX.js
[edit]
[-] sliderDistortion.min.js
[edit]
[-] shaderX.min.js
[edit]
[-] sliderDistortion.js
[edit]