CanvasRendererPlugin.d.ts 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import type { DisplayObject, RenderingPlugin, RenderingPluginContext, CanvasContext, GlobalRuntime } from '@antv/g-lite';
  2. import type { CanvasRendererPluginOptions } from './interfaces';
  3. /**
  4. * support 2 modes in rendering:
  5. * * immediate
  6. * * delayed: render at the end of frame with dirty-rectangle
  7. */
  8. export declare class CanvasRendererPlugin implements RenderingPlugin {
  9. private canvasRendererPluginOptions;
  10. static tag: string;
  11. private context;
  12. private pathGeneratorFactory;
  13. /**
  14. * RBush used in dirty rectangle rendering
  15. */
  16. private rBush;
  17. constructor(canvasRendererPluginOptions: CanvasRendererPluginOptions);
  18. private removedRBushNodeAABBs;
  19. private renderQueue;
  20. /**
  21. * This stack is only used by clipPath for now.
  22. */
  23. private restoreStack;
  24. private clearFullScreen;
  25. /**
  26. * view projection matrix
  27. */
  28. private vpMatrix;
  29. private dprMatrix;
  30. private tmpMat4;
  31. private vec3a;
  32. private vec3b;
  33. private vec3c;
  34. private vec3d;
  35. apply(context: RenderingPluginContext, runtime: GlobalRuntime): void;
  36. private clearRect;
  37. renderDisplayObject(object: DisplayObject, context: CanvasRenderingContext2D, canvasContext: CanvasContext, restoreStack: DisplayObject[], runtime: GlobalRuntime): void;
  38. private convertAABB2Rect;
  39. /**
  40. * TODO: merge dirty rectangles with some strategies.
  41. * For now, we just simply merge all the rectangles into one.
  42. * @see https://idom.me/articles/841.html
  43. */
  44. private mergeDirtyAABBs;
  45. private searchDirtyObjects;
  46. private saveDirtyAABB;
  47. /**
  48. * TODO: batch the same global attributes
  49. */
  50. private applyAttributesToContext;
  51. private applyWorldTransform;
  52. private safeMergeAABB;
  53. }
  54. //# sourceMappingURL=CanvasRendererPlugin.d.ts.map