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
836 B
TypeScript
Raw Normal View History

2020-09-29 08:52:39 +00:00
import { RenderTexture, Container, Renderer, Filter } from "pixi.js";
2020-09-27 00:38:43 +00:00
export default class RTTShader {
2020-09-29 08:52:39 +00:00
readonly texture: RenderTexture;
readonly container: Container;
readonly renderer: Renderer;
2020-09-27 00:38:43 +00:00
2020-09-29 08:52:39 +00:00
constructor(renderer: Renderer, filter: Filter, scale: number = 2) {
2020-09-27 00:38:43 +00:00
this.renderer = renderer;
2020-09-29 08:52:39 +00:00
this.texture = RenderTexture.create({
2020-09-27 00:38:43 +00:00
width: this.renderer.width / scale,
height: this.renderer.height / scale,
});
2020-09-29 08:52:39 +00:00
this.container = new Container();
2020-09-27 00:38:43 +00:00
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);
}
}