@pmndrs/uikit
Version:
Build performant 3D user interfaces with Three.js and yoga.
17 lines (16 loc) • 501 B
TypeScript
import { Material } from 'three';
export type MaterialClass = {
new (...args: Array<any>): Material;
};
type InstanceOf<T> = T extends {
new (): infer K;
} ? K : never;
export type PanelMaterialInfo = {
type: 'instanced';
} | {
type: 'normal';
data: Float32Array;
};
export type PanelMaterial = InstanceOf<ReturnType<typeof createPanelMaterial>>;
export declare function createPanelMaterial<T extends MaterialClass>(MaterialClass: T, info: PanelMaterialInfo): Material;
export {};