index.js 5.09 KB
Newer Older
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
1 2
import React from "react";
import {Text, View, ScrollView, Image} from "react-native";
3 4 5 6 7 8 9 10 11
import {Surface} from "gl-react-native";
import {Blur} from "gl-react-blur";
import Add from "./Add";
import Multiply from "./Multiply";
import Layer from "./Layer";
import NativeLayer from "./NativeLayer";
import HelloGL from "./HelloGL";
import Display2 from "./Display2";
import Copy from "./Copy";
12 13
import ColoredDisc from "./ColoredDisc";
import DiamondCrop from "./DiamondCrop";
14 15 16
import TransparentNonPremultiplied from "./TransparentNonPremultiplied";
import Dimensions from "Dimensions";
const { width: viewportW, height: viewportH } = Dimensions.get("window");
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

class Tests extends React.Component {

  constructor (props) {
    super(props);
    this.onLoad = this.onLoad.bind(this);
    this.onProgress = this.onProgress.bind(this);
  }
  onLoad () {
    console.log("LOADED");
  }
  onProgress ({nativeEvent: { progress, loaded, total }}) {
    console.log("PROGRESS", progress, loaded, total);
  }
  render () {
32
    const debugSize = viewportW / 4;
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
33 34 35 36 37

    const helloGL =
      <HelloGL width={64} height={64} />;

    const txt =
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
38
      <View key="txt" style={{ width: 400, height: 400, position: "relative", backgroundColor: "transparent" }}>
39
        {[0,1,2,3].map(i => <Text key={i} style={{
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
40 41 42 43 44 45 46 47 48 49 50 51 52
          position: "absolute",
          top: 20+100*i,
          left: 0,
          width: 400,
          height: 100,
          textAlign: "center",
          color: ["#f00", "#0f0", "#00f", "#fff"][i],
          fontSize: 40
        }}>
          Hello World {i}
        </Text>)}
      </View>;

53
    const img = "http://i.imgur.com/zJIxPEo.jpg";
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
54 55 56 57 58 59 60 61 62 63 64 65

    const blurredImage =
      <Blur factor={4} passes={6} width={200} height={200}>
        {img}
      </Blur>;

    const blurredImageOverText =
      <Layer>
        {blurredImage}
        {txt}
      </Layer>;

66 67
    return <ScrollView style={{ backgroundColor: "#000", flex: 1 }}>

68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
      <Surface width={viewportW} height={viewportW} preload onLoad={this.onLoad} onProgress={this.onProgress}>
        <Display2>
          <Add width={viewportW/2} height={viewportH/2}>
            {txt}
            {helloGL}
          </Add>
          <Display2 width={viewportW/2} height={viewportH/2} vertical>
            <Blur factor={1} passes={4} width={viewportW/2} height={viewportH/4}>
              <Multiply>
                {blurredImageOverText}
                {helloGL}
              </Multiply>
            </Blur>
            {blurredImage}
          </Display2>
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
83
        </Display2>
84
      </Surface>
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
85 86 87

      <View style={{ flexDirection: "row", flexWrap: "wrap" }}>

88
        <NativeLayer width={debugSize} height={debugSize}>
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
89 90
          <Image key={0} source={{ uri: "http://i.imgur.com/S22HNaU.png" }} width={debugSize} height={debugSize} />
          <Image key={1} source={{ uri: "http://i.imgur.com/mp79p5T.png" }} width={debugSize} height={debugSize} />
91 92
        </NativeLayer>

Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
93
        <NativeLayer width={debugSize} height={debugSize}>
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
94
          <Image key={0} source={{ uri: "http://i.imgur.com/S22HNaU.png" }} width={debugSize} height={debugSize} />
95
          <Surface width={debugSize} height={debugSize} backgroundColor="transparent">
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
96 97 98 99 100 101 102 103 104
            <Copy last>
              <Copy>
                <Copy>
                  <Copy>
                    http://i.imgur.com/mp79p5T.png
                  </Copy>
                </Copy>
              </Copy>
            </Copy>
105
          </Surface>
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
106 107 108 109
        </NativeLayer>

        <NativeLayer width={debugSize} height={debugSize}>
          <Image source={{ uri: "http://i.imgur.com/S22HNaU.png" }} width={debugSize} height={debugSize} />
110
          <Surface width={debugSize} height={debugSize} backgroundColor="transparent">
111 112 113 114 115 116 117 118 119 120 121
            <Layer>
              http://i.imgur.com/mp79p5T.png
              <TransparentNonPremultiplied>
                <HelloGL />
              </TransparentNonPremultiplied>
            </Layer>
          </Surface>
        </NativeLayer>

        <NativeLayer width={debugSize} height={debugSize}>
          <Image source={{ uri: "http://i.imgur.com/S22HNaU.png" }} width={debugSize} height={debugSize} />
122
          <Surface width={debugSize} height={debugSize} backgroundColor="transparent">
123 124 125 126 127 128 129 130 131 132 133 134 135
            <Layer>
              http://i.imgur.com/mp79p5T.png
              <TransparentNonPremultiplied>
                <Copy>
                  <TransparentNonPremultiplied>
                    <Copy>
                      http://i.imgur.com/S22HNaU.png
                    </Copy>
                  </TransparentNonPremultiplied>
                </Copy>
              </TransparentNonPremultiplied>
            </Layer>
          </Surface>
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
136 137
        </NativeLayer>

138 139 140 141
        <Surface width={debugSize} height={debugSize}>
          <HelloGL width={2} height={2} pixelRatio={1} />
        </Surface>

Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
142 143 144 145
        <Surface style={{ borderRadius: 50 }} width={debugSize} height={debugSize}>
          <HelloGL />
        </Surface>

146 147 148 149 150 151
        <Surface style={{ margin: 4 }} width={300} height={300}>
          <Blur passes={6} factor={2}>
            http://i.imgur.com/rkiglmm.jpg
          </Blur>
        </Surface>

Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
152 153 154 155 156 157 158
      </View>

    </ScrollView>;
  }
}

module.exports = Tests;