import {SCALE_MODES} from '@pixi/constants'; import {BaseTexture} from '@pixi/core'; import {createElement, useContext} from 'react'; import {RESOLUTION} from '@/constants.js'; import AssetsContext from '@/context/assets.js'; import ClientContext from '@/context/client.js'; import DebugContext from '@/context/debug.js'; import EcsContext from '@/context/ecs.js'; import MainEntityContext from '@/context/main-entity.js'; import RadiansContext from '@/context/radians.js'; import Ecs from './ecs.jsx'; import styles from './pixi.module.css'; import PixiStage from './stage.jsx'; BaseTexture.defaultOptions.scaleMode = SCALE_MODES.NEAREST; const Contexts = [ AssetsContext, ClientContext, DebugContext, EcsContext, MainEntityContext, RadiansContext, ]; const ContextBridge = ({children, render}) => { const contexts = Contexts.map(useContext); return render( <> { Contexts.reduce( (children, Context, i) => ([ createElement(Context.Provider, {value: contexts[i], key: Context}, children) ]), children, ) } ); }; export const Stage = ({children, ...props}) => { return ( {children}} > {children} ); }; export default function Pixi({applyFilters, camera, monopolizers, scale}) { return ( ); }