{"version":3,"file":"pixi-picture.js","sourceRoot":"","sources":["../src/PictureShader.ts","../src/HardLightShader.ts","../src/mapFilterBlendModesToPixi.ts","../src/NormalShader.ts","../src/OverlayShader.ts","../src/PictureRenderer.ts","../src/SoftLightShader.ts","../src/Sprite.ts","../src/TilingSprite.ts","../src/xporter.ts"],"names":[],"mappings":"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","sourcesContent":["namespace pixi_picture {\r\n interface InnerLib {\r\n vertUniforms: string,\r\n vertCode: string,\r\n fragUniforms: string,\r\n fragCode: string\r\n }\r\n\r\n const shaderLib: InnerLib[] = [\r\n {\r\n vertUniforms: \"\",\r\n vertCode: \"vTextureCoord = aTextureCoord;\",\r\n fragUniforms: \"uniform vec4 uTextureClamp;\",\r\n fragCode: \"vec2 textureCoord = clamp(vTextureCoord, uTextureClamp.xy, uTextureClamp.zw);\"\r\n },\r\n {\r\n //DOES HAVE translationMatrix\r\n vertUniforms: \"uniform mat3 uTransform;\",\r\n vertCode: \"vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\",\r\n fragUniforms: \"\",\r\n fragCode: \"vec2 textureCoord = vTextureCoord;\"\r\n },\r\n {\r\n //DOES HAVE translationMatrix\r\n vertUniforms: \"uniform mat3 uTransform;\",\r\n vertCode: \"vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\",\r\n fragUniforms: \"uniform mat3 uMapCoord;\\nuniform vec4 uClampFrame;\\nuniform vec2 uClampOffset;\",\r\n fragCode: \"vec2 textureCoord = mod(vTextureCoord - uClampOffset, vec2(1.0, 1.0)) + uClampOffset;\" +\r\n \"\\ntextureCoord = (uMapCoord * vec3(textureCoord, 1.0)).xy;\" +\r\n \"\\ntextureCoord = clamp(textureCoord, uClampFrame.xy, uClampFrame.zw);\"\r\n }\r\n ];\r\n\r\n export class PictureShader extends PIXI.Shader {\r\n\r\n tempQuad: PIXI.Quad;\r\n tilingMode: number;\r\n\r\n static blendVert = `\r\nattribute vec2 aVertexPosition;\r\nattribute vec2 aTextureCoord;\r\nattribute vec4 aColor;\r\n\r\nuniform mat3 projectionMatrix;\r\nuniform mat3 mapMatrix;\r\n\r\nvarying vec2 vTextureCoord;\r\nvarying vec2 vMapCoord;\r\n%SPRITE_UNIFORMS%\r\n\r\nvoid main(void)\r\n{\r\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\r\n %SPRITE_CODE%\r\n vMapCoord = (mapMatrix * vec3(aVertexPosition, 1.0)).xy;\r\n}\r\n`;\r\n\r\n /**\r\n * @class\r\n * @extends PIXI.Shader\r\n * @memberof PIXI.extras\r\n * @param gl {PIXI.Shader} The WebGL shader manager this shader works for.\r\n * @param vert {string}\r\n * @param frag {string}\r\n * @param tilingMode {number} 0 for default, 1 for simple tiling, 2 for tiling\r\n */\r\n constructor(gl: WebGLRenderingContext, vert: string, frag: string, tilingMode: number) {\r\n const lib = shaderLib[tilingMode];\r\n super(gl,\r\n vert.replace(/%SPRITE_UNIFORMS%/gi, lib.vertUniforms)\r\n .replace(/%SPRITE_CODE%/gi, lib.vertCode),\r\n frag.replace(/%SPRITE_UNIFORMS%/gi, lib.fragUniforms)\r\n .replace(/%SPRITE_CODE%/gi, lib.fragCode));\r\n\r\n this.bind();\r\n this.tilingMode = tilingMode;\r\n this.tempQuad = new PIXI.Quad(gl);\r\n this.tempQuad.initVao(this);\r\n\r\n this.uniforms.uColor = new Float32Array([1,1,1,1]);\r\n this.uniforms.uSampler = [0, 1];\r\n }\r\n }\r\n}\r\n","/// \r\n\r\nnamespace pixi_picture {\r\n\tconst overlayFrag = `\r\nvarying vec2 vTextureCoord;\r\nvarying vec2 vMapCoord;\r\nvarying vec4 vColor;\r\n\r\nuniform sampler2D uSampler[2];\r\nuniform vec4 uColor;\r\n%SPRITE_UNIFORMS%\r\n\r\nvoid main(void)\r\n{\r\n %SPRITE_CODE%\r\n vec4 source = texture2D(uSampler[0], textureCoord) * uColor;\r\n vec4 target = texture2D(uSampler[1], vMapCoord);\r\n\r\n //reverse hardlight\r\n if (source.a == 0.0) {\r\n gl_FragColor = vec4(0, 0, 0, 0);\r\n return;\r\n }\r\n //yeah, premultiplied\r\n vec3 Cb = source.rgb/source.a, Cs;\r\n if (target.a > 0.0) {\r\n Cs = target.rgb / target.a;\r\n }\r\n vec3 multiply = Cb * Cs * 2.0;\r\n vec3 Cs2 = Cs * 2.0 - 1.0;\r\n vec3 screen = Cb + Cs2 - Cb * Cs2;\r\n vec3 B;\r\n if (Cb.r <= 0.5) {\r\n B.r = multiply.r;\r\n } else {\r\n B.r = screen.r;\r\n }\r\n if (Cb.g <= 0.5) {\r\n B.g = multiply.g;\r\n } else {\r\n B.g = screen.g;\r\n }\r\n if (Cb.b <= 0.5) {\r\n B.b = multiply.b;\r\n } else {\r\n B.b = screen.b;\r\n }\r\n vec4 res;\r\n res.xyz = (1.0 - source.a) * Cs + source.a * B;\r\n res.a = source.a + target.a * (1.0-source.a);\r\n gl_FragColor = vec4(res.xyz * res.a, res.a);\r\n}\r\n`;\r\n\r\n /**\r\n * @class\r\n * @extends PIXI.Shader\r\n * @memberof PIXI.extras\r\n * @param gl {PIXI.Shader} The WebGL shader manager this shader works for.\r\n * @param tilingMode {number} 0 for default, 1 for simple tiling, 2 for tiling\r\n */\r\n export class HardLightShader extends PictureShader {\r\n constructor(gl: WebGLRenderingContext, tilingMode: number) {\r\n super(gl, PictureShader.blendVert, overlayFrag, tilingMode);\r\n }\r\n }\r\n}\r\n","namespace pixi_picture {\r\n export function mapFilterBlendModesToPixi(gl: WebGLRenderingContext, array: Array> = []): Array>\r\n {\r\n //TODO - premultiply alpha would be different.\r\n //add a boolean for that!\r\n array[PIXI.BLEND_MODES.OVERLAY] = [new OverlayShader(gl, 0), new OverlayShader(gl, 1), new OverlayShader(gl, 2)];\r\n array[PIXI.BLEND_MODES.HARD_LIGHT] = [new HardLightShader(gl, 0), new HardLightShader(gl, 1), new HardLightShader(gl, 2)];\r\n\t array[PIXI.BLEND_MODES.SOFT_LIGHT] = [new SoftLightShader(gl, 0), new SoftLightShader(gl, 1), new SoftLightShader(gl, 2)];\r\n\r\n return array;\r\n }\r\n}\r\n","namespace pixi_picture {\r\n\r\n var normalFrag = `\r\nvarying vec2 vTextureCoord;\r\nvarying vec4 vColor;\r\n\r\nuniform sampler2D uSampler[2];\r\nuniform vec4 uColor;\r\n%SPRITE_UNIFORMS%\r\n\r\nvoid main(void)\r\n{\r\n %SPRITE_CODE%\r\n\r\n vec4 sample = texture2D(uSampler[0], textureCoord);\r\n gl_FragColor = sample * uColor;\r\n}\r\n`;\r\n\r\n var normalVert = `\r\nattribute vec2 aVertexPosition;\r\nattribute vec2 aTextureCoord;\r\nattribute vec4 aColor;\r\n\r\nuniform mat3 projectionMatrix;\r\n\r\nvarying vec2 vTextureCoord;\r\n%SPRITE_UNIFORMS%\r\n\r\nvoid main(void)\r\n{\r\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\r\n %SPRITE_CODE%\r\n}\r\n`;\r\n\r\n export class NormalShader extends PictureShader {\r\n /**\r\n * @class\r\n * @extends PIXI.Shader\r\n * @memberof PIXI.extras\r\n * @param gl {PIXI.Shader} The WebGL shader manager this shader works for.\r\n * @param tilingMode {number} 0 for default, 1 for simple tiling, 2 for tiling\r\n */\r\n constructor(gl: WebGLRenderingContext, tilingMode: number) {\r\n super(gl, normalVert, normalFrag, tilingMode);\r\n }\r\n }\r\n}\r\n","namespace pixi_picture {\r\n const overlayFrag = `\r\nvarying vec2 vTextureCoord;\r\nvarying vec2 vMapCoord;\r\nvarying vec4 vColor;\r\n\r\nuniform sampler2D uSampler[2];\r\nuniform vec4 uColor;\r\n%SPRITE_UNIFORMS%\r\n\r\nvoid main(void)\r\n{\r\n %SPRITE_CODE%\r\n vec4 source = texture2D(uSampler[0], textureCoord) * uColor;\r\n vec4 target = texture2D(uSampler[1], vMapCoord);\r\n\r\n //reverse hardlight\r\n if (source.a == 0.0) {\r\n gl_FragColor = vec4(0, 0, 0, 0);\r\n return;\r\n }\r\n //yeah, premultiplied\r\n vec3 Cb = source.rgb/source.a, Cs;\r\n if (target.a > 0.0) {\r\n Cs = target.rgb / target.a;\r\n }\r\n vec3 multiply = Cb * Cs * 2.0;\r\n vec3 Cb2 = Cb * 2.0 - 1.0;\r\n vec3 screen = Cb2 + Cs - Cb2 * Cs;\r\n vec3 B;\r\n if (Cs.r <= 0.5) {\r\n B.r = multiply.r;\r\n } else {\r\n B.r = screen.r;\r\n }\r\n if (Cs.g <= 0.5) {\r\n B.g = multiply.g;\r\n } else {\r\n B.g = screen.g;\r\n }\r\n if (Cs.b <= 0.5) {\r\n B.b = multiply.b;\r\n } else {\r\n B.b = screen.b;\r\n }\r\n vec4 res;\r\n res.xyz = (1.0 - source.a) * Cs + source.a * B;\r\n res.a = source.a + target.a * (1.0-source.a);\r\n gl_FragColor = vec4(res.xyz * res.a, res.a);\r\n}\r\n`;\r\n\r\n /**\r\n * @class\r\n * @extends PIXI.Shader\r\n * @memberof PIXI.extras\r\n * @param gl {PIXI.Shader} The WebGL shader manager this shader works for.\r\n * @param tilingMode {number} 0 for default, 1 for simple tiling, 2 for tiling\r\n */\r\n export class OverlayShader extends PictureShader {\r\n constructor(gl: WebGLRenderingContext, tilingMode: number) {\r\n super(gl, PictureShader.blendVert, overlayFrag, tilingMode);\r\n }\r\n }\r\n}\r\n","namespace pixi_picture {\r\n import Matrix = PIXI.Matrix;\r\n import Sprite = PIXI.Sprite;\r\n\timport Texture = PIXI.Texture;\r\n import TextureUvs = PIXI.TextureUvs;\r\n import TilingSprite = PIXI.extras.TilingSprite;\r\n import WRAP_MODES = PIXI.WRAP_MODES;\r\n\r\n function nextPow2(v: number): number {\r\n v += (v === 0)?1:0;\r\n --v;\r\n v |= v >>> 1;\r\n v |= v >>> 2;\r\n v |= v >>> 4;\r\n v |= v >>> 8;\r\n v |= v >>> 16;\r\n return v + 1;\r\n }\r\n\r\n export class PictureRenderer extends PIXI.ObjectRenderer {\r\n constructor(renderer: PIXI.WebGLRenderer) {\r\n super(renderer)\r\n }\r\n\r\n drawModes: Array>;\r\n normalShader: Array;\r\n _tempClamp: Float32Array;\r\n _tempColor: Float32Array;\r\n _tempRect: PIXI.Rectangle;\r\n _tempRect2: PIXI.Rectangle;\r\n _tempRect3: PIXI.Rectangle;\r\n _tempMatrix: PIXI.Matrix;\r\n _tempMatrix2: PIXI.Matrix;\r\n _bigBuf: Uint8Array;\r\n _renderTexture: PIXI.BaseRenderTexture;\r\n\r\n onContextChange() {\r\n const gl = this.renderer.gl;\r\n this.drawModes = mapFilterBlendModesToPixi(gl);\r\n this.normalShader = [new NormalShader(gl, 0), new NormalShader(gl, 1), new NormalShader(gl, 2)];\r\n this._tempClamp = new Float32Array(4);\r\n this._tempColor = new Float32Array(4);\r\n this._tempRect = new PIXI.Rectangle();\r\n this._tempRect2 = new PIXI.Rectangle();\r\n this._tempRect3 = new PIXI.Rectangle();\r\n this._tempMatrix = new PIXI.Matrix();\r\n this._tempMatrix2 = new PIXI.Matrix();\r\n this._bigBuf = new Uint8Array(1 << 20);\r\n this._renderTexture = new PIXI.BaseRenderTexture(1024, 1024);\r\n }\r\n\r\n start() {\r\n\r\n }\r\n\r\n flush() {\r\n\r\n }\r\n\r\n _getRenderTexture(minWidth: number, minHeight: number) {\r\n if (this._renderTexture.width < minWidth ||\r\n this._renderTexture.height < minHeight) {\r\n minHeight = nextPow2(minWidth);\r\n minHeight = nextPow2(minHeight);\r\n this._renderTexture.resize(minWidth, minHeight);\r\n }\r\n return this._renderTexture;\r\n }\r\n\r\n _getBuf(size: number): Float32Array {\r\n let buf = this._bigBuf;\r\n if (buf.length < size) {\r\n size = nextPow2(size);\r\n buf = new Uint8Array(size);\r\n this._bigBuf = buf;\r\n }\r\n return buf;\r\n }\r\n\r\n render(sprite: Sprite) {\r\n if (!sprite.texture.valid) {\r\n return;\r\n }\r\n let tilingMode = 0;\r\n if ((sprite as any).tileTransform) {\r\n //for Sprite\r\n tilingMode = this._isSimpleSprite(sprite) ? 1 : 2;\r\n }\r\n\r\n const blendShader = this.drawModes[sprite.blendMode];\r\n if (blendShader) {\r\n this._renderBlend(sprite, blendShader[tilingMode]);\r\n } else {\r\n this._renderNormal(sprite, this.normalShader[tilingMode]);\r\n }\r\n }\r\n\r\n _renderNormal(sprite: Sprite, shader: PictureShader) {\r\n const renderer = this.renderer;\r\n renderer.bindShader(shader);\r\n renderer.state.setBlendMode(sprite.blendMode);\r\n this._renderInner(sprite, shader);\r\n }\r\n\r\n _renderBlend(sprite: Sprite, shader: PictureShader) {\r\n //nothing there yet\r\n const renderer = this.renderer;\r\n const spriteBounds = sprite.getBounds();\r\n const renderTarget = renderer._activeRenderTarget;\r\n const matrix = renderTarget.projectionMatrix;\r\n const flipX = matrix.a < 0;\r\n const flipY = matrix.d < 0;\r\n const resolution = renderTarget.resolution;\r\n const screen = this._tempRect;\r\n const fr = renderTarget.sourceFrame || renderTarget.destinationFrame;\r\n screen.x = 0;\r\n screen.y = 0;\r\n screen.width = fr.width;\r\n screen.height = fr.height;\r\n\r\n const bounds = this._tempRect2;\r\n const fbw = fr.width * resolution, fbh = fr.height * resolution;\r\n bounds.x = (spriteBounds.x + matrix.tx / matrix.a) * resolution + fbw / 2;\r\n bounds.y = (spriteBounds.y + matrix.ty / matrix.d) * resolution + fbh / 2;\r\n bounds.width = spriteBounds.width * resolution;\r\n bounds.height = spriteBounds.height * resolution;\r\n if (flipX) {\r\n bounds.y = fbw - bounds.width - bounds.x;\r\n }\r\n if (flipY) {\r\n bounds.y = fbh - bounds.height - bounds.y;\r\n }\r\n\r\n const screenBounds = this._tempRect3;\r\n const x_1 = Math.floor(Math.max(screen.x, bounds.x));\r\n const x_2 = Math.ceil(Math.min(screen.x + screen.width, bounds.x + bounds.width));\r\n const y_1 = Math.floor(Math.max(screen.y, bounds.y));\r\n const y_2 = Math.ceil(Math.min(screen.y + screen.height, bounds.y + bounds.height));\r\n const pixelsWidth = x_2 - x_1;\r\n const pixelsHeight = y_2 - y_1;\r\n if (pixelsWidth <= 0 || pixelsHeight <= 0) {\r\n //culling\r\n return;\r\n }\r\n //TODO: padding\r\n const rt = this._getRenderTexture(pixelsWidth, pixelsHeight);\r\n renderer.bindTexture(rt, 1, true);\r\n const gl = renderer.gl;\r\n if (renderer.renderingToScreen && renderTarget.root) {\r\n const buf = this._getBuf(pixelsWidth * pixelsHeight * 4);\r\n gl.readPixels(x_1, y_1, pixelsWidth, pixelsHeight, gl.RGBA, gl.UNSIGNED_BYTE, this._bigBuf);\r\n //REVERT Y?\r\n gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, pixelsWidth, pixelsHeight, gl.RGBA, gl.UNSIGNED_BYTE, this._bigBuf);\r\n } else {\r\n gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, x_1, y_1, pixelsWidth, pixelsHeight);\r\n }\r\n\r\n renderer.bindShader(shader);\r\n renderer.state.setBlendMode(PIXI.BLEND_MODES.NORMAL);\r\n if (shader.uniforms.mapMatrix) {\r\n const mapMatrix = this._tempMatrix;\r\n mapMatrix.a = bounds.width / rt.width / spriteBounds.width;\r\n if (flipX) {\r\n mapMatrix.a = -mapMatrix.a;\r\n mapMatrix.tx = (bounds.x - x_1) / rt.width - (spriteBounds.x + spriteBounds.width) * mapMatrix.a;\r\n } else {\r\n mapMatrix.tx = (bounds.x - x_1) / rt.width - spriteBounds.x * mapMatrix.a;\r\n }\r\n mapMatrix.d = bounds.height / rt.height / spriteBounds.height;\r\n if (flipY) {\r\n mapMatrix.d = -mapMatrix.d;\r\n mapMatrix.ty = (bounds.y - y_1) / rt.height - (spriteBounds.y + spriteBounds.height) * mapMatrix.d;\r\n } else {\r\n mapMatrix.ty = (bounds.y - y_1) / rt.height - spriteBounds.y * mapMatrix.d;\r\n }\r\n\r\n shader.uniforms.mapMatrix = mapMatrix.toArray(true);\r\n }\r\n\r\n this._renderInner(sprite, shader);\r\n }\r\n\r\n _renderInner(sprite: Sprite, shader: PictureShader) {\r\n const renderer = this.renderer;\r\n if (shader.tilingMode > 0) {\r\n this._renderWithShader(sprite as TilingSprite, shader.tilingMode === 1, shader);\r\n } else {\r\n this._renderSprite(sprite, shader);\r\n }\r\n }\r\n\r\n _renderWithShader(ts: TilingSprite, isSimple: boolean, shader: PictureShader) {\r\n const quad = shader.tempQuad;\r\n const renderer = this.renderer;\r\n renderer.bindVao(quad.vao);\r\n let vertices = quad.vertices;\r\n\r\n const _width: number = (ts as any)._width;\r\n const _height: number = (ts as any)._height;\r\n const _anchorX: number = (ts as any)._anchor._x;\r\n const _anchorY: number = (ts as any)._anchor._y;\r\n\r\n const w0 = _width * (1 - _anchorX);\r\n const w1 = _width * -_anchorX;\r\n\r\n const h0 = _height * (1 - _anchorY);\r\n const h1 = _height * -_anchorY;\r\n\r\n const wt = ts.transform.worldTransform;\r\n\r\n const a = wt.a;\r\n const b = wt.b;\r\n const c = wt.c;\r\n const d = wt.d;\r\n const tx = wt.tx;\r\n const ty = wt.ty;\r\n\r\n vertices[0] = (a * w1) + (c * h1) + tx;\r\n vertices[1] = (d * h1) + (b * w1) + ty;\r\n\r\n vertices[2] = (a * w0) + (c * h1) + tx;\r\n vertices[3] = (d * h1) + (b * w0) + ty;\r\n\r\n vertices[4] = (a * w0) + (c * h0) + tx;\r\n vertices[5] = (d * h0) + (b * w0) + ty;\r\n\r\n vertices[6] = (a * w1) + (c * h0) + tx;\r\n vertices[7] = (d * h0) + (b * w1) + ty;\r\n\r\n vertices = quad.uvs;\r\n\r\n vertices[0] = vertices[6] = -ts.anchor.x;\r\n vertices[1] = vertices[3] = -ts.anchor.y;\r\n\r\n vertices[2] = vertices[4] = 1.0 - ts.anchor.x;\r\n vertices[5] = vertices[7] = 1.0 - ts.anchor.y;\r\n\r\n quad.upload();\r\n\r\n const tex = (ts as any)._texture;\r\n const lt = ts.tileTransform.localTransform;\r\n const uv = ts.uvTransform;\r\n const mapCoord : Matrix = (uv as any).mapCoord;\r\n const uClampFrame : Float32Array = (uv as any).uClampFrame;\r\n const uClampOffset : Float32Array = (uv as any).uClampOffset;\r\n\r\n const w = tex.width;\r\n const h = tex.height;\r\n const W = _width;\r\n const H = _height;\r\n\r\n const tempMat = this._tempMatrix2;\r\n\r\n tempMat.set(lt.a * w / W,\r\n lt.b * w / H,\r\n lt.c * h / W,\r\n lt.d * h / H,\r\n lt.tx / W,\r\n lt.ty / H);\r\n\r\n // that part is the same as above:\r\n // tempMat.identity();\r\n // tempMat.scale(tex.width, tex.height);\r\n // tempMat.prepend(lt);\r\n // tempMat.scale(1.0 / ts._width, 1.0 / ts._height);\r\n\r\n tempMat.invert();\r\n if (isSimple) {\r\n tempMat.append(mapCoord);\r\n }\r\n else {\r\n shader.uniforms.uMapCoord = mapCoord.toArray(true);\r\n shader.uniforms.uClampFrame = uClampFrame;\r\n shader.uniforms.uClampOffset = uClampOffset;\r\n }\r\n shader.uniforms.uTransform = tempMat.toArray(true);\r\n\r\n const color = this._tempColor;\r\n const alpha = ts.worldAlpha;\r\n\r\n PIXI.utils.hex2rgb(ts.tint, color as any);\r\n color[0] *= alpha;\r\n color[1] *= alpha;\r\n color[2] *= alpha;\r\n color[3] = alpha;\r\n shader.uniforms.uColor = color;\r\n\r\n renderer.bindTexture(tex, 0, true);\r\n quad.vao.draw(this.renderer.gl.TRIANGLES, 6, 0);\r\n }\r\n\r\n _renderSprite(sprite: Sprite, shader: PictureShader) {\r\n const renderer = this.renderer;\r\n const quad = shader.tempQuad;\r\n renderer.bindVao(quad.vao);\r\n const uvs : TextureUvs = (sprite.texture as any)._uvs;\r\n\r\n //sprite already has calculated the vertices. lets transfer them to quad\r\n\r\n const vertices = quad.vertices;\r\n const vd : Float32Array = sprite.vertexData;\r\n for (let i = 0; i < 8; i++) {\r\n quad.vertices[i] = vd[i];\r\n }\r\n\r\n //SpriteRenderer works differently, with uint32 UVS\r\n //but for our demo float uvs are just fine\r\n quad.uvs[0] = uvs.x0;\r\n quad.uvs[1] = uvs.y0;\r\n quad.uvs[2] = uvs.x1;\r\n quad.uvs[3] = uvs.y1;\r\n quad.uvs[4] = uvs.x2;\r\n quad.uvs[5] = uvs.y2;\r\n quad.uvs[6] = uvs.x3;\r\n quad.uvs[7] = uvs.y3;\r\n\r\n //TODO: add baricentric coords here\r\n quad.upload();\r\n\r\n const frame = sprite.texture.frame;\r\n const base = sprite.texture.baseTexture;\r\n const clamp = this._tempClamp;\r\n //clamping 0.5 pixel from each side to reduce border artifact\r\n //this is our plugin main purpose\r\n const eps = 0.5 / base.resolution;\r\n clamp[0] = (frame.x + eps) / base.width;\r\n clamp[1] = (frame.y + eps) / base.height;\r\n clamp[2] = (frame.x + frame.width - eps) / base.width;\r\n clamp[3] = (frame.y + frame.height - eps) / base.height;\r\n //take a notice that size in pixels is realWidth,realHeight\r\n //width and height are divided by resolution\r\n shader.uniforms.uTextureClamp = clamp;\r\n\r\n const color = this._tempColor;\r\n PIXI.utils.hex2rgb(sprite.tint, color as any);\r\n const alpha = sprite.worldAlpha;\r\n //premultiplied alpha tint\r\n //of course we could do that in shader too\r\n color[0] *= alpha;\r\n color[1] *= alpha;\r\n color[2] *= alpha;\r\n color[3] = alpha;\r\n shader.uniforms.uColor = color;\r\n\r\n //bind texture to unit 0, our default sampler unit\r\n renderer.bindTexture(base, 0, true);\r\n quad.vao.draw(this.renderer.gl.TRIANGLES, 6, 0);\r\n }\r\n\r\n _isSimpleSprite(ts: Sprite): boolean {\r\n const renderer = this.renderer;\r\n const tex : Texture = (ts as any)._texture;\r\n const baseTex = tex.baseTexture;\r\n let isSimple = (baseTex as any).isPowerOfTwo && tex.frame.width === baseTex.width && tex.frame.height === baseTex.height;\r\n\r\n // auto, force repeat wrapMode for big tiling textures\r\n if (isSimple) {\r\n if (!(baseTex as any)._glTextures[renderer.CONTEXT_UID]) {\r\n if (baseTex.wrapMode === WRAP_MODES.CLAMP) {\r\n baseTex.wrapMode = WRAP_MODES.REPEAT;\r\n }\r\n }\r\n else {\r\n isSimple = baseTex.wrapMode !== WRAP_MODES.CLAMP;\r\n }\r\n }\r\n\r\n return isSimple;\r\n }\r\n }\r\n\r\n PIXI.WebGLRenderer.registerPlugin('picture', PictureRenderer);\r\n PIXI.CanvasRenderer.registerPlugin('picture', PIXI.CanvasSpriteRenderer as any);\r\n}\r\n","namespace pixi_picture {\r\n const softLightFrag = `\r\nvarying vec2 vTextureCoord;\r\nvarying vec2 vMapCoord;\r\nvarying vec4 vColor;\r\n \r\nuniform sampler2D uSampler[2];\r\nuniform vec4 uColor;\r\n%SPRITE_UNIFORMS%\r\n\r\nvoid main(void)\r\n{\r\n %SPRITE_CODE%\r\n vec4 source = texture2D(uSampler[0], textureCoord) * uColor;\r\n vec4 target = texture2D(uSampler[1], vMapCoord);\r\n\r\n if (source.a == 0.0) {\r\n gl_FragColor = vec4(0, 0, 0, 0);\r\n return;\r\n }\r\n vec3 Cb = source.rgb/source.a, Cs;\r\n if (target.a > 0.0) {\r\n Cs = target.rgb / target.a;\r\n }\r\n \r\n vec3 first = Cb - (1.0 - 2.0 * Cs) * Cb * (1.0 - Cb);\r\n\r\n vec3 B;\r\n vec3 D;\r\n if (Cs.r <= 0.5)\r\n {\r\n B.r = first.r;\r\n }\r\n else\r\n {\r\n if (Cb.r <= 0.25)\r\n {\r\n D.r = ((16.0 * Cb.r - 12.0) * Cb.r + 4.0) * Cb.r; \r\n }\r\n else\r\n {\r\n D.r = sqrt(Cb.r);\r\n }\r\n B.r = Cb.r + (2.0 * Cs.r - 1.0) * (D.r - Cb.r);\r\n }\r\n if (Cs.g <= 0.5)\r\n {\r\n B.g = first.g;\r\n }\r\n else\r\n {\r\n if (Cb.g <= 0.25)\r\n {\r\n D.g = ((16.0 * Cb.g - 12.0) * Cb.g + 4.0) * Cb.g; \r\n }\r\n else\r\n {\r\n D.g = sqrt(Cb.g);\r\n }\r\n B.g = Cb.g + (2.0 * Cs.g - 1.0) * (D.g - Cb.g);\r\n }\r\n if (Cs.b <= 0.5)\r\n {\r\n B.b = first.b;\r\n }\r\n else\r\n {\r\n if (Cb.b <= 0.25)\r\n {\r\n D.b = ((16.0 * Cb.b - 12.0) * Cb.b + 4.0) * Cb.b; \r\n }\r\n else\r\n {\r\n D.b = sqrt(Cb.b);\r\n }\r\n B.b = Cb.b + (2.0 * Cs.b - 1.0) * (D.b - Cb.b);\r\n } \r\n\r\n vec4 res;\r\n\r\n res.xyz = (1.0 - source.a) * Cs + source.a * B;\r\n res.a = source.a + target.a * (1.0-source.a);\r\n gl_FragColor = vec4(res.xyz * res.a, res.a);\r\n}\r\n`;\r\n\r\n /**\r\n * @class\r\n * @extends PIXI.Shader\r\n * @memberof PIXI.extras\r\n * @param gl {PIXI.Shader} The WebGL shader manager this shader works for.\r\n * @param tilingMode {number} 0 for default, 1 for simple tiling, 2 for tiling\r\n */\r\n export class SoftLightShader extends PictureShader {\r\n constructor(gl: WebGLRenderingContext, tilingMode: number) {\r\n super(gl, PictureShader.blendVert, softLightFrag, tilingMode);\r\n }\r\n }\r\n}\r\n","namespace pixi_picture {\r\n export class Sprite extends PIXI.Sprite {\r\n constructor(texture: PIXI.Texture) {\r\n super(texture);\r\n this.pluginName = 'picture'\r\n }\r\n }\r\n}\r\n","namespace pixi_picture {\r\n export class TilingSprite extends PIXI.extras.TilingSprite {\r\n constructor(texture: PIXI.Texture) {\r\n super(texture);\r\n this.pluginName = 'picture'\r\n }\r\n }\r\n}\r\n","/// \r\nnamespace pixi_picture {\r\n\t(PIXI as any).picture = pixi_picture;\r\n}\r\n"]}