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