UNPKG

2.28 kBTypeScriptView Raw
1import type { DRAW_MODES } from '@pixi/constants';
2import type { ExtensionMetadata } from '@pixi/extensions';
3import type { IRenderingContext } from '../IRenderer';
4import type { Renderer } from '../Renderer';
5import type { Shader } from '../shader/Shader';
6import type { ISystem } from '../system/ISystem';
7import type { TransformFeedback } from './TransformFeedback';
8/**
9 * TransformFeedbackSystem provides TransformFeedback of WebGL2
10 * https://developer.mozilla.org/en-US/docs/Web/API/WebGLTransformFeedback
11 *
12 * For example, you can use TransformFeedbackSystem to implement GPU Particle or
13 * general purpose computing on GPU (aka GPGPU).
14 *
15 * It also manages a lifetime of GLTransformFeedback object
16 * @memberof PIXI
17 */
18export declare class TransformFeedbackSystem implements ISystem {
19 /** @ignore */
20 static extension: ExtensionMetadata;
21 CONTEXT_UID: number;
22 gl: IRenderingContext;
23 private renderer;
24 /**
25 * @param renderer - The renderer this System works for.
26 */
27 constructor(renderer: Renderer);
28 /** Sets up the renderer context and necessary buffers. */
29 protected contextChange(): void;
30 /**
31 * Bind TransformFeedback and buffers
32 * @param transformFeedback - TransformFeedback to bind
33 */
34 bind(transformFeedback: TransformFeedback): void;
35 /** Unbind TransformFeedback */
36 unbind(): void;
37 /**
38 * Begin TransformFeedback
39 * @param drawMode - DrawMode for TransformFeedback
40 * @param shader - A Shader used by TransformFeedback. Current bound shader will be used if not provided.
41 */
42 beginTransformFeedback(drawMode: DRAW_MODES, shader?: Shader): void;
43 /** End TransformFeedback */
44 endTransformFeedback(): void;
45 /**
46 * Create TransformFeedback and bind buffers
47 * @param tf - TransformFeedback
48 * @returns WebGLTransformFeedback
49 */
50 protected createGLTransformFeedback(tf: TransformFeedback): WebGLTransformFeedback;
51 /**
52 * Disposes TransfromFeedback
53 * @param {PIXI.TransformFeedback} tf - TransformFeedback
54 * @param {boolean} [contextLost=false] - If context was lost, we suppress delete TransformFeedback
55 */
56 disposeTransformFeedback(tf: TransformFeedback, contextLost?: boolean): void;
57 destroy(): void;
58}