gitextract_38_tdv3f/ ├── .circleci/ │ └── config.yml ├── .flowconfig ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE.md │ └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── LICENSE-docs ├── LICENSE-examples ├── Libraries/ │ ├── .eslintrc.js │ ├── Camera/ │ │ └── LiveEnvCamera.js │ ├── Components/ │ │ └── View/ │ │ ├── PlatformViewPropTypes.vr.js │ │ └── View.vr.js │ ├── Lights/ │ │ ├── AmbientLight.js │ │ ├── DirectionalLight.js │ │ ├── PointLight.js │ │ └── SpotLight.js │ ├── Mesh/ │ │ ├── Box.js │ │ ├── Cylinder.js │ │ ├── Entity.js │ │ ├── Model.js │ │ ├── Plane.js │ │ └── Sphere.js │ ├── Pano/ │ │ ├── Pano.js │ │ └── Prefetch.js │ ├── Scene/ │ │ └── Scene.js │ ├── Sound/ │ │ └── Sound.js │ ├── StyleSheet/ │ │ ├── LayoutAndTransformColorPropTypes.js │ │ ├── LayoutAndTransformOpacityPropTypes.js │ │ ├── LayoutAndTransformPropTypes.js │ │ ├── LayoutAndTransformTintPropTypes.js │ │ ├── LayoutPropTypes.vr.js │ │ └── ViewStylePropTypes.vr.js │ ├── Utilities/ │ │ ├── MatrixMath.vr.js │ │ ├── Platform.vr.js │ │ ├── ThreeJSConstants.js │ │ ├── VrHeadModel.js │ │ ├── VrMath.js │ │ ├── VrSoundEffects.js │ │ ├── asset.js │ │ ├── createGlyph.js │ │ ├── staticAssetURL.js │ │ └── texture.js │ ├── VRLayers/ │ │ ├── CylindricalPanel.js │ │ └── QuadPanel.js │ ├── VRModules/ │ │ ├── ControllerInfo.js │ │ ├── Environment.js │ │ ├── ExternalAssets.js │ │ ├── GlyphTextures.js │ │ ├── History.js │ │ ├── Location.js │ │ ├── ReactVRConstants.js │ │ └── VideoModule.js │ ├── VRReactOverrides/ │ │ ├── AccessibilityInfo.vr.js │ │ ├── BackHandler.vr.js │ │ ├── HMRLoadingView.vr.js │ │ ├── Image.vr.js │ │ ├── Interpolation.vr.js │ │ ├── MaskedViewIOS.vr.js │ │ ├── NetworkOverlay.vr.js │ │ ├── PlatformSpecific/ │ │ │ ├── CheckBox.vr.js │ │ │ ├── DatePickerAndroid.vr.js │ │ │ ├── DatePickerIOS.vr.js │ │ │ ├── DrawerLayoutAndroid.vr.js │ │ │ ├── NavigationExperimental.vr.js │ │ │ ├── NavigatorBreadcrumbNavigationBarStyles.vr.js │ │ │ ├── NavigatorIOS.vr.js │ │ │ ├── PickerAndroid.vr.js │ │ │ ├── PickerIOS.vr.js │ │ │ ├── ProgressBarAndroid.vr.js │ │ │ ├── ProgressViewIOS.vr.js │ │ │ ├── RecyclerViewBackedScrollview.vr.js │ │ │ ├── SafeAreaView.vr.js │ │ │ ├── SegmentedControlIOS.vr.js │ │ │ ├── SnapshotViewIOS.vr.js │ │ │ ├── StatusBarIOS.vr.js │ │ │ ├── TabBarIOS.vr.js │ │ │ ├── TimePickerAndroid.vr.js │ │ │ ├── ToastAndroid.vr.js │ │ │ ├── ToolbarAndroid.vr.js │ │ │ ├── TouchableNativeFeedback.vr.js │ │ │ ├── VibrationIOS.vr.js │ │ │ ├── ViewPagerAndroid.vr.js │ │ │ └── WebView.vr.js │ │ ├── RCTNetworking.vr.js │ │ ├── ReactNativeViewAttributes.vr.js │ │ ├── Settings.vr.js │ │ ├── TVEventHandler.vr.js │ │ ├── Text.vr.js │ │ ├── TransformPropTypes.vr.js │ │ ├── YellowBox.vr.js │ │ ├── processTransform.vr.js │ │ └── setupDevtools.vr.js │ ├── Video/ │ │ ├── MediaPlayerState.js │ │ ├── Video.js │ │ ├── VideoControl.js │ │ └── VideoUtils.js │ ├── VideoPano/ │ │ └── VideoPano.js │ ├── VrAnimated/ │ │ └── VrAnimated.js │ ├── VrButton/ │ │ └── VrButton.js │ └── react-360.js ├── OVRUI/ │ └── fonts/ │ ├── cjk_0.fnt │ ├── cjk_1.fnt │ ├── cjk_2.fnt │ ├── efigs.fnt │ ├── greek.fnt │ ├── japanese.fnt │ ├── korean.fnt │ ├── korean_0.fnt │ └── korean_1.fnt ├── README.md ├── React360/ │ ├── .npmignore │ ├── LICENSE │ ├── PATENTS │ ├── README.md │ ├── React360.js │ ├── js/ │ │ ├── Audio/ │ │ │ ├── AudioTypes.js │ │ │ ├── MediaError.js │ │ │ ├── OVRAudio.js │ │ │ ├── VRAudioBufferManager.js │ │ │ ├── VRAudioBufferSource.js │ │ │ ├── VRAudioComponent.js │ │ │ ├── VRAudioContext.js │ │ │ └── getSupportedFormats.js │ │ ├── Bridge/ │ │ │ ├── Bridge.js │ │ │ └── WebWorkerBridge.js │ │ ├── Compositor/ │ │ │ ├── Audio/ │ │ │ │ ├── AudioInstance.js │ │ │ │ ├── AudioNode.js │ │ │ │ └── Types.js │ │ │ ├── Compositor.js │ │ │ ├── Cursor.js │ │ │ ├── Environment/ │ │ │ │ ├── CubemapGeometry.js │ │ │ │ ├── Environment.js │ │ │ │ ├── EnvironmentUtils.js │ │ │ │ ├── Screen.js │ │ │ │ ├── StereoBasicTextureMaterial.js │ │ │ │ ├── StereoShaderLib.js │ │ │ │ ├── StereoTextureUniforms.js │ │ │ │ └── Types.js │ │ │ ├── Glyphs.js │ │ │ ├── Location.js │ │ │ ├── Overlay.js │ │ │ ├── Surface.js │ │ │ ├── SurfaceManager.js │ │ │ ├── VRState.js │ │ │ └── Video/ │ │ │ ├── BrowserVideoPlayer.js │ │ │ ├── Types.js │ │ │ ├── VideoPlayer.js │ │ │ └── VideoPlayerManager.js │ │ ├── Controls/ │ │ │ ├── CameraControllers/ │ │ │ │ ├── DeviceOrientationCameraController.js │ │ │ │ ├── MousePanCameraController.js │ │ │ │ ├── ScrollPanCameraController.js │ │ │ │ └── Types.js │ │ │ ├── Controls.js │ │ │ ├── InputChannels/ │ │ │ │ ├── GamepadInputChannel.js │ │ │ │ ├── KeyboardInputChannel.js │ │ │ │ ├── MouseInputChannel.js │ │ │ │ ├── TouchInputChannel.js │ │ │ │ └── Types.js │ │ │ ├── Raycasters/ │ │ │ │ ├── ControllerRaycaster.js │ │ │ │ ├── MouseRaycaster.js │ │ │ │ ├── TouchRaycaster.js │ │ │ │ └── Types.js │ │ │ ├── Types.js │ │ │ ├── Utils/ │ │ │ │ └── ControllerRenderer.js │ │ │ └── __tests__/ │ │ │ └── InputChannels-test.js │ │ ├── Events/ │ │ │ └── MediaEvent.js │ │ ├── Executor/ │ │ │ ├── NonBlobBridge.js │ │ │ ├── ReactExecutor.js │ │ │ ├── ReactExecutorIframe.js │ │ │ ├── ReactExecutorNonBlobWebWorker.js │ │ │ └── ReactExecutorWebWorker.js │ │ ├── Loaders/ │ │ │ ├── GLTF2ModelLoader.js │ │ │ ├── ModelLoaderRegistry.js │ │ │ ├── ObjModelLoader.js │ │ │ └── WavefrontOBJ/ │ │ │ ├── MTLLoader.js │ │ │ ├── MTLParser.js │ │ │ ├── OBJGroup.js │ │ │ ├── OBJLoader.js │ │ │ ├── OBJParser.js │ │ │ ├── OBJTypes.js │ │ │ ├── README.md │ │ │ └── __tests__/ │ │ │ ├── MTLParser-test.js │ │ │ ├── OBJGroup-test.js │ │ │ ├── OBJLoader-test.js │ │ │ └── OBJParser-test.js │ │ ├── Modules/ │ │ │ ├── AndroidConstants.js │ │ │ ├── AsyncLocalStorage.js │ │ │ ├── AudioModule.js │ │ │ ├── ControllerInfo.js │ │ │ ├── DeviceInfo.js │ │ │ ├── EnvironmentModule.js │ │ │ ├── ExternalAssets.js │ │ │ ├── GlyphTextures.js │ │ │ ├── History.js │ │ │ ├── LinkingManager.js │ │ │ ├── Location.js │ │ │ ├── LocationObserver.js │ │ │ ├── Module.js │ │ │ ├── Networking.js │ │ │ ├── PlatformConstants.js │ │ │ ├── RCTAudioModule.js │ │ │ ├── RCTExceptionsManager.js │ │ │ ├── RCTSourceCode.js │ │ │ ├── RCTVideoModule.js │ │ │ ├── ReactVRConstants.js │ │ │ ├── Timing.js │ │ │ ├── UIManager.js │ │ │ ├── VideoModule.js │ │ │ ├── WebSocketModule.js │ │ │ └── __tests__/ │ │ │ └── Module-test.js │ │ ├── OVRUI/ │ │ │ ├── FourByFourRect/ │ │ │ │ └── VectorGeometry.js │ │ │ ├── SDFFont/ │ │ │ │ ├── DefaultFont.js │ │ │ │ └── SDFFont.js │ │ │ └── UIView/ │ │ │ ├── GuiSys.js │ │ │ ├── GuiSysEvent.js │ │ │ ├── UIView.js │ │ │ └── UIViewUtil.js │ │ ├── ReactInstance.js │ │ ├── ReactNativeContext.js │ │ ├── Renderer/ │ │ │ ├── FlexboxImplementation.js │ │ │ └── RendererTypes.js │ │ ├── Runtime/ │ │ │ └── Runtime.js │ │ ├── Utils/ │ │ │ ├── CubePano.js │ │ │ ├── Fader.js │ │ │ ├── HPano.js │ │ │ ├── Math.js │ │ │ ├── RCTBindedResource.js │ │ │ ├── RCTHeadModel.js │ │ │ ├── RCTInputControls.js │ │ │ ├── RCTResourceManager.js │ │ │ ├── RCTVideoPlayer.js │ │ │ ├── RefCountCache.js │ │ │ ├── ResourceManager.js │ │ │ ├── StereoOffsetRepeats.js │ │ │ ├── TextureManager.js │ │ │ ├── Yoga.bundle.js │ │ │ ├── __tests__/ │ │ │ │ ├── Fader-test.js │ │ │ │ ├── RCTVideoPlayer-test.js │ │ │ │ ├── RefCountCache-test.js │ │ │ │ ├── TextureManager-test.js │ │ │ │ └── merge-test.js │ │ │ ├── createRemoteImageManager.js │ │ │ ├── extractURL.js │ │ │ ├── fetchResource.js │ │ │ ├── isPositive.js │ │ │ └── merge.js │ │ ├── Video/ │ │ │ ├── BasicVideoPlayer.js │ │ │ ├── OVRVideo.js │ │ │ ├── VRVideoComponent.js │ │ │ ├── VRVideoPlayer.js │ │ │ └── getSupportedFormats.js │ │ ├── Views/ │ │ │ ├── AmbientLight.js │ │ │ ├── BaseMesh.js │ │ │ ├── BaseView.js │ │ │ ├── Box.js │ │ │ ├── Cylinder.js │ │ │ ├── CylindricalPanel.js │ │ │ ├── DirectionalLight.js │ │ │ ├── Image.js │ │ │ ├── LiveEnvCamera.js │ │ │ ├── Model.js │ │ │ ├── Pano.js │ │ │ ├── Plane.js │ │ │ ├── PointLight.js │ │ │ ├── Prefetch.js │ │ │ ├── QuadPanel.js │ │ │ ├── RawText.js │ │ │ ├── Scene.js │ │ │ ├── Sound.js │ │ │ ├── Sphere.js │ │ │ ├── SpotLight.js │ │ │ ├── Text.js │ │ │ ├── Video.js │ │ │ ├── VideoPano.js │ │ │ ├── View.js │ │ │ └── __tests__/ │ │ │ ├── BaseMesh-test.js │ │ │ ├── BaseView-test.js │ │ │ ├── Image-test.js │ │ │ ├── Model-test.js │ │ │ ├── Text-test.js │ │ │ └── View-test.js │ │ ├── bundleFromLocation.js │ │ └── createRootView.js │ └── package.json ├── Samples/ │ ├── BasicAppTemplate/ │ │ ├── README.md │ │ ├── client.js │ │ ├── index.html │ │ ├── index.js │ │ ├── src/ │ │ │ └── components/ │ │ │ ├── BasicAppTemplateInfoButton.react.js │ │ │ └── BasicAppTemplateScenePage.react.js │ │ └── static_assets/ │ │ └── video360.webm │ ├── CustomPlayerSample/ │ │ ├── .gitignore │ │ ├── DashVideoPlayer.js │ │ ├── README.md │ │ ├── client.js │ │ ├── index.html │ │ └── index.js │ ├── HeadlockedSurfaces/ │ │ ├── client.js │ │ ├── index.html │ │ └── index.js │ ├── MediaAppTemplate/ │ │ ├── README.md │ │ ├── client.js │ │ ├── index.html │ │ ├── index.js │ │ └── src/ │ │ └── components/ │ │ ├── MediaAppTemplateInfoButton.react.js │ │ ├── MediaAppTemplateScenePage.react.js │ │ ├── MediaAppTemplateSubtitleText.react.js │ │ └── MediaAppTemplateVideoScreen.react.js │ ├── MultiRoot/ │ │ ├── CurrentPost.js │ │ ├── ModelView.js │ │ ├── README.md │ │ ├── Store.js │ │ ├── TopPosts.js │ │ ├── client.js │ │ ├── index.html │ │ └── index.js │ ├── NativeModules/ │ │ ├── BrowserInfoModule.js │ │ ├── client.js │ │ ├── index.html │ │ └── index.js │ ├── Slideshow/ │ │ ├── client.js │ │ ├── index.html │ │ └── index.js │ └── TourAppTemplate/ │ ├── RCTWorkInProgressSurface.js │ ├── README.md │ ├── client.js │ ├── index.html │ ├── index.js │ ├── src/ │ │ ├── components/ │ │ │ ├── TourCylinderHotspot.js │ │ │ ├── TourHotspot.js │ │ │ ├── TourInfoButton.react.js │ │ │ ├── TourLoadingSpinner.react.js │ │ │ ├── TourNavButton.react.js │ │ │ └── TourTooltip.react.js │ │ └── customViews/ │ │ └── WorkInProgressSurface.js │ └── static_assets/ │ ├── License.html │ ├── Three-Cocktails.webm │ └── tourOfTheChester.json ├── addons/ │ ├── react-360-cli/ │ │ ├── LICENSE │ │ ├── PATENTS │ │ ├── README.md │ │ ├── generators/ │ │ │ ├── __tests__/ │ │ │ │ └── index-test.generator.js │ │ │ ├── babelrc.generator.js │ │ │ ├── client.generator.js │ │ │ ├── flowconfig.generator.js │ │ │ ├── gitignore.generator.js │ │ │ ├── index.generator.js │ │ │ ├── index.html.generator.js │ │ │ ├── package.json.generator.js │ │ │ ├── rn-cli.config.generator.js │ │ │ └── watchmanconfig.generator.js │ │ ├── index.js │ │ ├── package.json │ │ └── src/ │ │ ├── copyAssets.js │ │ ├── copyFile.js │ │ ├── createFile.js │ │ ├── ensureDir.js │ │ ├── generateFiles.js │ │ ├── getLatestVersion.js │ │ ├── getPackager.js │ │ ├── isDirectory.js │ │ ├── listGenerators.js │ │ └── makeModulePath.js │ └── react-360-common-ui/ │ ├── LICENSE │ ├── PATENTS │ ├── README.md │ ├── index.js │ ├── package.json │ └── src/ │ ├── VideoControl.react.js │ └── VideoPlayer.react.js ├── babel.config.js ├── defs/ │ ├── chalk.js │ ├── react-360-runtime.js │ ├── react-360.js │ ├── three-gltf2-loader.js │ ├── three.js │ └── webvr.js ├── docs/ │ ├── animated.md │ ├── async-storage.md │ ├── audio.md │ ├── controller-info.md │ ├── entity.md │ ├── environment.md │ ├── example-basicapptemplate.md │ ├── example-customplayer.md │ ├── example-mediaapptemplate.md │ ├── example-multisurface.md │ ├── example-native-modules.md │ ├── example-slideshow.md │ ├── explore-code.md │ ├── from-react-vr.md │ ├── image.md │ ├── input-handling.md │ ├── integrate.md │ ├── layout.md │ ├── native-modules.md │ ├── objects.md │ ├── photos-and-videos.md │ ├── publish.md │ ├── runtime.md │ ├── setup.md │ ├── static-assets.md │ ├── surfaces.md │ ├── view.md │ ├── vr-button.md │ └── what-is.md ├── jest.config.js ├── lerna.json ├── lib-assets/ │ └── VideoControlGlyphs.js ├── package.json ├── packages/ │ ├── .gitignore │ ├── README.md │ ├── animated-react-webgl/ │ │ ├── README.md │ │ ├── createAnimatedComponent.js │ │ ├── index.js │ │ └── package.json │ ├── react-360/ │ │ ├── index.js │ │ ├── package.json │ │ └── src/ │ │ ├── Container.js │ │ ├── Glyphs.js │ │ ├── Overlay.js │ │ ├── React360.js │ │ ├── WebVRCameraController.js │ │ └── controller/ │ │ ├── ControllerModel.js │ │ ├── ControllerRaycaster.js │ │ ├── CursorModel.js │ │ ├── createControllerBeamProgram.js │ │ └── createCursorProgram.js │ ├── react-360-controls/ │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── src/ │ │ ├── Controls.js │ │ ├── ControlsTypes.js │ │ ├── DeviceOrientationCameraController.js │ │ ├── MousePanCameraController.js │ │ ├── MouseRaycaster.js │ │ ├── R360Controls.js │ │ ├── ScrollPanCameraController.js │ │ └── TouchRaycaster.js │ ├── react-360-native-compat/ │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── src/ │ │ ├── NativeCompat.js │ │ ├── components/ │ │ │ └── VrButton.js │ │ ├── modules/ │ │ │ ├── AsyncLocalStorage.js │ │ │ ├── AudioModule.js │ │ │ ├── ControllerInfo.js │ │ │ ├── DeviceEventEmitter.js │ │ │ ├── EnvironmentModule.js │ │ │ ├── NativeModules.js │ │ │ └── VideoModule.js │ │ └── utilities/ │ │ ├── AsyncStorage.js │ │ ├── ControllerInfo.js │ │ └── Environment.js │ ├── react-360-surfaces/ │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── src/ │ │ ├── Environment.js │ │ ├── R360Surfaces.js │ │ ├── RingGeometry.js │ │ ├── Surface.js │ │ ├── computeCylinderIntersection.js │ │ ├── computeFlatIntersection.js │ │ ├── createEnvironmentCubemapProgram.js │ │ ├── createEnvironmentSphereProgram.js │ │ ├── createSurfaceProgram.js │ │ ├── generateCylinderSurface.js │ │ ├── generateEnvironmentSphere.js │ │ └── generateFlatSurface.js │ ├── react-webgl/ │ │ ├── LICENSE │ │ ├── PATENTS │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── src/ │ │ ├── CanvasRoot.js │ │ ├── Elements.js │ │ ├── GLRoot.js │ │ ├── HostConfig.js │ │ ├── Pressable.react.js │ │ ├── Primitives.js │ │ ├── ReactWGL.js │ │ ├── RenderTargetRoot.js │ │ ├── StyleSheet/ │ │ │ ├── StyleSheet.js │ │ │ ├── __tests__/ │ │ │ │ ├── areStylePropsEqual-test.js │ │ │ │ └── flattenStyle-test.js │ │ │ ├── areStylePropsEqual.js │ │ │ └── flattenStyle.js │ │ ├── Video.react.js │ │ └── applyProps.js │ ├── react-webgl-video-manager/ │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── PATENTS │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── src/ │ │ ├── RWGLVideo.js │ │ ├── VideoManager.js │ │ ├── VideoPlayer.js │ │ ├── VideoTypes.js │ │ ├── getExtension.js │ │ └── implementations/ │ │ └── BrowserVideoImplementation.js │ ├── ref-count-cache/ │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── PATENTS │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── src/ │ │ ├── RefCountCache.js │ │ └── __tests__/ │ │ └── RefCountCache-test.js │ ├── transition-value/ │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── src/ │ │ ├── Entry.js │ │ ├── TimingFunctions.js │ │ ├── Transition.js │ │ └── TransitionValue.js │ ├── vr-audio/ │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── src/ │ │ ├── AudioInstance.js │ │ ├── AudioManager.js │ │ ├── AudioMath.js │ │ ├── AudioNode.js │ │ ├── AudioTypes.js │ │ └── VRAudio.js │ ├── vr-input-source/ │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── src/ │ │ ├── GamepadState.js │ │ ├── InputEventTypes.js │ │ ├── VRInputSource.js │ │ ├── WellKnownGamepads.js │ │ ├── detectPrimaryButtons.js │ │ └── emulatePosition.js │ ├── vr-state/ │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── PATENTS │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── src/ │ │ └── VRState.js │ ├── webgl-lite/ │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── src/ │ │ ├── CubemapTexture.js │ │ ├── FrameBuffer.js │ │ ├── Geometry.js │ │ ├── IndexBuffer.js │ │ ├── Node.js │ │ ├── Program.js │ │ ├── ProgramManager.js │ │ ├── RenderGroup.js │ │ ├── Texture.js │ │ ├── VertexBuffer.js │ │ ├── WebGL.js │ │ ├── __tests__/ │ │ │ ├── Program-test.js │ │ │ └── ProgramManager-test.js │ │ ├── createUniformSetter.js │ │ ├── defaultValueForUniform.js │ │ └── getAttributeSizeAndType.js │ ├── webgl-lite-gltf/ │ │ ├── index.js │ │ ├── package.json │ │ └── src/ │ │ ├── BufferSource.js │ │ ├── FileTypes.js │ │ ├── GLTF.js │ │ ├── GLTFShaderAttributes.js │ │ ├── GLTFStructure.js │ │ ├── base64ToArrayBuffer.js │ │ ├── compareByteOffset.js │ │ ├── createDataView.js │ │ └── createGLTFProgram.js │ ├── webgl-ui/ │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── PATENTS │ │ ├── README.md │ │ ├── examples/ │ │ │ └── boilerplate/ │ │ │ └── index.js │ │ ├── index.js │ │ ├── package.json │ │ └── src/ │ │ ├── GLUI.js │ │ ├── Math.js │ │ ├── StackingContext.js │ │ ├── Surface.js │ │ ├── TextureManager.js │ │ ├── __tests__/ │ │ │ ├── StackingContext-test.js │ │ │ └── colorStringToARGB-test.js │ │ ├── colorStringToARGB.js │ │ ├── primitives/ │ │ │ ├── GLTexturedView.js │ │ │ ├── GLView.js │ │ │ └── SDFRectangle.js │ │ ├── recursiveLayout.js │ │ ├── setStyle.js │ │ ├── text/ │ │ │ ├── BreakIterator.js │ │ │ ├── FontGeometry.js │ │ │ ├── TextTypes.js │ │ │ ├── __tests__/ │ │ │ │ ├── BreakIterator-test.js │ │ │ │ └── wrapText-test.js │ │ │ └── wrapText.js │ │ ├── vendor/ │ │ │ └── Yoga.bundle.js │ │ └── views/ │ │ ├── Image.js │ │ ├── RawText.js │ │ ├── ShadowView.js │ │ ├── ShadowViewWebGL.js │ │ ├── SurfaceView.js │ │ ├── Text.js │ │ ├── View.js │ │ └── __tests__/ │ │ └── ShadowView-test.js │ ├── webgl-ui-sdf-font/ │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── src/ │ │ ├── SDF.js │ │ ├── SDFDefaultFont.js │ │ ├── SDFFontGeometry.js │ │ ├── SDFTextImplementation.js │ │ └── SDFTextShaders.js │ └── webgl-ui-system-font/ │ ├── .gitignore │ ├── README.md │ ├── index.js │ ├── package.json │ └── src/ │ ├── Atlas.js │ ├── AtlasNode.js │ ├── FontImplementation.js │ ├── FontMeasure.js │ ├── SysFont.js │ └── __tests__/ │ └── AtlasNode-test.js ├── render-tests/ │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── runner-styles.css │ ├── runner.html │ ├── scripts/ │ │ └── test.js │ ├── test-utils/ │ │ ├── assertColorEqual.js │ │ └── getPixelData.js │ ├── tests/ │ │ ├── render-tests.js │ │ ├── test-basicgl.js │ │ ├── test-geometry.js │ │ ├── test-views.js │ │ └── tests.js │ └── webpack.config.js ├── scripts/ │ ├── build-packages.js │ ├── bump-versions.js │ ├── bundle.js │ ├── install-bridge.js │ ├── install-deps.js │ ├── packager.js │ └── project-paths.js ├── tools/ │ └── equirect2cubemap/ │ ├── .gitignore │ ├── CMakeLists.txt │ ├── README.md │ ├── eq2cm.cpp │ ├── stb_image.h │ └── stb_image_write.h └── website/ ├── blog/ │ └── 2018-05-02-blog-post.md ├── core/ │ └── Footer.js ├── i18n/ │ └── en.json ├── package.json ├── pages/ │ └── en/ │ ├── help.js │ ├── index.js │ └── users.js ├── sidebars.json ├── siteConfig.js └── static/ ├── css/ │ └── custom.css └── sample/ ├── client.bundle.js ├── index.bundle.js └── index.html