/** * Parses custom WGSL shader source to extract @property and @texture metadata. * * Expected comment format: * /// @property name: type = (default values) * /// @texture name * * Supported property types: float, vec2, vec3, vec4 * Max 8 @texture declarations per shader. */ export interface CustomPropertyDef { name: string; type: 'float' | 'vec2' | 'vec3' | 'vec4'; default: number[]; byteOffset: number; floatCount: number; } export interface CustomTextureDef { name: string; bindingIndex: number; samplerBindingIndex: number; } export interface CustomShaderDescriptor { properties: CustomPropertyDef[]; textures: CustomTextureDef[]; uniformBufferSize: number; fragmentSource: string; /** Vertex displacement code (lines between /// @vertex and @fragment fn). Null if no vertex section. */ vertexSource: string | null; /** If true, shader is opaque: depth write enabled, backface culling, drawn with opaque objects. */ opaque: boolean; } export declare const MAX_CUSTOM_TEXTURES = 8; export declare function parseCustomShader(wgslSource: string): CustomShaderDescriptor; //# sourceMappingURL=custom-shader-parser.d.ts.map