<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.11.0 -",
    "tvOS: -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Metal",
  "identifier" : "/documentation/Metal/MTLBlendFactor",
  "metadataVersion" : "0.1.0",
  "role" : "Enumeration",
  "symbol" : {
    "kind" : "Enumeration",
    "modules" : [
      "Metal"
    ],
    "preciseIdentifier" : "c:@E@MTLBlendFactor"
  },
  "title" : "MTLBlendFactor"
}
-->

# MTLBlendFactor

The source and destination blend factors are often needed to complete specification of a blend operation. In most cases, the blend factor for both RGB values (*F(rgb)*) and alpha values (*F(a)*) are similar to one another, but in some cases, such as `MTLBlendFactorSourceAlphaSaturated`, the blend factor is slightly different. Four blend factors (`MTLBlendFactorBlendColor`, `MTLBlendFactorOneMinusBlendColor`, `MTLBlendFactorBlendAlpha`, and `MTLBlendFactorOneMinusBlendAlpha`) refer to a constant blend color value that is set by the [`setBlendColor(red:green:blue:alpha:)`](/documentation/Metal/MTLRenderCommandEncoder/setBlendColor(red:green:blue:alpha:)) method of `MTLRenderCommandEncoder`.

```
enum MTLBlendFactor
```

## Topics

### Blend factors

[`MTLBlendFactorZero`](/documentation/Metal/MTLBlendFactor/zero)

Blend factor of zero.

[`MTLBlendFactorOne`](/documentation/Metal/MTLBlendFactor/one)

Blend factor of one.

[`MTLBlendFactorSourceColor`](/documentation/Metal/MTLBlendFactor/sourceColor)

Blend factor of source values.

[`MTLBlendFactorOneMinusSourceColor`](/documentation/Metal/MTLBlendFactor/oneMinusSourceColor)

Blend factor of one minus source values.

[`MTLBlendFactorSourceAlpha`](/documentation/Metal/MTLBlendFactor/sourceAlpha)

Blend factor of source alpha.

[`MTLBlendFactorOneMinusSourceAlpha`](/documentation/Metal/MTLBlendFactor/oneMinusSourceAlpha)

Blend factor of one minus source alpha.

[`MTLBlendFactorDestinationColor`](/documentation/Metal/MTLBlendFactor/destinationColor)

Blend factor of destination values.

[`MTLBlendFactorOneMinusDestinationColor`](/documentation/Metal/MTLBlendFactor/oneMinusDestinationColor)

Blend factor of one minus destination values.

[`MTLBlendFactorDestinationAlpha`](/documentation/Metal/MTLBlendFactor/destinationAlpha)

Blend factor of destination alpha.

[`MTLBlendFactorOneMinusDestinationAlpha`](/documentation/Metal/MTLBlendFactor/oneMinusDestinationAlpha)

Blend factor of one minus destination alpha.

[`MTLBlendFactorSourceAlphaSaturated`](/documentation/Metal/MTLBlendFactor/sourceAlphaSaturated)

Blend factor of the minimum of either source alpha or one minus destination alpha.

[`MTLBlendFactorBlendColor`](/documentation/Metal/MTLBlendFactor/blendColor)

A blend factor that applies the blend color’s red, green, and blue components.

[`MTLBlendFactorOneMinusBlendColor`](/documentation/Metal/MTLBlendFactor/oneMinusBlendColor)

A blend factor that applies one minus the blend color’s red, green, and blue components.

[`MTLBlendFactorBlendAlpha`](/documentation/Metal/MTLBlendFactor/blendAlpha)

Blend factor of alpha value.

[`MTLBlendFactorOneMinusBlendAlpha`](/documentation/Metal/MTLBlendFactor/oneMinusBlendAlpha)

Blend factor of one minus alpha value.

[`MTLBlendFactorSource1Color`](/documentation/Metal/MTLBlendFactor/source1Color)

Blend factor of source values. This option supports dual-source blending and reads from the second color output of the fragment function.

[`MTLBlendFactorOneMinusSource1Color`](/documentation/Metal/MTLBlendFactor/oneMinusSource1Color)

Blend factor of one minus source values. This option supports dual-source blending and reads from the second color output of the fragment function.

[`MTLBlendFactorSource1Alpha`](/documentation/Metal/MTLBlendFactor/source1Alpha)

Blend factor of source alpha. This option supports dual-source blending and reads from the second color output of the fragment function.

[`MTLBlendFactorOneMinusSource1Alpha`](/documentation/Metal/MTLBlendFactor/oneMinusSource1Alpha)

Blend factor of one minus source alpha. This option supports dual-source blending and reads from the second color output of the fragment function.

## Relationships

### Conforms To

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Equatable`](/documentation/Swift/Equatable)

[`RawRepresentable`](/documentation/Swift/RawRepresentable)

[`Sendable`](/documentation/Swift/Sendable)

[`Hashable`](/documentation/Swift/Hashable)

[`BitwiseCopyable`](/documentation/Swift/BitwiseCopyable)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)