gl-react-blur 2.0.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ The MIT License (MIT)
2
+ Copyright (c) 2016 - 2017 <renaudeau.gaetan@gmail.com>
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ this software and associated documentation files (the "Software"), to deal in
6
+ the Software without restriction, including without limitation the rights to
7
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
8
+ of the Software, and to permit persons to whom the Software is furnished to do
9
+ so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -1,65 +1,22 @@
1
- # gl-react-blur ![](https://img.shields.io/npm/v/gl-react-blur.svg) ![](https://img.shields.io/badge/gl--react-3-05F561.svg) ![](https://img.shields.io/badge/gl--react-dom%20%7C%20native-f90.svg)
1
+ # gl-react-blur
2
2
 
3
- [Universal](https://projectseptemberinc.gitbooks.io/gl-react/content/docs/universal.html) gl-react **multi-pass gaussian Blur effect** with configurable intensity.
3
+ Universal [gl-react](https://github.com/gre/gl-react) multi-pass gaussian Blur effect with configurable intensity, also supporting variable blur with a map.
4
4
 
5
- ## `{Blur}` Props
6
-
7
- * `children` **(required)**: the content to blur.
8
- * `factor` **(required)**: positive number that control the blur intensity (independently from the viewport size).
9
- * `passes`: integer that controls the number of linear Blur passes. Default to 2. You better you an even number.
10
-
11
- More advanced...
12
-
13
- * `directionForPass`: function that gives the linear blur direction for a given pass. `(p, factor, total) => [ dx, dy ]`. Default to a function that do a _{ horizontal, vertical, diagonal 1, diagonal 2 }_ rotation with varying intensity.
14
-
15
- ## `{BlurV}` Props
16
-
17
- **BlurV** is a variant of **Blur** that allows to make **Variable** blur effect.
18
-
19
- It accepts one more prop:
20
-
21
- * `map` **(required)**: a texture that localize the blur intensity.
22
-
23
- ## Usage Examples
24
-
25
- ```js
26
- var Blur = require("gl-react-blur").Blur;
27
- // or
5
+ ```jsx
6
+ import { Surface } from "gl-react-dom"; // or gl-react-expo / gl-react-native / gl-react-headless
28
7
  import { Blur } from "gl-react-blur";
29
- ```
30
-
31
- ### Small blur on an image
32
-
33
- ```html
34
- <Blur factor={0.5} passes={2}>
35
- http://i.imgur.com/zJIxPEo.jpg
36
- </Blur>
37
- ```
38
8
 
39
- ### Medium blur on a video
40
-
41
- ```html
42
- <Blur factor={2} passes={4}>
43
- <video ... />
44
- </Blur>
9
+ <Surface width={400} height={300}>
10
+ <Blur factor={4} passes={4}>
11
+ {"https://i.imgur.com/iPKTONG.jpg"}
12
+ </Blur>
13
+ </Surface>;
45
14
  ```
46
15
 
47
- ### Powerful blur on another stack of effects
48
-
49
- ```html
50
- <Blur factor={20} passes={6}>
51
- <EffectA>
52
- <EffectB>
53
- ...
54
- </EffectB>
55
- </EffectA>
56
- </Blur>
57
- ```
16
+ ## Components
58
17
 
59
- ### Variable Blur
18
+ - **`<Blur factor passes? directionForPass?>`** — multi-pass gaussian blur. `factor` is the blur intensity in pixels; `passes` (default 2) trades performance for quality; `directionForPass(pass, factor, total)` can customize the direction vector of each pass (defaults to cycling horizontal, vertical and the two diagonals with increasing radius).
19
+ - **`<BlurV map ...>`** — same as `Blur` but the blur intensity varies per-pixel, scaled by the red/green channels of the `map` texture (e.g. for tilt-shift or depth-of-field effects).
20
+ - **`<Blur1D direction>`** / **`<BlurV1D direction map>`** — a single blur pass in one direction, the building blocks of the above.
60
21
 
61
- ```html
62
- <BlurV factor={3} passes={6} map="http://i.imgur.com/SzbbUvX.png">
63
- ...
64
- </BlurV>
65
- ```
22
+ The content to blur is given as `children` and can be any gl-react texture input (image URL, video, canvas, another Node, ...). All components accept optional `width`/`height` and otherwise inherit the size from their parent (via `connectSize`).
package/lib/Blur.d.ts ADDED
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ import { DirectionForPass } from "./directionForPassDefault";
3
+ export type BlurProps = {
4
+ /** the content to blur: any gl-react texture input */
5
+ children: any;
6
+ /** blur intensity, in pixels */
7
+ factor: number;
8
+ /** number of Blur1D passes to run (default 2: horizontal + vertical) */
9
+ passes?: number;
10
+ /** direction vector of a given pass; defaults to cycling H, V and diagonals */
11
+ directionForPass?: DirectionForPass;
12
+ width?: number;
13
+ height?: number;
14
+ };
15
+ declare const Blur: React.ComponentType<BlurProps>;
16
+ export default Blur;
17
+ //# sourceMappingURL=Blur.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Blur.d.ts","sourceRoot":"","sources":["../src/Blur.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAgC,EAC9B,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,SAAS,GAAG;IACtB,sDAAsD;IACtD,QAAQ,EAAE,GAAG,CAAC;IACd,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,QAAA,MAAM,IAAI,EAiBM,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAE/C,eAAe,IAAI,CAAC"}
package/lib/Blur.js CHANGED
@@ -3,63 +3,23 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
- var _react = require("react");
8
-
9
- var _react2 = _interopRequireDefault(_react);
10
-
11
- var _propTypes = require("prop-types");
12
-
13
- var _propTypes2 = _interopRequireDefault(_propTypes);
14
-
15
- var _Blur1D = require("./Blur1D");
16
-
17
- var _Blur1D2 = _interopRequireDefault(_Blur1D);
18
-
19
- var _directionForPassDefault = require("./directionForPassDefault");
20
-
21
- var _directionForPassDefault2 = _interopRequireDefault(_directionForPassDefault);
22
-
23
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
-
25
- var Blur = function Blur(_ref) {
26
- var width = _ref.width,
27
- height = _ref.height,
28
- pixelRatio = _ref.pixelRatio,
29
- factor = _ref.factor,
30
- children = _ref.children,
31
- passes = _ref.passes,
32
- directionForPass = _ref.directionForPass;
33
-
34
- var rec = function rec(pass) {
35
- return pass <= 0 ? children : _react2.default.createElement(
36
- _Blur1D2.default,
37
- {
38
- width: width,
39
- height: height,
40
- pixelRatio: pixelRatio,
41
- direction: directionForPass(pass, factor, passes)
42
- },
43
- rec(pass - 1)
44
- );
45
- };
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _glReact = require("gl-react");
9
+ var _Blur1D = _interopRequireDefault(require("./Blur1D"));
10
+ var _directionForPassDefault = _interopRequireDefault(require("./directionForPassDefault"));
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ // Recursively nests Blur1D passes for multi-directional gaussian blur
13
+ const Blur = (0, _glReact.connectSize)(({
14
+ children,
15
+ factor,
16
+ passes = 2,
17
+ directionForPass = _directionForPassDefault.default
18
+ }) => {
19
+ const rec = pass => pass <= 0 ? children : /*#__PURE__*/_react.default.createElement(_Blur1D.default, {
20
+ direction: directionForPass(pass, factor, passes)
21
+ }, rec(pass - 1));
46
22
  return rec(passes);
47
- };
48
-
49
- Blur.defaultProps = {
50
- passes: 2,
51
- directionForPass: _directionForPassDefault2.default
52
- };
53
-
54
- Blur.propTypes = {
55
- factor: _propTypes2.default.number.isRequired,
56
- children: _propTypes2.default.any.isRequired,
57
- passes: _propTypes2.default.number,
58
- directionForPass: _propTypes2.default.func,
59
- width: _propTypes2.default.any,
60
- height: _propTypes2.default.any,
61
- pixelRatio: _propTypes2.default.number
62
- };
63
-
64
- exports.default = Blur;
23
+ });
24
+ var _default = exports.default = Blur;
65
25
  //# sourceMappingURL=Blur.js.map
package/lib/Blur.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Blur.js"],"names":["Blur","width","height","pixelRatio","factor","children","passes","directionForPass","rec","pass","defaultProps","propTypes","number","isRequired","any","func"],"mappings":";;;;;;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,IAAMA,OAAO,SAAPA,IAAO,OAQP;AAAA,MAPJC,KAOI,QAPJA,KAOI;AAAA,MANJC,MAMI,QANJA,MAMI;AAAA,MALJC,UAKI,QALJA,UAKI;AAAA,MAJJC,MAII,QAJJA,MAII;AAAA,MAHJC,QAGI,QAHJA,QAGI;AAAA,MAFJC,MAEI,QAFJA,MAEI;AAAA,MADJC,gBACI,QADJA,gBACI;;AACJ,MAAMC,MAAM,SAANA,GAAM;AAAA,WACVC,QAAQ,CAAR,GACEJ,QADF,GAGE;AAAA;AAAA;AACE,eAAOJ,KADT;AAEE,gBAAQC,MAFV;AAGE,oBAAYC,UAHd;AAIE,mBAAWI,iBAAiBE,IAAjB,EAAuBL,MAAvB,EAA+BE,MAA/B;AAJb;AAMGE,UAAIC,OAAO,CAAX;AANH,KAJQ;AAAA,GAAZ;AAaA,SAAOD,IAAIF,MAAJ,CAAP;AACD,CAvBD;;AAyBAN,KAAKU,YAAL,GAAoB;AAClBJ,UAAQ,CADU;AAElBC;AAFkB,CAApB;;AAKAP,KAAKW,SAAL,GAAiB;AACfP,UAAQ,oBAAUQ,MAAV,CAAiBC,UADV;AAEfR,YAAU,oBAAUS,GAAV,CAAcD,UAFT;AAGfP,UAAQ,oBAAUM,MAHH;AAIfL,oBAAkB,oBAAUQ,IAJb;AAKfd,SAAO,oBAAUa,GALF;AAMfZ,UAAQ,oBAAUY,GANH;AAOfX,cAAY,oBAAUS;AAPP,CAAjB;;kBAUeZ,I","file":"Blur.js","sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport Blur1D from \"./Blur1D\";\nimport directionForPassDefault from \"./directionForPassDefault\";\n\nconst Blur = ({\n width,\n height,\n pixelRatio,\n factor,\n children,\n passes,\n directionForPass\n}) => {\n const rec = pass =>\n pass <= 0 ? (\n children\n ) : (\n <Blur1D\n width={width}\n height={height}\n pixelRatio={pixelRatio}\n direction={directionForPass(pass, factor, passes)}\n >\n {rec(pass - 1)}\n </Blur1D>\n );\n return rec(passes);\n};\n\nBlur.defaultProps = {\n passes: 2,\n directionForPass: directionForPassDefault\n};\n\nBlur.propTypes = {\n factor: PropTypes.number.isRequired,\n children: PropTypes.any.isRequired,\n passes: PropTypes.number,\n directionForPass: PropTypes.func,\n width: PropTypes.any,\n height: PropTypes.any,\n pixelRatio: PropTypes.number\n};\n\nexport default Blur;\n"]}
1
+ {"version":3,"file":"Blur.js","names":["_react","_interopRequireDefault","require","_glReact","_Blur1D","_directionForPassDefault","e","__esModule","default","Blur","connectSize","children","factor","passes","directionForPass","directionForPassDefault","rec","pass","createElement","direction","_default","exports"],"sources":["../src/Blur.tsx"],"sourcesContent":["import React from \"react\";\nimport { connectSize } from \"gl-react\";\nimport Blur1D from \"./Blur1D\";\nimport directionForPassDefault, {\n DirectionForPass,\n} from \"./directionForPassDefault\";\n\nexport type BlurProps = {\n /** the content to blur: any gl-react texture input */\n children: any;\n /** blur intensity, in pixels */\n factor: number;\n /** number of Blur1D passes to run (default 2: horizontal + vertical) */\n passes?: number;\n /** direction vector of a given pass; defaults to cycling H, V and diagonals */\n directionForPass?: DirectionForPass;\n width?: number;\n height?: number;\n};\n\n// Recursively nests Blur1D passes for multi-directional gaussian blur\nconst Blur = connectSize(\n ({\n children,\n factor,\n passes = 2,\n directionForPass = directionForPassDefault,\n }: any) => {\n const rec = (pass: number): any =>\n pass <= 0 ? (\n children\n ) : (\n <Blur1D direction={directionForPass(pass, factor, passes)}>\n {rec(pass - 1)}\n </Blur1D>\n );\n return rec(passes);\n }\n) as unknown as React.ComponentType<BlurProps>;\n\nexport default Blur;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,wBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEmC,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAenC;AACA,MAAMG,IAAI,GAAG,IAAAC,oBAAW,EACtB,CAAC;EACCC,QAAQ;EACRC,MAAM;EACNC,MAAM,GAAG,CAAC;EACVC,gBAAgB,GAAGC;AAChB,CAAC,KAAK;EACT,MAAMC,GAAG,GAAIC,IAAY,IACvBA,IAAI,IAAI,CAAC,GACPN,QAAQ,gBAERX,MAAA,CAAAQ,OAAA,CAAAU,aAAA,CAACd,OAAA,CAAAI,OAAM;IAACW,SAAS,EAAEL,gBAAgB,CAACG,IAAI,EAAEL,MAAM,EAAEC,MAAM;EAAE,GACvDG,GAAG,CAACC,IAAI,GAAG,CAAC,CACP,CACT;EACH,OAAOD,GAAG,CAACH,MAAM,CAAC;AACpB,CACF,CAA8C;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAb,OAAA,GAEhCC,IAAI","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ export type Blur1DProps = {
3
+ /** the content to blur: any gl-react texture input */
4
+ children: any;
5
+ /** blur direction & distance vector, in pixels */
6
+ direction: [number, number];
7
+ width?: number;
8
+ height?: number;
9
+ };
10
+ declare const Blur1D: React.ComponentType<Blur1DProps>;
11
+ export default Blur1D;
12
+ //# sourceMappingURL=Blur1D.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Blur1D.d.ts","sourceRoot":"","sources":["../src/Blur1D.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA4B1B,MAAM,MAAM,WAAW,GAAG;IACxB,sDAAsD;IACtD,QAAQ,EAAE,GAAG,CAAC;IACd,kDAAkD;IAClD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,QAAA,MAAM,MAAM,EAOI,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AAEjD,eAAe,MAAM,CAAC"}
package/lib/Blur1D.js CHANGED
@@ -3,49 +3,47 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
7
8
  var _glReact = require("gl-react");
8
-
9
- var _react = require("react");
10
-
11
- var _react2 = _interopRequireDefault(_react);
12
-
13
- var _propTypes = require("prop-types");
14
-
15
- var _propTypes2 = _interopRequireDefault(_propTypes);
16
-
17
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
-
19
- var shaders = _glReact.Shaders.create({
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const shaders = _glReact.Shaders.create({
20
11
  blur1D: {
21
12
  // blur9: from https://github.com/Jam3/glsl-fast-gaussian-blur
22
- frag: "precision highp float;\nvarying vec2 uv;\nuniform sampler2D t;\nuniform vec2 direction, resolution;\n\nvec4 blur9(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) {\n vec4 color = vec4(0.0);\n vec2 off1 = vec2(1.3846153846) * direction;\n vec2 off2 = vec2(3.2307692308) * direction;\n color += texture2D(image, uv) * 0.2270270270;\n color += texture2D(image, uv + (off1 / resolution)) * 0.3162162162;\n color += texture2D(image, uv - (off1 / resolution)) * 0.3162162162;\n color += texture2D(image, uv + (off2 / resolution)) * 0.0702702703;\n color += texture2D(image, uv - (off2 / resolution)) * 0.0702702703;\n return color;\n}\n\nvoid main () {\n gl_FragColor = blur9(t, uv, resolution, direction);\n}"
13
+ frag: (0, _glReact.GLSL)`
14
+ precision highp float;
15
+ varying vec2 uv;
16
+ uniform sampler2D t;
17
+ uniform vec2 direction, resolution;
18
+ vec4 blur9(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) {
19
+ vec4 color = vec4(0.0);
20
+ vec2 off1 = vec2(1.3846153846) * direction;
21
+ vec2 off2 = vec2(3.2307692308) * direction;
22
+ color += texture2D(image, uv) * 0.2270270270;
23
+ color += texture2D(image, uv + (off1 / resolution)) * 0.3162162162;
24
+ color += texture2D(image, uv - (off1 / resolution)) * 0.3162162162;
25
+ color += texture2D(image, uv + (off2 / resolution)) * 0.0702702703;
26
+ color += texture2D(image, uv - (off2 / resolution)) * 0.0702702703;
27
+ return color;
28
+ }
29
+ void main() {
30
+ gl_FragColor = blur9(t, uv, resolution, direction);
31
+ }`
23
32
  }
24
33
  });
25
-
26
- var Blur1D = function Blur1D(_ref) {
27
- var width = _ref.width,
28
- height = _ref.height,
29
- pixelRatio = _ref.pixelRatio,
30
- direction = _ref.direction,
31
- t = _ref.children;
32
- return _react2.default.createElement(GL.Node, {
33
- shader: shaders.blur1D,
34
- width: width,
35
- height: height,
36
- pixelRatio: pixelRatio,
37
- uniforms: {
38
- direction: direction,
39
- resolution: _glReact.Uniform.Resolution,
40
- t: t
41
- }
42
- });
43
- };
44
-
45
- Blur1D.propTypes = {
46
- direction: _propTypes2.default.array.isRequired,
47
- children: _propTypes2.default.any.isRequired
48
- };
49
-
50
- exports.default = Blur1D;
34
+ // connectSize injects width/height for correct texel offset calculation
35
+ const Blur1D = (0, _glReact.connectSize)(({
36
+ children: t,
37
+ direction,
38
+ width,
39
+ height
40
+ }) => /*#__PURE__*/_react.default.createElement(_glReact.Node, {
41
+ shader: shaders.blur1D,
42
+ uniforms: {
43
+ t,
44
+ resolution: [width, height],
45
+ direction
46
+ }
47
+ }));
48
+ var _default = exports.default = Blur1D;
51
49
  //# sourceMappingURL=Blur1D.js.map
package/lib/Blur1D.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Blur1D.js"],"names":["shaders","create","blur1D","frag","Blur1D","width","height","pixelRatio","direction","t","children","resolution","Resolution","propTypes","array","isRequired","any"],"mappings":";;;;;;AAAA;;AACA;;;;AACA;;;;;;AAEA,IAAMA,UAAU,iBAAQC,MAAR,CAAe;AAC7BC,UAAQ;AACN;AACAC;AAFM;AADqB,CAAf,CAAhB;;AA0BA,IAAMC,SAAS,SAATA,MAAS;AAAA,MAAGC,KAAH,QAAGA,KAAH;AAAA,MAAUC,MAAV,QAAUA,MAAV;AAAA,MAAkBC,UAAlB,QAAkBA,UAAlB;AAAA,MAA8BC,SAA9B,QAA8BA,SAA9B;AAAA,MAAmDC,CAAnD,QAAyCC,QAAzC;AAAA,SACb,8BAAC,EAAD,CAAI,IAAJ;AACE,YAAQV,QAAQE,MADlB;AAEE,WAAOG,KAFT;AAGE,YAAQC,MAHV;AAIE,gBAAYC,UAJd;AAKE,cAAU;AACRC,0BADQ;AAERG,kBAAY,iBAAQC,UAFZ;AAGRH;AAHQ;AALZ,IADa;AAAA,CAAf;;AAcAL,OAAOS,SAAP,GAAmB;AACjBL,aAAW,oBAAUM,KAAV,CAAgBC,UADV;AAEjBL,YAAU,oBAAUM,GAAV,CAAcD;AAFP,CAAnB;;kBAKeX,M","file":"Blur1D.js","sourcesContent":["import { Shaders, Uniform } from \"gl-react\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nconst shaders = Shaders.create({\n blur1D: {\n // blur9: from https://github.com/Jam3/glsl-fast-gaussian-blur\n frag: `precision highp float;\nvarying vec2 uv;\nuniform sampler2D t;\nuniform vec2 direction, resolution;\n\nvec4 blur9(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) {\n vec4 color = vec4(0.0);\n vec2 off1 = vec2(1.3846153846) * direction;\n vec2 off2 = vec2(3.2307692308) * direction;\n color += texture2D(image, uv) * 0.2270270270;\n color += texture2D(image, uv + (off1 / resolution)) * 0.3162162162;\n color += texture2D(image, uv - (off1 / resolution)) * 0.3162162162;\n color += texture2D(image, uv + (off2 / resolution)) * 0.0702702703;\n color += texture2D(image, uv - (off2 / resolution)) * 0.0702702703;\n return color;\n}\n\nvoid main () {\n gl_FragColor = blur9(t, uv, resolution, direction);\n}`\n }\n});\n\nconst Blur1D = ({ width, height, pixelRatio, direction, children: t }) => (\n <GL.Node\n shader={shaders.blur1D}\n width={width}\n height={height}\n pixelRatio={pixelRatio}\n uniforms={{\n direction,\n resolution: Uniform.Resolution,\n t\n }}\n />\n);\n\nBlur1D.propTypes = {\n direction: PropTypes.array.isRequired,\n children: PropTypes.any.isRequired\n};\n\nexport default Blur1D;\n"]}
1
+ {"version":3,"file":"Blur1D.js","names":["_react","_interopRequireDefault","require","_glReact","e","__esModule","default","shaders","Shaders","create","blur1D","frag","GLSL","Blur1D","connectSize","children","t","direction","width","height","createElement","Node","shader","uniforms","resolution","_default","exports"],"sources":["../src/Blur1D.tsx"],"sourcesContent":["import React from \"react\";\nimport { Shaders, Node, GLSL, connectSize } from \"gl-react\";\n\nconst shaders = Shaders.create({\n blur1D: {\n // blur9: from https://github.com/Jam3/glsl-fast-gaussian-blur\n frag: GLSL`\nprecision highp float;\nvarying vec2 uv;\nuniform sampler2D t;\nuniform vec2 direction, resolution;\nvec4 blur9(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) {\n vec4 color = vec4(0.0);\n vec2 off1 = vec2(1.3846153846) * direction;\n vec2 off2 = vec2(3.2307692308) * direction;\n color += texture2D(image, uv) * 0.2270270270;\n color += texture2D(image, uv + (off1 / resolution)) * 0.3162162162;\n color += texture2D(image, uv - (off1 / resolution)) * 0.3162162162;\n color += texture2D(image, uv + (off2 / resolution)) * 0.0702702703;\n color += texture2D(image, uv - (off2 / resolution)) * 0.0702702703;\n return color;\n}\nvoid main() {\n gl_FragColor = blur9(t, uv, resolution, direction);\n}`,\n },\n});\n\nexport type Blur1DProps = {\n /** the content to blur: any gl-react texture input */\n children: any;\n /** blur direction & distance vector, in pixels */\n direction: [number, number];\n width?: number;\n height?: number;\n};\n\n// connectSize injects width/height for correct texel offset calculation\nconst Blur1D = connectSize(\n ({ children: t, direction, width, height }: any) => (\n <Node\n shader={shaders.blur1D}\n uniforms={{ t, resolution: [width, height], direction }}\n />\n )\n) as unknown as React.ComponentType<Blur1DProps>;\n\nexport default Blur1D;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAA4D,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE5D,MAAMG,OAAO,GAAGC,gBAAO,CAACC,MAAM,CAAC;EAC7BC,MAAM,EAAE;IACN;IACAC,IAAI,EAAE,IAAAC,aAAI;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE;AACF,CAAC,CAAC;AAWF;AACA,MAAMC,MAAM,GAAG,IAAAC,oBAAW,EACxB,CAAC;EAAEC,QAAQ,EAAEC,CAAC;EAAEC,SAAS;EAAEC,KAAK;EAAEC;AAAY,CAAC,kBAC7CnB,MAAA,CAAAM,OAAA,CAAAc,aAAA,CAACjB,QAAA,CAAAkB,IAAI;EACHC,MAAM,EAAEf,OAAO,CAACG,MAAO;EACvBa,QAAQ,EAAE;IAAEP,CAAC;IAAEQ,UAAU,EAAE,CAACN,KAAK,EAAEC,MAAM,CAAC;IAAEF;EAAU;AAAE,CACzD,CAEL,CAAgD;AAAC,IAAAQ,QAAA,GAAAC,OAAA,CAAApB,OAAA,GAElCO,MAAM","ignoreList":[]}
package/lib/BlurV.d.ts ADDED
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ import { DirectionForPass } from "./directionForPassDefault";
3
+ export type BlurVProps = {
4
+ /** the content to blur: any gl-react texture input */
5
+ children: any;
6
+ /** blur intensity, in pixels */
7
+ factor: number;
8
+ /** a texture whose red/green channels scale the blur per-pixel */
9
+ map: any;
10
+ /** number of BlurV1D passes to run (default 2: horizontal + vertical) */
11
+ passes?: number;
12
+ /** direction vector of a given pass; defaults to cycling H, V and diagonals */
13
+ directionForPass?: DirectionForPass;
14
+ width?: number;
15
+ height?: number;
16
+ };
17
+ declare const BlurV: React.ComponentType<BlurVProps>;
18
+ export default BlurV;
19
+ //# sourceMappingURL=BlurV.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlurV.d.ts","sourceRoot":"","sources":["../src/BlurV.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAgC,EAC9B,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,UAAU,GAAG;IACvB,sDAAsD;IACtD,QAAQ,EAAE,GAAG,CAAC;IACd,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,GAAG,EAAE,GAAG,CAAC;IACT,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,QAAA,MAAM,KAAK,EAkBK,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAEhD,eAAe,KAAK,CAAC"}
package/lib/BlurV.js CHANGED
@@ -3,66 +3,25 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
- var _react = require("react");
8
-
9
- var _react2 = _interopRequireDefault(_react);
10
-
11
- var _propTypes = require("prop-types");
12
-
13
- var _propTypes2 = _interopRequireDefault(_propTypes);
14
-
15
- var _BlurV1D = require("./BlurV1D");
16
-
17
- var _BlurV1D2 = _interopRequireDefault(_BlurV1D);
18
-
19
- var _directionForPassDefault = require("./directionForPassDefault");
20
-
21
- var _directionForPassDefault2 = _interopRequireDefault(_directionForPassDefault);
22
-
23
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
-
25
- var BlurV = function BlurV(_ref) {
26
- var width = _ref.width,
27
- height = _ref.height,
28
- map = _ref.map,
29
- pixelRatio = _ref.pixelRatio,
30
- factor = _ref.factor,
31
- children = _ref.children,
32
- passes = _ref.passes,
33
- directionForPass = _ref.directionForPass;
34
-
35
- var rec = function rec(pass) {
36
- return pass <= 0 ? children : _react2.default.createElement(
37
- _BlurV1D2.default,
38
- {
39
- width: width,
40
- height: height,
41
- map: map,
42
- pixelRatio: pixelRatio,
43
- direction: directionForPass(pass, factor, passes)
44
- },
45
- rec(pass - 1)
46
- );
47
- };
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _glReact = require("gl-react");
9
+ var _BlurV1D = _interopRequireDefault(require("./BlurV1D"));
10
+ var _directionForPassDefault = _interopRequireDefault(require("./directionForPassDefault"));
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ // Recursively nests BlurV1D passes for variable multi-directional blur
13
+ const BlurV = (0, _glReact.connectSize)(({
14
+ children,
15
+ factor,
16
+ map,
17
+ passes = 2,
18
+ directionForPass = _directionForPassDefault.default
19
+ }) => {
20
+ const rec = pass => pass <= 0 ? children : /*#__PURE__*/_react.default.createElement(_BlurV1D.default, {
21
+ map: map,
22
+ direction: directionForPass(pass, factor, passes)
23
+ }, rec(pass - 1));
48
24
  return rec(passes);
49
- };
50
-
51
- BlurV.defaultProps = {
52
- passes: 2,
53
- directionForPass: _directionForPassDefault2.default
54
- };
55
-
56
- BlurV.propTypes = {
57
- factor: _propTypes2.default.number.isRequired,
58
- children: _propTypes2.default.any.isRequired,
59
- passes: _propTypes2.default.number,
60
- directionForPass: _propTypes2.default.func,
61
- map: _propTypes2.default.any.isRequired,
62
- width: _propTypes2.default.any,
63
- height: _propTypes2.default.any,
64
- pixelRatio: _propTypes2.default.number
65
- };
66
-
67
- exports.default = BlurV;
25
+ });
26
+ var _default = exports.default = BlurV;
68
27
  //# sourceMappingURL=BlurV.js.map
package/lib/BlurV.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/BlurV.js"],"names":["BlurV","width","height","map","pixelRatio","factor","children","passes","directionForPass","rec","pass","defaultProps","propTypes","number","isRequired","any","func"],"mappings":";;;;;;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,IAAMA,QAAQ,SAARA,KAAQ,OASR;AAAA,MARJC,KAQI,QARJA,KAQI;AAAA,MAPJC,MAOI,QAPJA,MAOI;AAAA,MANJC,GAMI,QANJA,GAMI;AAAA,MALJC,UAKI,QALJA,UAKI;AAAA,MAJJC,MAII,QAJJA,MAII;AAAA,MAHJC,QAGI,QAHJA,QAGI;AAAA,MAFJC,MAEI,QAFJA,MAEI;AAAA,MADJC,gBACI,QADJA,gBACI;;AACJ,MAAMC,MAAM,SAANA,GAAM;AAAA,WACVC,QAAQ,CAAR,GACEJ,QADF,GAGE;AAAA;AAAA;AACE,eAAOL,KADT;AAEE,gBAAQC,MAFV;AAGE,aAAKC,GAHP;AAIE,oBAAYC,UAJd;AAKE,mBAAWI,iBAAiBE,IAAjB,EAAuBL,MAAvB,EAA+BE,MAA/B;AALb;AAOGE,UAAIC,OAAO,CAAX;AAPH,KAJQ;AAAA,GAAZ;AAcA,SAAOD,IAAIF,MAAJ,CAAP;AACD,CAzBD;;AA2BAP,MAAMW,YAAN,GAAqB;AACnBJ,UAAQ,CADW;AAEnBC;AAFmB,CAArB;;AAKAR,MAAMY,SAAN,GAAkB;AAChBP,UAAQ,oBAAUQ,MAAV,CAAiBC,UADT;AAEhBR,YAAU,oBAAUS,GAAV,CAAcD,UAFR;AAGhBP,UAAQ,oBAAUM,MAHF;AAIhBL,oBAAkB,oBAAUQ,IAJZ;AAKhBb,OAAK,oBAAUY,GAAV,CAAcD,UALH;AAMhBb,SAAO,oBAAUc,GAND;AAOhBb,UAAQ,oBAAUa,GAPF;AAQhBX,cAAY,oBAAUS;AARN,CAAlB;;kBAWeb,K","file":"BlurV.js","sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport BlurV1D from \"./BlurV1D\";\nimport directionForPassDefault from \"./directionForPassDefault\";\n\nconst BlurV = ({\n width,\n height,\n map,\n pixelRatio,\n factor,\n children,\n passes,\n directionForPass\n}) => {\n const rec = pass =>\n pass <= 0 ? (\n children\n ) : (\n <BlurV1D\n width={width}\n height={height}\n map={map}\n pixelRatio={pixelRatio}\n direction={directionForPass(pass, factor, passes)}\n >\n {rec(pass - 1)}\n </BlurV1D>\n );\n return rec(passes);\n};\n\nBlurV.defaultProps = {\n passes: 2,\n directionForPass: directionForPassDefault\n};\n\nBlurV.propTypes = {\n factor: PropTypes.number.isRequired,\n children: PropTypes.any.isRequired,\n passes: PropTypes.number,\n directionForPass: PropTypes.func,\n map: PropTypes.any.isRequired,\n width: PropTypes.any,\n height: PropTypes.any,\n pixelRatio: PropTypes.number\n};\n\nexport default BlurV;\n"]}
1
+ {"version":3,"file":"BlurV.js","names":["_react","_interopRequireDefault","require","_glReact","_BlurV1D","_directionForPassDefault","e","__esModule","default","BlurV","connectSize","children","factor","map","passes","directionForPass","directionForPassDefault","rec","pass","createElement","direction","_default","exports"],"sources":["../src/BlurV.tsx"],"sourcesContent":["import React from \"react\";\nimport { connectSize } from \"gl-react\";\nimport BlurV1D from \"./BlurV1D\";\nimport directionForPassDefault, {\n DirectionForPass,\n} from \"./directionForPassDefault\";\n\nexport type BlurVProps = {\n /** the content to blur: any gl-react texture input */\n children: any;\n /** blur intensity, in pixels */\n factor: number;\n /** a texture whose red/green channels scale the blur per-pixel */\n map: any;\n /** number of BlurV1D passes to run (default 2: horizontal + vertical) */\n passes?: number;\n /** direction vector of a given pass; defaults to cycling H, V and diagonals */\n directionForPass?: DirectionForPass;\n width?: number;\n height?: number;\n};\n\n// Recursively nests BlurV1D passes for variable multi-directional blur\nconst BlurV = connectSize(\n ({\n children,\n factor,\n map,\n passes = 2,\n directionForPass = directionForPassDefault,\n }: any) => {\n const rec = (pass: number): any =>\n pass <= 0 ? (\n children\n ) : (\n <BlurV1D map={map} direction={directionForPass(pass, factor, passes)}>\n {rec(pass - 1)}\n </BlurV1D>\n );\n return rec(passes);\n }\n) as unknown as React.ComponentType<BlurVProps>;\n\nexport default BlurV;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,wBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEmC,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAiBnC;AACA,MAAMG,KAAK,GAAG,IAAAC,oBAAW,EACvB,CAAC;EACCC,QAAQ;EACRC,MAAM;EACNC,GAAG;EACHC,MAAM,GAAG,CAAC;EACVC,gBAAgB,GAAGC;AAChB,CAAC,KAAK;EACT,MAAMC,GAAG,GAAIC,IAAY,IACvBA,IAAI,IAAI,CAAC,GACPP,QAAQ,gBAERX,MAAA,CAAAQ,OAAA,CAAAW,aAAA,CAACf,QAAA,CAAAI,OAAO;IAACK,GAAG,EAAEA,GAAI;IAACO,SAAS,EAAEL,gBAAgB,CAACG,IAAI,EAAEN,MAAM,EAAEE,MAAM;EAAE,GAClEG,GAAG,CAACC,IAAI,GAAG,CAAC,CACN,CACV;EACH,OAAOD,GAAG,CAACH,MAAM,CAAC;AACpB,CACF,CAA+C;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAd,OAAA,GAEjCC,KAAK","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ export type BlurV1DProps = {
3
+ /** the content to blur: any gl-react texture input */
4
+ children: any;
5
+ /** blur direction & distance vector, in pixels */
6
+ direction: [number, number];
7
+ /** a texture whose red/green channels scale the blur per-pixel */
8
+ map: any;
9
+ width?: number;
10
+ height?: number;
11
+ };
12
+ declare const BlurV1D: React.ComponentType<BlurV1DProps>;
13
+ export default BlurV1D;
14
+ //# sourceMappingURL=BlurV1D.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlurV1D.d.ts","sourceRoot":"","sources":["../src/BlurV1D.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA6B1B,MAAM,MAAM,YAAY,GAAG;IACzB,sDAAsD;IACtD,QAAQ,EAAE,GAAG,CAAC;IACd,kDAAkD;IAClD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,kEAAkE;IAClE,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,QAAA,MAAM,OAAO,EAOG,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;AAElD,eAAe,OAAO,CAAC"}
package/lib/BlurV1D.js CHANGED
@@ -3,52 +3,49 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
7
8
  var _glReact = require("gl-react");
8
-
9
- var _react = require("react");
10
-
11
- var _react2 = _interopRequireDefault(_react);
12
-
13
- var _propTypes = require("prop-types");
14
-
15
- var _propTypes2 = _interopRequireDefault(_propTypes);
16
-
17
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
-
19
- var shaders = _glReact.Shaders.create({
20
- blur1D: {
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const shaders = _glReact.Shaders.create({
11
+ blurV1D: {
21
12
  // blur9: from https://github.com/Jam3/glsl-fast-gaussian-blur
22
- frag: "precision highp float;\nvarying vec2 uv;\nuniform sampler2D t, map;\nuniform vec2 direction, resolution;\n\nvec4 blur9(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) {\n vec4 color = vec4(0.0);\n vec2 off1 = vec2(1.3846153846) * direction;\n vec2 off2 = vec2(3.2307692308) * direction;\n color += texture2D(image, uv) * 0.2270270270;\n color += texture2D(image, uv + (off1 / resolution)) * 0.3162162162;\n color += texture2D(image, uv - (off1 / resolution)) * 0.3162162162;\n color += texture2D(image, uv + (off2 / resolution)) * 0.0702702703;\n color += texture2D(image, uv - (off2 / resolution)) * 0.0702702703;\n return color;\n}\n\nvoid main () {\n gl_FragColor = blur9(t, uv, resolution, direction * texture2D(map, uv).rg);\n}"
13
+ frag: (0, _glReact.GLSL)`
14
+ precision highp float;
15
+ varying vec2 uv;
16
+ uniform sampler2D t, map;
17
+ uniform vec2 direction, resolution;
18
+ vec4 blur9(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) {
19
+ vec4 color = vec4(0.0);
20
+ vec2 off1 = vec2(1.3846153846) * direction;
21
+ vec2 off2 = vec2(3.2307692308) * direction;
22
+ color += texture2D(image, uv) * 0.2270270270;
23
+ color += texture2D(image, uv + (off1 / resolution)) * 0.3162162162;
24
+ color += texture2D(image, uv - (off1 / resolution)) * 0.3162162162;
25
+ color += texture2D(image, uv + (off2 / resolution)) * 0.0702702703;
26
+ color += texture2D(image, uv - (off2 / resolution)) * 0.0702702703;
27
+ return color;
28
+ }
29
+ void main() {
30
+ // Direction scaled by map value makes blur strength vary per-pixel
31
+ gl_FragColor = blur9(t, uv, resolution, direction * texture2D(map, uv).rg);
32
+ }`
23
33
  }
24
34
  });
25
-
26
- var BlurV1D = function BlurV1D(_ref) {
27
- var width = _ref.width,
28
- height = _ref.height,
29
- map = _ref.map,
30
- pixelRatio = _ref.pixelRatio,
31
- direction = _ref.direction,
32
- t = _ref.children;
33
- return _react2.default.createElement(GL.Node, {
34
- shader: shaders.blur1D,
35
- width: width,
36
- height: height,
37
- pixelRatio: pixelRatio,
38
- uniforms: {
39
- direction: direction,
40
- resolution: _glReact.Uniform.Resolution,
41
- t: t,
42
- map: map
43
- }
44
- });
45
- };
46
-
47
- BlurV1D.propTypes = {
48
- direction: _propTypes2.default.array.isRequired,
49
- children: _propTypes2.default.any.isRequired,
50
- map: _propTypes2.default.any.isRequired
51
- };
52
-
53
- exports.default = BlurV1D;
35
+ const BlurV1D = (0, _glReact.connectSize)(({
36
+ children: t,
37
+ direction,
38
+ map,
39
+ width,
40
+ height
41
+ }) => /*#__PURE__*/_react.default.createElement(_glReact.Node, {
42
+ shader: shaders.blurV1D,
43
+ uniforms: {
44
+ t,
45
+ map,
46
+ resolution: [width, height],
47
+ direction
48
+ }
49
+ }));
50
+ var _default = exports.default = BlurV1D;
54
51
  //# sourceMappingURL=BlurV1D.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/BlurV1D.js"],"names":["shaders","create","blur1D","frag","BlurV1D","width","height","map","pixelRatio","direction","t","children","resolution","Resolution","propTypes","array","isRequired","any"],"mappings":";;;;;;AAAA;;AACA;;;;AACA;;;;;;AAEA,IAAMA,UAAU,iBAAQC,MAAR,CAAe;AAC7BC,UAAQ;AACN;AACAC;AAFM;AADqB,CAAf,CAAhB;;AA0BA,IAAMC,UAAU,SAAVA,OAAU;AAAA,MACdC,KADc,QACdA,KADc;AAAA,MAEdC,MAFc,QAEdA,MAFc;AAAA,MAGdC,GAHc,QAGdA,GAHc;AAAA,MAIdC,UAJc,QAIdA,UAJc;AAAA,MAKdC,SALc,QAKdA,SALc;AAAA,MAMJC,CANI,QAMdC,QANc;AAAA,SAQd,8BAAC,EAAD,CAAI,IAAJ;AACE,YAAQX,QAAQE,MADlB;AAEE,WAAOG,KAFT;AAGE,YAAQC,MAHV;AAIE,gBAAYE,UAJd;AAKE,cAAU;AACRC,0BADQ;AAERG,kBAAY,iBAAQC,UAFZ;AAGRH,UAHQ;AAIRH;AAJQ;AALZ,IARc;AAAA,CAAhB;;AAsBAH,QAAQU,SAAR,GAAoB;AAClBL,aAAW,oBAAUM,KAAV,CAAgBC,UADT;AAElBL,YAAU,oBAAUM,GAAV,CAAcD,UAFN;AAGlBT,OAAK,oBAAUU,GAAV,CAAcD;AAHD,CAApB;;kBAMeZ,O","file":"BlurV1D.js","sourcesContent":["import { Shaders, Uniform } from \"gl-react\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nconst shaders = Shaders.create({\n blur1D: {\n // blur9: from https://github.com/Jam3/glsl-fast-gaussian-blur\n frag: `precision highp float;\nvarying vec2 uv;\nuniform sampler2D t, map;\nuniform vec2 direction, resolution;\n\nvec4 blur9(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) {\n vec4 color = vec4(0.0);\n vec2 off1 = vec2(1.3846153846) * direction;\n vec2 off2 = vec2(3.2307692308) * direction;\n color += texture2D(image, uv) * 0.2270270270;\n color += texture2D(image, uv + (off1 / resolution)) * 0.3162162162;\n color += texture2D(image, uv - (off1 / resolution)) * 0.3162162162;\n color += texture2D(image, uv + (off2 / resolution)) * 0.0702702703;\n color += texture2D(image, uv - (off2 / resolution)) * 0.0702702703;\n return color;\n}\n\nvoid main () {\n gl_FragColor = blur9(t, uv, resolution, direction * texture2D(map, uv).rg);\n}`\n }\n});\n\nconst BlurV1D = ({\n width,\n height,\n map,\n pixelRatio,\n direction,\n children: t\n}) => (\n <GL.Node\n shader={shaders.blur1D}\n width={width}\n height={height}\n pixelRatio={pixelRatio}\n uniforms={{\n direction,\n resolution: Uniform.Resolution,\n t,\n map\n }}\n />\n);\n\nBlurV1D.propTypes = {\n direction: PropTypes.array.isRequired,\n children: PropTypes.any.isRequired,\n map: PropTypes.any.isRequired\n};\n\nexport default BlurV1D;\n"]}
1
+ {"version":3,"file":"BlurV1D.js","names":["_react","_interopRequireDefault","require","_glReact","e","__esModule","default","shaders","Shaders","create","blurV1D","frag","GLSL","BlurV1D","connectSize","children","t","direction","map","width","height","createElement","Node","shader","uniforms","resolution","_default","exports"],"sources":["../src/BlurV1D.tsx"],"sourcesContent":["import React from \"react\";\nimport { Shaders, Node, GLSL, connectSize } from \"gl-react\";\n\nconst shaders = Shaders.create({\n blurV1D: {\n // blur9: from https://github.com/Jam3/glsl-fast-gaussian-blur\n frag: GLSL`\nprecision highp float;\nvarying vec2 uv;\nuniform sampler2D t, map;\nuniform vec2 direction, resolution;\nvec4 blur9(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) {\n vec4 color = vec4(0.0);\n vec2 off1 = vec2(1.3846153846) * direction;\n vec2 off2 = vec2(3.2307692308) * direction;\n color += texture2D(image, uv) * 0.2270270270;\n color += texture2D(image, uv + (off1 / resolution)) * 0.3162162162;\n color += texture2D(image, uv - (off1 / resolution)) * 0.3162162162;\n color += texture2D(image, uv + (off2 / resolution)) * 0.0702702703;\n color += texture2D(image, uv - (off2 / resolution)) * 0.0702702703;\n return color;\n}\nvoid main() {\n // Direction scaled by map value makes blur strength vary per-pixel\n gl_FragColor = blur9(t, uv, resolution, direction * texture2D(map, uv).rg);\n}`,\n },\n});\n\nexport type BlurV1DProps = {\n /** the content to blur: any gl-react texture input */\n children: any;\n /** blur direction & distance vector, in pixels */\n direction: [number, number];\n /** a texture whose red/green channels scale the blur per-pixel */\n map: any;\n width?: number;\n height?: number;\n};\n\nconst BlurV1D = connectSize(\n ({ children: t, direction, map, width, height }: any) => (\n <Node\n shader={shaders.blurV1D}\n uniforms={{ t, map, resolution: [width, height], direction }}\n />\n )\n) as unknown as React.ComponentType<BlurV1DProps>;\n\nexport default BlurV1D;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAA4D,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE5D,MAAMG,OAAO,GAAGC,gBAAO,CAACC,MAAM,CAAC;EAC7BC,OAAO,EAAE;IACP;IACAC,IAAI,EAAE,IAAAC,aAAI;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE;AACF,CAAC,CAAC;AAaF,MAAMC,OAAO,GAAG,IAAAC,oBAAW,EACzB,CAAC;EAAEC,QAAQ,EAAEC,CAAC;EAAEC,SAAS;EAAEC,GAAG;EAAEC,KAAK;EAAEC;AAAY,CAAC,kBAClDpB,MAAA,CAAAM,OAAA,CAAAe,aAAA,CAAClB,QAAA,CAAAmB,IAAI;EACHC,MAAM,EAAEhB,OAAO,CAACG,OAAQ;EACxBc,QAAQ,EAAE;IAAER,CAAC;IAAEE,GAAG;IAAEO,UAAU,EAAE,CAACN,KAAK,EAAEC,MAAM,CAAC;IAAEH;EAAU;AAAE,CAC9D,CAEL,CAAiD;AAAC,IAAAS,QAAA,GAAAC,OAAA,CAAArB,OAAA,GAEnCO,OAAO","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ export type DirectionForPass = (pass: number, factor: number, total: number) => [number, number];
2
+ declare const directionForPassDefault: DirectionForPass;
3
+ export default directionForPassDefault;
4
+ //# sourceMappingURL=directionForPassDefault.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directionForPassDefault.d.ts","sourceRoot":"","sources":["../src/directionForPassDefault.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GAAG,CAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,KACV,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAGtB,QAAA,MAAM,uBAAuB,EAAE,gBAY9B,CAAC;AAEF,eAAe,uBAAuB,CAAC"}