index.d.ts 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /**
  2. * Strict extension format that is used internally for registrations.
  3. * @memberof PIXI
  4. */
  5. export declare interface ExtensionFormat extends ExtensionFormatLoose {
  6. /** The extension type, always expressed as multiple, even if a single */
  7. type: ExtensionType[];
  8. }
  9. /**
  10. * Format when registering an extension. Generally, the extension
  11. * should have these values as `extension` static property,
  12. * but you can override name or type by providing an object.
  13. * @memberof PIXI
  14. */
  15. export declare interface ExtensionFormatLoose {
  16. /** The extension type, can be multiple types */
  17. type: ExtensionType | ExtensionType[];
  18. /** Optional. Some plugins provide an API name/property, such as Renderer plugins */
  19. name?: string;
  20. /** Reference to the plugin object/class */
  21. ref: any;
  22. }
  23. export declare type ExtensionHandler = (extension: ExtensionFormat) => void;
  24. export declare type ExtensionMetadata = ExtensionType | ExtensionMetadataDetails;
  25. declare interface ExtensionMetadataDetails {
  26. type: ExtensionType | ExtensionType[];
  27. name?: string;
  28. }
  29. /**
  30. * Global registration of all PixiJS extensions. One-stop-shop for extensibility.
  31. * @memberof PIXI
  32. * @namespace extensions
  33. */
  34. export declare const extensions: {
  35. /** @ignore */
  36. _addHandlers: Record<ExtensionType, ExtensionHandler>;
  37. /** @ignore */
  38. _removeHandlers: Record<ExtensionType, ExtensionHandler>;
  39. /** @ignore */
  40. _queue: Record<ExtensionType, ExtensionFormat[]>;
  41. /**
  42. * Remove extensions from PixiJS.
  43. * @param extensions - Extensions to be removed.
  44. * @returns {PIXI.extensions} For chaining.
  45. */
  46. remove(...extensions: Array<ExtensionFormatLoose | any>): any;
  47. /**
  48. * Register new extensions with PixiJS.
  49. * @param extensions - The spread of extensions to add to PixiJS.
  50. * @returns {PIXI.extensions} For chaining.
  51. */
  52. add(...extensions: Array<ExtensionFormatLoose | any>): any;
  53. /**
  54. * Internal method to handle extensions by name.
  55. * @param type - The extension type.
  56. * @param onAdd - Function for handling when extensions are added/registered passes {@link PIXI.ExtensionFormat}.
  57. * @param onRemove - Function for handling when extensions are removed/unregistered passes {@link PIXI.ExtensionFormat}.
  58. * @returns {PIXI.extensions} For chaining.
  59. */
  60. handle(type: ExtensionType, onAdd: ExtensionHandler, onRemove: ExtensionHandler): any;
  61. /**
  62. * Handle a type, but using a map by `name` property.
  63. * @param type - Type of extension to handle.
  64. * @param map - The object map of named extensions.
  65. * @returns {PIXI.extensions} For chaining.
  66. */
  67. handleByMap(type: ExtensionType, map: Record<string, any>): any;
  68. /**
  69. * Handle a type, but using a list of extensions.
  70. * @param type - Type of extension to handle.
  71. * @param list - The list of extensions.
  72. * @returns {PIXI.extensions} For chaining.
  73. */
  74. handleByList(type: ExtensionType, list: any[]): any;
  75. };
  76. /**
  77. * Collection of valid extension types.
  78. * @memberof PIXI
  79. * @property {string} Application - Application plugins
  80. * @property {string} RendererPlugin - Plugins for Renderer
  81. * @property {string} CanvasRendererPlugin - Plugins for CanvasRenderer
  82. * @property {string} Loader - Plugins to use with Loader
  83. * @property {string} LoadParser - Parsers for Assets loader.
  84. * @property {string} ResolveParser - Parsers for Assets resolvers.
  85. * @property {string} CacheParser - Parsers for Assets cache.
  86. */
  87. export declare enum ExtensionType {
  88. Application = "application",
  89. RendererPlugin = "renderer-webgl-plugin",
  90. CanvasRendererPlugin = "renderer-canvas-plugin",
  91. Loader = "loader",
  92. LoadParser = "load-parser",
  93. ResolveParser = "resolve-parser",
  94. CacheParser = "cache-parser",
  95. DetectionParser = "detection-parser"
  96. }
  97. export { }