mirror of
https://github.com/gre/gl-react.git
synced 2026-01-18 16:16:59 +00:00
internal refactoring. fixes https://github.com/gre/gl-react/issues/134
the texture loader system was externalized into a set of libs webgltexture-loader*
This commit is contained in:
parent
4e66168e5e
commit
f8e462233d
@ -528,8 +528,8 @@ core-js@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
|
||||
|
||||
core-js@^2.4.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086"
|
||||
version "2.5.1"
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b"
|
||||
|
||||
create-react-class@^15.5.1:
|
||||
version "15.6.0"
|
||||
@ -754,8 +754,8 @@ react-mixin@^3.0.5:
|
||||
smart-mixin "^2.0.0"
|
||||
|
||||
react-motion@^0.5.0:
|
||||
version "0.5.0"
|
||||
resolved "https://registry.yarnpkg.com/react-motion/-/react-motion-0.5.0.tgz#1708fc2aee552900d21c1e6bed28346863e017b6"
|
||||
version "0.5.1"
|
||||
resolved "https://registry.yarnpkg.com/react-motion/-/react-motion-0.5.1.tgz#b90631408175ab1668e173caccd66d41a44f4592"
|
||||
dependencies:
|
||||
performance-now "^0.2.0"
|
||||
prop-types "^15.5.8"
|
||||
|
||||
@ -477,7 +477,6 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "cookbookrn" */;
|
||||
buildPhases = (
|
||||
AD0CE2C91E925489006FC317 /* Integrate Haul with React Native */,
|
||||
13B07F871A680F5B00A75B9A /* Sources */,
|
||||
13B07F8C1A680F5B00A75B9A /* Frameworks */,
|
||||
13B07F8E1A680F5B00A75B9A /* Resources */,
|
||||
@ -814,20 +813,6 @@
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
|
||||
};
|
||||
AD0CE2C91E925489006FC317 /* Integrate Haul with React Native */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Integrate Haul with React Native";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "bash ../node_modules/haul-cli/src/utils/haul-integrate.sh";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
"version": "3.13.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "haul start"
|
||||
"start": "react-native start"
|
||||
},
|
||||
"dependencies": {
|
||||
"@expo/ex-navigation": "^2.11.0",
|
||||
@ -12,11 +12,10 @@
|
||||
"gl-react-native": "^3.13.0",
|
||||
"prop-types": "^15.5.8",
|
||||
"react": "16.0.0-alpha.12",
|
||||
"react-native": "0.47.2",
|
||||
"react-native": "0.48.x",
|
||||
"react-native-webgl": "0.x"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-preset-react-native": "~1.9.1",
|
||||
"haul-cli": "github:callstack-io/haul#870753d1df5f2d6f878584adb95a370bc2b5b169"
|
||||
"babel-preset-react-native": "~1.9.1"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
module.exports = ({ platform }) => ({
|
||||
entry: `./index.${platform}.js`,
|
||||
});
|
||||
File diff suppressed because it is too large
Load Diff
@ -13,8 +13,6 @@
|
||||
"gl-react": "^3.13.0",
|
||||
"gl-react-dom": "^3.13.0",
|
||||
"gl-shader": "^4.2.1",
|
||||
"gl-format-compiler-error":
|
||||
"github:gre/gl-format-compiler-error#fix-null-ending-character",
|
||||
"gl-texture2d": "^2.1.0",
|
||||
"gl-transitions": "^1.19.0",
|
||||
"hoist-non-react-statics": "^1.2.0",
|
||||
|
||||
@ -51,8 +51,8 @@ acorn@^4.0.3, acorn@^4.0.4:
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
|
||||
|
||||
acorn@^5.0.0, acorn@^5.1.1:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75"
|
||||
version "5.1.2"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.2.tgz#911cb53e036807cf0fa778dc5d370fbd864246d7"
|
||||
|
||||
add-line-numbers@^1.0.1:
|
||||
version "1.0.1"
|
||||
@ -1029,7 +1029,7 @@ babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24
|
||||
lodash "^4.17.4"
|
||||
to-fast-properties "^1.0.3"
|
||||
|
||||
babylon@^6.17.0, babylon@^6.17.2, babylon@^6.17.4, babylon@^6.18.0:
|
||||
babylon@^6.17.0, babylon@^6.17.2, babylon@^6.18.0:
|
||||
version "6.18.0"
|
||||
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
|
||||
|
||||
@ -1146,14 +1146,15 @@ browser-resolve@^1.11.2:
|
||||
resolve "1.1.7"
|
||||
|
||||
browserify-aes@^1.0.0, browserify-aes@^1.0.4:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a"
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.8.tgz#c8fa3b1b7585bb7ba77c5560b60996ddec6d5309"
|
||||
dependencies:
|
||||
buffer-xor "^1.0.2"
|
||||
buffer-xor "^1.0.3"
|
||||
cipher-base "^1.0.0"
|
||||
create-hash "^1.1.0"
|
||||
evp_bytestokey "^1.0.0"
|
||||
evp_bytestokey "^1.0.3"
|
||||
inherits "^2.0.1"
|
||||
safe-buffer "^5.0.1"
|
||||
|
||||
browserify-cipher@^1.0.0:
|
||||
version "1.0.0"
|
||||
@ -1226,7 +1227,7 @@ buffer-indexof@^1.0.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
|
||||
|
||||
buffer-xor@^1.0.2:
|
||||
buffer-xor@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
|
||||
|
||||
@ -1300,12 +1301,12 @@ caniuse-api@^1.5.2:
|
||||
lodash.uniq "^4.5.0"
|
||||
|
||||
caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
|
||||
version "1.0.30000721"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000721.tgz#cdc52efe8f82dd13916615b78e86f704ece61802"
|
||||
version "1.0.30000725"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000725.tgz#20f2313d79401e02f61840f39698bc8c558811a6"
|
||||
|
||||
caniuse-lite@^1.0.30000670, caniuse-lite@^1.0.30000718:
|
||||
version "1.0.30000721"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000721.tgz#931a21a7bd85016300328d21f126d84b73437d35"
|
||||
version "1.0.30000725"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000725.tgz#4fa66372323c6ff46c8a1ba03f9dcd73d7a1cb39"
|
||||
|
||||
capture-stack-trace@^1.0.0:
|
||||
version "1.0.0"
|
||||
@ -1380,8 +1381,8 @@ chokidar@^1.6.0, chokidar@^1.7.0:
|
||||
fsevents "^1.0.0"
|
||||
|
||||
ci-info@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534"
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.1.tgz#47b44df118c48d2597b56d342e7e25791060171a"
|
||||
|
||||
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
|
||||
version "1.0.4"
|
||||
@ -1401,8 +1402,8 @@ clap@^1.0.9:
|
||||
chalk "^1.1.3"
|
||||
|
||||
clean-css@4.1.x:
|
||||
version "4.1.7"
|
||||
resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.7.tgz#b9aea4f85679889cf3eae8b40349ec4ebdfdd032"
|
||||
version "4.1.8"
|
||||
resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.8.tgz#061455b2494a750ac98f46d8d5ebb17c679ea9d1"
|
||||
dependencies:
|
||||
source-map "0.5.x"
|
||||
|
||||
@ -2035,8 +2036,8 @@ detect-port-alt@1.1.3:
|
||||
debug "^2.6.0"
|
||||
|
||||
diff@^3.2.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.0.tgz#056695150d7aa93237ca7e378ac3b1682b7963b9"
|
||||
version "3.3.1"
|
||||
resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75"
|
||||
|
||||
diffie-hellman@^5.0.0:
|
||||
version "5.0.2"
|
||||
@ -2229,8 +2230,8 @@ error-ex@^1.2.0:
|
||||
is-arrayish "^0.2.1"
|
||||
|
||||
es-abstract@^1.7.0:
|
||||
version "1.8.1"
|
||||
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.1.tgz#fd85a3bdfa67786ce7be7e1584678e119cd70c04"
|
||||
version "1.8.2"
|
||||
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.2.tgz#25103263dc4decbda60e0c737ca32313518027ee"
|
||||
dependencies:
|
||||
es-to-primitive "^1.1.1"
|
||||
function-bind "^1.1.1"
|
||||
@ -2506,9 +2507,9 @@ eventsource@0.1.6:
|
||||
dependencies:
|
||||
original ">=0.0.5"
|
||||
|
||||
evp_bytestokey@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.2.tgz#f66bb88ecd57f71a766821e20283ea38c68bf80a"
|
||||
evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
|
||||
dependencies:
|
||||
md5.js "^1.3.4"
|
||||
safe-buffer "^5.1.1"
|
||||
@ -2912,17 +2913,8 @@ gl-constants@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/gl-constants/-/gl-constants-1.0.0.tgz#597a504e364750ff50253aa35f8dea7af4a5d233"
|
||||
|
||||
gl-format-compiler-error@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/gl-format-compiler-error/-/gl-format-compiler-error-1.0.2.tgz#34397d2ae613e2d83a58f35d571de1be7d3080fa"
|
||||
dependencies:
|
||||
add-line-numbers "^1.0.1"
|
||||
gl-constants "^1.0.0"
|
||||
glsl-shader-name "^1.0.0"
|
||||
sprintf-js "^1.0.3"
|
||||
|
||||
"gl-format-compiler-error@github:gre/gl-format-compiler-error#fix-null-ending-character":
|
||||
version "1.0.2"
|
||||
resolved "https://codeload.github.com/gre/gl-format-compiler-error/tar.gz/33d71896fca0f738c31c66f0f985093f48bb255c"
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/gl-format-compiler-error/-/gl-format-compiler-error-1.0.3.tgz#0c79b1751899ce9732e86240f090aa41e98471a8"
|
||||
dependencies:
|
||||
add-line-numbers "^1.0.1"
|
||||
gl-constants "^1.0.0"
|
||||
@ -3727,14 +3719,14 @@ isstream@~0.1.2:
|
||||
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
|
||||
|
||||
istanbul-api@^1.1.1:
|
||||
version "1.1.13"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.13.tgz#7197f64413600ebdfec6347a2dc3d4e03f97ed5a"
|
||||
version "1.1.14"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.14.tgz#25bc5701f7c680c0ffff913de46e3619a3a6e680"
|
||||
dependencies:
|
||||
async "^2.1.4"
|
||||
fileset "^2.0.2"
|
||||
istanbul-lib-coverage "^1.1.1"
|
||||
istanbul-lib-hook "^1.0.7"
|
||||
istanbul-lib-instrument "^1.7.5"
|
||||
istanbul-lib-instrument "^1.8.0"
|
||||
istanbul-lib-report "^1.1.1"
|
||||
istanbul-lib-source-maps "^1.2.1"
|
||||
istanbul-reports "^1.1.2"
|
||||
@ -3752,15 +3744,15 @@ istanbul-lib-hook@^1.0.7:
|
||||
dependencies:
|
||||
append-transform "^0.4.0"
|
||||
|
||||
istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.2, istanbul-lib-instrument@^1.7.5:
|
||||
version "1.7.5"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.5.tgz#adb596f8f0cb8b95e739206351a38a586af21b1e"
|
||||
istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.2, istanbul-lib-instrument@^1.8.0:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.8.0.tgz#66f6c9421cc9ec4704f76f2db084ba9078a2b532"
|
||||
dependencies:
|
||||
babel-generator "^6.18.0"
|
||||
babel-template "^6.16.0"
|
||||
babel-traverse "^6.18.0"
|
||||
babel-types "^6.18.0"
|
||||
babylon "^6.17.4"
|
||||
babylon "^6.18.0"
|
||||
istanbul-lib-coverage "^1.1.1"
|
||||
semver "^5.3.0"
|
||||
|
||||
@ -4515,19 +4507,15 @@ miller-rabin@^4.0.0:
|
||||
bn.js "^4.0.0"
|
||||
brorand "^1.0.1"
|
||||
|
||||
"mime-db@>= 1.29.0 < 2":
|
||||
"mime-db@>= 1.29.0 < 2", mime-db@~1.30.0:
|
||||
version "1.30.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
|
||||
|
||||
mime-db@~1.29.0:
|
||||
version "1.29.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878"
|
||||
|
||||
mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.7:
|
||||
version "2.1.16"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23"
|
||||
version "2.1.17"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
|
||||
dependencies:
|
||||
mime-db "~1.29.0"
|
||||
mime-db "~1.30.0"
|
||||
|
||||
mime@1.3.4:
|
||||
version "1.3.4"
|
||||
@ -6327,8 +6315,8 @@ source-list-map@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085"
|
||||
|
||||
source-map-support@^0.4.15:
|
||||
version "0.4.16"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.16.tgz#16fecf98212467d017d586a2af68d628b9421cd8"
|
||||
version "0.4.17"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.17.tgz#6f2150553e6375375d0ccb3180502b78c18ba430"
|
||||
dependencies:
|
||||
source-map "^0.5.6"
|
||||
|
||||
@ -6668,8 +6656,8 @@ test-exclude@^4.1.1:
|
||||
require-main-filename "^1.0.1"
|
||||
|
||||
text-extensions@^1.0.0:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.5.0.tgz#d1cb2d14b5d0bc45bfdca8a08a473f68c7eb0cbc"
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.6.0.tgz#771561b26022783a45f5b6c2e78ad6e7de9fe322"
|
||||
|
||||
text-table@0.2.0, text-table@~0.2.0:
|
||||
version "0.2.0"
|
||||
|
||||
@ -35,9 +35,10 @@
|
||||
resolved "https://registry.yarnpkg.com/@expo/react-native-touchable-native-feedback-safe/-/react-native-touchable-native-feedback-safe-1.1.2.tgz#7ef501d5d32140eed657f75f0de145d4a96244d8"
|
||||
|
||||
"@expo/vector-icons@^5.0.0":
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@expo/vector-icons/-/vector-icons-5.1.0.tgz#bea328a58ee60659bd566978f035d0001cca60b3"
|
||||
version "5.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@expo/vector-icons/-/vector-icons-5.2.0.tgz#877f75c00bf21313cdb231c92cbcfd40e46ee2a1"
|
||||
dependencies:
|
||||
lodash "^4.17.4"
|
||||
react-native-vector-icons "4.1.1"
|
||||
|
||||
abbrev@1:
|
||||
@ -1106,10 +1107,10 @@ braces@^1.8.2:
|
||||
repeat-element "^1.1.2"
|
||||
|
||||
browserslist@^2.1.2:
|
||||
version "2.3.3"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.3.3.tgz#2b0cabc4d28489f682598605858a0782f14b154c"
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.4.0.tgz#693ee93d01e66468a6348da5498e011f578f87f8"
|
||||
dependencies:
|
||||
caniuse-lite "^1.0.30000715"
|
||||
caniuse-lite "^1.0.30000718"
|
||||
electron-to-chromium "^1.3.18"
|
||||
|
||||
bser@1.0.2:
|
||||
@ -1159,9 +1160,9 @@ camelcase@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
|
||||
|
||||
caniuse-lite@^1.0.30000715:
|
||||
version "1.0.30000718"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000718.tgz#0dd24290beb11310b2d80f6b70a823c2a65a6fad"
|
||||
caniuse-lite@^1.0.30000718:
|
||||
version "1.0.30000725"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000725.tgz#4fa66372323c6ff46c8a1ba03f9dcd73d7a1cb39"
|
||||
|
||||
caseless@~0.12.0:
|
||||
version "0.12.0"
|
||||
@ -1374,8 +1375,8 @@ core-js@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
|
||||
|
||||
core-js@^2.2.2, core-js@^2.4.0, core-js@^2.5.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086"
|
||||
version "2.5.1"
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b"
|
||||
|
||||
core-util-is@1.0.2, core-util-is@~1.0.0:
|
||||
version "1.0.2"
|
||||
@ -1515,8 +1516,8 @@ ee-first@1.1.1:
|
||||
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
|
||||
|
||||
electron-to-chromium@^1.3.18:
|
||||
version "1.3.18"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.18.tgz#3dcc99da3e6b665f6abbc71c28ad51a2cd731a9c"
|
||||
version "1.3.20"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.20.tgz#2eedd5ccbae7ddc557f68ad1fce9c172e915e4e5"
|
||||
|
||||
encoding@^0.1.11:
|
||||
version "0.1.12"
|
||||
@ -1802,8 +1803,8 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
|
||||
rimraf "2"
|
||||
|
||||
function-bind@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
||||
|
||||
gauge@~1.2.5:
|
||||
version "1.2.7"
|
||||
@ -2481,9 +2482,9 @@ micromatch@^2.1.5, micromatch@^2.3.11:
|
||||
parse-glob "^3.0.4"
|
||||
regex-cache "^0.4.2"
|
||||
|
||||
"mime-db@>= 1.29.0 < 2", mime-db@~1.29.0:
|
||||
version "1.29.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878"
|
||||
"mime-db@>= 1.29.0 < 2", mime-db@~1.30.0:
|
||||
version "1.30.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
|
||||
|
||||
mime-db@~1.23.0:
|
||||
version "1.23.0"
|
||||
@ -2496,18 +2497,18 @@ mime-types@2.1.11:
|
||||
mime-db "~1.23.0"
|
||||
|
||||
mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.6, mime-types@~2.1.7, mime-types@~2.1.9:
|
||||
version "2.1.16"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23"
|
||||
version "2.1.17"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
|
||||
dependencies:
|
||||
mime-db "~1.29.0"
|
||||
mime-db "~1.30.0"
|
||||
|
||||
mime@1.3.4:
|
||||
version "1.3.4"
|
||||
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
|
||||
|
||||
mime@^1.3.4:
|
||||
version "1.3.6"
|
||||
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0"
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.0.tgz#69e9e0db51d44f2a3b56e48b7817d7d137f1a343"
|
||||
|
||||
min-document@^2.19.0:
|
||||
version "2.19.0"
|
||||
@ -3240,11 +3241,10 @@ regenerator-transform@^0.10.0:
|
||||
private "^0.1.6"
|
||||
|
||||
regex-cache@^0.4.2:
|
||||
version "0.4.3"
|
||||
resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145"
|
||||
version "0.4.4"
|
||||
resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
|
||||
dependencies:
|
||||
is-equal-shallow "^0.1.3"
|
||||
is-primitive "^2.0.0"
|
||||
|
||||
regexpu-core@^2.0.0:
|
||||
version "2.0.0"
|
||||
@ -3497,8 +3497,8 @@ sntp@1.x.x:
|
||||
hoek "2.x.x"
|
||||
|
||||
source-map-support@^0.4.15:
|
||||
version "0.4.16"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.16.tgz#16fecf98212467d017d586a2af68d628b9421cd8"
|
||||
version "0.4.17"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.17.tgz#6f2150553e6375375d0ccb3180502b78c18ba430"
|
||||
dependencies:
|
||||
source-map "^0.5.6"
|
||||
|
||||
|
||||
@ -3,7 +3,8 @@
|
||||
"version": "3.13.0",
|
||||
"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",
|
||||
"description":
|
||||
"DOM implementation of gl-react, an universal React library to write and compose WebGL shaders",
|
||||
"keywords": [
|
||||
"gl-react",
|
||||
"gl",
|
||||
@ -35,10 +36,13 @@
|
||||
"dependencies": {
|
||||
"invariant": "^2.2.1",
|
||||
"prop-types": "^15.5.8",
|
||||
"raf": "^3.3.0"
|
||||
"raf": "^3.3.0",
|
||||
"webgltexture-loader-dom": "^0.6.0"
|
||||
},
|
||||
"scripts": {
|
||||
"prepublish": "cd ../.. && export PATH=$(npm bin):$PATH && cd - && rm -rf lib gl-react-dom.js && babel --source-maps -d lib src && flow-copy-source -v src lib && browserify lib/index.js -t [ browserify-shim ] --standalone GLReactDOM > gl-react-dom.js",
|
||||
"watch": "cd ../.. && export PATH=$(npm bin):$PATH && cd - && babel --watch --source-maps -d lib src"
|
||||
"prepublish":
|
||||
"cd ../.. && export PATH=$(npm bin):$PATH && cd - && rm -rf lib gl-react-dom.js && babel --source-maps -d lib src && flow-copy-source -v src lib && browserify lib/index.js -t [ browserify-shim ] --standalone GLReactDOM > gl-react-dom.js",
|
||||
"watch":
|
||||
"cd ../.. && export PATH=$(npm bin):$PATH && cd - && babel --watch --source-maps -d lib src"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,11 +0,0 @@
|
||||
//@flow
|
||||
import { TextureLoaderRawObject } from "gl-react";
|
||||
export default class CanvasTextureLoader
|
||||
extends TextureLoaderRawObject<HTMLCanvasElement> {
|
||||
canLoad(input: any) {
|
||||
return input instanceof HTMLCanvasElement;
|
||||
}
|
||||
mapInputSize(canvas: HTMLCanvasElement) {
|
||||
return [canvas.width, canvas.height];
|
||||
}
|
||||
}
|
||||
@ -1,77 +0,0 @@
|
||||
//@flow
|
||||
import { TextureLoader } from "gl-react";
|
||||
import { disposeObjectMap } from "gl-react/lib/helpers/disposable";
|
||||
import type { DisposablePromise } from "gl-react/lib/helpers/disposable";
|
||||
|
||||
function loadImage(
|
||||
src: string,
|
||||
success: (img: Image) => void,
|
||||
failure: (e: Error) => void
|
||||
) {
|
||||
let img = new window.Image();
|
||||
if (src.slice(0, 5) !== "data:") {
|
||||
img.crossOrigin = true;
|
||||
}
|
||||
img.onload = function() {
|
||||
if (img) {
|
||||
success(img);
|
||||
}
|
||||
img = null;
|
||||
};
|
||||
img.onabort = img.onerror = failure;
|
||||
img.src = src;
|
||||
return function() {
|
||||
if (img) {
|
||||
img.onload = null;
|
||||
img.onerror = null;
|
||||
img.onabort = null;
|
||||
img.src = "";
|
||||
img = null;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export default class ImageTextureLoader extends TextureLoader<string> {
|
||||
loads: { [key: string]: DisposablePromise<*> } = {};
|
||||
textures: { [key: string]: WebGLTexture } = {};
|
||||
sizes: { [key: string]: [number, number] } = {};
|
||||
dispose() {
|
||||
disposeObjectMap(this.loads);
|
||||
const { gl } = this;
|
||||
for (let k in this.textures) {
|
||||
gl.deleteTexture(this.textures[k]);
|
||||
delete this.textures[k];
|
||||
}
|
||||
}
|
||||
canLoad(input: any) {
|
||||
return typeof input === "string";
|
||||
}
|
||||
load(input: string) {
|
||||
const src = input;
|
||||
if (src in this.loads) {
|
||||
return this.loads[src];
|
||||
}
|
||||
let dispose = () => {};
|
||||
const promise = new Promise(
|
||||
(success, failure) => (dispose = loadImage(src, success, failure))
|
||||
).then(img => {
|
||||
const { gl } = this;
|
||||
const texture = gl.createTexture();
|
||||
gl.bindTexture(gl.TEXTURE_2D, texture);
|
||||
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img);
|
||||
this.textures[src] = texture;
|
||||
this.sizes[src] = [img.width, img.height];
|
||||
delete this.loads[src];
|
||||
return texture;
|
||||
});
|
||||
const d = { promise, dispose };
|
||||
this.loads[src] = d;
|
||||
return d;
|
||||
}
|
||||
get(input: string) {
|
||||
return this.textures[input];
|
||||
}
|
||||
getSize(input: string) {
|
||||
return this.sizes[input];
|
||||
}
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
//@flow
|
||||
import { TextureLoaderRawObject } from "gl-react";
|
||||
|
||||
export default class VideoTextureLoader
|
||||
extends TextureLoaderRawObject<HTMLVideoElement> {
|
||||
canLoad(input: any) {
|
||||
return input instanceof HTMLVideoElement;
|
||||
}
|
||||
mapInput(video: HTMLVideoElement) {
|
||||
if (video.videoWidth === 0) return null;
|
||||
return video;
|
||||
}
|
||||
mapInputSize(video: HTMLVideoElement) {
|
||||
return [video.videoWidth, video.videoHeight];
|
||||
}
|
||||
}
|
||||
@ -1,19 +1,11 @@
|
||||
//@flow
|
||||
import { createSurface, TextureLoaders } from "gl-react";
|
||||
import { createSurface } from "gl-react";
|
||||
import raf from "raf";
|
||||
import GLView from "./GLViewDOM";
|
||||
import ImageTextureLoader from "./ImageTextureLoader";
|
||||
import CanvasTextureLoader from "./CanvasTextureLoader";
|
||||
import VideoTextureLoader from "./VideoTextureLoader";
|
||||
|
||||
TextureLoaders.add(ImageTextureLoader);
|
||||
TextureLoaders.add(CanvasTextureLoader);
|
||||
TextureLoaders.add(VideoTextureLoader);
|
||||
import "webgltexture-loader-dom";
|
||||
|
||||
const RenderLessElement = "span";
|
||||
|
||||
export * from "./legacy";
|
||||
|
||||
const mapRenderableContent = (el: mixed) =>
|
||||
el instanceof Element ? el.firstElementChild : null;
|
||||
|
||||
|
||||
@ -1,22 +0,0 @@
|
||||
import { TextureLoaders } from "gl-react";
|
||||
import ImageTextureLoader from "./ImageTextureLoader";
|
||||
|
||||
class DeprecatedUriImageTextureLoader extends ImageTextureLoader {
|
||||
canLoad(obj: any) {
|
||||
return typeof obj === "object" && typeof obj.uri === "string";
|
||||
}
|
||||
get(obj: any) {
|
||||
return super.get(obj.uri);
|
||||
}
|
||||
getSize(obj: any) {
|
||||
return super.getSize(obj.uri);
|
||||
}
|
||||
load(obj: any) {
|
||||
console.warn(
|
||||
"gl-react-dom: usage of {uri} format in texture uniform is deprecated. Directly give an image URL instead."
|
||||
);
|
||||
return super.load(obj.uri);
|
||||
}
|
||||
}
|
||||
|
||||
TextureLoaders.add(DeprecatedUriImageTextureLoader);
|
||||
@ -1,106 +0,0 @@
|
||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
asap@~2.0.3:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
|
||||
|
||||
core-js@^1.0.0:
|
||||
version "1.2.7"
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
|
||||
|
||||
encoding@^0.1.11:
|
||||
version "0.1.12"
|
||||
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
|
||||
dependencies:
|
||||
iconv-lite "~0.4.13"
|
||||
|
||||
fbjs@^0.8.9:
|
||||
version "0.8.14"
|
||||
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c"
|
||||
dependencies:
|
||||
core-js "^1.0.0"
|
||||
isomorphic-fetch "^2.1.1"
|
||||
loose-envify "^1.0.0"
|
||||
object-assign "^4.1.0"
|
||||
promise "^7.1.1"
|
||||
setimmediate "^1.0.5"
|
||||
ua-parser-js "^0.7.9"
|
||||
|
||||
iconv-lite@~0.4.13:
|
||||
version "0.4.18"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
|
||||
|
||||
invariant@^2.2.1:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
|
||||
dependencies:
|
||||
loose-envify "^1.0.0"
|
||||
|
||||
is-stream@^1.0.1:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
|
||||
|
||||
isomorphic-fetch@^2.1.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
|
||||
dependencies:
|
||||
node-fetch "^1.0.1"
|
||||
whatwg-fetch ">=0.10.0"
|
||||
|
||||
js-tokens@^3.0.0:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
|
||||
|
||||
loose-envify@^1.0.0, loose-envify@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
|
||||
dependencies:
|
||||
js-tokens "^3.0.0"
|
||||
|
||||
node-fetch@^1.0.1:
|
||||
version "1.7.2"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7"
|
||||
dependencies:
|
||||
encoding "^0.1.11"
|
||||
is-stream "^1.0.1"
|
||||
|
||||
object-assign@^4.1.0:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
||||
|
||||
performance-now@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
|
||||
|
||||
promise@^7.1.1:
|
||||
version "7.3.1"
|
||||
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
|
||||
dependencies:
|
||||
asap "~2.0.3"
|
||||
|
||||
prop-types@^15.5.8:
|
||||
version "15.5.10"
|
||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
|
||||
dependencies:
|
||||
fbjs "^0.8.9"
|
||||
loose-envify "^1.3.1"
|
||||
|
||||
raf@^3.3.0:
|
||||
version "3.3.2"
|
||||
resolved "https://registry.yarnpkg.com/raf/-/raf-3.3.2.tgz#0c13be0b5b49b46f76d6669248d527cf2b02fe27"
|
||||
dependencies:
|
||||
performance-now "^2.1.0"
|
||||
|
||||
setimmediate@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
|
||||
|
||||
ua-parser-js@^0.7.9:
|
||||
version "0.7.14"
|
||||
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca"
|
||||
|
||||
whatwg-fetch@>=0.10.0:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
|
||||
@ -3,7 +3,8 @@
|
||||
"version": "3.13.0",
|
||||
"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",
|
||||
"description":
|
||||
"React Native via Expo implementation of gl-react, an universal React library to write and compose WebGL shaders",
|
||||
"keywords": [
|
||||
"gl-react",
|
||||
"gl",
|
||||
@ -14,13 +15,7 @@
|
||||
"react-component"
|
||||
],
|
||||
"main": "lib/index.js",
|
||||
"files": [
|
||||
"src",
|
||||
"lib",
|
||||
".flowconfig",
|
||||
"README.md",
|
||||
"LICENSE"
|
||||
],
|
||||
"files": ["src", "lib", ".flowconfig", "README.md", "LICENSE"],
|
||||
"peerDependencies": {
|
||||
"expo": "*",
|
||||
"gl-react": "^3.13.0",
|
||||
@ -32,10 +27,13 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"invariant": "^2.2.1",
|
||||
"prop-types": "^15.5.8"
|
||||
"prop-types": "^15.5.8",
|
||||
"webgltexture-loader-expo": "^0.6.1"
|
||||
},
|
||||
"scripts": {
|
||||
"prepublish": "cd ../.. && export PATH=$(npm bin):$PATH && cd - &&rm -rf lib && babel --source-maps -d lib src && flow-copy-source -v src lib",
|
||||
"watch": "cd ../.. && export PATH=$(npm bin):$PATH && cd - && babel --watch --source-maps -d lib src"
|
||||
"prepublish":
|
||||
"cd ../.. && export PATH=$(npm bin):$PATH && cd - &&rm -rf lib && babel --source-maps -d lib src && flow-copy-source -v src lib",
|
||||
"watch":
|
||||
"cd ../.. && export PATH=$(npm bin):$PATH && cd - && babel --watch --source-maps -d lib src"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,58 +0,0 @@
|
||||
//@flow
|
||||
import { NativeModules, Image } from "react-native";
|
||||
import Expo from "expo";
|
||||
import { TextureLoader } from "gl-react";
|
||||
import type { DisposablePromise } from "gl-react/lib/helpers/disposable";
|
||||
|
||||
function hash(obj) {
|
||||
return JSON.stringify(obj); // FIXME ikr XD
|
||||
}
|
||||
|
||||
export default class ExponentGLObjectTextureLoader
|
||||
extends TextureLoader<Object> {
|
||||
loads: Map<string, DisposablePromise<*>> = new Map();
|
||||
textures: Map<string, *> = new Map();
|
||||
dispose() {}
|
||||
canLoad(input: any) {
|
||||
if (
|
||||
!NativeModules.ExponentGLObjectManager ||
|
||||
!NativeModules.ExponentGLObjectManager.createObjectAsync
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
return input && typeof input === "object" && input.camera;
|
||||
}
|
||||
load(texture: Object): DisposablePromise<*> {
|
||||
const key = hash(texture);
|
||||
const load = this.loads.get(key);
|
||||
if (load) return load;
|
||||
const { gl } = this;
|
||||
// $FlowFixMe
|
||||
const { __exglCtxId: exglCtxId } = gl;
|
||||
let disposed = false;
|
||||
const d = {
|
||||
dispose: () => {
|
||||
disposed = true;
|
||||
},
|
||||
promise: NativeModules.ExponentGLObjectManager
|
||||
.createObjectAsync({
|
||||
exglCtxId,
|
||||
texture
|
||||
})
|
||||
.then(({ exglObjId }) => {
|
||||
if (disposed) return;
|
||||
const webglTexture = new WebGLTexture(exglObjId);
|
||||
this.textures.set(key, webglTexture);
|
||||
return webglTexture;
|
||||
})
|
||||
};
|
||||
this.loads.set(key, d);
|
||||
return d;
|
||||
}
|
||||
get(texture: Object) {
|
||||
return this.textures.get(hash(texture));
|
||||
}
|
||||
getSize(texture: Object) {
|
||||
return null; // FIXME there is currently no way to yield that ( related https://github.com/gre/gl-react/issues/131)
|
||||
}
|
||||
}
|
||||
@ -1,112 +0,0 @@
|
||||
//@flow
|
||||
import { Image } from "react-native";
|
||||
import Expo from "expo";
|
||||
import { TextureLoader } from "gl-react";
|
||||
import type { DisposablePromise } from "gl-react/lib/helpers/disposable";
|
||||
import md5 from "./md5";
|
||||
|
||||
type Asset = {
|
||||
width: number,
|
||||
height: number,
|
||||
uri: string,
|
||||
localUri: string
|
||||
};
|
||||
|
||||
const hash = (module: number | { uri: string }) =>
|
||||
typeof module === "number" ? module : module.uri;
|
||||
|
||||
const localAsset = (module: number) => {
|
||||
const asset = Expo.Asset.fromModule(module);
|
||||
return asset.downloadAsync().then(() => asset);
|
||||
};
|
||||
|
||||
const remoteAssetCache = {};
|
||||
|
||||
const remoteAsset = (uri: string) => {
|
||||
const i = uri.lastIndexOf(".");
|
||||
const ext = i !== -1 ? uri.slice(i) : ".jpg";
|
||||
const key = md5(uri);
|
||||
if (key in remoteAssetCache) {
|
||||
return Promise.resolve(remoteAssetCache[key]);
|
||||
}
|
||||
const promise = Promise.all([
|
||||
new Promise((success, failure) =>
|
||||
Image.getSize(uri, (width, height) => success({ width, height }), failure)
|
||||
),
|
||||
Expo.FileSystem.downloadAsync(
|
||||
uri,
|
||||
Expo.FileSystem.documentDirectory + `ExponentAsset-${key}${ext}`,
|
||||
{
|
||||
cache: true
|
||||
}
|
||||
)
|
||||
]).then(([size, asset]) => ({ ...size, uri, localUri: asset.uri }));
|
||||
remoteAssetCache[key] = promise;
|
||||
return promise;
|
||||
};
|
||||
|
||||
export const loadAsset = (module: number | { uri: string }): Promise<Asset> =>
|
||||
typeof module === "number" ? localAsset(module) : remoteAsset(module.uri);
|
||||
|
||||
export default class ExponentTextureLoader extends TextureLoader<*> {
|
||||
loads: Map<number | string, DisposablePromise<*>> = new Map();
|
||||
textures: Map<number | string, *> = new Map();
|
||||
assetSizes: Map<number | string, *> = new Map();
|
||||
dispose() {
|
||||
const { loads } = this;
|
||||
loads.forEach(d => {
|
||||
d.dispose();
|
||||
});
|
||||
loads.clear();
|
||||
}
|
||||
canLoad(input: any) {
|
||||
return (
|
||||
typeof input === "number" ||
|
||||
(input && typeof input === "object" && typeof input.uri === "string")
|
||||
);
|
||||
}
|
||||
load(module: number | { uri: string }): DisposablePromise<*> {
|
||||
const key = hash(module);
|
||||
if (this.loads.has(key)) {
|
||||
return this.loads.get(key);
|
||||
}
|
||||
let dispose = () => {};
|
||||
let ignored = false;
|
||||
const promise = loadAsset(module).then(asset => {
|
||||
if (ignored) return;
|
||||
const { gl } = this;
|
||||
const { width, height } = asset;
|
||||
const texture = gl.createTexture();
|
||||
gl.bindTexture(gl.TEXTURE_2D, texture);
|
||||
gl.texImage2D(
|
||||
gl.TEXTURE_2D,
|
||||
0,
|
||||
gl.RGBA,
|
||||
width,
|
||||
height,
|
||||
0,
|
||||
gl.RGBA,
|
||||
gl.UNSIGNED_BYTE,
|
||||
asset
|
||||
);
|
||||
this.textures.set(key, texture);
|
||||
this.assetSizes.set(key, [width, height]);
|
||||
this.loads.delete(key);
|
||||
return texture;
|
||||
});
|
||||
const d = {
|
||||
dispose() {
|
||||
ignored = true;
|
||||
},
|
||||
promise
|
||||
};
|
||||
this.loads.set(key, d);
|
||||
return d;
|
||||
}
|
||||
get(module: number) {
|
||||
return this.textures.get(hash(module));
|
||||
}
|
||||
getSize(texture: Object) {
|
||||
return this.assetSizes.get(hash(module));
|
||||
}
|
||||
}
|
||||
@ -1,6 +1,7 @@
|
||||
import { loadAsset } from "./ExponentTextureLoader";
|
||||
import { loadAsset } from "webgltexture-loader-expo/lib/ExponentTextureLoader";
|
||||
|
||||
export default function GLImage() {
|
||||
console.warn("Usage of gl-react-expo Image is deprecated");
|
||||
if (!(this instanceof GLImage))
|
||||
throw new Error(
|
||||
"Failed to construct 'Image': Please use the 'new' operator."
|
||||
|
||||
@ -1,12 +1,8 @@
|
||||
//@flow
|
||||
import { View } from "react-native";
|
||||
import { createSurface, TextureLoaders } from "gl-react";
|
||||
import { createSurface } from "gl-react";
|
||||
import GLView from "./GLViewNative";
|
||||
import ExponentTextureLoader from "./ExponentTextureLoader";
|
||||
import ExponentGLObjectTextureLoader from "./ExponentGLObjectTextureLoader";
|
||||
|
||||
TextureLoaders.add(ExponentTextureLoader);
|
||||
TextureLoaders.add(ExponentGLObjectTextureLoader);
|
||||
import "webgltexture-loader-expo";
|
||||
|
||||
const RenderLessElement = View;
|
||||
|
||||
|
||||
@ -1,96 +0,0 @@
|
||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
asap@~2.0.3:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
|
||||
|
||||
core-js@^1.0.0:
|
||||
version "1.2.7"
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
|
||||
|
||||
encoding@^0.1.11:
|
||||
version "0.1.12"
|
||||
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
|
||||
dependencies:
|
||||
iconv-lite "~0.4.13"
|
||||
|
||||
fbjs@^0.8.9:
|
||||
version "0.8.14"
|
||||
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c"
|
||||
dependencies:
|
||||
core-js "^1.0.0"
|
||||
isomorphic-fetch "^2.1.1"
|
||||
loose-envify "^1.0.0"
|
||||
object-assign "^4.1.0"
|
||||
promise "^7.1.1"
|
||||
setimmediate "^1.0.5"
|
||||
ua-parser-js "^0.7.9"
|
||||
|
||||
iconv-lite@~0.4.13:
|
||||
version "0.4.18"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
|
||||
|
||||
invariant@^2.2.1:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
|
||||
dependencies:
|
||||
loose-envify "^1.0.0"
|
||||
|
||||
is-stream@^1.0.1:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
|
||||
|
||||
isomorphic-fetch@^2.1.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
|
||||
dependencies:
|
||||
node-fetch "^1.0.1"
|
||||
whatwg-fetch ">=0.10.0"
|
||||
|
||||
js-tokens@^3.0.0:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
|
||||
|
||||
loose-envify@^1.0.0, loose-envify@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
|
||||
dependencies:
|
||||
js-tokens "^3.0.0"
|
||||
|
||||
node-fetch@^1.0.1:
|
||||
version "1.7.2"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7"
|
||||
dependencies:
|
||||
encoding "^0.1.11"
|
||||
is-stream "^1.0.1"
|
||||
|
||||
object-assign@^4.1.0:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
||||
|
||||
promise@^7.1.1:
|
||||
version "7.3.1"
|
||||
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
|
||||
dependencies:
|
||||
asap "~2.0.3"
|
||||
|
||||
prop-types@^15.5.8:
|
||||
version "15.5.10"
|
||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
|
||||
dependencies:
|
||||
fbjs "^0.8.9"
|
||||
loose-envify "^1.3.1"
|
||||
|
||||
setimmediate@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
|
||||
|
||||
ua-parser-js@^0.7.9:
|
||||
version "0.7.14"
|
||||
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca"
|
||||
|
||||
whatwg-fetch@>=0.10.0:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
|
||||
@ -3,15 +3,10 @@
|
||||
"version": "3.13.0",
|
||||
"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",
|
||||
"description":
|
||||
"headless-gl implementation of gl-react, an universal React library to write and compose WebGL shaders",
|
||||
"main": "lib/index.js",
|
||||
"files": [
|
||||
"src",
|
||||
"lib",
|
||||
".flowconfig",
|
||||
"README.md",
|
||||
"LICENSE"
|
||||
],
|
||||
"files": ["src", "lib", ".flowconfig", "README.md", "LICENSE"],
|
||||
"peerDependencies": {
|
||||
"gl-react": "^3.13.0",
|
||||
"react": "*"
|
||||
@ -26,7 +21,9 @@
|
||||
"gl-react": "^3.13.0"
|
||||
},
|
||||
"scripts": {
|
||||
"prepublish": "cd ../.. && export PATH=$(npm bin):$PATH && cd - &&rm -rf lib && babel --source-maps -d lib src && flow-copy-source -v src lib",
|
||||
"watch": "cd ../.. && export PATH=$(npm bin):$PATH && cd - && babel --watch --source-maps -d lib src"
|
||||
"prepublish":
|
||||
"cd ../.. && export PATH=$(npm bin):$PATH && cd - &&rm -rf lib && babel --source-maps -d lib src && flow-copy-source -v src lib",
|
||||
"watch":
|
||||
"cd ../.. && export PATH=$(npm bin):$PATH && cd - && babel --watch --source-maps -d lib src"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,847 +0,0 @@
|
||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
abbrev@1:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f"
|
||||
|
||||
ajv@^4.9.1:
|
||||
version "4.11.8"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
|
||||
dependencies:
|
||||
co "^4.6.0"
|
||||
json-stable-stringify "^1.0.1"
|
||||
|
||||
ansi-regex@^2.0.0:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
|
||||
|
||||
aproba@^1.0.3:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1"
|
||||
|
||||
are-we-there-yet@~1.1.2:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
|
||||
dependencies:
|
||||
delegates "^1.0.0"
|
||||
readable-stream "^2.0.6"
|
||||
|
||||
asap@~2.0.3:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
|
||||
|
||||
asn1@~0.2.3:
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
|
||||
|
||||
assert-plus@1.0.0, assert-plus@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
|
||||
|
||||
assert-plus@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
|
||||
|
||||
asynckit@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
||||
|
||||
aws-sign2@~0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
|
||||
|
||||
aws4@^1.2.1:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
|
||||
|
||||
balanced-match@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
||||
|
||||
bcrypt-pbkdf@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
|
||||
dependencies:
|
||||
tweetnacl "^0.14.3"
|
||||
|
||||
bindings@^1.2.1:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7"
|
||||
|
||||
bit-twiddle@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/bit-twiddle/-/bit-twiddle-1.0.2.tgz#0c6c1fabe2b23d17173d9a61b7b7093eb9e1769e"
|
||||
|
||||
bl@^1.0.0:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e"
|
||||
dependencies:
|
||||
readable-stream "^2.0.5"
|
||||
|
||||
block-stream@*:
|
||||
version "0.0.9"
|
||||
resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
|
||||
dependencies:
|
||||
inherits "~2.0.0"
|
||||
|
||||
boom@2.x.x:
|
||||
version "2.10.1"
|
||||
resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
|
||||
dependencies:
|
||||
hoek "2.x.x"
|
||||
|
||||
brace-expansion@^1.1.7:
|
||||
version "1.1.8"
|
||||
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
|
||||
dependencies:
|
||||
balanced-match "^1.0.0"
|
||||
concat-map "0.0.1"
|
||||
|
||||
caseless@~0.12.0:
|
||||
version "0.12.0"
|
||||
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
|
||||
|
||||
chownr@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
|
||||
|
||||
co@^4.6.0:
|
||||
version "4.6.0"
|
||||
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
|
||||
|
||||
code-point-at@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
|
||||
|
||||
combined-stream@^1.0.5, combined-stream@~1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
|
||||
dependencies:
|
||||
delayed-stream "~1.0.0"
|
||||
|
||||
concat-map@0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||
|
||||
console-control-strings@^1.0.0, console-control-strings@~1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
|
||||
|
||||
core-js@^1.0.0:
|
||||
version "1.2.7"
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
|
||||
|
||||
core-util-is@1.0.2, core-util-is@~1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
||||
|
||||
cryptiles@2.x.x:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
|
||||
dependencies:
|
||||
boom "2.x.x"
|
||||
|
||||
dashdash@^1.12.0:
|
||||
version "1.14.1"
|
||||
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
|
||||
dependencies:
|
||||
assert-plus "^1.0.0"
|
||||
|
||||
deep-extend@~0.4.0:
|
||||
version "0.4.2"
|
||||
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
|
||||
|
||||
delayed-stream@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
|
||||
|
||||
delegates@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
|
||||
|
||||
ecc-jsbn@~0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
|
||||
dependencies:
|
||||
jsbn "~0.1.0"
|
||||
|
||||
encoding@^0.1.11:
|
||||
version "0.1.12"
|
||||
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
|
||||
dependencies:
|
||||
iconv-lite "~0.4.13"
|
||||
|
||||
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206"
|
||||
dependencies:
|
||||
once "^1.4.0"
|
||||
|
||||
expand-template@^1.0.2:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.1.0.tgz#e09efba977bf98f9ee0ed25abd0c692e02aec3fc"
|
||||
|
||||
extend@~3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
|
||||
|
||||
extsprintf@1.3.0, extsprintf@^1.2.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
|
||||
|
||||
fbjs@^0.8.9:
|
||||
version "0.8.14"
|
||||
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c"
|
||||
dependencies:
|
||||
core-js "^1.0.0"
|
||||
isomorphic-fetch "^2.1.1"
|
||||
loose-envify "^1.0.0"
|
||||
object-assign "^4.1.0"
|
||||
promise "^7.1.1"
|
||||
setimmediate "^1.0.5"
|
||||
ua-parser-js "^0.7.9"
|
||||
|
||||
forever-agent@~0.6.1:
|
||||
version "0.6.1"
|
||||
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
|
||||
|
||||
form-data@~2.1.1:
|
||||
version "2.1.4"
|
||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
|
||||
dependencies:
|
||||
asynckit "^0.4.0"
|
||||
combined-stream "^1.0.5"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
fs.realpath@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
||||
|
||||
fstream@^1.0.0, fstream@^1.0.2:
|
||||
version "1.0.11"
|
||||
resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
|
||||
dependencies:
|
||||
graceful-fs "^4.1.2"
|
||||
inherits "~2.0.0"
|
||||
mkdirp ">=0.5 0"
|
||||
rimraf "2"
|
||||
|
||||
gauge@~2.7.3:
|
||||
version "2.7.4"
|
||||
resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
|
||||
dependencies:
|
||||
aproba "^1.0.3"
|
||||
console-control-strings "^1.0.0"
|
||||
has-unicode "^2.0.0"
|
||||
object-assign "^4.1.0"
|
||||
signal-exit "^3.0.0"
|
||||
string-width "^1.0.1"
|
||||
strip-ansi "^3.0.1"
|
||||
wide-align "^1.1.0"
|
||||
|
||||
getpass@^0.1.1:
|
||||
version "0.1.7"
|
||||
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
|
||||
dependencies:
|
||||
assert-plus "^1.0.0"
|
||||
|
||||
github-from-package@0.0.0:
|
||||
version "0.0.0"
|
||||
resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
|
||||
|
||||
gl@^4.0.2:
|
||||
version "4.0.4"
|
||||
resolved "https://registry.yarnpkg.com/gl/-/gl-4.0.4.tgz#46745f365a230672b2f988d85018f737e64c3343"
|
||||
dependencies:
|
||||
bindings "^1.2.1"
|
||||
bit-twiddle "^1.0.2"
|
||||
glsl-tokenizer "^2.0.2"
|
||||
nan "^2.6.2"
|
||||
node-gyp "^3.6.2"
|
||||
prebuild-install "^2.1.1"
|
||||
|
||||
glob@^7.0.3, glob@^7.0.5:
|
||||
version "7.1.2"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
|
||||
dependencies:
|
||||
fs.realpath "^1.0.0"
|
||||
inflight "^1.0.4"
|
||||
inherits "2"
|
||||
minimatch "^3.0.4"
|
||||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
glsl-tokenizer@^2.0.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/glsl-tokenizer/-/glsl-tokenizer-2.1.2.tgz#720307522e03c57af35c00551950c4a70ef2dfb9"
|
||||
dependencies:
|
||||
through2 "^0.6.3"
|
||||
|
||||
graceful-fs@^4.1.2:
|
||||
version "4.1.11"
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
|
||||
|
||||
har-schema@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
|
||||
|
||||
har-validator@~4.2.1:
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
|
||||
dependencies:
|
||||
ajv "^4.9.1"
|
||||
har-schema "^1.0.5"
|
||||
|
||||
has-unicode@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
|
||||
|
||||
hawk@~3.1.3:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
|
||||
dependencies:
|
||||
boom "2.x.x"
|
||||
cryptiles "2.x.x"
|
||||
hoek "2.x.x"
|
||||
sntp "1.x.x"
|
||||
|
||||
hoek@2.x.x:
|
||||
version "2.16.3"
|
||||
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
|
||||
|
||||
http-signature@~1.1.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
|
||||
dependencies:
|
||||
assert-plus "^0.2.0"
|
||||
jsprim "^1.2.2"
|
||||
sshpk "^1.7.0"
|
||||
|
||||
iconv-lite@~0.4.13:
|
||||
version "0.4.18"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
|
||||
|
||||
inflight@^1.0.4:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
||||
dependencies:
|
||||
once "^1.3.0"
|
||||
wrappy "1"
|
||||
|
||||
inherits@2, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
||||
|
||||
ini@~1.3.0:
|
||||
version "1.3.4"
|
||||
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
|
||||
|
||||
invariant@^2.2.1:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
|
||||
dependencies:
|
||||
loose-envify "^1.0.0"
|
||||
|
||||
is-fullwidth-code-point@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
|
||||
dependencies:
|
||||
number-is-nan "^1.0.0"
|
||||
|
||||
is-stream@^1.0.1:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
|
||||
|
||||
is-typedarray@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
|
||||
|
||||
isarray@0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
|
||||
|
||||
isarray@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
||||
|
||||
isexe@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
||||
|
||||
isomorphic-fetch@^2.1.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
|
||||
dependencies:
|
||||
node-fetch "^1.0.1"
|
||||
whatwg-fetch ">=0.10.0"
|
||||
|
||||
isstream@~0.1.2:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
|
||||
|
||||
js-tokens@^3.0.0:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
|
||||
|
||||
jsbn@~0.1.0:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
|
||||
|
||||
json-schema@0.2.3:
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
|
||||
|
||||
json-stable-stringify@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
|
||||
dependencies:
|
||||
jsonify "~0.0.0"
|
||||
|
||||
json-stringify-safe@~5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
|
||||
|
||||
jsonify@~0.0.0:
|
||||
version "0.0.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
|
||||
|
||||
jsprim@^1.2.2:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
|
||||
dependencies:
|
||||
assert-plus "1.0.0"
|
||||
extsprintf "1.3.0"
|
||||
json-schema "0.2.3"
|
||||
verror "1.10.0"
|
||||
|
||||
loose-envify@^1.0.0, loose-envify@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
|
||||
dependencies:
|
||||
js-tokens "^3.0.0"
|
||||
|
||||
mime-db@~1.29.0:
|
||||
version "1.29.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878"
|
||||
|
||||
mime-types@^2.1.12, mime-types@~2.1.7:
|
||||
version "2.1.16"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23"
|
||||
dependencies:
|
||||
mime-db "~1.29.0"
|
||||
|
||||
minimatch@^3.0.2, minimatch@^3.0.4:
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
|
||||
dependencies:
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
minimist@0.0.8:
|
||||
version "0.0.8"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
||||
|
||||
minimist@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
|
||||
|
||||
"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1:
|
||||
version "0.5.1"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
||||
dependencies:
|
||||
minimist "0.0.8"
|
||||
|
||||
nan@^2.6.2:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
|
||||
|
||||
node-abi@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.1.0.tgz#50ad834affcf17440e12bfc5f9ba0946f572d10c"
|
||||
|
||||
node-fetch@^1.0.1:
|
||||
version "1.7.2"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7"
|
||||
dependencies:
|
||||
encoding "^0.1.11"
|
||||
is-stream "^1.0.1"
|
||||
|
||||
node-gyp@^3.6.2:
|
||||
version "3.6.2"
|
||||
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60"
|
||||
dependencies:
|
||||
fstream "^1.0.0"
|
||||
glob "^7.0.3"
|
||||
graceful-fs "^4.1.2"
|
||||
minimatch "^3.0.2"
|
||||
mkdirp "^0.5.0"
|
||||
nopt "2 || 3"
|
||||
npmlog "0 || 1 || 2 || 3 || 4"
|
||||
osenv "0"
|
||||
request "2"
|
||||
rimraf "2"
|
||||
semver "~5.3.0"
|
||||
tar "^2.0.0"
|
||||
which "1"
|
||||
|
||||
noop-logger@^0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2"
|
||||
|
||||
"nopt@2 || 3":
|
||||
version "3.0.6"
|
||||
resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
|
||||
dependencies:
|
||||
abbrev "1"
|
||||
|
||||
"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.1:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
|
||||
dependencies:
|
||||
are-we-there-yet "~1.1.2"
|
||||
console-control-strings "~1.1.0"
|
||||
gauge "~2.7.3"
|
||||
set-blocking "~2.0.0"
|
||||
|
||||
number-is-nan@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
|
||||
|
||||
oauth-sign@~0.8.1:
|
||||
version "0.8.2"
|
||||
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
|
||||
|
||||
object-assign@^4.1.0:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
||||
|
||||
once@^1.3.0, once@^1.3.1, once@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
||||
dependencies:
|
||||
wrappy "1"
|
||||
|
||||
os-homedir@^1.0.0, os-homedir@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
|
||||
|
||||
os-tmpdir@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
|
||||
|
||||
osenv@0:
|
||||
version "0.1.4"
|
||||
resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644"
|
||||
dependencies:
|
||||
os-homedir "^1.0.0"
|
||||
os-tmpdir "^1.0.0"
|
||||
|
||||
path-is-absolute@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||
|
||||
performance-now@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
|
||||
|
||||
performance-now@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
|
||||
|
||||
prebuild-install@^2.1.1:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.2.2.tgz#dd47c4d61f3754fb17bbf601759e5922e16e0671"
|
||||
dependencies:
|
||||
expand-template "^1.0.2"
|
||||
github-from-package "0.0.0"
|
||||
minimist "^1.2.0"
|
||||
mkdirp "^0.5.1"
|
||||
node-abi "^2.0.0"
|
||||
noop-logger "^0.1.1"
|
||||
npmlog "^4.0.1"
|
||||
os-homedir "^1.0.1"
|
||||
pump "^1.0.1"
|
||||
rc "^1.1.6"
|
||||
simple-get "^1.4.2"
|
||||
tar-fs "^1.13.0"
|
||||
tunnel-agent "^0.6.0"
|
||||
xtend "4.0.1"
|
||||
|
||||
process-nextick-args@~1.0.6:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
|
||||
|
||||
promise@^7.1.1:
|
||||
version "7.3.1"
|
||||
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
|
||||
dependencies:
|
||||
asap "~2.0.3"
|
||||
|
||||
prop-types@^15.5.8:
|
||||
version "15.5.10"
|
||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
|
||||
dependencies:
|
||||
fbjs "^0.8.9"
|
||||
loose-envify "^1.3.1"
|
||||
|
||||
pump@^1.0.0, pump@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.2.tgz#3b3ee6512f94f0e575538c17995f9f16990a5d51"
|
||||
dependencies:
|
||||
end-of-stream "^1.1.0"
|
||||
once "^1.3.1"
|
||||
|
||||
punycode@^1.4.1:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
|
||||
|
||||
qs@~6.4.0:
|
||||
version "6.4.0"
|
||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
|
||||
|
||||
raf@^3.3.0:
|
||||
version "3.3.2"
|
||||
resolved "https://registry.yarnpkg.com/raf/-/raf-3.3.2.tgz#0c13be0b5b49b46f76d6669248d527cf2b02fe27"
|
||||
dependencies:
|
||||
performance-now "^2.1.0"
|
||||
|
||||
rc@^1.1.6:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95"
|
||||
dependencies:
|
||||
deep-extend "~0.4.0"
|
||||
ini "~1.3.0"
|
||||
minimist "^1.2.0"
|
||||
strip-json-comments "~2.0.1"
|
||||
|
||||
"readable-stream@>=1.0.33-1 <1.1.0-0":
|
||||
version "1.0.34"
|
||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
|
||||
dependencies:
|
||||
core-util-is "~1.0.0"
|
||||
inherits "~2.0.1"
|
||||
isarray "0.0.1"
|
||||
string_decoder "~0.10.x"
|
||||
|
||||
readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.0.6:
|
||||
version "2.3.3"
|
||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
|
||||
dependencies:
|
||||
core-util-is "~1.0.0"
|
||||
inherits "~2.0.3"
|
||||
isarray "~1.0.0"
|
||||
process-nextick-args "~1.0.6"
|
||||
safe-buffer "~5.1.1"
|
||||
string_decoder "~1.0.3"
|
||||
util-deprecate "~1.0.1"
|
||||
|
||||
request@2:
|
||||
version "2.81.0"
|
||||
resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
|
||||
dependencies:
|
||||
aws-sign2 "~0.6.0"
|
||||
aws4 "^1.2.1"
|
||||
caseless "~0.12.0"
|
||||
combined-stream "~1.0.5"
|
||||
extend "~3.0.0"
|
||||
forever-agent "~0.6.1"
|
||||
form-data "~2.1.1"
|
||||
har-validator "~4.2.1"
|
||||
hawk "~3.1.3"
|
||||
http-signature "~1.1.0"
|
||||
is-typedarray "~1.0.0"
|
||||
isstream "~0.1.2"
|
||||
json-stringify-safe "~5.0.1"
|
||||
mime-types "~2.1.7"
|
||||
oauth-sign "~0.8.1"
|
||||
performance-now "^0.2.0"
|
||||
qs "~6.4.0"
|
||||
safe-buffer "^5.0.1"
|
||||
stringstream "~0.0.4"
|
||||
tough-cookie "~2.3.0"
|
||||
tunnel-agent "^0.6.0"
|
||||
uuid "^3.0.0"
|
||||
|
||||
rimraf@2:
|
||||
version "2.6.1"
|
||||
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
|
||||
dependencies:
|
||||
glob "^7.0.5"
|
||||
|
||||
safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
|
||||
|
||||
semver@~5.3.0:
|
||||
version "5.3.0"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
|
||||
|
||||
set-blocking@~2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
|
||||
|
||||
setimmediate@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
|
||||
|
||||
signal-exit@^3.0.0:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
|
||||
|
||||
simple-get@^1.4.2:
|
||||
version "1.4.3"
|
||||
resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-1.4.3.tgz#e9755eda407e96da40c5e5158c9ea37b33becbeb"
|
||||
dependencies:
|
||||
once "^1.3.1"
|
||||
unzip-response "^1.0.0"
|
||||
xtend "^4.0.0"
|
||||
|
||||
sntp@1.x.x:
|
||||
version "1.0.9"
|
||||
resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
|
||||
dependencies:
|
||||
hoek "2.x.x"
|
||||
|
||||
sshpk@^1.7.0:
|
||||
version "1.13.1"
|
||||
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
|
||||
dependencies:
|
||||
asn1 "~0.2.3"
|
||||
assert-plus "^1.0.0"
|
||||
dashdash "^1.12.0"
|
||||
getpass "^0.1.1"
|
||||
optionalDependencies:
|
||||
bcrypt-pbkdf "^1.0.0"
|
||||
ecc-jsbn "~0.1.1"
|
||||
jsbn "~0.1.0"
|
||||
tweetnacl "~0.14.0"
|
||||
|
||||
string-width@^1.0.1, string-width@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
|
||||
dependencies:
|
||||
code-point-at "^1.0.0"
|
||||
is-fullwidth-code-point "^1.0.0"
|
||||
strip-ansi "^3.0.0"
|
||||
|
||||
string_decoder@~0.10.x:
|
||||
version "0.10.31"
|
||||
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
|
||||
|
||||
string_decoder@~1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
|
||||
dependencies:
|
||||
safe-buffer "~5.1.0"
|
||||
|
||||
stringstream@~0.0.4:
|
||||
version "0.0.5"
|
||||
resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
|
||||
|
||||
strip-ansi@^3.0.0, strip-ansi@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
|
||||
dependencies:
|
||||
ansi-regex "^2.0.0"
|
||||
|
||||
strip-json-comments@~2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
|
||||
|
||||
tar-fs@^1.13.0:
|
||||
version "1.15.3"
|
||||
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.15.3.tgz#eccf935e941493d8151028e636e51ce4c3ca7f20"
|
||||
dependencies:
|
||||
chownr "^1.0.1"
|
||||
mkdirp "^0.5.1"
|
||||
pump "^1.0.0"
|
||||
tar-stream "^1.1.2"
|
||||
|
||||
tar-stream@^1.1.2:
|
||||
version "1.5.4"
|
||||
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.4.tgz#36549cf04ed1aee9b2a30c0143252238daf94016"
|
||||
dependencies:
|
||||
bl "^1.0.0"
|
||||
end-of-stream "^1.0.0"
|
||||
readable-stream "^2.0.0"
|
||||
xtend "^4.0.0"
|
||||
|
||||
tar@^2.0.0:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
|
||||
dependencies:
|
||||
block-stream "*"
|
||||
fstream "^1.0.2"
|
||||
inherits "2"
|
||||
|
||||
through2@^0.6.3:
|
||||
version "0.6.5"
|
||||
resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
|
||||
dependencies:
|
||||
readable-stream ">=1.0.33-1 <1.1.0-0"
|
||||
xtend ">=4.0.0 <4.1.0-0"
|
||||
|
||||
tough-cookie@~2.3.0:
|
||||
version "2.3.2"
|
||||
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
|
||||
dependencies:
|
||||
punycode "^1.4.1"
|
||||
|
||||
tunnel-agent@^0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
|
||||
dependencies:
|
||||
safe-buffer "^5.0.1"
|
||||
|
||||
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
|
||||
version "0.14.5"
|
||||
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
|
||||
|
||||
ua-parser-js@^0.7.9:
|
||||
version "0.7.14"
|
||||
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca"
|
||||
|
||||
unzip-response@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe"
|
||||
|
||||
util-deprecate@~1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
||||
|
||||
uuid@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
|
||||
|
||||
verror@1.10.0:
|
||||
version "1.10.0"
|
||||
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
|
||||
dependencies:
|
||||
assert-plus "^1.0.0"
|
||||
core-util-is "1.0.2"
|
||||
extsprintf "^1.2.0"
|
||||
|
||||
whatwg-fetch@>=0.10.0:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
|
||||
|
||||
which@1:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
|
||||
dependencies:
|
||||
isexe "^2.0.0"
|
||||
|
||||
wide-align@^1.1.0:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
|
||||
dependencies:
|
||||
string-width "^1.0.2"
|
||||
|
||||
wrappy@1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||
|
||||
xtend@4.0.1, "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
|
||||
@ -3,7 +3,8 @@
|
||||
"version": "3.13.0",
|
||||
"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",
|
||||
"description":
|
||||
"React Native standalone implementation of gl-react, an universal React library to write and compose WebGL shaders",
|
||||
"keywords": [
|
||||
"gl-react",
|
||||
"gl",
|
||||
@ -34,12 +35,13 @@
|
||||
"gl-react": "^3.13.0"
|
||||
},
|
||||
"scripts": {
|
||||
"prepublish": "cd ../.. && export PATH=$(npm bin):$PATH && cd - && rm -rf lib && babel --source-maps -d lib src && flow-copy-source -v src lib",
|
||||
"watch": "cd ../.. && export PATH=$(npm bin):$PATH && cd - && babel --watch --source-maps -d lib src"
|
||||
"prepublish":
|
||||
"cd ../.. && export PATH=$(npm bin):$PATH && cd - && rm -rf lib && babel --source-maps -d lib src && flow-copy-source -v src lib",
|
||||
"watch":
|
||||
"cd ../.. && export PATH=$(npm bin):$PATH && cd - && babel --watch --source-maps -d lib src"
|
||||
},
|
||||
"dependencies": {
|
||||
"events": "^1.1.1",
|
||||
"lru": "^3.1.0",
|
||||
"prop-types": "^15.5.8"
|
||||
"prop-types": "^15.5.8",
|
||||
"webgltexture-loader-react-native": "^0.6.0"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,73 +0,0 @@
|
||||
//@flow
|
||||
import { TextureLoader } from "gl-react";
|
||||
import type { DisposablePromise } from "gl-react/lib/helpers/disposable";
|
||||
|
||||
type ImageSource = Object | "number";
|
||||
type ImageSourceHash = string | number;
|
||||
type Asset = { texture: WebGLTexture, width: number, height: number };
|
||||
|
||||
function imageSourceHash(imageSource: ImageSource): ImageSourceHash {
|
||||
if (typeof imageSource === "number") return imageSource;
|
||||
const { uri } = imageSource;
|
||||
if (!uri) {
|
||||
throw new Error(
|
||||
"GLImages: unsupported imageSource: {uri} needs to be defined"
|
||||
);
|
||||
}
|
||||
return uri;
|
||||
}
|
||||
|
||||
export default class ImageSourceTextureLoader extends TextureLoader<
|
||||
ImageSource
|
||||
> {
|
||||
loads: Map<*, DisposablePromise<WebGLTexture>> = new Map();
|
||||
textureAssets: Map<*, Asset> = new Map();
|
||||
dispose() {
|
||||
this.loads.forEach(d => {
|
||||
d.dispose();
|
||||
});
|
||||
this.loads.clear();
|
||||
const { gl } = this;
|
||||
const rngl = gl.getExtension("RN");
|
||||
this.textureAssets.forEach(({ texture }) => {
|
||||
rngl.unloadTexture(texture);
|
||||
});
|
||||
this.textureAssets.clear();
|
||||
}
|
||||
|
||||
canLoad(input: any) {
|
||||
return (
|
||||
typeof input === "number" ||
|
||||
(input && typeof input === "object" && typeof input.uri === "string")
|
||||
);
|
||||
}
|
||||
|
||||
load(imageSource: ImageSource): DisposablePromise<*> {
|
||||
const hash = imageSourceHash(imageSource);
|
||||
const load = this.loads.get(hash);
|
||||
if (load) return load;
|
||||
let ignored = false;
|
||||
let dispose = () => {
|
||||
ignored = true;
|
||||
};
|
||||
const promise = this.gl
|
||||
.getExtension("RN")
|
||||
.loadTexture({ yflip: true, image: imageSource })
|
||||
.then(data => {
|
||||
this.textureAssets.set(hash, data);
|
||||
return data.texture;
|
||||
});
|
||||
const d = { dispose, promise };
|
||||
this.loads.set(hash, d);
|
||||
return d;
|
||||
}
|
||||
get(imageSource: ImageSource) {
|
||||
const asset = this.textureAssets.get(imageSourceHash(imageSource));
|
||||
return asset && asset.texture;
|
||||
}
|
||||
getSize(imageSource: ImageSource) {
|
||||
const asset = this.textureAssets.get(imageSourceHash(imageSource));
|
||||
if (!asset) return;
|
||||
return [asset.width, asset.height];
|
||||
}
|
||||
}
|
||||
@ -1,9 +1,8 @@
|
||||
//@flow
|
||||
import { View } from "react-native";
|
||||
import { createSurface, TextureLoaders } from "gl-react";
|
||||
import { createSurface } from "gl-react";
|
||||
import GLView from "./GLViewNative";
|
||||
import ImageSourceTextureLoader from "./ImageSourceTextureLoader";
|
||||
TextureLoaders.add(ImageSourceTextureLoader);
|
||||
import "webgltexture-loader-react-native";
|
||||
|
||||
const RenderLessElement = View;
|
||||
|
||||
|
||||
@ -1,104 +0,0 @@
|
||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
asap@~2.0.3:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
|
||||
|
||||
core-js@^1.0.0:
|
||||
version "1.2.7"
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
|
||||
|
||||
encoding@^0.1.11:
|
||||
version "0.1.12"
|
||||
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
|
||||
dependencies:
|
||||
iconv-lite "~0.4.13"
|
||||
|
||||
events@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
|
||||
|
||||
fbjs@^0.8.9:
|
||||
version "0.8.14"
|
||||
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c"
|
||||
dependencies:
|
||||
core-js "^1.0.0"
|
||||
isomorphic-fetch "^2.1.1"
|
||||
loose-envify "^1.0.0"
|
||||
object-assign "^4.1.0"
|
||||
promise "^7.1.1"
|
||||
setimmediate "^1.0.5"
|
||||
ua-parser-js "^0.7.9"
|
||||
|
||||
iconv-lite@~0.4.13:
|
||||
version "0.4.18"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
|
||||
|
||||
inherits@^2.0.1:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
||||
|
||||
is-stream@^1.0.1:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
|
||||
|
||||
isomorphic-fetch@^2.1.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
|
||||
dependencies:
|
||||
node-fetch "^1.0.1"
|
||||
whatwg-fetch ">=0.10.0"
|
||||
|
||||
js-tokens@^3.0.0:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
|
||||
|
||||
loose-envify@^1.0.0, loose-envify@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
|
||||
dependencies:
|
||||
js-tokens "^3.0.0"
|
||||
|
||||
lru@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/lru/-/lru-3.1.0.tgz#ea7fb8546d83733396a13091d76cfeb4c06837d5"
|
||||
dependencies:
|
||||
inherits "^2.0.1"
|
||||
|
||||
node-fetch@^1.0.1:
|
||||
version "1.7.2"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7"
|
||||
dependencies:
|
||||
encoding "^0.1.11"
|
||||
is-stream "^1.0.1"
|
||||
|
||||
object-assign@^4.1.0:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
||||
|
||||
promise@^7.1.1:
|
||||
version "7.3.1"
|
||||
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
|
||||
dependencies:
|
||||
asap "~2.0.3"
|
||||
|
||||
prop-types@^15.5.8:
|
||||
version "15.5.10"
|
||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
|
||||
dependencies:
|
||||
fbjs "^0.8.9"
|
||||
loose-envify "^1.3.1"
|
||||
|
||||
setimmediate@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
|
||||
|
||||
ua-parser-js@^0.7.9:
|
||||
version "0.7.14"
|
||||
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca"
|
||||
|
||||
whatwg-fetch@>=0.10.0:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
|
||||
@ -23,14 +23,13 @@
|
||||
"react": "*"
|
||||
},
|
||||
"dependencies": {
|
||||
"gl-format-compiler-error":
|
||||
"github:gre/gl-format-compiler-error#fix-null-ending-character",
|
||||
"gl-shader": "^4.2.1",
|
||||
"invariant": "^2.2.1",
|
||||
"ndarray": "^1.0.18",
|
||||
"ndarray-ops": "^1.2.2",
|
||||
"prop-types": "^15.5.8",
|
||||
"typedarray-pool": "^1.1.0"
|
||||
"typedarray-pool": "^1.1.0",
|
||||
"webgltexture-loader": "^0.6.0",
|
||||
"webgltexture-loader-ndarray": "^0.6.0"
|
||||
},
|
||||
"scripts": {
|
||||
"prepublish":
|
||||
|
||||
@ -609,7 +609,9 @@ export default class Node extends Component {
|
||||
const pixels: Uint8Array = this._captureAlloc(size);
|
||||
this._bind();
|
||||
gl.readPixels(x, y, w, h, gl.RGBA, gl.UNSIGNED_BYTE, pixels);
|
||||
return ndarray(pixels, [h, w, 4]).step(-1, 1, 1).transpose(1, 0, 2);
|
||||
return ndarray(pixels, [h, w, 4])
|
||||
.step(-1, 1, 1)
|
||||
.transpose(1, 0, 2);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -829,7 +831,7 @@ export default class Node extends Component {
|
||||
|
||||
const { types } = shader;
|
||||
const glRedrawableDependencies: Array<Node | Bus> = [];
|
||||
const pendingTextures: Array<Promise<*>> = [];
|
||||
const pendingTextures: Array<*> = [];
|
||||
let units = 0;
|
||||
const usedUniforms = Object.keys(types.uniforms);
|
||||
const providedUniforms = Object.keys(uniforms);
|
||||
@ -942,14 +944,15 @@ export default class Node extends Component {
|
||||
} else {
|
||||
const t = loader.get(input);
|
||||
if (t) {
|
||||
loader.update(input);
|
||||
result = {
|
||||
directTexture: t,
|
||||
directTextureSize: loader.getSize(input)
|
||||
directTexture: t.texture,
|
||||
directTextureSize: [t.width, t.height]
|
||||
};
|
||||
} else {
|
||||
// otherwise, we will have to load it and postpone the rendering.
|
||||
const d = loader.load(input);
|
||||
pendingTextures.push(d.promise);
|
||||
const p = loader.load(input);
|
||||
pendingTextures.push(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,54 +0,0 @@
|
||||
//@flow
|
||||
import type { DisposablePromise } from "./helpers/disposable";
|
||||
|
||||
const noop = () => {};
|
||||
|
||||
/**
|
||||
* A texture loader is an extensible way to add more "renderable texture" into gl-react.
|
||||
*/
|
||||
export default class TextureLoader<T> {
|
||||
/**
|
||||
* @property {WebGLRenderingContext} gl - the contextual rendering context
|
||||
*/
|
||||
gl: WebGLRenderingContext;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
constructor(gl: WebGLRenderingContext) {
|
||||
this.gl = gl;
|
||||
}
|
||||
|
||||
/**
|
||||
* You must free everything you have done and stop all pending load() calls.
|
||||
*/
|
||||
+dispose: () => void;
|
||||
|
||||
/**
|
||||
* Check if the loader should handle a given input
|
||||
*/
|
||||
+canLoad: (input: any) => boolean;
|
||||
|
||||
/**
|
||||
* Load the resource by its input. it returns a promise and a dispose function.
|
||||
* If load() is called twice with the same input, same disposable object is expected (implementations needs to cache it).
|
||||
*/
|
||||
load(input: T): DisposablePromise<WebGLTexture> {
|
||||
// noop default implementation
|
||||
return {
|
||||
promise: new Promise(noop),
|
||||
dispose: noop
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* try to get in sync the texture for a given input. otherwise null.
|
||||
* If null is returned, load() can be called in order to load the resource that will later be available in a future get().
|
||||
*/
|
||||
+get: (input: T) => ?WebGLTexture;
|
||||
|
||||
/**
|
||||
* try to get in sync the texture size for a given input. otherwise null.
|
||||
*/
|
||||
+getSize: (input: T) => ?[number, number];
|
||||
}
|
||||
@ -1,33 +0,0 @@
|
||||
//@flow
|
||||
import { disposeObjectMap } from "./helpers/disposable";
|
||||
import TextureLoader from "./TextureLoader";
|
||||
import type { NDArray } from "ndarray";
|
||||
import drawNDArrayTexture from "./helpers/drawNDArrayTexture";
|
||||
|
||||
export default class TextureLoaderNDArray extends TextureLoader<NDArray> {
|
||||
textures: WeakMap<NDArray, WebGLTexture>;
|
||||
constructor(gl: WebGLRenderingContext) {
|
||||
super(gl);
|
||||
this.textures = new WeakMap();
|
||||
}
|
||||
canLoad(obj: *) {
|
||||
return obj.shape && obj.data && obj.stride;
|
||||
}
|
||||
dispose() {
|
||||
disposeObjectMap(this.textures);
|
||||
}
|
||||
get(array: NDArray) {
|
||||
const { gl } = this;
|
||||
let texture = this.textures.get(array);
|
||||
if (!texture) {
|
||||
texture = gl.createTexture();
|
||||
this.textures.set(array, texture);
|
||||
}
|
||||
gl.bindTexture(gl.TEXTURE_2D, texture);
|
||||
drawNDArrayTexture(gl, texture, array);
|
||||
return texture;
|
||||
}
|
||||
getSize(array: NDArray) {
|
||||
return array.shape.slice(0, 2);
|
||||
}
|
||||
}
|
||||
@ -1,58 +0,0 @@
|
||||
//@flow
|
||||
import TextureLoader from "./TextureLoader";
|
||||
export default class TextureLoaderRawObject<T> extends TextureLoader<T> {
|
||||
textureMemoized: WeakMap<T, WebGLTexture> = new WeakMap();
|
||||
textures: Array<WebGLTexture> = [];
|
||||
|
||||
+mapInput: (t: T) => any;
|
||||
+mapInputSize: (t: T) => ?[number, number];
|
||||
|
||||
dispose() {
|
||||
const { gl } = this;
|
||||
this.textures.forEach(t => gl.deleteTexture(t));
|
||||
this.textureMemoized = new WeakMap();
|
||||
this.textures = [];
|
||||
}
|
||||
|
||||
getSize(obj: T) {
|
||||
let texture = this.textureMemoized.get(obj);
|
||||
if (!texture) return null;
|
||||
return this.mapInputSize(obj);
|
||||
}
|
||||
|
||||
get(obj: T) {
|
||||
const { gl } = this;
|
||||
let texture = this.textureMemoized.get(obj);
|
||||
if (!texture) {
|
||||
texture = gl.createTexture();
|
||||
this.textureMemoized.set(obj, texture);
|
||||
this.textures.push(texture);
|
||||
}
|
||||
gl.bindTexture(gl.TEXTURE_2D, texture);
|
||||
const value = this.mapInput ? this.mapInput(obj) : obj;
|
||||
if (value) {
|
||||
// $FlowFixMe we are loosely on types here because we allow more that browser WebGL impl
|
||||
gl.texImage2D(
|
||||
gl.TEXTURE_2D,
|
||||
0,
|
||||
gl.RGBA,
|
||||
gl.RGBA,
|
||||
gl.UNSIGNED_BYTE,
|
||||
value
|
||||
);
|
||||
} else {
|
||||
gl.texImage2D(
|
||||
gl.TEXTURE_2D,
|
||||
0,
|
||||
gl.RGBA,
|
||||
2,
|
||||
2,
|
||||
0,
|
||||
gl.RGBA,
|
||||
gl.UNSIGNED_BYTE,
|
||||
null
|
||||
);
|
||||
}
|
||||
return texture;
|
||||
}
|
||||
}
|
||||
@ -1,33 +0,0 @@
|
||||
//@flow
|
||||
import type TextureLoader from "./TextureLoader";
|
||||
import TextureLoaderNDArray from "./TextureLoaderNDArray";
|
||||
|
||||
const loaderClasses: Array<Class<TextureLoader<any>>> = [TextureLoaderNDArray];
|
||||
|
||||
/**
|
||||
* Extensible way to support more sampler2D uniform texture formats.
|
||||
* You must call the methods statically before the `<Surface>` is instanciated.
|
||||
* @namespace
|
||||
*/
|
||||
const TextureLoaders = {
|
||||
/**
|
||||
* Add a TextureLoader class to extend texture format support.
|
||||
* @memberof TextureLoaders
|
||||
*/
|
||||
add(loader: Class<TextureLoader<any>>) {
|
||||
loaderClasses.push(loader);
|
||||
},
|
||||
/**
|
||||
* Remove a previously added TextureLoader class.
|
||||
* @memberof TextureLoaders
|
||||
*/
|
||||
remove(loader: Class<TextureLoader<any>>) {
|
||||
const i = loaderClasses.indexOf(loader);
|
||||
if (i !== -1) loaderClasses.splice(i, 1);
|
||||
},
|
||||
get() {
|
||||
return loaderClasses;
|
||||
}
|
||||
};
|
||||
|
||||
export default TextureLoaders;
|
||||
@ -3,17 +3,15 @@ import invariant from "invariant";
|
||||
import React, { Component } from "react";
|
||||
import PropTypes from "prop-types";
|
||||
import createShader from "gl-shader";
|
||||
import { disposeArray, disposeObjectMap } from "./helpers/disposable";
|
||||
import Bus from "./Bus";
|
||||
import Shaders from "./Shaders";
|
||||
import TextureLoaders from "./TextureLoaders";
|
||||
import Visitors from "./Visitors";
|
||||
import type { DisposablePromise } from "./helpers/disposable";
|
||||
import { LoaderResolver } from "webgltexture-loader";
|
||||
import type { NDArray } from "ndarray";
|
||||
import type { ShaderIdentifier, ShaderInfo } from "./Shaders";
|
||||
import type { Shader } from "gl-shader";
|
||||
import type { VisitorLike } from "./Visitor";
|
||||
import type TextureLoader from "./TextureLoader";
|
||||
import type { WebGLTextureLoader } from "webgltexture-loader";
|
||||
import type Node from "./Node";
|
||||
|
||||
const __DEV__ = process.env.NODE_ENV === "development";
|
||||
@ -62,7 +60,7 @@ interface ISurface extends Component<void, SurfaceProps, any> {
|
||||
+_removeGLNodeChild: (node: Node) => void,
|
||||
+_resolveTextureLoader: (
|
||||
raw: any
|
||||
) => { loader: ?TextureLoader<*>, input: mixed },
|
||||
) => { loader: ?WebGLTextureLoader<*>, input: mixed },
|
||||
+_getShader: (shaderId: ShaderIdentifier) => Shader,
|
||||
+_makeShader: (shaderInfo: ShaderInfo) => Shader,
|
||||
+_draw: () => void,
|
||||
@ -168,11 +166,11 @@ export default ({
|
||||
id: number = ++surfaceId;
|
||||
gl: ?WebGLRenderingContext;
|
||||
buffer: WebGLBuffer;
|
||||
loaders: ?Array<TextureLoader<*>>;
|
||||
loaderResolver: ?LoaderResolver;
|
||||
glView: ReactClass<*>;
|
||||
root: ?Node;
|
||||
shaders: { [key: string]: Shader } = {};
|
||||
_preparingGL: Array<DisposablePromise<*>> = [];
|
||||
_preparingGL: Array<*> = [];
|
||||
_needsRedraw: boolean = false;
|
||||
state: {
|
||||
ready: boolean,
|
||||
@ -413,9 +411,13 @@ export default ({
|
||||
gl.deleteTexture(this._emptyTexture);
|
||||
this._emptyTexture = null;
|
||||
}
|
||||
if (this.loaders) disposeArray(this.loaders);
|
||||
disposeArray(this._preparingGL);
|
||||
disposeObjectMap(this.shaders);
|
||||
if (this.loaderResolver) {
|
||||
this.loaderResolver.dispose();
|
||||
}
|
||||
for (let k in this.shaders) {
|
||||
this.shaders[k].dispose();
|
||||
}
|
||||
this.shaders = {};
|
||||
gl.deleteBuffer(this.buffer);
|
||||
this.getVisitors().map(v => v.onSurfaceGLContextChange(this, null));
|
||||
}
|
||||
@ -429,7 +431,7 @@ export default ({
|
||||
this.gl = gl;
|
||||
this.getVisitors().map(v => v.onSurfaceGLContextChange(this, gl));
|
||||
|
||||
this.loaders = TextureLoaders.get().map(L => new L(gl));
|
||||
this.loaderResolver = new LoaderResolver(gl);
|
||||
|
||||
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1);
|
||||
|
||||
@ -444,7 +446,7 @@ export default ({
|
||||
|
||||
const { preload } = this.props;
|
||||
|
||||
const all: Array<DisposablePromise<*>> = [];
|
||||
const all: Array<Promise<*>> = [];
|
||||
|
||||
(preload || []).forEach(raw => {
|
||||
if (!raw) {
|
||||
@ -461,11 +463,10 @@ export default ({
|
||||
all.push(loader.load(input));
|
||||
});
|
||||
|
||||
disposeArray(this._preparingGL);
|
||||
this._preparingGL = all;
|
||||
|
||||
if (all.length > 0) {
|
||||
Promise.all(all.map(d => d.promise)).then(onSuccess, onError); // FIXME make sure this never finish if _prepareGL is called again.
|
||||
Promise.all(all).then(onSuccess, onError); // FIXME make sure this never finish if _prepareGL is called again.
|
||||
} else {
|
||||
onSuccess();
|
||||
}
|
||||
@ -524,10 +525,10 @@ export default ({
|
||||
|
||||
_resolveTextureLoader(
|
||||
raw: mixed
|
||||
): { loader: ?TextureLoader<*>, input: any } {
|
||||
): { loader: ?WebGLTextureLoader<*>, input: any } {
|
||||
let input = raw;
|
||||
let loader: ?TextureLoader<*> =
|
||||
this.loaders && this.loaders.find(loader => loader.canLoad(input));
|
||||
let loader: ?WebGLTextureLoader<*> =
|
||||
this.loaderResolver && this.loaderResolver.resolve(input);
|
||||
return { loader, input };
|
||||
}
|
||||
|
||||
|
||||
@ -1,44 +0,0 @@
|
||||
//@flow
|
||||
// Some utility for the disposable pattern
|
||||
|
||||
/**
|
||||
* @private
|
||||
* An object that have a dispose() function
|
||||
*/
|
||||
export type Disposable = {
|
||||
+dispose: () => void,
|
||||
};
|
||||
|
||||
/**
|
||||
* An object with a `promise` and a `dispose` function to cancel the promise (making a pending promise to never ends).
|
||||
*/
|
||||
type DisposablePromise<A> = {|
|
||||
+dispose: () => void,
|
||||
promise: Promise<A>,
|
||||
|};
|
||||
export type { DisposablePromise };
|
||||
|
||||
/**
|
||||
* @private
|
||||
* destroy an object of disposable.
|
||||
* NB the object gets emptied as a way to help the GC.
|
||||
*/
|
||||
export function disposeObjectMap<T: Disposable>(objmap: { [key: string]: T }) {
|
||||
for (const k in objmap) {
|
||||
if (objmap.hasOwnProperty(k)) {
|
||||
objmap[k].dispose();
|
||||
delete objmap[k];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @private
|
||||
* destroy a array of disposable.
|
||||
* NB the array gets emptied as a way to help the GC.
|
||||
*/
|
||||
export function disposeArray<T: Disposable>(arr: Array<T>) {
|
||||
let d;
|
||||
while ((d = arr.pop()))
|
||||
d.dispose();
|
||||
}
|
||||
@ -1,125 +0,0 @@
|
||||
//@flow
|
||||
import type { NDArray } from "ndarray";
|
||||
import ndarray from "ndarray";
|
||||
import ops from "ndarray-ops";
|
||||
import pool from "typedarray-pool";
|
||||
|
||||
if (typeof Buffer === "undefined") {
|
||||
global.Buffer = class Buffer {
|
||||
// mock shim so pool don't crash..
|
||||
static isBuffer = b => b instanceof Buffer;
|
||||
};
|
||||
}
|
||||
|
||||
// code is partly taken from https://github.com/stackgl/gl-texture2d/blob/master/texture.js
|
||||
|
||||
function isPacked(shape, stride) {
|
||||
if (shape.length === 3) {
|
||||
return (
|
||||
stride[2] === 1 &&
|
||||
stride[1] === shape[0] * shape[2] &&
|
||||
stride[0] === shape[2]
|
||||
);
|
||||
}
|
||||
return stride[0] === 1 && stride[1] === shape[0];
|
||||
}
|
||||
|
||||
function convertFloatToUint8(out, inp) {
|
||||
ops.muls(out, inp, 255.0);
|
||||
}
|
||||
|
||||
export default (
|
||||
gl: WebGLRenderingContext,
|
||||
texture: WebGLTexture,
|
||||
array: NDArray
|
||||
) => {
|
||||
let dtype = array.dtype;
|
||||
let shape = array.shape.slice();
|
||||
let maxSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);
|
||||
if (
|
||||
shape[0] < 0 ||
|
||||
shape[0] > maxSize ||
|
||||
shape[1] < 0 ||
|
||||
shape[1] > maxSize
|
||||
) {
|
||||
throw new Error("gl-react: Invalid texture size");
|
||||
}
|
||||
let packed = isPacked(shape, array.stride.slice());
|
||||
let type = 0;
|
||||
if (dtype === "float32") {
|
||||
type = gl.FLOAT;
|
||||
} else if (dtype === "float64") {
|
||||
type = gl.FLOAT;
|
||||
packed = false;
|
||||
dtype = "float32";
|
||||
} else if (dtype === "uint8") {
|
||||
type = gl.UNSIGNED_BYTE;
|
||||
} else {
|
||||
type = gl.UNSIGNED_BYTE;
|
||||
packed = false;
|
||||
dtype = "uint8";
|
||||
}
|
||||
let format = 0;
|
||||
if (shape.length === 2) {
|
||||
format = gl.LUMINANCE;
|
||||
shape = [shape[0], shape[1], 1];
|
||||
array = ndarray(
|
||||
array.data,
|
||||
shape,
|
||||
[array.stride[0], array.stride[1], 1],
|
||||
array.offset
|
||||
);
|
||||
} else if (shape.length === 3) {
|
||||
if (shape[2] === 1) {
|
||||
format = gl.ALPHA;
|
||||
} else if (shape[2] === 2) {
|
||||
format = gl.LUMINANCE_ALPHA;
|
||||
} else if (shape[2] === 3) {
|
||||
format = gl.RGB;
|
||||
} else if (shape[2] === 4) {
|
||||
format = gl.RGBA;
|
||||
} else {
|
||||
throw new Error("gl-texture2d: Invalid shape for pixel coords");
|
||||
}
|
||||
} else {
|
||||
throw new Error("gl-texture2d: Invalid shape for texture");
|
||||
}
|
||||
if (type === gl.FLOAT && !gl.getExtension("OES_texture_float")) {
|
||||
type = gl.UNSIGNED_BYTE;
|
||||
packed = false;
|
||||
}
|
||||
let buffer, buf_store;
|
||||
let size = array.size;
|
||||
if (!packed) {
|
||||
let stride = [shape[2], shape[2] * shape[0], 1];
|
||||
buf_store = pool.malloc(size, dtype);
|
||||
let buf_array = ndarray(buf_store, shape, stride, 0);
|
||||
if (
|
||||
(dtype === "float32" || dtype === "float64") &&
|
||||
type === gl.UNSIGNED_BYTE
|
||||
) {
|
||||
convertFloatToUint8(buf_array, array);
|
||||
} else {
|
||||
ops.assign(buf_array, array);
|
||||
}
|
||||
buffer = buf_store.subarray(0, size);
|
||||
} else if (array.offset === 0 && array.data.length === size) {
|
||||
buffer = array.data;
|
||||
} else {
|
||||
buffer = array.data.subarray(array.offset, array.offset + size);
|
||||
}
|
||||
gl.texImage2D(
|
||||
gl.TEXTURE_2D,
|
||||
0,
|
||||
format,
|
||||
shape[0],
|
||||
shape[1],
|
||||
0,
|
||||
format,
|
||||
type,
|
||||
buffer
|
||||
);
|
||||
if (buf_store) {
|
||||
pool.free(buf_store);
|
||||
}
|
||||
};
|
||||
@ -7,14 +7,13 @@ import LinearCopy from "./LinearCopy";
|
||||
import NearestCopy from "./NearestCopy";
|
||||
import Node from "./Node";
|
||||
import Shaders from "./Shaders";
|
||||
import TextureLoader from "./TextureLoader";
|
||||
import TextureLoaderRawObject from "./TextureLoaderRawObject";
|
||||
import TextureLoaders from "./TextureLoaders";
|
||||
import Uniform from "./Uniform";
|
||||
import Visitor from "./Visitor";
|
||||
import VisitorLogger from "./VisitorLogger";
|
||||
import Visitors from "./Visitors";
|
||||
|
||||
import "webgltexture-loader-ndarray";
|
||||
|
||||
export {
|
||||
Bus,
|
||||
connectSize,
|
||||
@ -25,9 +24,6 @@ export {
|
||||
NearestCopy,
|
||||
Node,
|
||||
Shaders,
|
||||
TextureLoader,
|
||||
TextureLoaderRawObject,
|
||||
TextureLoaders,
|
||||
Uniform,
|
||||
Visitor,
|
||||
VisitorLogger,
|
||||
|
||||
@ -1,239 +0,0 @@
|
||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
add-line-numbers@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/add-line-numbers/-/add-line-numbers-1.0.1.tgz#48dbbdea47dbd234deafeac6c93cea6f70b4b7e3"
|
||||
dependencies:
|
||||
pad-left "^1.0.2"
|
||||
|
||||
asap@~2.0.3:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
|
||||
|
||||
atob-lite@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-1.0.0.tgz#b88dca6006922b962094f7556826bab31c4a296b"
|
||||
|
||||
bit-twiddle@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/bit-twiddle/-/bit-twiddle-1.0.2.tgz#0c6c1fabe2b23d17173d9a61b7b7093eb9e1769e"
|
||||
|
||||
core-js@^1.0.0:
|
||||
version "1.2.7"
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
|
||||
|
||||
core-util-is@~1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
||||
|
||||
cwise-compiler@^1.0.0:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/cwise-compiler/-/cwise-compiler-1.1.3.tgz#f4d667410e850d3a313a7d2db7b1e505bb034cc5"
|
||||
dependencies:
|
||||
uniq "^1.0.0"
|
||||
|
||||
dup@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/dup/-/dup-1.0.0.tgz#51fc5ac685f8196469df0b905e934b20af5b4029"
|
||||
|
||||
encoding@^0.1.11:
|
||||
version "0.1.12"
|
||||
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
|
||||
dependencies:
|
||||
iconv-lite "~0.4.13"
|
||||
|
||||
fbjs@^0.8.9:
|
||||
version "0.8.14"
|
||||
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c"
|
||||
dependencies:
|
||||
core-js "^1.0.0"
|
||||
isomorphic-fetch "^2.1.1"
|
||||
loose-envify "^1.0.0"
|
||||
object-assign "^4.1.0"
|
||||
promise "^7.1.1"
|
||||
setimmediate "^1.0.5"
|
||||
ua-parser-js "^0.7.9"
|
||||
|
||||
gl-constants@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/gl-constants/-/gl-constants-1.0.0.tgz#597a504e364750ff50253aa35f8dea7af4a5d233"
|
||||
|
||||
gl-format-compiler-error@^1.0.2, "gl-format-compiler-error@github:gre/gl-format-compiler-error#fix-null-ending-character":
|
||||
version "1.0.2"
|
||||
resolved "https://codeload.github.com/gre/gl-format-compiler-error/tar.gz/33d71896fca0f738c31c66f0f985093f48bb255c"
|
||||
dependencies:
|
||||
add-line-numbers "^1.0.1"
|
||||
gl-constants "^1.0.0"
|
||||
glsl-shader-name "^1.0.0"
|
||||
sprintf-js "^1.0.3"
|
||||
|
||||
gl-shader@^4.2.1:
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/gl-shader/-/gl-shader-4.2.1.tgz#bc9b808e9293c51b668e88de615b0c113708dc2f"
|
||||
dependencies:
|
||||
gl-format-compiler-error "^1.0.2"
|
||||
weakmap-shim "^1.1.0"
|
||||
|
||||
glsl-shader-name@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/glsl-shader-name/-/glsl-shader-name-1.0.0.tgz#a2c30b3ba73499befb0cc7184d7c7733dd4b487d"
|
||||
dependencies:
|
||||
atob-lite "^1.0.0"
|
||||
glsl-tokenizer "^2.0.2"
|
||||
|
||||
glsl-tokenizer@^2.0.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/glsl-tokenizer/-/glsl-tokenizer-2.1.2.tgz#720307522e03c57af35c00551950c4a70ef2dfb9"
|
||||
dependencies:
|
||||
through2 "^0.6.3"
|
||||
|
||||
iconv-lite@~0.4.13:
|
||||
version "0.4.18"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
|
||||
|
||||
inherits@~2.0.1:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
||||
|
||||
invariant@^2.2.1:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
|
||||
dependencies:
|
||||
loose-envify "^1.0.0"
|
||||
|
||||
iota-array@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/iota-array/-/iota-array-1.0.0.tgz#81ef57fe5d05814cd58c2483632a99c30a0e8087"
|
||||
|
||||
is-buffer@^1.0.2:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
|
||||
|
||||
is-stream@^1.0.1:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
|
||||
|
||||
isarray@0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
|
||||
|
||||
isomorphic-fetch@^2.1.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
|
||||
dependencies:
|
||||
node-fetch "^1.0.1"
|
||||
whatwg-fetch ">=0.10.0"
|
||||
|
||||
js-tokens@^3.0.0:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
|
||||
|
||||
loose-envify@^1.0.0, loose-envify@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
|
||||
dependencies:
|
||||
js-tokens "^3.0.0"
|
||||
|
||||
ndarray-ops@^1.2.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/ndarray-ops/-/ndarray-ops-1.2.2.tgz#59e88d2c32a7eebcb1bc690fae141579557a614e"
|
||||
dependencies:
|
||||
cwise-compiler "^1.0.0"
|
||||
|
||||
ndarray@^1.0.18:
|
||||
version "1.0.18"
|
||||
resolved "https://registry.yarnpkg.com/ndarray/-/ndarray-1.0.18.tgz#b60d3a73224ec555d0faa79711e502448fd3f793"
|
||||
dependencies:
|
||||
iota-array "^1.0.0"
|
||||
is-buffer "^1.0.2"
|
||||
|
||||
node-fetch@^1.0.1:
|
||||
version "1.7.2"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7"
|
||||
dependencies:
|
||||
encoding "^0.1.11"
|
||||
is-stream "^1.0.1"
|
||||
|
||||
object-assign@^4.1.0:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
||||
|
||||
pad-left@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/pad-left/-/pad-left-1.0.2.tgz#19e5735ea98395a26cedc6ab926ead10f3100d4c"
|
||||
dependencies:
|
||||
repeat-string "^1.3.0"
|
||||
|
||||
promise@^7.1.1:
|
||||
version "7.3.1"
|
||||
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
|
||||
dependencies:
|
||||
asap "~2.0.3"
|
||||
|
||||
prop-types@^15.5.8:
|
||||
version "15.5.10"
|
||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
|
||||
dependencies:
|
||||
fbjs "^0.8.9"
|
||||
loose-envify "^1.3.1"
|
||||
|
||||
"readable-stream@>=1.0.33-1 <1.1.0-0":
|
||||
version "1.0.34"
|
||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
|
||||
dependencies:
|
||||
core-util-is "~1.0.0"
|
||||
inherits "~2.0.1"
|
||||
isarray "0.0.1"
|
||||
string_decoder "~0.10.x"
|
||||
|
||||
repeat-string@^1.3.0:
|
||||
version "1.6.1"
|
||||
resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
|
||||
|
||||
setimmediate@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
|
||||
|
||||
sprintf-js@^1.0.3:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c"
|
||||
|
||||
string_decoder@~0.10.x:
|
||||
version "0.10.31"
|
||||
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
|
||||
|
||||
through2@^0.6.3:
|
||||
version "0.6.5"
|
||||
resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
|
||||
dependencies:
|
||||
readable-stream ">=1.0.33-1 <1.1.0-0"
|
||||
xtend ">=4.0.0 <4.1.0-0"
|
||||
|
||||
typedarray-pool@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/typedarray-pool/-/typedarray-pool-1.1.0.tgz#d114f484801489f53ecab5e8088aa23044f498d9"
|
||||
dependencies:
|
||||
bit-twiddle "^1.0.0"
|
||||
dup "^1.0.0"
|
||||
|
||||
ua-parser-js@^0.7.9:
|
||||
version "0.7.14"
|
||||
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca"
|
||||
|
||||
uniq@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
|
||||
|
||||
weakmap-shim@^1.1.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/weakmap-shim/-/weakmap-shim-1.1.1.tgz#d65afd784109b2166e00ff571c33150ec2a40b49"
|
||||
|
||||
whatwg-fetch@>=0.10.0:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
|
||||
|
||||
"xtend@>=4.0.0 <4.1.0-0":
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
|
||||
@ -8,7 +8,6 @@ undefined {
|
||||
"dispose": 0,
|
||||
"get": 1,
|
||||
"load": 1,
|
||||
"textureDispose": 0,
|
||||
}
|
||||
`;
|
||||
|
||||
@ -20,7 +19,6 @@ undefined {
|
||||
"dispose": 0,
|
||||
"get": 2,
|
||||
"load": 1,
|
||||
"textureDispose": 0,
|
||||
}
|
||||
`;
|
||||
|
||||
@ -32,6 +30,5 @@ undefined {
|
||||
"dispose": 1,
|
||||
"get": 2,
|
||||
"load": 1,
|
||||
"textureDispose": 0,
|
||||
}
|
||||
`;
|
||||
|
||||
@ -17,16 +17,14 @@ import {
|
||||
GLSL,
|
||||
Visitor,
|
||||
Visitors,
|
||||
TextureLoader,
|
||||
TextureLoaders,
|
||||
Uniform,
|
||||
Bus,
|
||||
VisitorLogger,
|
||||
connectSize
|
||||
} from "gl-react";
|
||||
import { globalRegistry } from "webgltexture-loader";
|
||||
import { Surface } from "gl-react-headless";
|
||||
import loseGL from "gl-react-headless/lib/loseGL";
|
||||
import type { DisposablePromise } from "gl-react/lib/helpers/disposable";
|
||||
import React from "react";
|
||||
import renderer from "react-test-renderer";
|
||||
import baboon from "baboon-image";
|
||||
@ -544,7 +542,7 @@ test("Surface can be resized", () => {
|
||||
}`
|
||||
}
|
||||
});
|
||||
const renderForSize = (width, height) =>
|
||||
const renderForSize = (width, height) => (
|
||||
<Surface
|
||||
width={width}
|
||||
height={height}
|
||||
@ -553,7 +551,8 @@ test("Surface can be resized", () => {
|
||||
<LinearCopy>
|
||||
<Node shader={shaders.red} backbuffering />
|
||||
</LinearCopy>
|
||||
</Surface>;
|
||||
</Surface>
|
||||
);
|
||||
const inst = create(renderForSize(1, 1));
|
||||
const surface = inst.getInstance();
|
||||
inst.update(renderForSize(20, 20));
|
||||
@ -639,9 +638,7 @@ test("bus example 1", () => {
|
||||
<Bus ref="bus">
|
||||
<Node shader={shaders.red} />
|
||||
</Bus>
|
||||
<LinearCopy>
|
||||
{() => this.refs.bus}
|
||||
</LinearCopy>
|
||||
<LinearCopy>{() => this.refs.bus}</LinearCopy>
|
||||
</Surface>
|
||||
);
|
||||
}
|
||||
@ -678,13 +675,9 @@ test("bus example 2", () => {
|
||||
<Node width={1} height={2} shader={shaders.red} />
|
||||
</Bus>
|
||||
<Bus ref="bus2">
|
||||
<LinearCopy>
|
||||
{() => this.refs.bus1}
|
||||
</LinearCopy>
|
||||
<LinearCopy>{() => this.refs.bus1}</LinearCopy>
|
||||
</Bus>
|
||||
<LinearCopy>
|
||||
{() => this.refs.bus2}
|
||||
</LinearCopy>
|
||||
<LinearCopy>{() => this.refs.bus2}</LinearCopy>
|
||||
</Surface>
|
||||
);
|
||||
}
|
||||
@ -727,9 +720,7 @@ test("bus example 3", () => {
|
||||
<Bus ref="bus">
|
||||
<Red />
|
||||
</Bus>
|
||||
<LinearCopy>
|
||||
{() => this.refs.bus}
|
||||
</LinearCopy>
|
||||
<LinearCopy>{() => this.refs.bus}</LinearCopy>
|
||||
</Surface>
|
||||
);
|
||||
}
|
||||
@ -1006,12 +997,13 @@ test("a surface can be captured and resized", () => {
|
||||
}`
|
||||
}
|
||||
});
|
||||
const render = (w, h) =>
|
||||
const render = (w, h) => (
|
||||
<Surface width={w} height={h}>
|
||||
<LinearCopy>
|
||||
<Node shader={shaders.helloGL} width={2} height={2} />
|
||||
</LinearCopy>
|
||||
</Surface>;
|
||||
</Surface>
|
||||
);
|
||||
const inst = create(render(2, 2));
|
||||
const surface = inst.getInstance();
|
||||
expectToBeCloseToColorArray(
|
||||
@ -1039,7 +1031,7 @@ test("a node can be captured and resized", () => {
|
||||
}
|
||||
});
|
||||
let node;
|
||||
const render = (w, h) =>
|
||||
const render = (w, h) => (
|
||||
<Surface width={20} height={20}>
|
||||
<LinearCopy>
|
||||
<Node
|
||||
@ -1049,7 +1041,8 @@ test("a node can be captured and resized", () => {
|
||||
height={h}
|
||||
/>
|
||||
</LinearCopy>
|
||||
</Surface>;
|
||||
</Surface>
|
||||
);
|
||||
const inst = create(render(2, 2));
|
||||
const surface = inst.getInstance();
|
||||
invariant(node, "node is defined");
|
||||
@ -1100,11 +1093,12 @@ test("Uniform children redraw=>el function", () => {
|
||||
>
|
||||
<NearestCopy>
|
||||
<LinearCopy>
|
||||
{redraw =>
|
||||
{redraw => (
|
||||
<UpdatingTexture
|
||||
ref={ref => (updatingTexture = ref)}
|
||||
redraw={redraw}
|
||||
/>}
|
||||
/>
|
||||
)}
|
||||
</LinearCopy>
|
||||
</NearestCopy>
|
||||
</Surface>
|
||||
@ -1189,19 +1183,18 @@ test("Bus redraw=>el function", () => {
|
||||
webglContextAttributes={{ preserveDrawingBuffer: true }}
|
||||
>
|
||||
<Bus ref="bus">
|
||||
{redraw =>
|
||||
{redraw => (
|
||||
<UpdatingTexture
|
||||
initialPixels={yellow3x3}
|
||||
initialWidth={3}
|
||||
initialHeight={3}
|
||||
ref={ref => (updatingTexture = ref)}
|
||||
redraw={redraw}
|
||||
/>}
|
||||
/>
|
||||
)}
|
||||
</Bus>
|
||||
<NearestCopy>
|
||||
<LinearCopy>
|
||||
{() => this.refs.bus}
|
||||
</LinearCopy>
|
||||
<LinearCopy>{() => this.refs.bus}</LinearCopy>
|
||||
</NearestCopy>
|
||||
</Surface>
|
||||
);
|
||||
@ -1237,7 +1230,7 @@ test("many Surface updates don't result of many redraws", () => {
|
||||
});
|
||||
|
||||
const visitor = new CountersVisitor();
|
||||
const wrap = children =>
|
||||
const wrap = children => (
|
||||
<Surface
|
||||
visitor={visitor}
|
||||
width={2}
|
||||
@ -1245,9 +1238,11 @@ test("many Surface updates don't result of many redraws", () => {
|
||||
webglContextAttributes={{ preserveDrawingBuffer: true }}
|
||||
>
|
||||
{children}
|
||||
</Surface>;
|
||||
const JustBlue = ({ blue }) =>
|
||||
<Node shader={shaders.justBlue} uniforms={{ blue }} />;
|
||||
</Surface>
|
||||
);
|
||||
const JustBlue = ({ blue }) => (
|
||||
<Node shader={shaders.justBlue} uniforms={{ blue }} />
|
||||
);
|
||||
|
||||
const inst = create(wrap(<JustBlue blue={0} />));
|
||||
const surface = inst.getInstance();
|
||||
@ -1287,7 +1282,7 @@ test("many Surface flush() don't result of extra redraws", () => {
|
||||
});
|
||||
const visitor = new CountersVisitor();
|
||||
|
||||
const wrap = children =>
|
||||
const wrap = children => (
|
||||
<Surface
|
||||
visitor={visitor}
|
||||
width={2}
|
||||
@ -1295,9 +1290,11 @@ test("many Surface flush() don't result of extra redraws", () => {
|
||||
webglContextAttributes={{ preserveDrawingBuffer: true }}
|
||||
>
|
||||
{children}
|
||||
</Surface>;
|
||||
const JustBlue = ({ blue }) =>
|
||||
<Node shader={shaders.justBlue} uniforms={{ blue }} />;
|
||||
</Surface>
|
||||
);
|
||||
const JustBlue = ({ blue }) => (
|
||||
<Node shader={shaders.justBlue} uniforms={{ blue }} />
|
||||
);
|
||||
|
||||
const inst = create(wrap(<JustBlue blue={0} />));
|
||||
const surface = inst.getInstance();
|
||||
@ -1334,16 +1331,15 @@ test("GL Components that implement shouldComponentUpdate shortcut Surface redraw
|
||||
const visitor = new CountersVisitor();
|
||||
Visitors.add(visitor);
|
||||
|
||||
const wrap = children =>
|
||||
const wrap = children => (
|
||||
<Surface
|
||||
width={2}
|
||||
height={2}
|
||||
webglContextAttributes={{ preserveDrawingBuffer: true }}
|
||||
>
|
||||
<LinearCopy>
|
||||
{children}
|
||||
</LinearCopy>
|
||||
</Surface>;
|
||||
<LinearCopy>{children}</LinearCopy>
|
||||
</Surface>
|
||||
);
|
||||
class JustBlue extends React.PureComponent {
|
||||
render() {
|
||||
const { blue } = this.props;
|
||||
@ -1584,7 +1580,7 @@ test("Node `backbuffering`", () => {
|
||||
}`
|
||||
}
|
||||
});
|
||||
const render = t =>
|
||||
const render = t => (
|
||||
<Surface
|
||||
width={10}
|
||||
height={10}
|
||||
@ -1593,7 +1589,8 @@ test("Node `backbuffering`", () => {
|
||||
<LinearCopy>
|
||||
<Node shader={shaders.colorShift} uniforms={{ t }} backbuffering />
|
||||
</LinearCopy>
|
||||
</Surface>;
|
||||
</Surface>
|
||||
);
|
||||
const inst = create(render(red2x2)); // init with red
|
||||
const surface = inst.getInstance();
|
||||
expectToBeCloseToColorArray(
|
||||
@ -1644,7 +1641,7 @@ test("Node `backbuffering` in `sync`", () => {
|
||||
}`
|
||||
}
|
||||
});
|
||||
const render = t =>
|
||||
const render = t => (
|
||||
<Surface
|
||||
width={10}
|
||||
height={10}
|
||||
@ -1660,7 +1657,8 @@ test("Node `backbuffering` in `sync`", () => {
|
||||
/>
|
||||
</LinearCopy>
|
||||
</LinearCopy>
|
||||
</Surface>;
|
||||
</Surface>
|
||||
);
|
||||
const inst = create(render(red2x2)); // init with red
|
||||
const surface = inst.getInstance();
|
||||
// since node was drawn once, there were a first shift.
|
||||
@ -1946,7 +1944,7 @@ test("can be extended with addTextureLoaderClass", async () => {
|
||||
gl => createNDArrayTexture(gl, red2x2),
|
||||
[2, 2]
|
||||
);
|
||||
TextureLoaders.add(loader.Loader);
|
||||
globalRegistry.add(loader.Loader);
|
||||
const inst = create(
|
||||
<Surface
|
||||
width={64}
|
||||
@ -1972,7 +1970,7 @@ test("can be extended with addTextureLoaderClass", async () => {
|
||||
expect(loader.counters).toMatchSnapshot();
|
||||
inst.unmount();
|
||||
expect(loader.counters).toMatchSnapshot();
|
||||
TextureLoaders.remove(loader.Loader);
|
||||
globalRegistry.remove(loader.Loader);
|
||||
});
|
||||
|
||||
test("Surface `preload` prevent to draw anything", async () => {
|
||||
@ -1994,7 +1992,7 @@ test("Surface `preload` prevent to draw anything", async () => {
|
||||
gl => createNDArrayTexture(gl, red2x2),
|
||||
[2, 2]
|
||||
);
|
||||
TextureLoaders.add(loader.Loader);
|
||||
globalRegistry.add(loader.Loader);
|
||||
const el = (
|
||||
<Surface
|
||||
width={64}
|
||||
@ -2028,7 +2026,7 @@ test("Surface `preload` prevent to draw anything", async () => {
|
||||
new Uint8Array([255, 0, 0, 255])
|
||||
);
|
||||
inst.unmount();
|
||||
TextureLoaders.remove(loader.Loader);
|
||||
globalRegistry.remove(loader.Loader);
|
||||
});
|
||||
|
||||
test("Uniform.textureSizeRatio allows to send the ratio of a texture in uniform", async () => {
|
||||
@ -2052,7 +2050,7 @@ test("Uniform.textureSizeRatio allows to send the ratio of a texture in uniform"
|
||||
gl => createNDArrayTexture(gl, yellow3x2),
|
||||
[3, 2]
|
||||
);
|
||||
TextureLoaders.add(loader.Loader);
|
||||
globalRegistry.add(loader.Loader);
|
||||
const el = (
|
||||
<Surface
|
||||
width={64}
|
||||
@ -2085,7 +2083,7 @@ test("Uniform.textureSizeRatio allows to send the ratio of a texture in uniform"
|
||||
new Uint8Array([0, 0, 0, 0])
|
||||
);
|
||||
inst.unmount();
|
||||
TextureLoaders.remove(loader.Loader);
|
||||
globalRegistry.remove(loader.Loader);
|
||||
});
|
||||
|
||||
test("Surface `preload` that fails will trigger onLoadError", async () => {
|
||||
@ -2107,12 +2105,11 @@ test("Surface `preload` that fails will trigger onLoadError", async () => {
|
||||
gl => createNDArrayTexture(gl, red2x2),
|
||||
[2, 2]
|
||||
);
|
||||
TextureLoaders.add(loader.Loader);
|
||||
globalRegistry.add(loader.Loader);
|
||||
const el = (
|
||||
<Surface
|
||||
width={64}
|
||||
height={64}
|
||||
preload={[loader.textureId, Symbol("wrong_preload"), null]}
|
||||
onLoad={() => {
|
||||
++onLoadCounter;
|
||||
}}
|
||||
@ -2130,10 +2127,10 @@ test("Surface `preload` that fails will trigger onLoadError", async () => {
|
||||
await loader.reject(new Error("simulate texture fail"));
|
||||
expect(onLoadCounter).toEqual(0);
|
||||
expect(onLoadErrorCounter).toEqual(1);
|
||||
TextureLoaders.remove(loader.Loader);
|
||||
globalRegistry.remove(loader.Loader);
|
||||
inst.unmount();
|
||||
TextureLoaders.remove(loader.Loader);
|
||||
TextureLoaders.remove(loader.Loader);
|
||||
globalRegistry.remove(loader.Loader);
|
||||
globalRegistry.remove(loader.Loader);
|
||||
});
|
||||
|
||||
test("renders a shader inline in the Node", () => {
|
||||
@ -2357,14 +2354,15 @@ void main() {
|
||||
}
|
||||
}
|
||||
|
||||
const wrap = children =>
|
||||
const wrap = children => (
|
||||
<Surface
|
||||
width={4}
|
||||
height={4}
|
||||
webglContextAttributes={{ preserveDrawingBuffer: true }}
|
||||
>
|
||||
{children}
|
||||
</Surface>;
|
||||
</Surface>
|
||||
);
|
||||
|
||||
const inst = create(wrap(<WeirdSwapping i={0} />));
|
||||
const surface = inst.getInstance();
|
||||
@ -2445,12 +2443,11 @@ test("VisitorLogger + bunch of funky extreme tests", () => {
|
||||
let justBlueNode;
|
||||
const visitor = new VisitorLogger();
|
||||
|
||||
const wrap = children =>
|
||||
const wrap = children => (
|
||||
<Surface visitor={visitor} width={2} height={2}>
|
||||
<LinearCopy>
|
||||
{children}
|
||||
</LinearCopy>
|
||||
</Surface>;
|
||||
<LinearCopy>{children}</LinearCopy>
|
||||
</Surface>
|
||||
);
|
||||
|
||||
class JustBlue extends React.PureComponent {
|
||||
render() {
|
||||
@ -2484,14 +2481,15 @@ test("VisitorLogger + bunch of funky extreme tests", () => {
|
||||
);
|
||||
}
|
||||
}
|
||||
const MissingOrInvalidUniforms = () =>
|
||||
const MissingOrInvalidUniforms = () => (
|
||||
<Node
|
||||
ref={ref => {
|
||||
justBlueNode = ref;
|
||||
}}
|
||||
shader={shaders.justBlue}
|
||||
uniforms={{ nope: [1, 2] }}
|
||||
/>;
|
||||
/>
|
||||
);
|
||||
|
||||
class TreeWithZombiesDontBreak extends React.Component {
|
||||
render() {
|
||||
@ -2721,9 +2719,7 @@ test("VisitorLogger + bunch of funky extreme tests", () => {
|
||||
<Bus ref="bus">
|
||||
<JustBlue blue={0.2} />
|
||||
</Bus>
|
||||
<LinearCopy>
|
||||
{() => this.refs.bus}
|
||||
</LinearCopy>
|
||||
<LinearCopy>{() => this.refs.bus}</LinearCopy>
|
||||
</Surface>
|
||||
);
|
||||
}
|
||||
|
||||
@ -7,8 +7,6 @@ import {
|
||||
NearestCopy,
|
||||
GLSL,
|
||||
Visitor,
|
||||
TextureLoader,
|
||||
TextureLoaders,
|
||||
Uniform,
|
||||
Bus,
|
||||
VisitorLogger,
|
||||
@ -73,7 +71,7 @@ class A extends React.Component {
|
||||
}
|
||||
}
|
||||
|
||||
const N = connectSize(({ width, height }) =>
|
||||
const N = connectSize(({ width, height }) => (
|
||||
<Node
|
||||
sync
|
||||
clear={null}
|
||||
@ -82,9 +80,9 @@ const N = connectSize(({ width, height }) =>
|
||||
blendFunc={{ src: "one", dst: "zero" }}
|
||||
shader={shaders.b}
|
||||
/>
|
||||
);
|
||||
));
|
||||
|
||||
const B = () =>
|
||||
const B = () => (
|
||||
<Surface
|
||||
width={100}
|
||||
height={200}
|
||||
@ -95,4 +93,5 @@ const B = () =>
|
||||
<NearestCopy>
|
||||
<N width={10} height={10} />
|
||||
</NearestCopy>
|
||||
</Surface>;
|
||||
</Surface>
|
||||
);
|
||||
|
||||
@ -7,8 +7,6 @@ import {
|
||||
NearestCopy,
|
||||
GLSL,
|
||||
Visitor,
|
||||
TextureLoader,
|
||||
TextureLoaders,
|
||||
Backbuffer,
|
||||
Bus,
|
||||
VisitorLogger,
|
||||
@ -61,7 +59,7 @@ class A extends React.Component {
|
||||
|
||||
connectSize();
|
||||
|
||||
const N = connectSize(() =>
|
||||
const N = connectSize(() => (
|
||||
// these are all wrong props
|
||||
<Node
|
||||
sync={1}
|
||||
@ -77,4 +75,4 @@ const N = connectSize(() =>
|
||||
visitor={false}
|
||||
shader={false}
|
||||
/>
|
||||
);
|
||||
));
|
||||
|
||||
@ -1,25 +1,25 @@
|
||||
Error: ../all.test.js:2651
|
||||
Error: ../all.test.js:2649
|
||||
v----
|
||||
2651: <Node
|
||||
2652: shader={shaders.helloTexture}
|
||||
2653: uniformsOptions={{ t: { interpolation: "nope" } }}
|
||||
2654: uniforms={{ t: <JustBlue blue={1} /> }}
|
||||
2655: />
|
||||
2649: <Node
|
||||
2650: shader={shaders.helloTexture}
|
||||
2651: uniformsOptions={{ t: { interpolation: "nope" } }}
|
||||
2652: uniforms={{ t: <JustBlue blue={1} /> }}
|
||||
2653: />
|
||||
-^ props of React element `Node`
|
||||
2653: uniformsOptions={{ t: { interpolation: "nope" } }}
|
||||
2651: uniformsOptions={{ t: { interpolation: "nope" } }}
|
||||
^^^^^^ string. This type is incompatible with
|
||||
65: interpolation: Interpolation,
|
||||
^^^^^^^^^^^^^ string enum. See: ../node_modules/gl-react/lib/Node.js.flow:65
|
||||
|
||||
Error: ../all.test.js:2663
|
||||
Error: ../all.test.js:2661
|
||||
v----
|
||||
2663: <Node
|
||||
2664: shader={shaders.helloTexture}
|
||||
2665: uniformsOptions={{ t: { wrap: "nope" } }}
|
||||
2666: uniforms={{ t: <JustBlue blue={1} /> }}
|
||||
2667: />
|
||||
2661: <Node
|
||||
2662: shader={shaders.helloTexture}
|
||||
2663: uniformsOptions={{ t: { wrap: "nope" } }}
|
||||
2664: uniforms={{ t: <JustBlue blue={1} /> }}
|
||||
2665: />
|
||||
-^ props of React element `Node`
|
||||
2665: uniformsOptions={{ t: { wrap: "nope" } }}
|
||||
2663: uniformsOptions={{ t: { wrap: "nope" } }}
|
||||
^^^^^^ string. This type is incompatible with
|
||||
66: wrap: [WrapMode, WrapMode] | WrapMode
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ union: tuple type | WrapMode. See: ../node_modules/gl-react/lib/Node.js.flow:66
|
||||
@ -27,7 +27,7 @@ Error: ../all.test.js:2663
|
||||
66: wrap: [WrapMode, WrapMode] | WrapMode
|
||||
^^^^^^^^^^^^^^^^^^^^ tuple type. See: ../node_modules/gl-react/lib/Node.js.flow:66
|
||||
Error:
|
||||
2665: uniformsOptions={{ t: { wrap: "nope" } }}
|
||||
2663: uniformsOptions={{ t: { wrap: "nope" } }}
|
||||
^^^^^^ string. This type is incompatible with
|
||||
66: wrap: [WrapMode, WrapMode] | WrapMode
|
||||
^^^^^^^^^^^^^^^^^^^^ tuple type. See: ../node_modules/gl-react/lib/Node.js.flow:66
|
||||
@ -35,20 +35,20 @@ Error: ../all.test.js:2663
|
||||
66: wrap: [WrapMode, WrapMode] | WrapMode
|
||||
^^^^^^^^ WrapMode. See: ../node_modules/gl-react/lib/Node.js.flow:66
|
||||
Error:
|
||||
2665: uniformsOptions={{ t: { wrap: "nope" } }}
|
||||
2663: uniformsOptions={{ t: { wrap: "nope" } }}
|
||||
^^^^^^ string. This type is incompatible with
|
||||
66: wrap: [WrapMode, WrapMode] | WrapMode
|
||||
^^^^^^^^ string enum. See: ../node_modules/gl-react/lib/Node.js.flow:66
|
||||
|
||||
Error: ../all.test.js:2675
|
||||
Error: ../all.test.js:2673
|
||||
v----
|
||||
2675: <Node
|
||||
2676: shader={shaders.helloTexture}
|
||||
2677: uniformsOptions={{ t: { wrap: ["nope", "nope"] } }}
|
||||
2678: uniforms={{ t: <JustBlue blue={1} /> }}
|
||||
2679: />
|
||||
2673: <Node
|
||||
2674: shader={shaders.helloTexture}
|
||||
2675: uniformsOptions={{ t: { wrap: ["nope", "nope"] } }}
|
||||
2676: uniforms={{ t: <JustBlue blue={1} /> }}
|
||||
2677: />
|
||||
-^ props of React element `Node`
|
||||
2677: uniformsOptions={{ t: { wrap: ["nope", "nope"] } }}
|
||||
2675: uniformsOptions={{ t: { wrap: ["nope", "nope"] } }}
|
||||
^^^^^^^^^^^^^^^^ array literal. This type is incompatible with
|
||||
66: wrap: [WrapMode, WrapMode] | WrapMode
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ union: tuple type | WrapMode. See: ../node_modules/gl-react/lib/Node.js.flow:66
|
||||
@ -56,7 +56,7 @@ Error: ../all.test.js:2675
|
||||
66: wrap: [WrapMode, WrapMode] | WrapMode
|
||||
^^^^^^^^^^^^^^^^^^^^ tuple type. See: ../node_modules/gl-react/lib/Node.js.flow:66
|
||||
Error:
|
||||
2677: uniformsOptions={{ t: { wrap: ["nope", "nope"] } }}
|
||||
2675: uniformsOptions={{ t: { wrap: ["nope", "nope"] } }}
|
||||
^^^^^^ string. This type is incompatible with
|
||||
66: wrap: [WrapMode, WrapMode] | WrapMode
|
||||
^^^^^^^^ string enum. See: ../node_modules/gl-react/lib/Node.js.flow:66
|
||||
@ -64,198 +64,198 @@ Error: ../all.test.js:2675
|
||||
66: wrap: [WrapMode, WrapMode] | WrapMode
|
||||
^^^^^^^^ WrapMode. See: ../node_modules/gl-react/lib/Node.js.flow:66
|
||||
Error:
|
||||
2677: uniformsOptions={{ t: { wrap: ["nope", "nope"] } }}
|
||||
2675: uniformsOptions={{ t: { wrap: ["nope", "nope"] } }}
|
||||
^^^^^^^^^^^^^^^^ array literal. This type is incompatible with
|
||||
66: wrap: [WrapMode, WrapMode] | WrapMode
|
||||
^^^^^^^^ string enum. See: ../node_modules/gl-react/lib/Node.js.flow:66
|
||||
|
||||
Error: ../all.test.js:2687
|
||||
Error: ../all.test.js:2685
|
||||
v----
|
||||
2687: <Node
|
||||
2688: blendFunc="nope"
|
||||
2689: shader={shaders.helloTexture}
|
||||
2690: uniforms={{ t: <JustBlue blue={1} /> }}
|
||||
2691: />
|
||||
2685: <Node
|
||||
2686: blendFunc="nope"
|
||||
2687: shader={shaders.helloTexture}
|
||||
2688: uniforms={{ t: <JustBlue blue={1} /> }}
|
||||
2689: />
|
||||
-^ props of React element `Node`
|
||||
2688: blendFunc="nope"
|
||||
2686: blendFunc="nope"
|
||||
^^^^^^ string. Inexact type is incompatible with exact type
|
||||
177: blendFunc: BlendFuncSrcDst,
|
||||
^^^^^^^^^^^^^^^ exact type: object type. See: ../node_modules/gl-react/lib/Node.js.flow:177
|
||||
|
||||
Error: incorrect.js:19
|
||||
19: <Node />;
|
||||
Error: incorrect.js:17
|
||||
17: <Node />;
|
||||
^^^^^^^^ React element `Node`
|
||||
392: props: Props;
|
||||
^^^^^ property `shader`. Property not found in. See: ../node_modules/gl-react/lib/Node.js.flow:392
|
||||
19: <Node />;
|
||||
17: <Node />;
|
||||
^^^^^^^^ props of React element `Node`
|
||||
|
||||
Error: incorrect.js:25
|
||||
25: <Node nope />;
|
||||
Error: incorrect.js:23
|
||||
23: <Node nope />;
|
||||
^^^^^^^^^^^^^ React element `Node`
|
||||
25: <Node nope />;
|
||||
23: <Node nope />;
|
||||
^^^^^^^^^^^^^ property `nope`. Property not found in
|
||||
392: props: Props;
|
||||
^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:392
|
||||
|
||||
Error: incorrect.js:25
|
||||
25: <Node nope />;
|
||||
Error: incorrect.js:23
|
||||
23: <Node nope />;
|
||||
^^^^^^^^^^^^^ React element `Node`
|
||||
392: props: Props;
|
||||
^^^^^ property `shader`. Property not found in. See: ../node_modules/gl-react/lib/Node.js.flow:392
|
||||
25: <Node nope />;
|
||||
23: <Node nope />;
|
||||
^^^^^^^^^^^^^ props of React element `Node`
|
||||
|
||||
Error: incorrect.js:27
|
||||
27: <Bus nope />;
|
||||
Error: incorrect.js:25
|
||||
25: <Bus nope />;
|
||||
^^^^^^^^^^^^ React element `Bus`
|
||||
27: <Bus nope />;
|
||||
25: <Bus nope />;
|
||||
^^^^^^^^^^^^ property `nope`. Property not found in
|
||||
45: export default class Bus extends Component<{ index: number }, Props, void> {
|
||||
^^^^^ object type. See: ../node_modules/gl-react/lib/Bus.js.flow:45
|
||||
|
||||
Error: incorrect.js:29
|
||||
Error: incorrect.js:27
|
||||
v---------------
|
||||
29: const shaders = Shaders.create({
|
||||
30: valid: {
|
||||
31: frag: GLSL`...`
|
||||
27: const shaders = Shaders.create({
|
||||
28: valid: {
|
||||
29: frag: GLSL`...`
|
||||
...:
|
||||
36: });
|
||||
34: });
|
||||
-^ call of method `create`
|
||||
33: a: null,
|
||||
31: a: null,
|
||||
^^^^ null. Inexact type is incompatible with exact type
|
||||
46: [key: string]: ShaderDefinition
|
||||
^^^^^^^^^^^^^^^^ exact type: object type. See: ../node_modules/gl-react/lib/Shaders.js.flow:46
|
||||
|
||||
Error: incorrect.js:29
|
||||
Error: incorrect.js:27
|
||||
v---------------
|
||||
29: const shaders = Shaders.create({
|
||||
30: valid: {
|
||||
31: frag: GLSL`...`
|
||||
27: const shaders = Shaders.create({
|
||||
28: valid: {
|
||||
29: frag: GLSL`...`
|
||||
...:
|
||||
36: });
|
||||
34: });
|
||||
-^ call of method `create`
|
||||
46: [key: string]: ShaderDefinition
|
||||
^^^^^^^^^^^^^^^^ property `frag`. Property not found in. See: ../node_modules/gl-react/lib/Shaders.js.flow:46
|
||||
34: b: {},
|
||||
32: b: {},
|
||||
^^ object literal
|
||||
|
||||
Error: incorrect.js:35
|
||||
35: c: { frag: true }
|
||||
Error: incorrect.js:33
|
||||
33: c: { frag: true }
|
||||
^^^^^^^^^^^^^^ object literal. This type is incompatible with
|
||||
46: [key: string]: ShaderDefinition
|
||||
^^^^^^^^^^^^^^^^ object type. See: ../node_modules/gl-react/lib/Shaders.js.flow:46
|
||||
Property `frag` is incompatible:
|
||||
35: c: { frag: true }
|
||||
33: c: { frag: true }
|
||||
^^^^ boolean. This type is incompatible with
|
||||
16: frag: GLSLCode,
|
||||
^^^^^^^^ string. See: ../node_modules/gl-react/lib/Shaders.js.flow:16
|
||||
|
||||
Error: incorrect.js:44
|
||||
44: surface.nope();
|
||||
Error: incorrect.js:42
|
||||
42: surface.nope();
|
||||
^^^^ property `nope`. Property not found in
|
||||
44: surface.nope();
|
||||
42: surface.nope();
|
||||
^^^^^^^ ISurface
|
||||
|
||||
Error: incorrect.js:45
|
||||
45: node.nope();
|
||||
Error: incorrect.js:43
|
||||
43: node.nope();
|
||||
^^^^ property `nope`. Property not found in
|
||||
45: node.nope();
|
||||
43: node.nope();
|
||||
^^^^ Node
|
||||
|
||||
Error: incorrect.js:51
|
||||
51: <Bus ref="o" notexists>
|
||||
Error: incorrect.js:49
|
||||
49: <Bus ref="o" notexists>
|
||||
^^^^^^^^^^^^^^^^^^^^^^^ React element `Bus`
|
||||
51: <Bus ref="o" notexists>
|
||||
49: <Bus ref="o" notexists>
|
||||
^^^^^^^^^^^^^^^^^^^^^^^ property `notexists`. Property not found in
|
||||
45: export default class Bus extends Component<{ index: number }, Props, void> {
|
||||
^^^^^ object type. See: ../node_modules/gl-react/lib/Bus.js.flow:45
|
||||
|
||||
Error: incorrect.js:52
|
||||
52: <Node />
|
||||
Error: incorrect.js:50
|
||||
50: <Node />
|
||||
^^^^^^^^ React element `Node`
|
||||
392: props: Props;
|
||||
^^^^^ property `shader`. Property not found in. See: ../node_modules/gl-react/lib/Node.js.flow:392
|
||||
52: <Node />
|
||||
50: <Node />
|
||||
^^^^^^^^ props of React element `Node`
|
||||
|
||||
Error: incorrect.js:55
|
||||
55: <Node shaders={shaders.valid} notexists />
|
||||
Error: incorrect.js:53
|
||||
53: <Node shaders={shaders.valid} notexists />
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ React element `Node`
|
||||
55: <Node shaders={shaders.valid} notexists />
|
||||
53: <Node shaders={shaders.valid} notexists />
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ property `notexists`. Property not found in
|
||||
392: props: Props;
|
||||
^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:392
|
||||
|
||||
Error: incorrect.js:55
|
||||
55: <Node shaders={shaders.valid} notexists />
|
||||
Error: incorrect.js:53
|
||||
53: <Node shaders={shaders.valid} notexists />
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ React element `Node`
|
||||
55: <Node shaders={shaders.valid} notexists />
|
||||
53: <Node shaders={shaders.valid} notexists />
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ property `shaders`. Property not found in
|
||||
392: props: Props;
|
||||
^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:392
|
||||
|
||||
Error: incorrect.js:55
|
||||
55: <Node shaders={shaders.valid} notexists />
|
||||
Error: incorrect.js:53
|
||||
53: <Node shaders={shaders.valid} notexists />
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ React element `Node`
|
||||
392: props: Props;
|
||||
^^^^^ property `shader`. Property not found in. See: ../node_modules/gl-react/lib/Node.js.flow:392
|
||||
55: <Node shaders={shaders.valid} notexists />
|
||||
53: <Node shaders={shaders.valid} notexists />
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ props of React element `Node`
|
||||
|
||||
Error: incorrect.js:62
|
||||
62: connectSize();
|
||||
Error: incorrect.js:60
|
||||
60: connectSize();
|
||||
^^^^^^^^^^^^^ function call
|
||||
62: connectSize();
|
||||
60: connectSize();
|
||||
^^^^^^^^^^^^^ undefined (too few arguments, expected default/rest parameters). This type is incompatible with
|
||||
19: const connectSize = (GLComponent: ReactClass<*>) =>
|
||||
^^^^^^^^^^^^^ class type: C. See: ../node_modules/gl-react/lib/connectSize.js.flow:19
|
||||
|
||||
Error: incorrect.js:66
|
||||
Error: incorrect.js:64
|
||||
v----
|
||||
66: <Node
|
||||
67: sync={1}
|
||||
68: clear={42}
|
||||
64: <Node
|
||||
65: sync={1}
|
||||
66: clear={42}
|
||||
...:
|
||||
79: />
|
||||
77: />
|
||||
-^ React element `Node`
|
||||
v----
|
||||
66: <Node
|
||||
67: sync={1}
|
||||
68: clear={42}
|
||||
64: <Node
|
||||
65: sync={1}
|
||||
66: clear={42}
|
||||
...:
|
||||
79: />
|
||||
77: />
|
||||
-^ property `preload`. Property not found in
|
||||
392: props: Props;
|
||||
^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:392
|
||||
|
||||
Error: incorrect.js:66
|
||||
Error: incorrect.js:64
|
||||
v----
|
||||
66: <Node
|
||||
67: sync={1}
|
||||
68: clear={42}
|
||||
64: <Node
|
||||
65: sync={1}
|
||||
66: clear={42}
|
||||
...:
|
||||
79: />
|
||||
77: />
|
||||
-^ React element `Node`
|
||||
v----
|
||||
66: <Node
|
||||
67: sync={1}
|
||||
68: clear={42}
|
||||
64: <Node
|
||||
65: sync={1}
|
||||
66: clear={42}
|
||||
...:
|
||||
79: />
|
||||
77: />
|
||||
-^ property `visitor`. Property not found in
|
||||
392: props: Props;
|
||||
^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:392
|
||||
|
||||
Error: incorrect.js:66
|
||||
Error: incorrect.js:64
|
||||
v----
|
||||
66: <Node
|
||||
67: sync={1}
|
||||
68: clear={42}
|
||||
64: <Node
|
||||
65: sync={1}
|
||||
66: clear={42}
|
||||
...:
|
||||
79: />
|
||||
77: />
|
||||
-^ React element `Node`
|
||||
78: shader={false}
|
||||
76: shader={false}
|
||||
^^^^^ boolean. This type is incompatible with
|
||||
160: shader: ShaderIdentifier | ShaderDefinition,
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ union: ShaderIdentifier | ShaderDefinition. See: ../node_modules/gl-react/lib/Node.js.flow:160
|
||||
@ -263,7 +263,7 @@ Error: incorrect.js:66
|
||||
160: shader: ShaderIdentifier | ShaderDefinition,
|
||||
^^^^^^^^^^^^^^^^ ShaderIdentifier. See: ../node_modules/gl-react/lib/Node.js.flow:160
|
||||
Error:
|
||||
78: shader={false}
|
||||
76: shader={false}
|
||||
^^^^^ boolean. This type is incompatible with
|
||||
160: shader: ShaderIdentifier | ShaderDefinition,
|
||||
^^^^^^^^^^^^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:160
|
||||
@ -271,141 +271,141 @@ Error: incorrect.js:66
|
||||
160: shader: ShaderIdentifier | ShaderDefinition,
|
||||
^^^^^^^^^^^^^^^^ ShaderDefinition. See: ../node_modules/gl-react/lib/Node.js.flow:160
|
||||
Error:
|
||||
78: shader={false}
|
||||
76: shader={false}
|
||||
^^^^^ boolean. Inexact type is incompatible with exact type
|
||||
160: shader: ShaderIdentifier | ShaderDefinition,
|
||||
^^^^^^^^^^^^^^^^ exact type: object type. See: ../node_modules/gl-react/lib/Node.js.flow:160
|
||||
|
||||
Error: incorrect.js:66
|
||||
Error: incorrect.js:64
|
||||
v----
|
||||
66: <Node
|
||||
67: sync={1}
|
||||
68: clear={42}
|
||||
64: <Node
|
||||
65: sync={1}
|
||||
66: clear={42}
|
||||
...:
|
||||
79: />
|
||||
77: />
|
||||
-^ props of React element `Node`. This type is incompatible with
|
||||
392: props: Props;
|
||||
^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:392
|
||||
Property `height` is incompatible:
|
||||
70: height={false}
|
||||
68: height={false}
|
||||
^^^^^ boolean. This type is incompatible with
|
||||
165: height?: number,
|
||||
^^^^^^ number. See: ../node_modules/gl-react/lib/Node.js.flow:165
|
||||
|
||||
Error: incorrect.js:66
|
||||
Error: incorrect.js:64
|
||||
v----
|
||||
66: <Node
|
||||
67: sync={1}
|
||||
68: clear={42}
|
||||
64: <Node
|
||||
65: sync={1}
|
||||
66: clear={42}
|
||||
...:
|
||||
79: />
|
||||
77: />
|
||||
-^ props of React element `Node`. This type is incompatible with
|
||||
392: props: Props;
|
||||
^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:392
|
||||
Property `sync` is incompatible:
|
||||
67: sync={1}
|
||||
65: sync={1}
|
||||
^ number. This type is incompatible with
|
||||
163: sync?: boolean,
|
||||
^^^^^^^ boolean. See: ../node_modules/gl-react/lib/Node.js.flow:163
|
||||
|
||||
Error: incorrect.js:66
|
||||
Error: incorrect.js:64
|
||||
v----
|
||||
66: <Node
|
||||
67: sync={1}
|
||||
68: clear={42}
|
||||
64: <Node
|
||||
65: sync={1}
|
||||
66: clear={42}
|
||||
...:
|
||||
79: />
|
||||
77: />
|
||||
-^ props of React element `Node`. This type is incompatible with
|
||||
392: props: Props;
|
||||
^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:392
|
||||
Property `width` is incompatible:
|
||||
69: width={false}
|
||||
67: width={false}
|
||||
^^^^^ boolean. This type is incompatible with
|
||||
164: width?: number,
|
||||
^^^^^^ number. See: ../node_modules/gl-react/lib/Node.js.flow:164
|
||||
|
||||
Error: incorrect.js:66
|
||||
Error: incorrect.js:64
|
||||
v----
|
||||
66: <Node
|
||||
67: sync={1}
|
||||
68: clear={42}
|
||||
64: <Node
|
||||
65: sync={1}
|
||||
66: clear={42}
|
||||
...:
|
||||
79: />
|
||||
77: />
|
||||
-^ props of React element `Node`
|
||||
68: clear={42}
|
||||
66: clear={42}
|
||||
^^ number. Inexact type is incompatible with exact type
|
||||
178: clear: ?Clear
|
||||
^^^^^ exact type: object type. See: ../node_modules/gl-react/lib/Node.js.flow:178
|
||||
|
||||
Error: incorrect.js:66
|
||||
Error: incorrect.js:64
|
||||
v----
|
||||
66: <Node
|
||||
67: sync={1}
|
||||
68: clear={42}
|
||||
64: <Node
|
||||
65: sync={1}
|
||||
66: clear={42}
|
||||
...:
|
||||
79: />
|
||||
77: />
|
||||
-^ props of React element `Node`
|
||||
v
|
||||
71: blendFunc={{
|
||||
72: src: "nope",
|
||||
73: interpolation: "interpolation_nope",
|
||||
74: wrap: "wrap_nope"
|
||||
75: }}
|
||||
69: blendFunc={{
|
||||
70: src: "nope",
|
||||
71: interpolation: "interpolation_nope",
|
||||
72: wrap: "wrap_nope"
|
||||
73: }}
|
||||
^ property `interpolation`. Property not found in
|
||||
177: blendFunc: BlendFuncSrcDst,
|
||||
^^^^^^^^^^^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:177
|
||||
|
||||
Error: incorrect.js:66
|
||||
Error: incorrect.js:64
|
||||
v----
|
||||
66: <Node
|
||||
67: sync={1}
|
||||
68: clear={42}
|
||||
64: <Node
|
||||
65: sync={1}
|
||||
66: clear={42}
|
||||
...:
|
||||
79: />
|
||||
77: />
|
||||
-^ props of React element `Node`
|
||||
v
|
||||
71: blendFunc={{
|
||||
72: src: "nope",
|
||||
73: interpolation: "interpolation_nope",
|
||||
74: wrap: "wrap_nope"
|
||||
75: }}
|
||||
69: blendFunc={{
|
||||
70: src: "nope",
|
||||
71: interpolation: "interpolation_nope",
|
||||
72: wrap: "wrap_nope"
|
||||
73: }}
|
||||
^ property `wrap`. Property not found in
|
||||
177: blendFunc: BlendFuncSrcDst,
|
||||
^^^^^^^^^^^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:177
|
||||
|
||||
Error: incorrect.js:66
|
||||
Error: incorrect.js:64
|
||||
v----
|
||||
66: <Node
|
||||
67: sync={1}
|
||||
68: clear={42}
|
||||
64: <Node
|
||||
65: sync={1}
|
||||
66: clear={42}
|
||||
...:
|
||||
79: />
|
||||
77: />
|
||||
-^ props of React element `Node`
|
||||
72: src: "nope",
|
||||
70: src: "nope",
|
||||
^^^^^^ property `nope`. Property not found in
|
||||
95: src: BlendFunc,
|
||||
^^^^^^^^^ object literal. See: ../node_modules/gl-react/lib/Node.js.flow:95
|
||||
|
||||
Error: incorrect.js:66
|
||||
Error: incorrect.js:64
|
||||
v----
|
||||
66: <Node
|
||||
67: sync={1}
|
||||
68: clear={42}
|
||||
64: <Node
|
||||
65: sync={1}
|
||||
66: clear={42}
|
||||
...:
|
||||
79: />
|
||||
77: />
|
||||
-^ props of React element `Node`
|
||||
177: blendFunc: BlendFuncSrcDst,
|
||||
^^^^^^^^^^^^^^^ property `dst`. Property not found in. See: ../node_modules/gl-react/lib/Node.js.flow:177
|
||||
v
|
||||
71: blendFunc={{
|
||||
72: src: "nope",
|
||||
73: interpolation: "interpolation_nope",
|
||||
74: wrap: "wrap_nope"
|
||||
75: }}
|
||||
69: blendFunc={{
|
||||
70: src: "nope",
|
||||
71: interpolation: "interpolation_nope",
|
||||
72: wrap: "wrap_nope"
|
||||
73: }}
|
||||
^ object literal
|
||||
|
||||
Error: ../utils.js:42
|
||||
42: expect(actual).toBeInstanceOf(Uint8Array);
|
||||
Error: ../utils.js:43
|
||||
43: expect(actual).toBeInstanceOf(Uint8Array);
|
||||
^^^^^^ identifier `expect`. Could not resolve name
|
||||
|
||||
|
||||
|
||||
@ -21,7 +21,8 @@
|
||||
"ndpack-image": "github:gre/ndpack-image",
|
||||
"promise-defer": "^1.0.0",
|
||||
"react": "16.0.0-alpha.12",
|
||||
"react-test-renderer": "16.0.0-alpha.12"
|
||||
"react-test-renderer": "16.0.0-alpha.12",
|
||||
"webgltexture-loader": "^0.6.0"
|
||||
},
|
||||
"version": "3.13.0",
|
||||
"dependencies": {
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
//@flow
|
||||
import React from "react";
|
||||
import { Visitor, TextureLoader, TextureLoaders } from "gl-react";
|
||||
import { Visitor } from "gl-react";
|
||||
import { globalRegistry, WebGLTextureLoader } from "webgltexture-loader";
|
||||
import invariant from "invariant";
|
||||
import type { Surface, Node } from "gl-react";
|
||||
import type { Texture } from "gl-texture2d";
|
||||
@ -287,7 +288,6 @@ export function createOneTextureLoader(
|
||||
const counters = {
|
||||
constructor: 0,
|
||||
dispose: 0,
|
||||
textureDispose: 0,
|
||||
canLoad: 0,
|
||||
get: 0,
|
||||
load: 0,
|
||||
@ -302,7 +302,7 @@ export function createOneTextureLoader(
|
||||
d.reject(e);
|
||||
return delay(50); // FIXME this is a hack.
|
||||
}
|
||||
class Loader extends TextureLoader<typeof textureId> {
|
||||
class Loader extends WebGLTextureLoader<typeof textureId> {
|
||||
texture: ?Texture = null;
|
||||
constructor(gl: WebGLRenderingContext) {
|
||||
super(gl);
|
||||
@ -317,25 +317,26 @@ export function createOneTextureLoader(
|
||||
}
|
||||
get() {
|
||||
++counters.get;
|
||||
return this.texture;
|
||||
}
|
||||
getSize() {
|
||||
return size;
|
||||
return (
|
||||
this.texture && {
|
||||
texture: this.texture,
|
||||
width: size[0],
|
||||
height: size[1]
|
||||
}
|
||||
);
|
||||
}
|
||||
load() {
|
||||
++counters.load;
|
||||
const promise = d.promise.then(() => {
|
||||
++counters.createTexture;
|
||||
this.texture = makeTexture(this.gl);
|
||||
return this.texture;
|
||||
return {
|
||||
texture: this.texture,
|
||||
width: size[0],
|
||||
height: size[1]
|
||||
};
|
||||
});
|
||||
function dispose() {
|
||||
++counters.textureDispose;
|
||||
}
|
||||
return {
|
||||
promise,
|
||||
dispose
|
||||
};
|
||||
return promise;
|
||||
}
|
||||
}
|
||||
return {
|
||||
@ -347,14 +348,14 @@ export function createOneTextureLoader(
|
||||
};
|
||||
}
|
||||
|
||||
import drawNDArrayTexture from "gl-react/lib/helpers/drawNDArrayTexture";
|
||||
import drawNDArrayTexture from "webgltexture-loader-ndarray/lib/drawNDArrayTexture";
|
||||
export function createNDArrayTexture(gl: WebGLRenderingContext, ndarray: *) {
|
||||
const texture = gl.createTexture();
|
||||
gl.bindTexture(gl.TEXTURE_2D, texture);
|
||||
drawNDArrayTexture(gl, texture, ndarray);
|
||||
return texture;
|
||||
}
|
||||
class FakeTextureLoader extends TextureLoader<FakeTexture> {
|
||||
class FakeTextureLoader extends WebGLTextureLoader<FakeTexture> {
|
||||
textures: Array<WebGLTexture>;
|
||||
constructor(gl: WebGLRenderingContext) {
|
||||
super(gl);
|
||||
@ -367,17 +368,22 @@ class FakeTextureLoader extends TextureLoader<FakeTexture> {
|
||||
canLoad(input: any) {
|
||||
return input instanceof FakeTexture;
|
||||
}
|
||||
getSize(ft: FakeTexture) {
|
||||
return [ft.width, ft.height];
|
||||
}
|
||||
get(ft: FakeTexture) {
|
||||
const array = ft.getPixels();
|
||||
if (array) {
|
||||
const t = createNDArrayTexture(this.gl, array);
|
||||
this.textures.push(t);
|
||||
return t;
|
||||
return {
|
||||
texture: t,
|
||||
width: ft.width,
|
||||
height: ft.height
|
||||
};
|
||||
}
|
||||
}
|
||||
load(ft: FakeTexture) {
|
||||
const res = this.get(ft);
|
||||
return res ? Promise.resolve(res) : Promise.reject();
|
||||
}
|
||||
}
|
||||
|
||||
TextureLoaders.add(FakeTextureLoader);
|
||||
globalRegistry.add(FakeTextureLoader);
|
||||
|
||||
@ -853,7 +853,7 @@ babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26
|
||||
dependencies:
|
||||
ndpack-image "^3.0.0"
|
||||
|
||||
babylon@^6.17.4, babylon@^6.18.0:
|
||||
babylon@^6.18.0:
|
||||
version "6.18.0"
|
||||
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
|
||||
|
||||
@ -977,8 +977,8 @@ chokidar@^1.6.1, chokidar@^1.7.0:
|
||||
fsevents "^1.0.0"
|
||||
|
||||
ci-info@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534"
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.1.tgz#47b44df118c48d2597b56d342e7e25791060171a"
|
||||
|
||||
cliui@^2.1.0:
|
||||
version "2.1.0"
|
||||
@ -1059,8 +1059,8 @@ core-js@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
|
||||
|
||||
core-js@^2.4.0, core-js@^2.5.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086"
|
||||
version "2.5.1"
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b"
|
||||
|
||||
core-util-is@1.0.2, core-util-is@~1.0.0:
|
||||
version "1.0.2"
|
||||
@ -1153,8 +1153,8 @@ detect-indent@^4.0.0:
|
||||
repeating "^2.0.0"
|
||||
|
||||
diff@^3.0.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.0.tgz#056695150d7aa93237ca7e378ac3b1682b7963b9"
|
||||
version "3.3.1"
|
||||
resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75"
|
||||
|
||||
dup@^1.0.0:
|
||||
version "1.0.0"
|
||||
@ -1724,17 +1724,17 @@ isstream@~0.1.2:
|
||||
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
|
||||
|
||||
istanbul-api@^1.1.0-alpha.1:
|
||||
version "1.1.12"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.12.tgz#92d67e9d8f9ea87349a64a70ddf5a7a8cdf97f21"
|
||||
version "1.1.14"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.14.tgz#25bc5701f7c680c0ffff913de46e3619a3a6e680"
|
||||
dependencies:
|
||||
async "^2.1.4"
|
||||
fileset "^2.0.2"
|
||||
istanbul-lib-coverage "^1.1.1"
|
||||
istanbul-lib-hook "^1.0.7"
|
||||
istanbul-lib-instrument "^1.7.5"
|
||||
istanbul-lib-instrument "^1.8.0"
|
||||
istanbul-lib-report "^1.1.1"
|
||||
istanbul-lib-source-maps "^1.2.1"
|
||||
istanbul-reports "^1.1.1"
|
||||
istanbul-reports "^1.1.2"
|
||||
js-yaml "^3.7.0"
|
||||
mkdirp "^0.5.1"
|
||||
once "^1.4.0"
|
||||
@ -1749,15 +1749,15 @@ istanbul-lib-hook@^1.0.7:
|
||||
dependencies:
|
||||
append-transform "^0.4.0"
|
||||
|
||||
istanbul-lib-instrument@^1.1.1, istanbul-lib-instrument@^1.7.2, istanbul-lib-instrument@^1.7.5:
|
||||
version "1.7.5"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.5.tgz#adb596f8f0cb8b95e739206351a38a586af21b1e"
|
||||
istanbul-lib-instrument@^1.1.1, istanbul-lib-instrument@^1.7.2, istanbul-lib-instrument@^1.8.0:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.8.0.tgz#66f6c9421cc9ec4704f76f2db084ba9078a2b532"
|
||||
dependencies:
|
||||
babel-generator "^6.18.0"
|
||||
babel-template "^6.16.0"
|
||||
babel-traverse "^6.18.0"
|
||||
babel-types "^6.18.0"
|
||||
babylon "^6.17.4"
|
||||
babylon "^6.18.0"
|
||||
istanbul-lib-coverage "^1.1.1"
|
||||
semver "^5.3.0"
|
||||
|
||||
@ -1780,9 +1780,9 @@ istanbul-lib-source-maps@^1.2.1:
|
||||
rimraf "^2.6.1"
|
||||
source-map "^0.5.3"
|
||||
|
||||
istanbul-reports@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.1.tgz#042be5c89e175bc3f86523caab29c014e77fee4e"
|
||||
istanbul-reports@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.2.tgz#0fb2e3f6aa9922bd3ce45d05d8ab4d5e8e07bd4f"
|
||||
dependencies:
|
||||
handlebars "^4.0.3"
|
||||
|
||||
@ -2200,15 +2200,15 @@ micromatch@^2.1.5, micromatch@^2.3.11:
|
||||
parse-glob "^3.0.4"
|
||||
regex-cache "^0.4.2"
|
||||
|
||||
mime-db@~1.29.0:
|
||||
version "1.29.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878"
|
||||
mime-db@~1.30.0:
|
||||
version "1.30.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
|
||||
|
||||
mime-types@^2.0.1, mime-types@^2.1.12, mime-types@~2.1.7:
|
||||
version "2.1.16"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23"
|
||||
version "2.1.17"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
|
||||
dependencies:
|
||||
mime-db "~1.29.0"
|
||||
mime-db "~1.30.0"
|
||||
|
||||
mimic-fn@^1.0.0:
|
||||
version "1.1.0"
|
||||
@ -2243,8 +2243,8 @@ ms@2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||
|
||||
nan@^2.3.0:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
|
||||
version "2.7.0"
|
||||
resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46"
|
||||
|
||||
natural-compare@^1.4.0:
|
||||
version "1.4.0"
|
||||
@ -2732,11 +2732,10 @@ regenerator-transform@^0.10.0:
|
||||
private "^0.1.6"
|
||||
|
||||
regex-cache@^0.4.2:
|
||||
version "0.4.3"
|
||||
resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145"
|
||||
version "0.4.4"
|
||||
resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
|
||||
dependencies:
|
||||
is-equal-shallow "^0.1.3"
|
||||
is-primitive "^2.0.0"
|
||||
|
||||
regexpu-core@^2.0.0:
|
||||
version "2.0.0"
|
||||
@ -2908,8 +2907,8 @@ sntp@1.x.x:
|
||||
hoek "2.x.x"
|
||||
|
||||
source-map-support@^0.4.15:
|
||||
version "0.4.16"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.16.tgz#16fecf98212467d017d586a2af68d628b9421cd8"
|
||||
version "0.4.17"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.17.tgz#6f2150553e6375375d0ccb3180502b78c18ba430"
|
||||
dependencies:
|
||||
source-map "^0.5.6"
|
||||
|
||||
@ -3204,6 +3203,10 @@ watch@~0.10.0:
|
||||
version "0.10.0"
|
||||
resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc"
|
||||
|
||||
webgltexture-loader@^0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/webgltexture-loader/-/webgltexture-loader-0.6.0.tgz#95368723999dcc4c24024115375ab3ec18baf3fd"
|
||||
|
||||
webidl-conversions@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
|
||||
|
||||
41
yarn.lock
41
yarn.lock
@ -1024,14 +1024,15 @@ browser-resolve@^1.11.0, browser-resolve@^1.7.0:
|
||||
resolve "1.1.7"
|
||||
|
||||
browserify-aes@^1.0.0, browserify-aes@^1.0.4:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a"
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.8.tgz#c8fa3b1b7585bb7ba77c5560b60996ddec6d5309"
|
||||
dependencies:
|
||||
buffer-xor "^1.0.2"
|
||||
buffer-xor "^1.0.3"
|
||||
cipher-base "^1.0.0"
|
||||
create-hash "^1.1.0"
|
||||
evp_bytestokey "^1.0.0"
|
||||
evp_bytestokey "^1.0.3"
|
||||
inherits "^2.0.1"
|
||||
safe-buffer "^5.0.1"
|
||||
|
||||
browserify-cipher@^1.0.0:
|
||||
version "1.0.0"
|
||||
@ -1140,7 +1141,7 @@ buffer-shims@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
|
||||
|
||||
buffer-xor@^1.0.2:
|
||||
buffer-xor@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
|
||||
|
||||
@ -1259,8 +1260,8 @@ chokidar@^1.2.0, chokidar@^1.6.1, chokidar@^1.7.0:
|
||||
fsevents "^1.0.0"
|
||||
|
||||
ci-info@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534"
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.1.tgz#47b44df118c48d2597b56d342e7e25791060171a"
|
||||
|
||||
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
|
||||
version "1.0.4"
|
||||
@ -1983,9 +1984,9 @@ events@~1.1.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
|
||||
|
||||
evp_bytestokey@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.2.tgz#f66bb88ecd57f71a766821e20283ea38c68bf80a"
|
||||
evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
|
||||
dependencies:
|
||||
md5.js "^1.3.4"
|
||||
safe-buffer "^5.1.1"
|
||||
@ -3280,15 +3281,15 @@ miller-rabin@^4.0.0:
|
||||
bn.js "^4.0.0"
|
||||
brorand "^1.0.1"
|
||||
|
||||
mime-db@~1.29.0:
|
||||
version "1.29.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878"
|
||||
mime-db@~1.30.0:
|
||||
version "1.30.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
|
||||
|
||||
mime-types@^2.1.12, mime-types@~2.1.7:
|
||||
version "2.1.16"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23"
|
||||
version "2.1.17"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
|
||||
dependencies:
|
||||
mime-db "~1.29.0"
|
||||
mime-db "~1.30.0"
|
||||
|
||||
mime@^1.3.4:
|
||||
version "1.4.0"
|
||||
@ -4322,8 +4323,8 @@ sort-keys@^2.0.0:
|
||||
is-plain-obj "^1.0.0"
|
||||
|
||||
source-map-support@^0.4.15:
|
||||
version "0.4.16"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.16.tgz#16fecf98212467d017d586a2af68d628b9421cd8"
|
||||
version "0.4.17"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.17.tgz#6f2150553e6375375d0ccb3180502b78c18ba430"
|
||||
dependencies:
|
||||
source-map "^0.5.6"
|
||||
|
||||
@ -4607,8 +4608,8 @@ ternary@~1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/ternary/-/ternary-1.0.0.tgz#45702725608c9499d46a9610e9b0e49ff26f789e"
|
||||
|
||||
text-extensions@^1.0.0:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.5.0.tgz#d1cb2d14b5d0bc45bfdca8a08a473f68c7eb0cbc"
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.6.0.tgz#771561b26022783a45f5b6c2e78ad6e7de9fe322"
|
||||
|
||||
through2-filter@^2.0.0:
|
||||
version "2.0.0"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user