1import './BeforePIXI'; 2 3import { Asset } from 'expo-asset'; 4import { Platform } from 'expo-modules-core'; 5import * as PIXI from 'pixi.js'; 6import { Dimensions } from 'react-native'; 7 8import GLWrap from './GLWrap'; 9 10export default GLWrap('pixi.js sprite rendering', async (gl) => { 11 const { scale: resolution } = Dimensions.get('window'); 12 const width = gl.drawingBufferWidth / resolution; 13 const height = gl.drawingBufferHeight / resolution; 14 const app = new PIXI.Application({ 15 context: gl, 16 width, 17 height, 18 resolution, 19 backgroundColor: 0xffffff, 20 }); 21 app.ticker.add(() => gl.endFrameEXP()); 22 23 const asset = Asset.fromModule(require('../../../assets/images/nikki.png')); 24 await asset.downloadAsync(); 25 let image; 26 if (Platform.OS === 'web') { 27 image = new Image(); 28 image.src = asset.localUri!; 29 } else { 30 image = new Image(asset as any); 31 } 32 const sprite = PIXI.Sprite.from(image); 33 app.stage.addChild(sprite); 34}); 35