Commit 49dea67f authored by Gaëtan Renaudeau's avatar Gaëtan Renaudeau

update some examples

parent 785d7df1
import React from "react";
import GL from "gl-react";
import {Surface} from "gl-react-native";
import { Surface } from "gl-react-native";
const shaders = GL.Shaders.create({
banner: {
frag: `
......@@ -25,13 +25,20 @@ void main( void ) {
});
class Banner extends React.Component {
render () {
render() {
const { width, height, time } = this.props;
return <Surface width={width} height={height} backgroundColor="transparent"
onLoad={() => console.log("Banner onLoad")}
onProgress={e => console.log("Banner onProgress", e.nativeEvent)}>
<GL.Node shader={shaders.banner} uniforms={{ time }} />
</Surface>;
return (
<Surface
width={width}
height={height}
backgroundColor="transparent"
setZOrderOnTop
onLoad={() => console.log("Banner onLoad")}
onProgress={e => console.log("Banner onProgress", e.nativeEvent)}
>
<GL.Node shader={shaders.banner} uniforms={{ time }} />
</Surface>
);
}
}
......
import {PixelRatio} from "react-native";
import { PixelRatio } from "react-native";
import React from "react";
import GL from "gl-react";
module.exports = GL.createComponent(
({ width, height, shader, progress, from, to, uniforms }) => {
const scale = PixelRatio.get();
return <GL.Node
preload
shader={shader}
width={width}
height={height}
backgroundColor="transparent"
uniforms={{
progress,
from,
to,
...uniforms,
resolution: [ width * scale, height * scale ]
}}
/>;
return (
<GL.Node
preload
shader={shader}
width={width}
height={height}
backgroundColor="transparent"
setZOrderOnTop
uniforms={{
progress,
from,
to,
...uniforms,
resolution: [width * scale, height * scale]
}}
/>
);
},
{ displayName: "Transition" });
{ displayName: "Transition" }
);
import React from "react";
import GL from "gl-react";
import {Surface} from "gl-react-native";
import { Surface } from "gl-react-native";
const shaders = GL.Shaders.create({
imageVignette: {
......@@ -38,46 +38,49 @@ void main() {
}
});
class Vignette extends React.Component {
constructor (props) {
constructor(props) {
super(props);
this.onResponderMove = this.onResponderMove.bind(this);
this.state = {
finger: [0.5, 0.5]
};
}
onResponderMove (evt) {
onResponderMove(evt) {
const { width, height } = this.props;
const { locationX, locationY } = evt.nativeEvent;
this.setState({ finger: [locationX/width, 1-locationY/height] });
this.setState({ finger: [locationX / width, 1 - locationY / height] });
}
render () {
render() {
const { width, height, time, source } = this.props;
const { finger } = this.state;
return <Surface
width={width}
height={height}
backgroundColor="transparent"
preload
onStartShouldSetResponder={() => true}
onMoveShouldSetResponder={() => true}
onLoad={() => console.log("Vignette onLoad")}
onProgress={e => console.log("Vignette onProgress", e.nativeEvent)}
onResponderMove={this.onResponderMove}>
<GL.Node
shader={shaders.imageVignette}
uniforms={{
time: time,
freq: 10 + 2 * Math.sin(0.7*time),
texture: source,
amp: 0.05 + Math.max(0, 0.03*Math.cos(time)),
moving: 0,
finger: finger
}}
/>
</Surface>;
return (
<Surface
width={width}
height={height}
backgroundColor="transparent"
setZOrderOnTop
preload
onStartShouldSetResponder={() => true}
onMoveShouldSetResponder={() => true}
onLoad={() => console.log("Vignette onLoad")}
onProgress={e => console.log("Vignette onProgress", e.nativeEvent)}
onResponderMove={this.onResponderMove}
>
<GL.Node
shader={shaders.imageVignette}
uniforms={{
time: time,
freq: 10 + 2 * Math.sin(0.7 * time),
texture: source,
amp: 0.05 + Math.max(0, 0.03 * Math.cos(time)),
moving: 0,
finger: finger
}}
/>
</Surface>
);
}
}
......
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment