Skip to content

Releases: pixijs/pixijs

v8.12.0

05 Aug 08:50
Compare
Choose a tag to compare

💾 Download

Installation:

npm install pixi.js@8.12.0

Development Build:

Production Build:

Documentation:

Changed

v8.11.0...v8.12.0

🚨 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

  • fix: Add missing createCanvas calls by @bigtimebuddy in #11553
  • fix: Boost classes in the docs search results by @bigtimebuddy in #11555
  • fix: video texture loading with no extension by @Zyie in #11546
  • fix: fillGradientStop logic in TextStyle by @Zyie in #11549
  • fix: resource leak in Graphics and fills by @Zyie in #11543
  • fix: AnimatedSprite destroy method by @Zyie in #11544
  • fix: text fill and stroke with padding by @Zyie in #11524
  • fix: HTMLText incorrectly handling font weights by @Zyie in #11520
  • fix: HTML text rendering with broken tags by @Zyie in #11521
  • fix: progress tracking for asset bundles by @Zyie in #11558
  • fix: earcut triangulation issues by @Zyie in #11559
  • fix: allow for culler plugin to update transforms by @Zyie in #11548
  • fix: text fill documentation by @Zyie in #11561
  • fix: DOMContainer scaling if canvas width/height is percentage by @Zyie in #11539
  • fix: MeshPipe.addRenderable does not set the current geometry parameters by @midiusRed in #11534
  • fix: Text and BitmapText that doesn't render it's new value on some condition by @privatestefans in #11547
  • fix: Container.parent type not being nullable and possibly undefined by @ch1ll0ut1 in #11567
  • fix: masking turns off when the mask texture is out of the viewport bounds by @mayakwd in #11569
  • fix: BitmapFont's texture frame handling for rotated spritesheet regions by @privatestefans in #11525
  • fix: incorrect trim mask rendering by @littleboarx in #11529
  • fix: origin calculation to ensure it scales from origin point by @Zyie in #11538
  • fix: loading unsupported video formats by @Zyie in #11541
  • fix: trimmed text rendereing with non default resolution by @mayakwd in #11570
  • fix: Align GetGlobalMixin implementation with documentation by @albinkong in #11574
  • fix: accessibility scaling issues by @Zyie in #11579
  • fix: Remove deprecation version constants by @albinkong in #11582
  • fix: Installed bitmap text showing wrong fill by @Zyie in #11523
  • fix: lineHeight calculation for multi-line layout for BitmapText by @privatestefans in #11531
  • fix: minor typos in comments and docs, add missing @params and @returns by @afarber in #11590

🧹 Chores

New Contributors

v8.11.0

03 Jul 15:04
Compare
Choose a tag to compare

💾 Download

Installation:

npm install pixi.js@8.11.0

Development Build:

Production Build:

Documentation:

Changed

v8.10.2...v8.11.0

🚨 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

  • feat: adds text splitting functionality by @Zyie in #11496
  • feat: Implements replaceChild method for Container by @Zyie in #11506
  • feat: Adds origin point for container transformations by @Zyie in #11501
  • feat: break words for bitmap text by @iamDecode in #11502

🐛 Fixed

  • fix: text bounds calculation to account for anchor and padding by @GoodBoyDigital in #11483
  • fix: dynamic bitmap font shadow applied twice by @Zyie in #11504
  • fix: reset transform when returning canvas to CanvasPool by @BOTDan in #11460
  • fix: TextMetrics tokenize didn't handle CRLF line ending by @maliut in #11469
  • fix: remove special number casing for particle tint by @bigtimebuddy in #11484
  • fix: polygon x/y returning incorrect value by @Zyie in #11457
  • fix: warn if transparent background is set after opaque init by @Ashish050488 in #11514

🧹 Chores

  • chore: update typedoc and minor doc fixes by @Zyie in #11512

New Contributors

v8.10.2

24 Jun 08:45
Compare
Choose a tag to compare

💾 Download

Installation:

npm install pixi.js@8.10.2

Development Build:

Production Build:

Documentation:

Changed

v8.10.1...v8.10.2

🐛 Fixed

🧹 Chores

v8.10.1

05 Jun 17:32
Compare
Choose a tag to compare

v8.10.0

03 Jun 18:59
Compare
Choose a tag to compare

💾 Download

Installation:

npm install pixi.js@8.10.0

Development Build:

Production Build:

Documentation:

Changed

v8.9.2...v8.10.0

🚨 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

29 Apr 11:35
Compare
Choose a tag to compare

💾 Download

Installation:

npm install pixi.js@8.9.2

Development Build:

Production Build:

Documentation:

Changed

8.9.1...v8.9.2

🐛 Fixed

New Contributors

v8.9.1

27 Mar 12:07
Compare
Choose a tag to compare

💾 Download

Development Build:

Production Build:

Documentation:

Changed

v8.9.0...v8.9.1

🐛 Fixed

v8.9.0

20 Mar 16:27
Compare
Choose a tag to compare

💾 Download

Development Build:

Production Build:

Documentation:

Changed

v8.8.1...v8.9.0

🎁 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

v7.4.3

06 Mar 14:55
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v7.4.2...v7.4.3

v8.8.1

26 Feb 09:51
Compare
Choose a tag to compare

💾 Download

Development Build:

Production Build:

Documentation:

Changed

v8.8.0...v8.8.1

🐛 Fixed

New Contributors