Tools to help simplify and manage GL/AR state.
yarn add expo-graphics
Import the library into your JavaScript file:
import ExpoGraphics from 'expo-graphics';
A view that assists with common GL and AR tasks.
Property | Type | Default | Description |
---|---|---|---|
isArEnabled | ?boolean | null | Enables an ARKit context: iOS Only |
isArRunningStateEnabled | ?boolean | null | Adds a toggle for ARKit running state: iOS Only |
isArCameraStateEnabled | ?boolean | null | Renders information related to ARKit the tracking state: iOS Only |
arTrackingConfiguration | ?AR.TrackingConfiguration | null | Enables an ARKit context: iOS Only |
arRunningProps | ?object | {} | Props for optional ARRunningState: iOS Only |
arCameraProps | ?object | {} | Props for optional ARCameraState: iOS Only |
isShadowsEnabled | ?boolean | false | Overrides the render buffer allowing for shadows, this works by default on Android: iOS Only |
onRender | (delta: number) => void | null | Called every frame with delta time since the last frame |
onContextCreate | ({gl, canvas?, width, height, scale, arSession?}) => Promise | null | Called with the newly created GL context, and optional arSession |
onShouldReloadContext | () => boolean | null | A delegate function that requests permission to reload the GL context when the app returns to the foreground |
onResize | (layout: Layout) => void | null | Invoked when the view changes size, or the device orientation changes, returning the {x, y, width, height, scale} |
shouldIgnoreSafeGuards | ?boolean | null | This prevents the app from stopping when run in a simulator, or when AR is run in devices that don't support AR |
Information related to the AR camera's tracking state.
Property | Type | Default | Description |
---|---|---|---|
titleStyle | ?object | null | The style of the title Text |
subtitleStyle | ?object | null | The style of the subtitle Text |
trackingStateStyles | ?{[AR.TrackingState]: object} | null | The title text style used with each TrackingState |
[AR.TrackingStateReason.None] | {title:string, subtitle:string} | { title: 'Having trouble collecting data' } | Used when the AR camera isn't available |
[AR.TrackingStateReason.Initializing] | {title:string, subtitle:string} | { title: 'Initializing, subtitle: 'Move the camera around for better results' } | The camera is starting to collect data |
[AR.TrackingStateReason.ExcessiveMotion] | {title:string, subtitle:string} | { title: 'Excessive motion', subtitle: 'Try moving your camera slower' } | The device is moving too fast |
[AR.TrackingStateReason.InsufficientFeatures] | {title:string, subtitle:string} | {title: 'insufficient features', subtitle: 'Try moving your camera around more'} | The camera hasn't collected enough data |
[AR.TrackingStateReason.Relocalizing] | {title:string, subtitle:string} | { title: 'Having trouble collecting data' } | The camera is reseting |
A button used for toggling the AR state
Property | Type | Default | Description |
---|---|---|---|
onPress | ?Function | null | Called whenever the button is toggled. |