---
title: "init(named:in:constantValues:uniformsType:)"
framework: realitykit
role: symbol
role_heading: Initializer
path: "realitykit/lowlevelmaterialresource/geometrymodifier/descriptor/init(named:in:constantvalues:uniformstype:)"
---

# init(named:in:constantValues:uniformsType:)

Creates a descriptor for a geometry modifier that accepts a custom uniforms argument buffer, deriving the buffer size from uniformsType.

## Declaration

```swift
init<UniformsType>(named name: String, in library: any MTLLibrary, constantValues: MTLFunctionConstantValues = .init(), uniformsType: UniformsType.Type)
```

## Parameters

- `name`: The name of the Metal function in the library.
- `library`: The Metal library that contains the function.
- `constantValues`: The Metal function constant values to specialize the function with.
- `uniformsType`: The Swift type that mirrors your Metal uniforms struct.

## Discussion

Discussion Equivalent to calling init(named:in:constantValues:uniformsSize:) with MemoryLayout<UniformsType>.size.

## See Also

### Creating a descriptor

- [init(named:in:constantValues:)](realitykit/lowlevelmaterialresource/geometrymodifier/descriptor/init(named:in:constantvalues:).md)
- [init(named:in:constantValues:uniformsSize:)](realitykit/lowlevelmaterialresource/geometrymodifier/descriptor/init(named:in:constantvalues:uniformssize:).md)
