Skip to content

Commit

Permalink
Auto-transform to identity when using generateTexture (pixijs#8349)
Browse files Browse the repository at this point in the history
  • Loading branch information
dev7355608 committed May 19, 2022
1 parent f0bc7fc commit 55ca370
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
13 changes: 9 additions & 4 deletions packages/core/src/AbstractRenderer.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { hex2string, hex2rgb, EventEmitter, deprecation } from '@pixi/utils';
import { Matrix, Rectangle } from '@pixi/math';
import { Matrix, Rectangle, Transform } from '@pixi/math';
import { MSAA_QUALITY, RENDERER_TYPE } from '@pixi/constants';
import { settings } from '@pixi/settings';
import { RenderTexture } from './renderTexture/RenderTexture';
Expand All @@ -10,6 +10,7 @@ import type { IRenderingContext } from './IRenderingContext';
import type { IRenderableContainer, IRenderableObject } from './IRenderableObject';

const tempMatrix = new Matrix();
const tempTransform = new Transform();

export interface IRendererOptions extends GlobalMixins.IRendererOptions
{
Expand Down Expand Up @@ -377,13 +378,17 @@ export abstract class AbstractRenderer extends EventEmitter
tempMatrix.tx = -region.x;
tempMatrix.ty = -region.y;

const transform = displayObject.transform;

displayObject.transform = tempTransform;

this.render(displayObject, {
renderTexture,
clear: false,
transform: tempMatrix,
skipUpdateTransform: !!displayObject.parent
transform: tempMatrix
});

displayObject.transform = transform;

return renderTexture;
}

Expand Down
4 changes: 3 additions & 1 deletion packages/core/src/IRenderableObject.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { Rectangle } from '@pixi/math';
import type { Rectangle, Transform } from '@pixi/math';
import type { Renderer } from './Renderer';

/**
Expand All @@ -9,6 +9,8 @@ import type { Renderer } from './Renderer';
interface IRenderableObject {
/** Object must have a parent container */
parent: IRenderableContainer;
/** Object must have a transform */
transform: Transform;
/** Before method for transform updates */
enableTempParent(): IRenderableContainer;
/** Update the transforms */
Expand Down

0 comments on commit 55ca370

Please sign in to comment.