This repository has been archived on 2020-09-30. You can view files and clone it, but cannot push or open issues or pull requests.
odyfive/src/graphics/utils/RTTShader.ts

31 lines
834 B
TypeScript

import * as PIXI from "pixi.js";
export default class RTTShader {
readonly texture: PIXI.RenderTexture;
readonly container: PIXI.Container;
readonly renderer: PIXI.Renderer;
constructor(renderer: PIXI.Renderer, filter: PIXI.Filter, scale: number = 2) {
this.renderer = renderer;
this.texture = PIXI.RenderTexture.create({
width: this.renderer.width / scale,
height: this.renderer.height / scale,
});
this.container = new PIXI.Container();
this.container.filterArea = this.texture.frame;
this.container.filters = [filter];
}
rescale(scale: number) {
this.texture.resize(
this.renderer.width / scale,
this.renderer.height / scale
);
this.container.filterArea = this.texture.frame;
}
render() {
this.renderer.render(this.container, this.texture);
}
}