> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# D3D12_RENDER_TARGET_BLEND_DESC

> Describes the blend state for a render target. (D3D12_RENDER_TARGET_BLEND_DESC)

Describes the blend state for a render target.

## Syntax

```cpp theme={null}
typedef struct D3D12_RENDER_TARGET_BLEND_DESC
{
    BOOL BlendEnable;
    BOOL LogicOpEnable;
    D3D12_BLEND SrcBlend;
    D3D12_BLEND DestBlend;
    D3D12_BLEND_OP BlendOp;
    D3D12_BLEND SrcBlendAlpha;
    D3D12_BLEND DestBlendAlpha;
    D3D12_BLEND_OP BlendOpAlpha;
    D3D12_LOGIC_OP LogicOp;
    UINT8 RenderTargetWriteMask;
} D3D12_RENDER_TARGET_BLEND_DESC
```

### Members

*BlendEnable*\
Type: BOOL

Specifies whether to enable (or disable) blending. Set to **TRUE** to enable blending.

<Note>
  It's not valid for *LogicOpEnable* and *BlendEnable* to both be **TRUE**.
</Note>

*LogicOpEnable*\
Type: BOOL

Specifies whether to enable (or disable) a logical operation. Set to **TRUE** to enable a logical operation.

<Note>
  It's not valid for *LogicOpEnable* and *BlendEnable* to both be **TRUE**.
</Note>

*SrcBlend*\
Type: D3D12\_BLEND

A [D3D12\_BLEND](/reference/graphics/d3d12/enums/d3d12_blend_public)-typed value that specifies the operation to perform on the RGB value that the pixel shader outputs. The **BlendOp** member defines how to combine the **SrcBlend** and **DestBlend** operations.

*DestBlend*\
Type: D3D12\_BLEND

A [D3D12\_BLEND](/reference/graphics/d3d12/enums/d3d12_blend_public)-typed value that specifies the operation to perform on the current RGB value in the render target. The **BlendOp** member defines how to combine the **SrcBlend** and **DestBlend** operations.

*BlendOp*\
Type: D3D12\_BLEND\_OP

A [D3D12\_BLEND\_OP](/reference/graphics/d3d12/enums/d3d12_blend_op_public)-typed value that defines how to combine the **SrcBlend** and **DestBlend** operations.

*SrcBlendAlpha*\
Type: D3D12\_BLEND

A [D3D12\_BLEND](/reference/graphics/d3d12/enums/d3d12_blend_public)-typed value that specifies the operation to perform on the alpha value that the pixel shader outputs. Blend options that end in \_COLOR are not allowed. The **BlendOpAlpha** member defines how to combine the **SrcBlendAlpha** and **DestBlendAlpha** operations.

*DestBlendAlpha*\
Type: D3D12\_BLEND

A [D3D12\_BLEND](/reference/graphics/d3d12/enums/d3d12_blend_public)-typed value that specifies the operation to perform on the current alpha value in the render target. Blend options that end in \_COLOR are not allowed. The **BlendOpAlpha** member defines how to combine the **SrcBlendAlpha** and **DestBlendAlpha** operations.

*BlendOpAlpha*\
Type: D3D12\_BLEND\_OP

A [D3D12\_BLEND\_OP](/reference/graphics/d3d12/enums/d3d12_blend_op_public)-typed value that defines how to combine the **SrcBlendAlpha** and **DestBlendAlpha** operations.

*LogicOp*\
Type: D3D12\_LOGIC\_OP

A [D3D12\_LOGIC\_OP](/reference/graphics/d3d12/enums/d3d12_logic_op_public)-typed value that specifies the logical operation to configure for the render target.

*RenderTargetWriteMask*\
Type: UINT8

A combination of [D3D12\_COLOR\_WRITE\_ENABLE](/reference/graphics/d3d12/enums/d3d12_color_write_enable_public)-typed values that are combined by using a bitwise OR operation. The resulting value specifies a write mask.

## Remarks

<Note>
  It's not valid for *LogicOpEnable* and *BlendEnable* to both be **TRUE**.
</Note>

You specify an array of **D3D12\_RENDER\_TARGET\_BLEND\_DESC** structures in the **RenderTarget** member of the [D3D12\_BLEND\_DESC](/reference/graphics/d3d12/structs/d3d12_blend_desc_public) structure to describe the blend states for render targets; you can bind up to eight render targets to the [output-merger stage](https://learn.microsoft.com/en-us/windows/desktop/direct3d11/d3d10-graphics-programming-guide-output-merger-stage) at one time.

For info about how blending is done, see the [output-merger stage](https://learn.microsoft.com/en-us/windows/desktop/direct3d11/d3d10-graphics-programming-guide-output-merger-stage).

Here are the default values for blend state.

<table>
  <tr>
    <th>State</th>
    <th>Default Value</th>
  </tr>

  <tr>
    <td>BlendEnable</td>
    <td>FALSE</td>
  </tr>

  <tr>
    <td>LogicOpEnable</td>
    <td>FALSE</td>
  </tr>

  <tr>
    <td>SrcBlend</td>
    <td>D3D12\_BLEND\_ONE</td>
  </tr>

  <tr>
    <td>DestBlend</td>
    <td>D3D12\_BLEND\_ZERO</td>
  </tr>

  <tr>
    <td>BlendOp</td>
    <td>D3D12\_BLEND\_OP\_ADD</td>
  </tr>

  <tr>
    <td>SrcBlendAlpha</td>
    <td>D3D12\_BLEND\_ONE</td>
  </tr>

  <tr>
    <td>DestBlendAlpha</td>
    <td>D3D12\_BLEND\_ZERO</td>
  </tr>

  <tr>
    <td>BlendOpAlpha</td>
    <td>D3D12\_BLEND\_OP\_ADD</td>
  </tr>

  <tr>
    <td>LogicOp</td>
    <td>D3D12\_LOGIC\_OP\_NOOP</td>
  </tr>

  <tr>
    <td>RenderTargetWriteMask</td>
    <td>D3D12\_COLOR\_WRITE\_ENABLE\_ALL</td>
  </tr>
</table>

## Requirements

**Header:** d3d12\_xs.h or d3d12\_x.h\
**Library:** d3d12\_xs.lib or d3d12\_x.lib\
**Supported Platforms**: XBOX Series consoles and XBOX One family

## See Also

[Core Structures](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/direct3d-12-structures)


## Related topics

- [D3D12_BLEND_DESC](/reference/graphics/d3d12/structs/d3d12_blend_desc_public.md)
- [D3D12_BLEND](/reference/graphics/d3d12/enums/d3d12_blend_public.md)
- [D3D12_BLEND_OP](/reference/graphics/d3d12/enums/d3d12_blend_op_public.md)
- [D3D12_LOGIC_OP](/reference/graphics/d3d12/enums/d3d12_logic_op_public.md)
- [D3D12_COLOR_WRITE_ENABLE](/reference/graphics/d3d12/enums/d3d12_color_write_enable_public.md)
