IGPUParticleSystemPlatform.d.ts 1.1 KB

12345678910111213141516171819202122
  1. import type { Buffer, VertexBuffer } from "../Buffers/buffer";
  2. import type { DataBuffer } from "../Buffers/dataBuffer";
  3. import type { Effect } from "../Materials/effect";
  4. import type { UniformBufferEffectCommonAccessor } from "../Materials/uniformBufferEffectCommonAccessor";
  5. import type { DataArray, Nullable } from "../types";
  6. /** @internal */
  7. export interface IGPUParticleSystemPlatform {
  8. alignDataInBuffer: boolean;
  9. contextLost: () => void;
  10. isUpdateBufferCreated: () => boolean;
  11. isUpdateBufferReady: () => boolean;
  12. createUpdateBuffer: (defines: string) => UniformBufferEffectCommonAccessor;
  13. createVertexBuffers: (updateBuffer: Buffer, renderVertexBuffers: {
  14. [key: string]: VertexBuffer;
  15. }) => void;
  16. createParticleBuffer: (data: number[]) => DataArray | DataBuffer;
  17. bindDrawBuffers: (index: number, effect: Effect, indexBuffer: Nullable<DataBuffer>) => void;
  18. preUpdateParticleBuffer: () => void;
  19. updateParticleBuffer: (index: number, targetBuffer: Buffer, currentActiveCount: number) => void;
  20. releaseBuffers: () => void;
  21. releaseVertexBuffers: () => void;
  22. }