One Logo Pool Ball
RealityFoundation · IOS API REFERENCE

CustomMaterial.Program

class · iOS 18.0+ · SDK 27.1

final class Program

An object that represents the backing shader compilation required for custom materials. You can use this type to control when RealityKit compiles shaders, and to initialize `CustomMaterial` objects with more predicitable loading performance. When initializing a `CustomMaterial` this way, a `Program` object is created first asynchronously, which is used to cache the material's shader program so the `CustomMaterial` can be loaded immediately later. For example: ```swift // Initialize descriptor with desired properties var descriptor = CustomMaterial.Descriptor() descriptor.lightingModel = .unlit // Create program object let program = await CustomMaterial.Program(surfaceShader: surfaceShader, descriptor: descriptor) // Create material (returns immediately) let material = CustomMaterial(program: program) ```

Members (4)

get · iOS 18.0+

descriptor

TypeScript
get descriptor(): CustomMaterial_Program_Descriptor
Swift declaration
final let descriptor: CustomMaterial.Program.Descriptor
init · iOS 18.0+

init

TypeScript
static init(surfaceShader: CustomMaterial_SurfaceShader, geometryModifier: (CustomMaterial_GeometryModifier) | null, descriptor: CustomMaterial_Program_Descriptor): Promise<CustomMaterial_Program>
Swift declaration
init(surfaceShader: CustomMaterial.SurfaceShader, geometryModifier: CustomMaterial.GeometryModifier? = nil, descriptor: CustomMaterial.Program.Descriptor) async throws
get · iOS 18.0+

surfaceShader

TypeScript
get surfaceShader(): CustomMaterial_SurfaceShader
Swift declaration
final let surfaceShader: CustomMaterial.SurfaceShader
get · iOS 18.0+

geometryModifier

TypeScript
get geometryModifier(): (CustomMaterial_GeometryModifier) | null
Swift declaration
final let geometryModifier: CustomMaterial.GeometryModifier?

Skipped declarations

No declarations were skipped in this snapshot.

All RealityFoundation types →