import type { PMaterialBase } from './material'; /** * 着色器上下文 */ export interface PShaderContext { /** * 材质 */ material: PMaterialBase; /** * 是否 WebGL2 */ isWebGL2: boolean; /** * 特性列表 */ featureList: string[]; } /** * 着色器返回的代码结果 */ export interface PShaderResults { /** * 顶点着色器代码 */ vertexShaderCode: string; /** * 片段着色器代码 */ fragmentShaderCode: string; } /** * 着色器管理类 */ export declare class PShaderManager { private funcMap; private static _instance; /** * 获取着色器单例对象 * @returns */ static getInstance(): PShaderManager; private constructor(); /** * 生成着色器代码 * @param context - 着色器上下文 * @returns */ genShaderCode(context: PShaderContext): PShaderResults; }