CommunityCodierung & Entwicklunggithub.com

pixijs/pixijs-environments

Verwenden Sie diese Skill, wenn PixiJS v8 außerhalb eines Standardbrowsers ausgeführt wird: Web Worker, OffscreenCanvas, Node/SSR oder CSP-eingeschränkte Kontexte. Deckt DOMAdapter.set, BrowserAdapter, WebWorkerAdapter, benutzerdefinierte Adapter-Schnittstelle, pixi.js/unsafe-eval für striktes CSP ab.

Was ist pixijs-environments?

Diese Skill ermöglicht es, PixiJS v8 in nicht-standardmäßigen Browserumgebungen zu betreiben, wie z.B. Web Workern, OffscreenCanvas, Node.js/Server-Side Rendering (SSR) oder unter strengen Content Security Policy (CSP)-Richtlinien. Sie bietet eine abstrakte Adapter-Schnittstelle, die es erlaubt, die DOM-Interaktionen von PixiJS an verschiedene Laufzeitumgebungen anzupassen. Mit `DOMAdapter.set()` kann der Standard-Browseradapter durch spezialisierte Adapter wie `BrowserAdapter` für reguläre Browser, `WebWorkerAdapter` für Web Worker oder benutzerdefinierte Implementierungen ersetzt werden. Für CSP-restriktive Umgebungen wird der Importpfad `pixi.js/unsafe-eval` bereitgestellt, der die Nutzung von `eval()` vermeidet und so die Einhaltung strenger CSP-Regeln ermöglicht. Die Skill behandelt die zentralen Konzepte, Adapter und Konfigurationen, die für einen reibungslosen Betrieb in diesen speziellen Kontexten notwendig sind, und löst bei relevanten Schlüsselwörtern aus, um Entwicklern schnell die richtigen Informationen zu liefern. Plattformunabhängig konzipiert, ist sie besonders nützlich für Entwickler, die PixiJS in Web Workern für Hintergrundrendering, in Node.js für serverseitige Bildgenerierung oder unter strengen Sicherheitsrichtlinien einsetzen möchten.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/pixijs/pixijs-skills/tree/main/skills/pixijs-environments

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht pixijs-environments?

Verwenden Sie diese Skill, wenn PixiJS v8 außerhalb eines Standardbrowsers ausgeführt wird: Web Worker, OffscreenCanvas, Node/SSR oder CSP-eingeschränkte Kontexte. Deckt DOMAdapter.set, BrowserAdapter, WebWorkerAdapter, benutzerdefinierte Adapter-Schnittstelle, pixi.js/unsafe-eval für striktes CSP ab. Auslöser: DOMAdapter, BrowserAdapter, WebWorkerAdapter, Web Worker, OffscreenCanvas, Node, headless, SSR, CSP, unsafe-eval, Adapter.

Übersicht

PixiJS v8 bietet eine flexible Architektur, die es ermöglicht, in verschiedenen Umgebungen zu laufen. Der Kernmechanismus dafür ist der DOMAdapter, eine abstrakte Schnittstelle, die die DOM-Interaktionen kapselt. Standardmäßig wird der BrowserAdapter verwendet, der für die Arbeit in einem normalen Browser optimiert ist. Für andere Umgebungen können Sie spezialisierte Adapter oder eigene Implementierungen verwenden.

Hauptkonzepte

DOMAdapter

Die Klasse DOMAdapter ist der zentrale Einstiegspunkt. Sie wird verwendet, um den aktiven Adapter zu setzen und auf ihn zuzugreifen.

import { DOMAdapter } from 'pixi.js';

// Aktuellen Adapter abrufen
const adapter = DOMAdapter.instance;

// Adapter setzen
DOMAdapter.instance = new MyCustomAdapter();

Verfügbare Adapter

AdapterVerwendung
BrowserAdapterStandardbrowser, Standardkonfiguration
WebWorkerAdapterWeb Worker und OffscreenCanvas
BenutzerdefiniertEigene Implementierung für Node.js, SSR oder andere Umgebungen

BrowserAdapter

Der BrowserAdapter ist der Standardadapter. Er wird automatisch verwendet, wenn PixiJS in einem Browser geladen wird.

import { BrowserAdapter } from 'pixi.js';

WebWorkerAdapter

Der WebWorkerAdapter ist für die Verwendung in Web Workern und mit OffscreenCanvas optimiert. Er bietet eine schlanke Implementierung, die ohne vollständiges DOM auskommt.

import { WebWorkerAdapter } from 'pixi.js';
import { DOMAdapter } from 'pixi.js';

// Adapter für Web Worker setzen
DOMAdapter.set(WebWorkerAdapter);

Benutzerdefinierte Adapter (Custom Adapter Interface)

Sie können Ihre eigenen Adapter implementieren, indem Sie die Adapter-Schnittstelle erfüllen. Dies ist nützlich für Umgebungen wie Node.js oder serverseitiges Rendering (SSR).

import { DOMAdapter, type Adapter } from 'pixi.js';

class NodeAdapter implements Adapter {
  // Implementieren Sie die erforderlichen Methoden
  createCanvas(width?: number, height?: number): HTMLCanvasElement {
    // Node.js-spezifische Canvas-Erstellung
  }
  getCanvasRenderingContext2D(): typeof CanvasRenderingContext2D {
    // ...
  }
  getWebGLRenderingContext(): typeof WebGLRenderingContext {
    // ...
  }
  getNavigator(): Navigator {
    // ...
  }
  getBaseUrl(): string {
    // ...
  }
  getFontFaceSet(): FontFaceSet | null {
    // ...
  }
  fetch(url: RequestInfo, options?: RequestInit): Promise<Response> {
    // ...
  }
}

// Benutzerdefinierten Adapter setzen
DOMAdapter.set(new NodeAdapter());

CSP (Content Security Policy) & unsafe-eval

Wenn Ihre Anwendung eine strenge Content Security Policy (CSP) verwendet, die die Verwendung von eval() verbietet, benötigen Sie den speziellen Importpfad pixi.js/unsafe-eval. Dieser Pfad exportiert eine Version von PixiJS, die keine eval()-Aufrufe enthält.

// Statt:
// import * as PIXI from 'pixi.js';

// Verwenden Sie:
import * as PIXI from 'pixi.js/unsafe-eval';

// Jetzt können Sie PixiJS normal verwenden, ohne CSP-Verstöße zu riskieren
const app = new PIXI.Application();

Verwendung in spezifischen Umgebungen

Web Worker / OffscreenCanvas

// worker.ts
import { WebWorkerAdapter } from 'pixi.js';
import { DOMAdapter } from 'pixi.js';

// Adapter setzen
DOMAdapter.set(WebWorkerAdapter);

// PixiJS-Anwendung im Worker starten
import { Application } from 'pixi.js';

const app = new Application();
// ...

Node.js / SSR (Server-Side Rendering)

Für Node.js oder SSR benötigen Sie einen benutzerdefinierten Adapter oder ein Paket wie pixi.js-node (falls verfügbar). Die Grundstruktur bleibt gleich:

import { DOMAdapter } from 'pixi.js';

// Benutzerdefinierten Node-Adapter setzen
DOMAdapter.set(new MyNodeAdapter());

// PixiJS normal verwenden
import { Application } from 'pixi.js';

Zusammenfassung

  • DOMAdapter.set() ist der zentrale Mechanismus zum Wechseln der Umgebung.
  • Verwenden Sie BrowserAdapter für Standardbrowser (Standard).
  • Verwenden Sie WebWorkerAdapter für Web Worker/OffscreenCanvas.
  • Implementieren Sie die Adapter-Schnittstelle für Node.js, SSR oder andere benutzerdefinierte Umgebungen.
  • Verwenden Sie pixi.js/unsafe-eval für strenge CSP-Umgebungen.
  • Importieren Sie immer den richtigen Adapter vor dem Erstellen von PixiJS-Instanzen.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

pixijs/pixijs

Use this skill first for ANY PixiJS v8 task; it routes to the right specialized skill for the job. Covers the full PixiJS surface: Application setup, the scene graph (Container, Sprite, Graphics, Text, Mesh, ParticleContainer, DOMContainer, GifSprite), rendering (WebGL/WebGPU/Canvas, render loop, custom shaders, filters, blend modes), assets, events, color, math, ticker, accessibility, performance, environments, migration from v7, and project scaffolding. Triggers on: pixi, pixi.js, pixijs, PixiJS, v8, Application, app.init, Sprite, Container, Graphics, Text, Mesh, ParticleContainer, DOMContainer, GifSprite, Assets, Ticker, renderer, WebGL, WebGPU, scene graph, filter, shader, blend mode, texture, BitmapText, create-pixi, how do I draw, how do I render, how do I animate in pixi.

pixijs/pixijs-accessibility

Use this skill when adding screen reader and keyboard navigation to PixiJS v8 apps. Covers AccessibilitySystem options (enabledByDefault, debug, activateOnTab, deactivateOnMouseMove), per-container accessibility properties, shadow DOM overlay, mobile touch-hook activation. Triggers on: accessibility, a11y, screen reader, ARIA, keyboard navigation, tab order, AccessibilitySystem, accessibleTitle, accessibleHint, tabIndex, accessibleChildren.

pixijs/pixijs-application

Use this skill when creating and configuring a PixiJS v8 Application. Covers new Application() + async app.init() options (width, height, background, antialias, resolution, autoDensity, preference, resizeTo, autoStart, sharedTicker, canvas, useBackBuffer, powerPreference, eventFeatures, accessibilityOptions, gcActive, bezierSmoothness, webgl/webgpu/canvasOptions per-renderer overrides), app.stage/renderer/canvas/screen/domContainerRoot access, ResizePlugin, TickerPlugin, CullerPlugin (cullable, cullArea), custom ApplicationPlugin creation via ExtensionType.Application, start/stop lifecycle, and app.destroy() with releaseGlobalResources. Triggers on: Application, app.init, app.stage, app.renderer, app.canvas, app.screen, app.domContainerRoot, ApplicationOptions, ApplicationPlugin, ExtensionType.Application, resizeTo, preference, autoStart, sharedTicker, useBackBuffer, powerPreference, skipExtensionImports, preferWebGLVersion, preserveDrawingBuffer, cullable, CullerPlugin, app.start, app.stop, app.destroy, rele

pixijs/pixijs-assets

Use this skill when loading and managing resources in PixiJS v8. Covers Assets.init, Assets.load/add/unload, bundles, manifests, background loading, onProgress, caching, spritesheets, video textures, web fonts, bitmap fonts, animated GIFs, compressed textures, SVG as texture or Graphics, resolution detection, per-asset data options, and forcing a specific loader with the parser field (for extension-less URLs). Triggers on: Assets, Assets.load, Assets.init, loadBundle, manifest, backgroundLoad, Spritesheet, Cache, LoadOptions, unload, parser, loadParser, loadWebFont, loadBitmapFont, loadVideoTextures, GifSource, VideoSourceOptions.

pixijs/pixijs-blend-modes

Use this skill when compositing display objects with blend modes in PixiJS v8. Covers standard modes (normal, add, multiply, screen, erase, min, max), advanced modes via pixi.js/advanced-blend-modes (color-burn, overlay, hard-light, etc.), batch-friendly ordering. Triggers on: blendMode, additive, multiply, screen, overlay, color-burn, color-dodge, advanced-blend-modes, glow, erase.

pixijs/pixijs-color

Use this skill when creating, converting, or manipulating colors in PixiJS v8. Covers Color class input formats (hex, CSS names, RGB/HSL objects, arrays, Uint8Array), conversion methods (toHex, toNumber, toArray, toRgba), component access, setAlpha/multiply/premultiply, Color.shared singleton. Triggers on: Color, ColorSource, hex, rgb, hsl, tint, premultiply, Color.shared, color conversion.

pixijs/pixijs-core-concepts

Use this skill when understanding how PixiJS v8 renders frames: the systems-and-pipes renderer, the render loop, and how the library adapts to different environments. Covers WebGLRenderer/WebGPURenderer/CanvasRenderer selection, renderer.render() pipeline, environment detection, and pointers to per-topic deep dives. Triggers on: renderer, WebGL, WebGPU, Canvas, render loop, render pipeline, systems, environments, autoDetectRenderer.

pixijs/pixijs-create

Use this skill when scaffolding a new PixiJS v8 project with the create-pixi CLI or adding PixiJS to an existing project. Covers npm/yarn/pnpm/bun create commands, interactive vs non-interactive flows, bundler vs creation template categories, available template presets (bundler-vite, bundler-webpack, bundler-esbuild, bundler-import-map, creation-web, framework-react, extension-default), Node version requirements, `npm install pixi.js` for existing projects, post-scaffold dev flow, and the Vite top-level-await production-build gotcha. Triggers on: create pixi.js, npm create, npm install pixi.js, scaffold, template, bundler-vite, bundler-webpack, creation-web, framework-react, new project, existing project, getting started, quick start.

pixijs/pixijs-custom-rendering

Use this skill when writing custom shaders, uniforms, filters, or batchers in PixiJS v8. Covers Shader.from({gl, gpu, resources}), GlProgram/GpuProgram, UniformGroup with typed uniforms (f32, vec2, mat4x4), UBO mode, textures as resources, custom Filter via Filter.from, GLSL ES 3.0 conventions (in/out, finalColor, texture()), uBackTexture sampling, pixi.js/unsafe-eval for strict CSP, custom Batcher via extensions. Triggers on: Shader, GlProgram, GpuProgram, UniformGroup, Batcher, Filter, Filter.from, GLSL, WGSL, UBO, uniform, custom shader, finalColor, uBackTexture, blendRequired, unsafe-eval.

pixijs/pixijs-events

Use this skill when handling pointer, mouse, touch, or wheel input in PixiJS v8. Covers eventMode (none, passive, auto, static, dynamic), FederatedEvent types, propagation and capture phase, hitArea, interactiveChildren, cursor and cursorStyles, global move events for drag, eventFeatures config. Triggers on: eventMode, FederatedPointerEvent, pointerdown, click, tap, globalpointermove, drag, hitArea, cursor, stopPropagation.

pixijs/pixijs-filters

Use this skill when applying visual effects to PixiJS v8 containers via the filter pipeline. Covers built-in filters (AlphaFilter, BlurFilter, ColorMatrixFilter, DisplacementFilter, NoiseFilter), custom Filter.from() with GLSL/WGSL, options (resolution, padding, antialias, blendRequired), filterArea optimization, pixi-filters community package. Triggers on: filters, BlurFilter, ColorMatrixFilter, DisplacementFilter, NoiseFilter, Filter.from, GLSL filter, pixi-filters, filterArea.

pixijs/pixijs-math

Use this skill when working with coordinates, vectors, matrices, shapes, hit testing, or layout rectangles in PixiJS v8. Covers Point/ObservablePoint, Matrix (2D affine, decompose, apply, applyInverse), shapes (Rectangle, Circle, Ellipse, Polygon, RoundedRectangle, Triangle), Rectangle layout helpers (pad, fit, enlarge, ceil, scale, getBounds), strokeContains hit tests, Polygon isClockwise/containsPolygon, toGlobal/toLocal, PointData/PointLike/Size types, DEG_TO_RAD, and pixi.js/math-extras vector and intersection helpers. Triggers on: Point, ObservablePoint, Matrix, Rectangle, Circle, Polygon, Triangle, RoundedRectangle, toGlobal, toLocal, hitArea, strokeContains, pad, fit, enlarge, ceil, getBounds, containsRect, intersects, isClockwise, math-extras, lineIntersection, segmentIntersection, DEG_TO_RAD, PointData.

pixijs/pixijs-migration-v8

Use this skill when upgrading to PixiJS v8 from v7 or diagnosing broken v7 code after an upgrade. Covers async app.init, single pixi.js package (deprecated @pixi/* sub-packages), Graphics shape-then-fill, BaseTexture → TextureSource, shader/uniform rework, ParticleContainer+Particle, constructor options objects, DisplayObject removal, settings/utils removal, Ticker signature, events rewrite. Triggers on: migrate v7, v8 breaking changes, @pixi/ import, DisplayObject, beginFill, endFill, cacheAsBitmap, BaseTexture, deprecated.

pixijs/pixijs-performance

Use this skill when profiling or optimizing a PixiJS v8 app for FPS, draw calls, or GPU memory. Covers destroy patterns (cacheAsTexture(false), releaseGlobalResources), GCSystem and TextureGCSystem, PrepareSystem, object pooling, batching rules, BitmapText for dynamic text, culling (Culler, CullerPlugin, cullable, cullArea), resolution/antialias tradeoffs. Triggers on: FPS, jank, draw calls, batching, object pool, GCSystem, PrepareSystem, Culler, cacheAsTexture, memory leak, destroy patterns.

pixijs/pixijs-scene-container

Use this skill when grouping, positioning, or transforming display objects in PixiJS v8. Covers Container constructor options (isRenderGroup, sortableChildren, boundsArea), addChild/removeChild/addChildAt/swapChildren/setChildIndex, position/scale/rotation/pivot/skew/alpha/tint, getBounds/getGlobalPosition/toLocal/toGlobal, zIndex sorting, cullable, onRender per-frame callback, destroy. Triggers on: Container, addChild, removeChild, addChildAt, swapChildren, sortableChildren, zIndex, position, scale, rotation, pivot, getBounds, toGlobal, toLocal, onRender, destroy, constructor options, ContainerOptions.

pixijs/pixijs-scene-core-concepts

Use this skill when reasoning about the PixiJS v8 scene graph as a whole: how containers, leaves, transforms, and render order fit together. Covers leaf vs container distinction, local/world coordinates, culling, render groups, sortable children, masking, RenderLayer, constructor options shared by every scene node, and which leaf skill covers which display object. Triggers on: scene graph, display list, Container, Sprite, Graphics, Text, Mesh, ParticleContainer, DOMContainer, GifSprite, masking, render group, RenderLayer, world transform, constructor options, ContainerOptions.

pixijs/pixijs-scene-dom-container

Use this skill when overlaying HTML elements on the PixiJS v8 canvas. Covers DOMContainer with element, anchor, and scene-graph-driven CSS transforms, the pixi.js/dom side-effect import, DOMPipe registration, visibility sync, pointer-events handling. Triggers on: DOMContainer, pixi.js/dom, DOMPipe, HTML overlay, input on canvas, iframe overlay, DOMContainerOptions, element, anchor, constructor options.

pixijs/pixijs-scene-gif

Use this skill when displaying animated GIFs in PixiJS v8. Covers the pixi.js/gif side-effect import, Assets.load returning a GifSource, GifSprite playback (play/stop/currentFrame/animationSpeed), autoPlay/loop options, onComplete/onLoop/onFrameChange callbacks, GifSource sharing, clone, destroy. Triggers on: GifSprite, GifSource, pixi.js/gif, animationSpeed, currentFrame, autoPlay, onComplete, onFrameChange, constructor options, GifSpriteOptions.

pixijs/pixijs-scene-graphics

Use this skill when drawing vector shapes and paths in PixiJS v8. Covers the Graphics API: shape-then-fill methods (rect/circle/ellipse/poly/roundRect/star/regularPoly/roundPoly/roundShape/filletRect/chamferRect), path methods (moveTo/lineTo/bezierCurveTo/quadraticCurveTo/arc/arcTo/arcToSvg/closePath), fill/stroke/cut, holes, FillGradient (linear/radial), FillPattern, GraphicsContext sharing, svg import/export, containsPoint hit testing, cloning, clearing, bounds, fillStyle/strokeStyle, draw-time transforms (rotateTransform/scaleTransform/translateTransform/setTransform/save/restore), default styles, GraphicsPath reuse. Triggers on: Graphics, GraphicsContext, rect, circle, poly, roundRect, fill, stroke, cut, hole, beginHole, FillGradient, FillPattern, moveTo, bezierCurveTo, svg, graphicsContextToSvg, svg export, GraphicsOptions, containsPoint, clone, clear, bounds, rotateTransform, translateTransform, setFillStyle, setStrokeStyle, GraphicsPath.

pixijs/pixijs-scene-mesh

Use this skill when rendering custom geometry in PixiJS v8. Covers Mesh with MeshGeometry (positions, uvs, indices, topology), MeshSimple for per-frame vertex animation, MeshPlane for subdivided deformation, MeshRope for path-following textures, PerspectiveMesh for 2.5D corners. Triggers on: Mesh, MeshGeometry, MeshSimple, MeshPlane, MeshRope, PerspectiveMesh, positions, uvs, indices, topology, setCorners, constructor options, MeshOptions, MeshPlaneOptions, MeshRopeOptions, SimpleMeshOptions, PerspectivePlaneOptions.

Verwandte Skills