import {SCALE_MODES} from '@pixi/constants'; import {BaseTexture, extensions} from '@pixi/core'; import {Stage as PixiStage} from '@pixi/react'; import {createElement, useContext} from 'react'; import AssetsContext from '@/react/context/assets.js'; import ClientContext from '@/react/context/client.js'; import DebugContext from '@/react/context/debug.js'; import EcsContext from '@/react/context/ecs.js'; import MainEntityContext from '@/react/context/main-entity.js'; import RadiansContext from '@/react/context/radians.js'; import {RESOLUTION} from '@/util/constants.js'; import Ecs from './ecs.jsx'; import {ApplicationStageLayers, ApplicationStageLights} from './extensions.js'; import styles from './pixi.module.css'; BaseTexture.defaultOptions.scaleMode = SCALE_MODES.NEAREST; extensions.add( ApplicationStageLayers, ApplicationStageLights, ); 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 ( ); }