Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Mar 8, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
pixi.js (source) ^7.0.0 -> ^7.0.0 || ^8.0.0 age adoption passing confidence
pixi.js (source) ^7.4.0 -> ^8.0.0 age adoption passing confidence

Release Notes

pixijs/pixijs (pixi.js)

v8.14.0

Compare Source

💾 Download

Installation:

npm install [email protected]

Development Build:

Production Build:

Documentation:

Changed

🎁 Added
  • feat: add asset loading strategies by @​Zyie in #​11693
    • Three new loading strategies have been introduced: throw, skip, and retry
      • throw: The default strategy and matches the behavior of previous versions. With this strategy enabled any asset that fails to load will throw an error and the promise will reject.
      • skip: If any asset fails to load not error is thrown and the loader continues to load other assets
      • retry: Allow for multiple attempts at loading an asset before an error is thrown. The number of attempts and the delay between attempts are configurable
    const options: LoadOptions = {
      strategy: 'retry',
      retryCount: 5, // Retry up to 5 times
    };
    await Assets.load('unstable-asset.png', options);
    await Assets.init({
        basePath,
        loadOptions: { strategy: 'skip', onError: (error, asset) => console.log(error, asset.url) },
    });
    
    Assets.addBundle('testBundle', [
        { alias: 'bunny', src: 'textures/bunny_no_img.png' },
        { alias: 'bunny2', src: 'textures/bunny.png' },
    ]);
    
    // only bunny2 is defined and did not throw an error
    const assets = await Assets.loadBundle('testBundle');
  • feat: Adds progress size to asset loading by @​Zyie in #​11699
    • You can provide progressSize when loading assets to get a more accurate loading percentage. If no size is provide the default value is 1.
    const assets = [
        {
            src: [
                {
                    src: 'textures/texture.webp',
                    progressSize: 900,
                },
            ],
            alias: ['bunny-array', 'bunny-array2'],
        },
        {
            src: 'textures/bunny.png',
            progressSize: 100,
        }
    ];
    const res = await Assets.load(assets, progressMock);
  • feat: added rotate to Point math-extras by @​unstoppablecarl in #​11704
      // Basic point rotation
      const point = new Point(10, 20);
      const degrees = 45
      const radians = degrees * (Math.PI / 180)
      const result = point.rotate(radians);
      console.log(result); // {x: -7.071067811865474, y: 21.213203435596427}
    
      // Using output point for efficiency
      const output = new Point(10, 20);
      point.rotate(90 * (Math.PI / 180), output);
      console.log(result); // {x: -7.071067811865474, y: 21.213203435596427}
  • feat: add change guards to TextStyle setters to prevent redundant updates by @​mayakwd in #​11677
🐛 Fixed
🧹 Chores

New Contributors

v8.13.2

Compare Source

💾 Download

Installation:

npm install [email protected]

Development Build:

Production Build:

Documentation:

Changed

🐛 Fixed

v8.13.1

Compare Source

💾 Download

Installation:

npm install [email protected]

Development Build:

Production Build:

Documentation:

Changed

🐛 Fixed

New Contributors

v8.13.0

Compare Source

💾 Download

Installation:

npm install [email protected]

Development Build:

Production Build:

Documentation:

Changed

🎁 Added
  • feat: support svg fill rule subpath rendering by @​creativoma in #​11604
  • feat: simplified caching for text by @​Zyie in #​11505
    • Text that shares the same TextStyle will now share the same texture
    const textStyle = new PIXI.TextStyle({ fontSize: 24, fontFamily: "Verdana", fill: 0xffffff });
    const COUNT = 25000; 
    
    for (let i = 0; i < COUNT; i++) {
        const bunny = new Text({ text: 'hello', style: textStyle });
    
        bunny.x = (i % 100) * 105;
        bunny.y = Math.floor(i / 100) * 25;
        container.addChild(bunny);
    }
  • feat: add LRU cache for text measuring by @​Zyie in #​11644
  • feat: suppression and colorization options for deprecation message by @​mayakwd in #​11617
    import { deprecation } from 'pixi.js';
    // Supresses deprecation warnings
    deprecation.quiet = true;
    // Removes color formatting from deprecation messages
    deprecation.noColor = true;
🐛 Fixed
🧹 Chores

New Contributors

Full Changelog: pixijs/pixijs@v8.12.0...v8.13.0

v8.12.0

Compare Source

💾 Download

Installation:

npm install [email protected]

Development Build:

Production Build:

Documentation:

Changed

🚨 Behavior Change 🚨
  • lineHeight is now correctly calculated for BitmapText. This change may result in some text elements changing position slightly. See #​11531.
🎁 Added
  • feat: support scaleMode for cacheAsTexture options by @​mayakwd in #​11578
    container.cacheAsTexture({
      scaleMode: 'nearest',
    });
  • feat: Adds max anisotropy passthrough property by @​Zyie in #​11588
    texture.source.maxAnisotropy = 16;
  • feat: use DomAdapter for new Image by @​Zyie in #​11565
    const image = DomAdapter.get().createImage();
    image.src = 'path/to/image.svg';
  • feat: allow sharing device and adaptor with other engine by @​littleboarx in #​11435
    const adapter = await navigator.gpu.requestAdapter();
    const device = await adapter.requestDevice();
    
    const app = new Application();
    await app.init({ gpu: { adapter, device } });
  • feat: Refactors asset parser configuration by @​Zyie in #​11557
    // Old way
    await Assets.load({ src: 'path/to/asset', data: { loadParser: 'loadJson' } });
    // New way
    await Assets.load({ src: 'path/to/asset', data: { parser: 'json' } });
    
    // Name changes
    // 'loadJson' -> 'json'
    // 'loadSvg' -> 'svg'
    // 'loadTxt' -> 'text'
    // 'loadVideo' -> 'video'
    // 'loadWebFont' -> 'web-font'
    // 'loadBitmapFont' -> 'bitmap-font'
    // 'spritesheetLoader' -> 'spritesheet'
    // 'loadTextures' -> 'texture'
    // 'loadBasis' -> 'basis'
    // 'loadDds' -> 'dds'
    // 'loadKtx2' -> 'ktx2'
    // 'loadKtx' -> 'ktx'
  • feat: add WorkerManager.reset by @​Zyie in #​11562
    app.destroy(true, true); // Destroy the app
    WorkerManager.reset(); // Reset the worker pool
🐛 Fixed
🧹 Chores

New Contributors

v8.11.0

Compare Source

💾 Download

Installation:

npm install [email protected]

Development Build:

Production Build:

Documentation:

Changed
🚨 Behavior Change 🚨

In this release, we've corrected how textStyle.padding interacts with text positioning when anchor values are set. Previously, padding could incorrectly offset the position of text objects. With this fix, text objects now behave consistently but you may notice some text elements appear slightly repositioned as a result. This is expected and reflects the intended, more predictable layout.

🎁 Added
🐛 Fixed
🧹 Chores
New Contributors

v8.10.2

Compare Source

💾 Download

Installation:

npm install [email protected]

Development Build:

Production Build:

Documentation:

Changed
🐛 Fixed
🧹 Chores

v8.10.1

Compare Source

💾 Download

Installation:

npm install [email protected]

Development Build:

Production Build:

Documentation:

Changed
🐛 Fixed

v8.10.0

Compare Source

💾 Download

Installation:

npm install [email protected]

Development Build:

Production Build:

Documentation:

Changed
🚨 Behavior Change 🚨

With this release we have fixed the ParticleContainer.removeParticles(startIndex, endIndex) logic to correctly set the endIndex to this.particleChildren.length by default. This now matches the behavior of container.removeChildren()

🎁 Added
  • feat: support trimmed text by @​GoodBoyDigital in #​11456
    • Text can now be trimmed!
    const text2 = new Text({
        text: 'TRIM',
        style: {
            trim: true, // New API
        },
    }); 
    image
  • feat: textStyle filters by @​GoodBoyDigital in #​11282
    • Filters can now be baked into a Text on creation. When setting filters this way, the filter is actually baked into the texture at creation time, rather than having to be calculated at run time, eliminating the runtime cost.
    const blurFilter = new BlurFilter();
    
    const text = new Text({
        text: 'HI',
        style: {
            fontSize: 100,
            fill: 'white',
            filters: [blurFilter], // add some filters to the style
        }
    });
  • feat: support textureStyle options on text rendering by @​GoodBoyDigital in #​11403
    • Text, HTMLText, and BitmapText now all support customising how the texture is generated by passing in the textureStyle object
    const text = new Text({
        text: 'Hello Pixi!',
        style: {...},
        textureStyle: {
            scaleMode: 'nearest',
        }
    });
  • feat: spritesheet option cachePrefix by @​F-star in #​11237
  • feat: add a limits system to WebGL and WebGPU renderers by @​GoodBoyDigital in #​11417
  • feat: allow for autocomplete on cursor strings by @​Zyie in #​11438
  • feat: The build (ShapeBuilder) method should report its success by @​midiusRed in #​11283
  • feat: update Earcut to v3.0.0 by @​LukeAbby in #​11214
🐛 Fixed
🧹 Chores
New Contributors

v8.9.2

Compare Source

💾 Download

Installation:

npm install [email protected]

Development Build:

Production Build:

Documentation:

Changed
🐛 Fixed
New Contributors

v8.9.1

Compare Source

💾 Download

Development Build:

Production Build:

Documentation:

Changed
🐛 Fixed

v8.9.0

Compare Source

💾 Download

Development Build:

Production Build:

Documentation:

Changed
🎁 Added
  • feat: DOMContainer by @​GoodBoyDigital in #​11340
    • Experimental support for integrating DOM elements within the PixiJS scene graph, allowing HTML elements to be positioned and transformed alongside other PixiJS objects.
import 'pixi.js/dom'
import { DOMContainer } from 'pixi.js';

// Create a DOM element
const element = document.createElement('div');
element.innerHTML = 'Hello World!';
	
// Create a DOM container
const domContainer = new DOMContainer({ element });
	
// Add it to your scene
app.stage.addChild(domContainer);
	
// Position and transform like any other DisplayObject
domContainer.x = 100;
domContainer.y = 100;
domContainer.rotation = 0.5;
domContainer.anchor.set(0.5);
🐛 Fixed
New Contributors

v8.8.1

Compare Source

💾 Download

Development Build:

Production Build:

Documentation:

Changed
🐛 Fixed
New Contributors

v8.8.0

Compare Source

💾 Download

Development Build:

Production Build:

Documentation:

Changed
🚨 Behavior Change 🚨

Since 8.0.0 PixiJS has been incorrectly applying gradients and graphics fill textures. Instead of using normalized "local space" coordinates (0–1), gradients were using "global space" values in pixels. This was an unintended change that made working with gradients/texture fills much harder. In this release, we have changed the default behavior back to "local space" to match v7.

For anyone who needs the old behavior, you can change the default options globally or you can control it individually as all APIs now accept a textureSpace property that can be set to "global". For example:

FillGradient.defaultLinearOptions.textureSpace = 'global'
FillGradient.defaultRadialOptions.textureSpace = 'global'
// or individually
new FillGraident(0, 0, 100, 100, 'global')

GraphicsContext.defaultFillStyle.textureSpace = 'global'
GraphicsContext.defaultStrokeStyle.textureSpace = 'global'
// or individually
new Graphics().fill({ texture, textureSpace: 'global' })
new Graphics().stroke({ texture, textureSpace: 'global' })
🚨 Behavior Change 🚨

Since version 8.0.0, TilingSprite has returned negative values for tilingSprite.bounds.width and tilingSprite.bounds.height. This has been corrected in this release, and these properties now return positive values. If your code relies on bounds, you may need to adjust it accordingly.

🎁 Added
🐛 Fixed

v8.7.3

Compare Source

💾 Download

Development Build:

Production Build:

Documentation:

Changed
🐛 Fixed

v8.7.2

Compare Source

💾 Download

Development Build:

Production Build:

Documentation:

Changed
🐛 Fixed
  • fix: accessibility system being added to shared systems by @​Zyie in #​11227
    • NOTE: If you used the new AccessibilitySystem.defaultOptions.accessibilityOptions from 8.7.0 this has been correctly changed to AccessibilitySystem.defaultOptions

v8.7.1

Compare Source

💾 Download

Development Build:

Production Build:

Documentation:

Changed
🐛 Fixed

v8.7.0

Compare Source

🚨 NOTE 🚨
Please use the latest patch version of this release, as we have identified and fixed several issues related to the new GIF functionality and problematic types.

💾 Download

Development Build:

Production Build:

Documentation:

Changed
🎁 Added

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the dependencies label Mar 8, 2024
@renovate renovate bot force-pushed the renovate/pixi.js-8.x branch from 70fd622 to 3a39c56 Compare August 8, 2025 12:52
@renovate renovate bot force-pushed the renovate/pixi.js-8.x branch from 3a39c56 to 9cd6f3a Compare August 19, 2025 14:27
@renovate renovate bot force-pushed the renovate/pixi.js-8.x branch from 9cd6f3a to a6dbe01 Compare September 5, 2025 14:23
@renovate renovate bot force-pushed the renovate/pixi.js-8.x branch from a6dbe01 to a23fefa Compare September 13, 2025 23:24
@renovate renovate bot force-pushed the renovate/pixi.js-8.x branch from a23fefa to 60baef7 Compare September 25, 2025 20:56
@renovate renovate bot force-pushed the renovate/pixi.js-8.x branch from 60baef7 to 9327773 Compare October 9, 2025 23:00
@renovate renovate bot force-pushed the renovate/pixi.js-8.x branch from 9327773 to 38d2167 Compare October 21, 2025 10:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant