pixijs-application

Create PixiJS v8 Applications with async init, render-loop control, resizing, and destruction.

16|8|Updated May 20, 2020
One-click install
npx skills add https://github.com/encounterplus/web-client --skill pixijs-application-encounterplus
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: pixijs-application
Source: https://github.com/encounterplus/web-client/tree/main/.agents/skills/pixijs-application
Command: npx skills add https://github.com/encounterplus/web-client --skill pixijs-application-encounterplus

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

It solves the complexity and common failure points of creating a PixiJS v8 Application—where configuration must happen in the async init phase and teardown must release resources cleanly to avoid stale textures, flicker, and broken render state.

Core Features & Use Cases

  • Build the Application correctly in v8: use the no-argument constructor and pass all configuration to await app.init(...), including renderer preference, sizing, background, density/resolution, and canvas selection for both screen and offscreen use cases.
  • Control render behavior and performance: configure and use the built-in TickerPlugin (autoStart, sharedTicker, app.start()/app.stop()), handle resizing via ResizePlugin (resizeTo, app.resize(), app.queueResize()), and optionally enable CullerPlugin for screen-based container skipping.
  • Extend and manage the app lifecycle safely: create custom ApplicationPlugin extensions using ExtensionType.Application with static init/static destroy, and destroy the app with app.destroy(...) including releaseGlobalResources when recreating apps in the same tab.

Quick Start

Ask the AI to show how to create a PixiJS v8 Application, initialize it with resizeTo, background, and devicePixelRatio, append app.canvas to the DOM after await app.init, and then start rendering with the built-in ticker.

Frequently Asked Questions about pixijs-application

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I initialize a PixiJS v8 Application correctly with async init?

Initializing a PixiJS v8 Application requires using the no-argument constructor and passing all configuration to `await app.init(options)` to properly setup the renderer, canvas, and stage before appending the view to the DOM.

Why does my PixiJS application leak textures when recreating it in the same tab?

PixiJS applications leak textures when teardown skips resource release. Perform resource-safe teardown via `app.destroy(..., { releaseGlobalResources: true })` to clear stale textures and prevent broken render state.

How do I handle high-DPI screen resizing with PixiJS v8?

Handle high-DPI screen resizing in PixiJS v8 by configuring the ResizePlugin with `resizeTo`, using `app.resize()` or `app.queueResize()`, and passing `devicePixelRatio` during the async initialization phase.

Can I use WebGL and WebGPU renderers in a PixiJS v8 Application?

Yes, you can use WebGL and WebGPU renderers in a PixiJS v8 Application by defining the renderer preference during the async `app.init(options)` phase to ensure deterministic setup of the rendering backend.

How do I control the render loop and enable culling in PixiJS?

Control the render loop in PixiJS using the TickerPlugin with `autoStart`, `sharedTicker`, and `app.start()`/`app.stop()`, and enable screen-based container skipping by optionally registering the CullerPlugin during initialization.

How do I create custom lifecycle extensions for a PixiJS Application?

Create custom lifecycle extensions for a PixiJS Application by building ApplicationPlugin extensions using `ExtensionType.Application` with `static init` and `static destroy` methods, allowing plugin-based lifecycle management safely.