engine.query.d.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import type { Nullable, int } from "../../types";
  2. import { _TimeToken } from "../../Instrumentation/timeToken";
  3. import { PerfCounter } from "../../Misc/perfCounter";
  4. import type { Observer } from "../../Misc/observable";
  5. import type { AbstractEngine } from "../abstractEngine";
  6. import "../AbstractEngine/abstractEngine.query";
  7. declare module "../../Engines/engine" {
  8. interface Engine {
  9. /**
  10. * Starts a time query (used to measure time spent by the GPU on a specific frame)
  11. * Please note that only one query can be issued at a time
  12. * @returns a time token used to track the time span
  13. */
  14. startTimeQuery(): Nullable<_TimeToken>;
  15. /**
  16. * Ends a time query
  17. * @param token defines the token used to measure the time span
  18. * @returns the time spent (in ns)
  19. */
  20. endTimeQuery(token: _TimeToken): int;
  21. /** @internal */
  22. _currentNonTimestampToken: Nullable<_TimeToken>;
  23. /** @internal */
  24. _captureGPUFrameTime: boolean;
  25. /** @internal */
  26. _gpuFrameTimeToken: Nullable<_TimeToken>;
  27. /** @internal */
  28. _gpuFrameTime: PerfCounter;
  29. /** @internal */
  30. _onBeginFrameObserver: Nullable<Observer<AbstractEngine>>;
  31. /** @internal */
  32. _onEndFrameObserver: Nullable<Observer<AbstractEngine>>;
  33. /** @internal */
  34. _createTimeQuery(): Nullable<WebGLQuery>;
  35. /** @internal */
  36. _deleteTimeQuery(query: WebGLQuery): void;
  37. /** @internal */
  38. _getGlAlgorithmType(algorithmType: number): number;
  39. /** @internal */
  40. _getTimeQueryResult(query: WebGLQuery): any;
  41. /** @internal */
  42. _getTimeQueryAvailability(query: WebGLQuery): any;
  43. }
  44. }