![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
@interface-technologies/expo-pixi
Advanced tools
Tools to use Pixi.js in Expo!
To get started: yarn add expo-pixi
in your Expo project and import it with
import ExpoPixi from 'expo-pixi';
.
To use Pixi.js with Expo & React Native you will want to import a modified version of Pixi.js like so:
// ✅
import { PIXI } from 'expo-pixi';
// ❌
import * as PIXI from 'pixi.js';
Now you can create a new Application the way you would on the web, but be sure to pass in a WebGLRenderingContext
.
// ✅
const app = new PIXI.Application({ context });
// ❌
const app = ExpoPIXI.application({ context });
Finally, because of the way React Native currently works you must load in assets asynchronously.
/*
* Accepts:
* - Expo.Asset: import { Asset } from 'expo-asset'; Asset.fromModule( ... );
* - URL (with file extension): 'http://i.imgur.com/uwrbErh.png'
* - Static Resource: require('./icon.png')
*/
// ✅
const sprite = await PIXI.Sprite.fromExpoAsync('http://i.imgur.com/uwrbErh.png');
// OR
const texture = await PIXI.Texture.fromExpoAsync('http://i.imgur.com/uwrbErh.png');
// ❌
const sprite = await ExpoPIXI.spriteAsync('http://i.imgur.com/uwrbErh.png');
// OR
const texture = await ExpoPIXI.textureAsync('http://i.imgur.com/uwrbErh.png');
Using web syntax will return a Promise
, and throw a warning. It's bad practice, but if the asset is loaded already, this will work without throwing a warning.
const sprite = await PIXI.Sprite.from(require('./icon.png'));
// > console.warning(PIXI.Sprite.from(asset: ${typeof asset}) is not supported. Returning a Promise!);
// OR
const texture = await PIXI.Texture.from(require('./icon.png'));
// > console.warning(PIXI.Texture.from(asset: ${typeof asset}) is not supported. Returning a Promise!);
ExpoPixi.application(props): PIXI.Application
Deprecated: Use
new PIXI.Application({ context });
A helper function to create a PIXI.Application
from a WebGL context.
EXGL knows to end a frame when the function: endFrameEXP
is called on the GL context.
context
is the only required prop.
Learn more about PIXI.Application props
ExpoPixi.textureAsync(resource: any): Promise
Deprecated: Use
PIXI.Texture.fromExpoAsync(resource);
ExpoPixi.spriteAsync(resource: any): Promise
Deprecated: Use
PIXI.Sprite.fromExpoAsync(resource);
a helper function to resolve the asset passed in.
textureAsync
accepts:
CameraRoll
) | ex: "asset-library://some/path/image.png"You cannot send in relative string paths as Metro Bundler looks for static resources.
ExpoPixi.sprite({ localUri: string, width: number, height: number }): PIXI.Sprite
Deprecated: Use
PIXI.Sprite.from(resource);
ExpoPixi.texture({ localUri: string, width: number, height: number }): PIXI.Texture
Deprecated: Use
PIXI.Texture.from(resource);
Pixi.js does a type check so we wrap our asset in a HTMLImageElement
shim.
ExpoPixi.Sketch
A component used for drawing smooth signatures and sketches.
See the sketch example on how to save the images!
Notice: the edges and ends are not rounded as this is not supported in PIXI yet: Issue
Property | Type | Default | Description |
---|---|---|---|
strokeColor | number | 0x000000 | Color of the lines |
strokeWidth | number | 10 | Weight of the lines |
strokeAlpha | number | 1 | Opacity of the lines |
onChange | () => PIXI.Renderer | null | Invoked whenever a user is done drawing a line |
onReady | () => WebGLRenderingContext | null | Invoked when the GL context is ready to be used |
ExpoPixi.FilterImage
A Image component that uses PIXI.Filter
Property | Type | Default | Description |
---|---|---|---|
resizeMode | string | null | Currently only supports cover , and contain |
filters | Array<PIXI.Filter> | null | Array of filters to apply to the image |
source | number, string, Expo.Asset | null | Source can be a static resource, image url (not {uri} ), or an Expo.Asset |
import React from 'react';
import Expo from 'expo';
import { PIXI } from 'expo-pixi';
export default () => (
<Expo.GLView
style={{ flex: 1 }}
onContextCreate={async context => {
const app = new PIXI.Application({ context });
const sprite = await PIXI.Sprite.fromExpoAsync(
'http://i.imgur.com/uwrbErh.png',
);
app.stage.addChild(sprite);
}}
/>
);
FAQs
Tools for using pixi in Expo
We found that @interface-technologies/expo-pixi demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.