import React, { Component } from "react";
import {
StyleSheet,
Text,
View,
Image,
TextInput,
TouchableOpacity,
Slider,
Switch
} from "react-native";
import { Surface } from "gl-react-native";
import RNFS from "react-native-fs";
import HelloGL from "./HelloGL";
import Saturation from "./Saturation";
import HueRotate from "./HueRotate";
import PieProgress from "./PieProgress";
import OneFingerResponse from "./OneFingerResponse";
import AnimatedHelloGL from "./AnimatedHelloGL";
import { Blur } from "gl-react-blur";
import Button from "./Button";
class Demo extends Component {
render() {
const { title, children } = this.props;
return (
{title}
{children}
);
}
}
class Demos extends Component {
render() {
const { children, onChange, value } = this.props;
return (
{React.Children.map(children, (demo, i) =>
onChange(i)}
>
{"" + (i + 1)}
)}
{children[value]}
);
}
}
class Simple extends Component {
state = {
current: 0,
saturationFactor: 1,
hue: 0,
progress: 0,
factor: 0,
text: "and I will return leading the pack",
switch1: false,
switch2: false,
switch3: false,
captured: null,
captureConfig: null
};
onCapture1 = () => {
const captureConfig = {
quality: Math.round(Math.random() * 100) / 100,
type: Math.random() < 0.5 ? "jpg" : "png",
format: Math.random() < 0.5 ? "base64" : "file"
};
if (captureConfig.format === "file") {
captureConfig.filePath =
RNFS.DocumentDirectoryPath + "/hellogl_capture.png";
}
this.refs.helloGL
.captureFrame(captureConfig)
.then(captured => this.setState({ captured, captureConfig }));
};
render() {
const {
current,
saturationFactor,
hue,
text,
progress,
factor,
switch1,
switch2,
switch3,
captured,
captureConfig
} = this.state;
return (
this.setState({ current })} value={current}>
{captured &&
}
{captureConfig &&
format={captureConfig.format}
type={captureConfig.type}
quality={captureConfig.quality + ""}
}
{captured &&
{captured.slice(0, 100)}
}
this.setState({ saturationFactor })}
/>
Throw me to the wolves
{text}
this.setState({ hue })}
/>
this.setState({ text })}
value={text}
/>
this.setState({ progress })}
/>
https://i.imgur.com/3On9QEu.jpg
this.setState({ factor })}
/>
this.setState({ factor })}
/>
this.setState({ switch1 })}
/>
this.setState({ switch2 })}
/>
this.setState({ switch3 })}
/>
Note: This is highly experimental and not yet performant enough.
Not Supported Yet
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#F9F9F9",
paddingTop: 50
},
nav: {
flexDirection: "row",
marginBottom: 20
},
demos: {
flex: 1,
justifyContent: "center",
marginLeft: 40,
width: 276,
marginBottom: 40
},
demoTitle: {
marginBottom: 16,
fontStyle: "italic",
alignSelf: "flex-start",
color: "#999",
fontWeight: "300",
fontSize: 20
},
demo: {
marginBottom: 64,
marginLeft: 20
},
demoText1: {
position: "absolute",
top: 0,
left: 0,
width: 256,
textAlign: "center",
color: "#f16",
backgroundColor: "transparent",
fontWeight: "400",
fontSize: 24,
letterSpacing: 0
},
demoText2: {
position: "absolute",
bottom: 4,
left: 0,
width: 256,
textAlign: "center",
color: "#7bf",
backgroundColor: "transparent",
fontWeight: "300",
fontSize: 32,
letterSpacing: -1
}
});
module.exports = Simple;