import type { Mesh, Geometry, TextureSourceOptions, RenderPass, spec, Engine } from '@galacean/effects'; import { Texture } from '@galacean/effects'; import type { ModelSkyboxOptions } from '../index'; import type { PMaterialBase } from './material'; import type { PSkyboxParams } from './skybox'; /** * 合成缓存类,负责管理插件 WebGL 相关资源加载和创建 */ export declare class CompositionCache { private engine; private loadSkybox; private brdfLutTexture?; private meshCache; private textureCache; private geometryCache; private renderPassCache; private static brdfLutTexOptions?; private static skyboxOptions?; /** * 加载静态的纹理数据 * @returns */ static loadStaticResources(): Promise; /** * 创建天空盒数据,如果传入的 params 为空,会使用内置的天空盒参数 * @param engine - 引擎 * @param params - 天空盒参数 * @returns 天空盒数据 */ static genSkyboxOptions(engine: Engine, params?: PSkyboxParams): Promise; constructor(engine: Engine); /** * 记录是否加载天空盒,缓存天空盒相关的查询纹理 * @param loadSkybox - 是否加载天空盒 */ setup(loadSkybox: boolean): void; /** * 获取缓存的纹理对象 * @param name - 名称 * @returns 纹理对象 */ getTexture(name: string): Texture | undefined; /** * 设置纹理对象缓存 * @param name - 名称 * @param tex - 纹理对象 */ setTexture(name: string, tex: Texture): void; /** * 获取或者创建纹理对象 * @param name - 名称 * @param options - 纹理参数 * @returns 纹理对象 */ getOrCreateTexture(name: string, options: TextureSourceOptions): Texture; /** * 根据名称删除纹理对象 * @param name - 名称 * @returns 是否删除成功 */ deleteTexture(name: string): boolean; /** * 获取或者创建几何体 * @param name - 名称 * @param geomJson - 几何体参数 * @param bins - 几何体数据 * @returns 几何体 */ getOrCreateGeometry(name: string, geomJson: spec.GeometryOptionsJSON, bins: ArrayBuffer[]): Geometry; /** * 获取滤波 Mesh * @param name - 名称 * @param material - 材质 * @returns */ getFilterMesh(name: string, material: PMaterialBase): Mesh; /** * 销毁缓存,释放所有缓存的对象 */ dispose(): void; /** * 获取所有的渲染 Pass * @returns */ getRenderPasses(): RenderPass[]; /** * 获取纹理对象,用户 IBL 渲染 * @returns */ getBrdfLutTexture(): Texture | undefined; /** * 获取天空盒参数 * @returns */ getSkyboxOptions(): ModelSkyboxOptions | undefined; }