Skip to content

Releases: pixijs/pixijs

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 [email protected]

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 [email protected]

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

v8.8.0

11 Feb 15:43
Compare
Choose a tag to compare

💾 Download

Development Build:

Production Build:

Documentation:

Changed

v8.7.3...v8.8.0

🚨 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.8.0-rc.1

06 Feb 11:42
Compare
Choose a tag to compare
v8.8.0-rc.1 Pre-release
Pre-release

💾 Download

Development Build:

Production Build:

Documentation:

Changed

v8.7.3...v8.8.0-rc.1

🚨 NOTE 🚨

Since the release of v8, 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 made working with gradients/texture fills more complicated than necessary. 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' })

🎁 Added

🐛 Fixed

  • fix: texture space incorrectly set to global by @Zyie in #11246

v8.7.3

29 Jan 13:22
Compare
Choose a tag to compare

💾 Download

Development Build:

Production Build:

Documentation:

Changed

v8.7.2...v8.7.3

🐛 Fixed