# `GlyphsCallback processShapes:extraHandles:grid:didChange:error:`

*Type Method*

Is called to process some shapes before output

## Declaration

```swift
static func processShapes(_ shapes: [GSShape], extraHandles: NSMutableArray?, grid: GSGridSettings, didChange: UnsafeMutablePointer<ObjCBool>, error: NSErrorPointer) -> [Any]
```

```objc
+ (NSArray *) processShapes:(NSArray<GSShape *> *) shapes extraHandles:(NSMutableArray *) extraHandles grid:(GSGridSettings) grid didChange:(BOOL *) didChange error:(NSError **) error;
```

```python
processShapes_extraHandles_grid_didChange_error_(shapes: list[GSShape], extraHandles: list, grid: GSGridSettings, didChange: bool) -> tuple[list, NSError]
```

## Parameters

- `shapes` — The shapes to process
- `extraHandles` — On return, a list of GSHandle objects that are shown as small black dots in the UI
- `didChange` — If there where any changes

## Return Value

NO if there was an error

## Discussion

This is used when color layers where each set of path with the same attributes has to be processed separately

