mirror of
https://github.com/gre/gl-react.git
synced 2026-01-25 16:43:36 +00:00
Preparing a major: gl-react-native now uses expo-gl
This commit is contained in:
parent
636b00f8bb
commit
5fcec71edd
3
examples/cookbook-expo/.gitignore
vendored
3
examples/cookbook-expo/.gitignore
vendored
@ -9,3 +9,6 @@ npm-debug.*
|
||||
*.orig.*
|
||||
web-build/
|
||||
web-report/
|
||||
|
||||
# macOS
|
||||
.DS_Store
|
||||
|
||||
@ -1 +0,0 @@
|
||||
{}
|
||||
@ -3,7 +3,7 @@
|
||||
"name": "cookbook-expo",
|
||||
"slug": "cookbook-expo",
|
||||
"privacy": "public",
|
||||
"sdkVersion": "34.0.0",
|
||||
"sdkVersion": "36.0.0",
|
||||
"platforms": [
|
||||
"ios",
|
||||
"android",
|
||||
@ -27,4 +27,4 @@
|
||||
"supportsTablet": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +1,12 @@
|
||||
// @flow
|
||||
import "webgltexture-loader-expo-camera";
|
||||
import { RGBAFormat, RGBFormat } from "three";
|
||||
import { Camera } from "expo";
|
||||
import { Camera } from "expo-camera";
|
||||
import { resolveAsync } from "expo-asset-utils";
|
||||
import * as Permissions from "expo-permissions";
|
||||
import { GLView } from "expo-gl";
|
||||
import { Surface } from "gl-react-expo";
|
||||
|
||||
export const name = "gl-react-expo";
|
||||
export { Surface };
|
||||
|
||||
@ -40,6 +43,7 @@ GLImage.prototype = {
|
||||
};
|
||||
|
||||
export const endFrame = gl => gl.endFrameEXP();
|
||||
|
||||
export const loadThreeJSTexture = (gl, src, texture) => {
|
||||
let image = new GLImage();
|
||||
image.onload = function() {
|
||||
@ -49,7 +53,9 @@ export const loadThreeJSTexture = (gl, src, texture) => {
|
||||
};
|
||||
image.src = src;
|
||||
};
|
||||
|
||||
export { Camera };
|
||||
|
||||
export const askCameraPermission = async () => {
|
||||
const permission = await Permissions.askAsync(Permissions.CAMERA);
|
||||
return permission;
|
||||
|
||||
@ -9,30 +9,32 @@
|
||||
"prepare": "rm -rf ./shared/ && cp -R ../cookbook-rn-shared/ shared && cp gl-react-implementation.js shared && ./shared/examples/gen.sh > ./shared/examples/index.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"expo": "^34.0.1",
|
||||
"expo": "~36.0.0",
|
||||
"expo-asset-utils": "^1.2.0",
|
||||
"expo-camera": "^6.0.0",
|
||||
"expo-gl": "~6.0.0",
|
||||
"expo-permissions": "~6.0.0",
|
||||
"gl-react": "^3.17.2",
|
||||
"gl-react-expo": "^3.17.2",
|
||||
"expo-camera": "^8.0.0",
|
||||
"expo-gl": "^8.0.0",
|
||||
"expo-permissions": "^8.0.0",
|
||||
"gl-react": "^3.18.0-alpha.2",
|
||||
"gl-react-expo": "^3.18.0-alpha.2",
|
||||
"gl-transitions": "^1.43.0",
|
||||
"ndarray": "^1.0.18",
|
||||
"raf": "^3.4.1",
|
||||
"react": "^16.9.0",
|
||||
"react-dom": "^16.8.6",
|
||||
"react": "~16.9.0",
|
||||
"react-dom": "~16.9.0",
|
||||
"react-gl-transition": "^1.19.2",
|
||||
"react-motion": "^0.5.2",
|
||||
"react-native": "https://github.com/expo/react-native/archive/sdk-34.0.0.tar.gz",
|
||||
"react-native-gesture-handler": "^1.3.0",
|
||||
"react-native-web": "^0.11.4",
|
||||
"react-native-webgl": "^0.8.0",
|
||||
"react-navigation": "^3.11.1",
|
||||
"seedrandom": "github:gre/seedrandom#released",
|
||||
"three": "^0.107.0"
|
||||
"react-native": "https://github.com/expo/react-native/archive/sdk-36.0.0.tar.gz",
|
||||
"react-native-gesture-handler": "^1.5.3",
|
||||
"react-native-web": "~0.11.7",
|
||||
"react-navigation": "^4.0.10",
|
||||
"react-navigation-stack": "^1.10.3",
|
||||
"seedrandom": "^3.0.5",
|
||||
"three": "^0.112.1",
|
||||
"webgltexture-loader-expo-camera": "^1.0.0-rc.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-preset-expo": "^6.0.0"
|
||||
"@babel/core": "^7.0.0",
|
||||
"babel-preset-expo": "~8.0.0"
|
||||
},
|
||||
"private": true
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
64
examples/cookbook-rn-shared/examples/camera/GLCamera.js
Normal file
64
examples/cookbook-rn-shared/examples/camera/GLCamera.js
Normal file
@ -0,0 +1,64 @@
|
||||
//@flow
|
||||
import React, { Component } from "react";
|
||||
import { GLSL, Node, Shaders } from "gl-react";
|
||||
import { Camera } from "expo-camera";
|
||||
|
||||
const shaders = Shaders.create({
|
||||
Flip: {
|
||||
// NB we need to Flip the stream
|
||||
frag: GLSL`
|
||||
precision highp float;
|
||||
varying vec2 uv;
|
||||
uniform sampler2D t;
|
||||
void main(){
|
||||
gl_FragColor=texture2D(t, vec2(1.0 - uv.x, 1.0 - uv.y));
|
||||
}`
|
||||
}
|
||||
});
|
||||
|
||||
export class GLCamera extends Component<*> {
|
||||
props: {
|
||||
position: string
|
||||
};
|
||||
static defaultProps = {
|
||||
position: "front"
|
||||
};
|
||||
_raf: *;
|
||||
async componentDidMount() {
|
||||
const loop = () => {
|
||||
this._raf = requestAnimationFrame(loop);
|
||||
this.forceUpdate();
|
||||
};
|
||||
this._raf = requestAnimationFrame(loop);
|
||||
}
|
||||
componentWillUnmount() {
|
||||
cancelAnimationFrame(this._raf);
|
||||
}
|
||||
camera: ?Camera;
|
||||
onCameraRef = (camera: ?Camera) => {
|
||||
this.camera = camera;
|
||||
};
|
||||
render() {
|
||||
const { position } = this.props;
|
||||
const type = Camera.Constants.Type[position];
|
||||
return (
|
||||
<Node
|
||||
blendFunc={{ src: "one", dst: "one minus src alpha" }}
|
||||
shader={shaders.Flip}
|
||||
uniforms={{
|
||||
t: () => this.camera
|
||||
}}
|
||||
>
|
||||
<Camera
|
||||
style={{
|
||||
width: 400,
|
||||
height: 533.33
|
||||
}}
|
||||
ratio="4:3"
|
||||
type={type}
|
||||
ref={this.onCameraRef}
|
||||
/>
|
||||
</Node>
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,11 +1,8 @@
|
||||
//@flow
|
||||
import React, { Component } from "react";
|
||||
import { Shaders, Node, GLSL, Bus, LinearCopy } from "gl-react";
|
||||
import {
|
||||
Surface,
|
||||
askCameraPermission,
|
||||
Camera
|
||||
} from "../../gl-react-implementation";
|
||||
import { Surface, askCameraPermission } from "../../gl-react-implementation";
|
||||
import { GLCamera } from "./GLCamera";
|
||||
import { Colorify } from "../colorscale";
|
||||
import colorScales from "../colorscale/colorScales";
|
||||
import timeLoop from "../../HOC/timeLoop";
|
||||
@ -20,25 +17,14 @@ export default class Example extends Component {
|
||||
}
|
||||
}
|
||||
render() {
|
||||
const { interpolation, color, width } = this.props;
|
||||
const { interpolation, color, width, type } = this.props;
|
||||
const { permission } = this.state;
|
||||
if (!Camera || !permission || permission.status !== "granted") return null;
|
||||
if (!permission || permission.status !== "granted") return null;
|
||||
return (
|
||||
<Surface style={{ width, height: width * 300 / 400 }}>
|
||||
<Surface style={{ width, height: (width * 300) / 400 }}>
|
||||
<Colorify colorScale={colorScales[color]} interpolation={interpolation}>
|
||||
{() => this.camera}
|
||||
<GLCamera position={type} />
|
||||
</Colorify>
|
||||
<Camera
|
||||
style={{
|
||||
width: 400,
|
||||
height: 533.33
|
||||
}}
|
||||
ratio="4:3"
|
||||
type={type}
|
||||
ref={ref => {
|
||||
this.camera = ref;
|
||||
}}
|
||||
/>
|
||||
</Surface>
|
||||
);
|
||||
}
|
||||
|
||||
@ -1,9 +1,23 @@
|
||||
import thumbnail from "../../images/thumbnails/camera.jpg";
|
||||
import makeSelect from "../../toolbox/makeSelect";
|
||||
import { toolbox as colorscaleToolbox } from "../colorscale/meta";
|
||||
|
||||
export { thumbnail };
|
||||
export { toolbox } from "../colorscale/meta";
|
||||
export const title = "camera";
|
||||
export const description = "Camera stream + colorscale";
|
||||
|
||||
export const toolbox = [
|
||||
...colorscaleToolbox,
|
||||
{
|
||||
prop: "type",
|
||||
title: "camera type",
|
||||
Editor: makeSelect([
|
||||
{ key: "front", label: "front" },
|
||||
{ key: "back", label: "back" }
|
||||
])
|
||||
}
|
||||
];
|
||||
|
||||
/*
|
||||
import React from "react";
|
||||
import { LinearCopy, NearestCopy } from "gl-react";
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
//@flow
|
||||
import React from "react";
|
||||
import { createStackNavigator, createAppContainer } from "react-navigation";
|
||||
import { createAppContainer } from "react-navigation";
|
||||
import { createStackNavigator } from "react-navigation-stack";
|
||||
import * as examples from "./examples";
|
||||
import * as tests from "./tests";
|
||||
import Home from "./Home";
|
||||
|
||||
@ -5,14 +5,6 @@
|
||||
; Ignore "BUCK" generated dirs
|
||||
<PROJECT_ROOT>/\.buckd/
|
||||
|
||||
; Ignore unexpected extra "@providesModule"
|
||||
.*/node_modules/.*/node_modules/fbjs/.*
|
||||
|
||||
; Ignore duplicate module providers
|
||||
; For RN Apps installed via npm, "Libraries" folder is inside
|
||||
; "node_modules/react-native" but in the source repo it is in the root
|
||||
node_modules/react-native/Libraries/react-native/React.js
|
||||
|
||||
; Ignore polyfills
|
||||
node_modules/react-native/Libraries/polyfills/.*
|
||||
|
||||
@ -21,7 +13,7 @@ node_modules/react-native/Libraries/polyfills/.*
|
||||
node_modules/warning/.*
|
||||
|
||||
; Flow doesn't support platforms
|
||||
.*/Libraries/Utilities/HMRLoadingView.js
|
||||
.*/Libraries/Utilities/LoadingView.js
|
||||
|
||||
[untyped]
|
||||
.*/node_modules/@react-native-community/cli/.*/.*
|
||||
@ -42,27 +34,11 @@ module.file_ext=.js
|
||||
module.file_ext=.json
|
||||
module.file_ext=.ios.js
|
||||
|
||||
module.system=haste
|
||||
module.system.haste.use_name_reducers=true
|
||||
# get basename
|
||||
module.system.haste.name_reducers='^.*/\([a-zA-Z0-9$_.-]+\.js\(\.flow\)?\)$' -> '\1'
|
||||
# strip .js or .js.flow suffix
|
||||
module.system.haste.name_reducers='^\(.*\)\.js\(\.flow\)?$' -> '\1'
|
||||
# strip .ios suffix
|
||||
module.system.haste.name_reducers='^\(.*\)\.ios$' -> '\1'
|
||||
module.system.haste.name_reducers='^\(.*\)\.android$' -> '\1'
|
||||
module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1'
|
||||
module.system.haste.paths.blacklist=.*/__tests__/.*
|
||||
module.system.haste.paths.blacklist=.*/__mocks__/.*
|
||||
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/Libraries/.*
|
||||
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/RNTester/.*
|
||||
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/IntegrationTests/.*
|
||||
module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/react-native/react-native-implementation.js
|
||||
module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/Animated/src/polyfills/.*
|
||||
|
||||
munge_underscores=true
|
||||
|
||||
module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub'
|
||||
module.name_mapper='^react-native$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/react-native/react-native-implementation'
|
||||
module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1'
|
||||
module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub'
|
||||
|
||||
suppress_type=$FlowIssue
|
||||
suppress_type=$FlowFixMe
|
||||
@ -96,4 +72,4 @@ untyped-import
|
||||
untyped-type-import
|
||||
|
||||
[version]
|
||||
^0.98.0
|
||||
^0.105.0
|
||||
|
||||
2
examples/cookbook-rn/.gitignore
vendored
2
examples/cookbook-rn/.gitignore
vendored
@ -20,7 +20,6 @@ DerivedData
|
||||
*.hmap
|
||||
*.ipa
|
||||
*.xcuserstate
|
||||
project.xcworkspace
|
||||
|
||||
# Android/IntelliJ
|
||||
#
|
||||
@ -40,6 +39,7 @@ yarn-error.log
|
||||
buck-out/
|
||||
\.buckd/
|
||||
*.keystore
|
||||
!debug.keystore
|
||||
|
||||
# fastlane
|
||||
#
|
||||
|
||||
@ -1,6 +0,0 @@
|
||||
module.exports = {
|
||||
bracketSpacing: false,
|
||||
jsxBracketSameLine: true,
|
||||
singleQuote: true,
|
||||
trailingComma: 'all',
|
||||
};
|
||||
17
examples/cookbook-rn/android/.project
Normal file
17
examples/cookbook-rn/android/.project
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>android</name>
|
||||
<comment>Project android created by Buildship.</comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@ -0,0 +1,2 @@
|
||||
connection.project.dir=
|
||||
eclipse.preferences.version=1
|
||||
@ -1,4 +1,5 @@
|
||||
apply plugin: "com.android.application"
|
||||
apply from: '../../node_modules/react-native-unimodules/gradle.groovy'
|
||||
|
||||
import com.android.build.OutputFile
|
||||
|
||||
@ -176,27 +177,19 @@ android {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
packagingOptions {
|
||||
pickFirst '**/armeabi-v7a/libc++_shared.so'
|
||||
pickFirst '**/x86/libc++_shared.so'
|
||||
pickFirst '**/arm64-v8a/libc++_shared.so'
|
||||
pickFirst '**/x86_64/libc++_shared.so'
|
||||
pickFirst '**/x86/libjsc.so'
|
||||
pickFirst '**/armeabi-v7a/libjsc.so'
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
addUnimodulesDependencies()
|
||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||
implementation "com.facebook.react:react-native:+" // From node_modules
|
||||
|
||||
if (enableHermes) {
|
||||
def hermesPath = "../../node_modules/hermesvm/android/";
|
||||
debugImplementation files(hermesPath + "hermes-debug.aar")
|
||||
releaseImplementation files(hermesPath + "hermes-release.aar")
|
||||
def hermesPath = "../../node_modules/hermes-engine/android/";
|
||||
debugImplementation files(hermesPath + "hermes-debug.aar")
|
||||
releaseImplementation files(hermesPath + "hermes-release.aar")
|
||||
} else {
|
||||
implementation jscFlavor
|
||||
implementation jscFlavor
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
BIN
examples/cookbook-rn/android/app/debug.keystore
Normal file
BIN
examples/cookbook-rn/android/app/debug.keystore
Normal file
Binary file not shown.
@ -4,12 +4,12 @@ import com.facebook.react.ReactActivity;
|
||||
|
||||
public class MainActivity extends ReactActivity {
|
||||
|
||||
/**
|
||||
* Returns the name of the main component registered from JavaScript.
|
||||
* This is used to schedule rendering of the component.
|
||||
*/
|
||||
@Override
|
||||
protected String getMainComponentName() {
|
||||
return "cookbook";
|
||||
}
|
||||
/**
|
||||
* Returns the name of the main component registered from JavaScript. This is used to schedule
|
||||
* rendering of the component.
|
||||
*/
|
||||
@Override
|
||||
protected String getMainComponentName() {
|
||||
return "cookbook";
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,40 +1,50 @@
|
||||
package com.cookbook;
|
||||
|
||||
import android.app.Application;
|
||||
import android.util.Log;
|
||||
import com.cookbook.generated.BasePackageList;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import com.facebook.react.PackageList;
|
||||
import com.facebook.hermes.reactexecutor.HermesExecutorFactory;
|
||||
import com.facebook.react.bridge.JavaScriptExecutorFactory;
|
||||
import com.facebook.react.ReactApplication;
|
||||
import com.facebook.react.ReactNativeHost;
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.soloader.SoLoader;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import org.unimodules.adapters.react.ModuleRegistryAdapter;
|
||||
import org.unimodules.adapters.react.ReactModuleRegistryProvider;
|
||||
import org.unimodules.core.interfaces.SingletonModule;
|
||||
|
||||
public class MainApplication extends Application implements ReactApplication {
|
||||
private final ReactModuleRegistryProvider mModuleRegistryProvider = new ReactModuleRegistryProvider(new BasePackageList().getPackageList(), Arrays.<SingletonModule>asList());
|
||||
|
||||
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
|
||||
@Override
|
||||
public boolean getUseDeveloperSupport() {
|
||||
return BuildConfig.DEBUG;
|
||||
}
|
||||
private final ReactNativeHost mReactNativeHost =
|
||||
new ReactNativeHost(this) {
|
||||
@Override
|
||||
public boolean getUseDeveloperSupport() {
|
||||
return BuildConfig.DEBUG;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<ReactPackage> getPackages() {
|
||||
@SuppressWarnings("UnnecessaryLocalVariable")
|
||||
List<ReactPackage> packages = new PackageList(this).getPackages();
|
||||
// Packages that cannot be autolinked yet can be added manually here, for example:
|
||||
// packages.add(new MyReactNativePackage());
|
||||
return packages;
|
||||
}
|
||||
@Override
|
||||
protected List<ReactPackage> getPackages() {
|
||||
@SuppressWarnings("UnnecessaryLocalVariable")
|
||||
List<ReactPackage> packages = new PackageList(this).getPackages();
|
||||
// Packages that cannot be autolinked yet can be added manually here, for example:
|
||||
// packages.add(new MyReactNativePackage());
|
||||
// Add unimodules
|
||||
List<ReactPackage> unimodules = Arrays.<ReactPackage>asList(
|
||||
new ModuleRegistryAdapter(mModuleRegistryProvider)
|
||||
);
|
||||
packages.addAll(unimodules);
|
||||
return packages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getJSMainModuleName() {
|
||||
return "index";
|
||||
}
|
||||
};
|
||||
@Override
|
||||
protected String getJSMainModuleName() {
|
||||
return "index";
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public ReactNativeHost getReactNativeHost() {
|
||||
@ -45,5 +55,32 @@ public class MainApplication extends Application implements ReactApplication {
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
SoLoader.init(this, /* native exopackage */ false);
|
||||
initializeFlipper(this); // Remove this line if you don't want Flipper enabled
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads Flipper in React Native templates.
|
||||
*
|
||||
* @param context
|
||||
*/
|
||||
private static void initializeFlipper(Context context) {
|
||||
if (BuildConfig.DEBUG) {
|
||||
try {
|
||||
/*
|
||||
We use reflection here to pick up the class that initializes Flipper,
|
||||
since Flipper library is not available in release mode
|
||||
*/
|
||||
Class<?> aClass = Class.forName("com.facebook.flipper.ReactNativeFlipper");
|
||||
aClass.getMethod("initializeFlipper", Context.class).invoke(null, context);
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
} catch (NoSuchMethodException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,17 +3,16 @@
|
||||
buildscript {
|
||||
ext {
|
||||
buildToolsVersion = "28.0.3"
|
||||
minSdkVersion = 17
|
||||
minSdkVersion = 21
|
||||
compileSdkVersion = 28
|
||||
targetSdkVersion = 28
|
||||
supportLibVersion = "28.0.0"
|
||||
}
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath("com.android.tools.build:gradle:3.4.1")
|
||||
classpath("com.android.tools.build:gradle:3.4.2")
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
@ -34,5 +33,6 @@ allprojects {
|
||||
|
||||
google()
|
||||
jcenter()
|
||||
maven { url 'https://jitpack.io' }
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.5-all.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
apply from: '../node_modules/react-native-unimodules/gradle.groovy'
|
||||
includeUnimodulesProjects()
|
||||
rootProject.name = 'cookbook'
|
||||
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
|
||||
include ':app'
|
||||
|
||||
@ -1,18 +1,60 @@
|
||||
import { WebGLView } from "react-native-webgl";
|
||||
import { Surface } from "gl-react-native";
|
||||
// @flow
|
||||
import "webgltexture-loader-expo-camera";
|
||||
import { RGBAFormat, RGBFormat } from "three";
|
||||
import { Camera } from "expo-camera";
|
||||
import * as Permissions from "expo-permissions";
|
||||
import { resolveAsync } from "expo-asset-utils";
|
||||
import { GLView } from "expo-gl";
|
||||
|
||||
import { Surface } from "gl-react-native";
|
||||
export const name = "gl-react-native";
|
||||
export const EXGLView = WebGLView;
|
||||
|
||||
export { Surface };
|
||||
export const endFrame = gl => gl.getExtension("RN").endFrame();
|
||||
export const loadThreeJSTexture = (gl, src, texture, renderer) => {
|
||||
var properties = renderer.properties.get(texture);
|
||||
gl
|
||||
.getExtension("RN")
|
||||
.loadTexture({ yflip: true, image: src })
|
||||
.then(({ texture }) => {
|
||||
properties.__webglTexture = texture;
|
||||
properties.__webglInit = true;
|
||||
texture.needsUpdate = true;
|
||||
});
|
||||
|
||||
export const EXGLView = GLView;
|
||||
|
||||
function GLImage() {
|
||||
if (!(this instanceof GLImage)) {
|
||||
throw new Error(
|
||||
"Failed to construct 'Image': Please use the 'new' operator."
|
||||
);
|
||||
}
|
||||
this.onload = null;
|
||||
this._src = null;
|
||||
}
|
||||
|
||||
GLImage.prototype = {
|
||||
//$FlowFixMe
|
||||
get src() {
|
||||
return this._src;
|
||||
},
|
||||
//$FlowFixMe
|
||||
set src(src) {
|
||||
if (this._src === src) return;
|
||||
delete this.localUri;
|
||||
this._src = src;
|
||||
|
||||
if (src) {
|
||||
resolveAsync(src).then(({ localUri }) => {
|
||||
this.localUri = localUri;
|
||||
if (this.onload) this.onload();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export const endFrame = gl => gl.endFrameEXP();
|
||||
export const loadThreeJSTexture = (gl, src, texture) => {
|
||||
let image = new GLImage();
|
||||
image.onload = function() {
|
||||
texture.image = image;
|
||||
texture.format = RGBFormat;
|
||||
texture.needsUpdate = true;
|
||||
};
|
||||
image.src = src;
|
||||
};
|
||||
export { Camera };
|
||||
export const askCameraPermission = async () => {
|
||||
const permission = await Permissions.askAsync(Permissions.CAMERA);
|
||||
return permission;
|
||||
};
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
import { AppRegistry } from "react-native";
|
||||
import App from "./shared";
|
||||
AppRegistry.registerComponent("cookbook", () => App);
|
||||
import {AppRegistry} from 'react-native';
|
||||
import App from './shared';
|
||||
AppRegistry.registerComponent('cookbook', () => App);
|
||||
|
||||
@ -1,11 +1,17 @@
|
||||
platform :ios, '10.0'
|
||||
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
|
||||
require_relative '../node_modules/react-native-unimodules/cocoapods.rb'
|
||||
|
||||
target 'cookbook' do
|
||||
# Pods for cookbook
|
||||
pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector"
|
||||
pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec"
|
||||
pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired"
|
||||
pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety"
|
||||
pod 'React', :path => '../node_modules/react-native/'
|
||||
pod 'React-Core', :path => '../node_modules/react-native/React'
|
||||
pod 'React-DevSupport', :path => '../node_modules/react-native/React'
|
||||
pod 'React-Core', :path => '../node_modules/react-native/'
|
||||
pod 'React-CoreModules', :path => '../node_modules/react-native/React/CoreModules'
|
||||
pod 'React-Core/DevSupport', :path => '../node_modules/react-native/'
|
||||
pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
|
||||
pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
|
||||
pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
|
||||
@ -15,13 +21,15 @@ target 'cookbook' do
|
||||
pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
|
||||
pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
|
||||
pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
|
||||
pod 'React-RCTWebSocket', :path => '../node_modules/react-native/Libraries/WebSocket'
|
||||
pod 'React-Core/RCTWebSocket', :path => '../node_modules/react-native/'
|
||||
|
||||
pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
|
||||
pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
|
||||
pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
|
||||
pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
|
||||
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
|
||||
pod 'ReactCommon/jscallinvoker', :path => "../node_modules/react-native/ReactCommon"
|
||||
pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon"
|
||||
pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
|
||||
|
||||
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
|
||||
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
|
||||
@ -33,6 +41,7 @@ target 'cookbook' do
|
||||
end
|
||||
|
||||
use_native_modules!
|
||||
use_unimodules!
|
||||
end
|
||||
|
||||
target 'cookbook-tvOS' do
|
||||
|
||||
@ -1,6 +1,42 @@
|
||||
PODS:
|
||||
- boost-for-react-native (1.63.0)
|
||||
- DoubleConversion (1.1.6)
|
||||
- EXAppLoaderProvider (8.0.0)
|
||||
- EXCamera (8.0.0):
|
||||
- UMBarCodeScannerInterface
|
||||
- UMCore
|
||||
- UMFaceDetectorInterface
|
||||
- UMFileSystemInterface
|
||||
- UMImageLoaderInterface
|
||||
- UMPermissionsInterface
|
||||
- EXConstants (8.0.0):
|
||||
- UMConstantsInterface
|
||||
- UMCore
|
||||
- EXFileSystem (8.0.0):
|
||||
- UMCore
|
||||
- UMFileSystemInterface
|
||||
- EXFont (8.0.0):
|
||||
- UMCore
|
||||
- UMFontInterface
|
||||
- EXGL (8.0.0):
|
||||
- EXGL_CPP
|
||||
- UMCameraInterface
|
||||
- UMCore
|
||||
- UMFileSystemInterface
|
||||
- EXGL_CPP (8.0.0):
|
||||
- EXGL_CPP/UEXGL (= 8.0.0)
|
||||
- EXGL_CPP/UEXGL (8.0.0)
|
||||
- EXPermissions (8.0.0):
|
||||
- UMCore
|
||||
- UMPermissionsInterface
|
||||
- FBLazyVector (0.61.5)
|
||||
- FBReactNativeSpec (0.61.5):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- RCTRequired (= 0.61.5)
|
||||
- RCTTypeSafety (= 0.61.5)
|
||||
- React-Core (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- ReactCommon/turbomodule/core (= 0.61.5)
|
||||
- Folly (2018.10.22.00):
|
||||
- boost-for-react-native
|
||||
- DoubleConversion
|
||||
@ -11,94 +47,248 @@ PODS:
|
||||
- DoubleConversion
|
||||
- glog
|
||||
- glog (0.3.5)
|
||||
- GPUImage (0.1.7)
|
||||
- React (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-DevSupport (= 0.60.5)
|
||||
- React-RCTActionSheet (= 0.60.5)
|
||||
- React-RCTAnimation (= 0.60.5)
|
||||
- React-RCTBlob (= 0.60.5)
|
||||
- React-RCTImage (= 0.60.5)
|
||||
- React-RCTLinking (= 0.60.5)
|
||||
- React-RCTNetwork (= 0.60.5)
|
||||
- React-RCTSettings (= 0.60.5)
|
||||
- React-RCTText (= 0.60.5)
|
||||
- React-RCTVibration (= 0.60.5)
|
||||
- React-RCTWebSocket (= 0.60.5)
|
||||
- React-Core (0.60.5):
|
||||
- RCTRequired (0.61.5)
|
||||
- RCTTypeSafety (0.61.5):
|
||||
- FBLazyVector (= 0.61.5)
|
||||
- Folly (= 2018.10.22.00)
|
||||
- React-cxxreact (= 0.60.5)
|
||||
- React-jsiexecutor (= 0.60.5)
|
||||
- yoga (= 0.60.5.React)
|
||||
- React-cxxreact (0.60.5):
|
||||
- RCTRequired (= 0.61.5)
|
||||
- React-Core (= 0.61.5)
|
||||
- React (0.61.5):
|
||||
- React-Core (= 0.61.5)
|
||||
- React-Core/DevSupport (= 0.61.5)
|
||||
- React-Core/RCTWebSocket (= 0.61.5)
|
||||
- React-RCTActionSheet (= 0.61.5)
|
||||
- React-RCTAnimation (= 0.61.5)
|
||||
- React-RCTBlob (= 0.61.5)
|
||||
- React-RCTImage (= 0.61.5)
|
||||
- React-RCTLinking (= 0.61.5)
|
||||
- React-RCTNetwork (= 0.61.5)
|
||||
- React-RCTSettings (= 0.61.5)
|
||||
- React-RCTText (= 0.61.5)
|
||||
- React-RCTVibration (= 0.61.5)
|
||||
- React-Core (0.61.5):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-Core/Default (= 0.61.5)
|
||||
- React-cxxreact (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- React-jsiexecutor (= 0.61.5)
|
||||
- Yoga
|
||||
- React-Core/CoreModulesHeaders (0.61.5):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- React-jsiexecutor (= 0.61.5)
|
||||
- Yoga
|
||||
- React-Core/Default (0.61.5):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-cxxreact (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- React-jsiexecutor (= 0.61.5)
|
||||
- Yoga
|
||||
- React-Core/DevSupport (0.61.5):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-Core/Default (= 0.61.5)
|
||||
- React-Core/RCTWebSocket (= 0.61.5)
|
||||
- React-cxxreact (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- React-jsiexecutor (= 0.61.5)
|
||||
- React-jsinspector (= 0.61.5)
|
||||
- Yoga
|
||||
- React-Core/RCTActionSheetHeaders (0.61.5):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- React-jsiexecutor (= 0.61.5)
|
||||
- Yoga
|
||||
- React-Core/RCTAnimationHeaders (0.61.5):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- React-jsiexecutor (= 0.61.5)
|
||||
- Yoga
|
||||
- React-Core/RCTBlobHeaders (0.61.5):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- React-jsiexecutor (= 0.61.5)
|
||||
- Yoga
|
||||
- React-Core/RCTImageHeaders (0.61.5):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- React-jsiexecutor (= 0.61.5)
|
||||
- Yoga
|
||||
- React-Core/RCTLinkingHeaders (0.61.5):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- React-jsiexecutor (= 0.61.5)
|
||||
- Yoga
|
||||
- React-Core/RCTNetworkHeaders (0.61.5):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- React-jsiexecutor (= 0.61.5)
|
||||
- Yoga
|
||||
- React-Core/RCTSettingsHeaders (0.61.5):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- React-jsiexecutor (= 0.61.5)
|
||||
- Yoga
|
||||
- React-Core/RCTTextHeaders (0.61.5):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- React-jsiexecutor (= 0.61.5)
|
||||
- Yoga
|
||||
- React-Core/RCTVibrationHeaders (0.61.5):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- React-jsiexecutor (= 0.61.5)
|
||||
- Yoga
|
||||
- React-Core/RCTWebSocket (0.61.5):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-Core/Default (= 0.61.5)
|
||||
- React-cxxreact (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- React-jsiexecutor (= 0.61.5)
|
||||
- Yoga
|
||||
- React-CoreModules (0.61.5):
|
||||
- FBReactNativeSpec (= 0.61.5)
|
||||
- Folly (= 2018.10.22.00)
|
||||
- RCTTypeSafety (= 0.61.5)
|
||||
- React-Core/CoreModulesHeaders (= 0.61.5)
|
||||
- React-RCTImage (= 0.61.5)
|
||||
- ReactCommon/turbomodule/core (= 0.61.5)
|
||||
- React-cxxreact (0.61.5):
|
||||
- boost-for-react-native (= 1.63.0)
|
||||
- DoubleConversion
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-jsinspector (= 0.60.5)
|
||||
- React-DevSupport (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTWebSocket (= 0.60.5)
|
||||
- React-jsi (0.60.5):
|
||||
- React-jsinspector (= 0.61.5)
|
||||
- React-jsi (0.61.5):
|
||||
- boost-for-react-native (= 1.63.0)
|
||||
- DoubleConversion
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-jsi/Default (= 0.60.5)
|
||||
- React-jsi/Default (0.60.5):
|
||||
- React-jsi/Default (= 0.61.5)
|
||||
- React-jsi/Default (0.61.5):
|
||||
- boost-for-react-native (= 1.63.0)
|
||||
- DoubleConversion
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-jsiexecutor (0.60.5):
|
||||
- React-jsiexecutor (0.61.5):
|
||||
- DoubleConversion
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-cxxreact (= 0.60.5)
|
||||
- React-jsi (= 0.60.5)
|
||||
- React-jsinspector (0.60.5)
|
||||
- react-native-webgl (0.8.0):
|
||||
- GPUImage
|
||||
- React-cxxreact (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- React-jsinspector (0.61.5)
|
||||
- React-RCTActionSheet (0.61.5):
|
||||
- React-Core/RCTActionSheetHeaders (= 0.61.5)
|
||||
- React-RCTAnimation (0.61.5):
|
||||
- React-Core/RCTAnimationHeaders (= 0.61.5)
|
||||
- React-RCTBlob (0.61.5):
|
||||
- React-Core/RCTBlobHeaders (= 0.61.5)
|
||||
- React-Core/RCTWebSocket (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- React-RCTNetwork (= 0.61.5)
|
||||
- React-RCTImage (0.61.5):
|
||||
- React-Core/RCTImageHeaders (= 0.61.5)
|
||||
- React-RCTNetwork (= 0.61.5)
|
||||
- React-RCTLinking (0.61.5):
|
||||
- React-Core/RCTLinkingHeaders (= 0.61.5)
|
||||
- React-RCTNetwork (0.61.5):
|
||||
- React-Core/RCTNetworkHeaders (= 0.61.5)
|
||||
- React-RCTSettings (0.61.5):
|
||||
- React-Core/RCTSettingsHeaders (= 0.61.5)
|
||||
- React-RCTText (0.61.5):
|
||||
- React-Core/RCTTextHeaders (= 0.61.5)
|
||||
- React-RCTVibration (0.61.5):
|
||||
- React-Core/RCTVibrationHeaders (= 0.61.5)
|
||||
- ReactCommon/jscallinvoker (0.61.5):
|
||||
- DoubleConversion
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-cxxreact (= 0.61.5)
|
||||
- ReactCommon/turbomodule/core (0.61.5):
|
||||
- DoubleConversion
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-Core (= 0.61.5)
|
||||
- React-cxxreact (= 0.61.5)
|
||||
- React-jsi (= 0.61.5)
|
||||
- ReactCommon/jscallinvoker (= 0.61.5)
|
||||
- RNGestureHandler (1.5.3):
|
||||
- React
|
||||
- React-RCTActionSheet (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTAnimation (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTBlob (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTNetwork (= 0.60.5)
|
||||
- React-RCTWebSocket (= 0.60.5)
|
||||
- React-RCTImage (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTNetwork (= 0.60.5)
|
||||
- React-RCTLinking (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTNetwork (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTSettings (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTText (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTVibration (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTWebSocket (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- RNGestureHandler (1.3.0):
|
||||
- React
|
||||
- yoga (0.60.5.React)
|
||||
- UMBarCodeScannerInterface (5.0.0)
|
||||
- UMCameraInterface (5.0.0)
|
||||
- UMConstantsInterface (5.0.0)
|
||||
- UMCore (5.0.0)
|
||||
- UMFaceDetectorInterface (5.0.0)
|
||||
- UMFileSystemInterface (5.0.0)
|
||||
- UMFontInterface (5.0.0)
|
||||
- UMImageLoaderInterface (5.0.0)
|
||||
- UMPermissionsInterface (5.0.0)
|
||||
- UMReactNativeAdapter (5.0.0):
|
||||
- React-Core
|
||||
- UMCore
|
||||
- UMFontInterface
|
||||
- UMSensorsInterface (5.0.0)
|
||||
- UMTaskManagerInterface (5.0.0)
|
||||
- Yoga (1.14.0)
|
||||
|
||||
DEPENDENCIES:
|
||||
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
|
||||
- EXAppLoaderProvider (from `../node_modules/expo-app-loader-provider/ios`)
|
||||
- EXCamera (from `../node_modules/expo-camera/ios`)
|
||||
- EXConstants (from `../node_modules/expo-constants/ios`)
|
||||
- EXFileSystem (from `../node_modules/expo-file-system/ios`)
|
||||
- EXFont (from `../node_modules/expo-font/ios`)
|
||||
- EXGL (from `../node_modules/expo-gl/ios`)
|
||||
- EXGL_CPP (from `../node_modules/expo-gl-cpp/cpp`)
|
||||
- EXPermissions (from `../node_modules/expo-permissions/ios`)
|
||||
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
|
||||
- FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`)
|
||||
- Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
|
||||
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
||||
- RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
|
||||
- RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
|
||||
- React (from `../node_modules/react-native/`)
|
||||
- React-Core (from `../node_modules/react-native/React`)
|
||||
- React-Core (from `../node_modules/react-native/`)
|
||||
- React-Core/DevSupport (from `../node_modules/react-native/`)
|
||||
- React-Core/RCTWebSocket (from `../node_modules/react-native/`)
|
||||
- React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
|
||||
- React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
|
||||
- React-DevSupport (from `../node_modules/react-native/React`)
|
||||
- React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
|
||||
- React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
|
||||
- React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
|
||||
- react-native-webgl (from `../node_modules/react-native-webgl`)
|
||||
- React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
|
||||
- React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
|
||||
- React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
|
||||
@ -108,38 +298,80 @@ DEPENDENCIES:
|
||||
- React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
|
||||
- React-RCTText (from `../node_modules/react-native/Libraries/Text`)
|
||||
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
|
||||
- React-RCTWebSocket (from `../node_modules/react-native/Libraries/WebSocket`)
|
||||
- ReactCommon/jscallinvoker (from `../node_modules/react-native/ReactCommon`)
|
||||
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
|
||||
- RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
|
||||
- yoga (from `../node_modules/react-native/ReactCommon/yoga`)
|
||||
- UMBarCodeScannerInterface (from `../node_modules/unimodules-barcode-scanner-interface/ios`)
|
||||
- UMCameraInterface (from `../node_modules/unimodules-camera-interface/ios`)
|
||||
- UMConstantsInterface (from `../node_modules/unimodules-constants-interface/ios`)
|
||||
- "UMCore (from `../node_modules/@unimodules/core/ios`)"
|
||||
- UMFaceDetectorInterface (from `../node_modules/unimodules-face-detector-interface/ios`)
|
||||
- UMFileSystemInterface (from `../node_modules/unimodules-file-system-interface/ios`)
|
||||
- UMFontInterface (from `../node_modules/unimodules-font-interface/ios`)
|
||||
- UMImageLoaderInterface (from `../node_modules/unimodules-image-loader-interface/ios`)
|
||||
- UMPermissionsInterface (from `../node_modules/unimodules-permissions-interface/ios`)
|
||||
- "UMReactNativeAdapter (from `../node_modules/@unimodules/react-native-adapter/ios`)"
|
||||
- UMSensorsInterface (from `../node_modules/unimodules-sensors-interface/ios`)
|
||||
- UMTaskManagerInterface (from `../node_modules/unimodules-task-manager-interface/ios`)
|
||||
- Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
|
||||
|
||||
SPEC REPOS:
|
||||
https://github.com/cocoapods/specs.git:
|
||||
trunk:
|
||||
- boost-for-react-native
|
||||
- GPUImage
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
DoubleConversion:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
|
||||
EXAppLoaderProvider:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/expo-app-loader-provider/ios"
|
||||
EXCamera:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/expo-camera/ios"
|
||||
EXConstants:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/expo-constants/ios"
|
||||
EXFileSystem:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/expo-file-system/ios"
|
||||
EXFont:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/expo-font/ios"
|
||||
EXGL:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/expo-gl/ios"
|
||||
EXGL_CPP:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/expo-gl-cpp/cpp"
|
||||
EXPermissions:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/expo-permissions/ios"
|
||||
FBLazyVector:
|
||||
:path: "../node_modules/react-native/Libraries/FBLazyVector"
|
||||
FBReactNativeSpec:
|
||||
:path: "../node_modules/react-native/Libraries/FBReactNativeSpec"
|
||||
Folly:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec"
|
||||
glog:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
|
||||
RCTRequired:
|
||||
:path: "../node_modules/react-native/Libraries/RCTRequired"
|
||||
RCTTypeSafety:
|
||||
:path: "../node_modules/react-native/Libraries/TypeSafety"
|
||||
React:
|
||||
:path: "../node_modules/react-native/"
|
||||
React-Core:
|
||||
:path: "../node_modules/react-native/React"
|
||||
:path: "../node_modules/react-native/"
|
||||
React-CoreModules:
|
||||
:path: "../node_modules/react-native/React/CoreModules"
|
||||
React-cxxreact:
|
||||
:path: "../node_modules/react-native/ReactCommon/cxxreact"
|
||||
React-DevSupport:
|
||||
:path: "../node_modules/react-native/React"
|
||||
React-jsi:
|
||||
:path: "../node_modules/react-native/ReactCommon/jsi"
|
||||
React-jsiexecutor:
|
||||
:path: "../node_modules/react-native/ReactCommon/jsiexecutor"
|
||||
React-jsinspector:
|
||||
:path: "../node_modules/react-native/ReactCommon/jsinspector"
|
||||
react-native-webgl:
|
||||
:path: "../node_modules/react-native-webgl"
|
||||
React-RCTActionSheet:
|
||||
:path: "../node_modules/react-native/Libraries/ActionSheetIOS"
|
||||
React-RCTAnimation:
|
||||
@ -158,40 +390,98 @@ EXTERNAL SOURCES:
|
||||
:path: "../node_modules/react-native/Libraries/Text"
|
||||
React-RCTVibration:
|
||||
:path: "../node_modules/react-native/Libraries/Vibration"
|
||||
React-RCTWebSocket:
|
||||
:path: "../node_modules/react-native/Libraries/WebSocket"
|
||||
ReactCommon:
|
||||
:path: "../node_modules/react-native/ReactCommon"
|
||||
RNGestureHandler:
|
||||
:path: "../node_modules/react-native-gesture-handler"
|
||||
yoga:
|
||||
UMBarCodeScannerInterface:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/unimodules-barcode-scanner-interface/ios"
|
||||
UMCameraInterface:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/unimodules-camera-interface/ios"
|
||||
UMConstantsInterface:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/unimodules-constants-interface/ios"
|
||||
UMCore:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/@unimodules/core/ios"
|
||||
UMFaceDetectorInterface:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/unimodules-face-detector-interface/ios"
|
||||
UMFileSystemInterface:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/unimodules-file-system-interface/ios"
|
||||
UMFontInterface:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/unimodules-font-interface/ios"
|
||||
UMImageLoaderInterface:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/unimodules-image-loader-interface/ios"
|
||||
UMPermissionsInterface:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/unimodules-permissions-interface/ios"
|
||||
UMReactNativeAdapter:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/@unimodules/react-native-adapter/ios"
|
||||
UMSensorsInterface:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/unimodules-sensors-interface/ios"
|
||||
UMTaskManagerInterface:
|
||||
:path: !ruby/object:Pathname
|
||||
path: "../node_modules/unimodules-task-manager-interface/ios"
|
||||
Yoga:
|
||||
:path: "../node_modules/react-native/ReactCommon/yoga"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
|
||||
DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2
|
||||
EXAppLoaderProvider: ebdb6bc2632c1ccadbe49f5e4104d8d690969c49
|
||||
EXCamera: c9765fcb15d862c2f405d5226931d8d96f03fb03
|
||||
EXConstants: 4051b16c17ef3defa03c541d42811dc92b249146
|
||||
EXFileSystem: 6e0d9bb6cc4ea404dbb8f583c1a8a2dcdf4b83b6
|
||||
EXFont: 6187b5ab46ee578d5f8e7f2ea092752e78772235
|
||||
EXGL: 3add8ba2c89377285f57cda493d4bc50939b5300
|
||||
EXGL_CPP: a737ee53425d37df03538e81e4bb285739196c50
|
||||
EXPermissions: 9bc08859a675d291e89be9a0870155c27c16ac35
|
||||
FBLazyVector: aaeaf388755e4f29cd74acbc9e3b8da6d807c37f
|
||||
FBReactNativeSpec: 118d0d177724c2d67f08a59136eb29ef5943ec75
|
||||
Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51
|
||||
glog: 1f3da668190260b06b429bb211bfbee5cd790c28
|
||||
GPUImage: 733a5f0fab92df9de1c37ba9df520a833ccb406d
|
||||
React: 53c53c4d99097af47cf60594b8706b4e3321e722
|
||||
React-Core: ba421f6b4f4cbe2fb17c0b6fc675f87622e78a64
|
||||
React-cxxreact: 8384287780c4999351ad9b6e7a149d9ed10a2395
|
||||
React-DevSupport: 197fb409737cff2c4f9986e77c220d7452cb9f9f
|
||||
React-jsi: 4d8c9efb6312a9725b18d6fc818ffc103f60fec2
|
||||
React-jsiexecutor: 90ad2f9db09513fc763bc757fdc3c4ff8bde2a30
|
||||
React-jsinspector: e08662d1bf5b129a3d556eb9ea343a3f40353ae4
|
||||
react-native-webgl: 8545122cb714aec77ebf78be8c281435283ec5a0
|
||||
React-RCTActionSheet: b0f1ea83f4bf75fb966eae9bfc47b78c8d3efd90
|
||||
React-RCTAnimation: 359ba1b5690b1e87cc173558a78e82d35919333e
|
||||
React-RCTBlob: 5e2b55f76e9a1c7ae52b826923502ddc3238df24
|
||||
React-RCTImage: f5f1c50922164e89bdda67bcd0153952a5cfe719
|
||||
React-RCTLinking: d0ecbd791e9ddddc41fa1f66b0255de90e8ee1e9
|
||||
React-RCTNetwork: e26946300b0ab7bb6c4a6348090e93fa21f33a9d
|
||||
React-RCTSettings: d0d37cb521b7470c998595a44f05847777cc3f42
|
||||
React-RCTText: b074d89033583d4f2eb5faf7ea2db3a13c7553a2
|
||||
React-RCTVibration: 2105b2e0e2b66a6408fc69a46c8a7fb5b2fdade0
|
||||
React-RCTWebSocket: cd932a16b7214898b6b7f788c8bddb3637246ac4
|
||||
RNGestureHandler: 5329a942fce3d41c68b84c2c2276ce06a696d8b0
|
||||
yoga: 312528f5bbbba37b4dcea5ef00e8b4033fdd9411
|
||||
RCTRequired: b153add4da6e7dbc44aebf93f3cf4fcae392ddf1
|
||||
RCTTypeSafety: 9aa1b91d7f9310fc6eadc3cf95126ffe818af320
|
||||
React: b6a59ef847b2b40bb6e0180a97d0ca716969ac78
|
||||
React-Core: 688b451f7d616cc1134ac95295b593d1b5158a04
|
||||
React-CoreModules: d04f8494c1a328b69ec11db9d1137d667f916dcb
|
||||
React-cxxreact: d0f7bcafa196ae410e5300736b424455e7fb7ba7
|
||||
React-jsi: cb2cd74d7ccf4cffb071a46833613edc79cdf8f7
|
||||
React-jsiexecutor: d5525f9ed5f782fdbacb64b9b01a43a9323d2386
|
||||
React-jsinspector: fa0ecc501688c3c4c34f28834a76302233e29dc0
|
||||
React-RCTActionSheet: 600b4d10e3aea0913b5a92256d2719c0cdd26d76
|
||||
React-RCTAnimation: 791a87558389c80908ed06cc5dfc5e7920dfa360
|
||||
React-RCTBlob: d89293cc0236d9cb0933d85e430b0bbe81ad1d72
|
||||
React-RCTImage: 6b8e8df449eb7c814c99a92d6b52de6fe39dea4e
|
||||
React-RCTLinking: 121bb231c7503cf9094f4d8461b96a130fabf4a5
|
||||
React-RCTNetwork: fb353640aafcee84ca8b78957297bd395f065c9a
|
||||
React-RCTSettings: 8db258ea2a5efee381fcf7a6d5044e2f8b68b640
|
||||
React-RCTText: 9ccc88273e9a3aacff5094d2175a605efa854dbe
|
||||
React-RCTVibration: a49a1f42bf8f5acf1c3e297097517c6b3af377ad
|
||||
ReactCommon: 198c7c8d3591f975e5431bec1b0b3b581aa1c5dd
|
||||
RNGestureHandler: 02905abe54e1f6e59c081a10b4bd689721e17aa6
|
||||
UMBarCodeScannerInterface: 3802c8574ef119c150701d679ab386e2266d6a54
|
||||
UMCameraInterface: 985d301f688ed392f815728f0dd906ca34b7ccb1
|
||||
UMConstantsInterface: bda5f8bd3403ad99e663eb3c4da685d063c5653c
|
||||
UMCore: 7ab08669a8bb2e61f557c1fe9784521cb5aa28e3
|
||||
UMFaceDetectorInterface: ce14e8e597f6a52aa66e4ab956cb5bff4fa8acf8
|
||||
UMFileSystemInterface: 2ed004c9620f43f0b36b33c42ce668500850d6a4
|
||||
UMFontInterface: 24fbc0a02ade6c60ad3ee3e2b5d597c8dcfc3208
|
||||
UMImageLoaderInterface: 3976a14c588341228881ff75970fbabf122efca4
|
||||
UMPermissionsInterface: 2abf9f7f4aa7110e27beaf634a7deda2d50ff3d7
|
||||
UMReactNativeAdapter: 230406e3335a8dbd4c9c0e654488a1cf3b44552f
|
||||
UMSensorsInterface: d708a892ef1500bdd9fc3ff03f7836c66d1634d3
|
||||
UMTaskManagerInterface: a98e37a576a5220bf43b8faf33cfdc129d2f441d
|
||||
Yoga: f2a7cd4280bfe2cca5a7aed98ba0eb3d1310f18b
|
||||
|
||||
PODFILE CHECKSUM: bdad58e7b53b7d0c3c54fa789589c6e3ac5352ef
|
||||
PODFILE CHECKSUM: fa91a3f4bfe9b3de98127c214587af588d640240
|
||||
|
||||
COCOAPODS: 1.7.5
|
||||
COCOAPODS: 1.8.4
|
||||
|
||||
@ -12,14 +12,14 @@
|
||||
13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; };
|
||||
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
|
||||
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
|
||||
199FC3715648F5AB69FCFB6C /* libPods-cookbook-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A67D996AD1F6EF59C264983 /* libPods-cookbook-tvOSTests.a */; };
|
||||
2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
|
||||
2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
|
||||
2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
|
||||
2DCD954D1E0B4F2C00145EB5 /* cookbookTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* cookbookTests.m */; };
|
||||
31696A9B3C15FDC93DAEB022 /* libPods-cookbookTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 51CA4494C542CB0008290D21 /* libPods-cookbookTests.a */; };
|
||||
49166FA0D9D2FED381D80ED5 /* libPods-cookbook.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A588ECAF38923A401DE804D /* libPods-cookbook.a */; };
|
||||
51CD5D2E930B5A8DE3269C5A /* libPods-cookbook-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 433FA39EA87AF96C5E525E4A /* libPods-cookbook-tvOS.a */; };
|
||||
582C38C17C459943F6368871 /* libPods-cookbook-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 66328097ABC56D9C8F0DB772 /* libPods-cookbook-tvOSTests.a */; };
|
||||
9FDF5FAA27D5DA3A5BDC1AD3 /* libPods-cookbook.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D5ECF8490DD1465E63728B9 /* libPods-cookbook.a */; };
|
||||
B852D2D1519B8A86B9AD5597 /* libPods-cookbookTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A853EC3E12688F4881D67876 /* libPods-cookbookTests.a */; };
|
||||
CDB93FCC5C6E67279D41F1D7 /* libPods-cookbook-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C4016360DCD38DBC1B90BE9 /* libPods-cookbook-tvOS.a */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
@ -44,7 +44,7 @@
|
||||
00E356EE1AD99517003FC87E /* cookbookTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = cookbookTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
00E356F21AD99517003FC87E /* cookbookTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = cookbookTests.m; sourceTree = "<group>"; };
|
||||
0BE7B04998F1F1CFBEF93995 /* Pods-cookbookTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cookbookTests.release.xcconfig"; path = "Target Support Files/Pods-cookbookTests/Pods-cookbookTests.release.xcconfig"; sourceTree = "<group>"; };
|
||||
0A67D996AD1F6EF59C264983 /* libPods-cookbook-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-cookbook-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
13B07F961A680F5B00A75B9A /* cookbook.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = cookbook.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = cookbook/AppDelegate.h; sourceTree = "<group>"; };
|
||||
13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = cookbook/AppDelegate.m; sourceTree = "<group>"; };
|
||||
@ -52,19 +52,19 @@
|
||||
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = cookbook/Images.xcassets; sourceTree = "<group>"; };
|
||||
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = cookbook/Info.plist; sourceTree = "<group>"; };
|
||||
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = cookbook/main.m; sourceTree = "<group>"; };
|
||||
1C4016360DCD38DBC1B90BE9 /* libPods-cookbook-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-cookbook-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
2D02E47B1E0B4A5D006451C7 /* cookbook-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "cookbook-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
2D02E4901E0B4A5D006451C7 /* cookbook-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "cookbook-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
2E0A262A24A880BA816F2632 /* Pods-cookbookTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cookbookTests.debug.xcconfig"; path = "Target Support Files/Pods-cookbookTests/Pods-cookbookTests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
2E7D5F55C3B27EDC08F6E0D1 /* Pods-cookbook-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cookbook-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-cookbook-tvOS/Pods-cookbook-tvOS.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
3A588ECAF38923A401DE804D /* libPods-cookbook.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-cookbook.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
433FA39EA87AF96C5E525E4A /* libPods-cookbook-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-cookbook-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
4DB264DBFD637AF090044AA5 /* Pods-cookbook.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cookbook.release.xcconfig"; path = "Target Support Files/Pods-cookbook/Pods-cookbook.release.xcconfig"; sourceTree = "<group>"; };
|
||||
51CA4494C542CB0008290D21 /* libPods-cookbookTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-cookbookTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
66328097ABC56D9C8F0DB772 /* libPods-cookbook-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-cookbook-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
751A6BC67B33D447FA0259BF /* Pods-cookbook-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cookbook-tvOSTests.release.xcconfig"; path = "Target Support Files/Pods-cookbook-tvOSTests/Pods-cookbook-tvOSTests.release.xcconfig"; sourceTree = "<group>"; };
|
||||
8248EFB047ED6A332839093A /* Pods-cookbook-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cookbook-tvOSTests.debug.xcconfig"; path = "Target Support Files/Pods-cookbook-tvOSTests/Pods-cookbook-tvOSTests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
C055FC3DE920EE4AD6BEE636 /* Pods-cookbook.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cookbook.debug.xcconfig"; path = "Target Support Files/Pods-cookbook/Pods-cookbook.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
D46C71DB25749E562B9E0F21 /* Pods-cookbook-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cookbook-tvOS.release.xcconfig"; path = "Target Support Files/Pods-cookbook-tvOS/Pods-cookbook-tvOS.release.xcconfig"; sourceTree = "<group>"; };
|
||||
2D5ECF8490DD1465E63728B9 /* libPods-cookbook.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-cookbook.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
381DF9BB3BB458E9F340B659 /* Pods-cookbook-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cookbook-tvOSTests.release.xcconfig"; path = "Target Support Files/Pods-cookbook-tvOSTests/Pods-cookbook-tvOSTests.release.xcconfig"; sourceTree = "<group>"; };
|
||||
3F82C2BA077E8CD68146F360 /* Pods-cookbook-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cookbook-tvOSTests.debug.xcconfig"; path = "Target Support Files/Pods-cookbook-tvOSTests/Pods-cookbook-tvOSTests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
5D61C682C78D640D52AEA2A3 /* Pods-cookbookTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cookbookTests.debug.xcconfig"; path = "Target Support Files/Pods-cookbookTests/Pods-cookbookTests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
5F2B2700A542AD56564B3EA5 /* Pods-cookbookTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cookbookTests.release.xcconfig"; path = "Target Support Files/Pods-cookbookTests/Pods-cookbookTests.release.xcconfig"; sourceTree = "<group>"; };
|
||||
7A4A7BD1C24376CA2F5F08CF /* Pods-cookbook.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cookbook.debug.xcconfig"; path = "Target Support Files/Pods-cookbook/Pods-cookbook.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
8C1CCB4222EE811829D4BD41 /* Pods-cookbook-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cookbook-tvOS.release.xcconfig"; path = "Target Support Files/Pods-cookbook-tvOS/Pods-cookbook-tvOS.release.xcconfig"; sourceTree = "<group>"; };
|
||||
8D3CC278BCC1D3B00E762E03 /* Pods-cookbook.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cookbook.release.xcconfig"; path = "Target Support Files/Pods-cookbook/Pods-cookbook.release.xcconfig"; sourceTree = "<group>"; };
|
||||
93B052194CEE440F5C7B4FD8 /* Pods-cookbook-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-cookbook-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-cookbook-tvOS/Pods-cookbook-tvOS.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
A853EC3E12688F4881D67876 /* libPods-cookbookTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-cookbookTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
|
||||
ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
@ -74,7 +74,7 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
31696A9B3C15FDC93DAEB022 /* libPods-cookbookTests.a in Frameworks */,
|
||||
B852D2D1519B8A86B9AD5597 /* libPods-cookbookTests.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -82,7 +82,7 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
49166FA0D9D2FED381D80ED5 /* libPods-cookbook.a in Frameworks */,
|
||||
9FDF5FAA27D5DA3A5BDC1AD3 /* libPods-cookbook.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -90,7 +90,7 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
51CD5D2E930B5A8DE3269C5A /* libPods-cookbook-tvOS.a in Frameworks */,
|
||||
CDB93FCC5C6E67279D41F1D7 /* libPods-cookbook-tvOS.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -98,7 +98,7 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
582C38C17C459943F6368871 /* libPods-cookbook-tvOSTests.a in Frameworks */,
|
||||
199FC3715648F5AB69FCFB6C /* libPods-cookbook-tvOSTests.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -141,29 +141,14 @@
|
||||
children = (
|
||||
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
|
||||
ED2971642150620600B7C4FE /* JavaScriptCore.framework */,
|
||||
3A588ECAF38923A401DE804D /* libPods-cookbook.a */,
|
||||
433FA39EA87AF96C5E525E4A /* libPods-cookbook-tvOS.a */,
|
||||
66328097ABC56D9C8F0DB772 /* libPods-cookbook-tvOSTests.a */,
|
||||
51CA4494C542CB0008290D21 /* libPods-cookbookTests.a */,
|
||||
2D5ECF8490DD1465E63728B9 /* libPods-cookbook.a */,
|
||||
1C4016360DCD38DBC1B90BE9 /* libPods-cookbook-tvOS.a */,
|
||||
0A67D996AD1F6EF59C264983 /* libPods-cookbook-tvOSTests.a */,
|
||||
A853EC3E12688F4881D67876 /* libPods-cookbookTests.a */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4F86CE627ED054A289620B6A /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C055FC3DE920EE4AD6BEE636 /* Pods-cookbook.debug.xcconfig */,
|
||||
4DB264DBFD637AF090044AA5 /* Pods-cookbook.release.xcconfig */,
|
||||
2E7D5F55C3B27EDC08F6E0D1 /* Pods-cookbook-tvOS.debug.xcconfig */,
|
||||
D46C71DB25749E562B9E0F21 /* Pods-cookbook-tvOS.release.xcconfig */,
|
||||
8248EFB047ED6A332839093A /* Pods-cookbook-tvOSTests.debug.xcconfig */,
|
||||
751A6BC67B33D447FA0259BF /* Pods-cookbook-tvOSTests.release.xcconfig */,
|
||||
2E0A262A24A880BA816F2632 /* Pods-cookbookTests.debug.xcconfig */,
|
||||
0BE7B04998F1F1CFBEF93995 /* Pods-cookbookTests.release.xcconfig */,
|
||||
);
|
||||
path = Pods;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
832341AE1AAA6A7D00B99B32 /* Libraries */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -179,7 +164,7 @@
|
||||
00E356EF1AD99517003FC87E /* cookbookTests */,
|
||||
83CBBA001A601CBA00E9B192 /* Products */,
|
||||
2D16E6871FA4F8E400B85C8A /* Frameworks */,
|
||||
4F86CE627ED054A289620B6A /* Pods */,
|
||||
FCF3B144F731BC48ACA2A53C /* Pods */,
|
||||
);
|
||||
indentWidth = 2;
|
||||
sourceTree = "<group>";
|
||||
@ -197,6 +182,22 @@
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
FCF3B144F731BC48ACA2A53C /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7A4A7BD1C24376CA2F5F08CF /* Pods-cookbook.debug.xcconfig */,
|
||||
8D3CC278BCC1D3B00E762E03 /* Pods-cookbook.release.xcconfig */,
|
||||
93B052194CEE440F5C7B4FD8 /* Pods-cookbook-tvOS.debug.xcconfig */,
|
||||
8C1CCB4222EE811829D4BD41 /* Pods-cookbook-tvOS.release.xcconfig */,
|
||||
3F82C2BA077E8CD68146F360 /* Pods-cookbook-tvOSTests.debug.xcconfig */,
|
||||
381DF9BB3BB458E9F340B659 /* Pods-cookbook-tvOSTests.release.xcconfig */,
|
||||
5D61C682C78D640D52AEA2A3 /* Pods-cookbookTests.debug.xcconfig */,
|
||||
5F2B2700A542AD56564B3EA5 /* Pods-cookbookTests.release.xcconfig */,
|
||||
);
|
||||
name = Pods;
|
||||
path = Pods;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
@ -204,7 +205,7 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "cookbookTests" */;
|
||||
buildPhases = (
|
||||
00705FF64F5C1CE8D637EF61 /* [CP] Check Pods Manifest.lock */,
|
||||
518FA5A54A52EB0B96FFC8F0 /* [CP] Check Pods Manifest.lock */,
|
||||
00E356EA1AD99517003FC87E /* Sources */,
|
||||
00E356EB1AD99517003FC87E /* Frameworks */,
|
||||
00E356EC1AD99517003FC87E /* Resources */,
|
||||
@ -223,13 +224,12 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "cookbook" */;
|
||||
buildPhases = (
|
||||
C56BD70F888D7D82A312B31D /* [CP] Check Pods Manifest.lock */,
|
||||
A5B5235272DE5D4274F9049A /* [CP] Check Pods Manifest.lock */,
|
||||
FD10A7F022414F080027D42C /* Start Packager */,
|
||||
13B07F871A680F5B00A75B9A /* Sources */,
|
||||
13B07F8C1A680F5B00A75B9A /* Frameworks */,
|
||||
13B07F8E1A680F5B00A75B9A /* Resources */,
|
||||
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
|
||||
F03416A971E2D4D9149BB53A /* [CP] Copy Pods Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@ -244,7 +244,7 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "cookbook-tvOS" */;
|
||||
buildPhases = (
|
||||
73D943DE5AB29527316C1C10 /* [CP] Check Pods Manifest.lock */,
|
||||
162F3E7DD3CC215813AEDB20 /* [CP] Check Pods Manifest.lock */,
|
||||
FD10A7F122414F3F0027D42C /* Start Packager */,
|
||||
2D02E4771E0B4A5D006451C7 /* Sources */,
|
||||
2D02E4781E0B4A5D006451C7 /* Frameworks */,
|
||||
@ -264,7 +264,7 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "cookbook-tvOSTests" */;
|
||||
buildPhases = (
|
||||
899DD0BFEC191AA572CAD123 /* [CP] Check Pods Manifest.lock */,
|
||||
AC829A2D322A5C90D5C9B04C /* [CP] Check Pods Manifest.lock */,
|
||||
2D02E48C1E0B4A5D006451C7 /* Sources */,
|
||||
2D02E48D1E0B4A5D006451C7 /* Frameworks */,
|
||||
2D02E48E1E0B4A5D006451C7 /* Resources */,
|
||||
@ -308,7 +308,6 @@
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
English,
|
||||
en,
|
||||
Base,
|
||||
);
|
||||
@ -360,28 +359,6 @@
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
00705FF64F5C1CE8D637EF61 /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||
"${PODS_ROOT}/Manifest.lock",
|
||||
);
|
||||
name = "[CP] Check Pods Manifest.lock";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
"$(DERIVED_FILE_DIR)/Pods-cookbookTests-checkManifestLockResult.txt",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@ -396,21 +373,7 @@
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
|
||||
};
|
||||
2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Bundle React Native Code And Images";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
|
||||
};
|
||||
73D943DE5AB29527316C1C10 /* [CP] Check Pods Manifest.lock */ = {
|
||||
162F3E7DD3CC215813AEDB20 /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
@ -432,7 +395,21 @@
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
899DD0BFEC191AA572CAD123 /* [CP] Check Pods Manifest.lock */ = {
|
||||
2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Bundle React Native Code And Images";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
|
||||
};
|
||||
518FA5A54A52EB0B96FFC8F0 /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
@ -447,14 +424,14 @@
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
"$(DERIVED_FILE_DIR)/Pods-cookbook-tvOSTests-checkManifestLockResult.txt",
|
||||
"$(DERIVED_FILE_DIR)/Pods-cookbookTests-checkManifestLockResult.txt",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
C56BD70F888D7D82A312B31D /* [CP] Check Pods Manifest.lock */ = {
|
||||
A5B5235272DE5D4274F9049A /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
@ -476,30 +453,26 @@
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
F03416A971E2D4D9149BB53A /* [CP] Copy Pods Resources */ = {
|
||||
AC829A2D322A5C90D5C9B04C /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-cookbook/Pods-cookbook-resources.sh",
|
||||
"${PODS_ROOT}/GPUImage/framework/Resources/lookup.png",
|
||||
"${PODS_ROOT}/GPUImage/framework/Resources/lookup_amatorka.png",
|
||||
"${PODS_ROOT}/GPUImage/framework/Resources/lookup_miss_etikate.png",
|
||||
"${PODS_ROOT}/GPUImage/framework/Resources/lookup_soft_elegance_1.png",
|
||||
"${PODS_ROOT}/GPUImage/framework/Resources/lookup_soft_elegance_2.png",
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||
"${PODS_ROOT}/Manifest.lock",
|
||||
);
|
||||
name = "[CP] Check Pods Manifest.lock";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
name = "[CP] Copy Pods Resources";
|
||||
outputPaths = (
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/lookup.png",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/lookup_amatorka.png",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/lookup_miss_etikate.png",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/lookup_soft_elegance_1.png",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/lookup_soft_elegance_2.png",
|
||||
"$(DERIVED_FILE_DIR)/Pods-cookbook-tvOSTests-checkManifestLockResult.txt",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-cookbook/Pods-cookbook-resources.sh\"\n";
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
FD10A7F022414F080027D42C /* Start Packager */ = {
|
||||
@ -607,7 +580,7 @@
|
||||
/* Begin XCBuildConfiguration section */
|
||||
00E356F61AD99517003FC87E /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 2E0A262A24A880BA816F2632 /* Pods-cookbookTests.debug.xcconfig */;
|
||||
baseConfigurationReference = 5D61C682C78D640D52AEA2A3 /* Pods-cookbookTests.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
@ -630,7 +603,7 @@
|
||||
};
|
||||
00E356F71AD99517003FC87E /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 0BE7B04998F1F1CFBEF93995 /* Pods-cookbookTests.release.xcconfig */;
|
||||
baseConfigurationReference = 5F2B2700A542AD56564B3EA5 /* Pods-cookbookTests.release.xcconfig */;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
@ -650,7 +623,7 @@
|
||||
};
|
||||
13B07F941A680F5B00A75B9A /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = C055FC3DE920EE4AD6BEE636 /* Pods-cookbook.debug.xcconfig */;
|
||||
baseConfigurationReference = 7A4A7BD1C24376CA2F5F08CF /* Pods-cookbook.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
@ -670,7 +643,7 @@
|
||||
};
|
||||
13B07F951A680F5B00A75B9A /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 4DB264DBFD637AF090044AA5 /* Pods-cookbook.release.xcconfig */;
|
||||
baseConfigurationReference = 8D3CC278BCC1D3B00E762E03 /* Pods-cookbook.release.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
@ -689,7 +662,7 @@
|
||||
};
|
||||
2D02E4971E0B4A5E006451C7 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 2E7D5F55C3B27EDC08F6E0D1 /* Pods-cookbook-tvOS.debug.xcconfig */;
|
||||
baseConfigurationReference = 93B052194CEE440F5C7B4FD8 /* Pods-cookbook-tvOS.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
|
||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
||||
@ -717,7 +690,7 @@
|
||||
};
|
||||
2D02E4981E0B4A5E006451C7 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D46C71DB25749E562B9E0F21 /* Pods-cookbook-tvOS.release.xcconfig */;
|
||||
baseConfigurationReference = 8C1CCB4222EE811829D4BD41 /* Pods-cookbook-tvOS.release.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
|
||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
||||
@ -745,7 +718,7 @@
|
||||
};
|
||||
2D02E4991E0B4A5E006451C7 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 8248EFB047ED6A332839093A /* Pods-cookbook-tvOSTests.debug.xcconfig */;
|
||||
baseConfigurationReference = 3F82C2BA077E8CD68146F360 /* Pods-cookbook-tvOSTests.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
@ -772,7 +745,7 @@
|
||||
};
|
||||
2D02E49A1E0B4A5E006451C7 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 751A6BC67B33D447FA0259BF /* Pods-cookbook-tvOSTests.release.xcconfig */;
|
||||
baseConfigurationReference = 381DF9BB3BB458E9F340B659 /* Pods-cookbook-tvOSTests.release.xcconfig */;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
|
||||
@ -7,9 +7,11 @@
|
||||
|
||||
#import <React/RCTBridgeDelegate.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <UMReactNativeAdapter/UMModuleRegistryAdapter.h>
|
||||
|
||||
@interface AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeDelegate>
|
||||
|
||||
@property (nonatomic, strong) UMModuleRegistryAdapter *moduleRegistryAdapter;
|
||||
@property (nonatomic, strong) UIWindow *window;
|
||||
|
||||
@end
|
||||
|
||||
@ -10,11 +10,15 @@
|
||||
#import <React/RCTBridge.h>
|
||||
#import <React/RCTBundleURLProvider.h>
|
||||
#import <React/RCTRootView.h>
|
||||
#import <UMCore/UMModuleRegistry.h>
|
||||
#import <UMReactNativeAdapter/UMNativeModulesProxy.h>
|
||||
#import <UMReactNativeAdapter/UMModuleRegistryAdapter.h>
|
||||
|
||||
@implementation AppDelegate
|
||||
|
||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
||||
{
|
||||
self.moduleRegistryAdapter = [[UMModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[UMModuleRegistryProvider alloc] init]];
|
||||
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
|
||||
RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
|
||||
moduleName:@"cookbook"
|
||||
@ -30,6 +34,14 @@
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge
|
||||
{
|
||||
NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge];
|
||||
// You can inject any extra modules that you would like here, more information at:
|
||||
// https://facebook.github.io/react-native/docs/native-modules-ios.html#dependency-injection
|
||||
return extraModules;
|
||||
}
|
||||
|
||||
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
|
||||
{
|
||||
#if DEBUG
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
#import <React/RCTRootView.h>
|
||||
|
||||
#define TIMEOUT_SECONDS 600
|
||||
#define TEXT_TO_LOOK_FOR @"Welcome to React Native!"
|
||||
#define TEXT_TO_LOOK_FOR @"Welcome to React"
|
||||
|
||||
@interface cookbookTests : XCTestCase
|
||||
|
||||
@ -40,11 +40,13 @@
|
||||
BOOL foundElement = NO;
|
||||
|
||||
__block NSString *redboxError = nil;
|
||||
#ifdef DEBUG
|
||||
RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) {
|
||||
if (level >= RCTLogLevelError) {
|
||||
redboxError = message;
|
||||
}
|
||||
});
|
||||
#endif
|
||||
|
||||
while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) {
|
||||
[[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
|
||||
@ -57,8 +59,10 @@
|
||||
return NO;
|
||||
}];
|
||||
}
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
RCTSetLogFunction(RCTDefaultLogFunction);
|
||||
#endif
|
||||
|
||||
XCTAssertNil(redboxError, @"RedBox error: %@", redboxError);
|
||||
XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS);
|
||||
|
||||
@ -3,36 +3,45 @@
|
||||
"version": "0.0.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"prepare": "rm -rf ./shared/ && cp -R ../cookbook-rn-shared/ shared && cp gl-react-implementation.js shared && ./shared/examples/gen.sh > ./shared/examples/index.js",
|
||||
"android": "react-native run-android",
|
||||
"ios": "react-native run-ios",
|
||||
"start": "react-native start",
|
||||
"test": "jest",
|
||||
"lint": "eslint ."
|
||||
"lint": "eslint .",
|
||||
"prepare": "cd ios && pod install && cd - && rm -rf ./shared/ && cp -R ../cookbook-rn-shared/ shared && cp gl-react-implementation.js shared && ./shared/examples/gen.sh > ./shared/examples/index.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"gl-react": "3.17.2",
|
||||
"gl-react-native": "3.17.2",
|
||||
"expo-asset-utils": "^1.2.0",
|
||||
"expo-camera": "^8.0.0",
|
||||
"expo-font": "^8.0.0",
|
||||
"expo-gl": "^8.0.0",
|
||||
"expo-permissions": "^8.0.0",
|
||||
"gl-react": "canary",
|
||||
"gl-react-native": "canary",
|
||||
"gl-transitions": "^1.43.0",
|
||||
"ndarray": "^1.0.18",
|
||||
"raf": "^3.4.1",
|
||||
"react": "^16.9.0",
|
||||
"react": "16.9.0",
|
||||
"react-gl-transition": "^1.19.2",
|
||||
"react-motion": "^0.5.2",
|
||||
"react-native": "0.60.5",
|
||||
"react-native-gesture-handler": "^1.3.0",
|
||||
"react-native-webgl": "file:/Users/grenaudeau/dev/react-native-webgl",
|
||||
"react-navigation": "^3.11.1",
|
||||
"seedrandom": "github:gre/seedrandom#released",
|
||||
"three": "^0.107.0"
|
||||
"react-native": "0.61.5",
|
||||
"react-native-gesture-handler": "^1.5.3",
|
||||
"react-native-unimodules": "^0.7.0",
|
||||
"react-navigation": "^4.0.10",
|
||||
"react-navigation-stack": "^1.10.3",
|
||||
"seedrandom": "^3.0.5",
|
||||
"three": "^0.112.1",
|
||||
"webgltexture-loader-expo-camera": "^1.0.0-rc.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.5.5",
|
||||
"@babel/runtime": "^7.5.5",
|
||||
"@babel/core": "^7.7.7",
|
||||
"@babel/runtime": "^7.7.7",
|
||||
"@react-native-community/eslint-config": "^0.0.5",
|
||||
"babel-jest": "^24.8.0",
|
||||
"eslint": "^6.1.0",
|
||||
"jest": "^24.8.0",
|
||||
"metro-react-native-babel-preset": "^0.56.0",
|
||||
"react-test-renderer": "16.8.6"
|
||||
"babel-jest": "^24.9.0",
|
||||
"eslint": "^6.8.0",
|
||||
"jest": "^24.9.0",
|
||||
"metro-react-native-babel-preset": "^0.57.0",
|
||||
"react-test-renderer": "16.9.0"
|
||||
},
|
||||
"jest": {
|
||||
"preset": "react-native"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -9,3 +9,6 @@ npm-debug.*
|
||||
*.orig.*
|
||||
web-build/
|
||||
web-report/
|
||||
|
||||
# macOS
|
||||
.DS_Store
|
||||
|
||||
@ -1 +0,0 @@
|
||||
{}
|
||||
@ -1,2 +1,3 @@
|
||||
import "webgltexture-loader-expo-camera";
|
||||
import App from "./src/App";
|
||||
export default App;
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
"name": "gl-react camera effects",
|
||||
"slug": "expo-gl-react-camera-effects",
|
||||
"privacy": "public",
|
||||
"sdkVersion": "34.0.0",
|
||||
"sdkVersion": "36.0.0",
|
||||
"platforms": [
|
||||
"ios",
|
||||
"android",
|
||||
@ -27,4 +27,4 @@
|
||||
"supportsTablet": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,19 +8,21 @@
|
||||
"eject": "expo eject"
|
||||
},
|
||||
"dependencies": {
|
||||
"expo": "^34.0.1",
|
||||
"expo-camera": "^6.0.0",
|
||||
"expo-gl": "^6.0.0",
|
||||
"expo-permissions": "~6.0.0",
|
||||
"gl-react": "3.17.2",
|
||||
"gl-react-expo": "3.17.2",
|
||||
"react": "16.8.3",
|
||||
"react-dom": "^16.8.6",
|
||||
"react-native": "https://github.com/expo/react-native/archive/sdk-34.0.0.tar.gz",
|
||||
"react-native-web": "^0.11.4"
|
||||
"expo": "~36.0.0",
|
||||
"expo-camera": "^8.0.0",
|
||||
"expo-gl": "^8.0.0",
|
||||
"expo-permissions": "^8.0.0",
|
||||
"gl-react": "canary",
|
||||
"gl-react-expo": "canary",
|
||||
"react": "~16.9.0",
|
||||
"react-dom": "~16.9.0",
|
||||
"react-native": "https://github.com/expo/react-native/archive/sdk-36.0.0.tar.gz",
|
||||
"react-native-web": "~0.11.7",
|
||||
"webgltexture-loader-expo-camera": "canary"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-preset-expo": "^6.0.0"
|
||||
"@babel/core": "^7.0.0",
|
||||
"babel-preset-expo": "~8.0.0"
|
||||
},
|
||||
"private": true
|
||||
}
|
||||
|
||||
@ -5,22 +5,21 @@ import { TouchableOpacity, View, Text, Slider, StyleSheet } from "react-native";
|
||||
const styles = StyleSheet.create({
|
||||
field: {
|
||||
flexDirection: "row",
|
||||
alignItems: "center",
|
||||
alignItems: "center"
|
||||
},
|
||||
title: {
|
||||
width: 120,
|
||||
textAlign: "right",
|
||||
fontSize: 14,
|
||||
fontFamily: "Helvetica",
|
||||
fontSize: 14
|
||||
},
|
||||
value: {
|
||||
width: 80,
|
||||
width: 80
|
||||
},
|
||||
range: {
|
||||
flex: 1,
|
||||
height: 20,
|
||||
margin: 6,
|
||||
},
|
||||
margin: 6
|
||||
}
|
||||
});
|
||||
|
||||
export default class Field extends Component {
|
||||
@ -33,7 +32,7 @@ export default class Field extends Component {
|
||||
step?: number,
|
||||
prettyPrint: (value: number) => string,
|
||||
onChange: (value: number, id: string) => void,
|
||||
onReset: (id: string) => void,
|
||||
onReset: (id: string) => void
|
||||
};
|
||||
onChange = (value: number) => {
|
||||
this.props.onChange(value, this.props.id);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -10,10 +10,10 @@
|
||||
"start": "next start"
|
||||
},
|
||||
"dependencies": {
|
||||
"gl-react": "3.17.1",
|
||||
"gl-react-dom": "3.17.1",
|
||||
"next": "9",
|
||||
"react": "16",
|
||||
"react-dom": "16"
|
||||
"gl-react": "3.17.2",
|
||||
"gl-react-dom": "3.17.2",
|
||||
"next": "9.1.6",
|
||||
"react": "16.12.0",
|
||||
"react-dom": "16.12.0"
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
20
package.json
20
package.json
@ -17,17 +17,17 @@
|
||||
"publish": "yarn && lerna run clean && yarn build && lerna publish --registry=https://registry.npmjs.org/"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.5.5",
|
||||
"@babel/plugin-proposal-class-properties": "^7.5.5",
|
||||
"@babel/plugin-proposal-object-rest-spread": "^7.5.5",
|
||||
"@babel/preset-env": "^7.5.5",
|
||||
"@babel/preset-flow": "^7.0.0",
|
||||
"@babel/preset-react": "^7.0.0",
|
||||
"@babel/cli": "^7.7.7",
|
||||
"@babel/plugin-proposal-class-properties": "^7.7.4",
|
||||
"@babel/plugin-proposal-object-rest-spread": "^7.7.7",
|
||||
"@babel/preset-env": "^7.7.7",
|
||||
"@babel/preset-flow": "^7.7.4",
|
||||
"@babel/preset-react": "^7.7.4",
|
||||
"browserify": "^16.5.0",
|
||||
"browserify-shim": "^3.8.12",
|
||||
"documentation": "12.1.1",
|
||||
"flow-copy-source": "^2.0.7",
|
||||
"lerna": "^3.16.4",
|
||||
"prettier": "^1.18.2"
|
||||
"documentation": "12.1.4",
|
||||
"flow-copy-source": "^2.0.9",
|
||||
"lerna": "^3.20.1",
|
||||
"prettier": "^1.19.1"
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,9 +3,9 @@
|
||||
"version": "3.17.2",
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"babel-preset-react-app": "^9.0.1",
|
||||
"babel-preset-react-app": "^9.1.0",
|
||||
"raw-loader": "^3.1.0",
|
||||
"react-scripts": "3.1.1"
|
||||
"react-scripts": "3"
|
||||
},
|
||||
"dependencies": {
|
||||
"animated": "^0.2.0",
|
||||
@ -15,26 +15,26 @@
|
||||
"gl-shader": "^4.2.1",
|
||||
"gl-texture2d": "^2.1.0",
|
||||
"gl-transitions": "^1.43.0",
|
||||
"hoist-non-react-statics": "^3.3.0",
|
||||
"hoist-non-react-statics": "^3.3.1",
|
||||
"lodash": "^4.17.15",
|
||||
"ndarray": "^1.0.18",
|
||||
"ndarray-ops": "^1.2.2",
|
||||
"prism-theme-one-dark": "^1.0.0",
|
||||
"prismjs": "github:PrismJS/prism#16ce4b336d625e13065bfc12ab6d13ac862d6f50",
|
||||
"prop-types": "^15.7.2",
|
||||
"query-string": "^6.8.2",
|
||||
"query-string": "^6.9.0",
|
||||
"raf": "^3.4.1",
|
||||
"react": "^16.9.0",
|
||||
"react": "^16.12.0",
|
||||
"react-color": "^2.17.3",
|
||||
"react-dom": "^16.9.0",
|
||||
"react-dom": "^16.12.0",
|
||||
"react-gl-transition": "^1.19.2",
|
||||
"react-json2d": "^0.3.0",
|
||||
"react-motion": "^0.5.0",
|
||||
"react-prism": "^4.0.0",
|
||||
"react-router": "^5.0.1",
|
||||
"react-router-dom": "^5.0.1",
|
||||
"react-router": "^5.1.2",
|
||||
"react-router-dom": "^5.1.2",
|
||||
"react-sidebar": "^3.0.2",
|
||||
"remark": "^11.0.1",
|
||||
"remark": "^11.0.2",
|
||||
"remark-react": "^6.0.0"
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gl-react-dom",
|
||||
"version": "3.17.2",
|
||||
"version": "3.18.0-rc.2+9adf916",
|
||||
"license": "MIT",
|
||||
"author": "Gaëtan Renaudeau <renaudeau.gaetan@gmail.com>",
|
||||
"description": "DOM implementation of gl-react, an universal React library to write and compose WebGL shaders",
|
||||
@ -30,15 +30,16 @@
|
||||
"react": "*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"gl-react": "^3.17.2"
|
||||
"gl-react": "^3.18.0-rc.2+9adf916"
|
||||
},
|
||||
"dependencies": {
|
||||
"invariant": "^2.2.4",
|
||||
"prop-types": "^15.7.2",
|
||||
"raf": "^3.4.1",
|
||||
"webgltexture-loader-dom": "^0.12.2"
|
||||
"webgltexture-loader-dom": "1.0.0"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "cd ../.. && export PATH=$(npm bin):$PATH && cd - && rm -rf gl-react-dom.js && browserify lib/index.js -t [ browserify-shim ] --standalone GLReactDOM > gl-react-dom.js"
|
||||
}
|
||||
},
|
||||
"gitHead": "9adf91601b95aec6dcd350179fdbd139a97bed5e"
|
||||
}
|
||||
|
||||
@ -1,9 +1,21 @@
|
||||
|
||||
<img width="32" alt="icon" src="https://cloud.githubusercontent.com/assets/211411/9813786/eacfcc24-5888-11e5-8f9b-5a907a2cbb21.png"> gl-react-expo
|
||||
========
|
||||
# <img width="32" alt="icon" src="https://cloud.githubusercontent.com/assets/211411/9813786/eacfcc24-5888-11e5-8f9b-5a907a2cbb21.png"> gl-react-expo
|
||||
|
||||
`gl-react-expo` is the [React Native](https://facebook.github.io/react-native/) via Expo implementation of [gl-react](https://github.com/gre/gl-react), library to write and compose WebGL shaders.
|
||||
|
||||
## Camera support
|
||||
|
||||
You can enable camera support with this:
|
||||
|
||||
```
|
||||
yarn add expo-camera webgltexture-loader-expo-camera
|
||||
```
|
||||
|
||||
and you just need to load the lib in your entry point:
|
||||
|
||||
```
|
||||
import "webgltexture-loader-expo-camera";
|
||||
```
|
||||
|
||||
## Links
|
||||
|
||||
- [Github](https://github.com/gre/gl-react)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gl-react-expo",
|
||||
"version": "3.17.2",
|
||||
"version": "3.18.0-rc.2+9adf916",
|
||||
"license": "MIT",
|
||||
"author": "Gaëtan Renaudeau <renaudeau.gaetan@gmail.com>",
|
||||
"description": "React Native via Expo implementation of gl-react, an universal React library to write and compose WebGL shaders",
|
||||
@ -28,11 +28,11 @@
|
||||
"react-native": "*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"gl-react": "^3.17.2"
|
||||
"gl-react": "^3.18.0-rc.2+9adf916"
|
||||
},
|
||||
"dependencies": {
|
||||
"invariant": "^2.2.4",
|
||||
"prop-types": "^15.7.2",
|
||||
"webgltexture-loader-expo": "^0.12.2"
|
||||
}
|
||||
"webgltexture-loader-expo": "1.0.0"
|
||||
},
|
||||
"gitHead": "9adf91601b95aec6dcd350179fdbd139a97bed5e"
|
||||
}
|
||||
|
||||
@ -1,21 +1,13 @@
|
||||
//@flow
|
||||
import React, { Component } from "react";
|
||||
import PropTypes from "prop-types";
|
||||
import { View } from "react-native";
|
||||
import { GLView as EXGLView } from "expo-gl";
|
||||
|
||||
const propTypes = {
|
||||
onContextCreate: PropTypes.func.isRequired,
|
||||
style: PropTypes.any
|
||||
};
|
||||
|
||||
export default class GLViewNative extends Component<{
|
||||
onContextCreate: (gl: WebGLRenderingContext) => void,
|
||||
style?: any,
|
||||
children?: any
|
||||
}> {
|
||||
static propTypes = propTypes;
|
||||
|
||||
afterDraw(gl: WebGLRenderingContext) {
|
||||
gl.flush();
|
||||
// $FlowFixMe
|
||||
|
||||
@ -1 +0,0 @@
|
||||
export default () => {};
|
||||
@ -1,191 +0,0 @@
|
||||
let add32;
|
||||
|
||||
function md5cycle(x, k) {
|
||||
var a = x[0],
|
||||
b = x[1],
|
||||
c = x[2],
|
||||
d = x[3];
|
||||
|
||||
a = ff(a, b, c, d, k[0], 7, -680876936);
|
||||
d = ff(d, a, b, c, k[1], 12, -389564586);
|
||||
c = ff(c, d, a, b, k[2], 17, 606105819);
|
||||
b = ff(b, c, d, a, k[3], 22, -1044525330);
|
||||
a = ff(a, b, c, d, k[4], 7, -176418897);
|
||||
d = ff(d, a, b, c, k[5], 12, 1200080426);
|
||||
c = ff(c, d, a, b, k[6], 17, -1473231341);
|
||||
b = ff(b, c, d, a, k[7], 22, -45705983);
|
||||
a = ff(a, b, c, d, k[8], 7, 1770035416);
|
||||
d = ff(d, a, b, c, k[9], 12, -1958414417);
|
||||
c = ff(c, d, a, b, k[10], 17, -42063);
|
||||
b = ff(b, c, d, a, k[11], 22, -1990404162);
|
||||
a = ff(a, b, c, d, k[12], 7, 1804603682);
|
||||
d = ff(d, a, b, c, k[13], 12, -40341101);
|
||||
c = ff(c, d, a, b, k[14], 17, -1502002290);
|
||||
b = ff(b, c, d, a, k[15], 22, 1236535329);
|
||||
|
||||
a = gg(a, b, c, d, k[1], 5, -165796510);
|
||||
d = gg(d, a, b, c, k[6], 9, -1069501632);
|
||||
c = gg(c, d, a, b, k[11], 14, 643717713);
|
||||
b = gg(b, c, d, a, k[0], 20, -373897302);
|
||||
a = gg(a, b, c, d, k[5], 5, -701558691);
|
||||
d = gg(d, a, b, c, k[10], 9, 38016083);
|
||||
c = gg(c, d, a, b, k[15], 14, -660478335);
|
||||
b = gg(b, c, d, a, k[4], 20, -405537848);
|
||||
a = gg(a, b, c, d, k[9], 5, 568446438);
|
||||
d = gg(d, a, b, c, k[14], 9, -1019803690);
|
||||
c = gg(c, d, a, b, k[3], 14, -187363961);
|
||||
b = gg(b, c, d, a, k[8], 20, 1163531501);
|
||||
a = gg(a, b, c, d, k[13], 5, -1444681467);
|
||||
d = gg(d, a, b, c, k[2], 9, -51403784);
|
||||
c = gg(c, d, a, b, k[7], 14, 1735328473);
|
||||
b = gg(b, c, d, a, k[12], 20, -1926607734);
|
||||
|
||||
a = hh(a, b, c, d, k[5], 4, -378558);
|
||||
d = hh(d, a, b, c, k[8], 11, -2022574463);
|
||||
c = hh(c, d, a, b, k[11], 16, 1839030562);
|
||||
b = hh(b, c, d, a, k[14], 23, -35309556);
|
||||
a = hh(a, b, c, d, k[1], 4, -1530992060);
|
||||
d = hh(d, a, b, c, k[4], 11, 1272893353);
|
||||
c = hh(c, d, a, b, k[7], 16, -155497632);
|
||||
b = hh(b, c, d, a, k[10], 23, -1094730640);
|
||||
a = hh(a, b, c, d, k[13], 4, 681279174);
|
||||
d = hh(d, a, b, c, k[0], 11, -358537222);
|
||||
c = hh(c, d, a, b, k[3], 16, -722521979);
|
||||
b = hh(b, c, d, a, k[6], 23, 76029189);
|
||||
a = hh(a, b, c, d, k[9], 4, -640364487);
|
||||
d = hh(d, a, b, c, k[12], 11, -421815835);
|
||||
c = hh(c, d, a, b, k[15], 16, 530742520);
|
||||
b = hh(b, c, d, a, k[2], 23, -995338651);
|
||||
|
||||
a = ii(a, b, c, d, k[0], 6, -198630844);
|
||||
d = ii(d, a, b, c, k[7], 10, 1126891415);
|
||||
c = ii(c, d, a, b, k[14], 15, -1416354905);
|
||||
b = ii(b, c, d, a, k[5], 21, -57434055);
|
||||
a = ii(a, b, c, d, k[12], 6, 1700485571);
|
||||
d = ii(d, a, b, c, k[3], 10, -1894986606);
|
||||
c = ii(c, d, a, b, k[10], 15, -1051523);
|
||||
b = ii(b, c, d, a, k[1], 21, -2054922799);
|
||||
a = ii(a, b, c, d, k[8], 6, 1873313359);
|
||||
d = ii(d, a, b, c, k[15], 10, -30611744);
|
||||
c = ii(c, d, a, b, k[6], 15, -1560198380);
|
||||
b = ii(b, c, d, a, k[13], 21, 1309151649);
|
||||
a = ii(a, b, c, d, k[4], 6, -145523070);
|
||||
d = ii(d, a, b, c, k[11], 10, -1120210379);
|
||||
c = ii(c, d, a, b, k[2], 15, 718787259);
|
||||
b = ii(b, c, d, a, k[9], 21, -343485551);
|
||||
|
||||
x[0] = add32(a, x[0]);
|
||||
x[1] = add32(b, x[1]);
|
||||
x[2] = add32(c, x[2]);
|
||||
x[3] = add32(d, x[3]);
|
||||
}
|
||||
|
||||
function cmn(q, a, b, x, s, t) {
|
||||
a = add32(add32(a, q), add32(x, t));
|
||||
return add32((a << s) | (a >>> (32 - s)), b);
|
||||
}
|
||||
|
||||
function ff(a, b, c, d, x, s, t) {
|
||||
return cmn((b & c) | (~b & d), a, b, x, s, t);
|
||||
}
|
||||
|
||||
function gg(a, b, c, d, x, s, t) {
|
||||
return cmn((b & d) | (c & ~d), a, b, x, s, t);
|
||||
}
|
||||
|
||||
function hh(a, b, c, d, x, s, t) {
|
||||
return cmn(b ^ c ^ d, a, b, x, s, t);
|
||||
}
|
||||
|
||||
function ii(a, b, c, d, x, s, t) {
|
||||
return cmn(c ^ (b | ~d), a, b, x, s, t);
|
||||
}
|
||||
|
||||
function md51(s) {
|
||||
var n = s.length,
|
||||
state = [1732584193, -271733879, -1732584194, 271733878],
|
||||
i;
|
||||
for (i = 64; i <= s.length; i += 64) {
|
||||
md5cycle(state, md5blk(s.substring(i - 64, i)));
|
||||
}
|
||||
s = s.substring(i - 64);
|
||||
var tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
|
||||
for (i = 0; i < s.length; i++)
|
||||
tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);
|
||||
tail[i >> 2] |= 0x80 << ((i % 4) << 3);
|
||||
if (i > 55) {
|
||||
md5cycle(state, tail);
|
||||
for (i = 0; i < 16; i++) tail[i] = 0;
|
||||
}
|
||||
tail[14] = n * 8;
|
||||
md5cycle(state, tail);
|
||||
return state;
|
||||
}
|
||||
|
||||
/* there needs to be support for Unicode here,
|
||||
* unless we pretend that we can redefine the MD-5
|
||||
* algorithm for multi-byte characters (perhaps
|
||||
* by adding every four 16-bit characters and
|
||||
* shortening the sum to 32 bits). Otherwise
|
||||
* I suggest performing MD-5 as if every character
|
||||
* was two bytes--e.g., 0040 0025 = @%--but then
|
||||
* how will an ordinary MD-5 sum be matched?
|
||||
* There is no way to standardize text to something
|
||||
* like UTF-8 before transformation; speed cost is
|
||||
* utterly prohibitive. The JavaScript standard
|
||||
* itself needs to look at this: it should start
|
||||
* providing access to strings as preformed UTF-8
|
||||
* 8-bit unsigned value arrays.
|
||||
*/
|
||||
function md5blk(s) {
|
||||
/* I figured global was faster. */
|
||||
var md5blks = [],
|
||||
i; /* Andy King said do it this way. */
|
||||
for (i = 0; i < 64; i += 4) {
|
||||
md5blks[i >> 2] =
|
||||
s.charCodeAt(i) +
|
||||
(s.charCodeAt(i + 1) << 8) +
|
||||
(s.charCodeAt(i + 2) << 16) +
|
||||
(s.charCodeAt(i + 3) << 24);
|
||||
}
|
||||
return md5blks;
|
||||
}
|
||||
|
||||
var hex_chr = "0123456789abcdef".split("");
|
||||
|
||||
function rhex(n) {
|
||||
var s = "",
|
||||
j = 0;
|
||||
for (; j < 4; j++)
|
||||
s += hex_chr[(n >> (j * 8 + 4)) & 0x0f] + hex_chr[(n >> (j * 8)) & 0x0f];
|
||||
return s;
|
||||
}
|
||||
|
||||
function hex(x) {
|
||||
for (var i = 0; i < x.length; i++) x[i] = rhex(x[i]);
|
||||
return x.join("");
|
||||
}
|
||||
|
||||
function md5(s) {
|
||||
return hex(md51(s));
|
||||
}
|
||||
|
||||
/* this function is much faster,
|
||||
so if possible we use it. Some IEs
|
||||
are the only ones I know of that
|
||||
need the idiotic second function,
|
||||
generated by an if clause. */
|
||||
|
||||
add32 = function(a, b) {
|
||||
return (a + b) & 0xffffffff;
|
||||
};
|
||||
|
||||
if (md5("hello") != "5d41402abc4b2a76b9719d911017c592") {
|
||||
add32 = function(x, y) {
|
||||
var lsw = (x & 0xffff) + (y & 0xffff),
|
||||
msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
||||
return (msw << 16) | (lsw & 0xffff);
|
||||
};
|
||||
}
|
||||
|
||||
export default md5;
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gl-react-headless",
|
||||
"version": "3.17.2",
|
||||
"version": "3.18.0-rc.2+9adf916",
|
||||
"license": "MIT",
|
||||
"author": "Gaëtan Renaudeau <renaudeau.gaetan@gmail.com>",
|
||||
"description": "headless-gl implementation of gl-react, an universal React library to write and compose WebGL shaders",
|
||||
@ -17,12 +17,13 @@
|
||||
"react": "*"
|
||||
},
|
||||
"dependencies": {
|
||||
"gl": "^4.3.3",
|
||||
"gl": "^4.4.0",
|
||||
"invariant": "^2.2.4",
|
||||
"prop-types": "^15.7.2",
|
||||
"raf": "^3.4.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"gl-react": "^3.17.2"
|
||||
}
|
||||
"gl-react": "^3.18.0-rc.2+9adf916"
|
||||
},
|
||||
"gitHead": "9adf91601b95aec6dcd350179fdbd139a97bed5e"
|
||||
}
|
||||
|
||||
@ -1,21 +1,27 @@
|
||||
# <img width="32" alt="icon" src="https://cloud.githubusercontent.com/assets/211411/9813786/eacfcc24-5888-11e5-8f9b-5a907a2cbb21.png"> gl-react-native
|
||||
|
||||
<img width="32" alt="icon" src="https://cloud.githubusercontent.com/assets/211411/9813786/eacfcc24-5888-11e5-8f9b-5a907a2cbb21.png"> gl-react-native
|
||||
========
|
||||
If you are using Expo, it is recommended to use `gl-react-expo` instead.
|
||||
|
||||
`gl-react-native` is the [React Native](https://facebook.github.io/react-native/) implementation of [gl-react](https://github.com/gre/gl-react). It is backed by [react-native-webgl](https://github.com/gre/react-native-webgl) which implements WebGL in React Native (If you are using Expo, it is recommended to use `gl-react-expo` instead).
|
||||
`gl-react-native` is the [React Native](https://facebook.github.io/react-native/) implementation of [gl-react](https://github.com/gre/gl-react). It is in fact backed by [unimodules](https://github.com/unimodules/react-native-unimodules) and [expo-gl](https://www.npmjs.com/package/expo-gl).
|
||||
|
||||
## Install
|
||||
|
||||
To use this library, you will need install `gl-react` and `gl-react-native` which are pure JS libraries.
|
||||
For the native WebGL implementation, you also need to install `react-native-webgl`, please refer to the [README / Install](https://github.com/gre/react-native-webgl#install).
|
||||
You will have to set up `react-native-unimodules` as documented here: https://github.com/unimodules/react-native-unimodules
|
||||
|
||||
**To summarize:**
|
||||
**You will need a react-native-unimodules setup**
|
||||
|
||||
```
|
||||
yarn add gl-react@next gl-react-native@next react-native-webgl
|
||||
yarn add react-native-unimodules
|
||||
```
|
||||
|
||||
and then, [**don't forget to see how to configure react-native-webgl**](https://github.com/gre/react-native-webgl#install).
|
||||
If it's the first time you install `react-native-unimodules`, you will have to carefully follow the documentation to configure your project:
|
||||
[configure unimodules](https://github.com/unimodules/react-native-unimodules) (if not yet done)
|
||||
|
||||
**You can then install expo-gl dependencies:**
|
||||
|
||||
```
|
||||
yarn add expo-gl expo-gl-cpp
|
||||
```
|
||||
|
||||
## Links
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gl-react-native",
|
||||
"version": "3.17.2",
|
||||
"version": "3.18.0-rc.2+9adf916",
|
||||
"license": "MIT",
|
||||
"author": "Gaëtan Renaudeau <renaudeau.gaetan@gmail.com>",
|
||||
"description": "React Native standalone implementation of gl-react, an universal React library to write and compose WebGL shaders",
|
||||
@ -21,20 +21,20 @@
|
||||
"src",
|
||||
".flowconfig",
|
||||
"LICENSE",
|
||||
"install-steps.png",
|
||||
"README.md"
|
||||
],
|
||||
"peerDependencies": {
|
||||
"gl-react": "^3.13.0",
|
||||
"react": "*",
|
||||
"react-native": "*",
|
||||
"react-native-webgl": "*"
|
||||
"react-native": "*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"gl-react": "^3.17.2"
|
||||
"gl-react": "^3.18.0-rc.2+9adf916"
|
||||
},
|
||||
"dependencies": {
|
||||
"prop-types": "^15.7.2",
|
||||
"webgltexture-loader-react-native": "^0.12.2"
|
||||
}
|
||||
"expo-gl": "^8.0.0",
|
||||
"expo-gl-cpp": "^8.0.0",
|
||||
"webgltexture-loader-expo": "1.0.0"
|
||||
},
|
||||
"gitHead": "9adf91601b95aec6dcd350179fdbd139a97bed5e"
|
||||
}
|
||||
|
||||
@ -1,37 +1,50 @@
|
||||
//@flow
|
||||
import React, { Component } from "react";
|
||||
import PropTypes from "prop-types";
|
||||
import { View } from "react-native";
|
||||
import { WebGLView } from "react-native-webgl";
|
||||
|
||||
const propTypes = {
|
||||
onContextCreate: PropTypes.func.isRequired,
|
||||
onContextFailure: PropTypes.func.isRequired,
|
||||
style: PropTypes.any
|
||||
};
|
||||
import { GLView as EXGLView } from "expo-gl";
|
||||
|
||||
export default class GLViewNative extends Component<{
|
||||
onContextCreate: (gl: WebGLRenderingContext) => void,
|
||||
onContextFailure: (e: Error) => void,
|
||||
style?: any,
|
||||
children?: any
|
||||
}> {
|
||||
static propTypes = propTypes;
|
||||
|
||||
afterDraw(gl: WebGLRenderingContext) {
|
||||
const rngl = gl.getExtension("RN");
|
||||
gl.flush();
|
||||
rngl.endFrame();
|
||||
// $FlowFixMe
|
||||
gl.endFrameEXP();
|
||||
}
|
||||
|
||||
ref: ?EXGLView;
|
||||
onRef = (ref: ?EXGLView) => {
|
||||
this.ref = ref;
|
||||
};
|
||||
|
||||
onContextCreate = (gl: WebGLRenderingContext) => {
|
||||
const { getExtension } = gl;
|
||||
// monkey patch to get a way to access the EXGLView
|
||||
// $FlowFixMe
|
||||
gl.getExtension = name => {
|
||||
if (name === "GLViewRef") return this.ref;
|
||||
return getExtension.call(gl, name);
|
||||
};
|
||||
this.props.onContextCreate(gl);
|
||||
};
|
||||
|
||||
capture = (
|
||||
opt: *
|
||||
): Promise<{
|
||||
uri: string,
|
||||
localUri: string,
|
||||
width: number,
|
||||
height: number
|
||||
}> => {
|
||||
const { ref } = this;
|
||||
if (!ref) return Promise.reject(new Error("glView is unmounted"));
|
||||
return ref.takeSnapshotAsync(opt);
|
||||
};
|
||||
|
||||
render() {
|
||||
const {
|
||||
style,
|
||||
onContextCreate,
|
||||
onContextFailure,
|
||||
children,
|
||||
...rest
|
||||
} = this.props;
|
||||
const { style, onContextCreate, children, ...rest } = this.props;
|
||||
if (__DEV__) {
|
||||
if ("width" in rest || "height" in rest) {
|
||||
console.warn(
|
||||
@ -44,7 +57,7 @@ export default class GLViewNative extends Component<{
|
||||
{...rest}
|
||||
style={[{ position: "relative", overflow: "hidden" }, style]}
|
||||
>
|
||||
<WebGLView
|
||||
<EXGLView
|
||||
style={[
|
||||
style,
|
||||
{
|
||||
@ -54,8 +67,8 @@ export default class GLViewNative extends Component<{
|
||||
left: 0
|
||||
}
|
||||
]}
|
||||
onContextCreate={onContextCreate}
|
||||
onContextFailure={onContextFailure}
|
||||
onContextCreate={this.onContextCreate}
|
||||
ref={this.onRef}
|
||||
/>
|
||||
<View style={{ opacity: 0 }}>{children}</View>
|
||||
</View>
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
import { View } from "react-native";
|
||||
import { createSurface } from "gl-react";
|
||||
import GLView from "./GLViewNative";
|
||||
import "webgltexture-loader-react-native";
|
||||
import "webgltexture-loader-expo";
|
||||
|
||||
const RenderLessElement = View;
|
||||
|
||||
|
||||
@ -1 +0,0 @@
|
||||
export default () => {};
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gl-react",
|
||||
"version": "3.17.2",
|
||||
"version": "3.18.0-rc.2+9adf916",
|
||||
"license": "MIT",
|
||||
"author": "Gaëtan Renaudeau <renaudeau.gaetan@gmail.com>",
|
||||
"description": "Universal React library, write and compose WebGL shaders, implement complex effects using a descriptive paradigm",
|
||||
@ -33,10 +33,11 @@
|
||||
"ndarray": "^1.0.18",
|
||||
"prop-types": "^15.7.2",
|
||||
"typedarray-pool": "^1.1.0",
|
||||
"webgltexture-loader": "^0.12.2",
|
||||
"webgltexture-loader-ndarray": "^0.12.2"
|
||||
"webgltexture-loader": "1.0.0",
|
||||
"webgltexture-loader-ndarray": "1.0.0"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "cd ../.. && export PATH=$(npm bin):$PATH && cd - && rm -rf gl-react.js && browserify lib/index.js -t [ browserify-shim ] --standalone GLReact > gl-react.js"
|
||||
}
|
||||
},
|
||||
"gitHead": "9adf91601b95aec6dcd350179fdbd139a97bed5e"
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
import { LinearCopy, NearestCopy, Visitor, Bus } from "gl-react";
|
||||
import { Surface } from "gl-react-headless";
|
||||
import { act } from "react-test-renderer";
|
||||
import React from "react";
|
||||
import invariant from "invariant";
|
||||
import {
|
||||
@ -45,6 +46,7 @@ test("Bus redraw=>el function", () => {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
const Example = () => {
|
||||
const bus = React.createRef();
|
||||
return (
|
||||
@ -73,7 +75,10 @@ test("Bus redraw=>el function", () => {
|
||||
);
|
||||
};
|
||||
|
||||
const inst = create(<Example />);
|
||||
let inst;
|
||||
act(() => {
|
||||
inst = create(<Example />);
|
||||
});
|
||||
invariant(surface, "surface is defined");
|
||||
invariant(updatingTexture, "updatingTexture is defined");
|
||||
expectToBeCloseToColorArray(
|
||||
@ -86,7 +91,9 @@ test("Bus redraw=>el function", () => {
|
||||
surface.capture(2, 2, 1, 1).data,
|
||||
new Uint8Array([255, 0, 0, 255])
|
||||
);
|
||||
inst.unmount();
|
||||
act(() => {
|
||||
inst.unmount();
|
||||
});
|
||||
});
|
||||
|
||||
test("Uniform children redraw=>el function", () => {
|
||||
@ -138,14 +145,19 @@ test("Uniform children redraw=>el function", () => {
|
||||
);
|
||||
}
|
||||
}
|
||||
const inst = create(<Example />);
|
||||
let inst;
|
||||
act(() => {
|
||||
inst = create(<Example />);
|
||||
});
|
||||
invariant(surface, "surface is defined");
|
||||
invariant(updatingTexture, "updatingTexture is defined");
|
||||
expectToBeCloseToColorArray(
|
||||
surface.capture(1, 1, 1, 1).data,
|
||||
new Uint8Array([0, 0, 0, 0])
|
||||
);
|
||||
inst.update(<Example />);
|
||||
act(() => {
|
||||
inst.update(<Example />);
|
||||
});
|
||||
surface.flush();
|
||||
expectToBeCloseToColorArray(
|
||||
surface.capture(1, 1, 1, 1).data,
|
||||
@ -169,5 +181,7 @@ test("Uniform children redraw=>el function", () => {
|
||||
surface.capture(2, 2, 1, 1).data,
|
||||
new Uint8Array([255, 255, 0, 255])
|
||||
);
|
||||
inst.unmount();
|
||||
act(() => {
|
||||
inst.unmount();
|
||||
});
|
||||
});
|
||||
|
||||
@ -6,25 +6,25 @@
|
||||
"test": "./test.sh"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-eslint": "^10.0.2",
|
||||
"babel-jest": "24.8.0",
|
||||
"eslint": "^6.1.0",
|
||||
"eslint-plugin-react": "^7.14.3",
|
||||
"flow-copy-source": "^2.0.7"
|
||||
"babel-eslint": "^10.0.3",
|
||||
"babel-jest": "24.9.0",
|
||||
"eslint": "^6.8.0",
|
||||
"eslint-plugin-react": "^7.17.0",
|
||||
"flow-copy-source": "^2.0.9"
|
||||
},
|
||||
"version": "3.17.2",
|
||||
"dependencies": {
|
||||
"gl-react": "^3.17.2",
|
||||
"gl-react-headless": "^3.17.2",
|
||||
"gl-texture2d": "^2.0.12",
|
||||
"jest": "24.8.0",
|
||||
"jest-cli": "24.8.0",
|
||||
"jest": "24.9.0",
|
||||
"jest-cli": "24.9.0",
|
||||
"ndarray": "^1.0.18",
|
||||
"promise-defer": "^1.0.0",
|
||||
"prop-types": "^15.7.2",
|
||||
"react": "^16.9.0",
|
||||
"react-test-renderer": "^16.9.0",
|
||||
"webgltexture-loader": "^0.12.2",
|
||||
"webgltexture-loader-ndarray": "^0.12.2"
|
||||
"react": "^16.12.0",
|
||||
"react-test-renderer": "^16.12.0",
|
||||
"webgltexture-loader": "1.0.0",
|
||||
"webgltexture-loader-ndarray": "1.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user